public IGun Get(GunType type, WeaponTier weaponTier) { Assert.ValidEnum(type); Assert.ValidEnum(weaponTier); return(Build(type, weaponTier)); }
private void parseWishlistText(string[] text) { int lineNum = 0; weaponTier = getWeaponTier(text[lineNum]); weaponName = getWeaponName(text[lineNum]).Trim(); weaponNameSort = Regex.Replace(weaponName, "^the ", "", RegexOptions.IgnoreCase); weaponNameSort = Regex.Replace(weaponNameSort, "^a ", "", RegexOptions.IgnoreCase); lineNum++; if (text[lineNum].Contains("============")) { gameType1 = getGameType(text[lineNum]); lineNum++; } lineNum = checkRolls(text, lineNum, gameType1); lineNum = checkCombo(text, lineNum, gameType1); lineNum = checkMasterwork(text, lineNum, gameType1); //Check for 2nd listing //lineNum++; if (lineNum < text.Length && text[lineNum].Contains("============") && !text[lineNum].ToLower().Contains("wishlist")) { gameType2 = getGameType(text[lineNum]); lineNum++; lineNum = checkRolls(text, lineNum, gameType2); lineNum = checkCombo(text, lineNum, gameType2); lineNum = checkMasterwork(text, lineNum, gameType2); } }
private void ValidateInput(ICollection <GunProperty> properties, int reload, int misfire, ICollection <RollType> damageDice, WeaponTier weaponTier, GunRange range, int gunCost, int ammoCost) { Assert.HasNoNullEntries(properties); foreach (GunProperty property in properties) { Assert.ValidEnum(property); } Assert.IsTrue(reload >= CommonConstants.MinimumReload); Assert.IsTrue(misfire >= CommonConstants.MinimumMisfire); Assert.IsTrue(misfire <= CommonConstants.MaximumMisfire); Assert.HasNoNullEntries(damageDice); Assert.IsNotEmpty(damageDice); foreach (RollType damageDie in damageDice) { Assert.ValidEnum(damageDie); Assert.IsTrue(damageDie != RollType.None); } Assert.ValidEnum(weaponTier); Assert.IsNotNull(range); Assert.IsTrue(gunCost > 0); Assert.IsTrue(ammoCost > 0); }
private IGun Build(GunType type, WeaponTier weaponTier) { Assert.ValidEnum(type); IGun ret = null; switch (type) { case GunType.PalmPistol: { ret = BuildPalmPistol(weaponTier); break; } case GunType.Pistol: { ret = BuildPistol(weaponTier); break; } case GunType.Musket: { ret = BuildMusket(weaponTier); break; } case GunType.Pepperbox: { ret = BuildPepperbox(weaponTier); break; } case GunType.Blunderbuss: { ret = BuildBlunderbuss(weaponTier); break; } case GunType.BadNews: { ret = BuildBadNews(weaponTier); break; } case GunType.HandMortar: { ret = BuildHandMortar(weaponTier); break; } default: { throw new ArgumentException(); } } return(ret); }
public WeaponPartSchematic(string name, float _reloadTime, int energyUsage, WeaponTier _tier, Bullet.BulletTypes _bulletType, Dictionary <string, object> bulletInfos) : base(name, PartType.Weapon) { Name = name; BulletInfos = bulletInfos; ReloadTimeInSec = _reloadTime; EnergyUsage = energyUsage; Tier = _tier; BulletType = _bulletType; }
private IGun BuildPistol(WeaponTier weaponTier) { return(new Gun(EmptyProperties, 4, 1, new List <RollType>() { RollType.d10 }, weaponTier, new GunRange(60, 240), 150, 20)); }
private IGun BuildPepperbox(WeaponTier weaponTier) { return(new Gun(EmptyProperties, 6, 2, new List <RollType>() { RollType.d10 }, weaponTier, new GunRange(80, 320), 250, 20)); }
private IGun BuildBlunderbuss(WeaponTier weaponTier) { return(new Gun(EmptyProperties, 1, 2, new List <RollType>() { RollType.d8, RollType.d8 }, weaponTier, new GunRange(15, 60), 300, 100)); }
private IGun BuildHandMortar(WeaponTier weaponTier) { return(new Gun(new List <GunProperty>() { GunProperty.Explosive }, 1, 3, new List <RollType>() { RollType.d8 }, weaponTier, new GunRange(30, 60), 1000, //TODO: this is 'crafted'/custom 1000)); }
private IGun BuildBadNews(WeaponTier weaponTier) { return(new Gun(new List <GunProperty>() { GunProperty.TwoHand }, 1, 3, new List <RollType>() { RollType.d12 }, weaponTier, new GunRange(200, 800), 1000, //TODO: this is 'crafted'/custom 200)); }
private IGun BuildMusket(WeaponTier weaponTier) { return(new Gun(new List <GunProperty>() { GunProperty.TwoHand }, 1, 2, new List <RollType>() { RollType.d12 }, weaponTier, new GunRange(120, 480), 300, 25)); }
private IGun BuildPalmPistol(WeaponTier weaponTier) { return(new Gun(new List <GunProperty>() { GunProperty.Light }, 1, 1, new List <RollType>() { RollType.d8 }, weaponTier, new GunRange(40, 160), 50, 10)); }
public void RandomWeaponTier() { int tier = RandomNumber(0, 3); if (tier == 0) { weaponTier = WeaponTier.Melee; } else if (tier == 1) { weaponTier = WeaponTier.Pistols; } else if (tier == 2) { weaponTier = WeaponTier.Full; } }
private WeaponTier getWeaponTier(string line) { WeaponTier t = WeaponTier.U; string[] titleString = line.Split('-'); if (titleString.Length > 1 && line.Contains(" - ")) { weaponTierString = titleString[titleString.Length - 1]; char tier = char.Parse(titleString[titleString.Length - 1].Substring(1, 1)); if (tier == 'S' || tier == 's') { t = WeaponTier.S; } else if (tier == 'A' || tier == 'a') { t = WeaponTier.A; } else if (tier == 'B' || tier == 'b') { t = WeaponTier.B; } else if (tier == 'C' || tier == 'c') { t = WeaponTier.C; } else if (tier == 'F' || tier == 'f') { t = WeaponTier.F; } else { t = WeaponTier.U; } } else { t = WeaponTier.U; } return(t); }
public Gun(ICollection <GunProperty> properties, int reload, int misfire, ICollection <RollType> damageDice, WeaponTier weaponTier, GunRange range, int gunCost, //value in gold int ammoCost) //value in copper { ValidateInput(properties, reload, misfire, damageDice, weaponTier, range, gunCost, ammoCost); Properties = properties; //TODO: deep copy? DamageModifier = GetDmgMod(weaponTier); HitModifier = GetHitMod(weaponTier); Reload = GetReloadValue(reload, weaponTier); Misfire = misfire; DamageDice = damageDice; Range = range; AmmoCost = ammoCost; GunCost = gunCost; }
public static int GetWeaponTierMod(WeaponTier weaponTier) { Assert.IsTrue(WeaponTierToModMap.ContainsKey(weaponTier)); return(WeaponTierToModMap[weaponTier]); }
private IModifier GetHitMod(WeaponTier weaponTier) { int weaponTierModValue = CommonConstants.GetWeaponTierMod(weaponTier); return(new Modifier(weaponTierModValue)); }
private int GetReloadValue(int reload, WeaponTier weaponTier) { return(weaponTier == WeaponTier.ArtificerReloadProperty ? CommonConstants.InfiniteAmmo : reload); }
public DimWishlistLine(long weaponId, WeaponTier weaponTier, GameType gameType1, GameType gameType2, RollRating p1, RollRating p2, RollRating p3, RollRating p4, string pveMasterwork, string pvpMasterwork, List <Combo> combos) { line = "dimwishlist:item=" + weaponId.ToString() + "&perks="; if (p1 != null) { line += p1.id + ","; } if (p2 != null) { line += p2.id + ","; } if (p3 != null) { line += p3.id + ","; } if (p4 != null) { line += p4.id + ","; } line = line.Substring(0, line.Length - 1); //Wishlist Notes line += "#notes:"; float pve = getRating(p1, p2, p3, p4, combos, gameType1); float pvp = getRating(p1, p2, p3, p4, combos, gameType2); maxRating = Math.Max(pve, pvp); if (maxRating < Properties.Settings.Default.MinRating) { line = ""; } else { if (Properties.Settings.Default.NoteRatings) { if (pve >= Properties.Settings.Default.MinRating && pvp >= Properties.Settings.Default.MinRating) { line += weaponTier + "pve" + pve + ", " + weaponTier + "pvp" + pvp; } else if (pve >= Properties.Settings.Default.MinRating && gameType1 == GameType.Both) { line += weaponTier + "pve" + pve + ", " + weaponTier + "pvp" + pve; } else if (pve >= Properties.Settings.Default.MinRating) { line += weaponTier + "pve" + pve; } else if (pvp >= Properties.Settings.Default.MinRating) { line += weaponTier + "pvp" + pvp; } } if (Properties.Settings.Default.NoteMasterwork) { if (pve >= Properties.Settings.Default.MinRating && pvp >= Properties.Settings.Default.MinRating) { if (pveMasterwork != null && pvpMasterwork != null && pveMasterwork != pvpMasterwork) { line += " MWpve " + pveMasterwork + ", MWpvp " + pvpMasterwork; } else if (pveMasterwork != null && pvpMasterwork != null && pveMasterwork == pvpMasterwork) { line += " MW " + pveMasterwork; } else if (pveMasterwork != null) { line += " MWpve " + pveMasterwork; } else if (pvpMasterwork != null) { line += " MWpvp " + pvpMasterwork; } } else if (pve >= Properties.Settings.Default.MinRating && gameType1 == GameType.Both) { if (pveMasterwork != null) { line += " MW " + pveMasterwork; } } else if (pve >= Properties.Settings.Default.MinRating) { if (pveMasterwork != null) { line += " MW " + pveMasterwork; } } else if (pvp >= Properties.Settings.Default.MinRating) { if (pvpMasterwork != null) { line += " MW " + pvpMasterwork; } } } } }