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