public void CanAddDrillers() { Outpost outpost = new Outpost(new RftVector(_map, 0, 0), new Player(1), OutpostType.Mine); int initialDrillers = outpost.GetDrillerCount(); outpost.AddDrillers(40); Assert.AreEqual(initialDrillers + 40, outpost.GetDrillerCount()); }
public void AddEvent() { Player player1 = new Player("1"); Rft map = new Rft(3000, 3000); Outpost outpost = new Outpost("0", new RftVector(map, 0, 0), player1, OutpostType.Generator); outpost.AddDrillers(10); Sub sub = new Sub("1", outpost, outpost, new GameTick(), 10, player1); CombatEvent arriveEvent = new CombatEvent(sub, outpost, new GameTick()); game.TimeMachine.AddEvent(arriveEvent); Assert.AreEqual(1, game.TimeMachine.GetQueuedEvents().Count); Assert.AreEqual(arriveEvent, game.TimeMachine.GetQueuedEvents()[0]); }
public void AddEvent() { Player player1 = new Player(1); Rft map = new Rft(3000, 3000); Outpost outpost = new Outpost(new RftVector(map, 0, 0), player1, OutpostType.Generator); outpost.AddDrillers(10); Sub sub = new Sub(outpost, outpost, new GameTick(), 10, player1); CombatEvent arriveEvent = new CombatEvent(sub, outpost, new GameTick(), outpost.GetTargetPosition(sub.GetCurrentPosition(), sub.GetSpeed())); Game.TimeMachine.AddEvent(arriveEvent); Assert.AreEqual(1, Game.TimeMachine.GetQueuedEvents().Count); Assert.AreEqual(arriveEvent, Game.TimeMachine.GetQueuedEvents()[0]); }
public void Setup() { _player1 = new Player(1); List <Player> players = new List <Player>(); GameConfiguration config = new GameConfiguration(players); Assert.IsNotNull(config); _state = new GameState(config); _map = new Rft(300, 300); _outpost = new Outpost(new RftVector(_map, 0, 0), _player1, OutpostType.Generator); _outpost.AddDrillers(10); _tempSub = new Sub(_outpost, _outpost, new GameTick(), 10, _player1); }
public void EventsSwitchQueuesWhenPassedForward() { Player player1 = new Player(1); Rft map = new Rft(3000, 3000); Outpost outpost = new Outpost(new RftVector(map, 0, 0), player1, OutpostType.Generator); outpost.AddDrillers(10); Sub sub = new Sub(outpost, outpost, new GameTick(), 10, player1); CombatEvent arriveEvent = new CombatEvent(sub, outpost, GameTick.FromTickNumber(5), outpost.GetTargetPosition(sub.GetCurrentPosition(), sub.GetSpeed())); Game.TimeMachine.AddEvent(arriveEvent); Assert.AreEqual(1, Game.TimeMachine.GetQueuedEvents().Count); Assert.AreEqual(arriveEvent, Game.TimeMachine.GetQueuedEvents()[0]); // Go past the tick Game.TimeMachine.Advance(6); Assert.AreEqual(0, Game.TimeMachine.GetQueuedEvents().Count); }
/// <summary> /// Forward production event /// </summary> public override bool ForwardAction() { if (Validator.ValidateOutpost(_outpost)) { if (this._outpost.GetOwner() != null && this._outpost.GetOutpostType() == OutpostType.Factory && this._outpost.GetOwner().GetDrillerCount() < this._outpost.GetOwner().GetDrillerCapacity()) { this._nextEvent = new FactoryProduceDrillersEvent(this._outpost, this._productionTick.Advance(40)); Game.TimeMachine.AddEvent(this._nextEvent); int drillerDifference = this._outpost.GetOwner().GetDrillerCapacity() - this._outpost.GetOwner().GetDrillerCount(); // If capacity would be exceeded, produce only as much drillers as possible without exceeding capacity if (drillerDifference >= Constants.BASE_FACTORY_PRODUCTION) { _outpost.AddDrillers(Constants.BASE_FACTORY_PRODUCTION); } else { //_outpost.AddDrillers(drillerDifference); // TODO: revert this properly // Temporary solution, Factories produce 6 drillers or nothing. this._eventSuccess = false; return(this._eventSuccess); } _eventSuccess = true; } else { this._eventSuccess = false; } } else { this._eventSuccess = false; } return(this._eventSuccess); }
public void EventsSwitchQueuesWhenRewind() { Player player1 = new Player("1"); Rft map = new Rft(3000, 3000); Outpost outpost = new Outpost("0", new RftVector(map, 0, 0), player1, OutpostType.Generator); outpost.AddDrillers(10); Sub sub = new Sub("1", outpost, outpost, new GameTick(), 10, player1); CombatEvent arriveEvent = new CombatEvent(sub, outpost, new GameTick(5)); game.TimeMachine.AddEvent(arriveEvent); Assert.AreEqual(1, game.TimeMachine.GetQueuedEvents().Count); Assert.AreEqual(arriveEvent, game.TimeMachine.GetQueuedEvents()[0]); // Go past the tick game.TimeMachine.Advance(6); Assert.AreEqual(0, game.TimeMachine.GetQueuedEvents().Count); // Rewind back game.TimeMachine.Rewind(6); Assert.AreEqual(1, game.TimeMachine.GetQueuedEvents().Count); Assert.AreEqual(arriveEvent, game.TimeMachine.GetQueuedEvents()[0]); }
/// <summary> /// Forward production event /// </summary> public override bool ForwardAction() { if (Validator.ValidateOutpost(_outpost)) { if (this._outpost.GetOwner() != null && this._outpost.GetOutpostType() == OutpostType.Factory) { this._nextEvent = new FactoryProduceDrillersEvent(this._outpost, this._productionTick.Advance(40)); Game.TimeMachine.AddEvent(this._nextEvent); _outpost.AddDrillers(6); _eventSuccess = true; } else { this._eventSuccess = false; } } else { this._eventSuccess = false; } return(this._eventSuccess); }