//< 버프 적용 void AffectBuff(float affectValue, System.Action <bool> _callback) { //< 스턴일경우에는 체크 if ((BuffType)buffInfo.buffType == BuffType.Stun) { //< 상대가 푸쉬 상태라면 대기하고있음 //if (Target.FSM.Current_State == UnitState.Push) //{ //Caster.StartCoroutine(PushReadyUpdate(() => //{ //_callback(SkillAbility.BuffApplySkill(true, buffInfo, Caster, Target, affectValue, this)); //})); //} //else _callback(SkillAbility.BuffApplySkill(true, buffInfo, Caster, Target, affectValue, this)); } else { _callback(SkillAbility.BuffApplySkill(true, buffInfo, Caster, Target, affectValue, this)); } }
//< 버프를 완전히 제거 한다. public void DetachBuff() { Live = false; //< 적용된 능력 제거 SkillAbility.BuffApplySkill(false, buffInfo, Caster, Target, affectedValue, this); DeleteUnit(); //< 버프컨트롤러에서 삭제 controller.DetachBuff(this); //< 이펙트가 있을시 삭제 SetEffect(false); //< 무적관련 버프일경우에는 남아있는 무적 버프가있을시 이펙트를 켜준다. switch ((BuffType)buffInfo.buffType) { case BuffType.AllImmune: case BuffType.AttackImmune: case BuffType.SkillImmune: controller.SetImmuneEffect(true); break; } }