public static string GetScriptName_Combined(this MeleeWeaponSkill weaponSkill) { switch (weaponSkill) { case MeleeWeaponSkill.HeavyWeapons: return("heavy"); case MeleeWeaponSkill.LightWeapons: case MeleeWeaponSkill.FinesseWeapons: return("light_finesse"); case MeleeWeaponSkill.TwoHandedCombat: return("two_handed"); } return(null); }
private static string GetDamageScript(MeleeWeaponSkill weaponSkill, TreasureWeaponType weaponType) { return("MeleeWeapons.Damage_WieldDifficulty_DamageVariance." + weaponSkill.GetScriptName_Combined() + "_" + weaponType.GetScriptName() + ".txt"); }
private static string GetOffenseDefenseScript(MeleeWeaponSkill weaponSkill, TreasureWeaponType weaponType) { return("MeleeWeapons.WeaponOffense_WeaponDefense." + weaponType.GetScriptShortName() + "_offense_defense.txt"); }
/// <summary> /// Creates and optionally mutates a new MeleeWeapon /// </summary> public static WorldObject CreateMeleeWeapon(TreasureDeath profile, bool isMagical, MeleeWeaponSkill weaponSkill = MeleeWeaponSkill.Undef, bool mutate = true) { var wcid = 0; var weaponType = 0; var eleType = ThreadSafeRandom.Next(0, 4); if (weaponSkill == MeleeWeaponSkill.Undef) { weaponSkill = (MeleeWeaponSkill)ThreadSafeRandom.Next(1, 4); } switch (weaponSkill) { case MeleeWeaponSkill.HeavyWeapons: weaponType = ThreadSafeRandom.Next(0, LootTables.HeavyWeaponsMatrix.Length - 1); wcid = LootTables.HeavyWeaponsMatrix[weaponType][eleType]; break; case MeleeWeaponSkill.LightWeapons: weaponType = ThreadSafeRandom.Next(0, LootTables.LightWeaponsMatrix.Length - 1); wcid = LootTables.LightWeaponsMatrix[weaponType][eleType]; break; case MeleeWeaponSkill.FinesseWeapons: weaponType = ThreadSafeRandom.Next(0, LootTables.FinesseWeaponsMatrix.Length - 1); wcid = LootTables.FinesseWeaponsMatrix[weaponType][eleType]; break; case MeleeWeaponSkill.TwoHandedCombat: weaponType = ThreadSafeRandom.Next(0, LootTables.TwoHandedWeaponsMatrix.Length - 1); wcid = LootTables.TwoHandedWeaponsMatrix[weaponType][eleType]; break; } var wo = WorldObjectFactory.CreateNewWorldObject((uint)wcid); if (wo != null && mutate) { if (!MutateMeleeWeapon(wo, profile, isMagical)) { log.Warn($"[LOOT] {wo.WeenieClassId} - {wo.Name} is not a MeleeWeapon"); return(null); } } return(wo); }