示例#1
0
        private bool DoesAttackHit(Combatant com, Random ran)
        {
            int mod = 0;

            Moves.DamageType type = com.SelectedMove.DamageClass;
            switch (type)
            {
            case Moves.DamageType.Gunpowder:
                mod = com.AccuracyModGunpowder;
                break;

            case Moves.DamageType.Ranged:
                mod = com.AccuracyModRanged;
                break;

            case Moves.DamageType.Melee:
                mod = com.AccuracyModMelee;
                break;

            default:
                break;
            }

            int accuracy = AdjustedValueFromModifier(com.SelectedMove.Accuracy, mod);
            int rng      = ran.Next(0, 100);

            if (accuracy >= rng)
            {
                return(true);
            }

            return(false);
        }
示例#2
0
        private int AggDamage(Combatant agg)
        {
            int mod = 0;

            Moves.DamageType type = agg.SelectedMove.DamageClass;
            switch (type)
            {
            case Moves.DamageType.Gunpowder:
                mod = agg.StrengthModGunpowder;
                break;

            case Moves.DamageType.Ranged:
                mod = agg.StrengthModRanged;
                break;

            case Moves.DamageType.Melee:
                mod = agg.StrengthModMelee;
                break;

            default:
                break;
            }

            return(AdjustedValueFromModifier(agg.SelectedMove.Damage, mod));
        }
示例#3
0
        private double DefDefense(Combatant agg, Combatant def)
        {
            double dfn = 0;

            Moves.DamageType type = agg.SelectedMove.DamageClass;
            switch (type)
            {
            case Moves.DamageType.Gunpowder:
                dfn += def.DefenseModGunpowder + def.ArmorType.ResistGunpowder;
                break;

            case Moves.DamageType.Ranged:
                dfn += def.DefenseModRanged + def.ArmorType.ResistRanged;
                break;

            case Moves.DamageType.Melee:
                dfn += def.DefenseModMelee + def.ArmorType.ResistMelee;
                break;

            default:
                break;
            }

            double dfnMod = dfn / 100;

            return(dfnMod);
        }
示例#4
0
        private Moves.DamageType ChooseAnEnemyType()
        {
            Moves.DamageType type = Moves.DamageType.Melee;

            int rng = GetQuestsRNG().Next(0, 100);

            if (rng >= 50)
            {
                type = Moves.DamageType.Ranged;
            }

            return(type);
        }