mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-02-22 17:18:12 +01:00
102 lines
2.6 KiB
C++
102 lines
2.6 KiB
C++
#pragma once
|
|
#include <System/System.h>
|
|
#include "BaseWorldSpell.h"
|
|
#include "WorldSpellTimeDestroyBehaviour.h"
|
|
#include "WorldSpellStraightBehaiour.h"
|
|
#include "WorldSpellHitCallbackBehaviour.h"
|
|
#include "WorldSpellFollowBehaviour.h"
|
|
#include "SpellProjectileData.h"
|
|
#include "WorldEntity.h"
|
|
#include "Spell.h"
|
|
#include "Vector3.h"
|
|
#include "BSState.h"
|
|
#include "Collider.h"
|
|
#include "UnityEngine.h"
|
|
|
|
using namespace UnityEngine;
|
|
using namespace BS::Player;
|
|
using namespace System;
|
|
namespace BS {
|
|
namespace SpellsNS {
|
|
namespace WorldSpells {
|
|
//Forward Declaration
|
|
class WorldSpellTimeDestroyBehaviour;
|
|
|
|
class WorldSpell : public virtual BaseWorldSpell, public virtual Object{
|
|
//Attribute: SerializeField*
|
|
private:
|
|
WorldSpellTimeDestroyBehaviour* WorldSpellTimeDestroyBehaviour;
|
|
//Attribute: SerializeField*
|
|
private:
|
|
WorldSpellStraightBehaiour* WorldSpellStraightBehaiour;
|
|
//Attribute: SerializeField*
|
|
private:
|
|
WorldSpellHitCallbackBehaviour* WorldSpellHitCallbackBehaviour;
|
|
//Attribute: SerializeField*
|
|
private:
|
|
WorldSpellFollowBehaviour* WorldSpellFollowBehaviour;
|
|
//Attribute: SerializeField*
|
|
private:
|
|
SpellProjectileData* spellProjectileAttribute;
|
|
//Attribute: SerializeField*
|
|
private:
|
|
WorldEntity* caster;
|
|
//Attribute: SerializeField*
|
|
private:
|
|
WorldEntity* target;
|
|
//Attribute: SerializeField*
|
|
private:
|
|
Spell* spell;
|
|
//Attribute: SerializeField*
|
|
private:
|
|
float spellScale;
|
|
//Attribute: SerializeField*
|
|
private:
|
|
Vector3* dir;
|
|
public:
|
|
SpellProjectileData* getSpellProjectileAttribute();
|
|
public:
|
|
void setSpellProjectileAttribute(SpellProjectileData* value);
|
|
public:
|
|
WorldEntity* getCaster();
|
|
//Ignored empty method declaration
|
|
public:
|
|
WorldEntity* getTarget();
|
|
public:
|
|
void setTarget(WorldEntity* value);
|
|
public:
|
|
Spell* getSpell();
|
|
//Ignored empty method declaration
|
|
public:
|
|
float getSpellScale();
|
|
//Ignored empty method declaration
|
|
public:
|
|
Vector3* getDir();
|
|
//Ignored empty method declaration
|
|
public:
|
|
Object* getData();
|
|
public:
|
|
void setData(Object* value);
|
|
private:
|
|
void Awake();
|
|
public:
|
|
void Init();
|
|
private:
|
|
void Update();
|
|
public:
|
|
void OnTriggerEnter(Collider* otherCollider);
|
|
public:
|
|
void Destroy();
|
|
public:
|
|
void SetData(SpellProjectileData* spellProjectileAttribute, WorldEntity* caster, Spell* spell, float spellScale, Vector3* dir = , WorldEntity* target = null);
|
|
public:
|
|
void SetData(WorldSpell* other);
|
|
public:
|
|
Object* Data_var;
|
|
public:
|
|
WorldSpell();
|
|
};
|
|
}
|
|
}
|
|
}
|