Xyaneon / Weapons-of-Mass-Domination

A console game for evil geniuses. Try to take over the world!
MIT License
0 stars 0 forks source link

System.OverflowException when purchasing nukes #94

Closed Xyaneon closed 1 year ago

Xyaneon commented 1 year ago

Similar to #91. See turn description and stacktrace below:

Money: $2,338,310,951,653.58 | Henchmen: 2,696,443,923 | Land: 148,939,998 km² | Reputation: 28% | Nukes: 0
You control a land area comparable to Russia.
Your secret base is at Level 3.
Your nuke research is at Level 10 (you can build and use nukes!).

0 km² of land and 1,585,054,331 people on Earth remain uncontrolled (0.00%).
The government has been defeated.

Unhandled exception. System.OverflowException: Value was either too large or too small for an Int32.
   at System.Decimal.ToInt32(Decimal d)
   at WMD.Game.State.Utility.NukesCalculator.CalculateMaximumNumberOfNukesCurrentPlayerCouldManufacture(GameState gameState) in C:\Users\chris\source\repos\Xyaneon\Weapons-of-Mass-Domination\src\wmd-core\State\Utility\NukesCalculator.cs:line 32
   at WMD.Console.UI.Commands.ManufactureNukesInputRetriever.GetCommandInput(GameState gameState) in C:\Users\chris\source\repos\Xyaneon\Weapons-of-Mass-Domination\src\wmd-console\UI\Commands\ManufactureNukesInputRetriever.cs:line 21
   at WMD.Console.HumanTurnRunner.RunSelectedCommand(GameState gameState, IGameCommand command) in C:\Users\chris\source\repos\Xyaneon\Weapons-of-Mass-Domination\src\wmd-console\HumanTurnRunner.cs:line 48
   at WMD.Console.HumanTurnRunner.RunTurn(GameState gameState) in C:\Users\chris\source\repos\Xyaneon\Weapons-of-Mass-Domination\src\wmd-console\HumanTurnRunner.cs:line 26
   at WMD.Console.GameRunner.Run() in C:\Users\chris\source\repos\Xyaneon\Weapons-of-Mass-Domination\src\wmd-console\GameRunner.cs:line 38
   at WMD.Console.UI.Menus.MainMenuActions.StartNewSinglePlayerGame() in C:\Users\chris\source\repos\Xyaneon\Weapons-of-Mass-Domination\src\wmd-console\UI\Menus\MainMenuActions.cs:line 19
   at Xyaneon.Console.Menus.MenuPage.ActivateSelection() in C:\Users\chris\source\repos\Xyaneon\Weapons-of-Mass-Domination\src\Xyaneon.Console.Menus\MenuPage.cs:line 84
   at Xyaneon.Console.Menus.Menu.Run() in C:\Users\chris\source\repos\Xyaneon\Weapons-of-Mass-Domination\src\Xyaneon.Console.Menus\Menu.cs:line 124
   at WMD.Console.Program.Main(String[] args) in C:\Users\chris\source\repos\Xyaneon\Weapons-of-Mass-Domination\src\wmd-console\Program.cs:line 15
Xyaneon commented 1 year ago

Relevant line from the current code:

https://github.com/Xyaneon/Weapons-of-Mass-Domination/blob/7c4b88570f436c3ac2b1aeaba2c2ab34513ca3ff/src/wmd-core/State/Utility/NukesCalculator.cs#L32