New Content - Implemented Spring 2020 Challenge Path - Path of the Plumber

The path gives some HP regen, and non-path sources of HP regen don't work. There's probably a good way of handling that, but nothing simple is coming to mind.
 
Code:
New monster #2171 found in Manuel with name 'Angry Sun' image 'angrysun.gif' attributes ='Atk: 130 Def: 130 HP: 300 Init: 50 P: weird'
New monster #2168 found in Manuel with name 'Birdo' image 'birdo.gif' attributes ='Atk: 180 Def: 180 HP: 300 Init: 50 P: beast'
New monster #2172 found in Manuel with name 'Bowser' image 'bowser.gif' attributes ='Atk: 300 Def: 300 HP: 400 Init: 50 P: beast'
New monster #2166 found in Manuel with name 'Hammer Brother' image 'hammerbrother.gif' attributes ='Atk: 60 Def: 60 HP: 80 Init: 50 P: beast'
New monster #2170 found in Manuel with name 'Kamek' image 'kamek.gif' attributes ='Atk: 180 Def: 180 HP: 200 Init: 50 P: beast'
New monster #2169 found in Manuel with name 'King Boo' image 'kingboo2.gif' attributes ='Atk: 180 Def: 180 HP: 300 Init: 50 P: undead'
New monster #2167 found in Manuel with name 'Very Dry Bones' image 'drybones.gif' attributes ='Atk: 100 Def: 100 HP: 150 Init: 50 P: undead'
New monster #2174 found in Manuel with name 'Wa%playername/lowercase%' image 'waplayer.gif' attributes ='Atk: 300 Def: 300 HP: 1000 Init: 10000 P: dude'

Angry Sun replaces Groar
Birdo replaces Dr. Awkward
Bowser replaces The Big Wisniewski
Hammer Brother replaces the Knob Goblin King
Kamek replaces Protector Spectre
King Boo replaces Lord Spookyraven
Very Dry Bones replaces Bonerdagon
Waplayer replaces the NS.
 
I think you hinted at this but finishing a path returns you to one of the standard classes and Mafia doesn't seem to recognise that properly in terms of what skills you can cast. Breakfasting after breaking the prism and choosing a path doesn't do any of the MP-costing skills, and I can't cast ode through the item manager.

I'm sure you're on most of this and it'll be ironed out, but I thought I'd mention it as I didn't see anyone else discuss it.
 
(This is a Avatar class, so, presumably, at end you choose a regular class? need to call resetAfterAvatar once we know the choice adventure number for that.)
I think you hinted at this but finishing a path returns you to one of the standard classes and Mafia doesn't seem to recognise that properly in terms of what skills you can cast. Breakfasting after breaking the prism and choosing a path doesn't do any of the MP-costing skills, and I can't cast ode through the item manager.
Thanks.
Revision 19747
 
Code:
Angry Sun replaces Groar
Birdo replaces Dr. Awkward
Bowser replaces The Big Wisniewski
Hammer Brother replaces the Knob Goblin King
Kamek replaces Protector Spectre
King Boo replaces Lord Spookyraven
Very Dry Bones replaces Bonerdagon
Waplayer replaces the NS.[/QUOTE]
Thanks. Revision 19748 adds those.
It also logs the monster info to the session log in the format we need for monsters.txt; the same data it currently logs, but no text manipulation needed.
2173 is clearly the replacement for The Man.
 
Thwaitgold:
Code:
--------------------
10470	Thwaitgold buzzy beetle statuette	210138001	thwaitbuzzy.gif	none		0
# Item Thwaitgold buzzy beetle statuette
--------------------

Also, an effect from waplayer, given when he removes all your effects:
Code:
--------------------
2560	Half-Sized	mario_halfsize.gif	a2e799db00f83234a97fe1ab9d38ee88
Effect	Half-Sized	Muscle Percent: -50, Mysticality Percent: -50, Moxie Percent: -50
--------------------

Also also Heated Up, from Juggle Fireballs

Code:
--------------------
2559	Heated Up	mario_juggle.gif	7ff2479058ced96de968b27a32df19e1
Effect	Heated Up	Muscle Percent: +200, Mysticality Percent: +200, Moxie Percent: +200
--------------------
 
