New Content - Implemented Bees Hate You

slyz

Developer
I guess it could become a real Mafia modifier, so that ASH scripts and, more importantly, the Modifier Maximizer are able to access it.
 

Winterbay

Active member
Suggestion: Would it be possibel to filter the familiar list in the equipment manager to not show familiars that contain b's while you are on a b-core run. trying to figure ouyt which combat familiar to use for the NS was interesting when i kept having to look for the small and insignificant letter b :)
 

Theraze

Active member
Another 'b' item that causes problems... the manual of laBor from the Wizard of Ego quest is used by 'breakfast' even though it fails...
> breakfast

Using 1 Manual of Labor...
You are too scared of Bs
 

slyz

Developer
Suggestion: Would it be possibel to filter the familiar list in the equipment manager to not show familiars that contain b's while you are on a b-core run.
I tried modifying KoLCharacter.addFamiliar() to skip familiars with a 'b' so that Mafia will simply thinks that you don't own any of those familiars.

A small drawback I can see (since you can't enthrone those familiars) is that if, for some reason, you go to the familiar page and equip an item on a familiar with a 'b', Mafia will not see that you have that item anymore. You will have to unequip it manually.

The big issue is that, when you break the prism, the GUI won't update with the new familiar list. Like with the patch for the "b items" checkbox, I don't know how to refresh the whole Mafia GUI to remove Beecore changes. I tried to mitigate this by adding a visit to familiar.php when you free the king: it will update the familiar list with all your familiars, but you will still need to restart Mafia.

I won't post the patch since it seems like a bad idea. Breaking the prism and having a "b items" checkbox in your GUI is one thing, but having a reduced familiar list means you are forced to restart mafia completely.
 

Veracity

Developer
Staff member
Another 'b' item that causes problems... the manual of laBor from the Wizard of Ego quest is used by 'breakfast' even though it fails...
Revision 9344

Suggestion: Would it be possibel to filter the familiar list in the equipment manager to not show familiars that contain b's while you are on a b-core run. trying to figure ouyt which combat familiar to use for the NS was interesting when i kept having to look for the small and insignificant letter b :)
I like this idea.

I tried modifying KoLCharacter.addFamiliar() to skip familiars with a 'b' so that Mafia will simply thinks that you don't own any of those familiars.
I think the correct approach is to make a private familiar list for the Gear Changer which only has non-B familiars if you are in BeeCore.

We already do something of the sort for the Weapon and Offhand lists: if you equip a two-handed weapon, we clear the offhand list, if you equip a one-handed ranged weapon, we remove melee weapons from the offhand list, and so on. We provide an "updateWeapons" method so that the rest of KoLmafia can tell the Gear Changer to recalculate those lists when something has changed - new weapons in inventory, and so on.

We'd provide GearChangeFrame.updateFamiliars to recalculate the familiar list and call it when you add a familiar or enter/leave Beecore.
 

fronobulax

Developer
Staff member
Another patch!

Patch won't apply for me, presumably because of relative paths. Patches that work for me usually have something like
Code:
--- src/net/sourceforge/kolmafia/KoLmafia.java	(revision 9338)
+++ src/net/sourceforge/kolmafia/KoLmafia.java	(working copy)

whereas your patch has
Code:
--- KoLCharacter.java	(revision 9341)
+++ KoLCharacter.java	(working copy)

My usual trick of moving the patch around in the source tree did not work. Since I am lazy I'm going to ask you to redo the patch file rather than spend the time to apply the patch some other way and then have to verify that what I did was what you had intended.

Thanks.
 

Veracity

Developer
Staff member
Revision 9345 hides B-familiars in the familiar popup in the GUI's sidepane. That was easy, since that is rebuilt every time you click the familiar image to pop it up.

I added a "canEquip" method to a FamiliarData, which could be used to build filtered list of equippable familiars in the Gear Changer.

What is the failure message that KoL gives you when you unsuccessfully try to equip a scary familiar? We need to detect that and not actually change your familiar in our data model if you try it via the Relay Browser, CLI command, ASH function, etc. and it fails.
 

Veracity

Developer
Staff member
This one is for the left pane of the GUI. When you are in Beecore, a "Bees: X" is added to the list of modifiers shown (ML/Enc/Init/...). X is the "Bee-osity" (the number of 'b's contained in the names of your currently equipped items, excluding the stickers).
I like this. I don't see any reason for the Bee: counter to go down or up depending on whether you have Clownosity, and so on; I think it's fine to be at the bottom in the same position with a blank line above it (usually).

Revision 9346
 

slyz

Developer
Patch won't apply for me, presumably because of relative paths.
I only learned how to use ToirtoiseSVN, and I must have created the patch by clicking on the \src\net\sourceforge\kolmafia\ folder instead of the root folder. Sorry about that.

But I guess I don't have to redo the patch!

I don't see any reason for the Bee: counter to go down or up depending on whether you have Clownosity, and so on;
I found it a little strange to have it on a line by itself, but I agree that my solution made the code a little confused.

Thanks for taking the time to look into it.
 

Winterbay

Active member
What is the failure message that KoL gives you when you unsuccessfully try to equip a scary familiar? We need to detect that and not actually change your familiar in our data model if you try it via the Relay Browser, CLI command, ASH function, etc. and it fails.

I got this when trying to switch to a Baby Sandworm:
Code:
You are too afraid of the Bs to adventure with that familiar.
 

Nifft

Member
G'morning,

Without concatenating all of the possible returns from item_type(), is there a function or proxy field available to tell if something in your inventory is equippable? Can_equip() does not meet the need because if I use that function on a random piece of non-equipment, it will return true. My goal is to be able to do some maximizer -equip params in my code for any B items that are not specifically necessary for the current task, until/unless Slyz's B checkbox feature is extended to the maximizer (or another equivilent if Veracity were to get there first ;) )

thanks!
~ Nifft
 

Nifft

Member
That would work nicely for the current challenge if you mean only the truly equippable stuff I'm asking about, but wouldn't extend to other uses / future challenges very well would it? If it existed, I would use it for this work I'm doing, but was really looking for an idea for something generic.

thanks!
~ Nifft
 

Theraze

Active member
Or even if filtering could be added to the maximizer... "maximize !=b" to equip only items without a b, or "maximize =b" to equip only items with, or similar... it would allow for standard avoidance of beeosity, but still allow for it to be used when/if needed.
 

Nifft

Member
If someone goes forward with creating the filtering inside the maximizer, please make any +equip or +outfit calls that contain B's be included in the results rather than excluded, if possible?

thanks!
~ Nifft
 

Veracity

Developer
Staff member
I got to the Naughty Sorceress today and found a glitch in the Sorceress Entryway quest script. When I selected it, it visited the lair and saw the gate of bees, realized it needed the honeypot's status effect - and then, apparently, went in and got beat up BEFORE it used the honeypot and got the effect (which it did, before aborting the script). I got rid of Beaten Up and tried again. It went in and did the rest of the Entryway, as expected.

I'll look at this when I get there again. Unless somebody else wants to look at this. ;)
 

slyz

Developer
I should get to the lair in 2 or 3 days. I'll try to move some of the logic around before I go through (and after I go through).
 

Winterbay

Active member
I just submitted an attempted fix. Revision 9355. Tell me if it works. :)

It does not appear to work. My CLI output after choosing "Lucky Entryway" was this:
Code:
Checking prerequisites...
Crossing three door puzzle...
Using 1     honeypot...
You acquire an effect: Float Like a Butterfly, Smell Like a     Bee (duration: 100 Adventures)
Finished using 1 honeypot.
Unable     to pass gates!

So, it used the pot and then failed anyway?

Looking in the relay browser it seems to have failed to unequip my equipment since it has passed the bees but the mirror is still standing.

Edit: Restarting got me past the entryway. Also, I did at least not get beaten up :)
 
Top