Contest: Name my upcoming combat script!

Which is the best name for Zarqon's upcoming combat consult script?


  • Total voters
    60
  • Poll closed .
Batman will consider running away as one of your combat options. The cost of running away is

monster_value()
+
meatperhp*(chance that you can run away * expected monster damage)
+
chance of a free runaway * valueOfAdventure

I have finished up my first prototype of the action tree mechanism. I have nothing releasable, though, since I'm rearranging a lot of things. The new script trilogy looks like this:

batbrain.ash
SmartStasis.ash
BatMan.ash

That's right; FTF will become a thing of the past.

So far it's untested, but I'll start testing soon! I'm worried that this will slow things down a good bit -- we'll see if I need to optimize further for speed.
 
Battle Brain. It's a consult function library. It allows a consult script to know basically everything about your current situation, and has other useful combat functions, like intheclear(), stasis_item(), monster_value(), act(), etc. This simplifies the role of a consult script -- it simply has to include logic to choose which option(s) to actually do. If you saw the fight.ash thing I posted a bit ago, then very little of it is actually new -- it's bits from FTF, SS, and BatMan, all piled together. I'm including this from the beginning now -- which means FTF and SS will be able to wise up about a few things.
 
That would make it a lot easier for others to write consult scripts. :) I've got a a consult script or two that imports SS for what itz got. After this it sounds like I'd use BatBrain instead.

How do the other two parts inter-relate? Just use SS if you only want it to stasis for you, but use BatMan for stasis plus kill? Then would FTF be wrapped up in SS?
 
How about in an ascension context where meat isn't (as) important? For example, using bander runaways while looking for the larva.

When you're done, will the suite noodle (if necessary) and flyer BEFORE puttying/running away (or similar)?

Also, off topic I know, but I'm curious. You're an English teacher aren't you Zarqon? So where does your scripting/programming background come from? It seems like a rare combination but then again, Veracity's got a fairly extensive background in the humanities and programming too.
 
Yeah, Bale, Zarqon and I have different playstyles, but we all pretty much agree that the fundamental metric of how much combat "costs" can be measured in meat, by checking how much MP / HP cost and seeing how much of both you're likely to use.
 
Of course to many "casual" players that metric seems odd since they can just rest in their campground to restore MP and that doesn't require meat. Right?

/em shivers in horror at the thought of wasting an adventure in the campground.
/em yells to the sky, "Lost adventures COST MEAT too!!! Even farmers know THAT!"
 
Oh no, I get it in principle. What I mean is, in an ascension the value of a runaway is not always defined in the way Zarqon's post indicates (I could be mistaken). For example, mostly you're using bander/navel/GAP runaways when you're fighting monsters that are very easy to beat, and hence give few stats, and hence you'd much rather skip as many of them as possible while you still have to adventure in that zone (for quest items, such as the temple parts). I'm not actually sure what "valueOfAdventure" is, so I don't know if Zarqon's code accounts for situations like the above or not.
 
In SC at least, MP is actually nearly free because of the Crown of Thrones. (You can easily cast any buffs you need and cocoon at +~150 ML) Will there be any way to account for that fact?
 
Katana doesn't really get used if you have a CoT. It's just serious overkill. Slimeling gets used sparingly once you have a hound, but the mimic does provide decent mp as well.
 
Of course to many "casual" players that metric seems odd since they can just rest in their campground to restore MP and that doesn't require meat. Right?

/em shivers in horror at the thought of wasting an adventure in the campground.
/em yells to the sky, "Lost adventures COST MEAT too!!! Even farmers know THAT!"
<looks at the buttprints he left on the clan sofa from when he started playing>
... no comment.
 
If you are considering how to use free runaways wisely in an ascension context, maybe letting a general-purpose combat suit decide isn't the best way to do it.

Stats would play an important part in the decision, and those are hard to equate to the value of an adventure, although having some sort of average depending on your level and/or the best power-leveling zone available would be a start.
 
If you are considering how to use free runaways wisely in an ascension context, maybe letting a general-purpose combat suit decide isn't the best way to do it.

Perhaps there should be a property that BatMan could check to see if the current combat should be considered for free runaways. Otherwise it should not do so. After all, those free runaways are important to the future and should not be used up for the sake of the current combat.

That property to use a free runaway would be set by an ascension script and should contain the name of a monster NOT to runaway from. If it is set to true, then runaway from everything. (Useful in the Desert/Oasis.) If it is set to false, then don't runaway from anything.
 
Last edited:
When I say a "profit-driven" approach I am not referring strictly to meat. Profit in this case refers to all possible resources, but to reduce them all to a single number, I chose meat. In a way, that's why currency was invented!

However, the current design for BatMan does not consider stat gain directly. In a way, valueOfAdventure should include stat gain, since one of the primary purposes of spending adventures in-run is stat gain. For the runaway purpose you mentioned to be considered programmatically, BatMan would have to be explicit in its understanding of stat gain.

I've thought about this a lot already -- but it does seem like I will eventually have to add stat gain knowledge to provide for all playstyles. Unfortunately it's very problematic to convert stats to meat, since the importance of stats differs widely from player to player and from level to level, so it will certainly involve at least one script setting.

