Beispiel #1
0
 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;
 }
Beispiel #3
0
 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;
 }
Beispiel #5
0
        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);
 }