private void normalAttack(Hero hero, Monster mon) //Hero attacks!
        {
            int heroDamage;

            if (hero.getIsPhysical())
            {
                heroDamage = hero.BasicAttack() - mon.getModDefense();
            }
            else
            {
                heroDamage = hero.BasicAttack() - mon.getModResistance();
            }
            if (heroDamage < 0)
            {
                heroDamage = 0;
            }

            _Paragraph.Inlines.Add(new Bold(new Run(hero.getName() + " used basic attack for: " + heroDamage + " damage"))//EVENTUALLY, I want to say which monster got attacked, in the swarm window.
            {
                Foreground = hero.getTextColor()
            });
            _Paragraph.Inlines.Add(new LineBreak());

            mon.setCurHealth(mon.getCurHealth() - heroDamage);
            updateVisuals();

            checkForDefeatedUnit();
        }
示例#2
0
        private void normalAttack(Hero hero) //Hero attacks!
        {
            var cw = new ChoiceWindow(_TheSwarm);

            cw.ShowDialog();
            int     attackTarget = cw.getChoiceFromSelect();
            Monster mon          = _TheSwarm[attackTarget];

            int heroDamage;

            if (hero.getIsPhysical())
            {
                heroDamage = hero.BasicAttack() - mon.getModDefense();
            }
            else
            {
                heroDamage = hero.BasicAttack() - mon.getModResistance();
            }
            if (heroDamage < 0)
            {
                heroDamage = 0;
            }

            _Paragraph.Inlines.Add(new Bold(new Run(hero.getName() + " used basic attack for: " + heroDamage + " damage"))
            {
                Foreground = hero.getTextColor()
            });
            _Paragraph.Inlines.Add(new LineBreak());

            mon.setCurHealth(mon.getCurHealth() - heroDamage);
            updateVisuals();

            checkForDefeatedUnit();
        }
 private void defend(Hero hero)
 {
     _Paragraph.Inlines.Add(new Bold(new Run(hero.getName() + " used defend and is taking reduced damage this turn."))
     {
         Foreground = hero.getTextColor()
     });
     _Paragraph.Inlines.Add(new LineBreak());
     hero.setIsDefending(true);
 }
示例#4
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());
 }
示例#6
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.");
        }
        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();
        }