This post says:
What do we do now?
AdventureRequet.registerEncounter passes the combat "encounter" and responseText to AdventureRequest.ranslateGenericType.
AdventureRequest.ranslateGenericType goes through a bunch of gyrations to try to figure out which monster it is.
It figures out the MonsterData and returns the monster name as the "encounter".
And then later, in FightRequest, it looks up the monster name and disambiguates it vis consequences.txt.
That seems like a lot of unnecessary processing.
What does translateGenericType to convert "monstername" to MonsterData to an "encounter" string?
- If you are in Fernswarthy's Basement, BasementRequest already genericized it for you.
- If WumpusManager says it's the wumpus, believe that, even if you are blind, for some reason.
- time prank and be any player name, so attempt to look for message
then
- remove OCRS modifiers - add to MonsterData.lastRandomModifiers
- remove intergnat modifications - add to MonsterData.lastRandomModifiers
- handle mutants from Nuclear Autumn - add mutant to MonsterData.lastRandomModifiers
- handle masks - add to MonsterData.lastMask and to MonsterData.lastRandomModifiers
then
- call ConsequenceManager.disambiguateMonster
and then lookup the monster name to get a MonsterData
If we still can't find it,
- look for monsters with synonymous names from LT&T
- look up monster by image
- disambiguate Video Game bosses and minibosses, DMT monsters, etc.
That is immensely complicated, but this KoL fix will let us simplify it a lot
- We still need to do the OCRS/Intergnat/Nuclear Autumn/Disguises Delimit stuff to calculate MonsterData.LastRandomModifiers and MonsterData.lastMask stuff.
- We still need to disambiguate via ConsequenceManager, although the vast majority of monster consequences should not be needed.
If we are given a monster ID we don't know, we can do look it up and learn monster IDs. Hard Mode dreadsylvania monsters, ultrarare monsters, etc., etc.
And if we are calculating MonsterData, anyway, how about if we don't go back and forth between encounter name to MonsterData to encounter name to MonsterData?
This is pretty exciting. Unless gausie has had time to start this, I'll hop onto it.
and this post says:MONSTERID is now included in the HTML. This is mostly for Mafia support. It is intended that darkness and darkness only will obscure MONSTERID (I won't spoil the other good example here).]
Very nice.Yes, this removes the pain from Gremlins, essentially. It was discussed as one of the main drawbacks of the change, but also just doesn't hold that much impact. New players won't be checking HTML (probably), and if they did, wouldn't know why it was relevant to the quest. That means they can still explore it the "normal way", as can those who don't use Mafia.
People (The ErosionSeeker, etc.) already did something similar by never collecting the Factoids of the "wrong" gremlins.
What do we do now?
AdventureRequet.registerEncounter passes the combat "encounter" and responseText to AdventureRequest.ranslateGenericType.
AdventureRequest.ranslateGenericType goes through a bunch of gyrations to try to figure out which monster it is.
It figures out the MonsterData and returns the monster name as the "encounter".
And then later, in FightRequest, it looks up the monster name and disambiguates it vis consequences.txt.
That seems like a lot of unnecessary processing.
What does translateGenericType to convert "monstername" to MonsterData to an "encounter" string?
- If you are in Fernswarthy's Basement, BasementRequest already genericized it for you.
- If WumpusManager says it's the wumpus, believe that, even if you are blind, for some reason.
- time prank and be any player name, so attempt to look for message
then
- remove OCRS modifiers - add to MonsterData.lastRandomModifiers
- remove intergnat modifications - add to MonsterData.lastRandomModifiers
- handle mutants from Nuclear Autumn - add mutant to MonsterData.lastRandomModifiers
- handle masks - add to MonsterData.lastMask and to MonsterData.lastRandomModifiers
then
- call ConsequenceManager.disambiguateMonster
and then lookup the monster name to get a MonsterData
If we still can't find it,
- look for monsters with synonymous names from LT&T
- look up monster by image
- disambiguate Video Game bosses and minibosses, DMT monsters, etc.
That is immensely complicated, but this KoL fix will let us simplify it a lot
- We still need to do the OCRS/Intergnat/Nuclear Autumn/Disguises Delimit stuff to calculate MonsterData.LastRandomModifiers and MonsterData.lastMask stuff.
- We still need to disambiguate via ConsequenceManager, although the vast majority of monster consequences should not be needed.
If we are given a monster ID we don't know, we can do look it up and learn monster IDs. Hard Mode dreadsylvania monsters, ultrarare monsters, etc., etc.
And if we are calculating MonsterData, anyway, how about if we don't go back and forth between encounter name to MonsterData to encounter name to MonsterData?
This is pretty exciting. Unless gausie has had time to start this, I'll hop onto it.