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(); }
private IGunStatus GetNextOffHand() { return(OffHands.Where(x => !x.Equals(CurrentOffHand) && x.CanFire() && x.HasShotLoaded()) .FirstOrDefault()); }