/// <summary>
        /// Standard constructor for initializing default items and defining Gear Slots.
        /// </summary>
        /// <param name="gearSlots">Represent the slots in which items can be put.</param>
        /// <param name="defaultDefenseItem">The default item for defense items, defaults to null.</param>
        /// <param name="defaultAttackItem">The default item for attack items, defaults to null.</param>
        /// <param name="defaultMiscItem">The default item for miscellaneous items, defaults to null.</param>
        public GearLoadOut(GearSlots gearSlots, IDefenseItem defaultDefenseItem, IAttackItem defaultAttackItem = null, IWearable defaultMiscItem = null)
        {
            //Loading default items
            _defaultDefenseItem = defaultDefenseItem;
            _defaultAttackItem  = defaultAttackItem;
            _defaultMiscItem    = defaultMiscItem;


            //Instantiating the object for keeping track of worn items
            DefenseItems = new Dictionary <string, IDefenseItem>();
            AttackItems  = new Dictionary <string, IAttackItem>();
            MiscItems    = new Dictionary <string, IWearable>();


            //Adding worn item slots
            //Defense
            foreach (var slot in gearSlots.DefenseSlots)
            {
                DefenseItems.Add(slot, _defaultDefenseItem);
            }
            //Attack
            foreach (var slot in gearSlots.AttackSlots)
            {
                AttackItems.Add(slot, _defaultAttackItem);
            }
            //Miscellaneous
            foreach (var slot in gearSlots.MiscSlots)
            {
                MiscItems.Add(slot, _defaultMiscItem);
            }
        }
        public override IResponse ReceiveHit(DamageResponse hit)
        {
            IDefenseItem   defenseItem = PickDefenseItem();
            DamageResponse defended    = defenseItem.Defend(hit);
            int            damageRoundedUp;

            if (defended.SuccessValue)
            {
                damageRoundedUp = Convert.ToInt32(Math.Ceiling(defended.Damage));
            }
            else
            {
                return(new FailureResponse("A defense Item failed"));
            }

            if (damageRoundedUp > 0)
            {
                Hitpoints = Hitpoints - damageRoundedUp;
                if (Hitpoints == 0)
                {
                    return(Death());
                }
                return(new SuccessResponse($"{Name} of type {GetType().Name} took {damageRoundedUp} points of damage from {hit.Origin.Name}."));
            }

            return(new SuccessResponse($"{Name} blocked the damage from {hit.Origin.Name}'s attack."));
        }
 //Los héroes podrán contar con dos elementos de defensa y uno de ataque
 public Heroe(string name, IAttackItem attackItem, IDefenseItem defenseItem, IDefenseItem defenseItem2)
     : base(name)
 {
     this.AttackItem    = attackItem;
     this.DefenseItem   = defenseItem;
     this.DefenseItem2  = defenseItem2;
     this.VictoryPoints = 0;
 }
 public string UseDefenseItem(IDefenseItem item)
 {
     foreach (IItem I in this.Items)
     {
         if (I == item)
         {
             item1            = this.DefenseItem;
             this.DefenseItem = item;
             Items.Remove(item);
             Items.Add(item1);
             return($"{this.Name} ahora está usando {item}");
         }
         else
         {
             return("Este personaje no contiene este item");
         }
     }
     return("");
 }
Esempio n. 5
0
 public Knight(string name, IAttackItem attackItem, IDefenseItem defenseItem, IDefenseItem defenseItem2)
     : base(name, attackItem, defenseItem, defenseItem2)
 {
 }
Esempio n. 6
0
 public BoarGearLoadOut(GearSlots gearSlots, IDefenseItem defaultDefenseItem = null, IAttackItem defaultAttackItem = null, IWearable defaultMiscItem = null) : base(gearSlots, defaultDefenseItem, defaultAttackItem, defaultMiscItem)
 {
 }
 public Dwarf(string name, IAttackItem attackItem, IDefenseItem defenseItem, IDefenseItem defenseItem2)
     : base(name, attackItem, defenseItem, defenseItem2)
 {
 }
Esempio n. 8
0
 public HeavyPlayer(IAttackItem attackItem, IDefenseItem defenseItem)
 {
     _attackItem  = attackItem;
     _defenseItem = defenseItem;
 }
Esempio n. 9
0
 public void Setup()
 {
     itemDefensa = new Armor(5);
     itemAtaque  = new Axe(33);
 }
Esempio n. 10
0
 public LightPlayer(IAttackItem attackItem, IDefenseItem defenseItem)
 {
     _attackItem  = attackItem;
     _defenseItem = defenseItem;
 }
 public Demonio(string name, IAttackItem attackItem, IDefenseItem defenseItem)
     : base(name, attackItem, defenseItem)
 {
 }
Esempio n. 12
0
 public IPlayer CreatePlayer(IAttackItem attackItem, IDefenseItem defenseItem) =>
 new HeavyPlayer(attackItem, defenseItem);
Esempio n. 13
0
 public DarkWizard(string name, IAttackItem attackItem, IDefenseItem defenseItem, IMagicItem magicItem)
     : base(name, attackItem, defenseItem)
 {
     this.MagicItem = magicItem;
 }
 public Dragon(string name, IAttackItem attackItem, IDefenseItem defenseItem)
     : base(name, attackItem, defenseItem)
 {
 }
 //Los héroes podrán contar con dos elementos de defensa y uno de ataque
 public Villano(string name, IAttackItem attackItem, IDefenseItem defenseItem)
     : base(name)
 {
     this.AttackItem  = attackItem;
     this.DefenseItem = defenseItem;
 }