Skip to content

Commit

Permalink
feat: better calcs for whether we can survive shoot ghost (#1499)
Browse files Browse the repository at this point in the history
  • Loading branch information
midgleyc authored Sep 21, 2024
1 parent 3f93dc4 commit c09cb0a
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,8 @@ string auto_combatDefaultStage5(int round, monster enemy, string text)
int shots_takens = usedCount($skill[Shoot Ghost]);
if(canUse($skill[Shoot Ghost], false) && shots_takens < 3)
{
float survive_needed = 3.05 - shots_takens.to_float();
if(canSurvive(survive_needed))
int shotsLeft = 3 - shots_takens;
if(canSurviveShootGhost(enemy, shotsLeft))
{
markAsUsed($skill[Shoot Ghost]); //needs to be manually done for skills with a use limit that is not 1
return useSkill($skill[Shoot Ghost], false);
Expand Down
1 change: 1 addition & 0 deletions RELEASE/scripts/autoscend/combat/auto_combat_header.ash
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ float turns_to_kill(float dmg);
boolean combat_status_check(string mark);
void combat_status_add(string mark);
boolean wantToForceDrop(monster enemy);
boolean canSurviveShootGhost(monster enemy, int shots);

#####################################################
//defined in /autoscend/combat/auto_combat_awol.ash
Expand Down
48 changes: 48 additions & 0 deletions RELEASE/scripts/autoscend/combat/auto_combat_util.ash
Original file line number Diff line number Diff line change
Expand Up @@ -1009,3 +1009,51 @@ boolean wantToForceDrop(monster enemy)
return forceDrop;
}

boolean canSurviveShootGhost(monster enemy, int shots) {
int damage;
switch(enemy)
{
case $monster[the ghost of Oily McBindle]:
damage = my_maxhp() * 0.4 * elemental_resistance($element[sleaze]) / 100;
break;
case $monster[boneless blobghost]:
damage = my_maxhp() * 0.45 * elemental_resistance($element[spooky]) / 100;
break;
case $monster[the ghost of Monsieur Baguelle]:
damage = my_maxhp() * 0.5 * elemental_resistance($element[hot]) / 100;
break;
case $monster[The Headless Horseman]:
damage = my_maxhp() * 0.55 * elemental_resistance($element[spooky]) / 100;
break;
case $monster[The Icewoman]:
damage = my_maxhp() * 0.6 * elemental_resistance($element[cold]) / 100;
break;
case $monster[The ghost of Ebenoozer Screege]:
damage = my_maxhp() * 0.65 * elemental_resistance($element[spooky]) / 100;
break;
case $monster[The ghost of Lord Montague Spookyraven]:
damage = my_maxhp() * 0.7 * elemental_resistance($element[stench]) / 100;
break;
case $monster[The ghost of Vanillica "Trashblossom" Gorton]:
damage = my_maxhp() * 0.75 * elemental_resistance($element[stench]) / 100;
break;
case $monster[The ghost of Sam McGee]:
damage = my_maxhp() * 0.8 * elemental_resistance($element[hot]) / 100;
break;
case $monster[The ghost of Richard Cockingham]:
damage = my_maxhp() * 0.85 * elemental_resistance($element[spooky]) / 100;
break;
case $monster[The ghost of Waldo the Carpathian]:
damage = my_maxhp() * 0.9 * elemental_resistance($element[hot]) / 100;
break;
case $monster[Emily Koops, a spooky lime]:
damage = my_maxhp() * 0.95 * elemental_resistance($element[spooky]) / 100;
break;
case $monster[The ghost of Jim Unfortunato]:
damage = my_maxhp() * elemental_resistance($element[sleaze]) / 100;
break;
default:
damage = my_maxhp() * 0.3;
}
return my_hp() > damage * shots;
}

0 comments on commit c09cb0a

Please sign in to comment.