Last edited:
I think the big thing remaining is figuring out how to get the six combat skills in. As lost pointed out in comments, they have the same name as the passive that grants you those skills.

They don't show up in stationary buttons - even though they appear in the skill dropdown on the fight page - as well as on action buttons.
When we parse the char sheet and see your skills - all passives, in this path - we should add the combat skills granted by the passives you have.
Both passives and combat skills should show up on have_skill().
ASH's use_skill() will work in combat - but you'll need to use the $skill of the combat skill, not the passive.
I guess we can use the same syntax as we use for items and effects:
$skill[ [7336]Multi-Bounce ] (or to_skill( 7336) is the combat skill
$skill[ [25006]Multi-Bounce ] (or to_skill( 25006) is the passive skill

We DO learn them from the fight page (not sure why they show up twice):

Code:
[276] God Lobster
Encounter: the God Lobster
Round 0: Veracity loses initiative!
Round 1: You lose 75 hit points
--------------------
7336	Multi-Bounce	mario_multibounce.gif	5	0	0
--------------------
--------------------
7336	Multi-Bounce	mario_multibounce.gif	5	0	0
--------------------
--------------------
7335	Spin Jump	mario_spinjump.gif	5	0	0
--------------------
--------------------
7335	Spin Jump	mario_spinjump.gif	5	0	0
--------------------
Round 1: Veracity casts MULTI-BOUNCE!
...
and later:

Code:
[277] God Lobster
Encounter: the God Lobster
Round 0: Veracity loses initiative!
Round 1: You lose 48 hit points
Round 1: Veracity casts MULTI-BOUNCE!

In spite of "learning" them, I'm not seeing stationary buttons for those.

I removed the "attack" button.
A "Jump Attack" button automatically shows up - because you don't learn that one from a passive and it is in the skill dropdown.
 
With r19755

I created a path-specific CCS consisting of:
Code:
[default]
skill spin jump
skill multi-bounce

and it works just fine but if I close mafia and restart then the CCS displays as:
Code:
[default]
1: note unknown/ambiguous skill spin jump
2: note unknown/ambiguous skill multi-bounce

When the CSS is in that state it fails to execute with the likely result of the character being beaten up. I can't perform the edit/save dance prior to the first combat of the day.
It seems that the available combat skills are only "seen" after a completed combat. If I edit and then save the CCS after one fight it fires as expected.
 
Yes, as Veracity just said, right now mafia has to learn them in combat. Do a combat manually, so it can learn those skills, then hit edit and save and your CCS will be good. At least, that's what happened to me.
 
I have a substantial release that should cover most of the combat skill stuff.
Can't fully test it until after rollover, but it's a-coming.

Basically a lot of Skill stuff that required a skill name now uses a skill id. I left skill name methods in place - but they call the skill id versions. That works fine for the vast number of places that call things like haveSkill( "Leash of Linguini" ) - since that skill is not ambiguous - but I can add the derived combat skills to the appropriate lists by skill id.

Something I'm not addressing, for the moment, is ambiguous names in ASH.

Code:
[color=green]> ash to_skill( 25006 )[/color]

Returned: Multi-Bounce
level => -1
image => mario_multibounce.gif
traincost => 0
class => Plumber
libram => false
passive => true
buff => false
combat => false
song => false
expression => false
walk => false
summon => false
permable => false
dailylimit => -1
timescast => 0

[color=green]> ash to_skill( 25006 ).have_skill()[/color]

Returned: true

[color=green]> ash to_skill( 7336 )[/color]

Returned: Multi-Bounce
level => -1
image => mario_multibounce.gif
traincost => 0
class => none
libram => false
passive => false
buff => false
combat => true
song => false
expression => false
walk => false
summon => false
permable => false
dailylimit => -1
timescast => 0

[color=green]> ash to_skill( 7336 ).have_skill()[/color]

Returned: true

[color=green]> ash $skill[ multi-bounce ].to_int()[/color]

Returned: 25006
I.e., you can get either skill by skill id, but using $skill[] you get the passive. If handled like items and effects, you'd have to use:

[7336]Multi-Bounce
[25006]Multi-Bounce

but

Code:
[color=green]> ash $skill[ [7336]Multi-Bounce ][/color]

[color=red]Bad skill value: "[7336]Multi-Bounce" ()[/color]
Returned: void
 
Revision 19760 does this:

Tracks current/maximum Power Points.
Displays them in compact side pane.
ASH functions - my_pp() and my_maxpp() - to retrieve them
Keeps them up-to-date in combat (deduct when use skills, reset to full at end of combat
power pants, Fizzy Fizzy, and Power Plus all affect maximum pp
numeric modifier - Maximum PP - available on that item, effect, and skill

When we read the charsheet and see the passive skills that grant you a combat skill, we add the combat skill to your available skills.
(I have not verified that this also happens when you buy the badge that grants you the passive. Should work. Will ascend today and check it.)
When we parse the combat skill dropdown on a fight page, we recognize the PP-using skills.
We add stationary buttons for such skills.

We read current & maximum PP from the charpane. Unfortunately, they are not in api.php. A pity, since the special code I put in to detect equipping/unequipping power pants and gaining/losing Fizzy Fizzy would be unnecessary if they were in api.php.

I described the issues with ASH in the previous note.
I have not tried PP-using skills in a CCS, but they should work, since they will now appear in the list of combat skills, if you have them.
 
With r19761 a CCS with Plumber skills no longer works at all. This CCS:

Code:
[ default ]
skill spin jump
skill multi-bounce

Now results in this in the gCLI:

Code:
[736] The Neverending Party
Encounter: "plain" girl
Round 0: Arbos wins initiative!
Round 1: Arbos executes a macro!
KoLmafia thinks it is round 2 but KoL thinks it is round 1
You're on your own, partner.
Click here to continue in the relay browser.

The skills work as expected from the relay browser and I no longer get the following in the CCS when starting KoLmafia:
Code:
[default]
1: note unknown/ambiguous skill spin jump
2: note unknown/ambiguous skill multi-bounce
 
Last edited:
OK, I'll look at CCS next. I just freed the king, so will start a new run by and by. This time I remembered to put my horadric pizza oven into my workshop first. :)

Other issues:

1) Both when defeating the shadow and when being defeated the first time by Waveracity, KoLmafia thought that my HP were now 3/3. I.e., the values for my PP. Every other combat worked as expected.
2) When I fought Waveracity, I see: "Encounter: Waveracity" in my session log, but it did not seem to disambiguate that as Wa%playername/lowercase%. Perhaps because I had the name as "Wa%playername/lowercase" (fixed in 19762), but maybe not...
3) When I clicked on the prism, I saw the page, with a link to "Game Over", leading to the choice to choose a class. The sidebar went red and a "You are in a choice" message. I clicked on that link, selected a class, and it did the usual after avatar stuff, including running my KingLiberated script. But what was the "you are in a choice" thing? That is not supposed to happen in an avatar class.
4) When I then ran a script which wanted to check what the Speakeasy had on offer, it told me my clan didn't have a speakeasy. When I manually visited the lounge and saw the Speakeasy present, and ran the script again, it told me the Speakeasy didn't have Lucky Lindy. When I manually went in to the Speakeasy and saw its offerings, the script worked. Apparently, re-activating old clan furnishings after a Standard Restricted run - perhaps only an avatar path? - doesn't fully check the lounge?
 
Experimental revision 19765

In certain avatar paths, the final boss is derived from your player name. The Manuel name has the raw name without the player name. For me:

Wa%playername/lowercase% -> 'Waveracity'
%alucard% -> 'yticareV'

We log the encounter as seen

Encounter: Waveracity

But when we look up that name, it is not a known monster. Therefore, it does not show monster stats - even though the monster is in monsters.txt. We register a monster with that name - just for the session - to allow everything that requires a MonsterData (like all over FightRequest) to work.

If you have Manuel, later runs will have manuel data for hp/attack/defense, but we still can't look up the monster.

At login, KoLmafia will now register "cloned" monsters. For me, there will be monsters named:

Waveracity
yticareV

I looked those up via "ash $monster[ Waveracity ]" and I see the monster data for the original monster.

Hopefully, in combat, I will still see "Round 2: Waveracity takes 50 dame" or whatever, but I won't be able to test until I see her again. :)
 
Back
Top