Пример #1
0
    protected virtual void HitCollider(Collider2D other)
    {
        // 音效(動畫)可以和技能相關,故放置在此
        GameManager.instance.musicManager.PlaySE("main_menu_hover");
        // TODO: 受击动画不应由此触发吧
        other.transform.parent.GetComponent <Animator>().Play("BeHit");
        Creature creature = other.transform.parent.GetComponent <Creature>();

        // 技能結果
        creature.Damage(damage);
        // BUFF
        if (1 <= cSkill.level && cSkill.level <= cSkill.skill.buffList.Length)
        {
            creature.AddBuff(cSkill.buff, 5f);
        }

        // 碰撞后动作
        if (destroyGObjOnTriggerEnter)
        {
            Debug.Log("Destroy On Trigger Enter");
            DestroyMe();
            return;
        }
        if (disableScriptOnTriggerEnter)
        {
            // this.enabled = false;
            GetComponent <Collider2D>().enabled = false;
        }
    }
Пример #2
0
 public override bool ApplySelf(Creature self)
 {
     foreach (var buff in Buffs)
     {
         self.AddBuff(buff);
     }
     base.ApplySelf(self);
     return(true);
 }
Пример #3
0
 private void AddBuff(TriggerType trigger, Creature target)
 {
     if (this.Define.Buff == null || this.Define.Buff.Count == 0)
     {
         return;
     }
     foreach (var buffId in this.Define.Buff)
     {
         var buffDefine = DataManager.Instance.Buffs[buffId];
         if (buffDefine.Trigger != trigger)
         {
             continue;                               //触发类型不一样
         }
         if (buffDefine.Target == TargetType.Self)
         {
             this.Owner.AddBuff(this.Context, buffDefine);
         }
         else if (buffDefine.Target == TargetType.Target)
         {
             target.AddBuff(this.Context, buffDefine);
         }
     }
 }