diff --git a/src/events/intro/initNationalities.tw b/src/events/intro/initNationalities.tw index ef3710756cc12c2ed3d78c03feb81f25886dcce2..335580af22cd15f28d3edfe99ddeb4192e5d327e 100644 --- a/src/events/intro/initNationalities.tw +++ b/src/events/intro/initNationalities.tw @@ -330,7 +330,7 @@ <<if ndef $customVariety>> /* If non-custom variety, runs international trade restrictions script */ <<if $internationalTrade != 0>> - <<set $nationalities = clone(setup.baseNationalities)>> + <<set $nationalities = arr2obj(setup.baseNationalities)>> <<if $internationalVariety == 0>> <<set hashPush($nationalities, "Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese","Chinese")>> <<set hashPush($nationalities, "Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian","Indian")>> diff --git a/src/js/utilJS.tw b/src/js/utilJS.tw index 6b33c3b999d59cab7e4a83080fe799241d261d84..47b4117c87923f655227fcd67e68dc289cef2436 100644 --- a/src/js/utilJS.tw +++ b/src/js/utilJS.tw @@ -478,3 +478,11 @@ window.hashPush = function hashPush(obj, ...rest) { }); }; +window.weightedArray2HashMap = function weightedArray2HashMap(arr) { + const obj = {}; + arr.forEach(item => { + if (obj[item] === undefined) obj[item] = 1; + else obj[item] += 1; + }) + return obj; +}; diff --git a/src/pregmod/basenationalitiesControls.tw b/src/pregmod/basenationalitiesControls.tw index f2bf7463f4069852ff2e40fd4f98847d3daaa32c..5b261aafd4275373c3300adfde36b7547f7123a5 100644 --- a/src/pregmod/basenationalitiesControls.tw +++ b/src/pregmod/basenationalitiesControls.tw @@ -76,16 +76,19 @@ Filter by Region: <div style="float: left;"> <<set _nation = setup.baseNationalities[_i]>> <<print " - _nation + _nation @@.plusButton;<<link '+'>> - <<set hashPush($nationalities, '" + _nation + "')>> + <<set hashPush($nationalities, setup.baseNationalities["+_i+"])>> <<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>> <</link>>@@ ">> - <<if def $nationalitiescheck[_nation] >> + <<if def $nationalitiescheck[_nation]>> <<print " @@.minusButton;<<link '–'>> - <<set $nationalities['" + _nation + "'] -= 1>> + <<set $nationalities[setup.baseNationalities["+_i+"]] -= 1>> + <<if $nationalities[setup.baseNationalities["+_i+"]] <= 0>> + <<set delete $nationalities[setup.baseNationalities["+_i+"]]>> + <</if>> <<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>> <</link>>@@ ">> @@ -93,7 +96,7 @@ Filter by Region: <<if $nationalities[_nation] > 1 >> <<print " @@.zeroButton;<<link '0'>> - <<set delete $nationalities['" + _nation + "']>> + <<set delete $nationalities[setup.baseNationalities["+_i+"]]>> <<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>> <</link>>@@ ">> @@ -138,7 +141,10 @@ Filter by Region: <<if def $nationalitiescheck[_nation]>> <<print " @@.minusButton;<<link '–'>> - <<set $nationalities[" + _nation + "] -= 1>> + <<set $nationalities[_controlsNationality["+_i+"]] -= 1>> + <<if $nationalities[_controlsNationality["+_i+"]] <= 0>> + <<set delete $nationalities["+_controlsNationality[_i]+"]>> + <</if>> <<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>> <</link>>@@ ">> @@ -146,7 +152,7 @@ Filter by Region: <<if $nationalities[_nation] > 1 >> <<print " @@.zeroButton;<<link '0'>> - <<set delete $nationalities['" + _nation + "']>> + <<set delete $nationalities[_controlsNationality["+_i+"]]>> <<replace '#PopControl'>><<include 'Basenationalities Controls'>><</replace>> <</link>>@@ ">> diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index 9df70b9705c6e5cfab443b5ba259860e231e080f..f45851c7c2e89c1ba5f13debc405043c51245341 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -2,6 +2,10 @@ <<set $nextButton = "Continue", $nextLink = "Main", $returnTo = "Main">> +<<if Array.isArray($nationalities)>> + <<set $nationalities = weightedArray2HashMap($nationalities)>> +<</if>> + <<if def $youngCareers>> <<unset $youngCareers, $educatedCareers, $uneducatedCareers, $gratefulCareers, $menialCareers, $entertainmentCareers, $whoreCareers, $HGCareers, $madamCareers, $DJCareers, $bodyguardCareers, $wardenessCareers, $nurseCareers, $attendantCareers, $milkmaidCareers, $stewardessCareers, $schoolteacherCareers>>