protected override IEnumerator AnimateAttack(IEnumerable <ObjectDisplay> enemies) { var atkPwrVal = attackPower.GetValue(); var instanceId = GetInstanceID(); var allyArray = enemies.Where(x => x.GetInstanceID() != instanceId) .Select(x => (CharacterDisplay)x) .ToArray(); var minRateHp = 1f; CharacterDisplay minHpChar = null; foreach (var c in allyArray) { var rateHp = c.hp / c.maxHP; if (rateHp < minRateHp) { minRateHp = rateHp; minHpChar = c; } } if (minHpChar == null || minHpChar is Object && minHpChar.Equals(null)) { yield break; } if (minHpChar.hp >= minHpChar.maxHP) { minHpChar.hp = minHpChar.maxHP; yield break; } minHpChar.hp += atkPwrVal; }