public WeaponDataStruct(string name, int accuracy, int critChance, DiceSet damageDice) { this.name = name; this.damageDice = damageDice; this.accuracy = accuracy; this.critChance = critChance; this.critDamagePercent = 200; }
public Weapon(string name, DiceSet damageDice, int accuracy, int critDamagePercent, int critChance, List <WeaponData.WeaponEffects> effects, List <Game.DamageElements> damageTypes) { this.Name = name; this.DamageDice = damageDice; this.Accuracy = accuracy; this.CritDamagePercent = critDamagePercent; this.CritChance = critChance; this.Effects = effects; this.WeaponElements = damageTypes; }
public EnemyDataStruct(string species, int maxHPLow, int maxHPHigh, DiceSet damage, int physDefence, int magiDefence, int hitChance, int dodgeChance, Game.DamageElements damageElement, Game.DamageTypes damageType) { this.maxHPLow = maxHPLow; this.maxHPHigh = maxHPHigh; this.damage = damage; this.hitChance = hitChance; this.dodgeChance = dodgeChance; this.physDefence = physDefence; this.magiDefence = magiDefence; this.damageElement = damageElement; this.damageType = damageType; this.species = species; }
private void Init(int maxHP, DiceSet damage, int hitChance, int dodgeChance, int physDefence, int magiDefence, Game.DamageElements damageElement, Game.DamageTypes damageType, string species, string name) { this.MaxHP = maxHP; this.CurrHP = maxHP; this.Damage = damage; this.HitChance = hitChance; this.DodgeChance = DodgeChance; this.PhysDefence = physDefence; this.MagiDefence = magiDefence; this.DamageElement = damageElement; this.DamageType = damageType; this.Species = species; this.Name = name; }
public static Weapon GenerateWeapon(int difficulty, Random rand) { WeaponDataStruct wep = coreWeapons[rand.Next(0, coreWeapons.Length)]; EnchantmentDataStruct pre = prefixEnchantments.Values.ElementAt(rand.Next(0, prefixEnchantments.Count())); EnchantmentDataStruct sue = suffixEnchantmentsBasic[rand.Next(0, suffixEnchantmentsBasic.Length)]; int tier = 0; int acc = wep.accuracy; int critC = wep.critChance; int critD = wep.critDamagePercent; string name = pre.name + wep.name + sue.name; DiceSet dmgd = wep.damageDice; List <Game.DamageElements> dmgE = new List <Game.DamageElements>(); List <WeaponEffects> weffs = new List <WeaponEffects>(); int[] diceByTier = { 4, 6, 8, 10, 12 }; IEnumerable <WeaponEffectStruct> es = pre.effects.Union(sue.effects); foreach (WeaponEffectStruct eff in es) { switch (eff.effect) { case WeaponEffects.Terror: weffs.Add(WeaponEffects.Terror); break; case WeaponEffects.Bleed: weffs.Add(WeaponEffects.Bleed); break; case WeaponEffects.DamageModInc: dmgd.Modifier += int.Parse(eff.values[0]); break; case WeaponEffects.DamageDiceInc: dmgd.AddDice(new Dice(int.Parse(eff.values[0]), int.Parse(eff.values[1]))); break; case WeaponEffects.DamageDiceByTier: dmgd.AddDice(new Dice(int.Parse(eff.values[0]), diceByTier[tier])); break; case WeaponEffects.DamageModByTier: dmgd.Modifier += int.Parse(eff.values[0]) * tier; break; case WeaponEffects.AccuracyByTier: acc += int.Parse(eff.values[0]) * tier; break; case WeaponEffects.CritChanceInc: critC += int.Parse(eff.values[0]); break; case WeaponEffects.CritDamageMultiplierInc: critD += int.Parse(eff.values[0]); break; case WeaponEffects.Element: dmgE.Add((Game.DamageElements)Enum.Parse(typeof(Game.DamageElements), eff.values[0])); break; case WeaponEffects.AccuracyInc: acc += int.Parse(eff.values[0]); break; default: break; } } // Tier: // +5 acc per tier and +2 DmgMod acc += tier * 5; dmgd.Modifier += tier * 2; // Make sure element isnt empty if (dmgE.Count == 0) { dmgE.Add(Game.DamageElements.None); } return(new Weapon(name, dmgd, acc, critD, critC, weffs, dmgE)); }
public Enemy(int maxHP, DiceSet damage, int hitChance, int dodgeChance, int physDefence, int magiDefence, Game.DamageElements damageElement, Game.DamageTypes damageType, string species, string name) { Init(maxHP, damage, hitChance, dodgeChance, physDefence, magiDefence, damageElement, damageType, species, name); }