roninator2

Ventwig Enemy HP Selection

Dec 4th, 2024
13
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 12.58 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Ventwig Enemy HP Selection             ║  Version: 1.07     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║   Show hp only for enemy selected             ║    03 Jan 2022     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: Ventwig Enemy HP Bars Script                             ║
  11. # ║                                                                    ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║       Script adjusts Ventwigs script to make the Bars shown to     ║
  16. # ║       only be visible on the enemy when that enemy is selected     ║
  17. # ╚════════════════════════════════════════════════════════════════════╝
  18. # ╔════════════════════════════════════════════════════════════════════╗
  19. # ║ Instructions:                                                      ║
  20. # ║   Configure setting below                                          ║
  21. # ║                                                                    ║
  22. # ╚════════════════════════════════════════════════════════════════════╝
  23. # ╔════════════════════════════════════════════════════════════════════╗
  24. # ║ Updates:                                                           ║
  25. # ║ 1.00 - 03 Jan 2021 - Script Finished                               ║
  26. # ║ 1.01 - 03 Jan 2021 - Fixed glitch in battle processing             ║
  27. # ║ 1.02 - 03 Jan 2021 - show hp when enemy is attacked                ║
  28. # ║ 1.03 - 03 Jan 2021 - Fixed HP showing when enemy attacked          ║
  29. # ║ 1.04 - 05 Jan 2021 - Corrected for hidden enemies & bug            ║
  30. # ║ 1.05 - 06 Jan 2021 - Added show hp for all enemies skills          ║
  31. # ║ 1.06 - 08 Jan 2022 - New - Show hp when skill allows               ║
  32. # ║ 1.07 - 08 Jan 2022 - Combine last with 1.05                        ║
  33. # ║                                                                    ║
  34. # ╚════════════════════════════════════════════════════════════════════╝
  35. # ╔════════════════════════════════════════════════════════════════════╗
  36. # ║ Credits and Thanks:                                                ║
  37. # ║   Roninator2                                                       ║
  38. # ║   Ventwig                                                          ║
  39. # ╚════════════════════════════════════════════════════════════════════╝
  40. # ╔════════════════════════════════════════════════════════════════════╗
  41. # ║ Terms of use:                                                      ║
  42. # ║  Follow the original Authors terms of use where applicable         ║
  43. # ║    - When not made by me (Roninator2)                              ║
  44. # ║  Free for all uses in RPG Maker except nudity                      ║
  45. # ║  Anyone using this script in their project before these terms      ║
  46. # ║  were changed are allowed to use this script even if it conflicts  ║
  47. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  48. # ║  No part of this code can be used with AI programs or tools        ║
  49. # ║  Credit must be given                                              ║
  50. # ╚════════════════════════════════════════════════════════════════════╝
  51.  
  52. module R2_Enemy_Hud_Hold_Time
  53.   Hold_Time = 120        # time bar will show when enemy is hit
  54.   Skill = [80,105]    # skills that will show the HP bar
  55.     Switch = 88    # switch that will enable showing for skills
  56. end
  57.  
  58. # ╔════════════════════════════════════════════════════════════════════╗
  59. # ║                      End of editable region                        ║
  60. # ╚════════════════════════════════════════════════════════════════════╝
  61.  
  62. class Window_Enemy_Hud < Window_Base
  63.   attr_accessor :damage_time
  64.   alias r2_init_enemy_hp initialize
  65.   def initialize
  66.     r2_init_enemy_hp
  67.     show_hp(false)
  68.     show_hp_all(false)
  69.   end
  70.  
  71.   def show_hp(value = false)
  72.     @show_hp = value
  73.   end
  74.  
  75.   def show_hp_all(value = false)
  76.     @show_hp_all = value
  77.   end
  78.  
  79.   def enemy_id(value = -1)
  80.     @enemy_id = value
  81.   end
  82.  
  83.   def hold_hp
  84.     @show_hp = false if @damage_time == 0
  85.     for i in 0..@etroop.alive_members.size-1
  86.       e = @enemy[i]
  87.       next if e.nil? # for hidden enemies
  88.       if $game_switches[EHUD::HIDE_MINIONS] != true && @show_hp == true && @damage_time != 0 && e.index == @enemy_id
  89.         draw_actor_hp(e,e.screen_x-50,e.screen_y+EHUD::Y_MOVE-50+e.personal_y,width=96) unless @damage_time == 0
  90.       end
  91.     end
  92.   end
  93.  
  94.   def damage_time(value = 0)
  95.     @damage_time = value
  96.   end
  97.  
  98.   def update
  99.     if @damage_time != nil
  100.       @damage_time -= 1 if @damage_time != 0
  101.     end
  102.     hold_hp
  103.     refresh_okay = false
  104.     $game_troop.alive_members.each do |enemy|
  105.       if enemy.hp != enemy.old_hp || enemy.mp != enemy.old_mp
  106.         refresh_okay = true
  107.         enemy.old_hp = enemy.hp
  108.         enemy.old_mp = enemy.mp
  109.       end
  110.     end
  111.    
  112.     if $game_troop.alive_members.size != @old_size
  113.       refresh_okay = true
  114.     end
  115.    
  116.     if refresh_okay
  117.       refresh
  118.     end
  119.   end
  120.  
  121.   def enemy_hud
  122.     troop_fix
  123.     for i in 0..@etroop.alive_members.size-1
  124.       e = @enemy[i]
  125.       if i <= 1 and e.boss_bar == true and e == @boss_enemy[i]
  126.         draw_actor_name(e,EHUD::BOSS_GAUGEX,5+50*i)
  127.         draw_actor_hp(e,EHUD::BOSS_GAUGEX,20+50*i,width=EHUD::BOSS_GAUGEW) unless e.hide_hp == true
  128.         draw_actor_mp(e,EHUD::BOSS_GAUGEX,30+50*i,width=EHUD::BOSS_GAUGEW) unless e.show_mp == false
  129.         draw_actor_icons(e,EHUD::BOSS_GAUGEX+200,5+50*i, width = 96)
  130.       elsif ($game_switches[EHUD::HIDE_MINIONS] != true && @show_hp_all == true)
  131.         draw_actor_hp(e,e.screen_x-50,e.screen_y+EHUD::Y_MOVE-50+e.personal_y,width=96) unless e.hide_hp == true
  132.         draw_actor_mp(e,e.screen_x-50,e.screen_y+EHUD::Y_MOVE-40+e.personal_y,width=96) unless e.show_mp == false
  133.         draw_actor_icons(e,e.screen_x-50,e.screen_y+EHUD::Y_MOVE-70+e.personal_y,width=96)
  134.       elsif ($game_switches[EHUD::HIDE_MINIONS] != true && @show_hp == true) && e.index == @enemy_id
  135.         draw_actor_hp(e,e.screen_x-50,e.screen_y+EHUD::Y_MOVE-50+e.personal_y,width=96) unless e.hide_hp == true
  136.         draw_actor_mp(e,e.screen_x-50,e.screen_y+EHUD::Y_MOVE-40+e.personal_y,width=96) unless e.show_mp == false
  137.         draw_actor_icons(e,e.screen_x-50,e.screen_y+EHUD::Y_MOVE-70+e.personal_y,width=96)
  138.       end
  139.     end
  140.   end
  141. end
  142.  
  143. class Scene_Battle < Scene_Base
  144.  
  145.   alias r2_update_basic_hp  update_basic
  146.   def update_basic
  147.     @skill_check = -1 unless @enemy_window.active
  148.     @skill_check = @skill_window.item.id if @skill_window.active
  149.     if @enemy_window.active && $game_switches[R2_Enemy_Hud_Hold_Time::Switch] == true
  150.       enemy_hp_shown(true) if R2_Enemy_Hud_Hold_Time::Skill.include?(@skill_check)
  151.     elsif @enemy_window.active && $game_switches[R2_Enemy_Hud_Hold_Time::Switch] == false
  152.       enemy_hp_shown(true)
  153.     else
  154.       enemy_hp_shown(false) if (!@subject && @enemy_hud_window.damage_time = 0) && !@enemy_window.active
  155.       enemy_hp_shown_all(false)
  156.     end
  157.     r2_update_basic_hp
  158.   end
  159.  
  160.   alias r2_execute_hp_show  execute_action
  161.   def execute_action
  162.     skill_check = false
  163.     @skill = @skill_window.item
  164.     targets = @subject.current_action.make_targets.compact
  165.     targets.each { |e|
  166.     e.is_a?(Game_Actor) ? next : @skill.nil? ? enemy_hp_shown(true) : skill_check = true
  167.     @enemy_hud_window.enemy_id(e.index)
  168.     @enemy_hud_window.damage_time(R2_Enemy_Hud_Hold_Time::Hold_Time)
  169.     if skill_check == true
  170.       case @skill.scope
  171.       when 1
  172.         @enemy_hud_window.enemy_id(e.index)
  173.         if $game_switches[R2_Enemy_Hud_Hold_Time::Switch] == true
  174.           enemy_hp_shown(true) if R2_Enemy_Hud_Hold_Time::Skill.include?(@skill_check)
  175.         else
  176.           enemy_hp_shown(true)
  177.         end
  178.       when 2..6
  179.         if $game_switches[R2_Enemy_Hud_Hold_Time::Switch] == true
  180.           enemy_hp_shown_all(true) if R2_Enemy_Hud_Hold_Time::Skill.include?(@skill_check)
  181.           @enemy_hud_window.damage_time(R2_Enemy_Hud_Hold_Time::Hold_Time * 2)
  182.         else
  183.           enemy_hp_shown_all(true)
  184.           @enemy_hud_window.damage_time(R2_Enemy_Hud_Hold_Time::Hold_Time * 2)
  185.         end
  186.       else
  187.         enemy_hp_shown(false)
  188.         enemy_hp_shown_all(false)
  189.       end
  190.       skill_check = false
  191.     end
  192.     }
  193.     r2_execute_hp_show
  194.     enemy_hp_shown_all(false)
  195.   end
  196.  
  197.   alias r2_skill_enemy_select   select_enemy_selection
  198.   def select_enemy_selection
  199.     @skill = @skill_window.item
  200.     if !@skill.nil?
  201.       case @skill.scope
  202.       when 1
  203.         @enemy_hud_window.enemy_id(@enemy_window.index)
  204.         if $game_switches[R2_Enemy_Hud_Hold_Time::Switch] == true
  205.           enemy_hp_shown(true) if R2_Enemy_Hud_Hold_Time::Skill.include?(@skill_check)
  206.           enemy_hp_shown_all(false)
  207.         else
  208.           enemy_hp_shown(true)
  209.         end
  210.       when 2..6
  211.         if $game_switches[R2_Enemy_Hud_Hold_Time::Switch] == true
  212.           enemy_hp_shown_all(true) if R2_Enemy_Hud_Hold_Time::Skill.include?(@skill_check)
  213.           enemy_hp_shown(false)
  214.         else
  215.           enemy_hp_shown_all(true)
  216.         end
  217.         @enemy_hud_window.damage_time(R2_Enemy_Hud_Hold_Time::Hold_Time * 2)
  218.       else
  219.         enemy_hp_shown(false)
  220.         enemy_hp_shown_all(false)
  221.       end
  222.     end
  223.     r2_skill_enemy_select
  224.   end
  225.  
  226.   def enemy_hp_shown(value = false)
  227.     @enemy_hud_window.show_hp(value)
  228.     if @enemy_window.enemy != nil
  229.       @enemy_hud_window.enemy_id(@enemy_window.enemy.index)
  230.     end
  231.     @enemy_window.refresh
  232.     @enemy_hud_window.refresh
  233.   end
  234.  
  235.   def enemy_hp_shown_all(value = false)
  236.     @enemy_hud_window.show_hp_all(value)
  237.     @enemy_window.refresh
  238.     @enemy_hud_window.refresh
  239.   end
  240. end
Add Comment
Please, Sign In to add comment