Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Event attribute IDs #9

Open
Logg-y opened this issue Sep 17, 2022 · 0 comments
Open

Event attribute IDs #9

Logg-y opened this issue Sep 17, 2022 · 0 comments

Comments

@Logg-y
Copy link
Contributor

Logg-y commented Sep 17, 2022

It looks like the repo wasn't updated for 5.57, which means I can't add this stuff in myself very effectively. It looks like something broke the event parsing code in the update too, which isn't ideal. I don't know what changed to make things go wrong either unfortunately.

Still, I went digging in the executable for the unknown event attribute IDs. Most of these mapped easily to mod commands. This might be sufficient to help someone improve the event listings for dom5inspector, though I suspect for trying to piece together all the different code types into something presentable is going to be a nontrivial amount of work.

Fixes for the "code" aliases:

0x3b req_code
0x43 req_anycode
0x44 req_nearbycode
0x55 req_nearowncode

REQUIREMENTS

0x11 #req_nativesoil
0x12 #req_nation
0x16 likely "#req_siege" if this command existed
0x18 #req_nonation
0x21 #req_nositenbr
0x3f #req_unclaimedthrone
0x42 #req_cave
0x46 #req_story
0x50 #req_nopathblood
0x51 #req_nopathholy
0x54 #req_noench
0x56 #req_permonth
0x5a #req_enchdom
0x5c likely "#req_nocode", if this command existed. Prevents events triggering only if the given code IS set on the province
0x5f Event is valid only in the province the given global enchantment was cast. Only Blood Vortex even saves this data, though.
0x60 Only valid in a province containing any unclaimed throne. Differs from #req_unclaimedthrone as it doesn't care about which throne specifically isn't claimed.
0x61 #req_mnr
0x62 #req_2monsters
0x63 Event is valid if (attribute value + cataclysm turn) > 0.
0x65 Only valid in a specific month of the year. The current month is given by (turn number % 12).
0x66 #req_5monsters
0x68 #req_notanycode
0x69 #req_deadmnr
0x6f Event has a (value + misfortune scale)% chance to be valid. Luck scales count as negative misfortune.
0x70 Event has a (value + current turn number)% chance to be valid.
0x73 Likely requires the province to have the given commander recruitable.
0x75 Seemingly requires the owner's pretender to be alive and somewhere on the map, not dead/imprisoned. Respects disciple games, truly going for the team leader's pretender.
0x76 The chance of this condition being valid is (25 * the number of directional dwarves that have been summoned)%.
0xe0 #req_targpath3
0xe3 #req_targhumanoid
0xe4 #req_targmale
0xe5 #req_targaff
0xe7 likely "#req_targsneaking" if this command existed.
0xe8 Valid only if the number of carried gems of the specified type on the target commander is greater than (closed d20 + 1)
0xe9 Requires that the target commander has eyes and lacks the Blind ability
0xea #req_targundead
0xeb #req_targdemon
0xf4 Requries that the target commander has at least one remaining arm
0xf6 #req_targmaxmorale

EFFECTS

0x6 ?May set assassination commanders to have a closed d3 of this kind of unit alongside them
0x7 Kills up to (10 * attribute value) population from the province, and makes 1 unarmed corpse per 10 population killed.
0x31 ?May cause the loss of a closed d6 of the given gem type
0x42 #hiddensite
0x5e #code2
0x6b #flagland
0x6e #delay
0x6f #delay25
0x70 #delay50
0x72 #nolog
0x73 #purgecalendar
0x74 #purgedelayed
0x75 #gainmark
0x77 #tempunits
0x79 #removesite
0x7c #1d3units
0x7e #3d3units
0x80 #cleartarg
0x81 #claimthrone
0x82 #poison
0x83 #xp
0x84 #kill2d6mon
0x85 #arena
0x86 #resolvearena1
0x87 #resolvearena2
0x89 #delayskip
0x8a #extramsg [Undocumented mod command. Seemingly sends everything to the left of the || in the event text to the owner, and everything to the right to the numbered nation]
0x8c Could not find a place where this is checked
0x8d #codedelay
0x8f Very similar to resetcodedelay2, but looks to set the delayed event's target turn to (current turn) instead of (current turn + 1)
0x90 #resetcodedelay2
0x91 "Worldwide: Constant storm". Creates enchantment 110 apparently in a nonexistent province with no owner, which is consistent internally with making a storm in every province.

Side note: all the attribute IDs could do with a little adjustment. For example, MonsterStatIndexer refers to say Animal Awe as 8602, which should really be read as 0x286 = 646 decimal. This happens to correspond to the values referenced internally, for example a ritual with effect 10500 damage 646 adds one point of animal awe to the caster. See also: https://github.com/larzm42/dom5inspector/blob/gh-pages/gamedata/unit_effects.csv#L491. There might also be milage in outputting these to the .csvs so the inspector can display unknown keys and their IDs, simply so it can be said that there is SOMETHING else on an object that hasn't been identified.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant