Monster hp: Difference between revisions
imported>Bale template |
imported>Eliteofdelete No edit summary |
||
Line 25: | Line 25: | ||
<p>If you want to know the monster's raw HP without being modified by monster level adjustments, it is available through the monster.'''raw_hp''' proxy field.| | <p>If you want to know the monster's raw HP without being modified by monster level adjustments, it is available through the monster.'''raw_hp''' proxy field.| | ||
code1={{CodeSample| | |||
title=Code Samples| | |||
description=Following code is a simplified function of weapon damage. It will tell how many rounds it takes to kill a monster based on its HP.| | |||
code= | |||
<syntaxhighlight> | |||
void kill (string monstername) { | |||
monster mon = to_monster(monstername); | |||
int weaponstat = buffed_hit_stat(); | |||
int total_dmg; | |||
string rounds; | |||
float weapon_multi, weapon_dmg, elemental_dmg; | |||
if (current_hit_stat() == $stat[moxie] && item_type(equipped_item($slot[weapon])) != "knife") | |||
weapon_multi = .75; | |||
else weapon_multi = 1.0; | |||
int def = max(0, monster_defense(mon)); | |||
int hp = monster_hp(mon); | |||
weapon_dmg = numeric_modifier("weapon damage"); | |||
foreach it in $elements[]{ | |||
string dmg = it+" damage"; | |||
elemental_dmg += numeric_modifier(dmg); | |||
} | |||
total_dmg = floor((weaponstat*weapon_multi)-def+weapon_dmg+elemental_dmg); | |||
total_dmg = max(0, total_dmg); | |||
if (total_dmg > 0) | |||
rounds = to_string(max(1, round(hp/total_dmg))); | |||
else rounds = "infinity"; | |||
print("Your expected damage on "+mon+" is "+total_dmg+". Assuming you always hit, it will take "+rounds+" round(s) to kill "+mon+".", "blue"); | |||
} | |||
kill("bar"); | |||
</syntaxhighlight>| | |||
moreinfo= | |||
Note: The example does not take crits/fumbles/hit chances into account. For more information on weapon damage see [http://kol.coldfront.net/thekolwiki/index.php/Weapon_Damage Weapon Damage]. | |||
}}| | |||
see_also={{SeeAlso|monster_attack|monster_defense|monster_initiative|monster_element}}| | see_also={{SeeAlso|monster_attack|monster_defense|monster_initiative|monster_element}}| |
Revision as of 14:30, 17 January 2015
Function Syntax
int monster_hp()
int monster_hp(monster check_me )
- check_me is the (optional) monster to get the HP of
Returns the HP of the specified monster check_me. If check_me is not specified, it will return the HP of the current monster if you are in a fight (i.e. you're calling the function from an In-combat Consulting script), or the HP of the last monster you encountered otherwise. If you are in a fight, this will return the monster's current HP to the best of KoLmafia's knowledge.
The return value includes monster level modifications. This means that for monsters with unknown HP, the return value will initially be equivalent to monster_level_adjustment().
If you want to know the monster's raw HP without being modified by monster level adjustments, it is available through the monster.raw_hp proxy field.
Code Samples
Following code is a simplified function of weapon damage. It will tell how many rounds it takes to kill a monster based on its HP.
void kill (string monstername) {
monster mon = to_monster(monstername);
int weaponstat = buffed_hit_stat();
int total_dmg;
string rounds;
float weapon_multi, weapon_dmg, elemental_dmg;
if (current_hit_stat() == $stat[moxie] && item_type(equipped_item($slot[weapon])) != "knife")
weapon_multi = .75;
else weapon_multi = 1.0;
int def = max(0, monster_defense(mon));
int hp = monster_hp(mon);
weapon_dmg = numeric_modifier("weapon damage");
foreach it in $elements[]{
string dmg = it+" damage";
elemental_dmg += numeric_modifier(dmg);
}
total_dmg = floor((weaponstat*weapon_multi)-def+weapon_dmg+elemental_dmg);
total_dmg = max(0, total_dmg);
if (total_dmg > 0)
rounds = to_string(max(1, round(hp/total_dmg)));
else rounds = "infinity";
print("Your expected damage on "+mon+" is "+total_dmg+". Assuming you always hit, it will take "+rounds+" round(s) to kill "+mon+".", "blue");
}
kill("bar");
Note: The example does not take crits/fumbles/hit chances into account. For more information on weapon damage see Weapon Damage.
See Also
More Information
For the current discussion of what's being tracked in-combat for monster level adjustments, please see this thread.
Special
If no monster is specified and no monster has been fought in this session, this function returns 0. This is because mafia forgets the value of last_monster()
when it logs out.