예제 #1
0
        public void CommitPriest_SlotUsed()
        {
            var targetSlot = new PriestSlot(2, true);

            this.CommitAndAssertFailure(track => track.UsableSlots.ElementAt(0).Use(),
                                        slots: new[] { targetSlot },
                                        target: targetSlot);
        }
예제 #2
0
        public CommitPriestAction(TerraMysticaPlayer player, CultTrack track, PriestSlot slot)
            : base(player)
        {
            if (track == null)
            {
                throw new ArgumentNullException(nameof(track));
            }

            if (slot == null)
            {
                throw new ArgumentNullException(nameof(slot));
            }

            this.CultTrack = track;
            this.Slot      = slot;
        }
예제 #3
0
        private void CommitAndAssertResult(bool expectation, Action <CultTrack> beforeExecute = null, CultTrack track = null, IEnumerable <PriestSlot> slots = null, PriestSlot target = null)
        {
            var priestSlots = slots ?? new[] { new PriestSlot(3, true) };
            var cultTrack   = track ?? new WaterCultTrack(slots, new[] { new CultTrackBonus(3, new PowerResource(1)) });

            Func <TerraMysticaAction> prepareAction = () => new CommitPriestAction(this.Player, cultTrack, target ?? priestSlots.ElementAt(0));
            Action before = () => beforeExecute?.Invoke(cultTrack);

            this.PerformActionAndAssertResult(expectation, prepareAction, before);
        }
예제 #4
0
 private void CommitAndAssertSuccess(Action <CultTrack> beforeExecute = null, CultTrack track = null, IEnumerable <PriestSlot> slots = null, PriestSlot target = null)
 {
     this.CommitAndAssertResult(true, beforeExecute, track, slots, target);
 }