示例#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);
        }
示例#2
0
        /// <summary>
        /// Décrit une arme de base.
        /// </summary>
        /// <returns></returns>
        public static WeaponModel BaseWeapon()
        {
            // Chargement des constantes
            var cst = GameServer.GetScene().Constants.Equip;
            // Arme
            WeaponModel model = new Equip.WeaponModel();

            model.Name = "Arme de base";

            // Décrit le niveau 1 de l'arme
            WeaponUpgradeModel lvl1 = new Equip.WeaponUpgradeModel()
            {
                Cost = 0,
                // Décrit tous les passifs conférés par l'arme.
                PassiveAlterations = Passives(LOW, 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,

                    // Mode de visée de l'arme : ne varie généralement pas.
                    TargetType = TargetInfo(LOW),

                    // Effets à l'impact : en général des dégâts plus ou moins élevés.
                    OnHitEffects = new List <StateAlterationModel>()
                    {
                        OnHitDamages(LOW, LOW)
                    },
                }
            };

            model.Upgrades = new List <Equip.WeaponUpgradeModel>()
            {
                lvl1,
            };
            return(model);
        }