diff --git a/combat-trainer.lic b/combat-trainer.lic index 8beda904e0..517b2554f7 100644 --- a/combat-trainer.lic +++ b/combat-trainer.lic @@ -438,6 +438,9 @@ class LootProcess @make_bonebug = settings.bonebug['make'] echo(" @make_bonebug: #{@make_bonebug}") if $debug_mode_ct + @necro_corpse_priority = settings.necro_corpse_priority + echo(" @necro_corpse_priority: #{@necro_corpse_priority}") if $debug_mode_ct + @wound_level_threshold = settings.necromancer_healing['wound_level_threshold'] || 1 echo(" @wound_level_threshold: #{@wound_level_threshold}") if $debug_mode_ct @@ -706,28 +709,15 @@ class LootProcess echo " should_perform_ritual? #{should_perform_ritual?(game_state)}" if $debug_mode_ct if @last_ritual.nil? - if @necro_heal && !game_state.necro_casting? - game_state.wounds = DRCH.check_health['wounds'] - echo "Severity to Wounds: #{game_state.wounds}" if $debug_mode_ct - echo "wound_level_threshold: #{@wound_level_threshold}" if $debug_mode_ct - unless game_state.wounds.empty? - if @wound_level_threshold <= game_state.wounds.keys.max - do_necro_ritual(mob_noun, 'consume', game_state) - return false - end - end + if @necro_corpse_priority == 'pet' + echo "Prioritizing pet creation over healing" if $debug_mode_ct + check_necro_pet(mob_noun, game_state) + check_necro_heal(mob_noun, game_state) + elsif @necro_corpse_priority == 'heal' || !@necro_corpse_priority + echo "Prioritizing healing over pet creation" if $debug_mode_ct + check_necro_heal(mob_noun, game_state) + check_necro_pet(mob_noun, game_state) end - if @make_zombie && !game_state.necro_casting? && !game_state.cfb_active? - echo 'Making zombie' if $debug_mode_ct - do_necro_ritual(mob_noun, 'arise', game_state) - return false - end - if @make_bonebug && !game_state.necro_casting? && !game_state.cfw_active? - echo 'Making bone bug' if $debug_mode_ct - do_necro_ritual(mob_noun, 'arise', game_state) - return false - end - ritual = if @redeemed 'dissect' elsif @current_harvest_count < @necro_count @@ -746,6 +736,33 @@ class LootProcess true end + def check_necro_heal(mob_noun, game_state) + if @necro_heal && !game_state.necro_casting? + game_state.wounds = DRCH.check_health['wounds'] + echo "Severity to Wounds: #{game_state.wounds}" if $debug_mode_ct + echo "wound_level_threshold: #{@wound_level_threshold}" if $debug_mode_ct + unless game_state.wounds.empty? + if @wound_level_threshold <= game_state.wounds.keys.max + do_necro_ritual(mob_noun, 'consume', game_state) + return false + end + end + end + end + + def check_necro_pet(mob_noun, game_state) + if @make_zombie && !game_state.necro_casting? && !game_state.cfb_active? + echo 'Making zombie' if $debug_mode_ct + do_necro_ritual(mob_noun, 'arise', game_state) + return false + end + if @make_bonebug && !game_state.necro_casting? && !game_state.cfw_active? + echo 'Making bone bug' if $debug_mode_ct + do_necro_ritual(mob_noun, 'arise', game_state) + return false + end + end + def do_necro_ritual(mob_noun, ritual, game_state) return unless DRStats.necromancer? return unless ritual @@ -1429,8 +1446,8 @@ class SpellProcess check_slivers(game_state) check_regalia(game_state) check_consume(game_state) - heal_corpse(game_state) check_cfw(game_state) + heal_corpse(game_state) check_cfb(game_state) check_bless(game_state) check_ignite(game_state)