LoneGazebo / Community-Patch-DLL

Community Patch for Civilization V - Brave New World
Other
286 stars 158 forks source link

Vassal did not declare in Defensive Pact War #1869

Closed pandasnail closed 8 years ago

pandasnail commented 8 years ago

Bug Report Template

Mod Version (i.e Date - (4/23b)): 5/21

  1. Mod List (if using standard CPP set, leave blank): Your six with EUI, FlagPromotionsV7, More Great Works, Great People Pack, More Great Musicians, Ice Free Coasts, Celtic City Names, Iroquoian City Names, Randomize City Names, NoAltitudeTraining (removes the Mt. Kilman promo), and my own version of Wario's Rules, which right now only deletes Goddess of Protection, and sets Barbarian exp to -1.
  2. Type of error (i.e. crash, interface bug, AI quirk): Sweden is Arabia's vassal. Arabia and Maya have a Defensive Pact. When The Ottomans declared on May, Arabia declared but Sweden did not.
  3. Steps to reproduce:
  4. Additional information:

Supporting information:

Please note that you can attach .zip files to Issues by dragging-and-dropping them. If possible, zip up all supporting data and post that way.

  1. Log files: Database.log and Lua.log needed
  2. Minidump file (located in your Civ5.exe directory)
  3. Screenshots (if needed) dp1 dp2
LoneGazebo commented 8 years ago

@mwhiter

It could also be that Sweden could not DOW as a consequence of not having met the civ or because he was in a forced peace.

pandasnail commented 8 years ago

Well, its 100% for sure not that they haven't met. Leaders are in the Industrial, WC has been founded. Even if that somehow failed, it happened when Mongolia DoWed when of Arabia's allies as well, and Sweden and Mongolia have met for sure.

Second, it really can only be the forced peace thing if there's something that causes that outside peace treaties, something that I don't know about. Its possible I guess-I do miss seemingly obvious things sometimes. But Sweden has been Arabia's vassal for way longer than the 30 turns a Peace would last, and this is the first 'World War.' So unless there's a separate rule, I'm 99% sure its not that.

And third, Defensive Pacts used to overrule Peace Treaties, at least for me. Its actually been awhile since I played a certain kind of Warmonger game that I used to play nothing but. (basically the addition of more marathon scalers changed things, and made things considerably easier, but that's neither here nor there to this). I remember quite quite well having to time when my Peace Treaty would be when I was planning to go to War with the next member of that particular game's Peacemonger Alliance. Sounds like that was a bug, I'll make a report if I ever see it again, could be long fixed. In fact, I have noticed that Defensive Pacts no longer chain, so maybe that went away at the same time.

mwhiter commented 8 years ago

Been awhile since I've coded this. I think what's happening is the defensive pact calls a declare war function that may not trigger the Vassals to join. If that's the case, it's a logic error.

Vassals should declare war on civs regardless if they've met. The function iirc doesn't care.

LoneGazebo commented 8 years ago

I rewrote what you wrote, @mwhiter, as the whole makewar/makepeace function set was horribly obtuse. I'll take a look.