コード例 #1
0
 // ignore me:
 public override void ApplyEffect <T>(EffectHandlerComponent unit, T data)
 {
     if (data is MissileEffectData)
     {
         this.ApplyEffect(unit, data);
     }
 }
コード例 #2
0
        private void ApplyEffect(EffectHandlerComponent unit, DamageOverTimeEffectData data)
        {
            Debug.Log("Do Damage: " + data.Amount * Time.deltaTime + " of type " + data.Type.ToString());
            data.Time -= Time.deltaTime;

            data.Finished = data.Time <= 0;
        }
コード例 #3
0
 //! DO THE ACTUALL APPLYEFFECT METHOD HERE:
 private void ApplyEffect(EffectHandlerComponent unit, DamageEffectData data)
 {
     // something like:
     // unit.GetComponent<HealthComponent>().ApplyDamage(data.Amount, data.Type)
     Debug.Log("Do Damage: " + data.Amount + " of type " + data.Type.ToString());
     data.Finished = true;
 }
コード例 #4
0
 //! THIS LOOPHOLE HERE IS SADLY NECESSARY TO OVERCOME THE UNITY'S EDITOR
 //! PROBLEM WITH EXPOSING GENERICS OR INTERFACES IN THE INSPECTOR
 public override void ApplyEffect <T>(EffectHandlerComponent unit, T data)
 {
     if (data is DamageOverTimeEffectData)
     {
         this.ApplyEffect(unit, (DamageOverTimeEffectData)(object)data);
     }
     else if (data is DamageEffectData)
     {
         this.ApplyEffect(unit, (DamageEffectData)(object)data);
     }
 }
コード例 #5
0
 // Use this for initialization
 void Awake()
 {
     EHC = this.GetComponent <EffectHandlerComponent>();
 }
コード例 #6
0
        private void ApplyEffect(EffectHandlerComponent unit, MissileEffectData data)
        {
            // do stuff here:

            // data.Finished = true;
        }