Advertisement
roninator2

Syvkal Ring Menu Addon - Game End

Nov 21st, 2024
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 9.86 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Syvkal Ring Menu Addon - Game End      ║  Version: 1.00     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║        Add Ring Menu to Game End              ║    02 Jan 2021     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: Syvkal's Ring Menu                                       ║
  11. # ║                                                                    ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║       Allow Ring Menu for Game End                                 ║
  16. # ╚════════════════════════════════════════════════════════════════════╝
  17. # ╔════════════════════════════════════════════════════════════════════╗
  18. # ║ Instructions:                                                      ║
  19. # ║   Using code from Syvkal's Ring Menu                               ║
  20. # ║   I created the game end screen menu                               ║
  21. # ║                                                                    ║
  22. # ║   If other options are added, it will require changes.             ║
  23. # ║   Icons must be in the format of ''choice' + space + icon'         ║
  24. # ║   example                                                          ║
  25. # ║    'yes icon'.png or 'no icon'.png  - without quotes               ║
  26. # ╚════════════════════════════════════════════════════════════════════╝
  27. # ╔════════════════════════════════════════════════════════════════════╗
  28. # ║ Updates:                                                           ║
  29. # ║ 1.00 - 02 Jan 2021 - Initial publish                               ║
  30. # ╚════════════════════════════════════════════════════════════════════╝
  31. # ╔════════════════════════════════════════════════════════════════════╗
  32. # ║ Credits and Thanks:                                                ║
  33. # ║   Roninator2                                                       ║
  34. # ║   Syvkal                                                           ║
  35. # ║                                                                    ║
  36. # ╚════════════════════════════════════════════════════════════════════╝
  37. # ╔════════════════════════════════════════════════════════════════════╗
  38. # ║ Terms of use:                                                      ║
  39. # ║  Follow the original Authors terms of use where applicable         ║
  40. # ║    - When not made by me (Roninator2)                              ║
  41. # ║  Free for all uses in RPG Maker except nudity                      ║
  42. # ║  Anyone using this script in their project before these terms      ║
  43. # ║  were changed are allowed to use this script even if it conflicts  ║
  44. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  45. # ║  No part of this code can be used with AI programs or tools        ║
  46. # ║  Credit must be given                                              ║
  47. # ╚════════════════════════════════════════════════════════════════════╝
  48.  
  49. #==============================================================================
  50. # ** Window_GameEnd
  51. #------------------------------------------------------------------------------
  52. #  This window is for selecting Go to Title/Shut Down on the game over screen.
  53. #==============================================================================
  54. class Window_GameEnd < Window_Command
  55.   #--------------------------------------------------------------------------
  56.   # * Includes The Ring_Menu Module
  57.   #--------------------------------------------------------------------------
  58.   include Ring_Menu
  59.   #--------------------------------------------------------------------------
  60.   # * Object Initialization
  61.   #--------------------------------------------------------------------------
  62.   def initialize
  63.     super(0, 0)
  64.     @cx = $game_player.screen_x - 16
  65.     @cy = $game_player.screen_y - 28
  66.     @icons = []
  67.     @endcom = []
  68.     @list.clear
  69.     make_command_list
  70.     make_game_end_icons
  71.     select(0)
  72.     self.opacity = 0
  73.     @mode = :start
  74.     open
  75.     activate
  76.     refresh
  77.   end
  78.   #--------------------------------------------------------------------------
  79.   # * Update Cursor
  80.   #--------------------------------------------------------------------------
  81.   def update_cursor
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # * Refresh
  85.   #--------------------------------------------------------------------------
  86.   def refresh
  87.     super
  88.     @cx = $game_player.screen_x - 16
  89.     @cy = $game_player.screen_y - 28
  90.     rect = Rect.new(@cx - 254, @cy - 20, self.contents.width, line_height)
  91.     draw_text(rect, choice_name(index), 1)
  92.   end
  93.   #--------------------------------------------------------------------------
  94.   # * Determines if is moving
  95.   #--------------------------------------------------------------------------
  96.   def animation?
  97.     return @mode != :wait
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   # * make_title_icons
  101.   #--------------------------------------------------------------------------
  102.   def make_game_end_icons
  103.     @endcom.each_with_index do |command, i|
  104.       @icons.push(Cache::picture(command + ' Icon'))
  105.       rect = Rect.new(self.x, self.y, @icons[i].width / 2, @icons[i].height / 2)
  106.       draw_item(x, y, i)
  107.     end
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # * Get Window Width
  111.   #--------------------------------------------------------------------------
  112.   def window_width
  113.     return Graphics.width
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # * Get Window Height
  117.   #--------------------------------------------------------------------------
  118.   def window_height
  119.     return Graphics.height
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # * Create Command List
  123.   #--------------------------------------------------------------------------
  124.   def make_command_list
  125.     @endcom = []
  126.     add_command(Vocab::to_title, :to_title)
  127.     add_command(Vocab::shutdown, :shutdown)
  128.     add_command(Vocab::cancel,   :cancel)
  129.     @endcom.push(Vocab::to_title)
  130.     @endcom.push(Vocab::shutdown)
  131.     @endcom.push(Vocab::cancel)
  132.   end
  133.   #--------------------------------------------------------------------------
  134.   # * Get Command Name
  135.   #--------------------------------------------------------------------------
  136.   def choice_name(index)
  137.     return if @endcom == nil
  138.     @endcom[index]
  139.   end
  140.   #--------------------------------------------------------------------------
  141.   # * Draw Item
  142.   #     x     : draw spot x-coordinate
  143.   #     y     : draw spot y-coordinate
  144.   #     i     : item number
  145.   #--------------------------------------------------------------------------
  146.   def draw_item(x, y, i)
  147.     return if @icons.nil?
  148.     rect = Rect.new(0, 0, @icons[i].width, @icons[i].height)
  149.     if i == index
  150.       self.contents.blt(x - rect.width/2, y - rect.height/2, @icons[i], rect )
  151.       unless command_enabled?(index)
  152.         self.contents.blt(x - rect.width/2, y - rect.height/2, ICON_DISABLE, rect )
  153.       end
  154.     else
  155.       self.contents.blt(x - rect.width/2, y - rect.height/2, @icons[i], rect, 128 )
  156.     end
  157.   end
  158. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement