private void Start() { if (!source) { source = GetComponentInParent <MoveUnitData>(); } }
public override void Activate() { if (data && data is MoveUnitData) { moveData = data as MoveUnitData; moveData.move.speed /= 1000; moveData.move.ForceJump /= 1000; } }
public void GetDamage(float power, DamageType kind = DamageType.Physics, MoveUnitData source = null) { if (damageBehaviour) { data.Energy -= damageBehaviour.CalcDamage(power, kind); } else { data.Energy -= power; } if (Data.Energy <= 0) { data.IsDestroyed = true; Sender.SendEvent(EventName.DESTROYER, this, ParmName.TARGET, data, ParmName.SOURCE, source); } }
public void GetDamage(float power, DamageType kind = DamageType.Physics, MoveUnitData source = null) { if (Damage != null) { Damage(power, kind, source); } else { UnitData data = GetComponent <UnitData>(); data.Energy -= power; if (data.Energy <= 0) { Sender.SendEvent(EventName.DESTROYER, this, ParmName.TARGET, data, ParmName.SOURCE, source); Destroy(gameObject); } } }
private void Awake() { Data = GetComponent <MoveUnitData>(); if (!Data) { enabled = false; return; } TakeDamage taken = GetComponent <TakeDamage>(); if (taken) { taken.Damage += GetDamage; } damageBehaviour = GetComponent <DamageBehaviour>(); InitFSM(); if (UseLog) { LogUnity.Add(fsm); } }