toconnell / kdm-manager

An interactive campaign manager for the game "Monster", by Kingdom Death. Development blog and release notes at https://blog.kdm-manager.com This project has no affiliation with Kingdom Death and is a totally independent, fan-maintained project.
http://kdm-manager.com
Other
26 stars 11 forks source link

Timeline bug: expansion content added AFTER its standard intro year causes problems #519

Closed toconnell closed 5 years ago

toconnell commented 5 years ago

This is from email, re: the Slenderman:

you did not add the Slenderman to the campaign when you created it

Correct

you DID add it after you were already in a Lantern Year of 9+

I think. Year 8 is the last checked year. So we are “in” 9

when you added the expansion content, the Manager DID NOT automatically add "It's Already Here" to the timeline for the current LY (whatever year you were on)

Correct. It eliminated all Kings Man encounters and did. It see it’s all ready here

after you enabled the Slenderman content, you no longer were able to select the King's Man as a nemesis?

I didn’t check this aspect. And I had restored my settlement to no expansions.

toconnell commented 5 years ago

Recreation:

  1. created a settlement WITHOUT the Slenderman
  2. set the current LY to LY9
  3. added King's Man to nemeses, which causes this: settlementSheet.js?v=2.84.1603:365 nemesis handle is null! $scope.addNemesis @ settlementSheet.js?v=2.84.1603:365
  4. checked the lvl1 box, with no issues
  5. added a King's Man Lvl 1 to defeated monsters (just for good measure)
  6. enabled Slenderman expansion

And the logs went:


[2019-01-22 09:34:17] DEBUG:    [OPTIONS] https://192.168.0.110:8013/settlement/add_expansions/5c4737464af5ca21a8649ee3 response in 0:00:00.002608
[2019-01-22 09:34:17] DEBUG:    settlements object 'Exp TL Updates' [5c4737464af5ca21a8649ee3] initialize() -> in 0:00:00.179889
[2019-01-22 09:34:17] INFO:     settlements object 'Exp TL Updates' [5c4737464af5ca21a8649ee3] event: demo@kdm-manager.com added 'Slenderman' to settlement expansions.
[2019-01-22 09:34:17] INFO:     settlements object 'Exp TL Updates' [5c4737464af5ca21a8649ee3] event: demo@kdm-manager.com removed 'Nemesis Encounter: King's Man Lvl 1' from settlement timeline (LY 9).
[2019-01-22 09:34:17] INFO:     settlements object 'Exp TL Updates' [5c4737464af5ca21a8649ee3] event: demo@kdm-manager.com added 'Nemesis Encounter' to settlement timeline (LY 9).
[2019-01-22 09:34:17] INFO:     Removed 'kings_man' from settlements object 'Exp TL Updates' [5c4737464af5ca21a8649ee3] nemesis monsters.
[2019-01-22 09:34:17] INFO:     Added 'Slenderman' expansion to settlements object 'Exp TL Updates' [5c4737464af5ca21a8649ee3]
[2019-01-22 09:34:17] INFO:     Successfully added 1 expansions to settlements object 'Exp TL Updates' [5c4737464af5ca21a8649ee3]
[2019-01-22 09:34:17] INFO:     Saved settlements object 'Exp TL Updates' [5c4737464af5ca21a8649ee3] to mdb.settlements successfully!

The defeated monsters string stayed (unsurprisingly), but as the logs promised, the nemesis and any record of it is gone.

If I re-add it, which is possible (but still throws the nemesis handle is null error), and check the Lvl 1 box (also possible), it survives a refresh.

LY6 appears to be unmodified: Armored Strangers is still there. LY9 has its event removed, however, so current years gets touched: the Slenderman L&9 event is subbed in.

toconnell commented 5 years ago

Current feel: expansion content should have some kind of flag that indicates what to do if adding it to an existing settlement, since that usually follows special rules.

[edit]Maybe an attribute of a TL event that says "this is the intro event for a settlement whose TL is older than the expansion content's intro year."[/edit]

toconnell commented 5 years ago

OK, we're adding two new attributes to expansion assets: maximum_intro_ly and late_intro_event, which we will use to determine whether to do the 'new settlement' style content add or the content add where you're at or after the LY the book recommends.

Testing it now.

toconnell commented 5 years ago

Works as expected: "It's Already Here' gets added to LY10 (of the LY9 tester settlement). Nemesis monster list is unmodified and other King's Man encounter stay on the Timeline.

I'm going to update the rest of the expansions that have recommended add procedures and call it a day on this one.

toconnell commented 5 years ago

committed to main in e0b79a8ee2f9b63f4c4fb615a4ecdeecd35d446c