diff --git a/src/SecExp/SecExpBackwardCompatibility.tw b/src/SecExp/SecExpBackwardCompatibility.tw index 6cd4232d65b6d26ffc0825a2c1d5ee3d99ca5c09..9797099c25bf27f26598934a0e76896a42e47d56 100644 --- a/src/SecExp/SecExpBackwardCompatibility.tw +++ b/src/SecExp/SecExpBackwardCompatibility.tw @@ -840,6 +840,7 @@ /* recalculation widgets */ <<fixBrokenUnits>> <<fixBrokenStats>> +<<fixBrokenFS>> <<recalcSecRestPoint>> <<recalcCrimeCap>> <<recalcReqHelots>> diff --git a/src/SecExp/secExpOptions.tw b/src/SecExp/secExpOptions.tw index d760e690f8283a45e7c1164fe798efd8cdbb519f..8a2218577aff481ead7646b942b573a870b91e76 100644 --- a/src/SecExp/secExpOptions.tw +++ b/src/SecExp/secExpOptions.tw @@ -287,6 +287,7 @@ <br> __Debug/cheats:__ +<<silently>><<MenialPopCap>><</silently>> <br><<link "Stabilize average">> <<for _i = 0; _i < $militiaUnits.length; _i++>> <<set $militiaUnits[_i].loyalty = random(40,60)>> @@ -352,4 +353,48 @@ __Debug/cheats:__ <br><<link "Lower crime">> <<set $crime = Math.clamp($crime - 5, 0, 100)>> <<goto "secExpOptions">> +<</link>> +<br><<link "Give menial slaves">> + <<set $helots = Math.clamp($helots + 30, 0, $PopCap)>> + <<goto "secExpOptions">> +<</link>> +<br><<link "Remove menial slaves">> + <<set $helots = Math.clamp($helots - 30, 0, $PopCap)>> + <<goto "secExpOptions">> +<</link>> +<br><<link "Give militia manpower">> + <<set $militiaFreeManpower += 30>> + <<recalcManpower>> + <<goto "secExpOptions">> +<</link>> +<br><<link "Remove militia manpower">> + <<set $militiaFreeManpower = Math.clamp($militiaFreeManpower - 30, 0, $militiaFreeManpower)>> + <<recalcManpower>> + <<goto "secExpOptions">> +<</link>> +<br><<link "Give mercs manpower">> + <<set $mercFreeManpower = 30>> + <<recalcManpower>> + <<goto "secExpOptions">> +<</link>> +<br><<link "Remove mercs manpower">> + <<set $mercFreeManpower = Math.clamp($mercFreeManpower - 30, 0, $mercFreeManpower)>> + <<recalcManpower>> + <<goto "secExpOptions">> +<</link>> +<br><<link "Add citizens">> + <<set $ACitizens = Math.clamp($ACitizens + 200, 0, $ACitizenLimit)>> + <<goto "secExpOptions">> +<</link>> +<br><<link "Remove citizens">> + <<set $ACitizens = Math.clamp($ACitizens - 200, 0, $ACitizenLimit)>> + <<goto "secExpOptions">> +<</link>> +<br><<link "Add slaves">> + <<set $ASlaves = Math.clamp($ASlaves + 200, 0, $ASlaveLimit)>> + <<goto "secExpOptions">> +<</link>> +<br><<link "Remove slaves">> + <<set $ASlaves = Math.clamp($ASlaves - 200, 0, $ASlaveLimit)>> + <<goto "secExpOptions">> <</link>> \ No newline at end of file diff --git a/src/SecExp/widgets/miscSecExpWidgets.tw b/src/SecExp/widgets/miscSecExpWidgets.tw index e9e71edac0183277d073292295aa75d15df476bd..dccc6ae53511229a0cd99af75144584fb1f4aeea 100644 --- a/src/SecExp/widgets/miscSecExpWidgets.tw +++ b/src/SecExp/widgets/miscSecExpWidgets.tw @@ -295,4 +295,128 @@ <<if !isInt($battlesCount)>> <<set $battlesCount = 0>> <</if>> +<</widget>> + +<<widget "fixBrokenFS">> + <<if $arcologies[0].FSSubjugationist != "unset" && !isFloat($arcologies[0].FSSubjugationist)>> + <<set $arcologies[0].FSSubjugationist = 0>> + <<FSChange "Subjugationist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSGenderRadicalist != "unset" && !isFloat($arcologies[0].FSGenderRadicalist)>> + <br>Debug: FSGenderRadicalist = $arcologies[0].FSGenderRadicalist + <<set $arcologies[0].FSGenderRadicalist = 0>> + <<FSChange "GenderRadicalist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSRestart != "unset" && !isFloat($arcologies[0].FSRestart)>> + <<set $arcologies[0].FSRestart = 0>> + <<FSChange "Eugenics" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSRepopulationFocus != "unset" && !isFloat($arcologies[0].FSRepopulationFocus)>> + <<set $arcologies[0].FSRepopulationFocus = 0>> + <<FSChange "Repopulationist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSSupremacist != "unset" && !isFloat($arcologies[0].FSSupremacist)>> + <<set $arcologies[0].FSSupremacist = 0>> + <<FSChange "Supremacist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSBodyPurist != "unset" && !isFloat($arcologies[0].FSBodyPurist)>> + <<set $arcologies[0].FSBodyPurist = 0>> + <<FSChange "BodyPurist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSPaternalist != "unset" && !isFloat($arcologies[0].FSPaternalist)>> + <<set $arcologies[0].FSPaternalist = 0>> + <<FSChange "Paternalist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSSlimnessEnthusiast != "unset" && !isFloat($arcologies[0].FSSlimnessEnthusiast)>> + <<set $arcologies[0].FSSlimnessEnthusiast = 0>> + <<FSChange "SlimnessEnthusiast" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSGenderFundamentalist != "unset" && !isFloat($arcologies[0].FSGenderFundamentalist)>> + <<set $arcologies[0].FSGenderFundamentalist = 0>> + <<FSChange "GenderFundamentalist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSMaturityPreferentialist != "unset" && !isFloat($arcologies[0].FSMaturityPreferentialist)>> + <<set $arcologies[0].FSMaturityPreferentialist = 0>> + <<FSChange "MaturityPreferentialist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSYouthPreferentialist != "unset" && !isFloat($arcologies[0].FSYouthPreferentialist)>> + <<set $arcologies[0].FSYouthPreferentialist = 0>> + <<FSChange "YouthPreferentialist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSTransformationFetishist != "unset" && !isFloat($arcologies[0].FSTransformationFetishist)>> + <<set $arcologies[0].FSTransformationFetishist = 0>> + <<FSChange "TransformationFetishist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSHedonisticDecadence != "unset" && !isFloat($arcologies[0].FSHedonisticDecadence)>> + <<set $arcologies[0].FSHedonisticDecadence = 0>> + <<FSChange "Hedonism" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSPhysicalIdealist != "unset" && !isFloat($arcologies[0].FSPhysicalIdealist)>> + <<set $arcologies[0].FSPhysicalIdealist = 0>> + <<FSChange "PhysicalIdealist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSPastoralist != "unset" && !isFloat($arcologies[0].FSPastoralist)>> + <<set $arcologies[0].FSPastoralist = 0>> + <<FSChange "Pastoralist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSAssetExpansionist != "unset" && !isFloat($arcologies[0].FSAssetExpansionist)>> + <<set $arcologies[0].FSAssetExpansionist = 0>> + <<FSChange "AssetExpansionist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSDegradationist != "unset" && !isFloat($arcologies[0].FSDegradationist)>> + <<set $arcologies[0].FSDegradationist = 0>> + <<FSChange "Degradationist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSRomanRevivalist != "unset" && !isFloat($arcologies[0].FSRomanRevivalist)>> + <<set $arcologies[0].FSRomanRevivalist = 0>> + <<FSChange "RomanRevivalist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSChattelReligionist != "unset" && !isFloat($arcologies[0].FSChattelReligionist)>> + <<set $arcologies[0].FSChattelReligionist = 0>> + <<FSChange "ChattelReligionist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSChineseRevivalist != "unset" && !isFloat($arcologies[0].FSChineseRevivalist)>> + <<set $arcologies[0].FSChineseRevivalist = 0>> + <<FSChange "ChineseRevivalist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSArabianRevivalist != "unset" && !isFloat($arcologies[0].FSArabianRevivalist)>> + <<set $arcologies[0].FSArabianRevivalist = 0>> + <<FSChange "ArabianRevivalist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSEdoRevivalist != "unset" && !isFloat($arcologies[0].FSEdoRevivalist)>> + <<set $arcologies[0].FSEdoRevivalist = 0>> + <<FSChange "EdoRevivalist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSEgyptianRevivalist != "unset" && !isFloat($arcologies[0].FSEgyptianRevivalist)>> + <<set $arcologies[0].FSEgyptianRevivalist = 0>> + <<FSChange "EgyptianRevivalist" 10>> + <br>Fixed NaN FS value + <</if>> + <<if $arcologies[0].FSAztecRevivalist != "unset" && !isFloat($arcologies[0].FSAztecRevivalist)>> + <<set $arcologies[0].FSAztecRevivalist = 0>> + <<FSChange "AztecRevivalist" 10>> + <br>Fixed NaN FS value + <</if>> <</widget>> \ No newline at end of file diff --git a/src/js/utilJS.tw b/src/js/utilJS.tw index 9a923d27edbf2a1a153db8e4abc344b82b3e132d..67681498a1978c824c6dc447de14fe6227d5c35b 100644 --- a/src/js/utilJS.tw +++ b/src/js/utilJS.tw @@ -363,14 +363,13 @@ window.Categorizer.prototype.cat = function(val, def) { return result; }; -window.isInt = function(value) { - var x; - if (isNaN(value)) { - return false; - } - x = parseFloat(value); - return (x | 0) === x; -}; +window.isFloat = function(n){ + return n === +n && n !== (n|0); +} + +window.isInt = function(n) { + return n === +n && n === (n|0); +} /* Make everything waiting for this execute. Usage: