/// <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); }
/// <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); }