private void monsterAttack() //Monster attacks!
        {
            Monster mon  = _monster;
            Hero    hero = mon.FindTarget(_theParty);
            int     monsterDamage;


            int randSpecial = _randomNumber.Next(10) + 1;

            if (randSpecial <= mon.getSpecialAttackFrequency())
            {
                _Paragraph.Inlines.Add(new Bold(new Run(_monster.PerformSpecialAttack(_theParty, 0, _monster)))
                {
                    Foreground = Brushes.Red
                });
                _Paragraph.Inlines.Add(new LineBreak());
            }
            else
            {
                if (mon.getIsPhysical())
                {
                    if (hero.getIsDefending())
                    {//based on the attack of the monster - the defense of the hero. A greater value is used for defending heroes
                        monsterDamage = mon.BasicAttack() - hero.getDefendingDefense();
                    }
                    else
                    {
                        monsterDamage = mon.BasicAttack() - hero.getModDefense();
                    }
                }
                else
                {
                    if (hero.getIsDefending())
                    {
                        monsterDamage = mon.BasicAttack() - hero.getDefendingResistance();
                    }
                    else
                    {
                        monsterDamage = mon.BasicAttack() - hero.getModResistance();
                    }
                }
                if (monsterDamage < 0)
                {
                    monsterDamage = 0;
                }



                hero.setCurHealth(hero.getCurHealth() - monsterDamage); //actual damage is applied

                _Paragraph.Inlines.Add(new Bold(new Run("The " + mon.getName() + " attacks " + hero.getName() + " for " + monsterDamage + " damage."))
                {
                    Foreground = Brushes.Red
                });
                _Paragraph.Inlines.Add(new LineBreak());
            }

            updateVisuals();
            checkForDefeatedUnit();
        }
Exemple #2
0
 public string unUse(Hero _hero)
 {
     _hero.setCurHealth(_hero.getCurHealth() - getEffect().getHealthValue());
     _hero.setCurMana(_hero.getCurMana() - getEffect().getManaValue());
     _hero.setModStrength(_hero.getModStrength() - getEffect().getStrengthValue());
     _hero.setModMagic(_hero.getModMagic() - getEffect().getMagicValue());
     _hero.setModDefense(_hero.getModDefense() - getEffect().getPhysicalDefenseValue());
     _hero.setModResistance(_hero.getModResistance() - getEffect().getResistanceDefenseValue());
     return(_hero.getName() + " had effect of " + this.getItemName() + ", " + getEffect().getEffectName() + getEffect().getEffectAmount());
 }
 public string equip(Hero _hero)
 {
     _hero.setMaxHealth(_hero.getMaxHealth() + getEffect().getHealthValue());
     _hero.setMaxMana(_hero.getMaxMana() + getEffect().getManaValue());
     _hero.setModStrength(_hero.getModStrength() + getEffect().getStrengthValue());
     _hero.setModMagic(_hero.getModMagic() + getEffect().getMagicValue());
     _hero.setModDefense(_hero.getModDefense() + getEffect().getPhysicalDefenseValue());
     _hero.setModResistance(_hero.getModResistance() + getEffect().getResistanceDefenseValue());
     return(_hero.getName() + " equipped " + this.getItemName() + ", " + getEffect().getEffectName() + getEffect().getEffectAmount());
 }
Exemple #4
0
        public string use(Hero hero)
        {
            _hero = hero;
            _hero.setCurHealth(_hero.getCurHealth() + getEffect().getHealthValue());
            _hero.setCurMana(_hero.getCurMana() + getEffect().getManaValue());
            _hero.setModStrength(_hero.getModStrength() + getEffect().getStrengthValue());
            _hero.setModMagic(_hero.getModMagic() + getEffect().getMagicValue());
            _hero.setModDefense(_hero.getModDefense() + getEffect().getPhysicalDefenseValue());
            _hero.setModResistance(_hero.getModResistance() + getEffect().getResistanceDefenseValue());

            if (_hasStatusEffect)
            {
                _statusEffect.setHero(_hero);
                _hero.Subscribe(_statusEffect);
            }

            else
            {
                return(_hero.getName() + " used " + this.getItemName() + ", " + getEffect().getEffectName() + getEffect().getEffectAmount());
            }

            return("The status effect was applied.");
        }