コード例 #1
0
        /// <summary>
        /// Demande une utilisation de l'arme.
        /// Retourne true si l'utilisation a réussi, false sinon.
        /// </summary>
        /// <param name="hero"></param>
        /// <returns></returns>
        public Spells.SpellUseResult Use(Entities.EntityHero hero, Entities.EntityBase entity)
        {
            // Vérifie que le cooldown de l'arme est à 0.
            if (m_cooldownSeconds > float.Epsilon)
            {
                return(Spells.SpellUseResult.OnCooldown);
            }
            if (hero.IsBlind)
            {
                return(Spells.SpellUseResult.Blind);
            }

            m_cooldownSeconds = 1.0f / Math.Max(hero.GetAttackSpeed(), 0.2f);

            Spells.SpellLevelDescription attackSpell = GetAttackSpell();
            Spells.WeaponAttackSpell     spell       = new Spells.WeaponAttackSpell(hero, attackSpell, Enchant);
            return(spell.Use(new Spells.SpellCastTargetInfo()
            {
                Type = Spells.TargettingType.Targetted, TargetId = entity.ID
            }, true));
        }
コード例 #2
0
 /// <summary>
 /// Crée une nouvelle instance de Weapon upgrade initialisée avec
 /// les valeurs données.
 /// </summary>
 public WeaponUpgradeModel(Spells.SpellLevelDescription description, List <Entities.StateAlterationModel> passiveAlterations, float cost)
 {
     PassiveAlterations = new List <Entities.StateAlterationModel>();
     Description        = description;
     Cost = cost;
 }
コード例 #3
0
 /// <summary>
 /// Crée une nouvelle instance de WeaponUpgradeModel.
 /// </summary>
 public WeaponUpgradeModel()
 {
     PassiveAlterations = new List <Entities.StateAlterationModel>();
     Description        = new Spells.SpellLevelDescription();
     Cost = 0;
 }