Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. # encoding: utf-8
  2. #===============================================================================
  3. # ■ Regeneration in battle log
  4. #-------------------------------------------------------------------------------
  5. # 2019/03/09 Ruたん
  6. #-------------------------------------------------------------------------------
  7. # Conversion of futokoro's FTKR_DisplayRegenerateMessage.js to VX Ace
  8. # https://github.com/futokoro/RPGMaker/blob/master/FTKR_DisplayRegenerateMessage.ja.md
  9. #-------------------------------------------------------------------------------
  10. # Displays amount of HP / MP / TP in the battle log at the end of the turn
  11. #-------------------------------------------------------------------------------
  12. # 【Changelog】
  13. # 2019/03/09 Released
  14. #-------------------------------------------------------------------------------
  15.  
  16. #===============================================================================
  17. # ● Setting
  18. #===============================================================================
  19. module Torigoya
  20.   module DisplayRegenerateMessage
  21.     module Template
  22.       HP_MESSAGE = {
  23.         # ● Message when HP recovers
  24.         #    %1 … Target's name
  25.         #    %2 … Status name
  26.         #    %3 … Increased amount
  27.         gain: '%1 recovered %3 %2!',
  28.  
  29.         # ● Message when HP decreases
  30.         #    %1 … Target's name
  31.         #    %2 … Status name
  32.         #    %3 … Increased amount
  33.         lose: '%1 lost %3 %2!',
  34.       }
  35.  
  36.       MP_MESSAGE = {
  37.         # ● Message when MP recovers
  38.         #    %1 … Target's name
  39.         #    %2 … Status name
  40.         #    %3 … Increased amount
  41.         gain: '%1 recovered %3 %2!',
  42.  
  43.         # ● Message when MP decreases
  44.         #    %1 … Target's name
  45.         #    %2 … Status name
  46.         #    %3 … Increased amount
  47.         lose: '%1 lost %3 %2!',
  48.       }
  49.  
  50.       TP_MESSAGE = {
  51.         # ● Message when TP recovers
  52.         #    %1 … Target's name
  53.         #    %2 … Status name
  54.         #    %3 … Increased amount
  55.         gain: '%1 recovered %3 %2!',
  56.  
  57.         # ● Message when TP decreases
  58.         #    %1 … Target's name
  59.         #    %2 … Status name
  60.         #    %3 … Increased amount
  61.         lose: '%1 lost %3 %2!',
  62.       }
  63.     end
  64.   end
  65. end
  66.  
  67. #===============================================================================
  68. # ↑   Setting   ↑
  69. # ↓ Script part ↓
  70. #===============================================================================
  71.  
  72. module Torigoya
  73.   module DisplayRegenerateMessage
  74.     class << self
  75.       def in_turn_end_process?
  76.         !!@in_turn_end_process
  77.       end
  78.  
  79.       def turn_end_process(&block)
  80.         @in_turn_end_process = true
  81.         block.call
  82.         @in_turn_end_process = false
  83.       end
  84.  
  85.       def generate_message(type, name, value)
  86.         template, status =
  87.           case type
  88.           when :hp
  89.             [Template::HP_MESSAGE, Vocab.hp]
  90.           when :mp
  91.             [Template::MP_MESSAGE, Vocab.mp]
  92.           when :tp
  93.             [Template::TP_MESSAGE, Vocab.tp]
  94.           else
  95.             raise 'must not happen'
  96.           end
  97.         template[value > 0 ? :lose : :gain].gsub('%1', name).gsub('%2', status).gsub('%3', value.abs.to_s)
  98.       end
  99.     end
  100.   end
  101. end
  102.  
  103. class Window_BattleLog < Window_Selectable
  104.   #--------------------------------------------------------------------------
  105.   # ● Automatic status display (alias)
  106.   #--------------------------------------------------------------------------
  107.   alias torigoya_display_regenerate_message_display_auto_affected_status display_auto_affected_status
  108.   def display_auto_affected_status(target)
  109.     display_regenerate_message(target) if Torigoya::DisplayRegenerateMessage.in_turn_end_process?
  110.     torigoya_display_regenerate_message_display_auto_affected_status(target)
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● Display recovery message
  114.   #--------------------------------------------------------------------------
  115.   def display_regenerate_message(target)
  116.     [:hp_damage, :mp_damage, :tp_damage].each do |name|
  117.       next if target.result.public_send(name) == 0
  118.       add_text(Torigoya::DisplayRegenerateMessage.generate_message(:hp, target.name, target.result.public_send(name)))
  119.       wait
  120.     end
  121.   end
  122. end
  123.  
  124. class Scene_Battle < Scene_Base
  125.   #--------------------------------------------------------------------------
  126.   # ● End of turn (alias)
  127.   #--------------------------------------------------------------------------
  128.   alias torigoya_display_regenerate_message_turn_end turn_end
  129.   def turn_end
  130.     Torigoya::DisplayRegenerateMessage.turn_end_process do
  131.       torigoya_display_regenerate_message_turn_end
  132.     end
  133.   end
  134. end