Class for the effects of items e.g. increasing the health by 5
Пример #1
0
 /// <summary>
 /// Method the activate the effects of an item for an owner
 /// </summary>
 /// <param name="effect">The effect which should be (de)activated</param>
 /// <param name="enable">Whether the effect gets (de)activated</param>
 public void ChangeEffect(ItemEffect effect, bool enable)
 {
     if (_owner != null)
     {
         switch (effect.property)
         {
             case ItemProperty.Evade:
                 if (enable)
                 {
                     _owner.evade += effect.effect;
                 }
                 else
                 {
                     _owner.evade -= effect.effect;
                 }
                 break;
             case ItemProperty.Block:
                 if (enable)
                 {
                     _owner.block += effect.effect;
                 }
                 else
                 {
                     _owner.block -= effect.effect;
                 }
                 break;
             case ItemProperty.Penetrate:
                 if (enable)
                 {
                     _owner.penetrate += effect.effect;
                 }
                 else
                 {
                     _owner.penetrate -= effect.effect;
                 }
                 break;
             case ItemProperty.ReduceDamage:
                 if (enable)
                 {
                     _owner.armor += effect.effect;
                 }
                 else
                 {
                     _owner.armor -= effect.effect;
                 }
                 break;
             case ItemProperty.MaxHealth:
                 if (enable)
                 {
                     _owner.maxHealth += effect.effect;
                 }
                 else
                 {
                     _owner.maxHealth -= effect.effect;
                 }
                 break;
             case ItemProperty.MaxMana:
                 if (enable)
                 {
                     _owner.maxMana += effect.effect;
                 }
                 else
                 {
                     _owner.maxMana -= effect.effect;
                 }
                 break;
             case ItemProperty.Mana:
                 if (enable)
                 {
                     _owner.mana = Math.Min(_owner.mana + effect.effect, _owner.maxMana);
                 }
                 else
                 {
                     _owner.mana -= effect.effect;
                 }
                 break;
             case ItemProperty.Health:
                 if (enable)
                 {
                     _owner.health = Math.Min(_owner.health + effect.effect, _owner.maxHealth);
                 }
                 else
                 {
                     _owner.health -= effect.effect;
                 }
                 break;
             case ItemProperty.ManaRegen:
                 if (enable)
                 {
                     _owner.manaReg += effect.effect;
                 }
                 else
                 {
                     _owner.manaReg -= effect.effect;
                 }
                 break;
             case ItemProperty.HealthRegen:
                 if (enable)
                 {
                     _owner.healthReg += effect.effect;
                 }
                 else
                 {
                     _owner.healthReg -= effect.effect;
                 }
                 break;
             case ItemProperty.StealHealth:
                 if (enable)
                 {
                     _owner.stealHealth += effect.effect;
                 }
                 else
                 {
                     _owner.stealHealth -= effect.effect;
                 }
                 break;
             case ItemProperty.StealMana:
                 if (enable)
                 {
                     _owner.stealMana += effect.effect;
                 }
                 else
                 {
                     _owner.stealMana -= effect.effect;
                 }
                 break;
             case ItemProperty.FireDamage:
                 if (enable)
                 {
                     _owner.fireDamage += effect.effect;
                 }
                 else
                 {
                     _owner.fireDamage -= effect.effect;
                 }
                 break;
             case ItemProperty.IceDamage:
                 if (enable)
                 {
                     _owner.iceDamage += effect.effect;
                 }
                 else
                 {
                     _owner.iceDamage -= effect.effect;
                 }
                 break;
             case ItemProperty.FireProtect:
                 if (enable)
                 {
                     _owner.fireDefense += effect.effect;
                 }
                 else
                 {
                     _owner.fireDefense -= effect.effect;
                 }
                 break;
             case ItemProperty.IceProtect:
                 if (enable)
                 {
                     _owner.iceDefense += effect.effect;
                 }
                 else
                 {
                     _owner.iceDefense -= effect.effect;
                 }
                 break;
             case ItemProperty.DestroyWeapon:
                 if (enable)
                 {
                     _owner.destroyWeapon += effect.effect;
                 }
                 else
                 {
                     _owner.destroyWeapon -= effect.effect;
                 }
                 break;
             case ItemProperty.DestroyArmor:
                 if (enable)
                 {
                     _owner.destroyArmor += effect.effect;
                 }
                 else
                 {
                     _owner.destroyArmor -= effect.effect;
                 }
                 break;
         }
     }
 }