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); }
void Attack(FightUnitPoint unitToAttack) { DamageDone += Squad.Attack; unitToAttack.SetDamage(Squad.Attack); }