fire-eggs / CivOne

An open source implementation of Sid Meier's Civilization 1 using C# and .NET.
Creative Commons Zero v1.0 Universal
21 stars 4 forks source link

Index was outside the bounds of the array. (Diplomat) #127

Closed iegik closed 3 years ago

iegik commented 3 years ago
// fire-eggs 20190702 capture barbarian leader, get ransom
                    var attackedUnits = Map[X, Y][relX, relY].Units;
                    if (attackedUnits.All(x=>x is Diplomat) && 
                    ^
Exception has occurred: CLR/System.IndexOutOfRangeException
An unhandled exception of type 'System.IndexOutOfRangeException' occurred in CivOne.dll: 'Index was outside the bounds of the array.'
   at CivOne.Units.BaseUnit.<>c__DisplayClass30_0.<Confront>b__0(Object s, EventArgs a) in CivOne/src/Units/BaseUnit.cs:line 389
   at CivOne.GameTask.EndTask() in CivOne/src/GameTask.cs:line 89
   at CivOne.GameTask.NextTask() in CivOne/src/GameTask.cs:line 37
   at CivOne.GameTask.Finish(Object sender, EventArgs args) in CivOne/src/GameTask.cs:line 76
   at CivOne.GameTask.EndTask() in CivOne/src/GameTask.cs:line 89
   at CivOne.Tasks.Turn.Step() in CivOne/src/Tasks/Turn.cs:line 33
   at CivOne.GameTask.Update() in CivOne/src/GameTask.cs:line 45
   at CivOne.RuntimeHandler.Update() in CivOne/src/RuntimeHandler.cs:line 58
   at CivOne.RuntimeHandler.OnUpdate(Object sender, UpdateEventArgs args) in CivOne/src/RuntimeHandler.cs:line 93
   at CivOne.Runtime.InvokeUpdate(UpdateEventArgs& args) in CivOne/runtime/sdl/src/Runtime.cs:line 30
   at CivOne.GameWindow.Update(Object sender, EventArgs args) in CivOne/runtime/sdl/src/GameWindow.cs:line 40
   at CivOne.SDL.Window.Run() in CivOne/runtime/sdl/src/SDL/Window.cs:line 95
   at CivOne.Program.Main(String[] args) in CivOne/runtime/sdl/src/Program.cs:line 89

value of attackedUnits at this point -{CivOne.Units.IUnit[0]}

relX [int]: 1
relY [int]: -1

Related: #119

iegik commented 3 years ago

// fire-eggs 20190702 capture barbarian leader, get ransom

I think, in that turn (barbarian's turn) barbarian leader want to attack me (1 Militia unit)

fire-eggs commented 3 years ago

Interesting. The barbarian leader shouldn't be attacking. Thanks for the report!

fire-eggs commented 3 years ago

Fixes integrated from pull request #141