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; } }
public override bool ApplySelf(Creature self) { foreach (var buff in Buffs) { self.AddBuff(buff); } base.ApplySelf(self); return(true); }
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); } } }