예제 #1
0
        public override int CalcDamage(Wound wound, Model target, ShootingParams shootingParams)
        {
            if (Range / 2 >= shootingParams.Distance)
            {
                return(CalcDamage(shootingParams, Damage * 2, DamageDice, DiceModes.Max));
            }

            return(base.CalcDamage(wound, target, shootingParams));
        }
예제 #2
0
        public virtual List <Wound> WoundTest(int t, ShootingParams shootingParams)
        {
            List <Wound> wounds = new List <Wound>();

            int s = CalcStrength();

            bool wounded = CalcWounds(s, t, shootingParams, out int roll, out int rollModified);

            if (wounded)
            {
                Wound w = new Wound(this, rollModified, false);
                wounds.Add(w);
            }

            return(wounds);
        }
예제 #3
0
        public virtual bool SaveTest(Wound wound)
        {
            if (wound.Mortal)
            {
                return(false);
            }

            var ap = wound.Weapon.CalcAP();

            int toSaveRoll = Sv - ap;

            if (ISv != 0)
            {
                toSaveRoll = Math.Min(toSaveRoll, ISv);
            }

            //Save roll
            var saveRoll = Dice.D6();

            return(saveRoll >= toSaveRoll);
        }
예제 #4
0
 public virtual int CalcDamage(Wound wound, Model target, ShootingParams shootingParams)
 {
     return(CalcDamage(shootingParams, Damage, DamageDice, DiceModes.Sum));
 }