New Content - Implemented September 2019 IotM - Pocket Professor

Oh, that's why mafia was failing to pick up my semi-rares.

The problem seems to be not with when it's set to true, the problem is that gets set to false ONLY when you run into a semi-rare while it's true. This is fine when you are copying a semi-rare monster like a knob embezzler.
However if you copy something that's not a semi-rare, it (correctly) gets set to true at the end of the fight, but then doesn't go back to false when you chain into the next fight. Instead it stays that way until you finally pick up a semi-rare, however many turns later. Which is then considered your relativity fight, rather than your actual semi-rare, throwing off mafia's semi-rare tracking in the process.

For example:
Code:
[48] The Haunted Bathroom
Encounter: sausage goblin
Round 2: the dictator casts LECTURE ON RELATIVITY!
Preference _pocketProfessorLectures changed from 0 to 1
Round 6: the dictator wins the fight!
Preference _relativityMonster changed from false to true

[48] The Haunted Bathroom
Encounter: sausage goblin
Round 2: the dictator casts LECTURE ON RELATIVITY!
Preference _pocketProfessorLectures changed from 1 to 2
Round 6: the dictator wins the fight!

[48] The Haunted Bathroom
Encounter: sausage goblin
Round 5: the dictator wins the fight!

[65] The Haunted Gallery
Encounter: sausage goblin
Round 2: the dictator casts LECTURE ON RELATIVITY!
Preference _pocketProfessorLectures changed from 2 to 3
Round 5: the dictator wins the fight!

<I snipped out a couple>

[65] The Haunted Gallery
Encounter: sausage goblin
Round 2: the dictator casts LECTURE ON RELATIVITY!
Preference _pocketProfessorLectures changed from 6 to 7
Round 5: the dictator wins the fight!

[65] The Haunted Gallery
Encounter: sausage goblin
Round 4: the dictator wins the fight!

[76] The Hidden Temple
Encounter: Baa'baa'bu'ran
Preference _relativityMonster changed from true to false

After this it got set to true when I copied a swarm of ghuol whelps and a bunch of other sausage goblins, and it only went back to false when I logged in after rollover (since it is a daily property).

Compared to this from a couple of days ago:
Code:
[2919] Rain-Doh box full of monster
Encounter: Knob Goblin Embezzler
Round 2: the dictator casts LECTURE ON RELATIVITY!
Preference _pocketProfessorLectures changed from 0 to 1
Round 4: the dictator wins the fight!
Preference _relativityMonster changed from false to true


[2920] null
Encounter: Knob Goblin Embezzler
Preference _relativityMonster changed from true to false
Round 2: the dictator casts LECTURE ON RELATIVITY!
Preference _pocketProfessorLectures changed from 1 to 2
Round 4: the dictator wins the fight!
Preference _relativityMonster changed from false to true

<snip> 

[2935] null
Encounter: Knob Goblin Embezzler
Preference _relativityMonster changed from true to false
Round 2: the dictator casts LECTURE ON RELATIVITY!
Preference _pocketProfessorLectures changed from 15 to 16
Round 4: the dictator wins the fight!
Preference _relativityMonster changed from false to true

[2936] null
Encounter: Knob Goblin Embezzler
Preference _relativityMonster changed from true to false
Round 4: the dictator wins the fight!
 
Last edited:

Veracity

Developer
Staff member
This is, literally, something that I will never, ever, use myself, so I will depend on you guys to figure out if what I submit is correct, since I will not test it.

I'll see what I can do.
 

fredg1

Member
This should be the effect of _relativityMonster being seen as true at the start of a (any) fight:

-Get it back to false

-if it's a semi-rare monster, disregard that fact that this is a semi-rare

-If it is a monster that has its number of fights tracked, such as a sausage goblin, a witchess piece, a black crayon monster or a mini-hipster monster, DO NOT increment the counter (NEED HELP FOR THAT ONE, doesn't need a genius to see that I'm only thinking of (limited) free fights here, and there is very likely fights that are tracked as a "progress" towards something, and implementing things the way I said it on that line will most likely break stuff, need help/correction first) (also i'm maybe forgetting stuff)
 

fredg1

Member
Interesting deduction. I wonder what the basis for it is?

Actually, I have, literally, no idea how you got what you got, given how you explained it to me before, which informed how I implemented it.

We set _relatvityMonster to true in exactly one place:

You win a fight and the message "STEP INTO FOLD IN SPACETIME" is present in the response text.

In other words, there is a "next" link which will take you immediately into a fight.

You are telling me that you did NOT get a fight, but, instead, when you clicked that link, it took you to a non-combat?

That is exactly how you described this working. NOT.

More information, please. What, exactly, did you do?

also, yeah, this was supposed to be a continuation from the previous post (even though it was a week ago), in which I noticed that _relativityMonster was simply not being set to false when starting the relativity fight, and was just... staying true... indefinitely

So I just pointed out "Oh, so THIS is when it gets set to false".

I guess the week-long gap between the two made the connection ambiguous...
 

Veracity

Developer
Staff member
Revision 19604.

This checks for isRelativityMonster every time is classifies the encounter. If so, it sets it to false and says to ignore Special monsters - which will make semirares ignore it.

Untested. (I'm in a 100% Emo Roe run, and see no particular reason to switch familiars until I ascend again after getting all the glitchSwagger I need for a second glitch reward.)
 

Veracity

Developer
Staff member
-If it is a monster that has its number of fights tracked, such as a sausage goblin, a witchess piece, a black crayon monster or a mini-hipster monster, DO NOT increment the counter (NEED HELP FOR THAT ONE, doesn't need a genius to see that I'm only thinking of (limited) free fights here, and there is very likely fights that are tracked as a "progress" towards something, and implementing things the way I said it on that line will most likely break stuff, need help/correction first) (also i'm maybe forgetting stuff)
What I submitted will probably not do that for sausage goblins, but the others are under "EncounterManager.ignoreSpecialMonsters", so should behave correctly.
Do sausage goblins get counted incorrectly for copied monsters, too? Looks like they would. If that is incorrect, the same check should be made for them.
 

fredg1

Member
That's mostly because they don't have a "limit", per se.

Instead, the more you fight them (naturally), the lower the chance of getting another/the more turns you need to wait to get the chance to 100%

So for those unaware of that fact/that don't remember what chance of getting one is at what amount of goblins fought (a.k.a. those not using Ezandora's handy-dandy guide), it seems like they'll just keep randomly appearing forever. (they technically will, but if so, you're either a dev, or getting reported for hacking)
 

Miser

New member
I added a counter for the professor's lectures to the charpane. This is my first patch to Mafia, so please tell me if I made some mistake.
 

Attachments

  • professor_charpane.patch
    2.1 KB · Views: 26

fronobulax

Developer
Staff member
I added a counter for the professor's lectures to the charpane. This is my first patch to Mafia, so please tell me if I made some mistake.

Patch would not apply for me. Bad hunks in one (source) file. I can try again later but that might not be immediately.
 

Miser

New member
Strange, it applies for me on a freshly checked out repo. Does anyone have an idea what could be going wrong here?
 

lostcalpolydude

Developer
Staff member
19637. I added the changes manually instead of applying the patch, so I didn't have a chance to see whether the patch would apply.

I added the familiar block to the end of the list instead of where it was in the patch, but otherwise didn't change anything.
 
Top