public MarketPlace(StarCluster starCluster) { this.auctions = new List<Auction>(); this.starCluster = starCluster; Location = starCluster; AuctionLength = 200; }
public void MoveToJumpGate() { var universe = new Universe(); var starCluster = new StarCluster(); universe.AddStarCluster(starCluster); var sol = new SolarSystem { Name = "Sol" }; starCluster.AddSolarSystem(sol); var alphaCentauri = new SolarSystem { Name = "Alpha Centauri", UniversalCoordinates = new Vector(1.6E9d, 0, 0)}; starCluster.AddSolarSystem(alphaCentauri); var outOfSol = new JumpGate(sol); sol.OrbitSun(outOfSol, 45d); var intoAlphaCentauri = new JumpGate(alphaCentauri); alphaCentauri.OrbitSun(intoAlphaCentauri, 45d); outOfSol.ConnectsTo = intoAlphaCentauri; var ship = new Ship(new Agent(new Corporation())) { Speed = 20d }; sol.EnterSystem(ship, new Vector(100d, 0, 0)); ship.SetTask(new ShipTask(outOfSol, delegate { outOfSol.Jump(ship); return true; })); ulong tick = 0L; while (ship.SolarSystem == sol) { Assert.Less(tick, 1000L, "Ship took more than 1000 days to reach the jump gate."); starCluster.Tick(tick); tick++; } Console.WriteLine("Ship took {0} days to reach its destination which was a distance of {1:n0}km", tick, (intoAlphaCentauri.UniversalCoordinates - sol.UniversalCoordinates).Magnitude); }
public TestCase() { Universe = new Universe(); Seller = new Corporation {Name = "Seller", Location = Universe }; Buyer = new Corporation {Name = "Buyer", Location = Universe }; var starCluster = new StarCluster(); Universe.AddStarCluster(starCluster); var sol = new SolarSystem(); starCluster.AddSolarSystem(sol); Refinery = new Refinery(sol, Seller); sol.OrbitSun(Refinery, 100d); var m1 = new Ship(Seller.Recruit()) {Name = "M1"}; sol.EnterSystem(m1, Refinery.LocalCoordinates); Refinery.Dock(m1); var m2 = new Ship(Buyer.Recruit()) {Name = "M2"}; sol.EnterSystem(m2, Refinery.LocalCoordinates); Refinery.Dock(m2); this.item = new Ore {Quantity = 1000, Location = Refinery, Owner = Seller}; }
public void AddStarCluster(StarCluster starCluster) { starCluster.Location = this; this.starClusters.Add(starCluster); }