예제 #1
0
    bool TryUseSkill(FightUnitPoint targetUnit)
    {
        switch (Squad.unitInfo.activeSkill)
        {
        case UnitInfo.ActiveSkill.Heal:
            if (targetUnit.IsHeroUnit == IsHeroUnit)
            {
                if (targetUnit == this)
                {
                    return(false);
                }
                targetUnit.Squad.CurrentHp += (targetUnit.Squad.unitInfo.unitHp * Squad.unitInfo.healPercent) / 100;
                SkillUsed = true;
                return(true);
            }
            break;

        case UnitInfo.ActiveSkill.Damage:
            if (targetUnit.IsHeroUnit != IsHeroUnit)
            {
                if (targetUnit == this)
                {
                    return(false);
                }
                targetUnit.SetDamage(Squad.unitInfo.damageConst + Squad.unitInfo.damageKoef * DamageDone);
                SkillUsed = true;
                return(true);
            }
            break;

        case UnitInfo.ActiveSkill.AoE:
            int damage = Squad.unitInfo.AoEDamage;
            FightModule.Instance.GetAllUnit().ForEach((FightUnitPoint unit) =>
            {
                if (unit.Squad != null)
                {
                    //на случай если умирает юнит использующий скилл
                    unit.SetDamage(damage);
                }
            });
            SkillUsed = true;
            return(true);

        default:
            Debug.LogError("Что-то пошло не так");
            return(false);
        }
        return(false);
    }
예제 #2
0
 void Attack(FightUnitPoint unitToAttack)
 {
     DamageDone += Squad.Attack;
     unitToAttack.SetDamage(Squad.Attack);
 }