public static ItemModifierEffect getRandomModifierOfLevel(int level) { int rand = Random.Range(0, 100); ItemModifierEffect modifier; if (rand < 20) { modifier = new ArmourModifier(level); } else if (rand < 40) { modifier = new SpeedModifier(level); } else if (rand < 60) { modifier = new FlatDamageModifier(level); } else if (rand < 80) { modifier = new RelDamageModifier(level); } else { modifier = new LifeModifier(level); } return(modifier); }
private void ParseModifiers(string modifiers) { Regex regex = new Regex(@"\[\'(.+?)\'\]\s*=\s*{(.*?),}"); Match weapon = regex.Match(modifiers); while (weapon.Success) { string weaponName = weapon.Groups[1].Value; regex = new Regex(@"\[\'(.+?)\'\]=\s*{L\s*=\s*([0-9]{1,3}),\s*M\s*=\s*([0-9]{1,3}),\s*H\s*=\s*([0-9]{1,3})}"); Match ammo = regex.Match(weapon.Groups[2].Value); while (ammo.Success) { ArmourModifier armourModifier = new ArmourModifier(); armourModifier.WeaponName = weaponName; armourModifier.AmmoType = ammo.Groups[1].Value; armourModifier.Light = int.Parse(ammo.Groups[2].Value) / 100D; armourModifier.Medium = int.Parse(ammo.Groups[3].Value) / 100D; armourModifier.Heavy = int.Parse(ammo.Groups[4].Value) / 100D; ArmourModifiers.Add(armourModifier); ammo = ammo.NextMatch(); } weapon = weapon.NextMatch(); } if (ArmourModifiers.Count == 0) { Logger.Write($"Error in parsing ArmourModifiers for DPS calculations.", this.GetType().ToString()); } }