What should a *combat* consult script actually do ...

kain

Member
So I've been using the combat consult script I posted a while back (here: http://kolmafia.us/showthread.php?t=1949) for quite a few ascensions so far without issue (well, ok, it doesn't do Ed quite right)

But it's kind of a hack job.

What would we need a multi-purpose (as a companion to FTF and SS) combat consult script to do? What skills would we need to consider? Would we want to funksling merc? Love songs? What monsters would require special handling?

Lets get a discussion started and I'll try to start getting something cleaner and more functional posted.
 

mredge73

Member
To start it off...

hobos need special handling, needs to have a way to either farm for nickles against the marketplace hobos or create items by hitting them where it hurts.

attack schemes for each character class would help, looks like you already have that in your script at first glance, hey I should probably use this script, looks pretty good.

using harold's bell against boss bat can get you about 10K meat in 20 turns, 10K at level 6 during a HC run is very valuable.
 

mredge73

Member
"mob attack exceeds our def by X"
Not sure how your script uses the number X but it should probably consider hero in the half-shell.
 

kain

Member
"mob attack exceeds our def by X"

...

This was originally so in so that if you were horribly outclassed, you could throw out some pastalord, or something equally big to kill em fast.

As for hobos, I kinda feel that's better handled in a different script, but I'll certainly be willing to create some code for hobos once I start writing.
 

zarqon

Well-known member
If you start out by importing FTF/SS you'll have loads of handy functions available, including intheclear(), which does take Half-Shell into account.

One special consideration which I remember looking at a while back is monsters with physical immunity. So far as I know, there is no ASH method of determining whether or not a monster is resistant to a type of damage. They may all have to be hard-coded in, and then a special combat function used which deals elemental damage.

My still-unrealized plans for a combat CCS have always started with writing these strategy-calculation tools into FTF:

int my_bonus_damage()
Determines your average per-round damage from everything EXCEPT your actual attack. This would include damage from combat familiars, passive damage from effects, damage from monsters hitting you and hurting themselves on your gear, etc. This should probably just be calculated once, as soon as the CCS decides it needs to enter the combat strategy calculation phase.

int rounds_till_slay(int my_damage)
Returns the number of rounds expected to kill the monster, given per-round damage of my_damage. It would factor in my_bonus_damage, so even calling it with my_damage of 0 may give a useful result. Capped at 30 - round (i.e. 30 = infinity). Any possible source of damage would be factored in.

An alternative would be to have several versions of this function:
int rounds_till_slay(skill method)
int rounds_till_slay()
<-- assumes attack with weapon
int rounds_till_slay(item object)

int rounds_till_slain(monster foe)
Returns the number of rounds you have remaining to stay alive, given a monster's attacks on you. If you are in the clear (the monster can't hit you), the amount would be 30 - round. There would be intelligence for adjusting the amount of expected damage based on your HP loss as the combat went on.
I think that these functions would be insanely useful to a combat CCS in determining and implementing attack strategy.
 

mredge73

Member
Hey, I have yet to write a CCS

Has anyone written a ccs function that can return the damage dealt out by your attack?
Is there a way to tell if the monster is aligned to a particular element?
Can you get the Hit points for a monster before the start of a round?

I need a way to predict if an element attack like fearful fetichini will deal damage to a monster. Also feedback on how much damage is dealt will help in choosing an attack to preform.
 
Top