Feature More philanthropic buffs for the buffbot engine

Otori in the the midst of setting up Binary again, and by my count there are now 28 unlimited buffs that can be cast, but it seems that mafia only denotes meat amounts from 1-10 as philanthropic, making it impossible to limit more than 10 things to once a day. This is complicated by the fact that for buff packages that don't need to be limited, they're cheap enough that their price might be in the 15-20 meat range. We're not exactly sure what we want to do yet, but I figured I'd ask what are our options at this point? Would it be possible to manually designate certain buff packages as once a day?

Update: after discussion, here's exactly what we would like changed, if possible:
-Manually designate philanthropic buffs, and allow for them to be cast more than once, but not an unlimited number of times, per day.
-Prioritize Lucifers, PYEC, and black hearts, and MMJ, in the order of the user's choosing. On basementing days, for instance, we'd want to flip Lucifers to below MMJ (IE, to never be used). If the buffbot engine recovers MP following the same settings that everything else in mafia uses, then this is simple. And it probably already does, I just want to be sure that's the case.
-I understand that mafia will convert philanthropic requests to non-philanthropic ones automatically. This is a behavior that I personally have no feeling about one way or the other, but if it matters with regards to making the above changes, Binary and Testudinata will be switching to a baseline of 600 turns for all philanthropic buffs, with paid options for 600, 1500, 3000, and 24000 turns. Since there will be a philanthropic and non-philanthropic version of all buffs, hopefully that will make conversion easy.
 
Last edited:

heeheehee

Developer
Staff member
Hrmm. If I'm reading the code correctly, iff it's not cost-effective to use MMJs [for a given buff] (assuming Trav. Trousers), then it's considered to be philanthropic.

Relevant code snippet:
Code:
this.free = this.price <= totalCost * 95 / MPRestoreItemList.getManaRestored( "magical mystery juice" );
 
I see the reasoning behind that coding, but my hunch is it might be a relic from before Lucifers existed in their current form. As it is right now ideally Test (and any other buffbots for that matter) should be drinking Lucifers before moving to MMJs, since they're a pool of basically free MP. A large enough pool that MMJ often simply isn't needed. Since what's cost effective and what isn't is no longer clear due to that, I would strongly prefer to manually designate 1/day and unlimited buffs if possible.
 

Rinn

Developer
The buffbot xml files have a tag for philanthropic buffs, we should probably just use that.
 
It looks like Test has been using Lucifer's manually. So, in summary, would it be possible:
-Manually designate philanthropic buffs
-Prioritize Lucifers, PYEC, and black hearts (including the option to retrieve one on the spot via fangs or an interview book), and MMJ, in the order of the user's choosing? On basementing days, for instance, we'd want to flip Lucifers to below MMJ (IE, to never be used).

If these aren't possible, that's fine, we just need to know one way or the other so we can plan accordingly.
 

Bale

Minion
-Prioritize Lucifers, PYEC, and black hearts (including the option to retrieve one on the spot via fangs or an interview book), and MMJ, in the order of the user's choosing? On basementing days, for instance, we'd want to flip Lucifers to below MMJ (IE, to never be used).

What is possible is to write up your own recovery script that prioritizes those things and changes as you desire. (I'm not even sure what a basementing day might be.)
 

Bale

Minion
I believe that it does. I trust that someone in your clan knows enough about ash programming to do this? If not, they can post their questions in this forum, under Scripting Discussion.

I recommend a reasonably script for use of the special items such as lucifer, PYEC and black hearts. If it returns FALSE, then mafia will run its default healing as usual so that does not need to be part of the script. Gaining a black hearts each day is reasonably simple and should just be a part of the login script to ensure it happens regardless of need since even if you don't need one today, you might need two tomorrow.

While my response is helpful, it does not fulfill the posted problem. What to do about enabling more philathropic buffs?
 
Last edited:
While we were kicking it around in /clan, one other thing that would be nice is to be able to set buffs to be limited to 3-4 times a day. This way, instead of making separate entries for breakfast, nightcap, and a couple just-in-case-you-screwed-up-odes, we could just make one entry be usable 4 times a day, so you could screw up once each during breakfast and nightcap. I'll update the OP so it's clear what we want after all this discussion.
 

Catch-22

Active member
I looked into some of them, namely adding a better way to declare a buff as being philanthropic. I'm very busy lately though, so I haven't made any further headway.

This was before you suggested a "limited use" buff thing, which I think is also a good idea, but that would require changing the buffbot.xml format. Probably not a huge problem, if we still had "philanthropic" in there for backwards compatibility.

To answer your question, yes at least some of the changes are possible (I didn't look into your Lucifer's request at all). Right now I don't have a lot of time though, so perhaps someone else is willing. I don't know when I will be free to do anything more than minor tinkering, maybe a few weeks?
 

Theraze

Active member
The Lucifer thing is something that DA (or whomever) would handle themselves with a recovery script. It's not a part of the buffbot itself... it's a part of how mafia's been told to recovery. And that's something anyone can do themselves, no additional coding or changes required.
 

Theraze

Active member
I note it because both you mentioned it specifically, and because DA added it to the first post AFTER Bale told him that it was already in mafia. :)
 

Catch-22

Active member
Well, Bale technically only said that he was pretty sure that's how it was handled. I just wanted confirmation that was the case.

Ah, yes. I see now what you're talking about. I had a very short look at the code and it doesn't appear to use the recoveryScript. I see some hard coded item references and I don't see any reference to RecoveryManager.recoverMP so yeah that should probably be "normalized" to use the recovery settings of the character currently logged in (including any recovery scripts).
 
I think that should be an option, but it's probably not strictly necessary. All buffbots will use Lucifers before resorting to MMJ, it'd be stupid not to. Perhaps throwing in a daily black heart or PYEC too. Testudinata and Fuhransi use about 1.2 mil MP daily, and according to her site Buffy uses less than a million a day. More than 15 Lucifers a day just isn't going to be necessary for buffing usages, because those amounts of MP are trivial to get. MMJ certainly isn't necessary, except on days where the bots are flooded. At the end of the day the rest should just be used on a logout script that does libram summoning with any remaining fullness available.
 

Catch-22

Active member
Perhaps this thread will be of interest to you. I guess, based on that thread, that the buffbot does use the recoveryScript (although in my brief look at the code I couldn't see where it did that).
 
Top