From 5d9367c3bf0c530e565b0b16aa48ca2646dfa547 Mon Sep 17 00:00:00 2001 From: MouseOfLight <MouseOfLight@gmail.com> Date: Thu, 17 Oct 2019 23:18:58 -0700 Subject: [PATCH] Reworked how divisions are dissolved. --- src/Corporation/corporate-divisionAcquiring.js | 1 + src/Corporation/corporate-divisionBase.js | 7 +++---- src/Corporation/corporate-divisionProcessing.js | 1 + src/Corporation/corporate.js | 7 ++----- src/Corporation/manageCorporation.tw | 4 ++-- 5 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/Corporation/corporate-divisionAcquiring.js b/src/Corporation/corporate-divisionAcquiring.js index fc997b397fa..66b22415dfc 100644 --- a/src/Corporation/corporate-divisionAcquiring.js +++ b/src/Corporation/corporate-divisionAcquiring.js @@ -54,6 +54,7 @@ App.Corporate.Init_DivisionAcquiring = function(shared) { } get nextDivisions() { return this._const.nextDivisions; } dissolve() { + App.Corporate.sellSlaves(this, this.heldSlaves); super.dissolve(); delete V[`${this._const.corpId}Slaves`]; } diff --git a/src/Corporation/corporate-divisionBase.js b/src/Corporation/corporate-divisionBase.js index a947a548b89..8bd77675d91 100644 --- a/src/Corporation/corporate-divisionBase.js +++ b/src/Corporation/corporate-divisionBase.js @@ -41,10 +41,9 @@ App.Corporate.Init_DivisionBase = function(shared) { get developmentCount() { return this.getStored("Dev"); } set developmentCount(value) { if(value < 0) throw "Cannot set development count to less than 0"; + //dissolve is the only function that sets founded to false. + if(value == 0 && this.founded) throw "Cannot set development count to 0; use dissolve instead."; this.setStored("Dev", value); - if(value == 0) { - this.dissolve(); - } } //calculated @@ -193,7 +192,7 @@ App.Corporate.Init_DivisionBase = function(shared) { } dissolve() { this.setStored('', 0); - this.setStored('Dev', 0); + this.developmentCount = 0; App.Corporate.dissolvedDivision(); this.relatedDivisions.to.forEach(nextDep => delete V[`${this._const.corpId}To${nextDep.id}`]); } diff --git a/src/Corporation/corporate-divisionProcessing.js b/src/Corporation/corporate-divisionProcessing.js index 7709077c13a..3631deaffb3 100644 --- a/src/Corporation/corporate-divisionProcessing.js +++ b/src/Corporation/corporate-divisionProcessing.js @@ -72,6 +72,7 @@ App.Corporate.Init_DivisionProcessing = function(shared) { shared.SellOverflowSlaves(this); } dissolve() { + App.Corporate.sellSlaves(this, this.heldSlaves); super.dissolve(); delete V[this._const.corpId + "Slaves"]; delete V[this._const.corpId + "Slaves2"]; diff --git a/src/Corporation/corporate.js b/src/Corporation/corporate.js index 8c981e43e6d..9296a8efc3e 100644 --- a/src/Corporation/corporate.js +++ b/src/Corporation/corporate.js @@ -394,7 +394,7 @@ App.Corporate.Init = function() { SellOverflowSlaves: function(division) { const slavesToSell = division.activeSlaves - division.developmentCount; if(slavesToSell > 0) { - const slaveProcCost = Math.trunc(App.Corporate.slaveMarketPurchaseValue(this, -slavesToSell)); + const slaveProcCost = Math.trunc(App.Corporate.slaveMarketPurchaseValue(division, -slavesToSell)); App.Corporate.chargeAsset(slaveProcCost, "slaves"); division.activeSlaves -= slavesToSell; V.menialDemandFactor -= slavesToSell; @@ -594,10 +594,7 @@ App.Corporate.Init = function() { }; App.Corporate.dissolve = function() { for(let division of this.divisionList.filter(x=>x.founded)) { - if(division.toMarket) { - this.sellSlaves(division, division.heldSlaves); - } - division.developmentCount = 0; + this.dissolveDivision(division); } this.founded = false; this.numDivisions = 0; diff --git a/src/Corporation/manageCorporation.tw b/src/Corporation/manageCorporation.tw index 1cd33c468fc..220018e0a5d 100644 --- a/src/Corporation/manageCorporation.tw +++ b/src/Corporation/manageCorporation.tw @@ -230,10 +230,10 @@ <</if>> </div> <</if>> - <<if App.Corporate.divisions > 1>> /* Cannot dissolve the last division */ + <<if App.Corporate.numDivisions > 1>> /* Cannot dissolve the last division */ <div>Dissolve the division @@.orange;//Think before you click//@@ /* TODO: Add a confirmation button. Probably use replace?*/ <<= "[[Dissolve|Manage Corporation]" - + "[App.Corporate.sellDevelopment('" + _div.id + "', " + _div.developmentCount + ")]" + + "[App.Corporate.divisions['" + _div.id + "'].dissolve()]" + "]">> </div> <</if>> -- GitLab