New Content - Implemented New path "Actually Ed the Undying"

Veracity

Developer
Staff member
Oh, it is definitely related. ConcoctionPool.iterator() operates over a list of canonical names - and that doesn't work right when you have multiple concoctions with the same name. "ancient amulet", for example. The first one by item # is an ingredient, the second by item # is not - and it is the latter that appears in the list.

I'm making that keep a Set of all concoctions, whether they are registered by item ID or by name. It's still not working right, but it's closer. :)
 

Darzil

Developer
How I've done it in Modifiers is to always index real items by [itemId] instead of itemName in the index. Maybe not the most elegant approach, but it works. As long as we never show it to the user it doesn't matter. ItemDatabase.getId( itemName) handles that syntax, and ItemDatabase.getName(itemName) returns the real name.
 

Veracity

Developer
Staff member
Well, revision 15542 goes a long way to not depending so much on names in ConcoctionPool. It keeps two maps: items (itemId -> Concoction) and nonitems (name -> Concoction). When you iterate over Concoctions, it uses a List that is the concatenation of both of those. When you look up a Concoction by itemId, it looks in the former.

Unfortunately, when you look up a concoction by name, it still looks up in another map - names (String -> Concoction) - that contains all the (canonical) names, which means it will not work for duplicate item names. So, more work needs to be done, but this is in the direction we want to go.

This revision means that the Staff of Ed now shows up on the Creatable tab of the Item Manager again, if you have all the components, and that we will auto-create it again when you click on the pyramid. I tested that. :)
 

Darzil

Developer
Nice one!

One day when the dust settles on these changes we'll have to look at Concoctions and allow more than one way to make something, picking the cheapest/possible ones.
 

Ezandora

Member
get_campground() returns the items installed in your campsite for the previous ascension, when ascending Ed:

Before ascending:
Code:
> ash get_campground()

Returned: aggregate int [item]
big rock => 1
chef-in-the-box => 1
confusing LED clock => 1
Dramatic™ range => 1
ice harvest => 6
Little Geneticist DNA-Splicing Lab => 1
My First Shaker™ => 1

After ascending, as Ed:
Code:
> ash get_campground()

Returned: aggregate int [item]
big rock => 1
chef-in-the-box => 1
confusing LED clock => 1
Dramatic™ range => 1
ice harvest => 0
Little Geneticist DNA-Splicing Lab => 1
My First Shaker™ => 1

In the real (inaccessible) campsite, the DNA-splicing lab and ice harvest are there though unusable, but the chef-in-the-box and Dramatic™ range/etc are not.
Think this is present in most recent builds.

There's also some oddities with the Dramatic™ range. I think mafia won't be able to know if you install it day one (knob cake) then need to use it day two, (unstable fulminate) so it will always install a second range when cooking. Ed is weird... he needs(?) an oven in his non-existent campsite, which he can't look at to verify he has an oven installed. I wonder if he could get a KOL-side exception for fancy cooking.
 

Veracity

Developer
Staff member
get_campground() returns the items installed in your campsite for the previous ascension, when ascending Ed
You mean if you ascend and then continue in the same session, without restarting KoLmafia, right? Because we don't save the contents of your campground between sessions; we simply repopulate it in-memory when we refresh your session at login or ascension and look at campground.php. Presumably we should simply clear the campground for Ed when we refresh the session.

Except, we can't (currently) know if you install a Dramatic range as Ed, except within the same session; we can't see your campground to see that. Do we know for sure that he needs the range? If you create fulminate via KoLmafia, we buy & install one, but what happens if you do it in the Relay Browser? Does KoL itself tell you that you need one? If not, we can simply not require it for Ed. Otherwise, yes, it's weird.
 

lostcalpolydude

Developer
Staff member
I think it's technically an oversight that the fulminate can be made at all as Ed, so I'm not expecting any KoL changes for that.
 

Darzil

Developer
If you try to consume whilst in the Underworld, the response is:

Retrieving server reply
ResponseText has 20 characters.
no|in a special area
Processing results...
Processing result: mummified beef haunch (-1)
Finished chewing 1 mummified beef haunch.
 

devjoe

New member
I just finished an Ed ascension, and found that my demon summon is not listed in Daily Deeds. I couldn't find an obvious preference where this is stored, but I'm assuming that Mafia doesn't know the Summoning Chamber is available, since it didn't see me defeat Lord Spookyraven.

Logging out/in didn't fix this; nor did summoning manually in the relay browser.

TL;DR: Mafia should set Lord Spookyraven defeated = true when Ed gives him back the Eye of Ed. Even more robustly, it could be set when the player summons a demon.

This problem is still occurring. I have not had the summoning chamber in my daily deeds since I started ascending as Ed, even though it is configured to be there. Interestingly, Mafia seems to know the summoning chamber is available; it shows up (and works) in the modifier maximizer. Just the daily deed doesn't appear.
 

Darzil

Developer
r15562 recognises failure of using items (and eating/drinking/spleening) due to limitmode (eg in underworld). It also recognises that Ed can't be healed by item restores other than the three bandages.
 

heeheehee

Developer
Staff member
I thought I'd report that Mafia is still decorating "You gain a level" text with servant / skill links, even after level 15 (level 16 has no skill, level 18 has no servant)..
 

Magus_Prime

Well-known member
what happens if you do it in the Relay Browser? Does KoL itself tell you that you need one? If not, we can simply not require it for Ed. Otherwise, yes, it's weird.

If you try to craft unstable fulminate from the relay browser then KoL tells you that
Code:
You need a more advanced cooking appliance to cook something something with fancy ingredients.
After purchasing a Dramatic Range and using it you get a message informing you that it has been installed in your campsite. You can then craft the unstable fulminate via the relay browser.
 
Last edited:

Magus_Prime

Well-known member
I don't know whether it is valid in vanilla KoL but, having recently gained access to the servant buff "Purr of the Feline", I noticed that KoLmafia is applying the +5 level boost even when the total level count exceeds twenty-one.
 

Theraze

Active member
Has the fairy bonus been spaded whether the bonus is capped or if this allows higher levels, just like with familiars capping at level 20 and being able to go higher through skills?
 

lostcalpolydude

Developer
Staff member
I expect the easiest thing to do is to check whether KoL claims it's above level 21, which I should be able to do tomorrow.
 
Top