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 GetTargetLocation() { // Outpost target location should always be the outpost's location Assert.AreEqual(_outpostLocation.X, _outpost.GetTargetPosition(new RftVector(_map, 0, 0), 0.25f).X); Assert.AreEqual(_outpostLocation.Y, _outpost.GetTargetPosition(new RftVector(_map, 0, 0), 0.25f).Y); Assert.AreEqual(_outpostLocation.X, _outpost.GetTargetPosition(new RftVector(_map, 100, 100), 1).X); Assert.AreEqual(_outpostLocation.Y, _outpost.GetTargetPosition(new RftVector(_map, 100, 100), 1).Y); Assert.AreEqual(_outpostLocation.X, _outpost.GetTargetPosition(new RftVector(_map, 999, 999), 999).X); Assert.AreEqual(_outpostLocation.Y, _outpost.GetTargetPosition(new RftVector(_map, 999, 999), 999).Y); }
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); }