public Market.Market GetMarket(SystemBody body, string code) { string marketCode = string.Format("{0}/{1}/{2}", body.StarSystem.Coords, body.SystemBodyId, code); wrl.AcquireReaderLock(-1); try { if (markets.ContainsKey(marketCode)) { MarketManager_Entry ioM = markets[marketCode]; ioM.Stamp = DateTime.Now; return(ioM.Market); } else { LockCookie lc = wrl.UpgradeToWriterLock(-1); try { Market.Market m = new Market.Market(body, code); MarketManager_Entry ioM = new MarketManager_Entry(m); markets.Add(marketCode, ioM); return(m); } finally { wrl.DowngradeFromWriterLock(ref lc); } } } finally { wrl.ReleaseReaderLock(); } }
public void Awake() { _player = GetComponent <Player>(); var marketGameObject = GameObject.FindGameObjectWithTag("Market"); _market = marketGameObject.GetComponent <Market.Market>(); }
public Output(calculator.T2Builder t2mods, db.Db dataBase, Market.Market market, ApiImport.MainImport import) { StreamReader sr; using (StreamWriter sw = new StreamWriter("moduleNumbers.html")) { using (sr = new StreamReader("files\\htmloutputone.txt")) { sw.WriteLine(sr.ReadToEnd()); OutputTableBuilder otb = new OutputTableBuilder(dataBase, t2mods, sw, "T2Modules(and ships)"); IntermediaryTableBuilder itb = new IntermediaryTableBuilder(dataBase, t2mods, sw, "T2Components", import, market); itb = new IntermediaryTableBuilder(dataBase, t2mods, sw, "T1modules", import, market); itb = new IntermediaryTableBuilder(dataBase, t2mods, sw, "T1ships", import, market); itb = new IntermediaryTableBuilder(dataBase, t2mods, sw, "Tools", import, market); RawMaterialTableBuilder rmtb = new RawMaterialTableBuilder(dataBase, t2mods, market, sw, "Minerals", import); rmtb = new RawMaterialTableBuilder(dataBase, t2mods, market, sw, "Planetary Interaction", import); rmtb = new RawMaterialTableBuilder(dataBase, t2mods, market, sw, "Advanced Materials", import); } using (sr = new StreamReader("files\\htmloutputtwo.txt")) sw.WriteLine(sr.ReadToEnd()); sw.Close(); } System.Diagnostics.Process.Start(@"moduleNumbers.html"); new MarketInfo(dataBase, t2mods, import, market); }
public Market.Market.MarketOperationResult Sell(int goodId, int quantity, Market.Market market) { int actQuantity = this.SpaceShip.CargoBay.GetGoods(goodId, quantity); var ret = market[goodId].Sell(actQuantity); this.Money += ret.Money; return(ret); }
public void TestMarketSigndown_01_Empty() { market = new Market.Market(); List <Market.Underwriter> underwriters = new List <Market.Underwriter>(); market.MarketSigndown(0, underwriters); Assert.IsTrue(underwriters.Count == 0, "Returned underwriters list is empty when imput list is empty too."); }
public void TestMarketSigndown_01_Empty() { market = new Market.Market(); List <Market.MarketElement> MarketElements = new List <Market.MarketElement>(); market.MarketSigndown(0, MarketElements); Assert.IsTrue(MarketElements.Count == 0, "Returned MarketElements list is empty when imput list is empty too."); }
public T2Builder(db.Db dataBase_, Market.Market market) : base(market, dataBase_) { this.market = market; t1Modules = new long[256, 2]; // categoryid=7 t1ships = new long[256, 2]; // categoryid=6 planetaryComodities = new long[256, 2]; // categoryid=43 tools = new long[256, 2]; // groupid=332 minerals = new long[256, 2]; // groupid=18 constructionComponents = new long[256, 2]; // groupid=334 compopsites = new long[256, 2]; // groupip=429 dataBase = dataBase_; moduleMats = new int[dataBase.t2bpoOwned.Index()][, ]; moduleAmounts = new int[dataBase.t2bpoOwned.Index()]; output = new int[dataBase.t2bpoOwned.Index(), 2]; outputName = new string[dataBase.t2bpoOwned.Index()]; outputTotalValue = new decimal[dataBase.t2bpoOwned.Index()]; outputTotalCost = new decimal[dataBase.t2bpoOwned.Index()]; int i = 0; while (i < dataBase.t2bpoOwned.Index()) // adds amounts { int bpoid = dataBase.t2bpoOwned.Bpo(i); moduleAmounts[i] = GetBuildAmount(bpoid); moduleMats[i] = dataBase.bpo.ManufacturingMats(bpoid); materialModifier = MaterialModifier(); int[,] bpoOutput = dataBase.bpo.ManufacturingOutput(bpoid); output[i, 0] = bpoOutput[0, 0]; output[i, 1] = bpoOutput[0, 1] * moduleAmounts[i]; outputName[i] = dataBase.types.TypeName(output[i, 0]); outputTotalValue[i] = output[i, 1] * market.FindPrice(dataBase.settings.MarketRegion, "sell", output[i, 0]); int j = 0; while (j < (moduleMats[i].Length / 2)) { if (moduleMats[i][j, 1] == 1) { moduleMats[i][j, 1] = Convert.ToInt32(Math.Ceiling(moduleMats[i][j, 1] * moduleAmounts[i] * 1.0)); } else { moduleMats[i][j, 1] = Convert.ToInt32(Math.Ceiling(moduleMats[i][j, 1] * moduleAmounts[i] * materialModifier)); } j++; } //test variable decimal installcost = FindInstallCost(bpoid) * moduleAmounts[i]; outputTotalCost[i] = SortMaterials(moduleMats[i]) + installcost; i++; } TotalModuleMaterials(); }
public void TestMarketSigndown_02_Simple_Example_NoMins1() { // test the trivial case. market = new Market.Market(); List <Market.Underwriter> listUWs = new List <Market.Underwriter>(); listUWs.Add(new Market.Underwriter(10, "Sponge Bob", 40, 30, 0)); listUWs.Add(new Market.Underwriter(20, "Patrick Star", 60, 20, 0)); listUWs = market.MarketSigndown(100, listUWs); assertSignedLine(listUWs, "Sponge Bob", 40f); assertSignedLine(listUWs, "Patrick Star", 60f); }
public void TestMarketSigndown_08_Mins3_UW2GetsMinSoTheRestForUW1() { // test the trivial case. market = new Market.Market(); List <Market.Underwriter> listUWs = new List <Market.Underwriter>(); listUWs.Add(new Market.Underwriter(10, "Sponge Bob", 80, 20, 0)); listUWs.Add(new Market.Underwriter(20, "Patrick Star", 90, 70, 0)); listUWs = market.MarketSigndown(100, listUWs); assertSignedLine(listUWs, "Sponge Bob", 30f); assertSignedLine(listUWs, "Patrick Star", 70f); }
public void TestMarketSigndown_03_Simple_Example_NoMins_TotalOrderNot100() { // market = new Market.Market(); List <Market.Underwriter> listUWs = new List <Market.Underwriter>(); listUWs.Add(new Market.Underwriter(10, "Sponge Bob", 30, 0, 0)); listUWs.Add(new Market.Underwriter(20, "Patrick Star", 30, 0, 0)); listUWs = market.MarketSigndown(60, listUWs); assertSignedLine(listUWs, "Sponge Bob", 30f); assertSignedLine(listUWs, "Patrick Star", 30f); }
public void TestMarketSigndown_02_Simple_Example_NoMins1() { // test the trivial case. market = new Market.Market(); List <Market.MarketElement> listUWs = new List <Market.MarketElement> { new Market.MarketElement(10, "Element 1", 40, 30, 0), new Market.MarketElement(20, "Element 2", 60, 20, 0) }; listUWs = market.MarketSigndown(100, listUWs); AssertSignedLine(listUWs, "Element 1", 40f); AssertSignedLine(listUWs, "Element 2", 60f); }
public void TestMarketSigndown_08_Mins3_UW2GetsMinSoTheRestForUW1() { // test the trivial case. market = new Market.Market(); List <Market.MarketElement> listUWs = new List <Market.MarketElement> { new Market.MarketElement(10, "Element 1", 80, 20, 0), new Market.MarketElement(20, "Element 2", 90, 70, 0) }; listUWs = market.MarketSigndown(100, listUWs); AssertSignedLine(listUWs, "Element 1", 30f); AssertSignedLine(listUWs, "Element 2", 70f); }
public void TestMarketSigndown_03_Simple_Example_NoMins_TotalOrderNot100() { // market = new Market.Market(); List <Market.MarketElement> listUWs = new List <Market.MarketElement> { new Market.MarketElement(10, "Element 1", 30, 0, 0), new Market.MarketElement(20, "Element 2", 30, 0, 0) }; listUWs = market.MarketSigndown(60, listUWs); AssertSignedLine(listUWs, "Element 1", 30f); AssertSignedLine(listUWs, "Element 2", 30f); }
public void TestMarketSigndown_10_Mins5_MinimumsAreTheSolution() { // test the trivial case. market = new Market.Market(); List <Market.Underwriter> listUWs = new List <Market.Underwriter>(); listUWs.Add(new Market.Underwriter(10, "Sponge Bob", 80, 34, 0)); listUWs.Add(new Market.Underwriter(20, "Patrick Star", 90, 33, 0)); listUWs.Add(new Market.Underwriter(30, "Squidward Tentacles", 40, 33, 0)); listUWs = market.MarketSigndown(100, listUWs); assertSignedLine(listUWs, "Sponge Bob", 34f); assertSignedLine(listUWs, "Patrick Star", 33f); assertSignedLine(listUWs, "Squidward Tentacles", 33f); }
public void TestMarketSigndown_09_Mins4_SortUWsBySequenceNumber() { // test the trivial case. market = new Market.Market(); List <Market.Underwriter> listUWs = new List <Market.Underwriter>(); listUWs.Add(new Market.Underwriter(10, "Sponge Bob", 80, 20, 0)); listUWs.Add(new Market.Underwriter(20, "Patrick Star", 90, 50, 0)); listUWs.Add(new Market.Underwriter(30, "Squidward Tentacles", 40, 20, 0)); listUWs = market.MarketSigndown(100, listUWs); assertSignedLine(listUWs, "Sponge Bob", 30f); assertSignedLine(listUWs, "Patrick Star", 50f); assertSignedLine(listUWs, "Squidward Tentacles", 20f); }
public void TestMarketSigndown_07_Mins2_2DecimalPlaces_SameResultsAsTest06() { // test the trivial case. market = new Market.Market(); List <Market.Underwriter> listUWs = new List <Market.Underwriter>(); listUWs.Add(new Market.Underwriter(10, "Sponge Bob", 80, 20, 0)); listUWs.Add(new Market.Underwriter(20, "Patrick Star", 90, 40, 0)); listUWs.Add(new Market.Underwriter(30, "Squidward Tentacles", 40, 20, 0)); listUWs = market.MarketSigndown(100, listUWs); assertSignedLine(listUWs, "Sponge Bob", 37.65f); assertSignedLine(listUWs, "Patrick Star", 42.35f); assertSignedLine(listUWs, "Squidward Tentacles", 20f); }
public void TestMarketSigndown_05_Simple_Example_NoMins3() { // test the trivial case. market = new Market.Market(); List <Market.Underwriter> listUWs = new List <Market.Underwriter>(); listUWs.Add(new Market.Underwriter(10, "Sponge Bob", 80, 0, 0)); listUWs.Add(new Market.Underwriter(20, "Patrick Star", 40, 0, 0)); listUWs.Add(new Market.Underwriter(30, "Squidward Tentacles", 40, 0, 0)); listUWs = market.MarketSigndown(50, listUWs); assertSignedLine(listUWs, "Sponge Bob", 25f); assertSignedLine(listUWs, "Patrick Star", 12.5f); assertSignedLine(listUWs, "Squidward Tentacles", 12.5f); }
public void TestMarketSigndown_06_Mins1_AsPerExcel_Example() { // test the trivial case. market = new Market.Market(); List <Market.Underwriter> listUWs = new List <Market.Underwriter>(); listUWs.Add(new Market.Underwriter(10, "Sponge Bob", 80, 10, 0)); listUWs.Add(new Market.Underwriter(20, "Patrick Star", 90, 10, 0)); listUWs.Add(new Market.Underwriter(30, "Squidward Tentacles", 40, 20, 0)); listUWs = market.MarketSigndown(100, listUWs); assertSignedLine(listUWs, "Sponge Bob", 37.65f); assertSignedLine(listUWs, "Patrick Star", 42.35f); assertSignedLine(listUWs, "Squidward Tentacles", 20f); }
public void TestMarketSigndown_06_Mins1_AsPerExcel_Example() { // test the trivial case. market = new Market.Market(); List <Market.MarketElement> listUWs = new List <Market.MarketElement> { new Market.MarketElement(10, "Element 1", 80, 10, 0), new Market.MarketElement(20, "Element 2", 90, 10, 0), new Market.MarketElement(30, "Element 3", 40, 20, 0) }; listUWs = market.MarketSigndown(100, listUWs); AssertSignedLine(listUWs, "Element 1", 37.65f); AssertSignedLine(listUWs, "Element 2", 42.35f); AssertSignedLine(listUWs, "Element 3", 20f); }
public void TestMarketSigndown_07_Mins2_2DecimalPlaces_SameResultsAsTest06() { // test the trivial case. market = new Market.Market(); List <Market.MarketElement> listUWs = new List <Market.MarketElement> { new Market.MarketElement(10, "Element 1", 80, 20, 0), new Market.MarketElement(20, "Element 2", 90, 40, 0), new Market.MarketElement(30, "Element 3", 40, 20, 0) }; listUWs = market.MarketSigndown(100, listUWs); AssertSignedLine(listUWs, "Element 1", 37.65f); AssertSignedLine(listUWs, "Element 2", 42.35f); AssertSignedLine(listUWs, "Element 3", 20f); }
public void TestMarketSigndown_09_Mins4_SortUWsBySequenceNumber() { // test the trivial case. market = new Market.Market(); List <Market.MarketElement> listUWs = new List <Market.MarketElement> { new Market.MarketElement(10, "Element 1", 80, 20, 0), new Market.MarketElement(20, "Element 2", 90, 50, 0), new Market.MarketElement(30, "Element 3", 40, 20, 0) }; listUWs = market.MarketSigndown(100, listUWs); AssertSignedLine(listUWs, "Element 1", 30f); AssertSignedLine(listUWs, "Element 2", 50f); AssertSignedLine(listUWs, "Element 3", 20f); }
public void TestMarketSigndown_10_Mins5_MinimumsAreTheSolution() { // test the trivial case. market = new Market.Market(); List <Market.MarketElement> listUWs = new List <Market.MarketElement> { new Market.MarketElement(10, "Element 1", 80, 34, 0), new Market.MarketElement(20, "Element 2", 90, 33, 0), new Market.MarketElement(30, "Element 3", 40, 33, 0) }; listUWs = market.MarketSigndown(100, listUWs); AssertSignedLine(listUWs, "Element 1", 34f); AssertSignedLine(listUWs, "Element 2", 33f); AssertSignedLine(listUWs, "Element 3", 33f); }
public void TestMarketSigndown_05_Simple_Example_NoMins3() { // test the trivial case. market = new Market.Market(); List <Market.MarketElement> listUWs = new List <Market.MarketElement> { new Market.MarketElement(10, "Element 1", 80, 0, 0), new Market.MarketElement(20, "Element 2", 40, 0, 0), new Market.MarketElement(30, "Element 3", 40, 0, 0) }; listUWs = market.MarketSigndown(50, listUWs); AssertSignedLine(listUWs, "Element 1", 25f); AssertSignedLine(listUWs, "Element 2", 12.5f); AssertSignedLine(listUWs, "Element 3", 12.5f); }
public IntermediateBuilder(long[,] buildlist, db.Db data, string rigGroup, Market.Market market) : base(market, data) { this.market = market; rigTypeUsed = rigGroup; dataBase = data; int i = 0; moduleMats = new long[buildlist.Length / 2][, ]; while (i < (buildlist.Length / 2)) { // buildlist[i, 0] = FindBpoTypeIdForItem(Convert.ToInt32(buildlist[i, 0])); i++; } moduleMats = GetMaterialBill(buildlist); totalMats = TotalModuleMaterials(moduleMats); costOfMats = FindCosts(totalMats); }
int[,] compopsites; //advanced materials public Calculator() { Console.WriteLine("..Loading the database..."); dataBase = new db.Db(); Console.WriteLine("..Done loading the database"); Console.WriteLine("..Authenticating with SSO..."); new ESI.Login(ESI.CharacterEnum.BuildCorp); new ESI.Login(ESI.CharacterEnum.EmpireDonkey); Console.WriteLine("..Done authenticating"); Console.WriteLine("..Importing API's..."); apiImports = new ApiImport.MainImport(); Console.WriteLine("..Done importing API's"); Console.WriteLine("..Generating the market Class..."); market = new Market.Market(dataBase); Console.WriteLine("..Done generating the market class"); Console.WriteLine("..Calculates t2 production..."); T2Builder t2mods = new T2Builder(dataBase, market); Console.WriteLine("..Done calculating t2 production"); Console.WriteLine("..Generates output files..."); Output.Output output = new Output.Output(t2mods, dataBase, market, apiImports); Console.WriteLine("..Done generating output files"); }
public Market.Market.MarketOperationResult Buy(int goodId, int quantity, Market.Market market) { if (quantity > this.SpaceShip.CargoBay.FreeSpace) { quantity = this.SpaceShip.CargoBay.FreeSpace; } int price = market[goodId].Price * quantity; if (price < Money) { var ret = market[goodId].Buy(quantity); this.SpaceShip.CargoBay.StoreGoods(goodId, ret.Quantity); return(ret); } else { int payableQuant = (int)Money / market[goodId].Price; var ret = market[goodId].Buy(payableQuant); this.SpaceShip.CargoBay.StoreGoods(goodId, ret.Quantity); return(ret); } }
public MarketManager_Entry(Market.Market market) { this.Market = market; this.Stamp = DateTime.Now; }
protected long[,] compopsites; //advanced materials public ProductionMethods(Market.Market market, db.Db dataBase) { this.dataBase = dataBase; this.market = market; }
public MarketInfo(db.Db dataBase, calculator.T2Builder t2mods, ApiImport.MainImport import, Market.Market market) { using (StreamWriter sw = new StreamWriter("marketInfo.txt")) { var office = import.ESIbuildCorpAssets.GetContainer(1022964286749); int i = 0; sw.WriteLine("Name" + "\t" + "Buildcost" + "\t" + "Haulingcost" + "\t" + "Market sell" + "\t" + "Amount on market" + "\t" + "Stock in xanadu" + "\t" + "Stock in chanuur" + "\t" + "Order price" + "\t" + "Avg daily volume" + "\t" + "Item category" + "\t" + "Max output"); while (i < t2mods.OutputName.Length) { decimal itemCost = t2mods.OutputTotalCost[i] / t2mods.Output[i, 1]; decimal haulingCost = dataBase.types.GetRepackagedVolume(t2mods.Output[i, 0]) * 800; decimal marketSell = market.FindPrice(dataBase.settings.MarketRegion, "sell", t2mods.Output[i, 0]); decimal sellOrderPrize = import.ESIcorpMarketOrders.SellOrderPrice(t2mods.Output[i, 0]); sw.WriteLine( t2mods.OutputName[i] //name + "\t" + itemCost.ToString(StaticInfo.ci) //cost per item + "\t" + haulingCost.ToString(StaticInfo.ci) // hauling cost per item (800 is ITL's price per m3 from delve to jita, hardcoding it because im lazy + "\t" + marketSell.ToString(StaticInfo.ci) // gets the sale value of the item + "\t" + import.ESIcorpMarketOrders.ItemsOnMarket(t2mods.Output[i, 0]) //amount we have on the market + "\t" + import.ESIempireDonkey.FindItem(t2mods.Output[i, 0]) // amount on Reluah + "\t" + office.FindItem(t2mods.Output[i, 0]) // ammount on chanuur + "\t" + sellOrderPrize.ToString(StaticInfo.ci) // value of our sell order + "\t" + market.FindAverageVolume(dataBase.settings.MarketRegion, t2mods.Output[i, 0], 30) // average volume sold per day(last 30 days) + "\t" + dataBase.categoryIDs.GetName(dataBase.groupIDs.CategoryID(dataBase.types.GroupID(t2mods.Output[i, 0])), 0) // items category + "\t" + t2mods.Output[i, 1] //amount of items produced per cycle ); i++; } sw.WriteLine("market orders cached until" + "\t" + import.ESIcorpMarketOrders.CachedUntil); sw.WriteLine("build corp assets cached until" + "\t" + import.ESIbuildCorpAssets.CachedUntil); sw.WriteLine("empire donkey corp assets cached until" + "\t" + import.ESIempireDonkey.CachedUntil); sw.Close(); } System.Diagnostics.Process.Start(@"marketInfo.txt"); }
public RawMaterialTableBuilder(db.Db dataBase, calculator.T2Builder t2builder, Market.Market market, StreamWriter sw, string tableName, ApiImport.MainImport import) { var office = import.ESIbuildCorpAssets.GetContainer(1022964286749); long[,] materials = new long[1, 1]; if (tableName == "Minerals") { materials = t2builder.GetGroup(4); } else if (tableName == "Planetary Interaction") { materials = t2builder.GetGroup(2); } else if (tableName == "Advanced Materials") { materials = t2builder.GetGroup(6); } string[] names = new string[materials.Length / 2]; int i = 0; while (i < names.Length) { names[i] = dataBase.types.TypeName(materials[i, 0]); i++; } sw.WriteLine("<table>"); sw.WriteLine("<caption><b>" + tableName + "</b></caption>"); sw.WriteLine("<tr><td>Name</td><td>Needed</td><td>Have</td><td>Lacking</td><td>Value</td></tr>"); i = 0; decimal totalValue = 0; while (i < names.Length) { long need = materials[i, 1]; long have = office.FindItem(Convert.ToInt32(materials[i, 0])); long lacking; decimal value = 0; if (have - need >= 0) { lacking = 0; } else { lacking = need - have; value = market.FindPrice("the forge", "buy", materials[i, 0]) * lacking; totalValue += value; } sw.WriteLine("<tr><td>" + names[i] + "</td><td>" + string.Format("{0:n0}", need) + "</td><td>" + string.Format("{0:n0}", have) + "</td><td>" + string.Format("{0:n0}", lacking) + "</td><td>" + string.Format("{0:n0}", value) + "</td></tr>"); i++; } sw.WriteLine("<tr><td><b>Sum</b></td><td></td><td><b>" + null + "</b></td><td><b>" + null + "</b></td><td><b>" + string.Format("{0:n0}", totalValue) + "</b></td></tr>"); sw.WriteLine("</table>"); }