Exemple #1
0
        public PlayerStatus(Rng rng,
                            IPlayer player)
        {
            Assert.IsNotNull(player);
            Assert.IsNotNull(rng);

            HasMisfireReaction         = true;
            CurrentSpell               = MagicInitiateSpell.None;
            NumberOfShots              = 0;
            NumberOfHits               = 0;
            NumberOfShotsLostToMisfire = 0;
            NumberOfCrits              = 0;
            NumberOfTurnsPassed        = 0;
            ActionSurgeAvailable       = true;
            ActionAvailable            = true;
            BonusActionAvailable       = true;
            OffhandAttackAvailable     = false;

            Rng                    = rng;
            PlayerBase             = player;
            spellHitMod            = null;
            spellDmgMod            = null;
            usedMfReactionThisTurn = false;

            MainHand       = new GunStatus(Rng, player.MainHand);
            OffHands       = player.OffHands.Select(x => (IGunStatus)(new GunStatus(Rng, x))).ToList();
            CurrentOffHand = OffHands.FirstOrDefault();
        }
Exemple #2
0
 private IGunStatus GetNextOffHand()
 {
     return(OffHands.Where(x => !x.Equals(CurrentOffHand) &&
                           x.CanFire() &&
                           x.HasShotLoaded())
            .FirstOrDefault());
 }