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;
    }