Monster hp: Difference between revisions
imported>Zarqon better reflect mafia's handling; remove a RFI |
imported>Eliteofdelete No edit summary |
||
(7 intermediate revisions by 4 users not shown) | |||
Line 5: | Line 5: | ||
FunctionPage| | FunctionPage| | ||
name={{#var:name}}| | name={{#var:name}}| | ||
function1={{Function| | function1={{Function| | ||
Line 24: | Line 22: | ||
}}| | }}| | ||
function_description=Returns the HP of the specified monster {{pspan|check_me}}. If {{pspan|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.</p> | function_description=Returns the HP of the specified monster {{pspan|check_me}}. If {{pspan|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.</p> | ||
<p>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().| | <p>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().</p> | ||
<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> | |||
see_also={{SeeAlso|monster_attack|monster_defense|monster_element}}| | void kill (string monstername) { | ||
monster mon = to_monster(monstername); | |||
int hp = monster_hp(mon); | |||
int def = max(0, monster_defense(mon)); | |||
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; | |||
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}}| | |||
more_info=For the current discussion of what's being tracked in-combat for monster level adjustments, please see [http://kolmafia.us/showthread.php?3452 this thread].| | more_info=For the current discussion of what's being tracked in-combat for monster level adjustments, please see [http://kolmafia.us/showthread.php?3452 this thread].| | ||
special= | 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 {{f|last_monster}} when it logs out.| | ||
}} | }} | ||
[[Category:Adventuring]][[Category:In-combat Consulting]] |
Latest revision as of 03:10, 13 September 2019
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 hp = monster_hp(mon);
int def = max(0, monster_defense(mon));
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;
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.