Beispiel #1
0
        /// <summary>
        /// Arme spear.
        /// </summary>
        /// <returns></returns>
        public static WeaponModel Spear()
        {
            // Chargement des constantes
            var cst = GameServer.GetScene().Constants.Equip;
            // Arme
            WeaponModel model = new Equip.WeaponModel();

            model.Name = "Spear";

            // Décrit le niveau 1 de l'arme
            WeaponUpgradeModel lvl1 = new Equip.WeaponUpgradeModel()
            {
                // ++ Coût
                Cost = cst.EquipCost[LOW],

                // Décrit le spell d'attaque de l'arme.
                Description = new Spells.SpellLevelDescription()
                {
                    // Pour les armes : le cd doit être de 1.
                    BaseCooldown = 1.0f,

                    // Casting de l'arme : permet de rooter le héros qui attaque pendant son
                    // auto attaque.
                    CastingTime            = 0.01f,
                    CastingTimeAlterations = CastingTimeAlteration,

                    // ++ Range
                    TargetType = TargetInfo(HIGH),

                    // Effets à l'impact : en général des dégâts plus ou moins élevés.
                    OnHitEffects = new List <StateAlterationModel>()
                    {
                        // ++ Damage flat, Ad ratio
                        OnHitDamages(MEDIUM, MEDIUM)
                    },
                },
                // ++ Vitesse d'attaque / bonus d'ad
                PassiveAlterations = Passives(MEDIUM, MEDIUM),
            };

            // Niveau 2 de l'arme
            WeaponUpgradeModel lvl2 = lvl1.Copy();

            lvl2.Cost = cst.UpgradeCost1;
            lvl2.PassiveAlterations[1].FlatValue += cst.UpgradeAdBonus[LOW];
            lvl2.PassiveAlterations[0].FlatValue += cst.UpgradeAsBonus[LOW];

            // Niveau 3 de l'arme
            WeaponUpgradeModel lvl3 = lvl2.Copy();

            lvl3.Cost = cst.UpgradeCost2;
            lvl3.PassiveAlterations[1].FlatValue += cst.UpgradeAdBonus[LOW];
            lvl3.PassiveAlterations[0].FlatValue += cst.UpgradeAsBonus[LOW];
            model.Upgrades = new List <Equip.WeaponUpgradeModel>()
            {
                lvl1, lvl2, lvl3
            };
            return(model);
        }
Beispiel #2
0
        /// <summary>
        /// Retourne une copie complète de cet instance.
        /// </summary>
        /// <returns></returns>
        public WeaponUpgradeModel Copy()
        {
            WeaponUpgradeModel copy = new WeaponUpgradeModel();

            copy.Cost = Cost;
            copy.PassiveAlterations = new List <Entities.StateAlterationModel>();
            foreach (var alt in PassiveAlterations)
            {
                copy.PassiveAlterations.Add(alt.Copy());
            }
            copy.Description = Description.Copy();
            return(copy);
        }