I'm thinking of a base stat value setting, perhaps defaulting to 3 meat per substat. Your attack stat (weapon-dependent) would be 1.5*base, defense stat would be 1.5*base, and primestat would be 2* base. This means that for muscle classes, muscle stats would be worth 3*base (1.5*2*base), or 4.5*base if they have Hero and a shield equipped. For moxie classes, moxie would be worth 4.5*base, and muscle and myst would both be worth only base. Thus, a single setting can specify stat values, and yet it will be adaptive to class, skills, and equipped weapon in the event that you're running a class against primestat (such as playing a myst class like a moxie class). Only place it would be slightly inaccurate is for myst classes who use mainly skills, since it will overvalue the attack stat for the equipped weapon type. But primestat will still be worth more, so I don't see a problem with this system.

This could be added to monster_value() fairly easily if someone could help me figure out the math for calculating expected substat gains from a given ML, given your primestat and mafia's +stat modifiers. I assume that all in-combat att/def adjustments do not affect stat gain, whereas passive +ML (affecting initial ML) does.

@Bander: I love language. This is why I'm a programmer and why I'm a musician and why I'm an English teacher. It's all actually quite related. I get satisfaction from being able to express something well in a language, whether that language be English, PHP, music, ASH, or Korean. My exposure to programming happened at a fairly young age -- my father (programmer by trade) installed Borland Delphi (1.0!) on our home computer and taught me a few basics to get me started. My degree is in music, however. :)

Speaking of music, I just saw Jonsi live last night. AMAZING. It woke me up and punched me in the heart.

@Alhifar: not sure what you mean by "nearly free" MP when using a CoT. I have one but have never used it, since I'm still wending my way through an Oxy loop.
 
@Alhifar: not sure what you mean by "nearly free" MP when using a CoT. I have one but have never used it, since I'm still wending my way through an Oxy loop.

This is almost the only thing I know about the CoT. If you put an El Vibrato Megadrone in the throne it will sometimes regenerate 10-15 MP during the first three rounds. Tons'a'MP for softcore accompanying a wonderful 10ML bonus.
 
@Alhifar: I know :) I just like to saturate myself with MP so I can set and forget my buffs (for the remainder of the ascension) as soon as possible. Sub-optimal but oh so simple.

@Slyz: True true, but Zarqon's goal for this suite seemed ambitious enough to me to encompass making tricky decisions like that.

@Zarqon: By "Bander" I assume you mean "Banana Lord"? :p I was interested because I've always enjoyed the humanities (as you say, there's nothing quite so satisfying as setting down your thoughts in writing) but I'm about to start an engineering degree. Funnily enough I also have quite an extensive background in music (though your degree trumps my experience ;)). But as you say, perhaps it's not quite as eclectic a mixture as it seems.
 
This could be added to monster_value() fairly easily if someone could help me figure out the math for calculating expected substat gains from a given ML, given your primestat and mafia's +stat modifiers. I assume that all in-combat att/def adjustments do not affect stat gain, whereas passive +ML (affecting initial ML) does.
That should be easy, at least. The muscle, mysticality, and moxie experience numeric modifiers take into account all the stat-specific +exp effects, as well as the general +exp effects (including any ML modifiers you are currently running).

It's just a matter of adding those to the stats you receive from the base monster stats, adjusting for the 2:1:1 distribution in favor of your mainstat:
PHP:
monster mon = last_monster() ;
float base_stats_from_monster = monster_attack( mon ) / 4 ;
float mus_stats = numeric_modifier( "Muscle Experience" ) + base_stats_from_monster / ( 4 - 2*to_int(my_primestat() == $stat[Muscle]) ) ;
float mys_stats = numeric_modifier( "Mysticality Experience" ) + base_stats_from_monster / ( 4 - 2*to_int(my_primestat() == $stat[Mysticality]) ) ;
float mox_stats = numeric_modifier( "Moxie Experience" ) + base_stats_from_monster / ( 4 - 2*to_int(my_primestat() == $stat[Moxie]) ) ;
 
I'm thinking of a base stat value setting, perhaps defaulting to 3 meat per substat. Your attack stat (weapon-dependent) would be 1.5*base, defense stat would be 1.5*base, and primestat would be 2* base. This means that for muscle classes, muscle stats would be worth 3*base (1.5*2*base), or 4.5*base if they have Hero and a shield equipped. For moxie classes, moxie would be worth 4.5*base, and muscle and myst would both be worth only base. Thus, a single setting can specify stat values, and yet it will be adaptive to class, skills, and equipped weapon in the event that you're running a class against primestat (such as playing a myst class like a moxie class). Only place it would be slightly inaccurate is for myst classes who use mainly skills, since it will overvalue the attack stat for the equipped weapon type. But primestat will still be worth more, so I don't see a problem with this system.
The biggest issue I see is scaling it properly by your level. 3 substat per adventure is worth more at level 1 than level 11. So if you have that MCD turned all the way up at LV 1, you're gonna want to fight stuff in the Haunted Pantry (assuming you can survive!). At level 11, they just aren't worth your time anymore, so if you didn't open it earlier, why fight battles that won't get you as much as other locations?
In a sense, the value of substats is going to be rather related to the level up formula 4x^3 − 6x^2 + 20x − 9, which provides the total number of substat points you need to advance from level x to level x+1. The value of a combat then, substat-wise, could be factored by:
(monster base attack + ML mods)/4*(4x^3 − 6x^2 + 20x − 9)=base substat value
Using your preliminary values above and splitting substats in the 2:1:1 ratio, for a moxie class (using ranged weapons):
muscle value=base substat value/4
myst value=base substat value/4
moxie value=base substat value*4.5/2

Perhaps a more thorough way would be to evaluate them at your current unbuffed prime stat in the same manner:
(monster base attack + ML mods)/4*((unbuffed prime stat*2)+)1 = base substat value
In fact, I think that can give more usable results.
 
Last edited:
Back
Top