public override void TakeEffect(AbilityInfo[] info) { base.TakeEffect(info); //Get Info SourceInfo sourceInfo = GetAbilityInfo <SourceInfo>(); TargetInfo targetInfo = GetAbilityInfo <TargetInfo>(); CreateEventData(sourceInfo, targetInfo); TrigggerBeforeActionEvent(sourceInfo.m_Source); //get source power; int pow = sourceInfo.GetPower(); foreach (Unit unit in targetInfo.m_Targets) { m_TargetDelta = 0; m_EventData.m_CurrentTarget = unit; TriggerBeforeReceiveEffectEvent(unit); int value = GetValue(unit, pow); if (value > 0) { ChangeStats(unit, value); } else { ChangeStats(unit, 0); } //TriggerAfterReceiveEffectEvent(unit); } }