private void ApplySkillEffectOnTarget(PawnInstance _target, int _effectiveDamage) { Fighter curTargetFighter; if (_target.GetComponent <Mortal>() == null || _target.GetComponent <Mortal>().CurrentHp <= 0) { return; } curTargetFighter = _target.GetComponent <Fighter>(); int curEffDmg = _effectiveDamage; curTargetFighter.IsWaitingForDmgFeedback = true; curTargetFighter.IsWaitingForSkillPanelToClose = true; curTargetFighter.PendingDamage = ((isMeantToHeal) ? -curEffDmg : curEffDmg); if (boeufs != null) { for (int i = 0; i < boeufs.Length; i++) { bool boeufMustBeAdded = true; Fighter tmpTargetFighter = (boeufs[i].BoeufTarget == BoeufTarget.SameAsAttack) ? curTargetFighter : skillUser.GetComponent <Fighter>(); if (boeufs[i].Duration == 0 && boeufs[i].BoeufType == BoeufType.IncreaseStocks && boeufs[i].BoeufTarget == BoeufTarget.Self) { int value; if (boeufs[i].EffectValue == 0) { skillUser.ConsecutiveShots++; value = skillUser.ConsecutiveShots; } else { value = boeufs[i].EffectValue; } skillUser.transform.gameObject.AddComponent <DieFeedback>(); for (int j = 0; j < boeufs[i].SymbolsAffected.Length; j++) { if (boeufs[i].SymbolsAffected[j] == FaceType.Physical) { skillUser.PhysicalSymbolStored += value; } if (boeufs[i].SymbolsAffected[j] == FaceType.Magical) { skillUser.MagicalSymbolStored += value; } if (boeufs[i].SymbolsAffected[j] == FaceType.Defensive) { skillUser.DefensiveSymbolStored += value; } skillUser.transform.GetComponent <DieFeedback>().PopFeedback(new Face(boeufs[i].SymbolsAffected[j], value), skillUser.GetComponent <PawnInstance>()); } continue; } for (int j = 0; j < tmpTargetFighter.EffectiveBoeufs.Count; j++) { if (boeufs[i].BoeufType == tmpTargetFighter.EffectiveBoeufs[j].BoeufType) { if ((boeufs[i].EffectValue > 0 && tmpTargetFighter.EffectiveBoeufs[j].EffectValue > 0 && boeufs[i].EffectValue <= tmpTargetFighter.EffectiveBoeufs[j].EffectValue) || (boeufs[i].EffectValue < 0 && tmpTargetFighter.EffectiveBoeufs[j].EffectValue < 0 && boeufs[i].EffectValue >= tmpTargetFighter.EffectiveBoeufs[j].EffectValue)) { tmpTargetFighter.RemoveBoeuf(tmpTargetFighter.EffectiveBoeufs[j]); break; } else { if ((boeufs[i].EffectValue > 0 && tmpTargetFighter.EffectiveBoeufs[j].EffectValue > 0) || (boeufs[i].EffectValue < 0 && tmpTargetFighter.EffectiveBoeufs[j].EffectValue < 0)) { boeufMustBeAdded = false; break; } } } } if (boeufMustBeAdded) { tmpTargetFighter.AddBoeuf(new BattleBoeuf(boeufs[i])); } } } }