コード例 #1
0
ファイル: AttackWithSpell.cs プロジェクト: JakubJukl/SOSCSRPG
        public void Execute(LivingEntity actor, LivingEntity target)
        {
            int damage = RandomNumberGenerator.NumberBetween(_minimumDamage, _maximumDamage) * actor.Intelect;

            string actorName  = (actor is Player) ? "Hráč" : $"{actor.Name.ToLower()}";
            string targetName = (target is Player) ? "tebe" : $"{target.Name.ToLower()}";

            if (damage == 0)
            {
                ReportResult($"{actorName} se netrefil do {targetName}.");
            }
            else
            {
                if (actor.CurrentManaPoints >= _manaCost)
                {
                    ReportResult($"{actorName} zasáhl {targetName} za {damage} dmg{(damage > 1 ? "" : "")}.");

                    target.TakeDamage(damage);
                    actor.DecreaseMana(_manaCost);
                }
                else
                {
                    ReportResult($"Snažil ses použít kouzlo {_spellInUse.Name}, ale ve zmatení si zjistil, že nemáš dost many.");
                }
            }
        }