设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 703|回复: 0
打印 上一主题 下一主题

[已经过期] Monogatari菜单修改问题

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7570
在线时间
1157 小时
注册时间
2016-9-10
帖子
165

开拓者

跳转到指定楼层
1
发表于 2017-9-4 14:11:14 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 devil033 于 2017-9-4 14:13 编辑

Monogatari菜单,我想使用回默认的Item菜单,把item相关的项注释了
但是却有个奇怪的现象
就是在 Monogatari主菜单下,选择Item菜单,直接进行了使用物品的界面,如下图2

而正常应该是进入物品分类里面的,如果图1
这是个什么情况呢?要怎么改才能正常的进入物品分类而非使用物品呢?





RUBY 代码复制
  1. #==============================================================================
  2. # +++ MOG - Monogatari (物語)  (v1.3) +++
  3. #==============================================================================
  4. # 原作 Moghunter
  5. # [url]http://www.atelier-rgss.com/[/url]
  6. # 翻译 heiwang1997
  7. #==============================================================================
  8. # 高级菜单系统,针对愿意学习精灵类和窗口编写的玩家
  9. #==============================================================================
  10.  
  11. #==============================================================================
  12. # 版本历史(保留原文)
  13. #==============================================================================
  14. # 1.3 - Corrigido o bug do som da Scene Skill.
  15. # 1.2 - Compatibilidade com Third Party scripts.
  16. #     - Scene File incorporado ao sistema Monogatari, melhorando a performance.
  17. #==============================================================================
  18.  
  19. #==============================================================================
  20. # ■ MAIN MENU
  21. # 菜单布局,允许自由DIY
  22. #==============================================================================
  23. module MOG_MENU
  24.    NUMBER_OF_PARTICLES = 20  
  25.    BACKGROUND_SCROLL_SPEED = [1,0]
  26.    COMMAND_POSITION = [32, 84]
  27.    COMMAND_POSITION_2 = [10,100]
  28.    COMMAND_SPACE = 4
  29.    COMMAND_NAME_POSITION = [0,0]
  30.    COMMAND_NAME_POSITION_2 = [220,48]
  31.    ACTOR_SPACE = 100
  32.    ACTOR_POSITION = [240,0]
  33.  
  34.    ACTOR_LAYOUT_POSITON = [0,275]
  35.    ACTOR_HP1_POSITON = [28,315]
  36.    ACTOR_HP2_POSITON = [50,330]
  37.    ACTOR_MP1_POSITON = [28,346]
  38.    ACTOR_MP2_POSITON = [50,361]   
  39.    ACTOR_HP_METER_POSITON = [29,329]
  40.    ACTOR_MP_METER_POSITON = [29,360]
  41.    ACTOR_LEVEL_POSITON = [30,290]
  42.    ACTOR_STATES_POSITION = [63,283]
  43.  
  44.    MEMBERS_FACE_POSITION =[150,55]
  45.    MEMBERS_FACE_SPACE = 64
  46.    MEMBERS_ARROW_LAYOUT_POSITION = [217,40]
  47.    MEMBERS_ARROW_1_POSITION = [180,40]
  48.    MEMBERS_ARROW_2_POSITION = [300,40]
  49.    TIME_NUMBER_POS = [415,10]
  50.    GOLD_NUMBER_POS = [170,388]
  51.    LOCATION_POS = [330,380]
  52. end
  53.  
  54. #==============================================================================
  55. # ■ MOG_MENU ITEM
  56. #==============================================================================
  57. #~ module MOG_MENU_ITEM
  58. #~    NUMBER_OF_PARTICLES = 20  
  59. #~    BACKGROUND_SCROLL_SPEED = [0,0]
  60. #~    COMMAND_POSITION = [0, 69]
  61. #~    BUTTON_POSITION = [210, 30]
  62. #~    BUTTON_SPACE = 90
  63. #~ end
  64.  
  65. #==============================================================================
  66. # ■ MOG_MENU SKILL
  67. #==============================================================================
  68. module MOG_MENU_SKILL
  69.    NUMBER_OF_PARTICLES = 20  
  70.    BACKGROUND_SCROLL_SPEED = [0,0]
  71. end
  72.  
  73. #==============================================================================
  74. # ■ MOG_ACTOR SKILL STATUS
  75. #==============================================================================
  76. module MOG_ACTOR_SKILL_STATUS
  77.   MEMBERS_SPACE = 80  
  78.   LAYOUT_POSITION = [155,0]
  79.   PAR_POSITION = [0,0]
  80.   FACE_POSITION = [-13,-3]
  81.   HP_METER_POSITION = [158,15]
  82.   MP_METER_POSITION = [177,35]
  83.   STATES_POSITION = [71,36]
  84.   STATES_SCROLLING_ANIMATION = false  
  85.   NAME_POSITION = [105,34]
  86.   FONT_NAME = "Georgia"
  87.   FONT_SIZE = 18
  88.   FONT_BOLD = true  
  89. end
  90.  
  91. #==============================================================================
  92. # ■ MOG_MENU EQUIP
  93. #==============================================================================
  94. module MOG_MENU_EQUIP
  95.    NUMBER_OF_PARTICLES = 20  
  96.    BACKGROUND_SCROLL_SPEED = [0,0]
  97.    FONT_NAME = "Arial"
  98.    FONT_SIZE = 18
  99.    FONT_BOLD = true
  100.    FONT_ITALIC = false   
  101. end
  102.  
  103. #==============================================================================
  104. # ■ MOG_MENU STATUS
  105. #==============================================================================
  106. module MOG_MENU_STATUS
  107.    NUMBER_OF_PARTICLES = 20  
  108.    BACKGROUND_SCROLL_SPEED = [1,0]
  109. end
  110.  
  111. #==============================================================================
  112. # ■ MOG MENU PARTY
  113. #==============================================================================
  114. module MOG_MENU_PARTY
  115.    NUMBER_OF_PARTICLES = 20  
  116.    BACKGROUND_SCROLL_SPEED = [0,0]   
  117. end
  118.  
  119. #==============================================================================
  120. # ■ MOG MENU SAVE
  121. #==============================================================================
  122. module MOG_MENU_SAVE
  123.    FILES_MAX = 9   
  124.    NUMBER_OF_PARTICLES = 20   
  125.    BACKGROUND_SCROLL_SPEED = [1,0]
  126. end
  127.  
  128. #==============================================================================
  129. # ■ MOG MENU END
  130. #==============================================================================
  131. module MOG_MENU_END
  132.    NUMBER_OF_PARTICLES = 20
  133.    BACKGROUND_SCROLL_SPEED = [0,0]
  134. end
  135.  
  136. #==============================================================================
  137. # ■ MOG ACTOR MENU STATUS
  138. #==============================================================================
  139. module MOG_ACTOR_MENU_STATUS  
  140.   LAYOUT_POSITION = [385,115]
  141.   FACE_POSITION = [48,-32]
  142.   PAR_POSITION = [5,64]
  143.   STATES_POSITION = [15,25]
  144.   STATES_SCROLLING_ANIMATION = false
  145.   NAME_POSITION = [10,60]
  146.   FONT_NAME = "Georgia"
  147.   FONT_SIZE = 18
  148.   FONT_BOLD = true
  149. end
  150.  
  151. #==============================================================================
  152. # ■ MOG MEMBERS LAYOUT
  153. #==============================================================================
  154. module MOG_MEMBERS_LAYOUT
  155.   MEMBERS_SPACE = 80  
  156.   LAYOUT_POSITION = [3,160]
  157.   PAR_POSITION = [0,0]
  158.   FACE_POSITION = [0,-2]
  159.   HP_METER_POSITION = [12,37]
  160.   MP_METER_POSITION = [86,37]
  161.   SCOPE_TEXT_POSITION = [0,170]
  162.   ARROW_1_POSITION = [50,55]
  163.   ARROW_2_POSITION = [50,4]
  164.   NAME_POSITION = [42,38]
  165.   FONT_NAME = "Georgia"
  166.   FONT_SIZE = 18
  167.   FONT_BOLD = true  
  168. end
  169.  
  170. #==============================================================================
  171. # ■ MOG MENU BASE
  172. #==============================================================================
  173. module MOG_MENU_BASE  
  174. end
  175.  
  176. #==============================================================================
  177. # ■ Game Temp
  178. #==============================================================================
  179. class Game_Temp
  180.  
  181.   attr_accessor :menu_index
  182.   attr_accessor :actor_menu_temp
  183.   attr_accessor :item_scope
  184.   attr_accessor :temp_actor_equip
  185.  
  186.   #--------------------------------------------------------------------------
  187.   # ● Initialize
  188.   #--------------------------------------------------------------------------  
  189.   alias mog_menu_index_initialize initialize
  190.   def initialize
  191.       @menu_index = 0
  192.       @actor_menu_temp = -1      
  193.       @item_scope = 0
  194.       @temp_actor_equip = nil
  195.       mog_menu_index_initialize
  196.   end
  197.  
  198. end
  199.  
  200. #==============================================================================
  201. # ■ Scene Map
  202. #==============================================================================
  203. class Scene_Map < Scene_Base
  204.  
  205. #--------------------------------------------------------------------------
  206. # ● Update Call Menu
  207. #--------------------------------------------------------------------------   
  208. alias mog_menu_monogatari_update_call_menu update_call_menu   
  209. def update_call_menu
  210.      if $game_party.members.size == 0
  211.         @call_menu = false
  212.         return
  213.      end
  214.      mog_menu_monogatari_update_call_menu
  215. end
  216.  
  217. #--------------------------------------------------------------------------
  218. # ● Call Menu
  219. #--------------------------------------------------------------------------   
  220. alias mog_menu_monogatari_call_menu call_menu
  221. def call_menu
  222.      $game_temp.menu_index = 0     
  223.      mog_menu_monogatari_call_menu
  224. end
  225.  
  226. end
  227.  
  228. #==============================================================================
  229. # ■ Window Command
  230. #==============================================================================
  231. class Window_Command < Window_Selectable
  232.   attr_reader :list
  233. end
  234.  
  235. #==============================================================================
  236. # ■ Game Party
  237. #==============================================================================
  238. class Game_Party < Game_Unit
  239.    attr_accessor :menu_actor_id   
  240. end
  241.  
  242. #==============================================================================
  243. # ■ Game Interpreter
  244. #==============================================================================
  245. class Game_Interpreter
  246.  
  247. #--------------------------------------------------------------------------
  248. # ● gain Tp
  249. #--------------------------------------------------------------------------      
  250. def gain_tp(actor_id,value)
  251.      return if $game_party.members[actor_id] == nil
  252.      $game_party.members[actor_id].tp += value.truncate
  253. end  
  254.  
  255. #--------------------------------------------------------------------------
  256. # ● Lose Tp
  257. #--------------------------------------------------------------------------      
  258. def lose_tp(actor_id,value)
  259.      return if $game_party.members[actor_id] == nil
  260.      $game_party.members[actor_id].tp -= value.truncate
  261. end   
  262.  
  263. end
  264.  
  265. #==============================================================================
  266. # ■ Cache
  267. #==============================================================================
  268. module Cache
  269.  
  270.   #--------------------------------------------------------------------------
  271.   # ● Menu
  272.   #--------------------------------------------------------------------------
  273.   def self.menu(filename)
  274.       load_bitmap("Graphics/Menus/", filename)
  275.   end  
  276.  
  277.   #--------------------------------------------------------------------------
  278.   # ● Menu Main
  279.   #--------------------------------------------------------------------------
  280.   def self.menu_main(filename)
  281.       load_bitmap("Graphics/Menus/Main/", filename)
  282.   end
  283.  
  284.   #--------------------------------------------------------------------------
  285.   # ● Menu Item
  286.   #--------------------------------------------------------------------------
  287. #~   def self.menu_item(filename)
  288. #~       load_bitmap("Graphics/Menus/Item/", filename)
  289. #~   end  
  290.  
  291.   #--------------------------------------------------------------------------
  292.   # ● Menu Skill
  293.   #--------------------------------------------------------------------------
  294.   def self.menu_skill(filename)
  295.       load_bitmap("Graphics/Menus/Skill/", filename)
  296.   end   
  297.  
  298.   #--------------------------------------------------------------------------
  299.   # ● Menu Equip
  300.   #--------------------------------------------------------------------------
  301.   def self.menu_equip(filename)
  302.       load_bitmap("Graphics/Menus/Equip/", filename)
  303.   end      
  304.  
  305.   #--------------------------------------------------------------------------
  306.   # ● Menu Status
  307.   #--------------------------------------------------------------------------
  308.   def self.menu_status(filename)
  309.       load_bitmap("Graphics/Menus/Status/", filename)
  310.   end   
  311.  
  312.   #--------------------------------------------------------------------------
  313.   # ● Menu Save
  314.   #--------------------------------------------------------------------------
  315.   def self.menu_save(filename)
  316.       load_bitmap("Graphics/Menus/Save/", filename)
  317.   end      
  318.  
  319.   #--------------------------------------------------------------------------
  320.   # ● Menu Party
  321.   #--------------------------------------------------------------------------
  322.   def self.menu_party(filename)
  323.       load_bitmap("Graphics/Menus/Party/", filename)
  324.   end     
  325.  
  326.   #--------------------------------------------------------------------------
  327.   # ● Menu End
  328.   #--------------------------------------------------------------------------
  329.   def self.menu_end(filename)
  330.       load_bitmap("Graphics/Menus/End/", filename)
  331.   end      
  332.  
  333. end
  334.  
  335. #==============================================================================
  336. # ■ Game_Temp
  337. #==============================================================================
  338. class Game_Temp
  339.  
  340.   attr_accessor :pre_cache_main_menu
  341.   attr_accessor :pre_cache_actor_menu
  342.   attr_accessor :pre_cache_item_menu
  343.   attr_accessor :pre_cache_skill_menu
  344.   attr_accessor :pre_cache_equip_menu
  345. #~   attr_accessor :pre_cache_status_menu
  346.   attr_accessor :pre_cache_party_menu
  347.   attr_accessor :pre_cache_file_menu
  348.   attr_accessor :pre_cache_end_menu
  349.   attr_accessor :pre_cache_icon
  350.   attr_accessor :pre_symbol
  351.  
  352.   #--------------------------------------------------------------------------
  353.   # ● Pre Cache Atelier Menu
  354.   #--------------------------------------------------------------------------  
  355.   def pre_cache_atelier_menu   
  356.       @pre_cache_main_menu = []
  357.       @pre_cache_item_menu = []
  358.       @pre_cache_skill_menu = []
  359.       @pre_cache_equip_menu = []
  360. #~       @pre_cache_status_menu = []
  361.       @pre_cache_party_menu = []
  362.       @pre_cache_file_menu = []
  363.       @pre_cache_end_menu = []
  364.       @pre_symbol = ""
  365.       execute_pre_cache_icon if can_pre_cache_icon?
  366.       execute_pre_cache_actor
  367.       execute_pre_cache_main_menu
  368. #~       execute_pre_cache_item_menu
  369.       execute_pre_cache_skill_menu
  370.       execute_pre_cache_equip_menu
  371. #~       execute_pre_cache_status_menu
  372.       execute_pre_cache_file_menu
  373.       execute_pre_cache_party_menu
  374.       execute_pre_cache_end_menu
  375.   end
  376.  
  377.   #--------------------------------------------------------------------------
  378.   # ● Pre Cache Icon
  379.   #--------------------------------------------------------------------------   
  380.   def execute_pre_cache_icon
  381.       @pre_cache_icon = Cache.system("Iconset")
  382.   end
  383.  
  384.   #--------------------------------------------------------------------------
  385.   # ● Can Pre Cache Menu?
  386.   #--------------------------------------------------------------------------  
  387.   def can_pre_cache_icon?
  388.       return true if @pre_cache_icon == nil
  389.       return true if @pre_cache_icon.disposed? rescue return false
  390.       return false
  391.   end
  392.  
  393. end
  394.  
  395. #==============================================================================
  396. # ■ Spriteset_Map
  397. #==============================================================================
  398. class Spriteset_Map  
  399.  
  400.   #--------------------------------------------------------------------------
  401.   # ● Initialize
  402.   #--------------------------------------------------------------------------
  403.   alias mog_atelier_menu_initialize initialize
  404.   def initialize
  405.       $game_temp.pre_cache_atelier_menu if $game_temp.can_pre_cache_icon?
  406.       mog_atelier_menu_initialize
  407.   end
  408.  
  409. end
  410.  
  411. #==============================================================================
  412. # ■ Particles_Menu
  413. #==============================================================================
  414. class Particles_Menu < Sprite
  415.  
  416. #--------------------------------------------------------------------------
  417. # ● Initialize
  418. #--------------------------------------------------------------------------            
  419.   def initialize(viewport = nil)
  420.       super(viewport)
  421.       @speed_x = 0
  422.       @speed_y = 0
  423.       @speed_a = 0
  424.       self.bitmap = Cache.menu("Particles")
  425.       self.blend_type = 0
  426.       self.z = 1
  427.       reset_setting(true)
  428.   end  
  429.  
  430. #--------------------------------------------------------------------------
  431. # ● Reset Setting
  432. #--------------------------------------------------------------------------               
  433.   def reset_setting(initial = false)
  434.       zoom = (50 + rand(100)) / 100.1
  435.       self.zoom_x = zoom
  436.       self.zoom_y = zoom
  437.       self.x = rand(576) - 160
  438.       self.y = initial == true ? rand(480) : 512
  439.       self.opacity = 0
  440.       @speed_y = -(1 + rand(3))
  441.       @speed_x = (1 + rand(2))
  442.       @speed_a = (1 + rand(2))     
  443.   end
  444.  
  445. #--------------------------------------------------------------------------
  446. # ● Dispose
  447. #--------------------------------------------------------------------------               
  448.   def dispose
  449.       super
  450.       self.bitmap.dispose if self.bitmap != nil
  451.   end  
  452.  
  453. #--------------------------------------------------------------------------
  454. # ● Update
  455. #--------------------------------------------------------------------------               
  456.   def update
  457.       super
  458.       self.x += @speed_x
  459.       self.y += @speed_y
  460.       self.opacity += 5
  461.       reset_setting if can_reset_setting?
  462.   end  
  463.  
  464. #--------------------------------------------------------------------------
  465. # ● Can Reset Setting
  466. #--------------------------------------------------------------------------                 
  467.   def can_reset_setting?
  468.       return true if self.y < -50
  469.       return true if self.x > 576
  470.       return false
  471.   end  
  472.  
  473. end
  474.  
  475.  
  476.  
  477.  
  478. #==============================================================================
  479. # ■ Window_Actor_Status_0
  480. #==============================================================================
  481. class Members_Windows_Status < Window_Selectable
  482.   attr_reader   :pending_index         
  483.  
  484.   #--------------------------------------------------------------------------
  485.   # ● Initialize
  486.   #--------------------------------------------------------------------------
  487.   def initialize(x = 0, y = 0)
  488.     super(x, y, window_width, window_height)
  489.     self.windowskin = Cache.menu("")
  490.     self.opacity = 0
  491.     self.contents_opacity = 0
  492.     self.visible = false
  493.     @input_lag = 0
  494.     @old_index = -1
  495.     @pending_index = -1
  496.     refresh
  497.   end
  498.  
  499.   #--------------------------------------------------------------------------
  500.   # ● Window Width
  501.   #--------------------------------------------------------------------------
  502.   def window_width
  503.       40
  504.   end
  505.  
  506.   #--------------------------------------------------------------------------
  507.   # ● Window Height
  508.   #--------------------------------------------------------------------------
  509.   def window_height
  510.       40
  511.   end
  512.  
  513.   #--------------------------------------------------------------------------
  514.   # ● Cursor Movable?
  515.   #--------------------------------------------------------------------------  
  516.   def cursor_movable?
  517.       active && open? && !@cursor_fix && !@cursor_all && item_max > 0 && @input_lag == 0
  518.   end  
  519.  
  520.   #--------------------------------------------------------------------------
  521.   # ● Item Max
  522.   #--------------------------------------------------------------------------
  523.   def item_max
  524.       $game_party.members.size
  525.   end
  526.  
  527.   #--------------------------------------------------------------------------
  528.   # ● Item Height
  529.   #--------------------------------------------------------------------------
  530.   def item_height
  531.     (height - standard_padding * 2) / 4
  532.   end
  533.  
  534.   #--------------------------------------------------------------------------
  535.   # ● Draw Item Background
  536.   #--------------------------------------------------------------------------
  537.   def draw_item_background(index)
  538.   end
  539.  
  540.   #--------------------------------------------------------------------------
  541.   # ● Pending Index
  542.   #--------------------------------------------------------------------------
  543.   def pending_index=(index)
  544.       last_pending_index = @pending_index
  545.       @pending_index = index
  546.   end
  547.  
  548.   #--------------------------------------------------------------------------
  549.   # ● Process OK
  550.   #--------------------------------------------------------------------------
  551.   def process_ok
  552.       $game_party.target_actor = $game_party.members[index] unless @cursor_all
  553.       call_ok_handler
  554.   end
  555.  
  556.   #--------------------------------------------------------------------------
  557.   # ● Select Last
  558.   #--------------------------------------------------------------------------
  559.   def select_last
  560.       select($game_party.target_actor.index || 0)
  561.   end
  562.  
  563.   #--------------------------------------------------------------------------
  564.   # ● Select For Item
  565.   #--------------------------------------------------------------------------
  566.   def select_for_item(item)
  567.       @cursor_fix = item.for_user?
  568.       @cursor_all = item.for_all?
  569.       if @cursor_fix
  570.          select($game_party.menu_actor.index)
  571.       elsif @cursor_all
  572.          select(0)
  573.       else
  574.           @index = @index < 0 ? 0 : @index
  575.       end
  576.   end
  577.  
  578.   #--------------------------------------------------------------------------
  579.   # ● Draw Item
  580.   #--------------------------------------------------------------------------  
  581.   def draw_item(index)
  582.   end
  583.  
  584.   #--------------------------------------------------------------------------
  585.   # ● Process Cursor Move 2
  586.   #--------------------------------------------------------------------------
  587.   def process_cursor_move2
  588.       return unless cursor_movable?
  589.       last_index = @index
  590.       cursor_down (Input.trigger?(:RIGHT))  if Input.repeat?(:RIGHT)
  591.       cursor_up   (Input.trigger?(:LEFT))    if Input.repeat?(:LEFT)
  592.       Sound.play_cursor if @index != last_index
  593.   end   
  594.  
  595.   #--------------------------------------------------------------------------
  596.   # ● Update
  597.   #--------------------------------------------------------------------------  
  598.   def update
  599.       super
  600.       @input_lag -= 1 if @input_lag > 0
  601.       if @old_index != @index
  602.          @old_index = @index
  603.          @input_lag = 5
  604.       end   
  605.   end
  606.  
  607. end
  608.  
  609. #==============================================================================
  610. # ■ Members Menu
  611. #==============================================================================
  612. class Members_Menu
  613.   include MOG_MEMBERS_LAYOUT
  614.  
  615.   attr_accessor :actor
  616.  
  617.   #--------------------------------------------------------------------------
  618.   # ● Initialize
  619.   #--------------------------------------------------------------------------
  620.   def initialize(actor,index)
  621.       @actor = actor
  622.       @index = index
  623.       @index_old = -1
  624.       @com_index = 0
  625.       @max_index = $game_party.members.size - 1      
  626.       @active = false
  627.       @active_old = false
  628.       @opac = 0
  629.       @opac_active = [0,0]
  630.       @par = []
  631.       [url=home.php?mod=space&uid=14099]@Float[/url] = [0,0,0]
  632.       set_old_parameter
  633.       create_sprites
  634.       create_sprites_support if @index == 0
  635.   end
  636.  
  637.   #--------------------------------------------------------------------------
  638.   # ● Create Sprites
  639.   #--------------------------------------------------------------------------   
  640.   def create_sprites
  641.       @meter_image = $game_temp.pre_cache_actor_menu[6]
  642.       @meter_cw = @meter_image.width
  643.       @meter_ch = @meter_image.height / 2   
  644.       @parameter_number = $game_temp.pre_cache_actor_menu[2]
  645.       @parameter_cw = @parameter_number.width / 10
  646.       @parameter_ch = @parameter_number.height
  647.       @visible = false
  648.       create_layout
  649.       create_parameter
  650.       create_face
  651.       create_name
  652.       create_hp_meter
  653.       create_mp_meter
  654.       @next_pos = [[email]-@layout.width[/email] - 64,0]
  655.       @now_index = [[email]-@layout.width[/email] - 64,0,0]
  656.       @before_index = [[email]-@layout.width[/email] - 64,0,0]
  657.       @next_index = [[email]-@layout.width[/email] - 64,0,0]
  658.       set_position([email]-@layout.width[/email] - 64,0)
  659.       set_opacity(0)
  660.   end
  661.  
  662.   #--------------------------------------------------------------------------
  663.   # ● Create Sprites
  664.   #--------------------------------------------------------------------------     
  665.   def create_sprites_support
  666.       create_scope_all
  667.       create_arrow
  668.   end
  669.  
  670.   #--------------------------------------------------------------------------
  671.   # ● Create Scope All
  672.   #--------------------------------------------------------------------------      
  673.   def create_scope_all
  674.       @scope = Sprite.new
  675.       @scope.bitmap = $game_temp.pre_cache_actor_menu[4]
  676.       @scope_cw = @scope.bitmap.width
  677.       @org_pos_scope = [SCOPE_TEXT_POSITION[0],SCOPE_TEXT_POSITION[1],SCOPE_TEXT_POSITION[0] - @scope_cw]
  678.       @scope.x = @org_pos_scope[2]
  679.       @scope.y = @org_pos_scope[1]
  680.       @scope.z = 15
  681.   end
  682.  
  683.   #--------------------------------------------------------------------------
  684.   # ● Update Scope
  685.   #--------------------------------------------------------------------------         
  686.   def update_scope
  687.       if @active and all_targets
  688.          if @scope.x < @org_pos_scope[0]
  689.             @scope.x += 15
  690.             if @scope.x >= @org_pos_scope[0]
  691.                @scope.x = @org_pos_scope[0]
  692.             end   
  693.          end
  694.       else
  695.          if @scope.x > @org_pos_scope[2]         
  696.             @scope.x -= 15
  697.             if @scope.x <= @org_pos_scope[2]
  698.                @scope.x = @org_pos_scope[2]
  699.             end         
  700.           end
  701.       end
  702.   end
  703.  
  704.   #--------------------------------------------------------------------------
  705.   # ● Create Arrow
  706.   #--------------------------------------------------------------------------           
  707.   def create_arrow
  708.       @arrow_float = [0,0,0]
  709.       @arrow_np_1 = [0,0]
  710.       @arrow_np_2 = [0,0]
  711.       @arrow_image = $game_temp.pre_cache_actor_menu[5]
  712.       @arrow_image_cw = @arrow_image.width
  713.       @arrow_image_ch = @arrow_image.height# / 2
  714.       @arrow_1 = Sprite.new
  715.       @arrow_1.bitmap = Bitmap.new(@arrow_image_cw,@arrow_image_ch)
  716.       @arrow_cw = @arrow_1.bitmap.width
  717.       @org_pos_arrow_1 = [ARROW_1_POSITION[0],ARROW_1_POSITION[1]]
  718.       @arrow_1.x = @org_pos_arrow_1[0]
  719.       @arrow_1.y = @org_pos_arrow_1[1]
  720.       @arrow_1.z = 15
  721.       @arrow_1.opacity = 0
  722.       @arrow_2 = Sprite.new
  723.       @arrow_2.bitmap = Bitmap.new(@arrow_image_cw,@arrow_image_ch)
  724.       @arrow_2.ox = @arrow_2.bitmap.width / 2
  725.       @arrow_2.oy = @arrow_2.bitmap.height / 2
  726.       @arrow_2.angle = 180
  727.       ar_y = (MEMBERS_SPACE * 4) + ARROW_2_POSITION[1]
  728.       @org_pos_arrow_2 = [ARROW_2_POSITION[0] + @arrow_2.ox,ar_y]
  729.       @arrow_2.x = @org_pos_arrow_2[0]
  730.       @arrow_2.y = @org_pos_arrow_2[1]
  731.       @arrow_2.z = 15  
  732.       @arrow_2.opacity = 0
  733.       @arrow_time_1 = 0
  734.       @arrow_time_2 = 0
  735.       refresh_arrow(0,@arrow_1,0)
  736.       refresh_arrow(1,@arrow_2,0)
  737.   end
  738.  
  739.   #--------------------------------------------------------------------------
  740.   # ● Refresh_arrow 1
  741.   #--------------------------------------------------------------------------            
  742.   def refresh_arrow(arrow,sprite,type)
  743.       sprite.bitmap.clear
  744.       h = @arrow_image_ch * type
  745.       a_rect = Rect.new(0,h,@arrow_image_cw,@arrow_image_ch)
  746.       sprite.bitmap.blt(0,0,@arrow_image,a_rect)
  747.       @arrow_time_1 = 20 if arrow == 0
  748.       @arrow_time_2 = 20 if arrow ==1
  749.   end
  750.  
  751.   #--------------------------------------------------------------------------
  752.   # ● Update Arrow
  753.   #--------------------------------------------------------------------------            
  754.   def update_arrow
  755.     #  update_arrow_type
  756.       update_arrow_visible
  757.       update_arrow_float_animation
  758.   end
  759.  
  760.   #--------------------------------------------------------------------------
  761.   # ● Update Arrow Type
  762.   #--------------------------------------------------------------------------               
  763.   def update_arrow_type
  764.       if @arrow_time_1 > 0
  765.          @arrow_time_1 -= 1
  766.          refresh_arrow(0,@arrow_1,0) if @arrow_time_1 == 0
  767.       end   
  768.       if @arrow_time_2 > 0
  769.          @arrow_time_2 -= 1
  770.          refresh_arrow(1,@arrow_2,0) if @arrow_time_2 == 0
  771.       end         
  772.   end
  773.  
  774.   #--------------------------------------------------------------------------
  775.   # ● Refresh Arrow Type
  776.   #--------------------------------------------------------------------------                 
  777.   def refresh_arrow_type
  778.       return
  779.       if @index_old > @com_index
  780.          refresh_arrow(0,@arrow_1,1)
  781.       else  
  782.          refresh_arrow(1,@arrow_2,1)
  783.       end  
  784.   end  
  785.  
  786.   #--------------------------------------------------------------------------
  787.   # ● Update Arrow Visible
  788.   #--------------------------------------------------------------------------              
  789.   def update_arrow_visible
  790.       if can_arrow_visible?
  791.         @arrow_1.opacity += 15
  792.         @arrow_2.opacity += 15
  793.         @arrow_np_1 = [@org_pos_arrow_1[0],@org_pos_arrow_1[1]]
  794.         @arrow_np_2 = [@org_pos_arrow_2[0],@org_pos_arrow_2[1]]
  795.       else  
  796.         @arrow_1.opacity -= 10
  797.         @arrow_2.opacity -= 10
  798.         @arrow_np_1 = [-@arrow_cw,@org_pos[1]]
  799.         @arrow_np_2 = [-@arrow_cw + @arrow_2.ox,@org_pos[1] + @arrow_2.oy]        
  800.       end  
  801.  
  802.   end
  803.  
  804. #--------------------------------------------------------------------------
  805. # ● Update Slide Arrow
  806. #--------------------------------------------------------------------------                       
  807.   def update_slide_arrow(type,sprite,cp,np)
  808.       cp -= @arrow_float[1] if type == 1
  809.       sp = 2 + ((cp - np).abs / 20)
  810.       if cp > np
  811.          cp -= sp
  812.          cp = np if cp < np
  813.       elsif cp < np
  814.          cp += sp
  815.          cp = np if cp > np
  816.       end     
  817.       sprite.x = cp if type == 0
  818.       sprite.y = cp + @arrow_float[1] if type == 1
  819.   end      
  820.  
  821.   #--------------------------------------------------------------------------
  822.   # ● Can Arrow Visiblle?
  823.   #--------------------------------------------------------------------------               
  824.   def can_arrow_visible?
  825.       return false if !@active
  826.       return false if all_targets
  827.       return false if $game_party.members.size < 2
  828.       return  true
  829.   end
  830.  
  831.   #--------------------------------------------------------------------------
  832.   # ● Update Arrow Float Animation
  833.   #--------------------------------------------------------------------------               
  834.   def update_arrow_float_animation
  835.       @arrow_float[2] += 1
  836.       if @arrow_float[2] > 2
  837.          @arrow_float[2] = 0
  838.          @arrow_float[0] += 1
  839.          case @arrow_float[0]
  840.             when 1..11
  841.               @arrow_float[1] += 1
  842.             when 12..22
  843.               @arrow_float[1] -= 1
  844.             else  
  845.               @arrow_float[0] = 0
  846.               @arrow_float[1] = 0
  847.          end  
  848.       end
  849.     update_slide_arrow(0,@arrow_1,@arrow_1.x,@arrow_np_1[0])
  850.     update_slide_arrow(1,@arrow_1,@arrow_1.y,@arrow_np_1[1])
  851.     update_slide_arrow(0,@arrow_2,@arrow_2.x,@arrow_np_2[0])
  852.     update_slide_arrow(1,@arrow_2,@arrow_2.y,@arrow_np_2[1])   
  853.   end
  854.  
  855.   #--------------------------------------------------------------------------
  856.   # ● Create Scope All
  857.   #--------------------------------------------------------------------------      
  858.   def update_support
  859.       update_scope
  860.       update_arrow
  861.   end
  862.  
  863.   #--------------------------------------------------------------------------
  864.   # ● Set Old Parameter
  865.   #--------------------------------------------------------------------------  
  866.   def set_old_parameter
  867.       @par.clear
  868.       @par = [@actor.hp,@actor.mhp,@actor.mp,@actor.mmp,@actor.level]
  869.   end   
  870.  
  871.   #--------------------------------------------------------------------------
  872.   # ● Members Spate
  873.   #--------------------------------------------------------------------------   
  874.   def members_space
  875.       LAYOUT_POSITION[1] + (@index * MEMBERS_SPACE)
  876.   end  
  877.  
  878.   #--------------------------------------------------------------------------
  879.   # ● Dispose
  880.   #--------------------------------------------------------------------------  
  881.   def dispose
  882.       dispose_layout
  883.       dispose_parameter
  884.       dispose_face
  885.       dispose_name
  886.       dispose_hp_meter
  887.       dispose_mp_meter
  888.       dispose_support if @index == 0
  889.   end
  890.  
  891.   #--------------------------------------------------------------------------
  892.   # ● Dispose Support
  893.   #--------------------------------------------------------------------------   
  894.   def dispose_support
  895.       dispose_scope
  896.       dispose_arrow
  897.   end
  898.  
  899.   #--------------------------------------------------------------------------
  900.   # ● Dispose Layout
  901.   #--------------------------------------------------------------------------   
  902.   def dispose_layout
  903.       @layout.dispose
  904.   end
  905.  
  906.   #--------------------------------------------------------------------------
  907.   # ● Dispose Scope
  908.   #--------------------------------------------------------------------------         
  909.   def dispose_scope
  910.       @scope.dispose
  911.   end  
  912.  
  913.   #--------------------------------------------------------------------------
  914.   # ● Dispose_Arrow
  915.   #--------------------------------------------------------------------------            
  916.   def dispose_arrow
  917.       @arrow_1.bitmap.dispose
  918.       @arrow_1.dispose
  919.       @arrow_2.bitmap.dispose
  920.       @arrow_2.dispose
  921.   end
  922.  
  923.   #--------------------------------------------------------------------------
  924.   # ● Dispose Parameter
  925.   #--------------------------------------------------------------------------      
  926.   def dispose_parameter
  927.       @parameter.bitmap.dispose
  928.       @parameter.dispose
  929.   end  
  930.  
  931.   #--------------------------------------------------------------------------
  932.   # ● Dispose Face
  933.   #--------------------------------------------------------------------------   
  934.   def dispose_face
  935.       @face.dispose
  936.   end   
  937.  
  938.   #--------------------------------------------------------------------------
  939.   # ● Dispose HP Meter
  940.   #--------------------------------------------------------------------------      
  941.   def dispose_hp_meter
  942.       @hp_meter.bitmap.dispose
  943.       @hp_meter.dispose
  944.   end
  945.  
  946.   #--------------------------------------------------------------------------
  947.   # ● Dispose MP Meter
  948.   #--------------------------------------------------------------------------      
  949.   def dispose_mp_meter
  950.       @mp_meter.bitmap.dispose
  951.       @mp_meter.dispose
  952.   end  
  953.  
  954.   #--------------------------------------------------------------------------
  955.   # ● Dispose Name
  956.   #--------------------------------------------------------------------------        
  957.   def dispose_name
  958.       @name.bitmap.dispose
  959.       @name.dispose
  960.   end  
  961.  
  962.   #--------------------------------------------------------------------------
  963.   # ● Create Layout
  964.   #--------------------------------------------------------------------------
  965.   def create_layout
  966.       @layout = Sprite.new
  967.       @layout.bitmap = Cache.menu("Actor_Layout_1")
  968.       @org_pos = [LAYOUT_POSITION[0],LAYOUT_POSITION[1]]
  969.       @layout.x = @org_pos[0]
  970.       @layout.y = @org_pos[1]
  971.       @layout.z = 10
  972.       #@layout.opacity = 0
  973.   end
  974.  
  975.   #--------------------------------------------------------------------------
  976.   # ● Create Parameter
  977.   #--------------------------------------------------------------------------
  978.   def create_parameter
  979.       @parameter = Sprite.new
  980.       @parameter.bitmap = Bitmap.new(@layout.bitmap.width,@layout.bitmap.height)
  981.       @org_pos_par = [@org_pos[0] + PAR_POSITION[0],
  982.                       @org_pos[1] + PAR_POSITION[1]]
  983.       @parameter.x = @org_pos_par[0]
  984.       @parameter.y = @org_pos_par[1]
  985.       @parameter.z = 12
  986. #      @parameter.opacity = 0
  987.       refresh_parameter
  988.   end  
  989.  
  990.   #--------------------------------------------------------------------------
  991.   # ● Create HP Meter
  992.   #--------------------------------------------------------------------------  
  993.   def create_hp_meter
  994.       @hp_meter_old = [-1,-1]
  995.       @hp_meter = Sprite.new
  996.       @hp_meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
  997.       @org_pos_hp = [@org_pos[0] + HP_METER_POSITION[0],
  998.                      @org_pos[1] + HP_METER_POSITION[1]]      
  999.       @hp_meter.x = @org_pos_hp[0]
  1000.       @hp_meter.y = @org_pos_hp[1]
  1001.       @hp_meter.z = 11
  1002.   end  
  1003.  
  1004.   #--------------------------------------------------------------------------
  1005.   # ● Refresh HP Meter
  1006.   #--------------------------------------------------------------------------   
  1007.   def refresh_hp_meter
  1008.       @hp_meter_old[0] = @actor.hp
  1009.       @hp_meter_old[1] = @actor.mhp
  1010.       @hp_meter.bitmap.clear
  1011.       width_range = @meter_cw * @actor.hp / @actor.mhp
  1012.       m_rect = Rect.new(0,0,width_range,@meter_ch)
  1013.       @hp_meter.bitmap.blt(0,0,@meter_image,m_rect)
  1014.   end
  1015.  
  1016.   #--------------------------------------------------------------------------
  1017.   # ● Create MP Meter
  1018.   #--------------------------------------------------------------------------  
  1019.   def create_mp_meter
  1020.       @mp_meter_old = [-1,-1]
  1021.       @mp_meter = Sprite.new
  1022.       @mp_meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
  1023.       @org_pos_mp = [@org_pos[0] + MP_METER_POSITION[0],
  1024.                      @org_pos[1] + MP_METER_POSITION[1]]      
  1025.       @mp_meter.x = @org_pos_mp[0]
  1026.       @mp_meter.y = @org_pos_mp[1]
  1027.       @mp_meter.z = 11
  1028.   end  
  1029.  
  1030.   #--------------------------------------------------------------------------
  1031.   # ● Refresh MP Meter
  1032.   #--------------------------------------------------------------------------   
  1033.   def refresh_mp_meter
  1034.       @mp_meter_old[0] = @actor.mp
  1035.       @mp_meter_old[1] = @actor.mmp
  1036.       @mp_meter.bitmap.clear
  1037.       width_range = @meter_cw * @actor.mp / @actor.mmp rescue nil
  1038.       width_range = 0 if width_range == nil
  1039.       m_rect = Rect.new(0,@meter_ch,width_range,@meter_ch)
  1040.       @mp_meter.bitmap.blt(0,0,@meter_image,m_rect)
  1041.   end  
  1042.  
  1043.   #--------------------------------------------------------------------------
  1044.   # ● Create Face
  1045.   #--------------------------------------------------------------------------   
  1046.   def refresh_parameter
  1047.       set_old_parameter   
  1048.       @parameter.bitmap.clear
  1049.  
  1050.       value = @actor.level
  1051.       x = 146
  1052.       y = 8
  1053.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1054.  
  1055.       value = @actor.hp
  1056.       x = 72
  1057.       y = 24
  1058.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1059.  
  1060.       value = @actor.mp
  1061.       x = 146
  1062.       y = 24
  1063.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1064.  
  1065.   end  
  1066.  
  1067.   #--------------------------------------------------------------------------
  1068.   # ● Refresh Number
  1069.   #--------------------------------------------------------------------------     
  1070.   def refresh_number(sprite,image,value,number_cw,number_ch,x,y)
  1071.       number = value.abs.to_s.split(//)
  1072.       x2 = -number_cw * number.size
  1073.       for i in 0..number.size - 1
  1074.           number_abs = number[i].to_i
  1075.           nsrc_rect = Rect.new(number_cw * number_abs, 0, number_cw , number_ch)
  1076.           sprite.bitmap.blt(x + x2 + (number_cw  *  i), y, image, nsrc_rect)        
  1077.       end      
  1078.  
  1079.   end
  1080.  
  1081.   #--------------------------------------------------------------------------
  1082.   # ● Create Face
  1083.   #--------------------------------------------------------------------------  
  1084.   def create_face
  1085.       @face = Sprite.new
  1086.       @org_pos_face = [@org_pos[0] + FACE_POSITION[0],
  1087.                        @org_pos[1] + FACE_POSITION[1]]
  1088.       @face.x = @org_pos_face[0]
  1089.       @face.y = @org_pos_face[1]
  1090.       @face.z = 11
  1091.    #   @face.opacity = 0
  1092.       refresh_face
  1093.   end  
  1094.  
  1095.   #--------------------------------------------------------------------------
  1096.   # ● Refresh Face
  1097.   #--------------------------------------------------------------------------   
  1098.   def refresh_face
  1099.       face_name = "Face_B" + @actor.id.to_s
  1100.       @face.bitmap = Cache.menu(face_name.to_s)
  1101.   end
  1102.  
  1103.   #--------------------------------------------------------------------------
  1104.   # ● Create Name
  1105.   #--------------------------------------------------------------------------   
  1106.   def create_name
  1107.       @name = Sprite.new
  1108.       @name.bitmap = Bitmap.new(140,32)
  1109.       @name.bitmap.font.name = FONT_NAME
  1110.       @name.bitmap.font.size = FONT_SIZE
  1111.       @name.bitmap.font.bold = FONT_BOLD
  1112.       @org_pos_name = [@org_pos[0] + NAME_POSITION[0],
  1113.                        @org_pos[1] + NAME_POSITION[1]]
  1114.       @name.x = @org_pos_name[0]
  1115.       @name.y = @org_pos_name[1]
  1116.       @name.z = 11
  1117.      #@name.opacity = 0
  1118.       refresh_name     
  1119.   end  
  1120.  
  1121.   #--------------------------------------------------------------------------
  1122.   # ● Refresh Name
  1123.   #--------------------------------------------------------------------------      
  1124.   def refresh_name
  1125.       @name.bitmap.clear
  1126.       @name.bitmap.draw_text(0,0,140,32,@actor.name.to_s,0)
  1127.   end  
  1128.  
  1129.   #--------------------------------------------------------------------------
  1130.   # ● Set Actor
  1131.   #--------------------------------------------------------------------------        
  1132.   def set_actor(actor)
  1133.       @actor = actor
  1134.   end
  1135.  
  1136.   #--------------------------------------------------------------------------
  1137.   # ● Can Refresh HP Meter
  1138.   #--------------------------------------------------------------------------         
  1139.   def can_refresh_hp_meter?
  1140.       return true if @hp_meter_old[0] != @actor.hp
  1141.       return true if @hp_meter_old[1] != @actor.mhp
  1142.       return false
  1143.   end
  1144.  
  1145.   #--------------------------------------------------------------------------
  1146.   # ● Can Refresh MP Meter
  1147.   #--------------------------------------------------------------------------         
  1148.   def can_refresh_mp_meter?
  1149.       return true if @mp_meter_old[0] != @actor.mp
  1150.       return true if @mp_meter_old[1] != @actor.mmp
  1151.       return false
  1152.   end  
  1153.  
  1154.   #--------------------------------------------------------------------------
  1155.   # ● Can Refresh Parameter
  1156.   #--------------------------------------------------------------------------
  1157.   def can_refresh_parameter?
  1158.       return true if @par[0] != @actor.hp
  1159.       return true if @par[1] != @actor.mhp
  1160.       return true if @par[2] != @actor.mp
  1161.       return true if @par[3] != @actor.mmp
  1162.       return true if @par[4] != @actor.level
  1163.       return false
  1164.   end   
  1165.  
  1166.   #--------------------------------------------------------------------------
  1167.   # ● Refresh_Visible
  1168.   #--------------------------------------------------------------------------   
  1169.   def refresh_visible
  1170.       if can_visible?
  1171.          set_visible(true)
  1172.       else  
  1173.          set_visible(false)
  1174.       end  
  1175.   end  
  1176.  
  1177.   #--------------------------------------------------------------------------
  1178.   # ● Set Index
  1179.   #--------------------------------------------------------------------------     
  1180.   def set_index
  1181.       @now_index[0] = @com_index
  1182.       @before_index[0] = @com_index - 1
  1183.       @next_index[0] = @com_index + 1
  1184.       @before_index[0] = @max_index if @before_index[0] < 0
  1185.       @next_index[0] = 0 if @next_index[0] > @max_index   
  1186.   end
  1187.  
  1188.   #--------------------------------------------------------------------------
  1189.   # ● Can Visible?
  1190.   #--------------------------------------------------------------------------     
  1191.   def can_visible?
  1192.       return true if @index == @now_index[0]
  1193.       return true if @index == @next_index[0]
  1194.       return true if @index == @before_index[0]
  1195.       return false
  1196.   end
  1197.  
  1198.   #--------------------------------------------------------------------------
  1199.   # ● Set Visible
  1200.   #--------------------------------------------------------------------------     
  1201.   def set_visible(value)
  1202.       @visible = value
  1203.       return
  1204.       @layout.visible = @visible
  1205.       @parameter.visible = @visible
  1206.       @hp_meter.visible = @visible
  1207.       @mp_meter.visible = @visible
  1208.       @face.visible = @visible
  1209.       @name.visible = @visible
  1210.   end
  1211.  
  1212.   #--------------------------------------------------------------------------
  1213.   # ● Update Position
  1214.   #--------------------------------------------------------------------------      
  1215.   def update_position
  1216.       update_slide(0,@layout,@layout.x,@next_pos[0] + @org_pos[0])
  1217.       update_slide(1,@layout,@layout.y,@next_pos[1] + @org_pos[1])
  1218.       update_slide(0,@parameter,@parameter.x,@next_pos[0] + @org_pos_par[0])
  1219.       update_slide(1,@parameter,@parameter.y,@next_pos[1] + @org_pos_par[1])
  1220.       update_slide(0,@hp_meter,@hp_meter.x,@next_pos[0] + @org_pos_hp[0])
  1221.       update_slide(1,@hp_meter,@hp_meter.y,@next_pos[1] + @org_pos_hp[1])  
  1222.       update_slide(0,@mp_meter,@mp_meter.x,@next_pos[0] + @org_pos_mp[0])
  1223.       update_slide(1,@mp_meter,@mp_meter.y,@next_pos[1] + @org_pos_mp[1])        
  1224.       update_slide(0,@face,@face.x,@next_pos[0] + @org_pos_face[0])
  1225.       update_slide(1,@face,@face.y,@next_pos[1] + @org_pos_face[1])        
  1226.       update_slide(0,@name,@name.x,@next_pos[0] + @org_pos_name[0])
  1227.       update_slide(1,@name,@name.y,@next_pos[1] + @org_pos_name[1])      
  1228.   end
  1229.  
  1230.   #--------------------------------------------------------------------------
  1231.   # ● Update Float
  1232.   #--------------------------------------------------------------------------         
  1233.   def update_float
  1234.       @float[2] += 1
  1235.       if @float[2] > 5
  1236.          @float[2] = 0
  1237.          @float[0] += 1
  1238.          case @float[0]         
  1239.               when 1..5
  1240.                   @float[1] -= 1  
  1241.               when 6..15
  1242.                   @float[1] += 1
  1243.               when 16..20
  1244.                   @float[1] -= 1
  1245.               else
  1246.                  @float = [0,0,0]
  1247.           end
  1248.        end
  1249.   end
  1250.  
  1251. #--------------------------------------------------------------------------
  1252. # ● Update Slide
  1253. #--------------------------------------------------------------------------                       
  1254.   def update_slide(type,sprite,cp,np)
  1255.       cp -= @float[1] if type == 1
  1256.       sp = 3 + ((cp - np).abs / 10)
  1257.       if cp > np
  1258.          cp -= sp
  1259.          cp = np if cp < np
  1260.       elsif cp < np
  1261.          cp += sp
  1262.          cp = np if cp > np
  1263.       end     
  1264.       sprite.x = cp if type == 0
  1265.       sprite.y = cp + @float[1] if type == 1
  1266.   end   
  1267.  
  1268.   #--------------------------------------------------------------------------
  1269.   # ● All Targets
  1270.   #--------------------------------------------------------------------------                        
  1271.   def all_targets
  1272.       return true if $game_temp.item_scope == 8
  1273.       return true if $game_temp.item_scope == 10
  1274.       return false
  1275.   end  
  1276.  
  1277.   #--------------------------------------------------------------------------
  1278.   # ● Update Opacity
  1279.   #--------------------------------------------------------------------------  
  1280.   def update_opacity
  1281.       if @visible
  1282.          if all_targets
  1283.             if @max_index == 0
  1284.                @next_pos = [0,0]
  1285.             else   
  1286.                if @index == @before_index[0]
  1287.                   @next_pos = [0,-MEMBERS_SPACE]
  1288.                elsif @index == @next_index[0]
  1289.                   @next_pos = [0,MEMBERS_SPACE]
  1290.                else  
  1291.                   @next_pos = [0,0]
  1292.                end      
  1293.             end            
  1294.             update_opacity_active
  1295.             update_float
  1296.          else  
  1297.              if ((@index == @before_index[0]) or (@index == @next_index[0])) and
  1298.                   @max_index != 0
  1299.                   opac_limit = 170
  1300.                   if @opac > opac_limit
  1301.                      @opac -= 10
  1302.                      @opac = opac_limit if @opac < opac_limit
  1303.                   elsif @opac < opac_limit
  1304.                      @opac += 10
  1305.                      @opac = opac_limit if @opac > opac_limit
  1306.                   end   
  1307.                   @float = [0,0,0]
  1308.              else  
  1309.                  update_opacity_active
  1310.                  update_float
  1311.              end  
  1312.          end   
  1313.       else
  1314.           @opac -= 10 if @opac > 0
  1315.           @opac = 0 if @opac < 0
  1316.           @float = [0,0,0]
  1317.       end
  1318.       set_opacity(@opac)
  1319.   end
  1320.  
  1321.   #--------------------------------------------------------------------------
  1322.   # ● Update Opacity Active
  1323.   #--------------------------------------------------------------------------   
  1324.   def update_opacity_active
  1325.       @opac_active[0] += 1
  1326.       case @opac_active[0]
  1327.          when 1..30
  1328.             @opac_active[1] +=  4
  1329.          when 31..60           
  1330.             @opac_active[1] -=  4
  1331.          else
  1332.            @opac_active[1] = 0
  1333.            @opac_active[0] = 0
  1334.       end
  1335.       @opac = 160 + @opac_active[1]
  1336.   end         
  1337.  
  1338.   #--------------------------------------------------------------------------
  1339.   # ● Set Opacity
  1340.   #--------------------------------------------------------------------------   
  1341.   def set_opacity(opac)
  1342.       @layout.opacity = opac
  1343.       @layout.opacity = opac
  1344.       @parameter.opacity = opac
  1345.       @parameter.opacity = opac
  1346.       @hp_meter.opacity = opac
  1347.       @hp_meter.opacity = opac
  1348.       @mp_meter.opacity = opac
  1349.       @mp_meter.opacity = opac
  1350.       @face.opacity = opac
  1351.       @face.opacity = opac
  1352.       @name.opacity = opac
  1353.       @name.opacity = opac
  1354.   end   
  1355.  
  1356.   #--------------------------------------------------------------------------
  1357.   # ● Refresh Index
  1358.   #--------------------------------------------------------------------------   
  1359.   def refresh_index
  1360.       refresh_arrow_type if @index == 0
  1361.       @index_old = @com_index
  1362.       set_index
  1363.       refresh_visible
  1364.       set_next_position
  1365.   end
  1366.  
  1367.   #--------------------------------------------------------------------------
  1368.   # ● Set Next Position
  1369.   #--------------------------------------------------------------------------      
  1370.   def set_next_position
  1371.       if @max_index == 0
  1372.          @next_pos = [0,0]
  1373.          return
  1374.       end  
  1375.       if @visible
  1376.       if @index == @before_index[0]
  1377.          @next_pos = [-32,-MEMBERS_SPACE]
  1378.          if @layout.opacity < 150
  1379.             set_position(@next_pos[0],-MEMBERS_SPACE * 2)
  1380.             set_opacity(0)
  1381.          end   
  1382.       elsif @index == @next_index[0]
  1383.          @next_pos = [-32,MEMBERS_SPACE]
  1384.          if @layout.opacity < 150  
  1385.             set_position(@next_pos[0],MEMBERS_SPACE * 2)
  1386.             set_opacity(0)
  1387.          end   
  1388.       else  
  1389.          @next_pos = [0,0]
  1390.       end   
  1391.       else
  1392.          @next_pos = [-64,0]
  1393.       end  
  1394.   end
  1395.  
  1396.   #--------------------------------------------------------------------------
  1397.   # ● Update Position
  1398.   #--------------------------------------------------------------------------      
  1399.   def set_position(pos_x,pos_y)
  1400.       @layout.x = @org_pos[0] + pos_x
  1401.       @layout.y = @org_pos[1] + pos_y
  1402.       @parameter.x = @org_pos_par[0] + pos_x
  1403.       @parameter.y = @org_pos_par[1] + pos_y
  1404.       @hp_meter.x = @org_pos_hp[0] + pos_x
  1405.       @hp_meter.y = @org_pos_hp[1] + pos_y
  1406.       @mp_meter.x = @org_pos_mp[0] + pos_x
  1407.       @mp_meter.y = @org_pos_mp[1] + pos_y
  1408.       @face.x = @org_pos_face[0] + pos_x
  1409.       @face.y = @org_pos_face[1] + pos_y
  1410.       @name.x = @org_pos_name[0] + pos_x
  1411.       @name.y = @org_pos_name[1] + pos_y
  1412.   end  
  1413.  
  1414.   #--------------------------------------------------------------------------
  1415.   # ● Refresh Active
  1416.   #--------------------------------------------------------------------------         
  1417.   def refresh_active
  1418.       @active_old = @active
  1419.       @visible = @active
  1420.       refresh_index
  1421.       if !@active
  1422.          @visible = @active
  1423.          @next_pos = [[email]-@layout.width[/email] - 64,0]
  1424.       else   
  1425.          set_position([email]-@layout.width[/email] - 64,0)
  1426.       end   
  1427.   end
  1428.  
  1429.   #--------------------------------------------------------------------------
  1430.   # ● Update
  1431.   #--------------------------------------------------------------------------  
  1432.   def update(active,com_index)
  1433.       @active = active
  1434.       @com_index = com_index
  1435.       refresh_active if @active != @active_old
  1436.       update_opacity
  1437.       update_position
  1438.       update_support if @index == 0
  1439.       return if !@active
  1440.       refresh_index if @index_old != @com_index
  1441.       return if !@active or !@visible
  1442.       refresh_hp_meter if can_refresh_hp_meter?
  1443.       refresh_mp_meter if can_refresh_mp_meter?
  1444.       refresh_parameter if can_refresh_parameter?
  1445.   end
  1446.  
  1447.   #--------------------------------------------------------------------------
  1448.   # ● Current Actor
  1449.   #--------------------------------------------------------------------------   
  1450.   def current_actor
  1451.       return true if @com_index == @index
  1452.       return false
  1453.   end
  1454.  
  1455. end
  1456.  
  1457. #==============================================================================
  1458. # ■ Game_Temp
  1459. #==============================================================================
  1460. class Game_Temp
  1461.  
  1462.   #--------------------------------------------------------------------------
  1463.   # ● Execute Pre Cache Actor
  1464.   #--------------------------------------------------------------------------  
  1465.   def execute_pre_cache_actor
  1466.       @pre_cache_actor_menu = []
  1467.       @pre_cache_actor_menu.push(Cache.menu("Actor_Layout_1"))
  1468.       @pre_cache_actor_menu.push(Cache.menu("Actor_Layout_2"))      
  1469.       @pre_cache_actor_menu.push(Cache.menu("Actor_Number_1"))
  1470.       @pre_cache_actor_menu.push(Cache.menu("Actor_Number_2"))
  1471.       @pre_cache_actor_menu.push(Cache.menu("Actor_Scope_All"))
  1472.       @pre_cache_actor_menu.push(Cache.menu("Actor_Members_Arrow"))
  1473.       @pre_cache_actor_menu.push(Cache.menu("Actor_Meter"))
  1474.   end
  1475.  
  1476. end
  1477.  
  1478. #==============================================================================
  1479. # ■ Actor Menu Status
  1480. #==============================================================================
  1481. class Actor_Menu_Status
  1482.  
  1483.   include MOG_ACTOR_MENU_STATUS
  1484.  
  1485.   #--------------------------------------------------------------------------
  1486.   # ● Initialize
  1487.   #--------------------------------------------------------------------------
  1488.   def initialize(actor)
  1489.       @actor = actor
  1490.       @active = false
  1491.       set_old_parameter
  1492.       create_sprites
  1493.   end
  1494.  
  1495.   #--------------------------------------------------------------------------
  1496.   # ● Create Sprites
  1497.   #--------------------------------------------------------------------------  
  1498.   def create_sprites
  1499.       @parameter_number = $game_temp.pre_cache_actor_menu[3]
  1500.       @parameter_cw = @parameter_number.width / 10
  1501.       @parameter_ch = @parameter_number.height   
  1502.       create_layout
  1503.       create_face
  1504.       create_parameter
  1505.       create_name
  1506.       create_states  
  1507.   #    update(true,@actor)
  1508.   end
  1509.  
  1510.   #--------------------------------------------------------------------------
  1511.   # ● Dispose
  1512.   #--------------------------------------------------------------------------  
  1513.   def dispose
  1514.       dispose_layout
  1515.       dispose_face
  1516.       dispose_parameter
  1517.       dispose_name
  1518.       dispose_states
  1519.   end
  1520.  
  1521.   #--------------------------------------------------------------------------
  1522.   # ● Dispose Layout
  1523.   #--------------------------------------------------------------------------   
  1524.   def dispose_layout
  1525.       @layout.dispose
  1526.   end
  1527.  
  1528.   #--------------------------------------------------------------------------
  1529.   # ● Dispose Face
  1530.   #--------------------------------------------------------------------------   
  1531.   def dispose_face
  1532.       @face.bitmap.dispose if @face.bitmap != nil
  1533.       @face.dispose
  1534.   end  
  1535.  
  1536.   #--------------------------------------------------------------------------
  1537.   # ● Dispose Parameter
  1538.   #--------------------------------------------------------------------------      
  1539.   def dispose_parameter
  1540.       @parameter.bitmap.dispose
  1541.       @parameter.dispose
  1542.   end
  1543.  
  1544.   #--------------------------------------------------------------------------
  1545.   # ● Dispose Name
  1546.   #--------------------------------------------------------------------------        
  1547.   def dispose_name
  1548.       @name.bitmap.dispose
  1549.       @name.dispose
  1550.   end
  1551.  
  1552.   #--------------------------------------------------------------------------
  1553.   # ● Dispose States
  1554.   #--------------------------------------------------------------------------            
  1555.    def dispose_states
  1556.        return if @status == nil
  1557.        @status.bitmap.dispose
  1558.        @status.dispose
  1559.        if @actor_status != nil
  1560.           @actor_status.dispose
  1561.           @actor_status = nil
  1562.        end   
  1563.    end   
  1564.  
  1565.   #--------------------------------------------------------------------------
  1566.   # ● Set Old Parameter
  1567.   #--------------------------------------------------------------------------  
  1568.   def set_old_parameter
  1569.       @par = [] if @par == nil
  1570.       @par.clear
  1571.       @par = [@actor.hp,@actor.mhp,@actor.mp,@actor.mmp,@actor.atk,@actor.def,
  1572.               @actor.mat,@actor.mdf,@actor.agi,@actor.luk,@actor.level,@actor.tp]
  1573.   end   
  1574.  
  1575.   #--------------------------------------------------------------------------
  1576.   # ● Create Layout
  1577.   #--------------------------------------------------------------------------
  1578.   def create_layout
  1579.       @layout = Sprite.new
  1580.       @layout.bitmap = $game_temp.pre_cache_actor_menu[1]
  1581.       @org_pos = [LAYOUT_POSITION[0],LAYOUT_POSITION[1]]
  1582.       @layout.x = @org_pos[0] + 150
  1583.       @layout.y = @org_pos[1]
  1584.       @layout.z = 10
  1585.       @layout.opacity = 0
  1586.   end
  1587.  
  1588.   #--------------------------------------------------------------------------
  1589.   # ● Create Parameter
  1590.   #--------------------------------------------------------------------------
  1591.   def create_parameter
  1592.       @parameter = Sprite.new
  1593.       @parameter.bitmap = Bitmap.new(@layout.bitmap.width,@layout.bitmap.height)
  1594.       @org_pos_par = [@org_pos[0] + PAR_POSITION[0],
  1595.                       @org_pos[1] + PAR_POSITION[1]]
  1596.       @parameter.x = @org_pos_par[0] + 150
  1597.       @parameter.y = @org_pos_par[1]
  1598.       @parameter.z = 11
  1599.       @parameter.opacity = 0
  1600.       refresh_parameter
  1601.   end
  1602.  
  1603.   #--------------------------------------------------------------------------
  1604.   # ● Create Face
  1605.   #--------------------------------------------------------------------------  
  1606.   def create_face
  1607.       @face = Sprite.new
  1608.       @face.bitmap = Bitmap.new(96,96)
  1609.       @org_pos_face = [@org_pos[0] + FACE_POSITION[0],
  1610.                        @org_pos[1] + FACE_POSITION[1]]
  1611.       @face.x = @org_pos_face[0] + 150
  1612.       @face.y = @org_pos_face[1]
  1613.       @face.z = 11
  1614.       @face.opacity = 0
  1615.       refresh_face
  1616.   end
  1617.  
  1618.   #--------------------------------------------------------------------------
  1619.   # ● Create Name
  1620.   #--------------------------------------------------------------------------   
  1621.   def create_name
  1622.       @name = Sprite.new
  1623.       @name.bitmap = Bitmap.new(140,32)
  1624.       @name.bitmap.font.name = FONT_NAME
  1625.       @name.bitmap.font.size = FONT_SIZE
  1626.       @name.bitmap.font.bold = FONT_BOLD
  1627.       @org_pos_name = [@org_pos[0] + NAME_POSITION[0],
  1628.                        @org_pos[1] + NAME_POSITION[1]]
  1629.       @name.x = @org_pos_name[0] + 150
  1630.       @name.y = @org_pos_name[1]
  1631.       @name.z = 11
  1632.       @name.opacity = 0
  1633.       refresh_name     
  1634.   end  
  1635.  
  1636.   #--------------------------------------------------------------------------
  1637.   # ● Create_States
  1638.   #--------------------------------------------------------------------------      
  1639.   def create_states
  1640.       @status_old = nil
  1641.       @status_flow = [-24,0]   
  1642.       @status = Sprite.new
  1643.       @status.bitmap = Bitmap.new(24,24)
  1644.       @org_pos_states = [@org_pos[0] + STATES_POSITION[0],
  1645.                          @org_pos[1] + STATES_POSITION[1]]      
  1646.       @status.x = @org_pos_states[0] + 150
  1647.       @status.y = @org_pos_states[1]
  1648.       @status.z = 11
  1649.   end      
  1650.  
  1651.   #--------------------------------------------------------------------------
  1652.   # * Refresh States
  1653.   #--------------------------------------------------------------------------        
  1654.   def refresh_states
  1655.       check_icon_image
  1656.       @status_old = @actor.states
  1657.       @status_flow = [0,0]
  1658.       @actor_status.dispose if @actor_status != nil
  1659.       @states_size = @actor.states.size > 0 ? (26 * @actor.states.size) : 24
  1660.       @actor_status = Bitmap.new(@states_size,24)
  1661.       index = 0
  1662.       for i in @actor.states
  1663.          rect = Rect.new(i.icon_index % 16 * 24, i.icon_index / 16 * 24, 24, 24)
  1664.          @actor_status.blt(26 * index , 0, @icon_image, rect)
  1665.          index += 1
  1666.       end
  1667.   end   
  1668.  
  1669.   #--------------------------------------------------------------------------
  1670.   # * Flow_Status
  1671.   #--------------------------------------------------------------------------         
  1672.   def flow_states
  1673.       return if @actor_status == nil
  1674.       @status.bitmap.clear
  1675.       return if @actor.states.size == 0
  1676.       st_src_rect = Rect.new(@status_flow[0],0, 24,24)
  1677.       @status.bitmap.blt(0,0, @actor_status, st_src_rect)
  1678.       if STATES_SCROLLING_ANIMATION
  1679.          @status_flow[0] += 1
  1680.          @status_flow[0] = -24 if @status_flow[0] >= @states_size + 2
  1681.       else   
  1682.          @status_flow[1] += 1 unless @actor.states.size <= 1
  1683.          if @status_flow[1] > 30
  1684.             @status_flow[1] = 0
  1685.             @status_flow[0] += 26
  1686.             @status_flow[0] = 0 if @status_flow[0] >= (@states_size - 0)
  1687.          end   
  1688.      end   
  1689.   end        
  1690.  
  1691.   #--------------------------------------------------------------------------
  1692.   # * Check Icon Image
  1693.   #--------------------------------------------------------------------------         
  1694.   def check_icon_image
  1695.       if @icon_image == nil or @icon_image.disposed?
  1696.          @icon_image = Cache.system("Iconset")
  1697.       end   
  1698.   end   
  1699.  
  1700.   #--------------------------------------------------------------------------
  1701.   # ● Can Refresh Parameter
  1702.   #--------------------------------------------------------------------------
  1703.   def can_refresh_parameter?
  1704.       return false if !@active
  1705.       return true if @par[0] != @actor.hp
  1706.       return true if @par[1] != @actor.mhp
  1707.       return true if @par[2] != @actor.mp
  1708.       return true if @par[3] != @actor.mmp
  1709.       return true if @par[4] != @actor.atk
  1710.       return true if @par[5] != @actor.def
  1711.       return true if @par[6] != @actor.mat
  1712.       return true if @par[7] != @actor.mdf
  1713.       return true if @par[8] != @actor.agi
  1714.       return true if @par[9] != @actor.luk
  1715.       return true if @par[10] != @actor.level
  1716.       return true if @par[11] != @actor.tp
  1717.       return false
  1718.   end  
  1719.  
  1720.   #--------------------------------------------------------------------------
  1721.   # ● Refresh All
  1722.   #--------------------------------------------------------------------------  
  1723.   def refresh_all(actor)      
  1724.       @actor = actor
  1725.       refresh_parameter
  1726.       refresh_face
  1727.       refresh_name
  1728.   end  
  1729.  
  1730.   #--------------------------------------------------------------------------
  1731.   # ● Refresh Name
  1732.   #--------------------------------------------------------------------------      
  1733.   def refresh_name   
  1734.       @name.bitmap.clear
  1735.       @name.bitmap.draw_text(0,0,140,32,@actor.name.to_s,0)
  1736.   end
  1737.  
  1738.   #--------------------------------------------------------------------------
  1739.   # ● Create Face
  1740.   #--------------------------------------------------------------------------   
  1741.   def refresh_parameter
  1742.       set_old_parameter
  1743.       @parameter.bitmap.clear      
  1744.       value = @actor.level
  1745.       x = 67
  1746.       y = 24
  1747.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1748.  
  1749.       value = @actor.tp
  1750.       x = 140
  1751.       y = 24
  1752.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1753.  
  1754.       value = @actor.hp
  1755.       x = 70
  1756.       y = 46
  1757.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1758.  
  1759.       value = @actor.mhp
  1760.       x = 140
  1761.       y = 46
  1762.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1763.  
  1764.       value = @actor.mp
  1765.       x = 70
  1766.       y = 46 + 22 * 1
  1767.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1768.  
  1769.       value = @actor.mmp
  1770.       x = 140
  1771.       y = 46 + 22 * 1
  1772.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1773.  
  1774.       value = @actor.atk
  1775.       x = 70
  1776.       y = 46 + 22 * 2
  1777.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1778.  
  1779.       value = @actor.def
  1780.       x = 70
  1781.       y = 46 + 22 * 3
  1782.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1783.  
  1784.       value = @actor.agi
  1785.       x = 70
  1786.       y = 46 + 22 * 4
  1787.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1788.  
  1789.       value = @actor.mat
  1790.       x = 140
  1791.       y = 46 + 22 * 2
  1792.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1793.  
  1794.       value = @actor.mdf
  1795.       x = 140
  1796.       y = 46 + 22 * 3
  1797.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1798.  
  1799.       value = @actor.luk
  1800.       x = 140
  1801.       y = 46 + 22 * 4
  1802.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1803.   end
  1804.  
  1805.   #--------------------------------------------------------------------------
  1806.   # ● Refresh Number
  1807.   #--------------------------------------------------------------------------     
  1808.   def refresh_number(sprite,image,value,number_cw,number_ch,x,y)
  1809.       number = value.truncate.abs.to_s.split(//)
  1810.       x2 = -number_cw * number.size
  1811.       for i in 0..number.size - 1
  1812.           number_abs = number[i].to_i
  1813.           nsrc_rect = Rect.new(number_cw * number_abs, 0, number_cw , number_ch)
  1814.           sprite.bitmap.blt(x + x2 + (number_cw  *  i), y, image, nsrc_rect)        
  1815.       end      
  1816.   end
  1817.  
  1818.   #--------------------------------------------------------------------------
  1819.   # ● Refresh Face
  1820.   #--------------------------------------------------------------------------  
  1821.   def refresh_face
  1822.       #return
  1823.       @face.bitmap.clear
  1824.       face_image = Cache.face(@actor.face_name)
  1825.       arect = Rect.new(@actor.face_index  % 4 * 96, @actor.face_index / 4 * 96, 96, 96)
  1826.       @face.bitmap.blt(0,0, face_image, arect)
  1827.      # face_image.dispose
  1828.   end
  1829.  
  1830.   #--------------------------------------------------------------------------
  1831.   # ● Update Slide
  1832.   #--------------------------------------------------------------------------  
  1833.   def update_slide
  1834.       slide_speed = 10
  1835.       opac_speed = 23
  1836.       @slide_range = (@org_pos[0] + 150)
  1837.       if @active
  1838.          if @layout.x > @org_pos[0]
  1839.             @layout.x -= slide_speed
  1840.             @parameter.x -= slide_speed
  1841.             @face.x -= slide_speed
  1842.             @name.x -= slide_speed
  1843.             @status.x -= slide_speed
  1844.             @layout.opacity += opac_speed
  1845.             @parameter.opacity += opac_speed
  1846.             @face.opacity += opac_speed
  1847.             @name.opacity += opac_speed
  1848.             @status.opacity += opac_speed
  1849.             if @layout.x <= @org_pos[0]
  1850.                @layout.x = @org_pos[0]
  1851.                @parameter.x = @org_pos_par[0]
  1852.                @face.x = @org_pos_face[0]
  1853.                @name.x = @org_pos_name[0]
  1854.                @status.x = @org_pos_states[0]
  1855.                @layout.opacity = 255
  1856.                @parameter.opacity = 255
  1857.                @face.opacity = 255
  1858.                @name.opacity = 255  
  1859.                @status.opacity = 255
  1860.             end  
  1861.          end   
  1862.       else
  1863.          if @layout.x <  @slide_range
  1864.             @layout.x += slide_speed
  1865.             @parameter.x += slide_speed
  1866.             @face.x += slide_speed
  1867.             @name.x += slide_speed
  1868.             @status.x += slide_speed
  1869.             @layout.opacity -= opac_speed
  1870.             @parameter.opacity -= opac_speed
  1871.             @face.opacity -= opac_speed
  1872.             @name.opacity -= opac_speed
  1873.             @status.opacity -= opac_speed
  1874.             if @layout.x >=  @slide_range
  1875.                @layout.x =  @slide_range
  1876.                @parameter.x = @org_pos_par[0] + 150
  1877.                @face.x = @org_pos_face[0] + 150
  1878.                @name.x = @org_pos_name[0] + 150
  1879.                @status.x = @org_pos_states[0] + 150
  1880.                @layout.opacity = 0
  1881.                @parameter.opacity = 0
  1882.                @face.opacity = 0
  1883.                @name.opacity = 0   
  1884.                @status.opacity = 0   
  1885.             end  
  1886.          end   
  1887.  
  1888.       end  
  1889.   end
  1890.  
  1891.   #--------------------------------------------------------------------------
  1892.   # ● Update
  1893.   #--------------------------------------------------------------------------
  1894.   def update(active,actor)
  1895.       @active = active
  1896.       update_slide
  1897.       return if !@active
  1898.       refresh_all(actor) if actor != @actor
  1899.       refresh_parameter if can_refresh_parameter?
  1900.       refresh_states if @status_old != @actor.states      
  1901.       flow_states
  1902.   end      
  1903.  
  1904. end
  1905.  
  1906.  
  1907.  
  1908. #==============================================================================
  1909. # ■ Game_Temp
  1910. #==============================================================================
  1911. class Game_Temp
  1912.  
  1913.   #--------------------------------------------------------------------------
  1914.   # ● Execute Pre Cache Main Menu
  1915.   #--------------------------------------------------------------------------   
  1916.   def execute_pre_cache_main_menu
  1917.       @pre_cache_main_menu = []
  1918.       @pre_cache_main_menu.push(Cache.menu_main("Background"))
  1919.       @pre_cache_main_menu.push(Cache.menu_main("Layout"))
  1920.       @pre_cache_main_menu.push(Cache.menu_main("Time_Number"))
  1921.       @pre_cache_main_menu.push(Cache.menu_main("Gold_Number"))
  1922.       @pre_cache_main_menu.push(Cache.menu_main("Members_Layout"))
  1923.       @pre_cache_main_menu.push(Cache.menu_main("Members_Arrow"))
  1924.       @pre_cache_main_menu.push(Cache.menu_main("Par_Number_1"))
  1925.       @pre_cache_main_menu.push(Cache.menu_main("Par_Number_2"))
  1926.       @pre_cache_main_menu.push(Cache.menu_main("Par_Meter"))
  1927.       @pre_cache_main_menu.push(Cache.menu_main("Par_Layout"))
  1928.   end   
  1929.  
  1930. end
  1931.  
  1932. class Window_MenuCommand < Window_Command
  1933. # attr_accessor :handler
  1934. end
  1935.  
  1936. #==============================================================================
  1937. # ■ Scene_Menu
  1938. #==============================================================================
  1939. class Scene_Menu
  1940.   include MOG_MENU
  1941.   include MOG_MENU_BASE
  1942.  
  1943.   #--------------------------------------------------------------------------
  1944.   # ● Main
  1945.   #--------------------------------------------------------------------------        
  1946.   def main
  1947.       execute_setup
  1948.       execute_loop
  1949.       execute_dispose
  1950.   end  
  1951.  
  1952.   #--------------------------------------------------------------------------
  1953.   # ● Execute Setup
  1954.   #--------------------------------------------------------------------------        
  1955.   def execute_setup
  1956.       $game_temp.execute_pre_cache_icon if $game_temp.can_pre_cache_icon?
  1957.       @phase = 0
  1958.       @members_windows_active = false
  1959.       @members_index = 0
  1960.       create_sprites
  1961.   end
  1962.  
  1963.   #--------------------------------------------------------------------------
  1964.   # ● Execute Lopp
  1965.   #--------------------------------------------------------------------------        
  1966.   def execute_loop
  1967.       Graphics.transition(10)
  1968.       loop do
  1969.          Input.update
  1970.          update
  1971.          Graphics.update
  1972.          break if SceneManager.scene != self
  1973.       end
  1974.   end  
  1975.  
  1976. end
  1977.  
  1978. #==============================================================================
  1979. # ■ Face Members
  1980. #==============================================================================
  1981. class Face_Members_Sprite < Sprite
  1982.   include MOG_MENU
  1983.   attr_accessor :index
  1984.   attr_accessor :active
  1985.   attr_accessor :actor_id
  1986.  
  1987. #--------------------------------------------------------------------------
  1988. # ● Initialize
  1989. #--------------------------------------------------------------------------                  
  1990.   def initialize(viewport = nil, index, actor_id)
  1991.       super(viewport)
  1992.       @active = false
  1993.       @index = index
  1994.       @actor_id = actor_id
  1995.       @active = false
  1996.       self.bitmap = Cache.menu("Face" + @actor_id.to_s)
  1997.       self.z = 12
  1998.       self.ox = self.bitmap.width / 2
  1999.       self.oy = self.bitmap.height / 2
  2000.       members_size = $game_party.members.size - 1
  2001.       members_size = 3 if members_size > 3
  2002.       space_base = (MEMBERS_FACE_SPACE * @index)
  2003.       space = space_base - ((ACTOR_SPACE * members_size ) / 2) +  MEMBERS_FACE_POSITION[0]
  2004.       @org_pos =  [space + self.ox , self.oy   ]
  2005.       @ny = 0
  2006.       @zoom_duration = [0,0,false]
  2007.       self.x = @org_pos[0]
  2008.       self.y = @org_pos[1]
  2009.   end  
  2010.  
  2011. #--------------------------------------------------------------------------
  2012. # ● Dispose
  2013. #--------------------------------------------------------------------------                     
  2014.   def dispose
  2015.       super
  2016.       self.bitmap.dispose
  2017.   end  
  2018.  
  2019. #--------------------------------------------------------------------------
  2020. # ● Update
  2021. #--------------------------------------------------------------------------                     
  2022.   def update_command(index, ny)
  2023.       @active = index == @index ? true : false
  2024.       @ny = ny
  2025.       update_slide(index)
  2026.       update_opacity
  2027.       update_zoom   
  2028.   end  
  2029.  
  2030. #--------------------------------------------------------------------------
  2031. # ● Update Opacity
  2032. #--------------------------------------------------------------------------                       
  2033.   def update_opacity
  2034.       if @active
  2035.          self.opacity += 12
  2036.       else  
  2037.          self.opacity -= 6 if self.opacity > 120
  2038.       end  
  2039.   end  
  2040.  
  2041. #--------------------------------------------------------------------------
  2042. # ● Update Zoom
  2043. #--------------------------------------------------------------------------                       
  2044.   def update_zoom
  2045.       if @active
  2046.          if !@zoom_duration[2]
  2047.             update_zoom_out
  2048.             @zoom_duration = [0,0,true] if self.zoom_x == 1.00  
  2049.          else  
  2050.             update_zoom_effect
  2051.          end
  2052.       else
  2053.          @zoom_duration[2] = false   
  2054.          update_zoom_in
  2055.       end  
  2056.   end   
  2057.  
  2058. #--------------------------------------------------------------------------
  2059. # ● Update Zoom Out
  2060. #--------------------------------------------------------------------------                        
  2061.   def update_zoom_out
  2062.       return if self.zoom_x == 1.00
  2063.       self.zoom_x += 0.03
  2064.       self.zoom_y += 0.03
  2065.       if self.zoom_x >= 1.00
  2066.             self.zoom_x = 1.00
  2067.             self.zoom_y = 1.00
  2068.       end   
  2069.    end   
  2070.  
  2071. #--------------------------------------------------------------------------
  2072. # ● Update Zoom In
  2073. #--------------------------------------------------------------------------                           
  2074.   def update_zoom_in
  2075.       return if self.zoom_x == 0.80
  2076.       self.zoom_x -= 0.03
  2077.       self.zoom_y -= 0.03
  2078.       if self.zoom_x <= 0.80
  2079.          self.zoom_x = 0.80
  2080.          self.zoom_y = 0.80
  2081.       end   
  2082.   end      
  2083.  
  2084. #--------------------------------------------------------------------------
  2085. # ● Update Zoom_effect
  2086. #--------------------------------------------------------------------------                        
  2087. def update_zoom_effect
  2088.      @zoom_duration[0] += 1
  2089.      return if @zoom_duration[0] < 1
  2090.      @zoom_duration[0] = 0
  2091.      @zoom_duration[1] += 1
  2092.      case @zoom_duration[1]
  2093.           when 1..30
  2094.              self.zoom_x -= 0.005
  2095.              self.zoom_y -= 0.005                 
  2096.           when 31..60
  2097.              self.zoom_x += 0.005
  2098.              self.zoom_y += 0.005           
  2099.           when 61..999  
  2100.           @zoom_duration[1] = 0
  2101.           self.zoom_x = 1.00
  2102.           self.zoom_y = 1.00
  2103.      end
  2104. end  
  2105.  
  2106. #--------------------------------------------------------------------------
  2107. # ● Update Slide
  2108. #--------------------------------------------------------------------------                       
  2109.   def update_slide(index)
  2110.       np = @org_pos[0] - (index * MEMBERS_FACE_SPACE) + @ny
  2111.       cp = self.x
  2112.       sp = 5 + ((cp - np).abs / 5)
  2113.       if cp > np
  2114.          cp -= sp
  2115.          cp = np if cp < np
  2116.       elsif cp < np
  2117.          cp += sp
  2118.          cp = np if cp > np
  2119.       end     
  2120.       self.x = cp      
  2121.   end  
  2122.  
  2123. #--------------------------------------------------------------------------
  2124. # ● Active
  2125. #--------------------------------------------------------------------------                        
  2126.   def active(value)
  2127.       @active = value
  2128.   end   
  2129.  
  2130. end
  2131.  
  2132. #==============================================================================
  2133. # ■ Members Arrow Sprite
  2134. #==============================================================================
  2135. class Members_Arrow_Sprite
  2136.    include MOG_MENU
  2137.    attr_accessor :active
  2138.  
  2139. #--------------------------------------------------------------------------
  2140. # ● Initialize
  2141. #--------------------------------------------------------------------------
  2142.   def initialize
  2143.       @active = false
  2144.       create_members_layout
  2145.       create_arrows
  2146.   end
  2147.  
  2148. #--------------------------------------------------------------------------
  2149. # ● Create Members Layout
  2150. #--------------------------------------------------------------------------  
  2151.   def create_members_layout
  2152.       @layout_members = Sprite.new
  2153.       @layout_members.bitmap = $game_temp.pre_cache_main_menu[4]
  2154.       @layout_members.z = 13
  2155.       @layout_members_pos = [MEMBERS_ARROW_LAYOUT_POSITION[0], MEMBERS_ARROW_LAYOUT_POSITION[1]]
  2156.       @layout_members.x = @layout_members_pos[0]
  2157.       @layout_members.y = @layout_members_pos[1]
  2158.       @layout_members.opacity = 0
  2159.   end
  2160.  
  2161. #--------------------------------------------------------------------------
  2162. # ● Create Arrows
  2163. #--------------------------------------------------------------------------  
  2164.   def create_arrows
  2165.       @arrow_animation_duration = [0,0]
  2166.       @arrow_1 = Sprite.new
  2167.       @arrow_1.bitmap = $game_temp.pre_cache_main_menu[5]
  2168.       @arrow_1.z = 13
  2169.       @arrow1_pos = [MEMBERS_ARROW_1_POSITION[0], MEMBERS_ARROW_1_POSITION[1]]
  2170.       @arrow_1.x = @arrow1_pos[0]
  2171.       @arrow_1.y = @arrow1_pos[1]
  2172.       @arrow_1.opacity = 0
  2173.       @arrow_2 = Sprite.new
  2174.       @arrow_2.bitmap = $game_temp.pre_cache_main_menu[5]
  2175.       @arrow_2.z = 13
  2176.       @arrow_2.mirror = true
  2177.       @arrow2_pos = [MEMBERS_ARROW_2_POSITION[0], MEMBERS_ARROW_2_POSITION[1]]
  2178.       @arrow_2.x = @arrow2_pos[0]
  2179.       @arrow_2.y = @arrow2_pos[1]
  2180.       @arrow_2.opacity = 0
  2181.       @nx = 0
  2182.       @nx2 = 0
  2183.   end  
  2184.  
  2185. #--------------------------------------------------------------------------
  2186. # ● Dispose
  2187. #--------------------------------------------------------------------------                              
  2188.   def dispose
  2189.       dispose_members_layout
  2190.       dispose_arrows
  2191.   end
  2192.  
  2193. #--------------------------------------------------------------------------
  2194. # ● Dispose Arrows
  2195. #--------------------------------------------------------------------------                                
  2196. def dispose_arrows
  2197.      return if @arrow_1 == nil
  2198.      @arrow_1.dispose
  2199.      @arrow_2.dispose
  2200.      @arrow_1 = nil
  2201. end  
  2202.  
  2203. #--------------------------------------------------------------------------
  2204. # ● Dispose Members Layout
  2205. #--------------------------------------------------------------------------   
  2206.   def dispose_members_layout
  2207.       return if @layout_members == nil
  2208.       @layout_members.dispose
  2209.       @layout_members = nil
  2210.   end
  2211.  
  2212. #--------------------------------------------------------------------------
  2213. # ● Update
  2214. #--------------------------------------------------------------------------                              
  2215.   def update
  2216.       update_arrow_animation
  2217.       update_position
  2218.       @layout_members.opacity += 15
  2219.       @arrow_1.opacity += 15
  2220.       @arrow_2.opacity += 15
  2221.   end  
  2222.  
  2223. #--------------------------------------------------------------------------
  2224. # ● Update Position
  2225. #--------------------------------------------------------------------------                                
  2226.   def update_position
  2227.       @arrow_1.x = @arrow1_pos[0] + @nx + @nx2
  2228.       @arrow_2.x = @arrow2_pos[0] + @nx - @nx2   
  2229.       @layout_members.x = @layout_members_pos[0] + @nx
  2230.   end
  2231.  
  2232. #--------------------------------------------------------------------------
  2233. # ● Update Arrow Animation
  2234. #--------------------------------------------------------------------------                                
  2235.   def update_arrow_animation
  2236.       @arrow_animation_duration[0] += 1
  2237.       return if @arrow_animation_duration[0] < 2
  2238.       @arrow_animation_duration[0] = 0
  2239.       @arrow_animation_duration[1] += 1
  2240.       case @arrow_animation_duration[1]
  2241.          when 1..20
  2242.            @nx2 -= 1
  2243.          when 21..40
  2244.            @nx2 += 1
  2245.          when 41..999  
  2246.            @nx2 = 0
  2247.            @arrow_animation_duration[1] = 0            
  2248.       end
  2249.   end
  2250.  
  2251. #--------------------------------------------------------------------------
  2252. # ● Active
  2253. #--------------------------------------------------------------------------                        
  2254.   def nx(value)
  2255.       @nx = value
  2256.   end   
  2257.  
  2258. end
  2259.  
  2260. #==============================================================================
  2261. # ■ Command Menu Sprite
  2262. #==============================================================================
  2263. class Command_Menu_Sprite < Sprite
  2264.   include MOG_MENU
  2265.   attr_accessor :index
  2266.  
  2267. #--------------------------------------------------------------------------
  2268. # ● Initialize
  2269. #--------------------------------------------------------------------------                  
  2270.   def initialize(viewport = nil,index,command_name)
  2271.       super(viewport)
  2272.       @index = index
  2273.       @command_name = command_name
  2274.       self.bitmap = Cache.menu_main("CM_" + @command_name.to_s)
  2275.       @cw = self.bitmap.width
  2276.       @ch = self.bitmap.height      
  2277.       cw1 = self.bitmap.height / 2
  2278.       cw2 = (self.bitmap.width + COMMAND_SPACE) * index
  2279.       self.ox = self.bitmap.width / 2
  2280.       self.oy = self.bitmap.height / 2
  2281.       @org_pos = [COMMAND_POSITION[0] + cw2 + self.ox, COMMAND_POSITION[1] + self.oy]
  2282.       @slide_max = @org_pos[1] + cw1
  2283.       @zoom_duration = [0,0,false]
  2284.       @zoom_limit = [1.00, 1.20]
  2285.       self.x = -@cw
  2286.       self.y = -@ch
  2287.       self.z = 10
  2288.       @active = false
  2289.       @visible_old = true
  2290.       @np = [-@cw,-@ch]
  2291.       @sprite_name = Sprite.new
  2292.       @sprite_name.bitmap = Bitmap.new(100,32)
  2293.       @sprite_name.bitmap.font.name = "Georgia"
  2294.       @sprite_name.bitmap.draw_text(0,0,100,32,@command_name.to_s,0)
  2295.       @sprite_name.z = 11
  2296.       @np_name = [-@cw,-@ch]
  2297.       @cw_name_pos = [@cw - self.ox + 4, -self.oy + 4]
  2298.   end  
  2299.  
  2300. #--------------------------------------------------------------------------
  2301. # ● Dispose
  2302. #--------------------------------------------------------------------------                     
  2303.   def dispose_command
  2304.       self.bitmap.dispose
  2305.       @sprite_name.bitmap.dispose
  2306.       @sprite_name.dispose
  2307.   end  
  2308.  
  2309. #--------------------------------------------------------------------------
  2310. # ● Update
  2311. #--------------------------------------------------------------------------                     
  2312.   def update_command(index, visible)
  2313.       @active = index == @index ? true : false
  2314.       refresh_active(visible) if @visible_old != visible
  2315.       update_position
  2316.       if !visible
  2317.           if @active
  2318.              self.opacity += 15
  2319.           else
  2320.              self.opacity -= 15
  2321.           end   
  2322.           return
  2323.       end  
  2324.       update_zoom
  2325.       update_opacity
  2326.   end   
  2327.  
  2328. #--------------------------------------------------------------------------
  2329. # ● Update Slide
  2330. #--------------------------------------------------------------------------                       
  2331.   def update_slide(type,cp,np)
  2332.       sp = 2 + ((cp - np).abs / 15)
  2333.       if cp > np
  2334.          cp -= sp
  2335.          cp = np if cp < np
  2336.       elsif cp < np
  2337.          cp += sp
  2338.          cp = np if cp > np
  2339.       end     
  2340.       self.x = cp if type == 0
  2341.       self.y = cp if type == 1
  2342.       @sprite_name.x = cp if type == 2
  2343.       @sprite_name.y = cp if type == 3
  2344.   end
  2345.  
  2346. #--------------------------------------------------------------------------
  2347. # ● Update Position
  2348. #--------------------------------------------------------------------------  
  2349.   def update_position
  2350.       unless !@visible_old
  2351.       if @active
  2352.          @np[0] = @org_pos[0]
  2353.          @np[1] = @slide_max
  2354.       else
  2355.          @np[0] = @org_pos[0]
  2356.          @np[1] = @org_pos[1]
  2357.       end  
  2358.       end
  2359.       update_slide(0,self.x,@np[0])
  2360.       update_slide(1,self.y,@np[1])
  2361.       update_sprite_name_position
  2362.   end      
  2363.  
  2364. #--------------------------------------------------------------------------
  2365. # ● Update Sprite Name Position
  2366. #--------------------------------------------------------------------------  
  2367. def update_sprite_name_position
  2368.       if (@active and !@visible_old) or !@active
  2369.          @np_name[0] = self.x + @cw_name_pos[0] + COMMAND_NAME_POSITION[0]
  2370.          @np_name[1] = self.y + @cw_name_pos[1] + COMMAND_NAME_POSITION[1]
  2371.       else
  2372.          @np_name[0] = COMMAND_NAME_POSITION_2[0]
  2373.          @np_name[1] = COMMAND_NAME_POSITION_2[1]
  2374.       end
  2375.       update_slide(2,@sprite_name.x,@np_name[0])
  2376.       update_slide(3,@sprite_name.y,@np_name[1])      
  2377.       @sprite_name.visible = @active ? true : false
  2378.   end     
  2379.  
  2380.  
  2381. #--------------------------------------------------------------------------
  2382. # ● Refresh Active
  2383. #--------------------------------------------------------------------------                       
  2384.   def refresh_active(visible)
  2385.       if @active and !visible
  2386.          @np[0] = COMMAND_POSITION_2[0] + (@cw / 2)
  2387.          @np[1] = COMMAND_POSITION_2[1]  
  2388.          self.zoom_x = @zoom_limit[0]
  2389.          self.zoom_y = @zoom_limit[0]
  2390.       else
  2391.          @np[0] = @org_pos[0]
  2392.          @np[1] = @org_pos[1]     
  2393.       end
  2394.       @visible_old = visible
  2395.   end
  2396.  
  2397. #--------------------------------------------------------------------------
  2398. # ● Update Opacity
  2399. #--------------------------------------------------------------------------  
  2400.   def update_opacity
  2401.       if @active
  2402.          self.opacity += 15
  2403.       else
  2404.          self.opacity -= 15 if self.opacity > 160
  2405.          if self.opacity < 160
  2406.             self.opacity += 15
  2407.             self.opacity = 160 if self.opacity > 160
  2408.          end   
  2409.       end   
  2410.   end  
  2411.  
  2412. #--------------------------------------------------------------------------
  2413. # ● Update Zoom
  2414. #--------------------------------------------------------------------------                       
  2415.   def update_zoom
  2416.       if @active
  2417.          if !@zoom_duration[2]
  2418.             update_zoom_out
  2419.             @zoom_duration = [0,0,true] if self.zoom_x == @zoom_limit[1]
  2420.          else  
  2421.             update_zoom_effect
  2422.          end
  2423.       else
  2424.          @zoom_duration[2] = false   
  2425.          update_zoom_in
  2426.       end  
  2427.   end   
  2428.  
  2429. #--------------------------------------------------------------------------
  2430. # ● Update Zoom Out
  2431. #--------------------------------------------------------------------------                        
  2432.   def update_zoom_out
  2433.       return if self.zoom_x == @zoom_limit[1]
  2434.       self.zoom_x += 0.03
  2435.       self.zoom_y += 0.03
  2436.       if self.zoom_x >= @zoom_limit[1]
  2437.             self.zoom_x = @zoom_limit[1]
  2438.             self.zoom_y = @zoom_limit[1]
  2439.       end   
  2440.    end   
  2441.  
  2442. #--------------------------------------------------------------------------
  2443. # ● Update Zoom In
  2444. #--------------------------------------------------------------------------                           
  2445.   def update_zoom_in
  2446.       return if self.zoom_x == @zoom_limit[0]
  2447.       self.zoom_x -= 0.03
  2448.       self.zoom_y -= 0.03
  2449.       if self.zoom_x <= @zoom_limit[0]
  2450.          self.zoom_x = @zoom_limit[0]
  2451.          self.zoom_y = @zoom_limit[0]
  2452.       end   
  2453.   end      
  2454.  
  2455. #--------------------------------------------------------------------------
  2456. # ● Update Zoom_effect
  2457. #--------------------------------------------------------------------------                        
  2458. def update_zoom_effect
  2459.      @zoom_duration[0] += 1
  2460.      return if @zoom_duration[0] < 1
  2461.      @zoom_duration[0] = 0
  2462.      @zoom_duration[1] += 1
  2463.      case @zoom_duration[1]
  2464.           when 1..30
  2465.              self.zoom_x -= 0.005
  2466.              self.zoom_y -= 0.005                 
  2467.           when 31..60
  2468.              self.zoom_x += 0.005
  2469.              self.zoom_y += 0.005           
  2470.           when 61..999  
  2471.           @zoom_duration[1] = 0
  2472.           self.zoom_x = @zoom_limit[1]
  2473.           self.zoom_y = @zoom_limit[1]
  2474.      end
  2475. end   
  2476.  
  2477. end
  2478.  
  2479. #==============================================================================
  2480. # ■ Actor Menu Pictures
  2481. #==============================================================================
  2482. class Actor_Menu_Pictures < Sprite
  2483.   include MOG_MENU
  2484.   attr_accessor :index
  2485.  
  2486. #--------------------------------------------------------------------------
  2487. # ● Initialize
  2488. #--------------------------------------------------------------------------                  
  2489.   def initialize(viewport = nil,index,actor_id)
  2490.       super(viewport)
  2491.       @index = index
  2492.       @actor_id = actor_id
  2493.       self.bitmap = Cache.menu("Actor" + @actor_id.to_s)
  2494.       self.z = 2
  2495.       set_position
  2496.       @slide_max = @org_pos[0] + 24
  2497.       auto_y = Graphics.height - self.bitmap.height
  2498.       self.ox = self.bitmap.width / 2
  2499.       self.x = @org_pos[0] - 15
  2500.       self.y = auto_y
  2501.       self.opacity = 0
  2502.       @op_time = 10 * @index
  2503.   end  
  2504.  
  2505. #--------------------------------------------------------------------------
  2506. # ● Set Position
  2507. #--------------------------------------------------------------------------  
  2508.   def set_position
  2509.       members_size = $game_party.members.size
  2510.       members_size = $game_party.max_battle_members if members_size > $game_party.max_battle_members
  2511.       space_members = ((Graphics.width ) / members_size)
  2512.       space_members_2 = (space_members * @index)
  2513.       space_members_3 = ((space_members / 2) * (members_size - 1))
  2514.       center = Graphics.width / 2
  2515.       space = center + space_members_2 - space_members_3
  2516.       @org_pos =  [space, ACTOR_POSITION[1]]   
  2517.   end
  2518.  
  2519. #--------------------------------------------------------------------------
  2520. # ● Dispose
  2521. #--------------------------------------------------------------------------                     
  2522.   def dispose_picture
  2523.       self.bitmap.dispose
  2524.   end  
  2525.  
  2526. #--------------------------------------------------------------------------
  2527. # ● Update Picture
  2528. #--------------------------------------------------------------------------  
  2529.   def update_picture
  2530.       @op_time -= 1 if @op_time > 0
  2531.       return if @op_time > 0
  2532.       self.opacity += 15
  2533.       self.x += 1 if self.x < @org_pos[0]
  2534.   end
  2535.  
  2536. end
  2537.  
  2538. #==============================================================================
  2539. # ■ Actor Menu Parameter
  2540. #==============================================================================
  2541. class Actor_Menu_Parameter
  2542.  
  2543.   include MOG_MENU
  2544.   attr_accessor :index
  2545.  
  2546.   #--------------------------------------------------------------------------
  2547.   # ● Initialize
  2548.   #--------------------------------------------------------------------------                     
  2549.   def initialize(index, actor)
  2550.       setup(index, actor)
  2551.       create_layout_par
  2552.       create_hp_number
  2553.       create_hp2_number
  2554.       create_mp_number
  2555.       create_mp2_number
  2556.       create_hp_meter
  2557.       create_mp_meter
  2558.       create_level
  2559.       create_states
  2560.       create_name
  2561.   end
  2562.  
  2563.   #--------------------------------------------------------------------------
  2564.   # ● Setup
  2565.   #--------------------------------------------------------------------------                       
  2566.   def setup(index, actor)
  2567.       @actor = actor
  2568.       @index = index
  2569.       set_position
  2570.       @number_image_1 = $game_temp.pre_cache_main_menu[6]
  2571.       @number_image_1_cw = @number_image_1.width / 10
  2572.       @number_image_1_ch = @number_image_1.height / 3
  2573.       @number_image_2 = $game_temp.pre_cache_main_menu[7]
  2574.       @number_image_2_cw = @number_image_2.width / 10
  2575.       @number_image_2_ch = @number_image_2.height
  2576.       @par_meter_image = $game_temp.pre_cache_main_menu[8]
  2577.       @par_meter_cw = @par_meter_image.width / 3
  2578.       @par_meter_ch = @par_meter_image.height / 2
  2579.       @par_meter_flow = 0
  2580.       @par_meter_flow_max = @par_meter_image.width - @par_meter_cw
  2581.       @icon_image = $game_temp.pre_cache_icon
  2582.   end
  2583.  
  2584.   #--------------------------------------------------------------------------
  2585.   # ● Set Position
  2586.   #--------------------------------------------------------------------------                       
  2587.   def set_position
  2588.       members_size = $game_party.members.size
  2589.       members_size = $game_party.max_battle_members if members_size >= $game_party.max_battle_members
  2590.       space_members = ((Graphics.width ) / members_size)
  2591.       space_members_2 = (space_members * @index)
  2592.       space_members_3 = ((space_members / 2) * (members_size - 1))
  2593.       center = Graphics.width / 2
  2594.       layout_ox = $game_temp.pre_cache_main_menu[9].width / 2
  2595.       @base_x = center - layout_ox + space_members_2 - space_members_3  
  2596.   end
  2597.  
  2598.   #--------------------------------------------------------------------------
  2599.   # ● Create Layout Par
  2600.   #--------------------------------------------------------------------------                       
  2601.   def create_layout_par
  2602.       @layout_par = Sprite.new
  2603.       @layout_par.bitmap = $game_temp.pre_cache_main_menu[9]
  2604.       @layout_par.z = 10
  2605.       @layout_par.x = @base_x + ACTOR_LAYOUT_POSITON[0]      
  2606.       @layout_par.y = ACTOR_LAYOUT_POSITON[1]
  2607.   end
  2608.  
  2609.   #--------------------------------------------------------------------------
  2610.   # ● Create Name
  2611.   #--------------------------------------------------------------------------  
  2612.   def create_name
  2613.       @actor_name = Sprite.new
  2614.       @actor_name.bitmap = Bitmap.new(160,32)
  2615.       @actor_name.bitmap.font.name = "Georgia"
  2616.       @actor_name.bitmap.font.size = 18
  2617.       @actor_name.bitmap.font.bold = true
  2618.       @actor_name.bitmap.font.italic = true
  2619.       actor_name = @actor.name
  2620.       @actor_name.bitmap.font.color = Color.new(0,0,0)
  2621.       @actor_name.bitmap.draw_text(1,1,140,32,actor_name,1)
  2622.       @actor_name.bitmap.font.color = Color.new(255 ,255,255)
  2623.       @actor_name.bitmap.draw_text(0,0,140,32,actor_name,1)
  2624.       @actor_name.z = 12
  2625.       @actor_name.x = @base_x - 20
  2626.       @actor_name.y = 250
  2627.   end
  2628.  
  2629.   #--------------------------------------------------------------------------
  2630.   # ● Create HP Number
  2631.   #--------------------------------------------------------------------------  
  2632.   def create_hp_number
  2633.       @hp_number = Sprite.new
  2634.       @hp_number.bitmap = Bitmap.new(@number_image_1_cw * 4,@number_image_1_ch)
  2635.       @hp_number.z = 12
  2636.       @hp_number.x = @base_x + ACTOR_HP1_POSITON[0]
  2637.       @hp_number.y =  ACTOR_HP1_POSITON[1]
  2638.       refresh_hp
  2639.   end
  2640.  
  2641.   #--------------------------------------------------------------------------
  2642.   # ● Refresh HP
  2643.   #--------------------------------------------------------------------------   
  2644.   def refresh_hp
  2645.       @hp_number.bitmap.clear
  2646.       number = @actor.hp.abs.to_s.split(//)
  2647.       number_cw = @number_image_1_cw
  2648.       number_ch = @number_image_1_ch
  2649.       for i in 0..number.size - 1
  2650.           number_abs = number[i].to_i
  2651.           nsrc_rect = Rect.new(number_cw * number_abs, 0, number_cw , number_ch)
  2652.           @hp_number.bitmap.blt(number_cw  *  i, 0, @number_image_1, nsrc_rect)        
  2653.       end
  2654.   end
  2655.  
  2656.   #--------------------------------------------------------------------------
  2657.   # ● Create HP2 Number
  2658.   #--------------------------------------------------------------------------  
  2659.   def create_hp2_number
  2660.       @hp2_number = Sprite.new
  2661.       @hp2_number.bitmap = Bitmap.new(@number_image_2_cw * 4,@number_image_2_ch)
  2662.       @hp2_number.z = 12
  2663.       @hp2_number.x = @base_x + ACTOR_HP2_POSITON[0]
  2664.       @hp2_number.y =  ACTOR_HP2_POSITON[1]
  2665.       refresh_hp2
  2666.   end
  2667.  
  2668.   #--------------------------------------------------------------------------
  2669.   # ● Refresh HP2
  2670.   #--------------------------------------------------------------------------   
  2671.   def refresh_hp2
  2672.       @hp2_number.bitmap.clear
  2673.       number = @actor.mhp.abs.to_s.split(//)
  2674.       number_cw = @number_image_2_cw
  2675.       number_ch = @number_image_2_ch
  2676.       for i in 0..number.size - 1
  2677.           number_abs = number[i].to_i
  2678.           nsrc_rect = Rect.new(number_cw * number_abs, 0, number_cw , number_ch)
  2679.           @hp2_number.bitmap.blt(number_cw  *  i, 0, @number_image_2, nsrc_rect)        
  2680.       end
  2681.   end  
  2682.  
  2683.   #--------------------------------------------------------------------------
  2684.   # ● Create MP Number
  2685.   #--------------------------------------------------------------------------  
  2686.   def create_mp_number
  2687.       @mp_number = Sprite.new
  2688.       @mp_number.bitmap = Bitmap.new(@number_image_1_cw * 4,@number_image_1_ch)
  2689.       @mp_number.z = 12
  2690.       @mp_number.x = @base_x + ACTOR_MP1_POSITON[0]
  2691.       @mp_number.y =  ACTOR_MP1_POSITON[1]
  2692.       refresh_mp
  2693.   end
  2694.  
  2695.   #--------------------------------------------------------------------------
  2696.   # ● Refresh MP
  2697.   #--------------------------------------------------------------------------   
  2698.   def refresh_mp
  2699.       @mp_number.bitmap.clear
  2700.       number = @actor.mp.abs.to_s.split(//)
  2701.       number_cw = @number_image_1_cw
  2702.       number_ch = @number_image_1_ch
  2703.       for i in 0..number.size - 1
  2704.           number_abs = number[i].to_i
  2705.           nsrc_rect = Rect.new(number_cw * number_abs, 0, number_cw , number_ch)
  2706.           @mp_number.bitmap.blt(number_cw  *  i, 0, @number_image_1, nsrc_rect)        
  2707.       end
  2708.     end
  2709.  
  2710.   #--------------------------------------------------------------------------
  2711.   # ● Create MP2 Number
  2712.   #--------------------------------------------------------------------------  
  2713.   def create_mp2_number
  2714.       @mp2_number = Sprite.new
  2715.       @mp2_number.bitmap = Bitmap.new(@number_image_2_cw * 4,@number_image_2_ch)
  2716.       @mp2_number.z = 12
  2717.       @mp2_number.x = @base_x + ACTOR_MP2_POSITON[0]
  2718.       @mp2_number.y =  ACTOR_MP2_POSITON[1]
  2719.       refresh_mp2
  2720.   end
  2721.  
  2722.   #--------------------------------------------------------------------------
  2723.   # ● Refresh MP2
  2724.   #--------------------------------------------------------------------------   
  2725.   def refresh_mp2
  2726.       @mp2_number.bitmap.clear
  2727.       number = @actor.mmp.abs.to_s.split(//)
  2728.       number_cw = @number_image_2_cw
  2729.       number_ch = @number_image_2_ch
  2730.       for i in 0..number.size - 1
  2731.           number_abs = number[i].to_i
  2732.           nsrc_rect = Rect.new(number_cw * number_abs, 0, number_cw , number_ch)
  2733.           @mp2_number.bitmap.blt(number_cw  *  i, 0, @number_image_2, nsrc_rect)        
  2734.       end
  2735.   end      
  2736.  
  2737.   #--------------------------------------------------------------------------
  2738.   # ● Create Level
  2739.   #--------------------------------------------------------------------------      
  2740.   def create_level
  2741.       @level = Sprite.new
  2742.       @level.bitmap = Bitmap.new(@number_image_1_cw * 2, @number_image_1_ch)
  2743.       @level.z = 12
  2744.       @level.x = @base_x + ACTOR_LEVEL_POSITON[0]
  2745.       @level.y = ACTOR_LEVEL_POSITON[1]
  2746.       refresh_level
  2747.   end
  2748.  
  2749.   #--------------------------------------------------------------------------
  2750.   # ● Refresh Level
  2751.   #--------------------------------------------------------------------------        
  2752.   def refresh_level
  2753.       @level.bitmap.clear
  2754.       number = @actor.level.abs.to_s.split(//)
  2755.       number_cw = @number_image_1_cw
  2756.       number_ch = @number_image_1_ch
  2757.       for i in 0..number.size - 1
  2758.           number_abs = number[i].to_i
  2759.           nsrc_rect = Rect.new(number_cw * number_abs, number_ch * 2, number_cw , number_ch)
  2760.           @level.bitmap.blt(number_cw  *  i, 0, @number_image_1, nsrc_rect)        
  2761.       end      
  2762.   end  
  2763.  
  2764.   #--------------------------------------------------------------------------
  2765.   # ● Create HP Meter
  2766.   #--------------------------------------------------------------------------      
  2767.   def create_hp_meter
  2768.       @hp_meter = Sprite.new
  2769.       @hp_meter.bitmap = Bitmap.new(@par_meter_cw,@par_meter_ch)
  2770.       @hp_meter.z = 11
  2771.       @hp_meter.x = @base_x + ACTOR_HP_METER_POSITON[0]
  2772.       @hp_meter.y = ACTOR_HP_METER_POSITON[1]
  2773.       update_flow_hp
  2774.   end
  2775.  
  2776.   #--------------------------------------------------------------------------
  2777.   # ● Update Flow HP
  2778.   #--------------------------------------------------------------------------        
  2779.   def update_flow_hp
  2780.       @hp_meter.bitmap.clear
  2781.       par_width = @par_meter_cw * @actor.hp / @actor.mhp
  2782.       m_scr = Rect.new(@par_meter_flow,0, par_width, @par_meter_ch)
  2783.       @hp_meter.bitmap.blt(0,0,@par_meter_image, m_scr)
  2784.   end  
  2785.  
  2786.   #--------------------------------------------------------------------------
  2787.   # ● Create MP Meter
  2788.   #--------------------------------------------------------------------------      
  2789.   def create_mp_meter
  2790.       @mp_meter = Sprite.new
  2791.       @mp_meter.bitmap = Bitmap.new(@par_meter_cw,@par_meter_ch)
  2792.       @mp_meter.z = 11
  2793.       @mp_meter.x = @base_x + ACTOR_MP_METER_POSITON[0]
  2794.       @mp_meter.y = ACTOR_MP_METER_POSITON[1]
  2795.       update_flow_mp
  2796.   end
  2797.  
  2798.   #--------------------------------------------------------------------------
  2799.   # ● Update Flow MP
  2800.   #--------------------------------------------------------------------------        
  2801.   def update_flow_mp
  2802.       @mp_meter.bitmap.clear
  2803.       par_width = @par_meter_cw * @actor.mp / @actor.mmp rescue nil
  2804.       par_width = 0 if par_width == nil
  2805.       m_scr = Rect.new(@par_meter_flow,@par_meter_ch, par_width, @par_meter_ch)
  2806.       @mp_meter.bitmap.blt(0,0,@par_meter_image, m_scr)
  2807.       @par_meter_flow += 3
  2808.       @par_meter_flow = 0 if @par_meter_flow > @par_meter_flow_max
  2809.   end   
  2810.  
  2811.   #--------------------------------------------------------------------------
  2812.   # ● Create_States
  2813.   #--------------------------------------------------------------------------      
  2814.   def create_states
  2815.       refresh_states
  2816.       @status = Sprite.new
  2817.       @status.bitmap = Bitmap.new(24,24)
  2818.       @status.x = @base_x +  ACTOR_STATES_POSITION[0]
  2819.       @status.y = ACTOR_STATES_POSITION[1]
  2820.       @status_flow = -24
  2821.       @states_speed = 50
  2822.       @status.z = 503
  2823.       @old_states = @actor.states
  2824.       refresh_states
  2825.       update_flow_states
  2826.   end      
  2827.  
  2828.   #--------------------------------------------------------------------------
  2829.   # ● Upate Flow_Status
  2830.   #--------------------------------------------------------------------------         
  2831.   def update_flow_states
  2832.       return if @actor.states.size == 0 and !@status.visible
  2833.       @states_speed = 0
  2834.       @status.bitmap.clear
  2835.       src_rect = Rect.new(@status_flow,0, 24,24)
  2836.       @status.bitmap.blt(0,0, @actor_status, src_rect)
  2837.       @status.visible = @actor.states.size == 0 ? false : true
  2838.       @status_flow += 1
  2839.       @status_flow = -24 if @status_flow >= @states_size - 24
  2840.   end   
  2841.  
  2842.   #--------------------------------------------------------------------------
  2843.   # ● Refresh States
  2844.   #--------------------------------------------------------------------------        
  2845.   def refresh_states
  2846.       @old_states = @actor.states
  2847.       if @actor_status != nil
  2848.          @actor_status.dispose
  2849.          @actor_status = nil
  2850.       end
  2851.       @states_size = @actor.states.size > 0 ? (48 * @actor.states.size) : 24
  2852.       @actor_status = Bitmap.new(@states_size,24)
  2853.       index = 0
  2854.       for i in  @actor.states
  2855.          rect = Rect.new(i.icon_index % 16 * 24, i.icon_index / 16 * 24, 24, 24)
  2856.          @actor_status.blt(48 * index , 0, @icon_image, rect)
  2857.          index += 1
  2858.       end
  2859.   end   
  2860.  
  2861.   #--------------------------------------------------------------------------
  2862.   # ● Update
  2863.   #--------------------------------------------------------------------------         
  2864.   def update
  2865.       update_flow_hp
  2866.       update_flow_mp
  2867.       update_flow_states
  2868.   end  
  2869.  
  2870. end
  2871.  
  2872.  
  2873. #==============================================================================
  2874. # ■ Actor Menu Parameter
  2875. #==============================================================================
  2876. class Actor_Menu_Parameter
  2877.  
  2878.   #--------------------------------------------------------------------------
  2879.   # ● Dispose
  2880.   #--------------------------------------------------------------------------                     
  2881.   def dispose
  2882.       dispose_actor_layout_par
  2883.       dispose_name
  2884.       dispose_hp_number
  2885.       dispose_mp_number
  2886.       dispose_hp_meter
  2887.       dispose_mp_meter
  2888.       dispose_states
  2889.       dispose_level
  2890.   end  
  2891.  
  2892.   #--------------------------------------------------------------------------
  2893.   # ● Dispose Actor Layout Par
  2894.   #--------------------------------------------------------------------------                        
  2895.   def dispose_actor_layout_par
  2896.       return if @layout_par == nil
  2897.       @layout_par.dispose
  2898.       @layout_par = nil
  2899.   end   
  2900.  
  2901.   #--------------------------------------------------------------------------
  2902.   # ● Dispose Name
  2903.   #--------------------------------------------------------------------------  
  2904.   def dispose_name
  2905.       return if @actor_name == nil
  2906.       @actor_name.bitmap.dispose
  2907.       @actor_name.dispose
  2908.       @actor_name = nil
  2909.   end
  2910.  
  2911.   #--------------------------------------------------------------------------
  2912.   # ● Dispose HP Number
  2913.   #--------------------------------------------------------------------------      
  2914.   def dispose_hp_number
  2915.       return if @hp_number == nil
  2916.       @hp_number.bitmap.dispose
  2917.       @hp_number.dispose
  2918.       @hp_number = nil
  2919.       @hp2_number.bitmap.dispose
  2920.       @hp2_number.dispose
  2921.       @hp2_number = nil      
  2922.  
  2923.   end   
  2924.  
  2925.   #--------------------------------------------------------------------------
  2926.   # ● Dispose MP Number
  2927.   #--------------------------------------------------------------------------      
  2928.   def dispose_mp_number
  2929.       return if @mp_number == nil
  2930.       @mp_number.bitmap.dispose
  2931.       @mp_number.dispose
  2932.       @mp_number = nil
  2933.       @mp2_number.bitmap.dispose
  2934.       @mp2_number.dispose
  2935.       @mp2_number = nil      
  2936.   end   
  2937.  
  2938.   #--------------------------------------------------------------------------
  2939.   # ● Dispose States
  2940.   #--------------------------------------------------------------------------            
  2941.    def dispose_states
  2942.        return if @status == nil
  2943.        @status.bitmap.dispose
  2944.        @status.dispose
  2945.        if @actor_status != nil
  2946.           @actor_status.dispose
  2947.           @actor_status = nil
  2948.        end   
  2949.    end  
  2950.  
  2951.   #--------------------------------------------------------------------------
  2952.   # ● Dispose MP Meter
  2953.   #--------------------------------------------------------------------------        
  2954.   def dispose_mp_meter
  2955.       return if @mp_meter == nil
  2956.       @mp_meter.bitmap.dispose
  2957.       @mp_meter.dispose
  2958.       @mp_meter = nil
  2959.   end     
  2960.  
  2961.   #--------------------------------------------------------------------------
  2962.   # ● Dispose HP Meter
  2963.   #--------------------------------------------------------------------------        
  2964.   def dispose_hp_meter
  2965.       return if @hp_meter == nil
  2966.       @hp_meter.bitmap.dispose
  2967.       @hp_meter.dispose
  2968.       @hp_meter = nil
  2969.   end
  2970.  
  2971.   #--------------------------------------------------------------------------
  2972.   # ● Dispose Level
  2973.   #--------------------------------------------------------------------------        
  2974.   def dispose_level
  2975.       return if @level == nil
  2976.       @level.bitmap.dispose
  2977.       @level.dispose
  2978.       @level = nil
  2979.   end
  2980.  
  2981. end  
  2982.  
  2983. #==============================================================================
  2984. # ■ Scene_Menu
  2985. #==============================================================================
  2986. class Scene_Menu
  2987.  
  2988.   #--------------------------------------------------------------------------
  2989.   # ● Create Sprites
  2990.   #--------------------------------------------------------------------------         
  2991.   def create_sprites
  2992.       create_menu_background
  2993.       create_layout
  2994.       create_particles
  2995.       create_command
  2996.       create_actor_pictures
  2997.       create_timer_sprite
  2998.       create_gold_number
  2999.       create_location
  3000.       create_actor_parameter
  3001.       create_members
  3002.       create_members_layout
  3003.       update_members_face
  3004.   end
  3005.  
  3006.   #--------------------------------------------------------------------------
  3007.   # ● Create Menu Background
  3008.   #--------------------------------------------------------------------------            
  3009.   def create_menu_background
  3010.       @background = Plane.new
  3011.       @background.bitmap = $game_temp.pre_cache_main_menu[0]
  3012.       @background.z = 0
  3013.       @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  3014.   end  
  3015.  
  3016.   #--------------------------------------------------------------------------
  3017.   # ● Create Menu Background
  3018.   #--------------------------------------------------------------------------              
  3019.   def create_layout
  3020.       @layout = Sprite.new
  3021.       @layout.bitmap = $game_temp.pre_cache_main_menu[1]
  3022.       @layout.z = 3
  3023.   end
  3024.  
  3025.   #--------------------------------------------------------------------------
  3026.   # ● Create Particles
  3027.   #--------------------------------------------------------------------------  
  3028.   def create_particles
  3029.       @particles_sprite =[]
  3030.       for i in 0...NUMBER_OF_PARTICLES
  3031.           @particles_sprite.push(Particles_Menu.new(nil))
  3032.       end
  3033.   end
  3034.  
  3035.   #--------------------------------------------------------------------------
  3036.   # ● Create Command
  3037.   #--------------------------------------------------------------------------   
  3038.   def create_command
  3039.       create_command_window
  3040.       @command_window.visible = false
  3041.       @command_window.x -=544      
  3042.       @command_max = @command_window.list.size
  3043.       @commnad_name = []
  3044.       index = 0
  3045.       for i in @command_window.list
  3046.          @commnad_name.push(i[:name])
  3047.          index += 1
  3048.       end   
  3049.       @command_scroll_max = @command_max > 6 ? 6 : @command_max
  3050.       @command_ny = 0
  3051.       @command_sprites = []
  3052.       index = 0
  3053.       for i in 0...@command_max
  3054.           @command_sprites.push(Command_Menu_Sprite.new(nil, index,@commnad_name[index]) )
  3055.           index += 1
  3056.       end
  3057.   end  
  3058.  
  3059.   #--------------------------------------------------------------------------
  3060.   # ● Create Command Window
  3061.   #--------------------------------------------------------------------------     
  3062.   def create_command_window
  3063.       @command_window = Window_MenuCommand.new
  3064.       @command_window.set_handler(:item,      method(:command_item))
  3065.       @command_window.set_handler(:skill,     method(:command_personal))
  3066.       @command_window.set_handler(:equip,     method(:command_personal))
  3067.       @command_window.set_handler(:status,    method(:command_personal))
  3068.       @command_window.set_handler(:formation, method(:command_formation))
  3069.       @command_window.set_handler(:save,      method(:command_save))
  3070.       @command_window.set_handler(:game_end,  method(:command_game_end))
  3071.       @command_window.set_handler(:cancel,    method(:return_scene))  
  3072.       @command_window.index = $game_temp.menu_index
  3073.    end   
  3074.  
  3075.   #--------------------------------------------------------------------------
  3076.   # ● Create Actor Pictures
  3077.   #--------------------------------------------------------------------------     
  3078.   def create_actor_pictures
  3079.       @actor_pictures = []
  3080.       members_size = $game_party.members.size
  3081.       members_size = $game_party.max_battle_members if members_size >= $game_party.max_battle_members
  3082.       for i in 0...members_size
  3083.          @actor_pictures.push(Actor_Menu_Pictures.new(nil,i,$game_party.members[i].id))
  3084.       end   
  3085.   end
  3086.  
  3087.   #--------------------------------------------------------------------------
  3088.   # ● Create Timer Number
  3089.   #--------------------------------------------------------------------------      
  3090.   def create_timer_sprite
  3091.       update_timer
  3092.       @min_old = @min
  3093.       @timer_image = $game_temp.pre_cache_main_menu[2]
  3094.       @timer_cw = @timer_image.width / 10
  3095.       @timer_ch = @timer_image.height
  3096.       @timer_sprite = Sprite.new
  3097.       @timer_sprite.bitmap = Bitmap.new(@timer_image.width ,@timer_image.height)
  3098.       @timer_sprite.z = 11
  3099.       @timer_sprite.x = TIME_NUMBER_POS[0]
  3100.       @timer_sprite.y = TIME_NUMBER_POS[1]
  3101.       refresh_timer
  3102.   end
  3103.  
  3104.   #--------------------------------------------------------------------------
  3105.   # ● Create Gold Number
  3106.   #--------------------------------------------------------------------------         
  3107.   def create_gold_number
  3108.       @gold = $game_party.gold
  3109.       @gold_image = $game_temp.pre_cache_main_menu[3]
  3110.       @gold_cw = @gold_image.width / 10
  3111.       @gold_ch = @gold_image.height
  3112.       @gold_sprite = Sprite.new
  3113.       @gold_sprite.bitmap = Bitmap.new(@gold_image.width ,@gold_image.height)
  3114.       @gold_sprite.z = 11
  3115.       @gold_sprite.x = GOLD_NUMBER_POS[0]
  3116.       @gold_sprite.y = GOLD_NUMBER_POS[1]
  3117.       refresh_gold
  3118.   end  
  3119.  
  3120.   #--------------------------------------------------------------------------
  3121.   # ● Create Location
  3122.   #--------------------------------------------------------------------------         
  3123.   def create_location
  3124.       @location = Sprite.new
  3125.       @location.bitmap = Bitmap.new(200,40)
  3126.       @location.bitmap.font.name = "Georgia"
  3127.       @location.bitmap.font.size = 20
  3128.       @location.bitmap.font.bold = true
  3129.       @location.bitmap.font.italic = true
  3130.       @location.z = 12
  3131.       @location.x = LOCATION_POS[0]
  3132.       @location.y = LOCATION_POS[1]
  3133.       refresh_location
  3134.   end
  3135.  
  3136.   #--------------------------------------------------------------------------
  3137.   # ● Refresh Location
  3138.   #--------------------------------------------------------------------------            
  3139.   def refresh_location
  3140.       location_name = $game_map.display_name
  3141.       @location.bitmap.clear
  3142.       @location.bitmap.font.color = Color.new(120,120,120,120)
  3143.       @location.bitmap.draw_text(6,4,190,32, location_name.to_s,2)
  3144.       @location.bitmap.font.color = Color.new(255,255,255)
  3145.       @location.bitmap.draw_text(0,0,190,32, location_name.to_s,2)
  3146.   end
  3147.  
  3148.   #--------------------------------------------------------------------------
  3149.   # ● Create Actor Parameter
  3150.   #--------------------------------------------------------------------------              
  3151.   def create_actor_parameter
  3152.       @actor_par = []
  3153.       members_size = $game_party.members.size
  3154.       members_size = $game_party.max_battle_members if members_size >= $game_party.max_battle_members
  3155.       for i in 0...members_size
  3156.           @actor_par.push(Actor_Menu_Parameter.new(i,$game_party.members[i]))
  3157.       end   
  3158.   end
  3159.  
  3160.   #--------------------------------------------------------------------------
  3161.   # ● Create Members
  3162.   #--------------------------------------------------------------------------               
  3163.   def create_members
  3164.       @members_viewport = Viewport.new(MEMBERS_FACE_POSITION[0],MEMBERS_FACE_POSITION[1],400,96)
  3165.       @members_viewport.z = 12
  3166.       @members_viewport.ox = -544
  3167.       @members_slide_max = (MEMBERS_FACE_POSITION[0] - 544)
  3168.       @members = []
  3169.       for i in 0...$game_party.members.size        
  3170.           @members.push(Face_Members_Sprite.new(@members_viewport,i, $game_party.members[i].id))
  3171.       end
  3172.   end
  3173.  
  3174.   #--------------------------------------------------------------------------
  3175.   # ● Create Members Layout
  3176.   #--------------------------------------------------------------------------                  
  3177.   def create_members_layout
  3178.       @members_layout = Members_Arrow_Sprite.new
  3179.   end  
  3180.  
  3181. end
  3182.  
  3183. #==============================================================================
  3184. # ■ Scene_Menu
  3185. #==============================================================================
  3186. class Scene_Menu
  3187.  
  3188.   #--------------------------------------------------------------------------
  3189.   # ● Execute Dispose
  3190.   #--------------------------------------------------------------------------        
  3191.   def execute_dispose
  3192.       Graphics.freeze
  3193.       dispose_background
  3194.       dispose_layout
  3195.       dispose_particles
  3196.       dispose_command_sprites
  3197.       dispose_actor_sprites
  3198.       dispose_actor_parameter
  3199.       dispose_timer_sprite
  3200.       dispose_gold_number
  3201.       dispose_location
  3202.       dispose_members
  3203.   end
  3204.  
  3205.   #--------------------------------------------------------------------------
  3206.   # ● Dispose Background
  3207.   #--------------------------------------------------------------------------  
  3208.   def dispose_background
  3209.       return if @background == nil
  3210.      # @background.bitmap.dispose
  3211.       @background.dispose
  3212.       @background = nil
  3213.   end
  3214.  
  3215.   #--------------------------------------------------------------------------
  3216.   # ● Dispose Layout
  3217.   #--------------------------------------------------------------------------               
  3218.   def dispose_layout
  3219.       return if @layout == nil
  3220.      # @layout.bitmap.dispose
  3221.       @layout.dispose
  3222.       @layout = nil
  3223.   end  
  3224.  
  3225. #--------------------------------------------------------------------------
  3226. # ● Dispose Particles
  3227. #--------------------------------------------------------------------------   
  3228. def dispose_particles
  3229.      return if @particles_sprite == nil
  3230.      @particles_sprite.each {|sprite| sprite.dispose }
  3231. end
  3232.  
  3233.   #--------------------------------------------------------------------------
  3234.   # ● Dispose Command Sprites
  3235.   #--------------------------------------------------------------------------     
  3236.   def dispose_command_sprites
  3237.       return if @command_sprites == nil
  3238.       @command_sprites.each {|sprite| sprite.dispose_command }
  3239.       @command_sprites = nil
  3240.       @command_window.dispose
  3241.   end   
  3242.  
  3243.   #--------------------------------------------------------------------------
  3244.   # ● Dispose Actor Sprites
  3245.   #--------------------------------------------------------------------------     
  3246.   def dispose_actor_sprites
  3247.       return if @actor_pictures == nil
  3248.       @actor_pictures.each {|sprite| sprite.dispose_picture }
  3249.       @actor_pictures = nil
  3250.   end     
  3251.  
  3252.   #--------------------------------------------------------------------------
  3253.   # ● Dispose timer Sprite
  3254.   #--------------------------------------------------------------------------         
  3255.   def dispose_timer_sprite
  3256.       return if @timer_sprite == nil
  3257.       @timer_sprite.dispose
  3258.   end
  3259.  
  3260.   #--------------------------------------------------------------------------
  3261.   # ● Dispose Gold Number
  3262.   #--------------------------------------------------------------------------           
  3263.   def dispose_gold_number
  3264.       return if @gold_image == nil
  3265.       @gold_sprite.dispose
  3266.       @gold_sprite = nil
  3267.   end
  3268.  
  3269.   #--------------------------------------------------------------------------
  3270.   # ● Dispose Location
  3271.   #--------------------------------------------------------------------------            
  3272.   def dispose_location
  3273.       return if @location == nil
  3274.       @location.bitmap.dispose
  3275.       @location.dispose
  3276.       @location = nil
  3277.   end   
  3278.  
  3279.   #--------------------------------------------------------------------------
  3280.   # ● Dispose Actor Parameter
  3281.   #--------------------------------------------------------------------------               
  3282.   def dispose_actor_parameter
  3283.       return if @actor_par == nil
  3284.       @actor_par.each {|sprite| sprite.dispose }
  3285.       @actor_par = nil
  3286.   end
  3287.  
  3288.   #--------------------------------------------------------------------------
  3289.   # ● Dispose Members
  3290.   #--------------------------------------------------------------------------                  
  3291.   def dispose_members
  3292.       return if @members == nil
  3293.       @members.each {|sprite| sprite.dispose }
  3294.       @members = nil
  3295.       @members_layout.dispose
  3296.       @members_viewport.dispose
  3297.   end  
  3298.  
  3299. end
  3300.  
  3301. #==============================================================================
  3302. # ■ Scene_Menu
  3303. #==============================================================================
  3304. class Scene_Menu
  3305.  
  3306.   #--------------------------------------------------------------------------
  3307.   # ● Update Sprites
  3308.   #--------------------------------------------------------------------------         
  3309.   def update_sprites   
  3310.       update_background
  3311.       update_particles
  3312.       update_command_sprites
  3313.       update_actor_parameter
  3314.       update_actor_sprites
  3315.       update_members_face
  3316.       refresh_timer if @min_old != @min
  3317.       refresh_gold if @gold != $game_party.gold      
  3318.   end
  3319.  
  3320.   #--------------------------------------------------------------------------
  3321.   # ● Update Background
  3322.   #--------------------------------------------------------------------------              
  3323.   def update_background
  3324.       return if @background == nil
  3325.       @background.ox += @background_scroll[0]
  3326.       @background.oy += @background_scroll[1]
  3327.   end   
  3328.  
  3329.   #--------------------------------------------------------------------------
  3330.   # ● Update Particles
  3331.   #--------------------------------------------------------------------------  
  3332.   def update_particles
  3333.       return if @particles_sprite == nil
  3334.       @particles_sprite.each {|sprite| sprite.update }
  3335.   end
  3336.  
  3337.   #--------------------------------------------------------------------------
  3338.   # ● Update Command Sprites
  3339.   #--------------------------------------------------------------------------     
  3340.   def update_command_sprites
  3341.       return if @command_window == nil
  3342.       visible = @phase == 0 ? true : false
  3343.       @command_sprites.each {|sprite| sprite.update_command(@command_window.index,visible) }
  3344.   end     
  3345.  
  3346.   #--------------------------------------------------------------------------
  3347.   # ● Refresh Number
  3348.   #--------------------------------------------------------------------------  
  3349.   def refresh_timer
  3350.       @min_old = @min
  3351.       @timer_sprite.bitmap.clear
  3352.       draw_number(@timer_cw * 1,0,0) if @hour < 10              
  3353.       draw_number(@timer_cw * 2,0,@hour)
  3354.       draw_number(@timer_cw * 4,0,0) if @min < 10            
  3355.       draw_number(@timer_cw * 5,0,@min)
  3356.   end  
  3357.  
  3358.   #--------------------------------------------------------------------------
  3359.   # ● Draw Number
  3360.   #--------------------------------------------------------------------------  
  3361.   def draw_number(x,y,value)
  3362.       @number_text = value.abs.to_s.split(//)
  3363.       plus_x = -@timer_cw * @number_text.size
  3364.       for r in [email]0..@number_text.size[/email] - 1
  3365.          @number_abs = @number_text[r].to_i
  3366.          nsrc_rect = Rect.new(@timer_cw * @number_abs, 0, @timer_cw, @timer_ch)
  3367.          @timer_sprite.bitmap.blt(plus_x + x + (@timer_cw  *  r), y, @timer_image, nsrc_rect)        
  3368.       end     
  3369.   end     
  3370.  
  3371.   #--------------------------------------------------------------------------
  3372.   # ● update
  3373.   #--------------------------------------------------------------------------  
  3374.   def update_timer
  3375.       time = $game_system.playtime
  3376.       @hour = time / 60 / 60
  3377.       @min = time / 60 % 60
  3378.       @sec = time % 60
  3379.   end      
  3380.  
  3381.   #--------------------------------------------------------------------------
  3382.   # ● Refresh Gold
  3383.   #--------------------------------------------------------------------------           
  3384.   def refresh_gold
  3385.       @gold = $game_party.gold
  3386.       @gold_sprite.bitmap.clear
  3387.       value_text = @gold.abs.to_s.split(//)
  3388.       index = 0
  3389.       for i in 0..value_text.size - 1
  3390.           value_abs = value_text[i].to_i
  3391.           nsrc_rect = Rect.new(@gold_cw * value_abs, 0, @gold_cw, @gold_ch)
  3392.           @gold_sprite.bitmap.blt(@gold_cw *  i, 0, @gold_image, nsrc_rect)
  3393.           index += 1
  3394.       end
  3395.       ey = (index * @gold_cw)  
  3396.       @gold_sprite.x = GOLD_NUMBER_POS[0] -  ey
  3397.   end
  3398.  
  3399.   #--------------------------------------------------------------------------
  3400.   # ● Update Actor Parameter
  3401.   #--------------------------------------------------------------------------               
  3402.   def update_actor_parameter
  3403.       return if @actor_par == nil
  3404.       @actor_par.each {|sprite| sprite.update }
  3405.   end
  3406.  
  3407.   #--------------------------------------------------------------------------
  3408.   # ● Update Actor Sprites
  3409.   #--------------------------------------------------------------------------     
  3410.   def update_actor_sprites
  3411.       return if @actor_pictures == nil
  3412.       @actor_pictures.each {|sprite| sprite.update_picture }
  3413.   end     
  3414.  
  3415.   #--------------------------------------------------------------------------
  3416.   # ● Update Members Face
  3417.   #--------------------------------------------------------------------------                  
  3418.   def update_members_face
  3419.       return if @members == nil or @members == 0
  3420.       if @members_index > 4
  3421.          ny = (5 * 64)
  3422.          else
  3423.          ny = 64 * @members_index
  3424.       end
  3425.       @members.each {|sprite| sprite.update_command(@members_index, ny) }
  3426.       @members_layout.update
  3427.       if @members_windows_active
  3428.          if @members_viewport.ox < 0
  3429.             @members_viewport.ox += 25
  3430.          end
  3431.        else   
  3432.          if @members_viewport.ox > -544
  3433.             @members_viewport.ox -= 25
  3434.           end         
  3435.       end
  3436.       @members_layout.nx(@members_viewport.ox)
  3437.   end  
  3438.  
  3439. end
  3440.  
  3441. #==============================================================================
  3442. # ■ Scene_Menu
  3443. #==============================================================================
  3444. class Scene_Menu
  3445.  
  3446.   #--------------------------------------------------------------------------
  3447.   # ● Update
  3448.   #--------------------------------------------------------------------------      
  3449.   def update
  3450.       update_timer
  3451.       update_sprites
  3452.       update_command
  3453.       @members_windows_active = @phase == 100 ? true : false
  3454.   end
  3455.  
  3456. end
  3457.  
  3458. #==============================================================================
  3459. # ■ Scene_Menu
  3460. #==============================================================================
  3461. class Scene_Menu
  3462.  
  3463.   #--------------------------------------------------------------------------
  3464.   # ● Update Command
  3465.   #--------------------------------------------------------------------------      
  3466.   def update_command
  3467.       case @phase
  3468.         when 0;       update_main_command
  3469.         when 100;      update_select_members            
  3470.      end   
  3471.   end
  3472.  
  3473.   #--------------------------------------------------------------------------
  3474.   # ● Update Main Command
  3475.   #--------------------------------------------------------------------------        
  3476.   def update_main_command
  3477.       if Input.trigger?(:UP) or Input.trigger?(:LEFT)
  3478.          move_command_index(-1)
  3479.       elsif Input.trigger?(:DOWN) or Input.trigger?(:RIGHT)
  3480.          move_command_index(1)
  3481.       elsif Input.trigger?(:C)
  3482.          execute_select
  3483.       elsif Input.trigger?(:B)
  3484.          return_to_map
  3485.       end  
  3486.   end
  3487.  
  3488.   #--------------------------------------------------------------------------
  3489.   # ● Update Main Command
  3490.   #--------------------------------------------------------------------------   
  3491.   def move_command_index(value)
  3492.       Sound.play_cursor
  3493.       @command_window.index += value
  3494.       @command_window.index = 0 if @command_window.index >= @command_max
  3495.       @command_window.index = (@command_max - 1) if @command_window.index < 0
  3496.   end   
  3497.  
  3498.   #--------------------------------------------------------------------------
  3499.   # ● Execute Select
  3500.   #--------------------------------------------------------------------------     
  3501.   def execute_select
  3502.       @phase = @command_window.index
  3503.       $game_temp.menu_index = @phase
  3504.       Sound.play_ok
  3505.       $game_temp.pre_symbol = @command_window.current_symbol
  3506.       @command_window.call_handler(@command_window.current_symbol)
  3507.   end
  3508.  
  3509.   #--------------------------------------------------------------------------
  3510.   # ● Update Select Members
  3511.   #--------------------------------------------------------------------------        
  3512.   def update_select_members  
  3513.       if $game_party.members.size == 0
  3514.          execute_cancel
  3515.          return
  3516.       end  
  3517.       if Input.trigger?(:LEFT)
  3518.          move_members_index(-1)
  3519.       elsif Input.trigger?(:RIGHT)
  3520.          move_members_index(1)
  3521.       elsif Input.trigger?(:C)
  3522.          execute_select_members
  3523.       elsif Input.trigger?(:B)
  3524.          execute_cancel
  3525.       end   
  3526.   end  
  3527.  
  3528.   #--------------------------------------------------------------------------
  3529.   # ● Execute Cancel
  3530.   #--------------------------------------------------------------------------         
  3531.   def execute_cancel
  3532.       Sound.play_cancel
  3533.       @phase = 0
  3534.       @members_index = 0
  3535.   end
  3536.  
  3537.   #--------------------------------------------------------------------------
  3538.   # ● Move Members Index
  3539.   #--------------------------------------------------------------------------         
  3540.   def move_members_index(value)
  3541.       Sound.play_cursor
  3542.       @members_index += value
  3543.       @members_index = 0 if @members_index >= $game_party.members.size
  3544.       @members_index = ($game_party.members.size - 1) if @members_index < 0
  3545.   end
  3546.  
  3547.   #--------------------------------------------------------------------------
  3548.   # ● Command Formation
  3549.   #--------------------------------------------------------------------------
  3550.   def command_formation
  3551.       SceneManager.call(Scene_Party)
  3552.   end  
  3553.  
  3554.   #--------------------------------------------------------------------------
  3555.   # ● Can Access Scene
  3556.   #--------------------------------------------------------------------------              
  3557.   def can_access_scene?
  3558.       if $game_party.members.size == 0
  3559.          #Sound.play_buzzer   
  3560.          execute_cancel
  3561.          return false
  3562.       end   
  3563.       return true
  3564.   end
  3565.  
  3566.   #--------------------------------------------------------------------------
  3567.   # ● Execute Select Members
  3568.   #--------------------------------------------------------------------------     
  3569.   def execute_select_members
  3570.       @phase = @command_window.index
  3571.       $game_temp.menu_index = @phase
  3572.       Sound.play_ok
  3573.       on_personal_ok
  3574.   end  
  3575.  
  3576.   #--------------------------------------------------------------------------
  3577.   # ● ON Personal OK
  3578.   #--------------------------------------------------------------------------            
  3579.   alias mog_monogatari_on_personal_ok on_personal_ok
  3580.   def on_personal_ok
  3581.       $game_temp.actor_menu_temp =  $game_party.members[@members_index]
  3582.       $game_party.menu_actor = $game_party.members[@members_index]
  3583.       mog_monogatari_on_personal_ok
  3584.   end   
  3585.  
  3586.   #--------------------------------------------------------------------------
  3587.   # ● Return To Map
  3588.   #--------------------------------------------------------------------------              
  3589.   def return_to_map
  3590.       $game_temp.menu_index = 0
  3591.       Sound.play_cancel
  3592.       SceneManager.return
  3593.   end  
  3594.  
  3595.   #--------------------------------------------------------------------------
  3596.   # ● Command Personal
  3597.   #--------------------------------------------------------------------------
  3598.   def command_personal
  3599.       @phase = 100
  3600.   end
  3601.  
  3602. end
  3603.  
  3604.  
  3605. =begin
  3606. #==============================================================================
  3607. # ■ Game_Temp
  3608. #==============================================================================
  3609. class Game_Temp
  3610.  
  3611.   #--------------------------------------------------------------------------
  3612.   # ● Execute Pre Cache Item Menu
  3613.   #--------------------------------------------------------------------------   
  3614.   def execute_pre_cache_item_menu
  3615.       @pre_cache_item_menu = []
  3616.       @pre_cache_item_menu.push(Cache.menu_item("Background"))
  3617.       @pre_cache_item_menu.push(Cache.menu_item("Layout"))
  3618.   end   
  3619.     
  3620. end
  3621.  
  3622. #==============================================================================
  3623. # ■ Scene_Menu
  3624. #==============================================================================
  3625. class Scene_Item
  3626.   include MOG_MENU_ITEM
  3627.   include MOG_MENU_BASE
  3628.  
  3629.   #--------------------------------------------------------------------------
  3630.   # ● Main
  3631.   #--------------------------------------------------------------------------        
  3632.   def main
  3633.       execute_setup
  3634.       execute_loop
  3635.       execute_dispose
  3636.   end  
  3637.  
  3638.   #--------------------------------------------------------------------------
  3639.   # ● Execute Setup
  3640.   #--------------------------------------------------------------------------        
  3641.   def execute_setup
  3642.       @phase = 0
  3643.       @command_index = 0
  3644.       @actor = $game_party.members[0]
  3645.       @wait_time = 0
  3646.       create_sprites
  3647.   end
  3648.  
  3649.   #--------------------------------------------------------------------------
  3650.   # ● Execute Lopp
  3651.   #--------------------------------------------------------------------------        
  3652.   def execute_loop
  3653.       Graphics.transition(10)
  3654.       loop do
  3655.          Input.update
  3656.          update
  3657.          Graphics.update
  3658.          break if SceneManager.scene != self
  3659.       end
  3660.   end  
  3661.  
  3662. end
  3663.  
  3664. #==============================================================================
  3665. # ■ Window_ItemList Z
  3666. #==============================================================================
  3667. class Window_ItemList_Z < Window_Selectable
  3668.  
  3669.   #--------------------------------------------------------------------------
  3670.   # ● Initialize
  3671.   #--------------------------------------------------------------------------
  3672.   def initialize(x, y, width, height)
  3673.       super
  3674.       @category = :none
  3675.       @data = []
  3676.   end
  3677.  
  3678.   #--------------------------------------------------------------------------
  3679.   # ● Category
  3680.   #--------------------------------------------------------------------------
  3681.   def category=(category)
  3682.       return if @category == category
  3683.       @category = category
  3684.       self.oy = 0
  3685.   end
  3686.  
  3687.   #--------------------------------------------------------------------------
  3688.   # ● Col Max
  3689.   #--------------------------------------------------------------------------
  3690.   def col_max
  3691.       return 1
  3692.   end
  3693.   #--------------------------------------------------------------------------
  3694.   # ● Item Max
  3695.   #--------------------------------------------------------------------------
  3696.   def item_max
  3697.       @data ? @data.size : 1
  3698.   end
  3699.   #--------------------------------------------------------------------------
  3700.   # ● Item
  3701.   #--------------------------------------------------------------------------
  3702.   def item
  3703.       @data && index >= 0 ? @data[index] : nil
  3704.   end
  3705.  
  3706.   #--------------------------------------------------------------------------
  3707.   # ● Current Item Enabled?
  3708.   #--------------------------------------------------------------------------
  3709.   def current_item_enabled?
  3710.       enable?(@data[index])
  3711.   end
  3712.  
  3713.   #--------------------------------------------------------------------------
  3714.   # ● Include?
  3715.   #--------------------------------------------------------------------------
  3716.   def include?(item)
  3717.       case @category
  3718.       when :item
  3719.            item.is_a?(RPG::Item) && !item.key_item?
  3720.       when :weapon
  3721.            item.is_a?(RPG::Weapon)
  3722.       when :armor
  3723.            item.is_a?(RPG::Armor)
  3724.       when :key_item
  3725.            item.is_a?(RPG::Item) && item.key_item?
  3726.       else
  3727.            false
  3728.       end
  3729.   end
  3730.  
  3731.   #--------------------------------------------------------------------------
  3732.   # ● Enable?
  3733.   #--------------------------------------------------------------------------
  3734.   def enable?(item)
  3735.       $game_party.usable?(item)
  3736.   end
  3737.  
  3738.   #--------------------------------------------------------------------------
  3739.   # ● Make Item List
  3740.   #--------------------------------------------------------------------------
  3741.   def make_item_list
  3742.       @data = $game_party.all_items.select {|item| include?(item) }
  3743.       @data.push(nil) if include?(nil)
  3744.   end
  3745.  
  3746.   #--------------------------------------------------------------------------
  3747.   # ● Select Last
  3748.   #--------------------------------------------------------------------------
  3749.   def select_last
  3750.       select(@data.index($game_party.last_item.object) || 0)
  3751.   end
  3752.  
  3753.   #--------------------------------------------------------------------------
  3754.   # ● Draw Item
  3755.   #--------------------------------------------------------------------------
  3756.   def draw_item(index)
  3757.       item = @data[index]
  3758.       if item
  3759.          rect = item_rect(index)
  3760.          rect.width -= 4
  3761.          draw_item_name(item, rect.x, rect.y, enable?(item))
  3762.          draw_item_number(rect, item)
  3763.       end
  3764.   end
  3765.  
  3766.   #--------------------------------------------------------------------------
  3767.   # ● Draw Item Number
  3768.   #--------------------------------------------------------------------------
  3769.   def draw_item_number(rect, item)
  3770.       draw_text(rect, sprintf(":%2d", $game_party.item_number(item)), 2)
  3771.   end
  3772.  
  3773.   #--------------------------------------------------------------------------
  3774.   # ● Update Help
  3775.   #--------------------------------------------------------------------------
  3776.   def update_help
  3777.       @help_window.set_item(item)
  3778.   end
  3779.  
  3780.   #--------------------------------------------------------------------------
  3781.   # ● Refresh
  3782.   #--------------------------------------------------------------------------
  3783.   def refresh
  3784.       make_item_list
  3785.       create_contents
  3786.       draw_all_items
  3787.   end
  3788.     
  3789. end
  3790.  
  3791. #==============================================================================
  3792. # ■ Window_ItemList Z
  3793. #==============================================================================
  3794. class Window_ItemList_Item_1 < Window_Selectable
  3795.  
  3796.   #--------------------------------------------------------------------------
  3797.   # ● Initialize
  3798.   #--------------------------------------------------------------------------
  3799.   def initialize(x, y, width, height)
  3800.       super
  3801.       @category = :none
  3802.       @data = []
  3803.   end
  3804.  
  3805.   #--------------------------------------------------------------------------
  3806.   # ● Category
  3807.   #--------------------------------------------------------------------------
  3808.   def category=(category)
  3809.       return if @category == category
  3810.       @category = category
  3811.       self.oy = 0
  3812.   end
  3813.  
  3814.   #--------------------------------------------------------------------------
  3815.   # ● Col Max
  3816.   #--------------------------------------------------------------------------
  3817.   def col_max
  3818.       return 1
  3819.   end
  3820.   #--------------------------------------------------------------------------
  3821.   # ● Item Max
  3822.   #--------------------------------------------------------------------------
  3823.   def item_max
  3824.       @data ? @data.size : 1
  3825.   end
  3826.   #--------------------------------------------------------------------------
  3827.   # ● Item
  3828.   #--------------------------------------------------------------------------
  3829.   def item
  3830.       @data && index >= 0 ? @data[index] : nil
  3831.   end
  3832.  
  3833.   #--------------------------------------------------------------------------
  3834.   # ● Current Item Enabled?
  3835.   #--------------------------------------------------------------------------
  3836.   def current_item_enabled?
  3837.       enable?(@data[index])
  3838.   end
  3839.  
  3840.   #--------------------------------------------------------------------------
  3841.   # ● Include?
  3842.   #--------------------------------------------------------------------------
  3843.   def include?(item)
  3844.       case @category
  3845.       when :item   ;   item.is_a?(RPG::Item) && !item.key_item?
  3846.       else
  3847.            false
  3848.       end
  3849.   end
  3850.  
  3851.   #--------------------------------------------------------------------------
  3852.   # ● Enable?
  3853.   #--------------------------------------------------------------------------
  3854.   def enable?(item)
  3855.       $game_party.usable?(item)
  3856.   end
  3857.  
  3858.   #--------------------------------------------------------------------------
  3859.   # ● Make Item List
  3860.   #--------------------------------------------------------------------------
  3861.   def make_item_list
  3862.       @data = $game_party.all_items.select {|item| include?(item) }
  3863.       @data.push(nil) if include?(nil)
  3864.   end
  3865.  
  3866.   #--------------------------------------------------------------------------
  3867.   # ● Select Last
  3868.   #--------------------------------------------------------------------------
  3869.   def select_last
  3870.       select(@data.index($game_party.last_item.object) || 0)
  3871.   end
  3872.  
  3873.   #--------------------------------------------------------------------------
  3874.   # ● Draw Item
  3875.   #--------------------------------------------------------------------------
  3876.   def draw_item(index)
  3877.       item = @data[index]
  3878.       if item
  3879.          rect = item_rect(index)
  3880.          rect.width -= 4
  3881.          draw_item_number(rect, item)
  3882.       end
  3883.   end
  3884.  
  3885.   #--------------------------------------------------------------------------
  3886.   # ● Draw Item Number
  3887.   #--------------------------------------------------------------------------
  3888.   def draw_item_number(rect, item)
  3889.       draw_text(rect, sprintf(":%2d", $game_party.item_number(item)), 2)
  3890.   end  
  3891.     
  3892.   #--------------------------------------------------------------------------
  3893.   # ● Update Help
  3894.   #--------------------------------------------------------------------------
  3895.   def update_help
  3896.       @help_window.set_item(item)
  3897.   end
  3898.  
  3899.   #--------------------------------------------------------------------------
  3900.   # ● Refresh
  3901.   #--------------------------------------------------------------------------
  3902.   def refresh
  3903.       make_item_list
  3904.       create_contents
  3905.       draw_all_items
  3906.    end
  3907.     
  3908. end
  3909.  
  3910. #==============================================================================
  3911. # ■ Window_ItemList Z
  3912. #==============================================================================
  3913. class Window_ItemList_Item_2 < Window_Selectable
  3914.  
  3915.   #--------------------------------------------------------------------------
  3916.   # ● Initialize
  3917.   #--------------------------------------------------------------------------
  3918.   def initialize(x, y, width, height)
  3919.       super
  3920.       @category = :none
  3921.       @data = []
  3922.   end
  3923.  
  3924.   #--------------------------------------------------------------------------
  3925.   # ● Category
  3926.   #--------------------------------------------------------------------------
  3927.   def category=(category)
  3928.       return if @category == category
  3929.       @category = category
  3930.       self.oy = 0
  3931.   end
  3932.  
  3933.   #--------------------------------------------------------------------------
  3934.   # ● Col Max
  3935.   #--------------------------------------------------------------------------
  3936.   def col_max
  3937.       return 1
  3938.   end
  3939.   #--------------------------------------------------------------------------
  3940.   # ● Item Max
  3941.   #--------------------------------------------------------------------------
  3942.   def item_max
  3943.       @data ? @data.size : 1
  3944.   end
  3945.   #--------------------------------------------------------------------------
  3946.   # ● Item
  3947.   #--------------------------------------------------------------------------
  3948.   def item
  3949.       @data && index >= 0 ? @data[index] : nil
  3950.   end
  3951.  
  3952.   #--------------------------------------------------------------------------
  3953.   # ● Current Item Enabled?
  3954.   #--------------------------------------------------------------------------
  3955.   def current_item_enabled?
  3956.       enable?(@data[index])
  3957.   end
  3958.  
  3959.   #--------------------------------------------------------------------------
  3960.   # ● Include?
  3961.   #--------------------------------------------------------------------------
  3962.   def include?(item)
  3963.       case @category
  3964.       when :item   ;   item.is_a?(RPG::Item) && !item.key_item?
  3965.       else
  3966.            false
  3967.       end
  3968.   end
  3969.  
  3970.   #--------------------------------------------------------------------------
  3971.   # ● Enable?
  3972.   #--------------------------------------------------------------------------
  3973.   def enable?(item)
  3974.       $game_party.usable?(item)
  3975.   end
  3976.  
  3977.   #--------------------------------------------------------------------------
  3978.   # ● Make Item List
  3979.   #--------------------------------------------------------------------------
  3980.   def make_item_list
  3981.       @data = $game_party.all_items.select {|item| include?(item) }
  3982.       @data.push(nil) if include?(nil)
  3983.   end
  3984.  
  3985.   #--------------------------------------------------------------------------
  3986.   # ● Select Last
  3987.   #--------------------------------------------------------------------------
  3988.   def select_last
  3989.       select(@data.index($game_party.last_item.object) || 0)
  3990.   end
  3991.  
  3992.   #--------------------------------------------------------------------------
  3993.   # ● Draw Item
  3994.   #--------------------------------------------------------------------------
  3995.   def draw_item(index)
  3996.       item = @data[index]
  3997.       if item
  3998.          rect = item_rect(index)
  3999.          rect.width -= 4
  4000.          draw_item_name(item, rect.x, rect.y, enable?(item))
  4001.         # draw_item_number(rect, item)
  4002.       end
  4003.   end
  4004.  
  4005.   #--------------------------------------------------------------------------
  4006.   # ● Draw Item Number
  4007.   #--------------------------------------------------------------------------
  4008.   def draw_item_number(rect, item)
  4009.       draw_text(rect, sprintf(":%2d", $game_party.item_number(item)), 2)
  4010.   end
  4011.  
  4012.   #--------------------------------------------------------------------------
  4013.   # ● Update Help
  4014.   #--------------------------------------------------------------------------
  4015.   def update_help      
  4016.   end
  4017.  
  4018.   #--------------------------------------------------------------------------
  4019.   # ● Refresh
  4020.   #--------------------------------------------------------------------------
  4021.   def refresh
  4022.       make_item_list
  4023.       create_contents
  4024.       draw_all_items
  4025.   end
  4026.     
  4027. end
  4028.  
  4029. #==============================================================================
  4030. # ■ Scene_Item
  4031. #==============================================================================
  4032. class Scene_Item
  4033.  
  4034.   #--------------------------------------------------------------------------
  4035.   # ● Create Sprites
  4036.   #--------------------------------------------------------------------------         
  4037.   def create_sprites
  4038.       create_menu_background
  4039.       create_layout
  4040.       create_particles
  4041.       create_command
  4042.       create_button
  4043.       create_help_window
  4044.       create_item_window
  4045.       create_weapon_window
  4046.       create_armor_window
  4047.       create_key_window
  4048.       create_actor_window
  4049.       set_initial_visible
  4050.   end
  4051.     
  4052.   #--------------------------------------------------------------------------
  4053.   # ● Create Actor Window
  4054.   #--------------------------------------------------------------------------
  4055.   def create_actor_window
  4056.       @actor_window = Members_Windows_Status.new
  4057.       @actor_window.set_handler(:ok,     method(:on_actor_ok))
  4058.       @actor_window.set_handler(:cancel, method(:on_actor_cancel))
  4059.       @actor_window.opacity = 0      
  4060.       @actor_window.x = -10
  4061.       @actor_window.y = 36
  4062.       @actor_window_slide_range = [@actor_window.x, [email]-@actor_window.width[/email]]
  4063.       @actor_window.x = @actor_window_slide_range[1]
  4064.       @actor_window.visible = true
  4065.       @actor_window_index_old = @actor_window.index
  4066.       create_members_window
  4067.       create_actor_status
  4068.       update_active_window
  4069.       update_command_sprites
  4070.   end
  4071.  
  4072.   #--------------------------------------------------------------------------
  4073.   # ● Create Members Window
  4074.   #--------------------------------------------------------------------------  
  4075.   def create_members_window
  4076.       index = 0
  4077.       @members_status = []      
  4078.       for actor in $game_party.members
  4079.           @members_status.push(Members_Menu.new(actor,index))
  4080.           index += 1
  4081.       end   
  4082.   end
  4083.     
  4084.   #--------------------------------------------------------------------------
  4085.   # ● Create Actor Status
  4086.   #--------------------------------------------------------------------------  
  4087.   def create_actor_status
  4088.       @actor_status = Actor_Menu_Status.new(@actor)
  4089.   end  
  4090.     
  4091.   #--------------------------------------------------------------------------
  4092.   # ● Create Item Window
  4093.   #--------------------------------------------------------------------------
  4094.   def create_item_window
  4095.       @item_window = Window_ItemList_Item_1.new(162,92,225,270)  
  4096.       @item_window.help_window = @help_window
  4097.       @item_window.set_handler(:ok,     method(:on_item_ok))
  4098.       @item_window.set_handler(:cancel, method(:on_item_cancel))
  4099.       @item_window.category = :item
  4100.       @item_window.active = true
  4101.       @item_window.refresh
  4102.       @item_window.index = 0
  4103.       @item_window.opacity = 0      
  4104.       @item_window_2 = Window_ItemList_Item_2.new(162,92,225,270)  
  4105.       @item_window_2.help_window = @help_window
  4106.       @item_window_2.set_handler(:ok,     method(:on_item_ok))
  4107.       @item_window_2.set_handler(:cancel, method(:on_item_cancel))
  4108.       @item_window_2.category = :item
  4109.       @item_window_2.active = true
  4110.       @item_window_2.refresh
  4111.       @item_window_2.index = 0
  4112.       @item_window_2.opacity = 0      
  4113.   end  
  4114.  
  4115.   #--------------------------------------------------------------------------
  4116.   # ● Create Weapon Window
  4117.   #--------------------------------------------------------------------------
  4118.   def create_weapon_window
  4119.       @weapon_window = Window_ItemList_Z.new(162,92,225,270)  
  4120.       @weapon_window.help_window = @help_window
  4121.       @weapon_window.set_handler(:ok,     method(:on_item_ok))
  4122.       @weapon_window.set_handler(:cancel, method(:on_item_cancel))
  4123.       @weapon_window.category = :weapon
  4124.       @weapon_window.active = true
  4125.       @weapon_window.refresh
  4126.       @weapon_window.index = 0
  4127.       @weapon_window.opacity = 0
  4128.   end  
  4129.  
  4130.   #--------------------------------------------------------------------------
  4131.   # ● Create Armor Window
  4132.   #--------------------------------------------------------------------------
  4133.   def create_armor_window
  4134.       @armor_window = Window_ItemList_Z.new(162,92,225,270)  
  4135.       @armor_window.help_window = @help_window
  4136.       @armor_window.set_handler(:ok,     method(:on_item_ok))
  4137.       @armor_window.set_handler(:cancel, method(:on_item_cancel))
  4138.       @armor_window.category = :armor
  4139.       @armor_window.active = true
  4140.       @armor_window.refresh
  4141.       @armor_window.index = 0
  4142.       @armor_window.opacity = 0
  4143.   end   
  4144.  
  4145.   #--------------------------------------------------------------------------
  4146.   # ● Create Key Window
  4147.   #--------------------------------------------------------------------------
  4148.   def create_key_window
  4149.       @key_window = Window_ItemList_Z.new(162,92,225,270)  
  4150.       @key_window.help_window = @help_window
  4151.       @key_window.set_handler(:ok,     method(:on_item_ok))
  4152.       @key_window.set_handler(:cancel, method(:on_item_cancel))
  4153.       @key_window.category = :key_item
  4154.       @key_window.active = true
  4155.       @key_window.refresh
  4156.       @key_window.index = 0
  4157.       @key_window.opacity = 0
  4158.   end   
  4159.  
  4160.   #--------------------------------------------------------------------------
  4161.   # ● Create Help Window
  4162.   #--------------------------------------------------------------------------              
  4163.   def create_help_window
  4164.       @help_window = Window_Help.new
  4165.       @help_window.x = 0
  4166.       @help_window.y = Graphics.height - @help_window.height
  4167.       @help_window.opacity = 0
  4168.   end  
  4169.  
  4170.   #--------------------------------------------------------------------------
  4171.   # ● Create Menu Background
  4172.   #--------------------------------------------------------------------------            
  4173.   def create_menu_background
  4174.       @background = Plane.new
  4175.       @background.bitmap = $game_temp.pre_cache_item_menu[0]
  4176.       @background.z = 0
  4177.       @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  4178.   end  
  4179.  
  4180.   #--------------------------------------------------------------------------
  4181.   # ● Create Layout
  4182.   #--------------------------------------------------------------------------              
  4183.   def create_layout
  4184.       @layout = Sprite.new
  4185.       @layout.bitmap = $game_temp.pre_cache_item_menu[1]
  4186.       @layout.z = 3
  4187.   end
  4188.  
  4189.   #--------------------------------------------------------------------------
  4190.   # ● Create Particles
  4191.   #--------------------------------------------------------------------------  
  4192.   def create_particles
  4193.       @particles_sprite =[]
  4194.       for i in 0...NUMBER_OF_PARTICLES
  4195.           @particles_sprite.push(Particles_Menu.new(nil))
  4196.       end
  4197.   end
  4198.  
  4199.   #--------------------------------------------------------------------------
  4200.   # ● Create Command
  4201.   #--------------------------------------------------------------------------   
  4202.   def create_command
  4203.       @command_sprites = []
  4204.       index = 0      
  4205.       for i in 0...4
  4206.           @command_sprites.push(Layout_Window_Sprite.new(nil, index) )
  4207.           index += 1
  4208.       end
  4209.   end   
  4210.  
  4211.   #--------------------------------------------------------------------------
  4212.   # ● Create Button
  4213.   #--------------------------------------------------------------------------   
  4214.   def create_button
  4215.       @button_sprites = []
  4216.       index = 0      
  4217.       for i in 0...4
  4218.           @button_sprites.push(Item_Button_Sprite.new(nil, index) )
  4219.           index += 1
  4220.       end
  4221.   end      
  4222.  
  4223.   #--------------------------------------------------------------------------
  4224.   # ● Set Initial Visible
  4225.   #--------------------------------------------------------------------------            
  4226.   def set_initial_visible
  4227.       @item_window.visible = false
  4228.       @item_window_2.visible = false
  4229.       @weapon_window.visible = false
  4230.       @armor_window.visible = false
  4231.       @key_window.visible = false  
  4232.   end  
  4233.  
  4234. end
  4235.  
  4236. #==============================================================================
  4237. # ■ Layout Window Sprite
  4238. #==============================================================================
  4239. class Layout_Window_Sprite < Sprite
  4240.   include MOG_MENU_ITEM
  4241.   attr_accessor :index
  4242.   attr_accessor :position
  4243.  
  4244.  #--------------------------------------------------------------------------
  4245.  # ● Initialize
  4246.  #--------------------------------------------------------------------------                  
  4247.   def initialize(viewport = nil,index)
  4248.       super(viewport)
  4249.       @index = index
  4250.       self.bitmap = Cache.menu_item("Item_Window" + @index.to_s)
  4251.       self.z = 10
  4252.       @org_pos = [COMMAND_POSITION[0],COMMAND_POSITION[1]]
  4253.       @slide_max = @org_pos[0] + 24
  4254.       @center = (544 - self.bitmap.width) - (544 / 2) + (self.bitmap.width / 2)
  4255.       @left = -self.bitmap.width
  4256.       @right = 544
  4257.       @position = 0
  4258.       @direction = 0
  4259.       @org_pos = [@left ,COMMAND_POSITION[1]]
  4260.       self.x = @org_pos[0]
  4261.       self.y = @org_pos[1]
  4262.       self.visible = false if @index > 0
  4263.   end  
  4264.  
  4265.  #--------------------------------------------------------------------------
  4266.  # ● Dispose
  4267.  #--------------------------------------------------------------------------                     
  4268.   def dispose_sprite
  4269.       self.bitmap.dispose
  4270.   end  
  4271.  
  4272.  #--------------------------------------------------------------------------
  4273.  # ● Update
  4274.  #--------------------------------------------------------------------------                     
  4275.   def update_command(index)
  4276.       slide_speed = 30
  4277.       if @index == index
  4278.          if self.x < @center
  4279.             self.x += slide_speed
  4280.             self.x = @center if self.x >= @center
  4281.          elsif self.x > @center
  4282.             self.x -= slide_speed
  4283.             self.x = @center if self.x <= @center
  4284.          end
  4285.        else   
  4286.           if @direction == -1
  4287.              self.x -= slide_speed if self.x > @left
  4288.           else
  4289.              self.x += slide_speed if self.x < @right
  4290.           end   
  4291.       end  
  4292.   end   
  4293.  
  4294.  #--------------------------------------------------------------------------
  4295.  # ● New P
  4296.  #--------------------------------------------------------------------------  
  4297.   def newp(index,direction)
  4298.       now_command = index
  4299.       if direction == -1
  4300.          pre_command = index + 1
  4301.          pre_command = 0 if pre_command > 3
  4302.       else   
  4303.          pre_command = index - 1
  4304.          pre_command = 3 if pre_command < 0
  4305.         end
  4306.       if index == @index
  4307.          self.visible = true
  4308.          self.x = @right if direction == -1
  4309.          self.x = @left if direction == 1
  4310.       elsif pre_command ==  @index
  4311.          self.visible = true
  4312.       else   
  4313.          self.visible = false
  4314.       end   
  4315.       @direction = direction
  4316.   end
  4317.  
  4318. end
  4319.  
  4320. #==============================================================================
  4321. # ■ Item Button Sprite
  4322. #==============================================================================
  4323. class Item_Button_Sprite < Sprite
  4324.   include MOG_MENU_ITEM
  4325.   attr_accessor :index
  4326.  
  4327.  #--------------------------------------------------------------------------
  4328.  # ● Initialize
  4329.  #--------------------------------------------------------------------------                  
  4330.   def initialize(viewport = nil,index)
  4331.       super(viewport)
  4332.       @index = index
  4333.       self.bitmap = Cache.menu_item("Button" + @index.to_s)
  4334.       self.z = 12
  4335.       self.ox = self.bitmap.width / 2
  4336.       self.oy = self.bitmap.height / 2
  4337.       @org_pos = [(BUTTON_SPACE * @index) + BUTTON_POSITION[0],BUTTON_POSITION[1]]
  4338.       @slide_max = @org_pos[1] + 24
  4339.       @next_pos = [@org_pos[0],@org_pos[1]]
  4340.       self.x = @org_pos[0]
  4341.       self.y = @org_pos[1] - 128 - (128 * @index)
  4342.       @zoom_duration = [0,0,false]
  4343.       @active = false
  4344.   end  
  4345.  
  4346.  #--------------------------------------------------------------------------
  4347.  # ● Dispose
  4348.  #--------------------------------------------------------------------------                     
  4349.   def dispose_sprite
  4350.       self.bitmap.dispose
  4351.   end  
  4352.  
  4353.  #--------------------------------------------------------------------------
  4354.  # ● Update
  4355.  #--------------------------------------------------------------------------                     
  4356.   def update_command(index)
  4357.       if @index == index
  4358.         # self.y += 2
  4359.         # self.y = @slide_max if self.y > @slide_max
  4360.          @next_pos[1] =@slide_max
  4361.          self.opacity += 15
  4362.          @active = true
  4363.       else
  4364.         # self.y -= 2
  4365.         # self.y = @org_pos[1] if self.y < @org_pos[1]
  4366.          @next_pos[1] = @org_pos[1]
  4367.         self.opacity -= 15 if self.opacity > 160
  4368.          @active = false
  4369.       end
  4370.       update_slide(1,self.y,@next_pos[1])
  4371.       update_zoom
  4372.   end   
  4373.  
  4374.  
  4375.  #--------------------------------------------------------------------------
  4376.  # ● Update Slide
  4377.  #--------------------------------------------------------------------------                       
  4378.   def update_slide(type,cp,np)
  4379.       sp = 3 + ((cp - np).abs / 10)
  4380.       if cp > np
  4381.          cp -= sp
  4382.          cp = np if cp < np
  4383.       elsif cp < np
  4384.          cp += sp
  4385.          cp = np if cp > np
  4386.       end     
  4387.       self.x = cp if type == 0
  4388.       self.y = cp if type == 1
  4389.   end  
  4390.  
  4391.  #--------------------------------------------------------------------------
  4392.  # ● Update Zoom
  4393.  #--------------------------------------------------------------------------                       
  4394.   def update_zoom
  4395.       if @active
  4396.          if !@zoom_duration[2]
  4397.             update_zoom_in
  4398.             @zoom_duration = [0,0,true] if self.zoom_x == 1.00  
  4399.          else  
  4400.             update_zoom_effect
  4401.          end
  4402.       else
  4403.          @zoom_duration[2] = false   
  4404.          update_zoom_in
  4405.       end  
  4406.   end   
  4407.  
  4408.  #--------------------------------------------------------------------------
  4409.  # ● Update Zoom Out
  4410.  #--------------------------------------------------------------------------                        
  4411.   def update_zoom_out
  4412.       return if self.zoom_x == 1.00
  4413.       self.zoom_x += 0.03
  4414.       self.zoom_y += 0.03
  4415.       if self.zoom_x >= 1.00
  4416.             self.zoom_x = 1.00
  4417.             self.zoom_y = 1.00
  4418.       end   
  4419.    end   
  4420.  
  4421.  #--------------------------------------------------------------------------
  4422.  # ● Update Zoom In
  4423.  #--------------------------------------------------------------------------                           
  4424.   def update_zoom_in
  4425.       return if self.zoom_x == 1.00
  4426.       self.zoom_x -= 0.03
  4427.       self.zoom_y -= 0.03
  4428.       if self.zoom_x <= 1.00
  4429.          self.zoom_x = 1.00
  4430.          self.zoom_y = 1.00
  4431.       end   
  4432.   end      
  4433.           
  4434.  #--------------------------------------------------------------------------
  4435.  # ● Update Zoom_effect
  4436.  #--------------------------------------------------------------------------                        
  4437.  def update_zoom_effect
  4438.      @zoom_duration[0] += 1
  4439.      return if @zoom_duration[0] < 1
  4440.      @zoom_duration[0] = 0
  4441.      @zoom_duration[1] += 1
  4442.      case @zoom_duration[1]
  4443.           when 1..30
  4444.              self.zoom_x += 0.005
  4445.              self.zoom_y += 0.005                 
  4446.           when 31..60
  4447.              self.zoom_x -= 0.005
  4448.              self.zoom_y -= 0.005           
  4449.           when 61..999  
  4450.           @zoom_duration[1] = 0
  4451.           self.zoom_x = 1.00
  4452.           self.zoom_y = 1.00
  4453.      end
  4454.  end      
  4455.  
  4456. end
  4457.  
  4458. #==============================================================================
  4459. # ■ Scene_Item
  4460. #==============================================================================
  4461. class Scene_Item
  4462.  
  4463.   #--------------------------------------------------------------------------
  4464.   # ● Execute Dispose
  4465.   #--------------------------------------------------------------------------        
  4466.   def execute_dispose
  4467.       Graphics.freeze
  4468.       dispose_background
  4469.       dispose_layout
  4470.       dispose_particles
  4471.       dispose_command_sprites
  4472.       dispose_button_sprites
  4473.       dispose_windows
  4474.       dispose_members_status
  4475.   end
  4476.  
  4477.   #--------------------------------------------------------------------------
  4478.   # ● Dispose Background
  4479.   #--------------------------------------------------------------------------  
  4480.   def dispose_background
  4481.       return if @background == nil
  4482.       @background.dispose
  4483.       @background = nil
  4484.   end
  4485.     
  4486.   #--------------------------------------------------------------------------
  4487.   # ● Dispose Layout
  4488.   #--------------------------------------------------------------------------               
  4489.   def dispose_layout
  4490.       return if @layout == nil
  4491.       @layout.dispose
  4492.       @layout = nil
  4493.   end  
  4494.  
  4495.  #--------------------------------------------------------------------------
  4496.  # ● Dispose Particles
  4497.  #--------------------------------------------------------------------------   
  4498.  def dispose_particles
  4499.      return if @particles_sprite == nil
  4500.      @particles_sprite.each {|sprite| sprite.dispose }
  4501.  end
  4502.    
  4503.   #--------------------------------------------------------------------------
  4504.   # ● Dispose Command Sprites
  4505.   #--------------------------------------------------------------------------     
  4506.   def dispose_command_sprites
  4507.       return if @command_sprites == nil
  4508.       @command_sprites.each {|sprite| sprite.dispose_sprite }
  4509.       @command_sprites = nil
  4510.   end   
  4511.  
  4512.   #--------------------------------------------------------------------------
  4513.   # ● Dispose Button Sprites
  4514.   #--------------------------------------------------------------------------     
  4515.   def dispose_button_sprites
  4516.       return if @button_sprites == nil
  4517.       @button_sprites.each {|sprite| sprite.dispose_sprite }
  4518.       @button_sprites = nil
  4519.   end   
  4520.  
  4521.   #--------------------------------------------------------------------------
  4522.   # ● Dispose Members Status
  4523.   #--------------------------------------------------------------------------            
  4524.   def dispose_members_status
  4525.       return if @members_status == nil
  4526.       @members_status.each {|sprite| sprite.dispose }
  4527.   end  
  4528.  
  4529.   #--------------------------------------------------------------------------
  4530.   # ● Dispose Winndows
  4531.   #--------------------------------------------------------------------------         
  4532.   def dispose_windows
  4533.       return if @item_window == nil
  4534.       @item_window.dispose
  4535.       @item_window_2.dispose
  4536.       @weapon_window.dispose
  4537.       @armor_window.dispose
  4538.       @key_window.dispose
  4539.       @actor_window.dispose
  4540.       @actor_status.dispose
  4541.       @help_window.dispose
  4542.   end  
  4543.  
  4544. end
  4545.  
  4546. #==============================================================================
  4547. # ■ Scene_Item
  4548. #==============================================================================
  4549. class Scene_Item
  4550.  
  4551.   #--------------------------------------------------------------------------
  4552.   # ● Update Sprites
  4553.   #--------------------------------------------------------------------------         
  4554.   def update_sprites   
  4555.       update_background
  4556.       update_particles
  4557.       update_command_sprites
  4558.       update_button_sprites
  4559.       update_windows
  4560.       update_members_status
  4561.   end
  4562.  
  4563.   #--------------------------------------------------------------------------
  4564.   # ● Update Members Status
  4565.   #--------------------------------------------------------------------------            
  4566.   def update_members_status
  4567.       @members_status.each {|sprite| sprite.update(@actor_window.active,@actor_window.index) }
  4568.   end
  4569.       
  4570.   #--------------------------------------------------------------------------
  4571.   # ● Update Background
  4572.   #--------------------------------------------------------------------------              
  4573.   def update_background
  4574.       return if @background == nil
  4575.       @background.ox += @background_scroll[0]
  4576.       @background.oy += @background_scroll[1]
  4577.   end   
  4578.  
  4579.   #--------------------------------------------------------------------------
  4580.   # ● Update Particles
  4581.   #--------------------------------------------------------------------------  
  4582.   def update_particles
  4583.       return if @particles_sprite == nil
  4584.       @particles_sprite.each {|sprite| sprite.update }
  4585.   end
  4586.  
  4587.   #--------------------------------------------------------------------------
  4588.   # ● Update Command Sprites
  4589.   #--------------------------------------------------------------------------     
  4590.   def update_command_sprites
  4591.       return if @command_sprites == nil
  4592.       for i in @command_sprites
  4593.           i.update_command(@command_index)
  4594.           if i.index == 0
  4595.              @item_window.x = i.x
  4596.              @item_window.visible = i.visible
  4597.              @item_window_2.x = i.x
  4598.              @item_window_2.visible = i.visible            
  4599.            elsif i.index == 1
  4600.              @weapon_window.x = i.x
  4601.              @weapon_window.visible = i.visible            
  4602.            elsif i.index == 2
  4603.              @armor_window.x = i.x
  4604.              @armor_window.visible = i.visible
  4605.            elsif i.index == 3
  4606.              @key_window.x = i.x
  4607.              @key_window.visible = i.visible               
  4608.          end
  4609.       end      
  4610.   end   
  4611.  
  4612.   #--------------------------------------------------------------------------
  4613.   # ● Update Button Sprites
  4614.   #--------------------------------------------------------------------------     
  4615.   def update_button_sprites
  4616.       return if @button_sprites == nil
  4617.       @button_sprites.each {|sprite| sprite.update_command(@command_index) }
  4618.   end     
  4619.  
  4620.   #--------------------------------------------------------------------------
  4621.   # ● Update Winndow
  4622.   #--------------------------------------------------------------------------      
  4623.   def update_windows
  4624.       return if @item_window == nil
  4625.       if @command_index == 0
  4626.          @item_window.update
  4627.          @item_window_2.index = @item_window.index
  4628.       elsif @command_index == 1   
  4629.          @weapon_window.update   
  4630.       elsif @command_index == 2   
  4631.          @armor_window.update
  4632.       elsif @command_index == 3   
  4633.          @key_window.update         
  4634.       end   
  4635.       @actor_window.update
  4636.       update_actor_window_slide
  4637.       update_actor_window2_slide
  4638.   end
  4639.  
  4640.   #--------------------------------------------------------------------------
  4641.   # ● Update Actor Window Slide
  4642.   #--------------------------------------------------------------------------  
  4643.   def update_actor_window_slide
  4644.       if @actor_window.active
  4645.          if @actor_window.x < @actor_window_slide_range[0]
  4646.             @actor_window.x += 15
  4647.             @actor_window.contents_opacity += 23
  4648.             if @actor_window.x >= @actor_window_slide_range[0]
  4649.                @actor_window.x = @actor_window_slide_range[0]
  4650.                @actor_window.contents_opacity = 255
  4651.             end  
  4652.          end  
  4653.       else         
  4654.          if @actor_window.x >= @actor_window_slide_range[1]
  4655.             @actor_window.x -= 15
  4656.             @actor_window.contents_opacity -= 3
  4657.             if @actor_window.x <= @actor_window_slide_range[1]
  4658.                @actor_window.x = @actor_window_slide_range[1]
  4659.                @actor_window.contents_opacity = 0
  4660.             end         
  4661.          end
  4662.       end
  4663.   end   
  4664.  
  4665.   #--------------------------------------------------------------------------
  4666.   # ● Update Actor Window Slide
  4667.   #--------------------------------------------------------------------------  
  4668.   def update_actor_window2_slide
  4669.       @actor_status.update(@actor_window.active,@actor)
  4670.   end   
  4671.  
  4672. end
  4673.  
  4674. #==============================================================================
  4675. # ■ Scene_Item
  4676. #==============================================================================
  4677. class Scene_Item
  4678.  
  4679.   #--------------------------------------------------------------------------
  4680.   # ● Update
  4681.   #--------------------------------------------------------------------------      
  4682.   def update
  4683.       update_command   
  4684.       update_sprites
  4685.   end
  4686.     
  4687. end
  4688.  
  4689. #==============================================================================
  4690. # ■ Scene_Item
  4691. #==============================================================================
  4692. class Scene_Item
  4693.  
  4694.   #--------------------------------------------------------------------------
  4695.   # ● Update Command
  4696.   #--------------------------------------------------------------------------      
  4697.   def update_command
  4698.       if @actor_window.active
  4699.          update_target_select         
  4700.       else
  4701.          update_main_command
  4702.          update_active_window
  4703.       end  
  4704.   end
  4705.  
  4706.   #--------------------------------------------------------------------------
  4707.   # ● Update Active Window
  4708.   #--------------------------------------------------------------------------        
  4709.   def update_active_window
  4710.       @item_window_2.active = false
  4711.       if @command_index == 0
  4712.          @item_window.active = true
  4713.          @weapon_window.active = false
  4714.          @armor_window.active = false
  4715.          @key_window.active = false
  4716.       elsif @command_index == 1           
  4717.          @item_window.active = false
  4718.          @weapon_window.active = true
  4719.          @armor_window.active = false
  4720.          @key_window.active = false
  4721.       elsif @command_index == 2   
  4722.          @item_window.active = false
  4723.          @weapon_window.active = false
  4724.          @armor_window.active = true
  4725.          @key_window.active = false
  4726.       elsif @command_index == 3
  4727.          @item_window.active = false
  4728.          @weapon_window.active = false
  4729.          @armor_window.active = false
  4730.          @key_window.active = true
  4731.       end         
  4732.   end
  4733.     
  4734.   #--------------------------------------------------------------------------
  4735.   # ● Update Main Command
  4736.   #--------------------------------------------------------------------------        
  4737.   def update_main_command
  4738.       @wait_time -= 1 if @wait_time > 0
  4739.       if Input.trigger?(:LEFT)
  4740.          move_command_index(-1)
  4741.       elsif Input.trigger?(:RIGHT)
  4742.          move_command_index(1)
  4743.       elsif Input.trigger?(:B)
  4744.          return_scene
  4745.       end  
  4746.   end
  4747.  
  4748.   #--------------------------------------------------------------------------
  4749.   # ● Return Scene
  4750.   #--------------------------------------------------------------------------         
  4751.   def return_scene
  4752.       Sound.play_cancel
  4753.       SceneManager.return
  4754.   end
  4755.  
  4756.   #--------------------------------------------------------------------------
  4757.   # ● Cancel_Selection
  4758.   #--------------------------------------------------------------------------         
  4759.   def cancel_selection
  4760.       Sound.play_cancel
  4761.       @phase = 0
  4762.   end
  4763.  
  4764.   #--------------------------------------------------------------------------
  4765.   # ● Update Main Command
  4766.   #--------------------------------------------------------------------------   
  4767.   def move_command_index(value)
  4768.       return if @wait_time > 0
  4769.       @wait_time = 7
  4770.       pre_index = @command_index
  4771.       @command_index += value
  4772.       @command_index = 0 if @command_index > 3
  4773.       @command_index = 3 if @command_index < 0
  4774.       for i in @command_sprites
  4775.           i.newp(@command_index,value)
  4776.       end         
  4777.       Sound.play_cursor
  4778.   end      
  4779.  
  4780.   #--------------------------------------------------------------------------
  4781.   # ● ON Category OK
  4782.   #--------------------------------------------------------------------------
  4783.   def on_category_ok
  4784.       if @command_index == 0
  4785.          @item_window.activate
  4786.          @item_window.select_last
  4787.       elsif @command_index == 1   
  4788.          @weapon_window.activate
  4789.          @weapon_window.select_last         
  4790.       elsif @command_index == 2   
  4791.          @armor_window.activate
  4792.          @armor_window.select_last
  4793.       elsif @command_index == 3   
  4794.          @key_window.activate
  4795.          @key_window.select_last
  4796.       end
  4797.       refresh_actor_status  
  4798.   end
  4799.  
  4800.   #--------------------------------------------------------------------------
  4801.   # ● ON Item OK
  4802.   #--------------------------------------------------------------------------
  4803.   def on_item_ok
  4804.       $game_party.last_item.object = item
  4805.       determine_item
  4806.   end
  4807.  
  4808.   #--------------------------------------------------------------------------
  4809.   # ● ON Item Cancel
  4810.   #--------------------------------------------------------------------------
  4811.   def on_item_cancel
  4812.      @item_window.unselect
  4813.   end
  4814.  
  4815.   #--------------------------------------------------------------------------
  4816.   # ● Play SE For Item
  4817.   #--------------------------------------------------------------------------
  4818.   def play_se_for_item
  4819.       Sound.play_use_item
  4820.   end  
  4821.  
  4822.   #--------------------------------------------------------------------------
  4823.   # ● Item
  4824.   #--------------------------------------------------------------------------
  4825.   def item
  4826.       if @command_index == 0
  4827.          @item_window.item
  4828.       elsif @command_index == 1   
  4829.          @weapon_window.item   
  4830.       elsif @command_index == 2   
  4831.          @armor_window.item
  4832.       elsif @command_index == 3   
  4833.          @key_window.item         
  4834.       end        
  4835.   end
  4836.  
  4837.   #--------------------------------------------------------------------------
  4838.   # ● User
  4839.   #--------------------------------------------------------------------------
  4840.   def user
  4841.       $game_party.movable_members.max_by {|member| member.pha }
  4842.   end
  4843.  
  4844.   #--------------------------------------------------------------------------
  4845.   # ● Cursor Left
  4846.   #--------------------------------------------------------------------------
  4847.   def cursor_left?
  4848.       @item_window.index % 2 == 0
  4849.   end
  4850.  
  4851.   #--------------------------------------------------------------------------
  4852.   # ● Show Sub Window
  4853.   #--------------------------------------------------------------------------
  4854.   def show_sub_window(window)
  4855.     window.show.activate
  4856.   end
  4857.  
  4858.   #--------------------------------------------------------------------------
  4859.   # ● Hide Sub Window
  4860.   #--------------------------------------------------------------------------
  4861.   def hide_sub_window(window)
  4862.       window.deactivate
  4863.       activate_item_window
  4864.   end
  4865.  
  4866.   #--------------------------------------------------------------------------
  4867.   # ● ON Actor OK
  4868.   #--------------------------------------------------------------------------
  4869.   def on_actor_ok
  4870.       if item_usable?
  4871.          use_item
  4872.          refresh_window
  4873.       else
  4874.         Sound.play_buzzer
  4875.       end
  4876.   end
  4877.  
  4878.   #--------------------------------------------------------------------------
  4879.   # ● Refresh Window
  4880.   #--------------------------------------------------------------------------  
  4881.   def refresh_window
  4882.       if @command_index == 0
  4883.          old_item = @item_window.item
  4884.          @item_window.refresh
  4885. #         set_actor_for_members_menu
  4886.          if @item_window.item  == nil
  4887.             @item_window.index -= 1
  4888.             @item_window.index = 0 if @item_window.index < 0
  4889.             @item_window.update
  4890.          end
  4891.          if old_item != @item_window.item
  4892.             on_actor_cancel
  4893.             cancel_selection
  4894.             @item_window_2.refresh
  4895.             @item_window.update_help
  4896.          end
  4897.       elsif @command_index == 1   
  4898.          @weapon_window.refresh
  4899.       elsif @command_index == 2   
  4900.          @armor_window.refresh
  4901.       elsif @command_index == 3   
  4902.          @key_window.refresh      
  4903.       end
  4904.   end
  4905.     
  4906.   #--------------------------------------------------------------------------
  4907.   # ● Set Actor for Members Menu
  4908.   #--------------------------------------------------------------------------   
  4909.   def set_actor_for_members_menu
  4910.       index = 0
  4911.       for actor in $game_party.members
  4912.           @members_status[index].set_actor(actor)
  4913.           index += 1
  4914.       end  
  4915.   end
  4916.          
  4917.   #--------------------------------------------------------------------------
  4918.   # ● ON Actor Cancel
  4919.   #--------------------------------------------------------------------------
  4920.   def on_actor_cancel
  4921.       hide_sub_window(@actor_window)
  4922.   end
  4923.  
  4924.   #--------------------------------------------------------------------------
  4925.   # ● Determine Item
  4926.   #--------------------------------------------------------------------------
  4927.   def determine_item
  4928.       if item.for_friend?
  4929.          show_sub_window(@actor_window)
  4930.          @actor_window.select_for_item(item)
  4931.          $game_temp.item_scope = @item_window.item.scope rescue nil
  4932.       else
  4933.          use_item
  4934.          activate_item_window
  4935.       end
  4936.   end
  4937.  
  4938.   #--------------------------------------------------------------------------
  4939.   # ● Activate Item Window
  4940.   #--------------------------------------------------------------------------
  4941.   def activate_item_window
  4942.       if @command_index == 0
  4943.          @item_window.refresh
  4944.          @item_window.activate
  4945.       elsif @command_index == 1   
  4946.          @weapon_window.refresh
  4947.          @weapon_window.activate
  4948.       elsif @command_index == 2   
  4949.          @armor_window.refresh
  4950.          @armor_window.activate
  4951.       elsif @command_index == 3   
  4952.          @key_window.refresh     
  4953.          @key_window.activate
  4954.       end   
  4955.   end
  4956.  
  4957.   #--------------------------------------------------------------------------
  4958.   # ● Item Target Actors
  4959.   #--------------------------------------------------------------------------
  4960.   def item_target_actors
  4961.       if !item.for_friend?
  4962.         []
  4963.       elsif item.for_all?
  4964.         $game_party.members
  4965.       else
  4966.         [$game_party.members[@actor_window.index]]
  4967.       end
  4968.   end
  4969.  
  4970.   #--------------------------------------------------------------------------
  4971.   # ● Item Usable?
  4972.   #--------------------------------------------------------------------------
  4973.   def item_usable?
  4974.       user.usable?(item) && item_effects_valid?
  4975.   end
  4976.  
  4977.   #--------------------------------------------------------------------------
  4978.   # ● Item Effects Valid?
  4979.   #--------------------------------------------------------------------------
  4980.   def item_effects_valid?
  4981.       item_target_actors.any? do |target|
  4982.            target.item_test(user, item)
  4983.       end
  4984.   end
  4985.  
  4986.   #--------------------------------------------------------------------------
  4987.   # ● Use Item to Actors
  4988.   #--------------------------------------------------------------------------
  4989.   def use_item_to_actors
  4990.       item_target_actors.each do |target|
  4991.         item.repeats.times { target.item_apply(user, item) }
  4992.       end
  4993.   end
  4994.  
  4995.   #--------------------------------------------------------------------------
  4996.   # ● Use Item
  4997.   #--------------------------------------------------------------------------
  4998.   def use_item
  4999.       play_se_for_item
  5000.       user.use_item(item)
  5001.       use_item_to_actors
  5002.       check_common_event
  5003.       check_gameover
  5004.       @actor_window.refresh
  5005.   end
  5006.  
  5007.   #--------------------------------------------------------------------------
  5008.   # ● Check Common Event
  5009.   #--------------------------------------------------------------------------
  5010.   def check_common_event
  5011.       SceneManager.goto(Scene_Map) if $game_temp.common_event_reserved?
  5012.   end
  5013.  
  5014.   #--------------------------------------------------------------------------
  5015.   # ● Update Target Select
  5016.   #--------------------------------------------------------------------------  
  5017.   def update_target_select
  5018.       @actor = $game_party.members[@actor_window.index]
  5019.       if Input.trigger?(:B)         
  5020.          cancel_selection
  5021.       end      
  5022.   end  
  5023.  
  5024. end
  5025.  
  5026. =end
  5027. #==============================================================================
  5028. # ■ Game_Temp
  5029. #==============================================================================
  5030. class Game_Temp
  5031.  
  5032.   #--------------------------------------------------------------------------
  5033.   # ● Execute Pre Cache Skill Menu
  5034.   #--------------------------------------------------------------------------   
  5035.   def execute_pre_cache_skill_menu
  5036.       @pre_cache_skill_menu = []
  5037.       @pre_cache_skill_menu.push(Cache.menu_skill("Background"))
  5038.       @pre_cache_skill_menu.push(Cache.menu_skill("Layout"))
  5039.       @pre_cache_skill_menu.push(Cache.menu_skill("Type_Layout"))
  5040.       @pre_cache_skill_menu.push(Cache.menu_skill("List_Layout"))
  5041.       @pre_cache_skill_menu.push(Cache.menu_skill("Actor_Layout"))
  5042.  
  5043.   end   
  5044.  
  5045. end
  5046.  
  5047. #==============================================================================
  5048. # ■ Scene_Skill
  5049. #==============================================================================
  5050. class Scene_Skill
  5051.   include MOG_MENU_SKILL
  5052.   include MOG_MENU_BASE
  5053.  
  5054.   #--------------------------------------------------------------------------
  5055.   # ● Main
  5056.   #--------------------------------------------------------------------------        
  5057.   def main
  5058.       execute_setup
  5059.       execute_loop
  5060.       execute_dispose
  5061.   end  
  5062.  
  5063.   #--------------------------------------------------------------------------
  5064.   # ● Execute Setup
  5065.   #--------------------------------------------------------------------------        
  5066.   def execute_setup
  5067.       @actor = $game_temp.actor_menu_temp
  5068.       @index_max = (@actor.added_skill_types.size - 1)
  5069.       @index_max = 0 if @index_max < 0      
  5070.       @phase = 0
  5071.       @press_time = 0
  5072.       @press_lag = 0
  5073.       @scene_active = @actor.added_skill_types.size > 0 ? true : false
  5074.       create_sprites
  5075.   end
  5076.  
  5077.   #--------------------------------------------------------------------------
  5078.   # ● Execute Lopp
  5079.   #--------------------------------------------------------------------------        
  5080.   def execute_loop
  5081.       Graphics.transition(10)
  5082.       loop do
  5083.          Input.update
  5084.          update
  5085.          Graphics.update
  5086.          break if SceneManager.scene != self
  5087.       end
  5088.   end
  5089.  
  5090. end
  5091.  
  5092. #==============================================================================
  5093. # ■ Actor Skill Status
  5094. #==============================================================================
  5095. class Actor_Skill_Status
  5096.   include MOG_ACTOR_SKILL_STATUS
  5097.  
  5098.   #--------------------------------------------------------------------------
  5099.   # ● Initialize
  5100.   #--------------------------------------------------------------------------
  5101.   def initialize(actor)
  5102.       @actor = actor
  5103.       set_old_parameter
  5104.       create_sprites
  5105.   end
  5106.  
  5107.   #--------------------------------------------------------------------------
  5108.   # ● Create Sprites
  5109.   #--------------------------------------------------------------------------   
  5110.   def create_sprites
  5111.       @meter_image = $game_temp.pre_cache_actor_menu[6]
  5112.       @meter_cw = @meter_image.width
  5113.       @meter_ch = @meter_image.height / 2   
  5114.       @parameter_number = $game_temp.pre_cache_actor_menu[2]
  5115.       @parameter_cw = @parameter_number.width / 10
  5116.       @parameter_ch = @parameter_number.height
  5117.       @opac = 0
  5118.       create_layout
  5119.       create_parameter
  5120.       create_face
  5121.       create_name
  5122.       create_hp_meter
  5123.       create_mp_meter
  5124.       create_states
  5125.       set_position(0,[email]-@layout.bitmap.height[/email] - 48)
  5126.   end
  5127.  
  5128.   #--------------------------------------------------------------------------
  5129.   # ● Set Old Parameter
  5130.   #--------------------------------------------------------------------------  
  5131.   def set_old_parameter
  5132.       @par = [] if @par == nil
  5133.       @par.clear
  5134.       @par = [@actor.hp,@actor.mhp,@actor.mp,@actor.mmp,@actor.level]
  5135.   end   
  5136.  
  5137.   #--------------------------------------------------------------------------
  5138.   # ● Dispose
  5139.   #--------------------------------------------------------------------------  
  5140.   def dispose
  5141.       dispose_layout
  5142.       dispose_parameter
  5143.       dispose_face
  5144.       dispose_name
  5145.       dispose_hp_meter
  5146.       dispose_mp_meter
  5147.       dispose_states
  5148.   end
  5149.  
  5150.   #--------------------------------------------------------------------------
  5151.   # ● Dispose Layout
  5152.   #--------------------------------------------------------------------------   
  5153.   def dispose_layout
  5154.       @layout.dispose
  5155.   end
  5156.  
  5157.   #--------------------------------------------------------------------------
  5158.   # ● Dispose Parameter
  5159.   #--------------------------------------------------------------------------      
  5160.   def dispose_parameter
  5161.       @parameter.bitmap.dispose
  5162.       @parameter.dispose
  5163.   end  
  5164.  
  5165.   #--------------------------------------------------------------------------
  5166.   # ● Dispose Face
  5167.   #--------------------------------------------------------------------------   
  5168.   def dispose_face
  5169.       @face.bitmap.dispose if @face.bitmap != nil
  5170.       @face.dispose
  5171.   end   
  5172.  
  5173.   #--------------------------------------------------------------------------
  5174.   # ● Dispose HP Meter
  5175.   #--------------------------------------------------------------------------      
  5176.   def dispose_hp_meter
  5177.       @hp_meter.bitmap.dispose
  5178.       @hp_meter.dispose
  5179.   end
  5180.  
  5181.   #--------------------------------------------------------------------------
  5182.   # ● Dispose MP Meter
  5183.   #--------------------------------------------------------------------------      
  5184.   def dispose_mp_meter
  5185.       @mp_meter.bitmap.dispose
  5186.       @mp_meter.dispose
  5187.   end  
  5188.  
  5189.   #--------------------------------------------------------------------------
  5190.   # ● Dispose Name
  5191.   #--------------------------------------------------------------------------        
  5192.   def dispose_name
  5193.       @name.bitmap.dispose
  5194.       @name.dispose
  5195.   end  
  5196.  
  5197.   #--------------------------------------------------------------------------
  5198.   # ● Dispose States
  5199.   #--------------------------------------------------------------------------            
  5200.    def dispose_states
  5201.        return if @status == nil
  5202.        @status.bitmap.dispose
  5203.        @status.dispose
  5204.        if @actor_status != nil
  5205.           @actor_status.dispose
  5206.           @actor_status = nil
  5207.        end   
  5208.     end   
  5209.  
  5210.   #--------------------------------------------------------------------------
  5211.   # ● Create Layout
  5212.   #--------------------------------------------------------------------------
  5213.   def create_layout
  5214.       @layout = Sprite.new
  5215.       @layout.bitmap = $game_temp.pre_cache_skill_menu[4]
  5216.       @org_pos = [LAYOUT_POSITION[0],LAYOUT_POSITION[1]]
  5217.       @layout.x = @org_pos[0]
  5218.       @layout.y = @org_pos[1]
  5219.       @layout.z = 10
  5220.       #@layout.opacity = 0
  5221.   end
  5222.  
  5223.   #--------------------------------------------------------------------------
  5224.   # ● Create Parameter
  5225.   #--------------------------------------------------------------------------
  5226.   def create_parameter
  5227.       @parameter = Sprite.new
  5228.       @parameter.bitmap = Bitmap.new(@layout.bitmap.width,@layout.bitmap.height)
  5229.       @org_pos_par = [@org_pos[0] + PAR_POSITION[0],
  5230.                       @org_pos[1] + PAR_POSITION[1]]
  5231.       @parameter.x = @org_pos_par[0]
  5232.       @parameter.y = @org_pos_par[1]
  5233.       @parameter.z = 12
  5234. #      @parameter.opacity = 0
  5235.       refresh_parameter
  5236.   end  
  5237.  
  5238.   #--------------------------------------------------------------------------
  5239.   # ● Create HP Meter
  5240.   #--------------------------------------------------------------------------  
  5241.   def create_hp_meter
  5242.       @hp_meter_old = [-1,-1]
  5243.       @hp_meter = Sprite.new
  5244.       @hp_meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
  5245.       @org_pos_hp = [@org_pos[0] + HP_METER_POSITION[0],
  5246.                      @org_pos[1] + HP_METER_POSITION[1]]      
  5247.       @hp_meter.x = @org_pos_hp[0]
  5248.       @hp_meter.y = @org_pos_hp[1]
  5249.       @hp_meter.z = 11
  5250.   end  
  5251.  
  5252.   #--------------------------------------------------------------------------
  5253.   # ● Refresh HP Meter
  5254.   #--------------------------------------------------------------------------   
  5255.   def refresh_hp_meter
  5256.       @hp_meter_old[0] = @actor.hp
  5257.       @hp_meter_old[1] = @actor.mhp
  5258.       @hp_meter.bitmap.clear
  5259.       width_range = @meter_cw * @actor.hp / @actor.mhp
  5260.       m_rect = Rect.new(0,0,width_range,@meter_ch)
  5261.       @hp_meter.bitmap.blt(0,0,@meter_image,m_rect)
  5262.   end
  5263.  
  5264.   #--------------------------------------------------------------------------
  5265.   # ● Create MP Meter
  5266.   #--------------------------------------------------------------------------  
  5267.   def create_mp_meter
  5268.       @mp_meter_old = [-1,-1]
  5269.       @mp_meter = Sprite.new
  5270.       @mp_meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
  5271.       @org_pos_mp = [@org_pos[0] + MP_METER_POSITION[0],
  5272.                      @org_pos[1] + MP_METER_POSITION[1]]      
  5273.       @mp_meter.x = @org_pos_mp[0]
  5274.       @mp_meter.y = @org_pos_mp[1]
  5275.       @mp_meter.z = 11
  5276.   end  
  5277.  
  5278.   #--------------------------------------------------------------------------
  5279.   # ● Create_States
  5280.   #--------------------------------------------------------------------------      
  5281.   def create_states
  5282.       @status_old = nil
  5283.       @status_flow = [-24,0]   
  5284.       @status = Sprite.new
  5285.       @status.bitmap = Bitmap.new(24,24)
  5286.       @org_pos_states = [@org_pos[0] + STATES_POSITION[0],
  5287.                          @org_pos[1] + STATES_POSITION[1]]      
  5288.       @status.x = @org_pos_states[0] + 1
  5289.       @status.y = @org_pos_states[1]
  5290.       @status.z = 11
  5291.   end      
  5292.  
  5293.   #--------------------------------------------------------------------------
  5294.   # * Refresh States
  5295.   #--------------------------------------------------------------------------        
  5296.   def refresh_states
  5297.       check_icon_image
  5298.       @status_old = @actor.states
  5299.       @status_flow = [0,0]
  5300.       @actor_status.dispose if @actor_status != nil
  5301.       @states_size = @actor.states.size > 0 ? (26 * @actor.states.size) : 24
  5302.       @actor_status = Bitmap.new(@states_size,24)
  5303.       index = 0
  5304.       for i in @actor.states
  5305.          rect = Rect.new(i.icon_index % 16 * 24, i.icon_index / 16 * 24, 24, 24)
  5306.          @actor_status.blt(26 * index , 0, @icon_image, rect)
  5307.          index += 1
  5308.       end
  5309.   end   
  5310.  
  5311.   #--------------------------------------------------------------------------
  5312.   # * Flow_Status
  5313.   #--------------------------------------------------------------------------         
  5314.   def flow_states
  5315.       return if @actor_status == nil
  5316.       @status.bitmap.clear
  5317.       return if @actor.states.size == 0
  5318.       st_src_rect = Rect.new(@status_flow[0],0, 24,24)
  5319.       @status.bitmap.blt(0,0, @actor_status, st_src_rect)
  5320.       if STATES_SCROLLING_ANIMATION
  5321.          @status_flow[0] += 1
  5322.          @status_flow[0] = -24 if @status_flow[0] >= @states_size + 2
  5323.       else   
  5324.          @status_flow[1] += 1 unless @actor.states.size <= 1
  5325.          if @status_flow[1] > 30
  5326.             @status_flow[1] = 0
  5327.             @status_flow[0] += 26
  5328.             @status_flow[0] = 0 if @status_flow[0] >= (@states_size - 0)
  5329.          end   
  5330.      end   
  5331.   end        
  5332.  
  5333.   #--------------------------------------------------------------------------
  5334.   # * Check Icon Image
  5335.   #--------------------------------------------------------------------------         
  5336.   def check_icon_image
  5337.       if @icon_image == nil or @icon_image.disposed?
  5338.          @icon_image = Cache.system("Iconset")
  5339.       end   
  5340.   end   
  5341.  
  5342.  
  5343.   #--------------------------------------------------------------------------
  5344.   # ● Refresh MP Meter
  5345.   #--------------------------------------------------------------------------   
  5346.   def refresh_mp_meter
  5347.       @mp_meter_old[0] = @actor.mp
  5348.       @mp_meter_old[1] = @actor.mmp
  5349.       @mp_meter.bitmap.clear
  5350.       width_range = @meter_cw * @actor.mp / @actor.mmp rescue nil
  5351.       width_range = 0 if width_range == nil
  5352.       m_rect = Rect.new(0,@meter_ch,width_range,@meter_ch)
  5353.       @mp_meter.bitmap.blt(0,0,@meter_image,m_rect)
  5354.   end  
  5355.  
  5356.   #--------------------------------------------------------------------------
  5357.   # ● Create Face
  5358.   #--------------------------------------------------------------------------   
  5359.   def refresh_parameter
  5360.       set_old_parameter   
  5361.       @parameter.bitmap.clear
  5362.  
  5363.       value = @actor.level
  5364.       x = 112
  5365.       y = 8
  5366.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  5367.  
  5368.       value = @actor.hp
  5369.       x = 218
  5370.       y = 2
  5371.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  5372.  
  5373.       value = @actor.mp
  5374.       x = 238
  5375.       y = 22
  5376.       refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  5377.  
  5378.   end  
  5379.  
  5380.   #--------------------------------------------------------------------------
  5381.   # ● Refresh Number
  5382.   #--------------------------------------------------------------------------     
  5383.   def refresh_number(sprite,image,value,number_cw,number_ch,x,y)
  5384.       number = value.abs.to_s.split(//)
  5385.       x2 = -number_cw * number.size
  5386.       for i in 0..number.size - 1
  5387.           number_abs = number[i].to_i
  5388.           nsrc_rect = Rect.new(number_cw * number_abs, 0, number_cw , number_ch)
  5389.           sprite.bitmap.blt(x + x2 + (number_cw  *  i), y, image, nsrc_rect)        
  5390.       end      
  5391.  
  5392.   end
  5393.  
  5394.   #--------------------------------------------------------------------------
  5395.   # ● Create Face
  5396.   #--------------------------------------------------------------------------  
  5397.   def create_face
  5398.       @face = Sprite.new
  5399.       @org_pos_face = [@org_pos[0] + FACE_POSITION[0],
  5400.                        @org_pos[1] + FACE_POSITION[1]]
  5401.       @face.x = @org_pos_face[0]
  5402.       @face.y = @org_pos_face[1]
  5403.       @face.z = 11
  5404.    #   @face.opacity = 0
  5405.       refresh_face
  5406.   end  
  5407.  
  5408.   #--------------------------------------------------------------------------
  5409.   # ● Refresh Face
  5410.   #--------------------------------------------------------------------------   
  5411.   def refresh_face
  5412.       face_name = "Face" + @actor.id.to_s
  5413.       @face.bitmap = Cache.menu(face_name.to_s)
  5414.   end
  5415.  
  5416.   #--------------------------------------------------------------------------
  5417.   # ● Create Name
  5418.   #--------------------------------------------------------------------------   
  5419.   def create_name
  5420.       @name = Sprite.new
  5421.       @name.bitmap = Bitmap.new(140,32)
  5422.       @name.bitmap.font.name = FONT_NAME
  5423.       @name.bitmap.font.size = FONT_SIZE
  5424.       @name.bitmap.font.bold = FONT_BOLD
  5425.       @org_pos_name = [@org_pos[0] + NAME_POSITION[0],
  5426.                        @org_pos[1] + NAME_POSITION[1]]
  5427.       @name.x = @org_pos_name[0]
  5428.       @name.y = @org_pos_name[1]
  5429.       @name.z = 11
  5430.      #@name.opacity = 0
  5431.       refresh_name     
  5432.   end  
  5433.  
  5434.   #--------------------------------------------------------------------------
  5435.   # ● Refresh Name
  5436.   #--------------------------------------------------------------------------      
  5437.   def refresh_name
  5438.       @name.bitmap.clear
  5439.       @name.bitmap.draw_text(0,0,140,32,@actor.name.to_s,0)
  5440.   end  
  5441.  
  5442.   #--------------------------------------------------------------------------
  5443.   # ● Set Actor
  5444.   #--------------------------------------------------------------------------        
  5445.   def set_actor(actor)
  5446.       @actor = actor
  5447.   end
  5448.  
  5449.   #--------------------------------------------------------------------------
  5450.   # ● Can Refresh HP Meter
  5451.   #--------------------------------------------------------------------------         
  5452.   def can_refresh_hp_meter?
  5453.       return true if @hp_meter_old[0] != @actor.hp
  5454.       return true if @hp_meter_old[1] != @actor.mhp
  5455.       return false
  5456.   end
  5457.  
  5458.   #--------------------------------------------------------------------------
  5459.   # ● Can Refresh MP Meter
  5460.   #--------------------------------------------------------------------------         
  5461.   def can_refresh_mp_meter?
  5462.       return true if @mp_meter_old[0] != @actor.mp
  5463.       return true if @mp_meter_old[1] != @actor.mmp
  5464.       return false
  5465.   end  
  5466.  
  5467.   #--------------------------------------------------------------------------
  5468.   # ● Can Refresh Parameter
  5469.   #--------------------------------------------------------------------------
  5470.   def can_refresh_parameter?
  5471.       return true if @par[0] != @actor.hp
  5472.       return true if @par[1] != @actor.mhp
  5473.       return true if @par[2] != @actor.mp
  5474.       return true if @par[3] != @actor.mmp
  5475.       return false
  5476.   end
  5477.  
  5478.   #--------------------------------------------------------------------------
  5479.   # ● Update Position
  5480.   #--------------------------------------------------------------------------      
  5481.   def update_position
  5482.       update_slide(0,@layout,@layout.x,@org_pos[0])
  5483.       update_slide(1,@layout,@layout.y,@org_pos[1])
  5484.       update_slide(0,@parameter,@parameter.x,@org_pos_par[0])
  5485.       update_slide(1,@parameter,@parameter.y,@org_pos_par[1])
  5486.       update_slide(0,@hp_meter,@hp_meter.x,@org_pos_hp[0])
  5487.       update_slide(1,@hp_meter,@hp_meter.y,@org_pos_hp[1])  
  5488.       update_slide(0,@mp_meter,@mp_meter.x,@org_pos_mp[0])
  5489.       update_slide(1,@mp_meter,@mp_meter.y,@org_pos_mp[1])        
  5490.       update_slide(0,@face,@face.x,@org_pos_face[0])
  5491.       update_slide(1,@face,@face.y,@org_pos_face[1])        
  5492.       update_slide(0,@name,@name.x,@org_pos_name[0])
  5493.       update_slide(1,@name,@name.y,@org_pos_name[1])      
  5494.       update_slide(0,@status,@status.x,@org_pos_states[0])
  5495.       update_slide(1,@status,@status.y,@org_pos_states[1])         
  5496.   end
  5497.  
  5498. #--------------------------------------------------------------------------
  5499. # ● Update Slide
  5500. #--------------------------------------------------------------------------                       
  5501.   def update_slide(type,sprite,cp,np)
  5502.       sp = 3 + ((cp - np).abs / 10)
  5503.       if cp > np
  5504.          cp -= sp
  5505.          cp = np if cp < np
  5506.       elsif cp < np
  5507.          cp += sp
  5508.          cp = np if cp > np
  5509.       end     
  5510.       sprite.x = cp if type == 0
  5511.       sprite.y = cp if type == 1
  5512.   end   
  5513.  
  5514.   #--------------------------------------------------------------------------
  5515.   # ● Update Opacity
  5516.   #--------------------------------------------------------------------------  
  5517.   def update_opacity
  5518.       @opac += 10
  5519.       @opac = 255 if @opac > 255
  5520.       set_opacity(@opac)
  5521.   end
  5522.  
  5523.   #--------------------------------------------------------------------------
  5524.   # ● Set Opacity
  5525.   #--------------------------------------------------------------------------   
  5526.   def set_opacity(opac)
  5527.       @layout.opacity = opac
  5528.       @layout.opacity = opac
  5529.       @parameter.opacity = opac
  5530.       @parameter.opacity = opac
  5531.       @hp_meter.opacity = opac
  5532.       @hp_meter.opacity = opac
  5533.       @mp_meter.opacity = opac
  5534.       @mp_meter.opacity = opac
  5535.       @face.opacity = opac
  5536.       @face.opacity = opac
  5537.       @name.opacity = opac
  5538.       @name.opacity = opac
  5539.       @status.opacity = opac
  5540.   end   
  5541.  
  5542.   #--------------------------------------------------------------------------
  5543.   # ● Update Position
  5544.   #--------------------------------------------------------------------------      
  5545.   def set_position(pos_x,pos_y)
  5546.       @layout.x = @org_pos[0] + pos_x
  5547.       @layout.y = @org_pos[1] + pos_y
  5548.       @parameter.x = @org_pos_par[0] + pos_x
  5549.       @parameter.y = @org_pos_par[1] + pos_y
  5550.       @hp_meter.x = @org_pos_hp[0] + pos_x
  5551.       @hp_meter.y = @org_pos_hp[1] + pos_y
  5552.       @mp_meter.x = @org_pos_mp[0] + pos_x
  5553.       @mp_meter.y = @org_pos_mp[1] + pos_y
  5554.       @face.x = @org_pos_face[0] + pos_x
  5555.       @face.y = @org_pos_face[1] + pos_y
  5556.       @name.x = @org_pos_name[0] + pos_x
  5557.       @name.y = @org_pos_name[1] + pos_y
  5558.       @status.x = @org_pos_states[0] + pos_x
  5559.       @status.y = @org_pos_states[1] + pos_y
  5560.   end   
  5561.  
  5562.   #--------------------------------------------------------------------------
  5563.   # ● Update
  5564.   #--------------------------------------------------------------------------  
  5565.   def update
  5566.       refresh_hp_meter if can_refresh_hp_meter?
  5567.       refresh_mp_meter if can_refresh_mp_meter?
  5568.       refresh_parameter if can_refresh_parameter?
  5569.       refresh_states if @status_old != @actor.states
  5570.       update_opacity
  5571.       update_position
  5572.       flow_states      
  5573.   end
  5574.  
  5575. end
  5576.  
  5577. #==============================================================================
  5578. # ■ Window_SkillCommand
  5579. #==============================================================================
  5580. class Window_SkillCommand_2 < Window_Command
  5581.  
  5582.   attr_reader   :skill_window
  5583.  
  5584.   #--------------------------------------------------------------------------
  5585.   # ● Initialize
  5586.   #--------------------------------------------------------------------------
  5587.   def initialize(x, y)
  5588.     super(x, y)
  5589.     @actor = nil
  5590.     @index_max = 0
  5591.   end
  5592.  
  5593.   #--------------------------------------------------------------------------
  5594.   # ● Window Width
  5595.   #--------------------------------------------------------------------------
  5596.   def window_width
  5597.     return 140
  5598.   end
  5599.  
  5600.   #--------------------------------------------------------------------------
  5601.   # ● Actor
  5602.   #--------------------------------------------------------------------------
  5603.   def actor=(actor)
  5604.       return if @actor == actor
  5605.       @actor = actor
  5606.       @index_max = (@actor.added_skill_types.size - 1)
  5607.       @index_max = 0 if @index_max < 0
  5608.       refresh
  5609.       select_last
  5610.   end
  5611.  
  5612.   #--------------------------------------------------------------------------
  5613.   # ● Visible Line Number
  5614.   #--------------------------------------------------------------------------
  5615.   def visible_line_number
  5616.       return 4
  5617.   end
  5618.  
  5619.   #--------------------------------------------------------------------------
  5620.   # ● Make Command List
  5621.   #--------------------------------------------------------------------------
  5622.   def make_command_list
  5623.       return unless @actor
  5624.          @actor.added_skill_types.sort.each do |stype_id|
  5625.          name = $data_system.skill_types[stype_id]
  5626.          add_command(name, :skill, true, stype_id)
  5627.       end
  5628.   end
  5629.  
  5630.   #--------------------------------------------------------------------------
  5631.   # ● Update
  5632.   #--------------------------------------------------------------------------
  5633.   def update
  5634.       super
  5635.       @skill_window.stype_id = current_ext if @skill_window
  5636.      # update_index
  5637.   end
  5638.  
  5639.   #--------------------------------------------------------------------------
  5640.   # ● Update
  5641.   #--------------------------------------------------------------------------  
  5642.   def update_index
  5643.       return if @index_max <= 0
  5644.       if Input.trigger?(:RIGHT)
  5645.          add_index(1)
  5646.       elsif Input.trigger?(:LEFT)   
  5647.          add_index(-1)
  5648.       end  
  5649.   end
  5650.  
  5651.   #--------------------------------------------------------------------------
  5652.   # ● Add Index
  5653.   #--------------------------------------------------------------------------   
  5654.   def add_index(value)
  5655.       Sound.play_cursor
  5656.       @index += value
  5657.       @index = 0 if @index > @index_max
  5658.       @index = @index_max if @index < 0
  5659.   end
  5660.  
  5661.   #--------------------------------------------------------------------------
  5662.   # ● Skill Window
  5663.   #--------------------------------------------------------------------------
  5664.   def skill_window=(skill_window)
  5665.       @skill_window = skill_window
  5666.       update
  5667.   end  
  5668.  
  5669.   #--------------------------------------------------------------------------
  5670.   # ● Select Last
  5671.   #--------------------------------------------------------------------------
  5672.   def select_last
  5673.       skill = @actor.last_skill.object
  5674.       if skill
  5675.          select_ext(skill.stype_id)
  5676.       else
  5677.          select(0)
  5678.       end
  5679.   end
  5680.  
  5681. end
  5682.  
  5683. #==============================================================================
  5684. # ■ Window_SkillList
  5685. #==============================================================================
  5686. class Window_SkillList_Menu < Window_Selectable
  5687.  
  5688.   attr_accessor :windows_index
  5689.  
  5690.   #--------------------------------------------------------------------------
  5691.   # ● Initialize
  5692.   #--------------------------------------------------------------------------
  5693.   def initialize(x, y, width, height)
  5694.       super
  5695.       @stype_id = 0
  5696.       @data = []
  5697.       @windows_index = 0
  5698.       self.opacity = 0
  5699.       @actor = nil
  5700.   end
  5701.  
  5702.   #--------------------------------------------------------------------------
  5703.   # ● Actor
  5704.   #--------------------------------------------------------------------------
  5705.   def actor=(actor)
  5706.       return if @actor == actor
  5707.       @actor = actor
  5708.       self.oy = 0
  5709.   end
  5710.  
  5711.   #--------------------------------------------------------------------------
  5712.   # ● Setup
  5713.   #--------------------------------------------------------------------------  
  5714.   def setup(actor,skill_type,index)
  5715.       @actor = actor
  5716.       @stype_id = skill_type
  5717.       @windows_index = index
  5718.       refresh
  5719.   end
  5720.  
  5721.   #--------------------------------------------------------------------------
  5722.   # ● Stype ID
  5723.   #--------------------------------------------------------------------------
  5724.   def stype_id=(stype_id)
  5725.   end
  5726.  
  5727.   #--------------------------------------------------------------------------
  5728.   # ● Col Max
  5729.   #--------------------------------------------------------------------------
  5730.   def col_max
  5731.       return 1
  5732.   end
  5733.  
  5734.   #--------------------------------------------------------------------------
  5735.   # ● Item Max
  5736.   #--------------------------------------------------------------------------
  5737.   def item_max
  5738.       @data ? @data.size : 1
  5739.   end
  5740.  
  5741.   #--------------------------------------------------------------------------
  5742.   # ● Item
  5743.   #--------------------------------------------------------------------------
  5744.   def item
  5745.       @data && index >= 0 ? @data[index] : nil
  5746.   end
  5747.  
  5748.   #--------------------------------------------------------------------------
  5749.   # ● Current Item Enabled
  5750.   #--------------------------------------------------------------------------
  5751.   def current_item_enabled?
  5752.       enable?(@data[index])
  5753.   end
  5754.  
  5755.   #--------------------------------------------------------------------------
  5756.   # ● Include
  5757.   #--------------------------------------------------------------------------
  5758.   def include?(item)
  5759.       item && item.stype_id == @stype_id
  5760.   end
  5761.  
  5762.   #--------------------------------------------------------------------------
  5763.   # ● Enable
  5764.   #--------------------------------------------------------------------------
  5765.   def enable?(item)
  5766.       @actor && @actor.usable?(item)
  5767.   end
  5768.  
  5769.   #--------------------------------------------------------------------------
  5770.   # ● Male Item List
  5771.   #--------------------------------------------------------------------------
  5772.   def make_item_list
  5773.       @data = @actor ? @actor.skills.select {|skill| include?(skill) } : []
  5774.   end
  5775.  
  5776.   #--------------------------------------------------------------------------
  5777.   # ● Select Last
  5778.   #--------------------------------------------------------------------------
  5779.   def select_last
  5780.       select(@data.index(@actor.last_skill.object) || 0)
  5781.   end
  5782.  
  5783.   #--------------------------------------------------------------------------
  5784.   # ● Draw Item
  5785.   #--------------------------------------------------------------------------
  5786.   def draw_item(index)
  5787.       self.contents.font.size = 18
  5788.       self.contents.font.bold = true
  5789.       skill = @data[index]
  5790.       if skill
  5791.          rect = item_rect(index)
  5792.          rect.width -= 4
  5793.          draw_item_name(skill, rect.x, rect.y, enable?(skill),110)
  5794.          draw_skill_cost(rect, skill)
  5795.       end
  5796.   end
  5797.  
  5798.   #--------------------------------------------------------------------------
  5799.   # ● Draw Skill Cost
  5800.   #--------------------------------------------------------------------------
  5801.   def draw_skill_cost(rect, skill)
  5802.       if @actor.skill_tp_cost(skill) > 0
  5803.          change_color(tp_cost_color, enable?(skill))
  5804.          draw_text(rect, @actor.skill_tp_cost(skill), 2)
  5805.       elsif @actor.skill_mp_cost(skill) > 0
  5806.          change_color(mp_cost_color, enable?(skill))
  5807.          draw_text(rect, @actor.skill_mp_cost(skill), 2)
  5808.       end
  5809.   end
  5810.  
  5811.   #--------------------------------------------------------------------------
  5812.   # ● Update Help
  5813.   #--------------------------------------------------------------------------
  5814.   def update_help
  5815.       @help_window.set_item(item)
  5816.   end
  5817.  
  5818.   #--------------------------------------------------------------------------
  5819.   # ● Refresh
  5820.   #--------------------------------------------------------------------------
  5821.   def refresh
  5822.       make_item_list
  5823.       create_contents
  5824.       draw_all_items
  5825.   end
  5826.  
  5827. end
  5828.  
  5829. #==============================================================================
  5830. # ■ Scene Skill
  5831. #==============================================================================
  5832. class Scene_Skill
  5833.  
  5834.   #--------------------------------------------------------------------------
  5835.   # ● Create Sprites
  5836.   #--------------------------------------------------------------------------         
  5837.   def create_sprites
  5838.       create_menu_background
  5839.       create_layout
  5840.       create_particles
  5841.       create_actor_status
  5842.       create_help_window
  5843.       create_command_window
  5844.       create_type_layout
  5845.       create_item_window
  5846.       create_list_layout
  5847.       create_actor_window
  5848.       create_type_name
  5849.       @command_window.active = true        
  5850.   end
  5851.  
  5852.   #--------------------------------------------------------------------------
  5853.   # ● Create Menu Background
  5854.   #--------------------------------------------------------------------------            
  5855.   def create_menu_background
  5856.       @background = Plane.new
  5857.       @background.bitmap = $game_temp.pre_cache_skill_menu[0]
  5858.       @background.z = 0
  5859.       @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  5860.   end  
  5861.  
  5862.   #--------------------------------------------------------------------------
  5863.   # ● Create Layout
  5864.   #--------------------------------------------------------------------------              
  5865.   def create_layout
  5866.       @layout = Sprite.new
  5867.       @layout.bitmap = $game_temp.pre_cache_skill_menu[1]
  5868.       @layout.z = 3
  5869.   end
  5870.  
  5871.   #--------------------------------------------------------------------------
  5872.   # ● Create Particles
  5873.   #--------------------------------------------------------------------------  
  5874.   def create_particles
  5875.       @particles_sprite =[]
  5876.       for i in 0...NUMBER_OF_PARTICLES
  5877.           @particles_sprite.push(Particles_Menu.new(nil))
  5878.       end
  5879.   end
  5880.  
  5881.   #--------------------------------------------------------------------------
  5882.   # ● Create Actor Status
  5883.   #--------------------------------------------------------------------------   
  5884.   def create_actor_status
  5885.       @actor_skill_status = Actor_Skill_Status.new(@actor)
  5886.   end  
  5887.  
  5888.   #--------------------------------------------------------------------------
  5889.   # ● Create Help Window
  5890.   #--------------------------------------------------------------------------              
  5891.   def create_help_window
  5892.       @help_window = Window_Help.new
  5893.       @help_window.x = 0
  5894.       @help_window.y = Graphics.height - @help_window.height
  5895.       @help_window.opacity = 0
  5896.   end   
  5897.  
  5898.   #--------------------------------------------------------------------------
  5899.   # ● Create Command Window
  5900.   #--------------------------------------------------------------------------
  5901.   def create_command_window
  5902.       @command_window = Window_SkillCommand_2.new(0, 84)
  5903.       @command_window.help_window = @help_window
  5904.       @command_window.actor = @actor
  5905.       @command_window.set_handler(:skill,    method(:command_skill))
  5906.       @command_window.set_handler(:pagedown, method(:next_actor))
  5907.       @command_window.set_handler(:pageup,   method(:prev_actor))
  5908.       @command_window.active = false
  5909.       @command_window.opacity = 0
  5910.       @command_window.index = 0
  5911.       @command_window.visible = @scene_active
  5912.       @skill_list_slide_range = [@command_window.x, -(@command_window.x + @command_window.width)]
  5913.       @command_window.x = @skill_list_slide_range[1] - 80
  5914.       @command_window.opacity = 0
  5915.   end  
  5916.  
  5917.   #--------------------------------------------------------------------------
  5918.   # ● Create Type Layout
  5919.   #--------------------------------------------------------------------------
  5920.   def create_type_layout
  5921.       @type_layout = Sprite.new
  5922.       @type_layout.bitmap = $game_temp.pre_cache_skill_menu[2]
  5923.       @type_layout.z = @command_window.z - 1
  5924.       @type_layout.x = @command_window.x
  5925.       @type_layout.y = @command_window.y - 30
  5926.       @type_layout.opacity = 0      
  5927.   end  
  5928.  
  5929.   #--------------------------------------------------------------------------
  5930.   # ● Create Item Window
  5931.   #--------------------------------------------------------------------------
  5932.   def create_item_window
  5933.       @skill_window = []
  5934.       index = 0
  5935.       window_max = @actor.added_skill_types.size
  5936.       window_max = 1 if window_max == 0
  5937.       for item in 0...window_max
  5938.           @skill_window.push(Window_SkillList_Menu.new(170,75,200,270))
  5939.           @skill_window[index].setup(@actor,@actor.added_skill_types[index],index)
  5940.           @skill_window[index].help_window = @help_window
  5941.           @skill_window[index].set_handler(:ok,     method(:on_item_ok))
  5942.           @skill_window[index].set_handler(:cancel, method(:on_item_cancel))
  5943.           @skill_window[index].active = false
  5944.           @skill_window[index].index = -1
  5945.           @skill_window[index].opacity = 0
  5946.           @skill_window[index].contents_opacity = 0
  5947.           @item_slide_range = [@skill_window[index].x, @skill_window[index].x + 50]
  5948.           @skill_window[index].x = @item_slide_range[1]
  5949.           index += 1
  5950.       end  
  5951.       @item_pre_index = @skill_window[@command_window.index].index
  5952.       @old_command_index = @skill_window[@command_window.index].index
  5953.   end  
  5954.  
  5955.   #--------------------------------------------------------------------------
  5956.   # ● Create List Layout
  5957.   #--------------------------------------------------------------------------  
  5958.   def create_list_layout
  5959.       @list_layout = Sprite.new
  5960.       @list_layout.bitmap = $game_temp.pre_cache_skill_menu[3]
  5961.       @list_layout.z = @skill_window[@command_window.index].z - 1
  5962.       @list_layout.x = @item_slide_range[0] - 4
  5963.       @list_layout.y = @skill_window[@command_window.index].y
  5964.       @list_layout.opacity = 0
  5965.       @list_layout_slide_range = [@list_layout.x,@list_layout.x + 50]
  5966.       @list_layout.x = @list_layout_slide_range[1]
  5967.   end
  5968.  
  5969.   #--------------------------------------------------------------------------
  5970.   # ● Create Actor Window
  5971.   #--------------------------------------------------------------------------
  5972.   def create_actor_window
  5973.       @actor_window = Members_Windows_Status.new
  5974.       @actor_window.set_handler(:ok,     method(:on_actor_ok))
  5975.       @actor_window.set_handler(:cancel, method(:on_actor_cancel))
  5976.       @actor_window.opacity = 0
  5977.       @actor_window.x = -10
  5978.       @actor_window.y = 36
  5979.       @actor_window_slide_range = [@actor_window.x, [email]-@actor_window.width[/email]]
  5980.       @actor_window.x = @actor_window_slide_range[1]
  5981.       @actor_window.visible = true
  5982.       @actor_window_index_old = @actor_window.index
  5983.       create_members_window
  5984.       update_active
  5985.   end
  5986.  
  5987.   #--------------------------------------------------------------------------
  5988.   # ● Create Members Window
  5989.   #--------------------------------------------------------------------------  
  5990.   def create_members_window
  5991.       @actor_status = Actor_Menu_Status.new(@actor)
  5992.       index = 0
  5993.       @members_status = []      
  5994.       for actor in $game_party.members
  5995.           @members_status.push(Members_Menu.new(actor,index))
  5996.           index += 1
  5997.       end   
  5998.   end  
  5999.  
  6000.   #--------------------------------------------------------------------------
  6001.   # ● Create Type Name
  6002.   #--------------------------------------------------------------------------  
  6003.   def create_type_name
  6004.       @type_name = Sprite.new
  6005.       @type_name.x = 260
  6006.       @type_name.y = 60
  6007.       @type_name.z = @list_layout.z + 2
  6008.       @type_name.bitmap = Bitmap.new(100,32)
  6009.       @type_name.bitmap.font.name = "Georgia"
  6010.       @type_name.bitmap.font.size = 18
  6011.       @type_name.bitmap.font.bold = true
  6012.       @type_name.opacity = 0
  6013.       refresh_type_name
  6014.   end
  6015.  
  6016.   #--------------------------------------------------------------------------
  6017.   # ● Refresh Type Name
  6018.   #--------------------------------------------------------------------------   
  6019.   def refresh_type_name
  6020.      @type_name.bitmap.clear
  6021.      return if !@scene_active
  6022.      stype_id = @actor.added_skill_types[@command_window.index]
  6023.      type_name = $data_system.skill_types[stype_id]
  6024.      @type_name.bitmap.draw_text(0,0,100,32,type_name,2)
  6025.   end
  6026.  
  6027. end
  6028.  
  6029. #==============================================================================
  6030. # ■ Scene_Skill
  6031. #==============================================================================
  6032. class Scene_Skill
  6033.  
  6034.   #--------------------------------------------------------------------------
  6035.   # ● Execute Dispose
  6036.   #--------------------------------------------------------------------------        
  6037.   def execute_dispose
  6038.       Graphics.freeze
  6039.       dispose_background
  6040.       dispose_layout
  6041.       dispose_list_layout
  6042.       dispose_particles
  6043.       dispose_windows
  6044.       dispose_members_status
  6045.       dispose_type_name
  6046.   end
  6047.  
  6048.   #--------------------------------------------------------------------------
  6049.   # ● Dispose Background
  6050.   #--------------------------------------------------------------------------  
  6051.   def dispose_background
  6052.       return if @background == nil
  6053.       @background.dispose
  6054.       @background = nil
  6055.   end
  6056.  
  6057.  
  6058.   #--------------------------------------------------------------------------
  6059.   # ● Dispose Layout
  6060.   #--------------------------------------------------------------------------               
  6061.   def dispose_layout
  6062.       return if @layout == nil
  6063.       @layout.dispose
  6064.       @layout = nil
  6065.   end  
  6066.  
  6067. #--------------------------------------------------------------------------
  6068. # ● Dispose Particles
  6069. #--------------------------------------------------------------------------   
  6070. def dispose_particles
  6071.      return if @particles_sprite == nil
  6072.      @particles_sprite.each {|sprite| sprite.dispose }
  6073. end   
  6074.  
  6075. #--------------------------------------------------------------------------
  6076. # ● Dispose Window
  6077. #--------------------------------------------------------------------------     
  6078. def dispose_windows
  6079.      return if @command_window == nil
  6080.      @skill_window.each {|sprite| sprite.dispose }
  6081.      @command_window.dispose
  6082.      @actor_window.dispose
  6083.      @help_window.dispose
  6084. end
  6085.  
  6086. #--------------------------------------------------------------------------
  6087. # ● Dispose List Layout
  6088. #--------------------------------------------------------------------------      
  6089. def dispose_list_layout
  6090.      return if @list_layout == nil
  6091.      @list_layout.dispose
  6092.      @type_layout.dispose
  6093.      @list_layout = nil
  6094. end
  6095.  
  6096.   #--------------------------------------------------------------------------
  6097.   # ● Dispose Members Status
  6098.   #--------------------------------------------------------------------------            
  6099.   def dispose_members_status
  6100.       return if @members_status == nil
  6101.       @actor_status.dispose
  6102.       @actor_skill_status.dispose
  6103.       @members_status.each {|sprite| sprite.dispose }
  6104.   end   
  6105.  
  6106.   #--------------------------------------------------------------------------
  6107.   # ● Dispose Type Name
  6108.   #--------------------------------------------------------------------------   
  6109.   def dispose_type_name
  6110.       @type_name.bitmap.dispose
  6111.       @type_name.dispose
  6112.   end  
  6113.  
  6114. end
  6115.  
  6116. #==============================================================================
  6117. # ■ Scene Skill
  6118. #==============================================================================
  6119. class Scene_Skill
  6120.  
  6121.   #--------------------------------------------------------------------------
  6122.   # ● Update Sprites
  6123.   #--------------------------------------------------------------------------         
  6124.   def update_sprites   
  6125.       update_background
  6126.       update_particles     
  6127.       update_actor_status
  6128.       update_slide_item
  6129.       update_members_status
  6130.       update_windows
  6131.   end
  6132.  
  6133.   #--------------------------------------------------------------------------
  6134.   # ● Update Background
  6135.   #--------------------------------------------------------------------------              
  6136.   def update_background
  6137.       return if @background == nil
  6138.       @background.ox += @background_scroll[0]
  6139.       @background.oy += @background_scroll[1]
  6140.   end   
  6141.  
  6142.   #--------------------------------------------------------------------------
  6143.   # ● Update Particles
  6144.   #--------------------------------------------------------------------------  
  6145.   def update_particles
  6146.       return if @particles_sprite == nil
  6147.       @particles_sprite.each {|sprite| sprite.update }
  6148.   end
  6149.  
  6150.   #--------------------------------------------------------------------------
  6151.   # ● Update Windows
  6152.   #--------------------------------------------------------------------------   
  6153.   def update_windows
  6154.       @press_lag -= 1 if @press_lag > 0
  6155.       return if @command_window == nil
  6156.       for skw in @skill_window
  6157.           if skw.windows_index == @command_window.index
  6158.              skw.update unless @press_lag > 0
  6159.              if @phase == 0
  6160.                 skw.index = 0 if skw.index < 0 or skw.index >= skw.item_max
  6161.              end   
  6162.              skw.visible = true
  6163.           else   
  6164.              skw.visible = false
  6165.           end  
  6166.       end
  6167.       #@skill_window[@command_window.index].update
  6168.       @command_window.update   
  6169.       @actor_window.update
  6170.       update_actor_window_slide
  6171.       update_skill_list_slide
  6172.   end
  6173.  
  6174.   #--------------------------------------------------------------------------
  6175.   # ● Update Skill List Slide
  6176.   #--------------------------------------------------------------------------      
  6177.   def update_skill_list_slide
  6178.       return if @phase == 999
  6179.       if @actor_window.active or !@command_window.active
  6180.          if @command_window.x > @skill_list_slide_range[1]
  6181.             @command_window.x -= 15
  6182.             @command_window.x = @skill_list_slide_range[1] if @command_window.x < @skill_list_slide_range[1]
  6183.          end  
  6184.       else
  6185.          if @command_window.x < @skill_list_slide_range[0]
  6186.             @command_window.x += 15
  6187.             @command_window.x = @skill_list_slide_range[0] if @command_window.x > @skill_list_slide_range[0]
  6188.          end         
  6189.       end  
  6190.       @type_layout.x = @command_window.x
  6191.   end
  6192.  
  6193.   #--------------------------------------------------------------------------
  6194.   # ● Update Actor Window Slide
  6195.   #--------------------------------------------------------------------------  
  6196.   def update_actor_window_slide
  6197.       if @actor_window.active
  6198.          if @actor_window.x < @actor_window_slide_range[0]
  6199.             @actor_window.x += 15
  6200.             @actor_window.contents_opacity += 23
  6201.             if @actor_window.x >= @actor_window_slide_range[0]
  6202.                @actor_window.x = @actor_window_slide_range[0]
  6203.                @actor_window.contents_opacity = 255
  6204.             end  
  6205.          end  
  6206.       else         
  6207.          if @actor_window.x >= @actor_window_slide_range[1]
  6208.             @actor_window.x -= 15
  6209.             @actor_window.contents_opacity -= 3
  6210.             if @actor_window.x <= @actor_window_slide_range[1]
  6211.                @actor_window.x = @actor_window_slide_range[1]
  6212.                @actor_window.contents_opacity = 0
  6213.             end         
  6214.          end
  6215.       end
  6216.   end   
  6217.  
  6218.   #--------------------------------------------------------------------------
  6219.   # ● Update Actor Status
  6220.   #--------------------------------------------------------------------------               
  6221.   def update_actor_status
  6222.       refresh_actor_status(true) if @actor_window_index_old != @actor_window.index
  6223.   end  
  6224.  
  6225.   #--------------------------------------------------------------------------
  6226.   # ● Refresh Actor Status
  6227.   #--------------------------------------------------------------------------               
  6228.   def refresh_actor_status(reset = false)
  6229. #      @actor = $game_party.members[@actor_window.index]
  6230. #      @actor_window_index_old = @actor_window.index
  6231.   end  
  6232.  
  6233.   #--------------------------------------------------------------------------
  6234.   # ● Update Slide Item
  6235.   #--------------------------------------------------------------------------  
  6236.   def update_slide_item
  6237.       if @phase == 0
  6238.          @command_window.contents_opacity += 10
  6239.       else   
  6240.          @command_window.contents_opacity -= 10 if @command_window.contents_opacity > 160
  6241.       end  
  6242.       @type_layout.opacity = @command_window.contents_opacity
  6243.       @type_name.opacity = @skill_window[@command_window.index].contents_opacity
  6244.       if @phase == 1
  6245.          @skill_window[@command_window.index].contents_opacity += 5
  6246.          @list_layout.opacity += 5
  6247.       else   
  6248.          @skill_window[@command_window.index].contents_opacity -= 10 if @skill_window[@command_window.index].contents_opacity > 165
  6249.          @list_layout.opacity -= 10 if @list_layout.opacity > 160
  6250.       end  
  6251.       if @skill_window[@command_window.index].x > @item_slide_range[0]
  6252.          @skill_window[@command_window.index].x -= 3
  6253.          @list_layout.x -= 3
  6254.          if @skill_window[@command_window.index].x <= @item_slide_range[0]
  6255.             @skill_window[@command_window.index].x = @item_slide_range[0]
  6256.             @list_layout.x = @list_layout_slide_range[0]
  6257.          end  
  6258.       end  
  6259.   end   
  6260.  
  6261.   #--------------------------------------------------------------------------
  6262.   # ● Update Members Status
  6263.   #--------------------------------------------------------------------------            
  6264.   def update_members_status
  6265.       for members in @members_status
  6266.           members.update(@actor_window.active,@actor_window.index)
  6267.           @actor_2 = members.actor if members.current_actor
  6268.       end  
  6269.       @actor_2 = @actor if @actor_2 == nil
  6270.       @actor_skill_status.update
  6271.       @actor_status.update(@actor_window.active,@actor_2)
  6272.       #@members_status.each {|sprite| sprite.update(@actor_window.active,@actor_window.index) }
  6273.   end  
  6274.  
  6275. end
  6276.  
  6277. #==============================================================================
  6278. # ■ Scene_Skill
  6279. #==============================================================================
  6280. class Scene_Skill
  6281.  
  6282.   #--------------------------------------------------------------------------
  6283.   # ● Update
  6284.   #--------------------------------------------------------------------------      
  6285.   def update
  6286.       unless @skill_window[@command_window.index].index < 0
  6287.           @item_pre_index = @skill_window[@command_window.index].index
  6288.       end   
  6289.       update_command
  6290.       update_sprites
  6291.   end
  6292.  
  6293.   #--------------------------------------------------------------------------
  6294.   # ● Show Sub Window
  6295.   #--------------------------------------------------------------------------
  6296.   def show_sub_window(window)
  6297.       window.show.activate
  6298.   end
  6299.   #--------------------------------------------------------------------------
  6300.   # ● Hide Sub Window
  6301.   #--------------------------------------------------------------------------
  6302.   def hide_sub_window(window)
  6303.       window.hide.deactivate
  6304.       activate_item_window     
  6305.   end
  6306.  
  6307.   #--------------------------------------------------------------------------
  6308.   # ● Determine Item
  6309.   #--------------------------------------------------------------------------
  6310.   def determine_item
  6311.       if item.for_friend?         
  6312.          @phase = 2
  6313.          show_sub_window(@actor_window)
  6314.          @actor_window.select_for_item(item)   
  6315.          $game_temp.item_scope = @skill_window[@command_window.index].item.scope rescue nil
  6316.       else
  6317.          use_item
  6318.          activate_item_window
  6319.       end
  6320.   end  
  6321.  
  6322.   #--------------------------------------------------------------------------
  6323.   # ● ON Item OK
  6324.   #--------------------------------------------------------------------------
  6325.   def on_item_ok
  6326.       return if @press_time > 1
  6327.       @actor.last_skill.object = item
  6328.       determine_item
  6329.   end
  6330.  
  6331.   #--------------------------------------------------------------------------
  6332.   # ● Item
  6333.   #--------------------------------------------------------------------------
  6334.   def item
  6335.     @skill_window[@command_window.index].item
  6336.   end  
  6337.  
  6338.   #--------------------------------------------------------------------------
  6339.   # ● Use Item
  6340.   #--------------------------------------------------------------------------
  6341.   def use_item
  6342.       super
  6343.       @skill_window[@command_window.index].refresh if can_refresh_item_window?
  6344.   end  
  6345.  
  6346.   #--------------------------------------------------------------------------
  6347.   # ● Activate Item Window
  6348.   #--------------------------------------------------------------------------
  6349.   def activate_item_window   
  6350.     @skill_window[@command_window.index].refresh if can_refresh_item_window?
  6351.     @skill_window[@command_window.index].activate
  6352.   end  
  6353.  
  6354.   #--------------------------------------------------------------------------
  6355.   # ● On Item Cancel
  6356.   #--------------------------------------------------------------------------
  6357.   def on_item_cancel
  6358.       @skill_window[@command_window.index].unselect
  6359.       @command_window.activate
  6360.   end  
  6361.  
  6362.   #--------------------------------------------------------------------------
  6363.   # ● Can Refresh Item Window
  6364.   #--------------------------------------------------------------------------  
  6365.   def can_refresh_item_window?
  6366.       return true if @actor.mp < @skill_window[@command_window.index].item.mp_cost
  6367.       return true if @actor.tp < @skill_window[@command_window.index].item.tp_cost
  6368.       return false
  6369.   end
  6370.  
  6371. end
  6372.  
  6373. #==============================================================================
  6374. # ■ Scene_Item
  6375. #==============================================================================
  6376. class Scene_Skill
  6377.  
  6378.   #--------------------------------------------------------------------------
  6379.   # ● Update Command
  6380.   #--------------------------------------------------------------------------      
  6381.   def update_command
  6382.       @skill_window[@command_window.index].index = @item_pre_index        
  6383.       if @phase == 0
  6384.          update_main_command
  6385.       elsif @phase == 1
  6386.          update_item_window
  6387.       elsif @phase == 2        
  6388.          update_target_window
  6389.       end        
  6390.       update_active
  6391.   end
  6392.  
  6393.   #--------------------------------------------------------------------------
  6394.   # ● Command Skill
  6395.   #--------------------------------------------------------------------------
  6396.   def command_skill
  6397.       @skill_window[@command_window.index].activate
  6398.       @skill_window[@command_window.index].select_last
  6399.    # @item_window.activate
  6400.    # @item_window.select_last
  6401.   end  
  6402.  
  6403.   #--------------------------------------------------------------------------
  6404.   # ● Update Active
  6405.   #--------------------------------------------------------------------------      
  6406.   def update_active
  6407.       if @phase == 0
  6408.          @skill_window[@command_window.index].active = false
  6409.          @command_window.active = true
  6410.          @actor_window.active = false
  6411.       elsif @phase == 1
  6412.          @skill_window[@command_window.index].active = true
  6413.          @command_window.active = false
  6414.          @actor_window.active = false
  6415.       elsif @phase == 2
  6416.          @skill_window[@command_window.index].active = false
  6417.          @command_window.active = false
  6418.          @actor_window.active = true
  6419.       end
  6420.   end
  6421.  
  6422.   #--------------------------------------------------------------------------
  6423.   # ● Update Main Command
  6424.   #--------------------------------------------------------------------------        
  6425.   def update_main_command
  6426.       reset_item_index
  6427.       if Input.trigger?(:C) and @scene_active
  6428.          Sound.play_ok
  6429.          @phase = 1
  6430.          @press_time = 2
  6431.          @press_lag = 2
  6432.          @skill_window[@command_window.index].index = 0 if @skill_window[@command_window.index].index == -1
  6433.       elsif Input.trigger?(:B)
  6434.          return_scene
  6435.       end  
  6436.   end
  6437.  
  6438.   #--------------------------------------------------------------------------
  6439.   # ● Return Scene
  6440.   #--------------------------------------------------------------------------         
  6441.   def return_scene
  6442.       Sound.play_cancel
  6443.       SceneManager.return
  6444.     end
  6445.  
  6446.   #--------------------------------------------------------------------------
  6447.   # ● ON Actor Charge
  6448.   #--------------------------------------------------------------------------
  6449.   def on_actor_change
  6450.       @phase = 999
  6451.       $game_temp.actor_menu_temp = @actor
  6452.       SceneManager.goto(Scene_Skill)
  6453.   end
  6454.  
  6455.   #--------------------------------------------------------------------------
  6456.   # ● Reset Item Index
  6457.   #--------------------------------------------------------------------------            
  6458.   def reset_item_index
  6459.        return if @old_command_index == @command_window.index
  6460.        return if @command_window.index == -1
  6461.        @old_command_index = @command_window.index
  6462.        refresh_type_name
  6463.        reset_item_position
  6464.   end  
  6465.  
  6466.   #--------------------------------------------------------------------------
  6467.   # ● Reset Item Position
  6468.   #--------------------------------------------------------------------------              
  6469.   def reset_item_position
  6470.       @skill_window[@command_window.index].x = @item_slide_range[1]
  6471.       @skill_window[@command_window.index].contents_opacity = 160
  6472.       @list_layout.x = @list_layout_slide_range[1]
  6473.       @list_layout.opacity = 160
  6474.   end  
  6475.  
  6476. end
  6477.  
  6478. #==============================================================================
  6479. # ■ Scene_Skill
  6480. #==============================================================================
  6481. class Scene_Skill
  6482.  
  6483.   #--------------------------------------------------------------------------
  6484.   # ● Update Item Window
  6485.   #--------------------------------------------------------------------------               
  6486.   def update_item_window
  6487.       @press_time -= 1 if @press_time > 0
  6488.       update_item_command
  6489.       update_index_type
  6490.   end
  6491.  
  6492.   #--------------------------------------------------------------------------
  6493.   # ● Update Main Command
  6494.   #--------------------------------------------------------------------------        
  6495.   def update_item_command
  6496.       if Input.trigger?(:B)
  6497.          @phase = 0
  6498.          Sound.play_cancel
  6499.       end  
  6500.   end  
  6501.  
  6502.   #--------------------------------------------------------------------------
  6503.   # ● Update
  6504.   #--------------------------------------------------------------------------  
  6505.   def update_index_type
  6506.       return if @index_max <= 0
  6507.       return if @command_window == nil
  6508.       if Input.trigger?(:RIGHT)
  6509.          add_index(1)
  6510.       elsif Input.trigger?(:LEFT)   
  6511.          add_index(-1)
  6512.       end  
  6513.   end
  6514.  
  6515.   #--------------------------------------------------------------------------
  6516.   # ● Add Index
  6517.   #--------------------------------------------------------------------------   
  6518.   def add_index(value)
  6519.       Sound.play_cursor      
  6520.       @command_window.index += value
  6521.       @command_window.index = 0 if @command_window.index > @index_max
  6522.       @command_window.index = @index_max if @command_window.index < 0
  6523.       reset_item_index
  6524.   end   
  6525.  
  6526. end
  6527.  
  6528. #==============================================================================
  6529. # ■ Scene_Skill
  6530. #==============================================================================
  6531. class Scene_Skill
  6532.  
  6533.   #--------------------------------------------------------------------------
  6534.   # ● Update Item Window
  6535.   #--------------------------------------------------------------------------               
  6536.   def update_target_window
  6537.       update_target_command
  6538.   end
  6539.  
  6540.   #--------------------------------------------------------------------------
  6541.   # ● Update Main Command
  6542.   #--------------------------------------------------------------------------        
  6543.   def update_target_command
  6544.       if Input.trigger?(:B)
  6545.          @phase = 1
  6546.          @skill_window[@command_window.index].index = @item_pre_index
  6547.        end  
  6548.   end  
  6549.  
  6550. end
  6551.  
  6552. #==============================================================================
  6553. # ■ Window Base
  6554. #==============================================================================
  6555. class Window_Base < Window
  6556.  
  6557.   include MOG_MENU_EQUIP
  6558.  
  6559.   #--------------------------------------------------------------------------
  6560.   # ● Set Equip Font
  6561.   #--------------------------------------------------------------------------         
  6562.   def set_font_equip
  6563.       return if self.disposed?
  6564.       return if self.contents == nil
  6565.       self.contents.font.name = FONT_NAME
  6566.       self.contents.font.size = FONT_SIZE
  6567.       self.contents.font.bold = FONT_BOLD
  6568.       self.contents.font.italic = FONT_ITALIC
  6569.   end
  6570.  
  6571. end
  6572.  
  6573. #==============================================================================
  6574. # ■ Game_Temp
  6575. #==============================================================================
  6576. class Game_Temp
  6577.  
  6578.   #--------------------------------------------------------------------------
  6579.   # ● Execute Pre Cache Skill Menu
  6580.   #--------------------------------------------------------------------------   
  6581.   def execute_pre_cache_equip_menu
  6582.       @pre_cache_equip_menu = []
  6583.       @pre_cache_equip_menu.push(Cache.menu_equip("Background"))
  6584.       @pre_cache_equip_menu.push(Cache.menu_equip("Layout_U"))
  6585.       @pre_cache_equip_menu.push(Cache.menu_equip("Layout_R"))
  6586.       @pre_cache_equip_menu.push(Cache.menu_equip("Layout_D"))
  6587.       @pre_cache_equip_menu.push(Cache.menu_equip("Layout_L"))
  6588.       @pre_cache_equip_menu.push(Cache.menu_equip("Par_Number"))
  6589.   end   
  6590.  
  6591. end
  6592.  
  6593. #==============================================================================
  6594. # ■ Scene_Skill
  6595. #==============================================================================
  6596. class Scene_Equip
  6597.   include MOG_MENU_EQUIP
  6598.   include MOG_MENU_BASE
  6599.  
  6600.   #--------------------------------------------------------------------------
  6601.   # ● Main
  6602.   #--------------------------------------------------------------------------        
  6603.   def main
  6604.       execute_setup
  6605.       execute_loop
  6606.       execute_dispose
  6607.   end  
  6608.  
  6609.   #--------------------------------------------------------------------------
  6610.   # ● Execute Setup
  6611.   #--------------------------------------------------------------------------        
  6612.   def execute_setup
  6613.       @actor = $game_temp.actor_menu_temp
  6614.       @actor_old = @actor
  6615.       @phase = 0
  6616.       create_sprites
  6617.   end
  6618.  
  6619.   #--------------------------------------------------------------------------
  6620.   # ● Execute Lopp
  6621.   #--------------------------------------------------------------------------        
  6622.   def execute_loop
  6623.       Graphics.transition(10)
  6624.       loop do
  6625.          Input.update
  6626.          update
  6627.          Graphics.update
  6628.          break if SceneManager.scene != self
  6629.       end
  6630.   end
  6631.  
  6632. end
  6633.  
  6634. #==============================================================================
  6635. # ■ Window_EquipStatus
  6636. #==============================================================================
  6637. class Window_EquipStatus < Window_Base
  6638.  
  6639.   #--------------------------------------------------------------------------
  6640.   # ● Initializee
  6641.   #--------------------------------------------------------------------------
  6642.   def initialize(x, y)
  6643.       super(x, y, window_width, window_height)
  6644.       @actor = nil
  6645.       @temp_actor = nil
  6646.       self.visible = false
  6647.   end
  6648.  
  6649.   #--------------------------------------------------------------------------
  6650.   # ● Window Width
  6651.   #--------------------------------------------------------------------------
  6652.   def window_width
  6653.       return 208
  6654.   end
  6655.  
  6656.   #--------------------------------------------------------------------------
  6657.   # ● Window Height
  6658.   #--------------------------------------------------------------------------
  6659.   def window_height
  6660.       return 296
  6661.   end
  6662.  
  6663.   #--------------------------------------------------------------------------
  6664.   # ● Visible Line Number
  6665.   #--------------------------------------------------------------------------
  6666.   def visible_line_number
  6667.       return 1
  6668.   end
  6669.   #--------------------------------------------------------------------------
  6670.   # ● Actor
  6671.   #--------------------------------------------------------------------------
  6672.   def actor=(actor)
  6673.       return if @actor == actor
  6674.       @actor = actor
  6675.   end
  6676.  
  6677.   #--------------------------------------------------------------------------
  6678.   # ● Refresh
  6679.   #--------------------------------------------------------------------------
  6680.   def refresh
  6681.       contents.clear
  6682.   end
  6683.  
  6684.   #--------------------------------------------------------------------------
  6685.   # ● Set Temp Actor
  6686.   #--------------------------------------------------------------------------
  6687.   def set_temp_actor(temp_actor)
  6688.       return if @temp_actor == temp_actor
  6689.       @temp_actor = temp_actor
  6690.       $game_temp.temp_actor_equip = @temp_actor
  6691.   end
  6692.  
  6693. end
  6694.  
  6695. #==============================================================================
  6696. # ■ Window_EquipCommand
  6697. #==============================================================================
  6698. class Window_EquipCommand < Window_HorzCommand
  6699.  
  6700.   #--------------------------------------------------------------------------
  6701.   # ● Initialize
  6702.   #--------------------------------------------------------------------------
  6703.   def initialize(x, y, width)
  6704.       @window_width = width
  6705.       super(x, y)
  6706.   end
  6707.  
  6708.   #--------------------------------------------------------------------------
  6709.   # ● Window Width
  6710.   #--------------------------------------------------------------------------
  6711.   def window_width
  6712.       @window_width
  6713.   end
  6714.  
  6715.   #--------------------------------------------------------------------------
  6716.   # ● Col Max
  6717.   #--------------------------------------------------------------------------
  6718.   def col_max
  6719.       return 3
  6720.   end
  6721.  
  6722.   #--------------------------------------------------------------------------
  6723.   # ● Make Command List
  6724.   #--------------------------------------------------------------------------
  6725.   def make_command_list
  6726.       add_command(Vocab::equip2,   :equip)
  6727.       add_command(Vocab::optimize, :optimize)
  6728.       add_command(Vocab::clear,    :clear)
  6729.   end
  6730.  
  6731.   #--------------------------------------------------------------------------
  6732.   # ● Draw Item
  6733.   #--------------------------------------------------------------------------  
  6734.   def draw_item(index)
  6735.   end  
  6736.  
  6737. end
  6738.  
  6739. #==============================================================================
  6740. # ■ Window_EquipSlot
  6741. #==============================================================================
  6742. class Window_EquipSlot < Window_Selectable
  6743.  
  6744.   attr_reader   :status_window        
  6745.   attr_reader   :item_window
  6746.  
  6747.   #--------------------------------------------------------------------------
  6748.   # ● Initialize
  6749.   #--------------------------------------------------------------------------
  6750.   def initialize(x, y, width)
  6751.       super(x, y, width, window_height)
  6752.       @actor = nil   
  6753.       refresh
  6754.   end
  6755.  
  6756.   #--------------------------------------------------------------------------
  6757.   # ● Window Height
  6758.   #--------------------------------------------------------------------------
  6759.   def window_height
  6760.       fitting_height(visible_line_number)
  6761.   end
  6762.  
  6763.   #--------------------------------------------------------------------------
  6764.   # ● Visible Line Number
  6765.   #--------------------------------------------------------------------------
  6766.   def visible_line_number
  6767.       return 5
  6768.   end
  6769.  
  6770.   #--------------------------------------------------------------------------
  6771.   # ● Actor
  6772.   #--------------------------------------------------------------------------
  6773.   def actor=(actor)
  6774.       return if @actor == actor
  6775.       @actor = actor
  6776.       refresh
  6777.   end
  6778.  
  6779.   #--------------------------------------------------------------------------
  6780.   # ● Update
  6781.   #--------------------------------------------------------------------------
  6782.   def update
  6783.       super
  6784.       @item_window.slot_id = index if @item_window
  6785.   end
  6786.  
  6787.   #--------------------------------------------------------------------------
  6788.   # ● Item Max
  6789.   #--------------------------------------------------------------------------
  6790.   def item_max
  6791.       @actor ? @actor.equip_slots.size : 0
  6792.   end
  6793.  
  6794.   #--------------------------------------------------------------------------
  6795.   # ● Item
  6796.   #--------------------------------------------------------------------------
  6797.   def item
  6798.       @actor ? @actor.equips[index] : nil
  6799.   end
  6800.  
  6801.   #--------------------------------------------------------------------------
  6802.   # ● Draw Item
  6803.   #--------------------------------------------------------------------------
  6804.   def draw_item(index)
  6805.       return unless @actor
  6806.       rect = item_rect_for_text(index)
  6807.       change_color(system_color, enable?(index))
  6808.       set_font_equip
  6809.       draw_item_name(@actor.equips[index], rect.x + 92, rect.y, enable?(index))
  6810.   end
  6811.  
  6812.   #--------------------------------------------------------------------------
  6813.   # ● Slot Name
  6814.   #--------------------------------------------------------------------------
  6815.   def slot_name(index)
  6816.       @actor ? Vocab::etype(@actor.equip_slots[index]) : ""
  6817.   end
  6818.  
  6819.   #--------------------------------------------------------------------------
  6820.   # ● Enable
  6821.   #--------------------------------------------------------------------------
  6822.   def enable?(index)
  6823.       @actor ? @actor.equip_change_ok?(index) : false
  6824.   end
  6825.  
  6826.   #--------------------------------------------------------------------------
  6827.   # ● Current Item Enabled
  6828.   #--------------------------------------------------------------------------
  6829.   def current_item_enabled?
  6830.     enable?(index)
  6831.   end
  6832.  
  6833.   #--------------------------------------------------------------------------
  6834.   # ● Status  Window
  6835.   #--------------------------------------------------------------------------
  6836.   def status_window=(status_window)
  6837.       @status_window = status_window
  6838.       call_update_help
  6839.   end
  6840.  
  6841.   #--------------------------------------------------------------------------
  6842.   # ● Item Window
  6843.   #--------------------------------------------------------------------------
  6844.   def item_window=(item_window)
  6845.       @item_window = item_window
  6846.       update
  6847.   end
  6848.  
  6849.   #--------------------------------------------------------------------------
  6850.   # ● Update Help
  6851.   #--------------------------------------------------------------------------
  6852.   def update_help
  6853.       super
  6854.       @help_window.set_item(item) if @help_window
  6855.       $game_temp.temp_actor_equip = nil if @status_window
  6856.   end
  6857.  
  6858. end
  6859.  
  6860. #==============================================================================
  6861. # ■ Window_EquipItem
  6862. #==============================================================================
  6863. class Window_EquipItem_Menu < Window_ItemList
  6864.  
  6865.   attr_reader   :status_window   
  6866.   attr_accessor :windows_index
  6867.  
  6868.   #--------------------------------------------------------------------------
  6869.   # ● Initialize
  6870.   #--------------------------------------------------------------------------
  6871.   def initialize(x, y, width, height)
  6872.       super
  6873.       @actor = nil
  6874.       @slot_id = 0
  6875.       @windows_index = 0
  6876.       self.visible = false
  6877.       self.opacity = 0
  6878.   end
  6879.  
  6880.   #--------------------------------------------------------------------------
  6881.   # ● Col Max
  6882.   #--------------------------------------------------------------------------
  6883.   def col_max
  6884.       return 1
  6885.   end  
  6886.  
  6887.   #--------------------------------------------------------------------------
  6888.   # ● Actor
  6889.   #--------------------------------------------------------------------------
  6890.   def actor=(actor)
  6891.       return if @actor == actor
  6892.       @actor = actor
  6893.       self.oy = 0
  6894.   end
  6895.  
  6896.   #--------------------------------------------------------------------------
  6897.   # ● Setup
  6898.   #--------------------------------------------------------------------------  
  6899.   def setup(actor,equip_type,index)
  6900.       @actor = actor
  6901.       @slot_id = equip_type
  6902.       @windows_index = index      
  6903.       refresh
  6904.   end  
  6905.  
  6906.   #--------------------------------------------------------------------------
  6907.   # ● Slot ID
  6908.   #--------------------------------------------------------------------------
  6909.   def slot_id=(slot_id)
  6910.   end
  6911.  
  6912.   #--------------------------------------------------------------------------
  6913.   # ● Include?
  6914.   #--------------------------------------------------------------------------
  6915.   def include?(item)
  6916.       return true if item == nil
  6917.       return false unless item.is_a?(RPG::EquipItem)
  6918.       return false if @slot_id < 0
  6919.       return false if item.etype_id != @actor.equip_slots[@slot_id]
  6920.       return @actor.equippable?(item)
  6921.   end
  6922.  
  6923.   #--------------------------------------------------------------------------
  6924.   # ● Enable?
  6925.   #--------------------------------------------------------------------------
  6926.   def enable?(item)
  6927.       return true
  6928.   end
  6929.  
  6930.   #--------------------------------------------------------------------------
  6931.   # ● Select Last
  6932.   #--------------------------------------------------------------------------
  6933.   def select_last
  6934.   end
  6935.  
  6936.   #--------------------------------------------------------------------------
  6937.   # ● Status Window
  6938.   #--------------------------------------------------------------------------
  6939.   def status_window=(status_window)
  6940.       @status_window = status_window
  6941.       call_update_help
  6942.   end
  6943.  
  6944.   #--------------------------------------------------------------------------
  6945.   # ● Update Help
  6946.   #--------------------------------------------------------------------------
  6947.   def update_help
  6948.       super
  6949.       if @actor && @status_window
  6950.          temp_actor = Marshal.load(Marshal.dump(@actor))
  6951.          temp_actor.force_change_equip(@slot_id, item)
  6952.          $game_temp.temp_actor_equip = temp_actor
  6953.       end
  6954.   end
  6955.  
  6956.   #--------------------------------------------------------------------------
  6957.   # ● Draw Item
  6958.   #--------------------------------------------------------------------------
  6959.   def draw_item(index)
  6960.       item = @data[index]
  6961.       if item
  6962.           set_font_equip
  6963.           rect = item_rect(index)
  6964.           rect.width -= 4
  6965.           draw_item_name(item, rect.x, rect.y, enable?(item))
  6966.           draw_item_number(rect, item)
  6967.       end
  6968.   end      
  6969.  
  6970.   #--------------------------------------------------------------------------
  6971.   # ● Draw Item Number
  6972.   #--------------------------------------------------------------------------
  6973.   def draw_item_number(rect, item)
  6974.       draw_text(rect, sprintf(": %2d", $game_party.item_number(item)), 2)
  6975.   end  
  6976.  
  6977. end
  6978.  
  6979. module MOG_EQUIP_STATUS  
  6980.   LAYOUT_POSITION = [0,80]
  6981.   FACE_POSITION = [120,-45]
  6982.   PAR_POSITION = [5,32]
  6983.   NAME_POSITION = [15,-5]
  6984.   FONT_NAME = "Georgia"
  6985.   FONT_SIZE = 18
  6986.   FONT_BOLD = true
  6987. end
  6988.  
  6989.  
  6990. #==============================================================================
  6991. # ■ Actor Menu Status
  6992. #==============================================================================
  6993. class Actor_Equip_Status
  6994.  
  6995.   include MOG_EQUIP_STATUS  
  6996.  
  6997.   #--------------------------------------------------------------------------
  6998.   # ● Initialize
  6999.   #--------------------------------------------------------------------------
  7000.   def initialize(actor)
  7001.       @actor = actor
  7002.       @actor_old = @actor
  7003.       $game_temp.temp_actor_equip = nil
  7004.       @old_temp_actor = $game_temp.temp_actor_equip
  7005.       set_old_parameter
  7006.       create_sprites
  7007.   end
  7008.  
  7009.   #--------------------------------------------------------------------------
  7010.   # ● Create Sprites
  7011.   #--------------------------------------------------------------------------  
  7012.   def create_sprites
  7013.       @parameter_number = $game_temp.pre_cache_equip_menu[5]
  7014.       @parameter_cw = @parameter_number.width / 11
  7015.       @parameter_ch = @parameter_number.height / 3
  7016.       create_layout
  7017.       create_face
  7018.       create_parameter
  7019.       create_name
  7020.   end
  7021.  
  7022.   #--------------------------------------------------------------------------
  7023.   # ● Dispose
  7024.   #--------------------------------------------------------------------------  
  7025.   def dispose
  7026.       dispose_layout
  7027.       dispose_face
  7028.       dispose_parameter
  7029.       dispose_name
  7030.   end
  7031.  
  7032.   #--------------------------------------------------------------------------
  7033.   # ● Dispose Layout
  7034.   #--------------------------------------------------------------------------   
  7035.   def dispose_layout
  7036.       @layout.dispose
  7037.   end
  7038.  
  7039.   #--------------------------------------------------------------------------
  7040.   # ● Dispose Face
  7041.   #--------------------------------------------------------------------------   
  7042.   def dispose_face
  7043.       @face.dispose
  7044.   end  
  7045.  
  7046.   #--------------------------------------------------------------------------
  7047.   # ● Dispose Parameter
  7048.   #--------------------------------------------------------------------------      
  7049.   def dispose_parameter
  7050.       @parameter.bitmap.dispose
  7051.       @parameter.dispose
  7052.   end
  7053.  
  7054.   #--------------------------------------------------------------------------
  7055.   # ● Dispose Name
  7056.   #--------------------------------------------------------------------------        
  7057.   def dispose_name
  7058.       @name.bitmap.dispose
  7059.       @name.dispose
  7060.   end
  7061.  
  7062.   #--------------------------------------------------------------------------
  7063.   # ● Create Layout
  7064.   #--------------------------------------------------------------------------
  7065.   def create_layout
  7066.       @layout = Sprite.new
  7067.       @layout.bitmap = $game_temp.pre_cache_equip_menu[4]
  7068.       @org_pos = [LAYOUT_POSITION[0],LAYOUT_POSITION[1]]
  7069.       @layout.x = @org_pos[0] - 150
  7070.       @layout.y = @org_pos[1]
  7071.       @layout.z = 10
  7072.       @layout.opacity = 0
  7073.       @slide_range = (@org_pos[0] - 150)
  7074.   end
  7075.  
  7076.   #--------------------------------------------------------------------------
  7077.   # ● Create Parameter
  7078.   #--------------------------------------------------------------------------
  7079.   def create_parameter
  7080.       @parameter = Sprite.new
  7081.       @parameter.bitmap = Bitmap.new(@layout.bitmap.width,@layout.bitmap.height)
  7082.       @org_pos_par = [@org_pos[0] + PAR_POSITION[0],
  7083.                       @org_pos[1] + PAR_POSITION[1]]
  7084.       @parameter.x = @org_pos_par[0] - 150
  7085.       @parameter.y = @org_pos_par[1]
  7086.       @parameter.z = 11
  7087.       @parameter.opacity = 0
  7088.       refresh_parameter
  7089.   end
  7090.  
  7091.   #--------------------------------------------------------------------------
  7092.   # ● Create Face
  7093.   #--------------------------------------------------------------------------  
  7094.   def create_face
  7095.       @face = Sprite.new
  7096.       @org_pos_face = [@org_pos[0] + FACE_POSITION[0],
  7097.                        @org_pos[1] + FACE_POSITION[1]]
  7098.       @face.x = @org_pos_face[0] - 150
  7099.       @face.y = @org_pos_face[1]
  7100.       @face.z = 11
  7101.       @face.opacity = 0
  7102.       refresh_face
  7103.   end
  7104.  
  7105.   #--------------------------------------------------------------------------
  7106.   # ● Create Name
  7107.   #--------------------------------------------------------------------------   
  7108.   def create_name
  7109.       @name = Sprite.new
  7110.       @name.bitmap = Bitmap.new(140,32)
  7111.       @name.bitmap.font.name = FONT_NAME
  7112.       @name.bitmap.font.size = FONT_SIZE
  7113.       @name.bitmap.font.bold = FONT_BOLD
  7114.       @org_pos_name = [@org_pos[0] + NAME_POSITION[0],
  7115.                        @org_pos[1] + NAME_POSITION[1]]
  7116.       @name.x = @org_pos_name[0] - 150
  7117.       @name.y = @org_pos_name[1]
  7118.       @name.z = 11
  7119.       @name.opacity = 0
  7120.       refresh_name     
  7121.   end  
  7122.  
  7123.   #--------------------------------------------------------------------------
  7124.   # ● Set Old Parameter
  7125.   #--------------------------------------------------------------------------  
  7126.   def set_old_parameter
  7127.       @par = [] if @par == nil
  7128.       @par.clear
  7129.       @par = [
  7130.       @actor.param(0),@actor.param(1),@actor.param(2),@actor.param(3),
  7131.       @actor.param(4),@actor.param(5),@actor.param(6),@actor.param(7),
  7132.       @old_temp_actor
  7133.       ]
  7134.   end   
  7135.  
  7136.   #--------------------------------------------------------------------------
  7137.   # ● Can Refresh Parameter
  7138.   #--------------------------------------------------------------------------
  7139.   def can_refresh_parameter?
  7140.       return true if @par[0] != @actor.param(0)
  7141.       return true if @par[1] != @actor.param(1)
  7142.       return true if @par[2] != @actor.param(2)
  7143.       return true if @par[3] != @actor.param(3)
  7144.       return true if @par[4] != @actor.param(4)
  7145.       return true if @par[5] != @actor.param(5)
  7146.       return true if @par[6] != @actor.param(6)
  7147.       return true if @par[7] != @actor.param(7)
  7148.       return true if @old_temp_actor != $game_temp.temp_actor_equip
  7149.       return false
  7150.   end  
  7151.  
  7152.   #--------------------------------------------------------------------------
  7153.   # ● Refresh Name
  7154.   #--------------------------------------------------------------------------      
  7155.   def refresh_name   
  7156.       @name.bitmap.clear
  7157.       @name.bitmap.draw_text(0,0,140,32,@actor.name.to_s,0)
  7158.   end
  7159.  
  7160.   #--------------------------------------------------------------------------
  7161.   # ● Create Face
  7162.   #--------------------------------------------------------------------------   
  7163.   def refresh_parameter
  7164.       set_old_parameter
  7165.       @parameter.bitmap.clear
  7166.       @old_temp_actor = $game_temp.temp_actor_equip
  7167.       x = 180      
  7168.       for p in 0...8
  7169.           y = 24 * p
  7170.           refresh_number(@parameter,@parameter_number,p,@parameter_cw,@parameter_ch,x,y,0)
  7171.       end      
  7172.       if $game_temp.temp_actor_equip != nil
  7173.          x = 180 - (@parameter_cw * 7)
  7174.          for p in 0...8
  7175.              y = 24 * p
  7176.              refresh_number(@parameter,@parameter_number,p,@parameter_cw,@parameter_ch,x,y,1)
  7177.          end     
  7178.      end
  7179.   end
  7180.  
  7181.   #--------------------------------------------------------------------------
  7182.   # ● Refresh Number
  7183.   #--------------------------------------------------------------------------     
  7184.   def refresh_number(sprite,image,p,number_cw,number_ch,x,y,type)
  7185.       value = @actor.param(p)
  7186.       new_value = 0
  7187.       ch = 0
  7188.       if type == 1         
  7189.          if $game_temp.temp_actor_equip != nil
  7190.             new_value = $game_temp.temp_actor_equip.param(p)
  7191.          end         
  7192.          d_value = new_value - value
  7193.          if d_value < 0
  7194.             ch = 2
  7195.          elsif d_value > 0
  7196.             ch = 1
  7197.          else
  7198.             ch = 0
  7199.          end   
  7200.          value = new_value
  7201.       end
  7202.       draw_arrow(sprite,image,number_cw,number_ch,x,y,ch)
  7203.       draw_number(sprite,image,value,number_cw,number_ch,x,y,ch)
  7204.   end
  7205.  
  7206.   #--------------------------------------------------------------------------
  7207.   # ● Draw Arrow
  7208.   #--------------------------------------------------------------------------        
  7209.   def draw_arrow(sprite,image,number_cw,number_ch,x,y,ch)
  7210.       nsrc_rect = Rect.new(number_cw * 10, number_ch * ch , number_cw , number_ch)
  7211.       sprite.bitmap.blt(x + number_cw, y, image, nsrc_rect)     
  7212.   end
  7213.  
  7214.   #--------------------------------------------------------------------------
  7215.   # ● Draw Number
  7216.   #--------------------------------------------------------------------------      
  7217.   def draw_number(sprite,image,value,number_cw,number_ch,x,y,ch)
  7218.       number = value.truncate.abs.to_s.split(//)
  7219.       x2 = -number_cw * number.size
  7220.       for i in 0..number.size  - 1
  7221.           number_abs = number[i].to_i
  7222.           nsrc_rect = Rect.new(number_cw * number_abs, number_ch * ch , number_cw , number_ch)
  7223.           sprite.bitmap.blt(x + x2 + (number_cw  *  i), y, image, nsrc_rect)        
  7224.       end      
  7225.   end
  7226.  
  7227.   #--------------------------------------------------------------------------
  7228.   # ● Refresh Face
  7229.   #--------------------------------------------------------------------------  
  7230.   def refresh_face
  7231.       face_name = "Face" + @actor.id.to_s
  7232.       @face.bitmap = Cache.menu(face_name.to_s)
  7233.   end
  7234.  
  7235.   #--------------------------------------------------------------------------
  7236.   # ● Update Move
  7237.   #--------------------------------------------------------------------------  
  7238.   def update_move
  7239.       update_slide(0,@layout,@layout.x,@org_pos[0])
  7240.       update_slide(1,@layout,@layout.y,@org_pos[1])      
  7241.       update_slide(0,@parameter,@parameter.x,@org_pos_par[0])
  7242.       update_slide(1,@parameter,@parameter.y,@org_pos_par[1])
  7243.       update_slide(0,@face,@face.x,@org_pos_face[0])
  7244.       update_slide(1,@face,@face.y,@org_pos_face[1])
  7245.       update_slide(0,@name,@name.x,@org_pos_name[0])
  7246.       update_slide(1,@name,@name.y,@org_pos_name[1])
  7247.   end
  7248.  
  7249. #--------------------------------------------------------------------------
  7250. # ● Update Slide
  7251. #--------------------------------------------------------------------------                       
  7252.   def update_slide(type,sprite,cp,np)
  7253.       sprite.opacity += 5
  7254.       sp = 3 + ((cp - np).abs / 10)
  7255.       if cp > np
  7256.          cp -= sp
  7257.          cp = np if cp < np
  7258.       elsif cp < np
  7259.          cp += sp
  7260.          cp = np if cp > np
  7261.       end     
  7262.       sprite.x = cp if type == 0
  7263.       sprite.y = cp if type == 1
  7264.   end      
  7265.  
  7266.   #--------------------------------------------------------------------------
  7267.   # ● Refresh All
  7268.   #--------------------------------------------------------------------------  
  7269.   def refresh_all(actor)      
  7270.       @actor = actor
  7271.       refresh_parameter
  7272.       refresh_face
  7273.       refresh_name
  7274.   end   
  7275.  
  7276.   #--------------------------------------------------------------------------
  7277.   # ● Update
  7278.   #--------------------------------------------------------------------------
  7279.   def update(actor)
  7280.       update_move
  7281.       refresh_all(actor) if actor != @actor
  7282.       refresh_parameter if can_refresh_parameter?
  7283.   end      
  7284.  
  7285. end
  7286.  
  7287. #==============================================================================
  7288. # ■ Scene_Equip
  7289. #==============================================================================
  7290. class Scene_Equip
  7291.  
  7292.   #--------------------------------------------------------------------------
  7293.   # ● Create Sprites
  7294.   #--------------------------------------------------------------------------
  7295.   def create_sprites
  7296.       create_menu_background
  7297.       create_layout
  7298.       create_particles
  7299.       create_help_window
  7300.       create_status_window
  7301.       create_command_window
  7302.       create_slot_window
  7303.       create_item_window
  7304.       create_actor_status
  7305.       set_sprite_position
  7306.   end
  7307.  
  7308.   #--------------------------------------------------------------------------
  7309.   # ● Set Sprite Position
  7310.   #--------------------------------------------------------------------------  
  7311.   def set_sprite_position
  7312.       @status_window.opacity = 0
  7313.       @command_window.opacity = 0
  7314.       @slot_window.opacity = 0
  7315.       @help_window.opacity = 0
  7316.       @status_window.contents_opacity = 0
  7317.       @command_window.contents_opacity = 0
  7318.       @slot_window.contents_opacity = 0
  7319.       @help_window.contents_opacity = 0      
  7320.       @layout2.opacity = 0
  7321.       @layout3.opacity = 0
  7322.       @layout4.opacity = 0
  7323.       @org_pos_help = [@help_window.x,@help_window.y]
  7324.       @help_window.x = @org_pos_help[0]
  7325.       @help_window.y = @org_pos_help[1] + 150     
  7326.       @org_pos_com = [@command_window.x,@command_window.y]
  7327.       @command_window.x = @org_pos_com[0]
  7328.       @command_window.y = @org_pos_com[1] - 150
  7329.       @org_pos_slot = [@slot_window.x,@slot_window.y]
  7330.       @slot_window.x = @org_pos_slot[0] + 150
  7331.       @slot_window.y = @org_pos_slot[1]      
  7332.       @layout2.y = -150
  7333.       @layout3.x = 150
  7334.       @layout4.y = 150      
  7335.   end
  7336.  
  7337.   #--------------------------------------------------------------------------
  7338.   # ● Create Actor Status
  7339.   #--------------------------------------------------------------------------  
  7340.   def create_actor_status
  7341.       @actor_status = Actor_Equip_Status.new(@actor)
  7342.   end  
  7343.  
  7344.   #--------------------------------------------------------------------------
  7345.   # ● Create Menu Background
  7346.   #--------------------------------------------------------------------------            
  7347.   def create_menu_background
  7348.       @background = Plane.new
  7349.       @background.bitmap = $game_temp.pre_cache_equip_menu[0]
  7350.       @background.z = 0
  7351.       @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  7352.   end   
  7353.  
  7354.   #--------------------------------------------------------------------------
  7355.   # ● Create Layout
  7356.   #--------------------------------------------------------------------------              
  7357.   def create_layout     
  7358.       @layout2 = Sprite.new
  7359.       @layout2.bitmap = $game_temp.pre_cache_equip_menu[1]
  7360.       @layout2.z = 3
  7361.       @layout3 = Sprite.new
  7362.       @layout3.bitmap = $game_temp.pre_cache_equip_menu[2]
  7363.       @layout3.z = 3
  7364.       @layout4 = Sprite.new
  7365.       @layout4.bitmap = $game_temp.pre_cache_equip_menu[3]
  7366.       @layout4.z = 3
  7367.   end  
  7368.  
  7369.   #--------------------------------------------------------------------------
  7370.   # ● Create Particles
  7371.   #--------------------------------------------------------------------------  
  7372.   def create_particles
  7373.       @particles_sprite =[]
  7374.       for i in 0...NUMBER_OF_PARTICLES
  7375.           @particles_sprite.push(Particles_Menu.new(nil))
  7376.       end
  7377.   end   
  7378.  
  7379.   #--------------------------------------------------------------------------
  7380.   # ● Create Help Window
  7381.   #--------------------------------------------------------------------------              
  7382.   def create_help_window
  7383.       @help_window = Window_Help.new
  7384.       @help_window.x = 0
  7385.       @help_window.y = Graphics.height - @help_window.height
  7386.       @help_window.set_font_equip
  7387.   end     
  7388.  
  7389.   #--------------------------------------------------------------------------
  7390.   # ● Create Status Window
  7391.   #--------------------------------------------------------------------------
  7392.   def create_status_window
  7393.       @status_window = Window_EquipStatus.new(0, @help_window.height)
  7394.       @status_window.viewport = @viewport
  7395.       @status_window.actor = @actor
  7396.       @status_window.y = 48
  7397.   end
  7398.  
  7399.   #--------------------------------------------------------------------------
  7400.   # ● Create Command Window
  7401.   #--------------------------------------------------------------------------
  7402.   def create_command_window
  7403.       @command_window = Window_EquipCommand.new(208, 0, 336)
  7404.       @command_window.help_window = @help_window
  7405.       @command_window.set_handler(:equip,    method(:command_equip))
  7406.       @command_window.set_handler(:optimize, method(:command_optimize))
  7407.       @command_window.set_handler(:clear,    method(:command_clear))
  7408.       @command_window.set_handler(:cancel,   method(:return_scene))
  7409.       @command_window.set_handler(:pagedown, method(:next_actor))
  7410.       @command_window.set_handler(:pageup,   method(:prev_actor))
  7411.   end
  7412.  
  7413.   #--------------------------------------------------------------------------
  7414.   # ● Create Slot Window
  7415.   #--------------------------------------------------------------------------
  7416.   def create_slot_window
  7417.       wx = @status_window.width
  7418.       wy = @command_window.y + @command_window.height + 5
  7419.       ww = Graphics.width - @status_window.width
  7420.       @slot_window = Window_EquipSlot.new(wx, wy, ww)
  7421.       @slot_window.help_window = @help_window
  7422.       @slot_window.status_window = @status_window
  7423.       @slot_window.actor = @actor
  7424.       @slot_window.set_handler(:ok,       method(:on_slot_ok))
  7425.       @slot_window.set_handler(:cancel,   method(:on_slot_cancel))
  7426.       @slot_window.set_handler(:pagedown, method(:next_actor))
  7427.       @slot_window.set_handler(:pageup,   method(:prev_actor))  
  7428.   end
  7429.  
  7430.   #--------------------------------------------------------------------------
  7431.   # ● Create Item Window
  7432.   #--------------------------------------------------------------------------
  7433.   def create_item_window
  7434.       @equip_window = []
  7435.       index = 0
  7436.       window_max = 5
  7437.       for item in 0...window_max     
  7438.           wx = @slot_window.x
  7439.           wy = @slot_window.y + @slot_window.height + 5
  7440.           ww = @slot_window.width
  7441.           wh = @slot_window.height
  7442.           @equip_window.push(Window_EquipItem_Menu.new(wx, wy, ww, wh))
  7443.           @equip_window[item].setup(@actor,item, index)
  7444.           @equip_window[item].visible = false
  7445.           @equip_window[item].help_window = @help_window
  7446.           @equip_window[item].status_window = @status_window
  7447.           @equip_window[item].actor = @actor
  7448.           @equip_window[item].set_handler(:ok,     method(:on_item_ok))
  7449.           @equip_window[item].set_handler(:cancel, method(:on_item_cancel))
  7450.           @equip_window[item].opacity = 0
  7451.           @org_pos_equip = [@equip_window[item].x,@equip_window[item].y]
  7452.           index += 1
  7453.        end     
  7454.  
  7455.    end
  7456.  
  7457. end
  7458.  
  7459. #==============================================================================
  7460. # ■ Scene_Equip
  7461. #==============================================================================
  7462. class Scene_Equip
  7463.  
  7464.   #--------------------------------------------------------------------------
  7465.   # ● Execute Dispose
  7466.   #--------------------------------------------------------------------------        
  7467.   def execute_dispose
  7468.       Graphics.freeze
  7469.       dispose_background
  7470.       dispose_layout
  7471.       dispose_particles
  7472.       dispose_window
  7473.       dispose_actor_status
  7474.   end
  7475.  
  7476.   #--------------------------------------------------------------------------
  7477.   # ● Dispose Background
  7478.   #--------------------------------------------------------------------------  
  7479.   def dispose_background
  7480.       return if @background == nil
  7481.       @background.dispose
  7482.       @background = nil
  7483.   end
  7484.  
  7485.   #--------------------------------------------------------------------------
  7486.   # ● Dispose Layout
  7487.   #--------------------------------------------------------------------------               
  7488.   def dispose_layout
  7489.       return if @layout2 == nil
  7490.       @layout2.dispose
  7491.       @layout3.dispose
  7492.       @layout4.dispose
  7493.       @layout2 = nil
  7494.   end  
  7495.  
  7496. #--------------------------------------------------------------------------
  7497. # ● Dispose Particles
  7498. #--------------------------------------------------------------------------   
  7499. def dispose_particles
  7500.      return if @particles_sprite == nil
  7501.      @particles_sprite.each {|sprite| sprite.dispose }
  7502. end     
  7503.  
  7504.   #--------------------------------------------------------------------------
  7505.   # ● Dispose Window
  7506.   #--------------------------------------------------------------------------         
  7507.   def dispose_window
  7508.       @status_window.dispose
  7509.       @command_window.dispose
  7510.       @slot_window.dispose
  7511.       @equip_window.each {|sprite| sprite.dispose }
  7512.       @help_window.dispose
  7513.   end  
  7514.  
  7515.   #--------------------------------------------------------------------------
  7516.   # ● Dispose Actor Status
  7517.   #--------------------------------------------------------------------------  
  7518.   def dispose_actor_status
  7519.       return if @actor_status == nil
  7520.       @actor_status.dispose
  7521.   end   
  7522.  
  7523. end
  7524.  
  7525. #==============================================================================
  7526. # ■ Scene_Equip
  7527. #==============================================================================
  7528. class Scene_Equip   
  7529.  
  7530.   #--------------------------------------------------------------------------
  7531.   # ● Update Sprites
  7532.   #--------------------------------------------------------------------------         
  7533.   def update_sprites
  7534.       update_actor_status
  7535.       update_background
  7536.       update_particles
  7537.       update_window
  7538.       update_move
  7539.   end
  7540.  
  7541.   #--------------------------------------------------------------------------
  7542.   # ● Update Move
  7543.   #--------------------------------------------------------------------------
  7544.   def update_move
  7545.  
  7546.       update_slide(0,@command_window,@org_pos_com[0],0)
  7547.       update_slide(1,@command_window,@org_pos_com[1],0)
  7548.  
  7549.       update_slide(0,@help_window,@org_pos_help[0],0)
  7550.       update_slide(1,@help_window,@org_pos_help[1],0)      
  7551.  
  7552.       update_slide(0,@slot_window,@org_pos_slot[0],0)
  7553.       update_slide(1,@slot_window,@org_pos_slot[1],0)        
  7554.  
  7555.       update_slide(0,@layout2,0,1)
  7556.       update_slide(1,@layout2,0,1)
  7557.  
  7558.       update_slide(0,@layout3,0,1)
  7559.       update_slide(1,@layout3,0,1)      
  7560.  
  7561.       update_slide(0,@layout4,0,1)
  7562.       update_slide(1,@layout4,0,1)      
  7563.  
  7564.   end
  7565.  
  7566. #--------------------------------------------------------------------------
  7567. # ● Update Slide
  7568. #--------------------------------------------------------------------------                       
  7569.   def update_slide(type,sprite,np,op_type)
  7570.       if op_type == 0
  7571.          sprite.contents_opacity += 5
  7572.       else
  7573.          sprite.opacity += 5
  7574.       end
  7575.       cp = type == 0 ? sprite.x : sprite.y
  7576.       sp = 3 + ((cp - np).abs / 10)
  7577.       if cp > np
  7578.          cp -= sp
  7579.          cp = np if cp < np
  7580.       elsif cp < np
  7581.          cp += sp
  7582.          cp = np if cp > np
  7583.       end     
  7584.       sprite.x = cp if type == 0
  7585.       sprite.y = cp if type == 1
  7586.   end   
  7587.  
  7588.   #--------------------------------------------------------------------------
  7589.   # ● Update Actor Status
  7590.   #--------------------------------------------------------------------------            
  7591.   def update_actor_status
  7592.       return if @actor_status == nil
  7593.       @actor_status.update(@actor)
  7594.   end
  7595.  
  7596.   #--------------------------------------------------------------------------
  7597.   # ● Update Background
  7598.   #--------------------------------------------------------------------------              
  7599.   def update_background
  7600.       return if @background == nil
  7601.       @background.ox += @background_scroll[0]
  7602.       @background.oy += @background_scroll[1]
  7603.   end   
  7604.  
  7605.   #--------------------------------------------------------------------------
  7606.   # ● Update Particles
  7607.   #--------------------------------------------------------------------------  
  7608.   def update_particles
  7609.       return if @particles_sprite == nil
  7610.       @particles_sprite.each {|sprite| sprite.update }
  7611.   end  
  7612.  
  7613.   #--------------------------------------------------------------------------
  7614.   # ● Update Window
  7615.   #--------------------------------------------------------------------------            
  7616.   def update_window
  7617.       @status_window.update
  7618.       @command_window.update
  7619.       @slot_window.update
  7620.       for equip in @equip_window
  7621.           update_slide(0,equip,@org_pos_equip[0],0)
  7622.           update_slide(1,equip,@org_pos_equip[1],0)           
  7623.           if equip.windows_index == @slot_window.index
  7624.              equip.visible = true
  7625.              equip.update  
  7626.           else
  7627.              equip.visible = false
  7628.           end
  7629.       end  
  7630.   end
  7631.  
  7632. end
  7633.  
  7634. #==============================================================================
  7635. # ■ Scene_Equip
  7636. #==============================================================================
  7637. class Scene_Equip
  7638.  
  7639.   #--------------------------------------------------------------------------
  7640.   # ● Update
  7641.   #--------------------------------------------------------------------------      
  7642.   def update
  7643.       update_sprites
  7644.       update_command
  7645.   end
  7646.  
  7647.   #--------------------------------------------------------------------------
  7648.   # ● Command Equip
  7649.   #--------------------------------------------------------------------------
  7650.   def command_equip
  7651.       @slot_window.activate
  7652.       @slot_window.select(0)
  7653.   end
  7654.  
  7655.   #--------------------------------------------------------------------------
  7656.   # ● Command Optimize
  7657.   #--------------------------------------------------------------------------
  7658.   def command_optimize
  7659.       Sound.play_equip
  7660.       @actor.optimize_equipments
  7661.       @status_window.refresh
  7662.       @slot_window.refresh
  7663.       @command_window.activate
  7664.   end
  7665.  
  7666.   #--------------------------------------------------------------------------
  7667.   # ● Command Clear
  7668.   #--------------------------------------------------------------------------
  7669.   def command_clear
  7670.       Sound.play_equip
  7671.       @actor.clear_equipments
  7672.       @status_window.refresh
  7673.       @slot_window.refresh
  7674.       @command_window.activate
  7675.   end
  7676.  
  7677.   #--------------------------------------------------------------------------
  7678.   # ● On Slot OK
  7679.   #--------------------------------------------------------------------------
  7680.   def on_slot_ok
  7681.       @equip_window[@slot_window.index].activate
  7682.       @equip_window[@slot_window.index].select(0)
  7683.   end
  7684.  
  7685.   #--------------------------------------------------------------------------
  7686.   # ● On Slot Cancel
  7687.   #--------------------------------------------------------------------------
  7688.   def on_slot_cancel
  7689.       @slot_window.unselect
  7690.       @command_window.activate
  7691.   end
  7692.  
  7693.   #--------------------------------------------------------------------------
  7694.   # ● On Item OK
  7695.   #--------------------------------------------------------------------------
  7696.   def on_item_ok
  7697.       Sound.play_equip
  7698.       @actor.change_equip(@slot_window.index, @equip_window[@slot_window.index].item)
  7699.       @slot_window.activate
  7700.       @slot_window.refresh
  7701.       @equip_window[@slot_window.index].unselect
  7702.       @equip_window[@slot_window.index].refresh
  7703.   end
  7704.  
  7705.   #--------------------------------------------------------------------------
  7706.   # ● On Item Cancel
  7707.   #--------------------------------------------------------------------------
  7708.   def on_item_cancel
  7709.       @slot_window.activate
  7710.       @equip_window[@slot_window.index].unselect
  7711.   end
  7712.  
  7713.   #--------------------------------------------------------------------------
  7714.   # ● Return Scene
  7715.   #--------------------------------------------------------------------------         
  7716.   def return_scene
  7717.       Sound.play_cancel
  7718.       SceneManager.return
  7719.     end
  7720.  
  7721.   #--------------------------------------------------------------------------
  7722.   # ● ON Actor Charge
  7723.   #--------------------------------------------------------------------------
  7724.   def on_actor_change
  7725.       $game_temp.actor_menu_temp = @actor
  7726.       SceneManager.goto(Scene_Equip)
  7727.   end  
  7728.  
  7729. end
  7730.  
  7731. #==============================================================================
  7732. # ■ Scene_Equip
  7733. #==============================================================================
  7734. class Scene_Equip
  7735.  
  7736.   #--------------------------------------------------------------------------
  7737.   # ● Update Command
  7738.   #--------------------------------------------------------------------------      
  7739.   def update_command
  7740.  
  7741.   end
  7742.  
  7743. end
  7744.  
  7745. #==============================================================================
  7746. # ■ Game_Temp
  7747. #==============================================================================
  7748. class Game_Temp
  7749.  
  7750.   #--------------------------------------------------------------------------
  7751.   # ● Execute Pre Cache Status Menu
  7752.   #--------------------------------------------------------------------------   
  7753.   def execute_pre_cache_status_menu
  7754.       @pre_cache_status_menu = []
  7755.       @pre_cache_status_menu.push(Cache.menu_status("Background"))
  7756.       @pre_cache_status_menu.push(Cache.menu_status("Layout"))
  7757.   end   
  7758.  
  7759. end
  7760.  
  7761.  
  7762.  
  7763. =begin
  7764. #==============================================================================
  7765. # ■ Scene_Status
  7766. #==============================================================================
  7767. class Scene_Status
  7768.   include MOG_MENU_STATUS
  7769.   include MOG_MENU_BASE
  7770.  
  7771.   #--------------------------------------------------------------------------
  7772.   # ● Main
  7773.   #--------------------------------------------------------------------------        
  7774.   def main
  7775.       execute_setup
  7776.       execute_loop
  7777.       execute_dispose
  7778.   end  
  7779.  
  7780.   #--------------------------------------------------------------------------
  7781.   # ● Execute Setup
  7782.   #--------------------------------------------------------------------------        
  7783.   def execute_setup
  7784.       @actor = $game_temp.actor_menu_temp
  7785.       @actor_old = @actor
  7786.       @phase = 0
  7787.       create_sprites
  7788.   end
  7789.  
  7790.   #--------------------------------------------------------------------------
  7791.   # ● Execute Lopp
  7792.   #--------------------------------------------------------------------------        
  7793.   def execute_loop
  7794.       Graphics.transition(10)
  7795.       loop do
  7796.          Input.update
  7797.          update
  7798.          Graphics.update
  7799.          break if SceneManager.scene != self
  7800.       end
  7801.   end
  7802.  
  7803. end
  7804.  
  7805. #==============================================================================
  7806. # ■ Window_Status
  7807. #==============================================================================
  7808. class Window_Status < Window_Selectable
  7809.  
  7810.   #--------------------------------------------------------------------------
  7811.   # ● Initialize
  7812.   #--------------------------------------------------------------------------
  7813.   def initialize(actor)
  7814.       super(-16, -16, Graphics.width + 32, Graphics.height + 32)
  7815.       @actor = actor
  7816.       self.z = 10
  7817.       refresh
  7818.       activate
  7819.   end
  7820.  
  7821.   #--------------------------------------------------------------------------
  7822.   # ● Actor
  7823.   #--------------------------------------------------------------------------
  7824.   def actor=(actor)
  7825.       return if @actor == actor
  7826.       @actor = actor
  7827.       refresh
  7828.   end
  7829.  
  7830.   #--------------------------------------------------------------------------
  7831.   # ● Refresh
  7832.   #--------------------------------------------------------------------------
  7833.   def refresh
  7834.       contents.clear
  7835.       draw_description
  7836.       self.contents.font.size = 18
  7837.       self.contents.font.bold = true
  7838.       self.contents.font.name = "Georgia"
  7839.       draw_exp_info
  7840.       draw_parameters      
  7841.       draw_equipments
  7842.       draw_actor_hp_mp_tp
  7843.       draw_actor_name
  7844.  
  7845.   end
  7846.  
  7847.   #--------------------------------------------------------------------------
  7848.   # ● Draw Actor Name
  7849.   #--------------------------------------------------------------------------  
  7850.   def draw_actor_name
  7851.       self.contents.font.name = "Verdana"
  7852.       self.contents.font.size = 16
  7853.       text = @actor.class.name
  7854.       draw_text(240,185,100,32, text.to_s,1)      
  7855.       self.contents.font.size = 20   
  7856.       self.contents.font.italic = true
  7857.       text = @actor.name
  7858.       draw_text(125,50,120,32, text.to_s,1)
  7859.   end
  7860.  
  7861.   #--------------------------------------------------------------------------
  7862.   # ● Draw Parameters
  7863.   #--------------------------------------------------------------------------
  7864.   def draw_parameters
  7865.       par = @actor.atk
  7866.       draw_text(43,112,80,32, par.to_s,2)
  7867.       par = @actor.def
  7868.       draw_text(43,146,80,32, par.to_s,2)
  7869.       par = @actor.mat
  7870.       draw_text(162 ,112,80,32, par.to_s,2)      
  7871.       par = @actor.mdf
  7872.       draw_text(162,146,80,32, par.to_s,2)      
  7873.       par = @actor.agi
  7874.       draw_text(282,112,80,32, par.to_s,2)         
  7875.       par = @actor.luk
  7876.       draw_text(282,146,80,32, par.to_s,2)
  7877.   end   
  7878.     
  7879.   #--------------------------------------------------------------------------
  7880.   # ● Draw Actor HP MP TP
  7881.   #--------------------------------------------------------------------------  
  7882.   def draw_actor_hp_mp_tp
  7883.       self.contents.font.name = "Verdana"
  7884.       self.contents.font.size = 16
  7885.       par = @actor.hp.truncate
  7886.       draw_text(5,80,80,32, par.to_s,2)      
  7887.       par = @actor.mhp.truncate
  7888.       draw_text(50,80,80,32, par.to_s,2)           
  7889.       par = @actor.mp.truncate
  7890.       draw_text(123,80,80,32, par.to_s,2)      
  7891.       par = @actor.mmp.truncate
  7892.       draw_text(168,80,80,32, par.to_s,2)        
  7893.       par = @actor.tp.truncate
  7894.       draw_text(244,80,80,32, par.to_s,2)      
  7895.       par = @actor.max_tp.truncate
  7896.       draw_text(282,80,80,32, par.to_s,2)      
  7897.   end
  7898.  
  7899.   #--------------------------------------------------------------------------
  7900.   # ● Draw Exp Info
  7901.   #--------------------------------------------------------------------------
  7902.   def draw_exp_info
  7903.       draw_text(200,10,64,32,@actor.level.to_s,1)
  7904.       s1 = @actor.max_level? ? "----------" : @actor.exp
  7905.       s2 = @actor.max_level? ? "----------" : @actor.next_level_exp - @actor.exp
  7906.       draw_text(300,10, 80, 32,s1.to_s, 1)
  7907.       draw_text(460,10, 80, 32,s2.to_s, 1)
  7908.   end
  7909.  
  7910.   #--------------------------------------------------------------------------
  7911.   # ● Draw Equipments
  7912.   #--------------------------------------------------------------------------
  7913.   def draw_equipments
  7914.       self.contents.font.size = 16
  7915.       item = @actor.equips[0]
  7916.       draw_item_name(item, 20, 220,true,140)
  7917.       item = @actor.equips[1]
  7918.       draw_item_name(item, 20, 220 + 43,true,140)
  7919.       item = @actor.equips[2]
  7920.       draw_item_name(item, 20, 220 + 86,true,140)      
  7921.       item = @actor.equips[3]
  7922.       draw_item_name(item, 196, 242,true,140)      
  7923.       item = @actor.equips[4]
  7924.       draw_item_name(item, 196, 242 + 43,true,140)
  7925.   end
  7926.  
  7927.   #--------------------------------------------------------------------------
  7928.   # ● Draw Description
  7929.   #--------------------------------------------------------------------------
  7930.   def draw_description
  7931.       draw_text_ex(20, height - 96,@actor.description)
  7932.   end
  7933.  
  7934.   #--------------------------------------------------------------------------
  7935.   # ● Next Actor
  7936.   #--------------------------------------------------------------------------
  7937.   def next_actor
  7938.       $game_temp.actor_menu_temp = $game_party.menu_actor_next
  7939.       on_actor_change
  7940.   end
  7941.   #--------------------------------------------------------------------------
  7942.   # ● Prev Actor
  7943.   #--------------------------------------------------------------------------
  7944.   def prev_actor
  7945.       $game_temp.actor_menu_temp = $game_party.menu_actor_prev
  7946.       on_actor_change
  7947.   end  
  7948.  
  7949.   #--------------------------------------------------------------------------
  7950.   # ● On Actor Change
  7951.   #--------------------------------------------------------------------------
  7952.   def on_actor_change
  7953.       Sound.play_cursor
  7954.       SceneManager.goto(Scene_Status)
  7955.   end  
  7956.  
  7957. end
  7958.  
  7959. module MOG_STATUS_PARAMETER
  7960.   PICTURE_POS = [-105,0]
  7961.   METER_POSITION = [53,101]
  7962.   STATES_POSITION = [21,46]
  7963.   STATES_SCROLLING_ANIMATION = false
  7964.   MAX_PARAMETER_VALUE = 999
  7965. end
  7966. #==============================================================================
  7967. # ■ Status Parameter
  7968. #==============================================================================
  7969. class Status_Parameter
  7970.  
  7971.   include MOG_STATUS_PARAMETER
  7972.  
  7973.   #--------------------------------------------------------------------------
  7974.   # ● Initialize
  7975.   #--------------------------------------------------------------------------
  7976.   def initialize(actor)
  7977.       @actor = actor
  7978.       create_picture
  7979.       create_states
  7980.       create_meter
  7981.   end
  7982.  
  7983.   #--------------------------------------------------------------------------
  7984.   # ● Create Picture
  7985.   #--------------------------------------------------------------------------   
  7986.   def create_picture
  7987.       @picture = Sprite.new
  7988.       pic_name = "Actor_S" + @actor.id.to_s
  7989.       @picture.bitmap = Cache.menu_status(pic_name.to_s)
  7990.       @picture.ox = @picture.bitmap.width / 2
  7991.       pos = [Graphics.width,Graphics.height - @picture.bitmap.height]
  7992.       @pos_org_pic = [PICTURE_POS[0] + pos[0] ,PICTURE_POS[1] + pos[1]]
  7993.       @picture.x = @pos_org_pic[0]
  7994.       @picture.y = @pos_org_pic[1] + 150
  7995.       @picture.opacity = 0
  7996.       @picture.z = 3
  7997.   end  
  7998.  
  7999.   #--------------------------------------------------------------------------
  8000.   # ● Create_States
  8001.   #--------------------------------------------------------------------------      
  8002.   def create_states
  8003.       @status_old = nil
  8004.       @status_flow = [-24,0]   
  8005.       @status = Sprite.new
  8006.       @status.bitmap = Bitmap.new(24,24)
  8007.       @org_pos_states = [STATES_POSITION[0],STATES_POSITION[1]]      
  8008.       @status.x = @org_pos_states[0] + 150
  8009.       @status.y = @org_pos_states[1]
  8010.       @status.z = 11
  8011.       @status.opacity = 0
  8012.   end      
  8013.  
  8014.   #--------------------------------------------------------------------------
  8015.   # * Refresh States
  8016.   #--------------------------------------------------------------------------        
  8017.   def refresh_states
  8018.       check_icon_image
  8019.       @status_old = @actor.states
  8020.       @status_flow = [0,0]
  8021.       @actor_status.dispose if @actor_status != nil
  8022.       @states_size = @actor.states.size > 0 ? (26 * @actor.states.size) : 24
  8023.       @actor_status = Bitmap.new(@states_size,24)
  8024.       index = 0
  8025.       for i in @actor.states
  8026.          rect = Rect.new(i.icon_index % 16 * 24, i.icon_index / 16 * 24, 24, 24)
  8027.          @actor_status.blt(26 * index , 0, @icon_image, rect)
  8028.          index += 1
  8029.       end
  8030.   end   
  8031.  
  8032.   #--------------------------------------------------------------------------
  8033.   # * Flow_Status
  8034.   #--------------------------------------------------------------------------         
  8035.   def flow_states
  8036.       return if @actor_status == nil
  8037.       @status.bitmap.clear
  8038.       return if @actor.states.size == 0
  8039.       st_src_rect = Rect.new(@status_flow[0],0, 24,24)
  8040.       @status.bitmap.blt(0,0, @actor_status, st_src_rect)
  8041.       if STATES_SCROLLING_ANIMATION
  8042.          @status_flow[0] += 1
  8043.          @status_flow[0] = -24 if @status_flow[0] >= @states_size + 2
  8044.       else   
  8045.          @status_flow[1] += 1 unless @actor.states.size <= 1
  8046.          if @status_flow[1] > 30
  8047.             @status_flow[1] = 0
  8048.             @status_flow[0] += 26
  8049.             @status_flow[0] = 0 if @status_flow[0] >= (@states_size - 0)
  8050.          end   
  8051.      end   
  8052.   end        
  8053.  
  8054.   #--------------------------------------------------------------------------
  8055.   # * Check Icon Image
  8056.   #--------------------------------------------------------------------------         
  8057.   def check_icon_image
  8058.       if @icon_image == nil or @icon_image.disposed?
  8059.          @icon_image = Cache.system("Iconset")
  8060.       end   
  8061.   end   
  8062.  
  8063.   #--------------------------------------------------------------------------
  8064.   # * Create Meter
  8065.   #--------------------------------------------------------------------------            
  8066.   def create_meter
  8067.       @meter_image = Cache.menu_status("Par_Meter")
  8068.       @meter_cw = @meter_image.width / 3
  8069.       @meter_ch = @meter_image.height / 4
  8070.       @meter = Sprite.new
  8071.       @meter.bitmap = Bitmap.new(380,140)
  8072.       @org_pos_meter = [METER_POSITION[0],METER_POSITION[1]]      
  8073.       @meter.x = @org_pos_meter[0] + 150
  8074.       @meter.y = @org_pos_meter[1]
  8075.       @meter.z = 11  
  8076.       @meter.opacity = 0
  8077.       @meter_flow = [0,@meter_cw * 2]      
  8078.       refresh_meter
  8079.   end  
  8080.  
  8081.   #--------------------------------------------------------------------------
  8082.   # * Refresh Meter
  8083.   #--------------------------------------------------------------------------            
  8084.   def refresh_meter
  8085.       @meter.bitmap.clear
  8086.       max_par = MAX_PARAMETER_VALUE
  8087.       value = @actor.hp
  8088.       value_max = @actor.mhp
  8089.       pos = [0,0]
  8090.       draw_meter(value,value_max,0,pos[0],pos[1])
  8091.       value = @actor.mp
  8092.       value_max = @actor.mmp
  8093.       pos = [120,0]
  8094.       draw_meter(value,value_max,1,pos[0],pos[1])
  8095.       value = @actor.tp
  8096.       value_max = @actor.max_tp
  8097.       pos = [240,0]
  8098.       draw_meter(value,value_max,2,pos[0],pos[1])         
  8099.       value = @actor.atk
  8100.       value_max = max_par
  8101.       pos = [0,34]
  8102.       draw_meter(value,value_max,3,pos[0],pos[1])      
  8103.       value = @actor.mat
  8104.       value_max = max_par
  8105.       pos = [120,34]
  8106.       draw_meter(value,value_max,3,pos[0],pos[1])         
  8107.       value = @actor.agi
  8108.       value_max = max_par
  8109.       pos = [240,34]
  8110.       draw_meter(value,value_max,3,pos[0],pos[1])      
  8111.       value = @actor.def
  8112.       value_max = max_par
  8113.       pos = [0,68]
  8114.       draw_meter(value,value_max,3,pos[0],pos[1])      
  8115.       value = @actor.mdf
  8116.       value_max = max_par
  8117.       pos = [120,68]
  8118.       draw_meter(value,value_max,3,pos[0],pos[1])         
  8119.       value = @actor.luk
  8120.       value_max = max_par
  8121.       pos = [240,68]
  8122.       draw_meter(value,value_max,3,pos[0],pos[1])      
  8123.       @meter_flow[0] += 5
  8124.       @meter_flow[0] = 0 if @meter_flow[0] > @meter_flow[1]
  8125.   end
  8126.  
  8127.   #--------------------------------------------------------------------------
  8128.   # * Draw Meter
  8129.   #--------------------------------------------------------------------------              
  8130.   def draw_meter(value,value_max,type,x,y)
  8131.       value_max = 1 if value_max <= 0
  8132.       range = @meter_cw * value.truncate / value_max.truncate
  8133.       ch = @meter_ch * type
  8134.       meter_scr = Rect.new(@meter_flow[0],ch,range,@meter_ch)
  8135.       @meter.bitmap.blt(x,y,@meter_image,meter_scr)
  8136.   end
  8137.  
  8138.   #--------------------------------------------------------------------------
  8139.   # ● Dispose
  8140.   #--------------------------------------------------------------------------  
  8141.   def dispose
  8142.       dispose_picture
  8143.       dispose_states
  8144.       dispose_meter
  8145.   end
  8146.  
  8147.   #--------------------------------------------------------------------------
  8148.   # ● Dispose Picture
  8149.   #--------------------------------------------------------------------------   
  8150.   def dispose_picture
  8151.       @picture.bitmap.dispose
  8152.       @picture.dispose
  8153.   end
  8154.  
  8155.   #--------------------------------------------------------------------------
  8156.   # ● Dispose States
  8157.   #--------------------------------------------------------------------------            
  8158.    def dispose_states
  8159.        return if @status == nil
  8160.        @status.bitmap.dispose
  8161.        @status.dispose
  8162.        if @actor_status != nil
  8163.           @actor_status.dispose
  8164.           @actor_status = nil
  8165.        end   
  8166.    end     
  8167.  
  8168.   #--------------------------------------------------------------------------
  8169.   # ● Dispose Meter
  8170.   #--------------------------------------------------------------------------            
  8171.    def dispose_meter
  8172.        return if @meter == nil
  8173.        @meter.bitmap.dispose
  8174.        @meter.dispose
  8175.    end     
  8176.     
  8177.   #--------------------------------------------------------------------------
  8178.   # ● Update
  8179.   #--------------------------------------------------------------------------  
  8180.   def update
  8181.       update_slide(0,@picture,@pos_org_pic[0])
  8182.       update_slide(1,@picture,@pos_org_pic[1])
  8183.       update_slide(0,@status,@org_pos_states[0])
  8184.       update_slide(1,@status,@org_pos_states[1])   
  8185.       update_slide(0,@meter,@org_pos_meter[0])
  8186.       update_slide(1,@meter,@org_pos_meter[1])         
  8187.       refresh_states if @status_old != @actor.states
  8188.       refresh_meter
  8189.       flow_states      
  8190.   end
  8191.  
  8192.  
  8193.  #--------------------------------------------------------------------------
  8194.  # ● Update Slide
  8195.  #--------------------------------------------------------------------------                       
  8196.   def update_slide(type,sprite,np)
  8197.       sprite.opacity += 5
  8198.       cp = type == 0 ? sprite.x : sprite.y
  8199.       sp = 3 + ((cp - np).abs / 10)
  8200.       if cp > np
  8201.          cp -= sp
  8202.          cp = np if cp < np
  8203.       elsif cp < np
  8204.          cp += sp
  8205.          cp = np if cp > np
  8206.       end     
  8207.       sprite.x = cp if type == 0
  8208.       sprite.y = cp if type == 1
  8209.   end   
  8210.  
  8211. end
  8212.  
  8213. #==============================================================================
  8214. # ■ Scene_Status
  8215. #==============================================================================
  8216. class Scene_Status
  8217.  
  8218.   #--------------------------------------------------------------------------
  8219.   # ● Create Sprites
  8220.   #--------------------------------------------------------------------------
  8221.   def create_sprites
  8222.       create_menu_background
  8223.       create_layout
  8224.       create_particles
  8225.       create_status_window
  8226.       create_parameter
  8227.   end
  8228.  
  8229.   #--------------------------------------------------------------------------
  8230.   # ● Create Menu Background
  8231.   #--------------------------------------------------------------------------            
  8232.   def create_menu_background
  8233.       @background = Plane.new
  8234.       @background.bitmap = $game_temp.pre_cache_status_menu[0]
  8235.       @background.z = 0
  8236.       @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  8237.   end   
  8238.  
  8239.   #--------------------------------------------------------------------------
  8240.   # ● Create Layout
  8241.   #--------------------------------------------------------------------------              
  8242.   def create_layout     
  8243.       @layout = Sprite.new
  8244.       @layout.bitmap = $game_temp.pre_cache_status_menu[1]
  8245.       @layout.z = 9
  8246.       @layout.x = -150
  8247.       @layout.opacity = 0
  8248.   end  
  8249.  
  8250.   #--------------------------------------------------------------------------
  8251.   # ● Create Particles
  8252.   #--------------------------------------------------------------------------  
  8253.   def create_particles
  8254.       @particles_sprite =[]
  8255.       for i in 0...NUMBER_OF_PARTICLES
  8256.           @particles_sprite.push(Particles_Menu.new(nil))
  8257.       end
  8258.   end   
  8259.     
  8260.   #--------------------------------------------------------------------------
  8261.   # ● Create Status Window
  8262.   #--------------------------------------------------------------------------  
  8263.   def create_status_window
  8264.       @status_window = Window_Status.new(@actor)
  8265.       @status_window.set_handler(:cancel,   method(:return_scene))
  8266.       @status_window.set_handler(:pagedown, method(:next_actor))
  8267.       @status_window.set_handler(:pageup,   method(:prev_actor))
  8268.       @org_pos_win = [@status_window.x,@status_window.y]
  8269.       @status_window.x += 150
  8270.       @status_window.opacity = 0
  8271.       @status_window.contents_opacity = 0
  8272.   end  
  8273.  
  8274.   #--------------------------------------------------------------------------
  8275.   # ● Create Parameter
  8276.   #--------------------------------------------------------------------------   
  8277.   def create_parameter
  8278.       @parameter = Status_Parameter.new(@actor)
  8279.   end
  8280.  
  8281. end
  8282.  
  8283. #==============================================================================
  8284. # ■ Scene_Status
  8285. #==============================================================================
  8286. class Scene_Status
  8287.  
  8288.   #--------------------------------------------------------------------------
  8289.   # ● Execute Dispose
  8290.   #--------------------------------------------------------------------------        
  8291.   def execute_dispose
  8292.       Graphics.freeze
  8293.       dispose_background
  8294.       dispose_layout
  8295.       dispose_particles
  8296.       dispose_status_window
  8297.       dispose_parameter
  8298.    end
  8299.  
  8300.   #--------------------------------------------------------------------------
  8301.   # ● Dispose Background
  8302.   #--------------------------------------------------------------------------  
  8303.   def dispose_background
  8304.       return if @background == nil
  8305.       @background.dispose
  8306.       @background = nil
  8307.   end
  8308.  
  8309.   #--------------------------------------------------------------------------
  8310.   # ● Dispose Layout
  8311.   #--------------------------------------------------------------------------               
  8312.   def dispose_layout
  8313.       return if @layout == nil
  8314.       @layout.dispose
  8315.       @layout = nil
  8316.   end  
  8317.  
  8318.  #--------------------------------------------------------------------------
  8319.  # ● Dispose Particles
  8320.  #--------------------------------------------------------------------------   
  8321.  def dispose_particles
  8322.      return if @particles_sprite == nil
  8323.      @particles_sprite.each {|sprite| sprite.dispose }
  8324.  end     
  8325.  
  8326.   #--------------------------------------------------------------------------
  8327.   # ● Dispose Status Window
  8328.   #--------------------------------------------------------------------------  
  8329.   def dispose_status_window
  8330.       return if @status_window == nil
  8331.       @status_window.dispose
  8332.   end  
  8333.  
  8334.   #--------------------------------------------------------------------------
  8335.   # ● Dispose Parameter
  8336.   #--------------------------------------------------------------------------   
  8337.   def dispose_parameter
  8338.       return if @parameter == nil
  8339.       @parameter.dispose
  8340.   end  
  8341.  
  8342. end
  8343.  
  8344. #==============================================================================
  8345. # ■ Scene Status
  8346. #==============================================================================
  8347. class Scene_Status
  8348.  
  8349.   #--------------------------------------------------------------------------
  8350.   # ● Update Sprites
  8351.   #--------------------------------------------------------------------------         
  8352.   def update_sprites   
  8353.       update_background
  8354.       update_particles     
  8355.       update_status_window
  8356.       update_parameter
  8357.       update_move
  8358.   end
  8359.  
  8360.   #--------------------------------------------------------------------------
  8361.   # ● Update Background
  8362.   #--------------------------------------------------------------------------              
  8363.   def update_background
  8364.       return if @background == nil
  8365.       @background.ox += @background_scroll[0]
  8366.       @background.oy += @background_scroll[1]
  8367.   end   
  8368.  
  8369.   #--------------------------------------------------------------------------
  8370.   # ● Update Particles
  8371.   #--------------------------------------------------------------------------  
  8372.   def update_particles
  8373.       return if @particles_sprite == nil
  8374.       @particles_sprite.each {|sprite| sprite.update }
  8375.   end
  8376.  
  8377.   #--------------------------------------------------------------------------
  8378.   # ● Update Sprites
  8379.   #--------------------------------------------------------------------------  
  8380.   def update_status_window
  8381.       return if @status_window == nil
  8382.       @status_window.update
  8383.   end
  8384.     
  8385.   #--------------------------------------------------------------------------
  8386.   # ● Update Move
  8387.   #--------------------------------------------------------------------------      
  8388.   def update_move
  8389.       update_slide(0,@status_window,@org_pos_win[0],0)
  8390.       update_slide(1,@status_window,@org_pos_win[1],0)
  8391.       update_slide(0,@layout,0,1)
  8392.       update_slide(1,@layout,0,1)     
  8393.   end  
  8394.  
  8395.  #--------------------------------------------------------------------------
  8396.  # ● Update Slide
  8397.  #--------------------------------------------------------------------------                       
  8398.   def update_slide(type,sprite,np,opa)
  8399.       if opa == 0
  8400.          sprite.contents_opacity += 5
  8401.       else   
  8402.          sprite.opacity += 5
  8403.       end  
  8404.       cp = type == 0 ? sprite.x : sprite.y
  8405.       sp = 3 + ((cp - np).abs / 10)
  8406.       if cp > np
  8407.          cp -= sp
  8408.          cp = np if cp < np
  8409.       elsif cp < np
  8410.          cp += sp
  8411.          cp = np if cp > np
  8412.       end     
  8413.       sprite.x = cp if type == 0
  8414.       sprite.y = cp if type == 1
  8415.   end   
  8416.  
  8417.   #--------------------------------------------------------------------------
  8418.   # ● Update Parameter
  8419.   #--------------------------------------------------------------------------   
  8420.   def update_parameter
  8421.       return if @parameter == nil
  8422.       @parameter.update
  8423.   end   
  8424.  
  8425. end
  8426.  
  8427. #==============================================================================
  8428. # ■ Scene_Status
  8429. #==============================================================================
  8430. class Scene_Status
  8431.  
  8432.   #--------------------------------------------------------------------------
  8433.   # ● Update
  8434.   #--------------------------------------------------------------------------      
  8435.   def update
  8436.       update_sprites
  8437.       update_command
  8438.   end
  8439.  
  8440.   #--------------------------------------------------------------------------
  8441.   # ● Return Scene
  8442.   #--------------------------------------------------------------------------         
  8443.   def return_scene
  8444.       Sound.play_cancel
  8445.       SceneManager.return
  8446.   end
  8447.  
  8448.   #--------------------------------------------------------------------------
  8449.   # ● ON Actor Charge
  8450.   #--------------------------------------------------------------------------
  8451.   def on_actor_change
  8452.       Sound.play_cursor
  8453.       $game_temp.actor_menu_temp = @actor
  8454.       SceneManager.goto(Scene_Status)
  8455.   end  
  8456.  
  8457. end
  8458.  
  8459. #==============================================================================
  8460. # ■ Scene_Status
  8461. #==============================================================================
  8462. class Scene_Status
  8463.  
  8464.   #--------------------------------------------------------------------------
  8465.   # ● Update Command
  8466.   #--------------------------------------------------------------------------      
  8467.   def update_command
  8468.       update_next_actor
  8469.   end
  8470.  
  8471.   #--------------------------------------------------------------------------
  8472.   # ● Update Next Actor
  8473.   #--------------------------------------------------------------------------        
  8474.   def update_next_actor
  8475.       if Input.trigger?(:RIGHT)
  8476.          @status_window.next_actor
  8477.        elsif Input.trigger?(:LEFT)
  8478.          @status_window.prev_actor
  8479.       end
  8480.   end
  8481.  
  8482. end
  8483.  
  8484.  
  8485. =end
  8486.  
  8487.  
  8488.  
  8489.  
  8490. #==============================================================================
  8491. # ■ Game_Temp
  8492. #==============================================================================
  8493. class Game_Temp
  8494.  
  8495.   #--------------------------------------------------------------------------
  8496.   # ● Execute Pre Cache Party Menu
  8497.   #--------------------------------------------------------------------------   
  8498.   def execute_pre_cache_party_menu
  8499.       @pre_cache_party_menu = []
  8500.       @pre_cache_party_menu.push(Cache.menu_party("Background"))
  8501.       @pre_cache_party_menu.push(Cache.menu_party("Layout"))
  8502.   end   
  8503.  
  8504. end
  8505.  
  8506. #==============================================================================
  8507. # ■ Scene_Party
  8508. #==============================================================================
  8509. class Scene_Party
  8510.   include MOG_MENU_PARTY
  8511.   include MOG_MENU_BASE
  8512.  
  8513.   #--------------------------------------------------------------------------
  8514.   # ● Main
  8515.   #--------------------------------------------------------------------------        
  8516.   def main
  8517.       execute_setup
  8518.       execute_loop
  8519.       execute_dispose
  8520.   end  
  8521.  
  8522.   #--------------------------------------------------------------------------
  8523.   # ● Execute Setup
  8524.   #--------------------------------------------------------------------------        
  8525.   def execute_setup
  8526.       @phase = 0
  8527.       @actor = $game_party.members[0]
  8528.       @actor_old = @actor
  8529.       create_sprites
  8530.   end
  8531.  
  8532.   #--------------------------------------------------------------------------
  8533.   # ● Execute Lopp
  8534.   #--------------------------------------------------------------------------        
  8535.   def execute_loop
  8536.       Graphics.transition(10)
  8537.       loop do
  8538.          Input.update
  8539.          update
  8540.          Graphics.update
  8541.          break if SceneManager.scene != self
  8542.       end
  8543.   end
  8544.  
  8545. end
  8546.  
  8547. module MOG_ACTOR_MENU_PARTY
  8548.   FACE_POSITION = [390,96]
  8549.   NAME_POSITION = [390,73]
  8550.   FONT_NAME = "Verdana"
  8551.   FONT_SIZE = 16
  8552.   FONT_BOLD = true
  8553. end
  8554.  
  8555.  
  8556. #==============================================================================
  8557. # ■ Actor Menu Status Party
  8558. #==============================================================================
  8559. class Actor_Menu_Status_Party
  8560.  
  8561.   include MOG_ACTOR_MENU_PARTY
  8562.  
  8563.   #--------------------------------------------------------------------------
  8564.   # ● Initialize
  8565.   #--------------------------------------------------------------------------
  8566.   def initialize
  8567.       @active = false
  8568.       @max_members = $game_party.max_battle_members
  8569.       @max_members = $game_party.members.size if @max_members > $game_party.members.size
  8570.       create_sprites
  8571.   end
  8572.  
  8573.   #--------------------------------------------------------------------------
  8574.   # ● Create Sprites
  8575.   #--------------------------------------------------------------------------  
  8576.   def create_sprites
  8577.       @face = []
  8578.       @face_org = []
  8579.       @name = []
  8580.       @name_org = []
  8581.       @actor_id = []
  8582.       space = 70
  8583.       index = 0
  8584.       for actor in $game_party.members  
  8585.          @face.push(Sprite.new)
  8586.          @face_org[index] = [FACE_POSITION[0],FACE_POSITION[1] + space * index]
  8587.          @face[index].x = @face_org[index][0] + 150 + (150 * index)
  8588.          @face[index].y = @face_org[index][1]
  8589.          @face[index].z = 10   
  8590.          @name.push(Sprite.new)
  8591.          @name[index].bitmap = Bitmap.new(200,120)
  8592.          @name[index].bitmap.font.name = FONT_NAME
  8593.          @name[index].bitmap.font.size = FONT_SIZE
  8594.          @name[index].bitmap.font.bold = FONT_BOLD
  8595.          @name_org[index] = [NAME_POSITION[0],NAME_POSITION[1] + space * index]
  8596.          @name[index].x = @name_org[index][0] + 150 + (150 * index)
  8597.          @name[index].y = @name_org[index][1]
  8598.          @name[index].z = 11
  8599.          @actor_id[index] = actor.id
  8600.          index += 1
  8601.          break if index >= @max_members
  8602.       end
  8603.       refresh
  8604.   end
  8605.  
  8606.   #--------------------------------------------------------------------------
  8607.   # ● Refresh Position
  8608.   #--------------------------------------------------------------------------   
  8609.   def refresh_position(actor,index)
  8610.       @actor_id[index] = actor.id
  8611.       @face[index].x = @face_org[index][0] + 150 + (150 * index)
  8612.       @name[index].x = @name_org[index][0] + 150 + (150 * index)   
  8613.   end
  8614.  
  8615.   #--------------------------------------------------------------------------
  8616.   # ● Dispose
  8617.   #--------------------------------------------------------------------------      
  8618.   def dispose
  8619.       @face.each {|sprite| sprite.dispose }
  8620.       @name.each {|sprite| sprite.bitmap.dispose }
  8621.       @name.each {|sprite| sprite.dispose }
  8622.   end
  8623.  
  8624.   #--------------------------------------------------------------------------
  8625.   # ● Refresh
  8626.   #--------------------------------------------------------------------------      
  8627.   def refresh
  8628.       index = 0
  8629.       for actor in $game_party.members  
  8630.           face_name = "Face_B" + actor.id.to_s
  8631.           @face[index].bitmap = Cache.menu(face_name.to_s)
  8632.           @name[index].bitmap.clear
  8633.           @name[index].bitmap.draw_text(100,28,64,32,"LV " + actor.level.to_s,0)
  8634.           aname = actor.name
  8635.           @name[index].bitmap.draw_text(0,0,100,32,aname.to_s,0)
  8636.           refresh_position(actor,index) if @actor_id[index] != actor.id
  8637.           index += 1
  8638.           break if index >= @max_members
  8639.       end
  8640.   end
  8641.  
  8642. #--------------------------------------------------------------------------
  8643. # ● Update Slide
  8644. #--------------------------------------------------------------------------                       
  8645.   def update_slide(type,sprite,np)
  8646.       sprite.opacity += 5
  8647.       cp = type == 0 ? sprite.x : sprite.y
  8648.       sp = 3 + ((cp - np).abs / 10)
  8649.       if cp > np
  8650.          cp -= sp
  8651.          cp = np if cp < np
  8652.       elsif cp < np
  8653.          cp += sp
  8654.          cp = np if cp > np
  8655.       end     
  8656.       sprite.x = cp if type == 0
  8657.       sprite.y = cp if type == 1
  8658.   end      
  8659.  
  8660.   #--------------------------------------------------------------------------
  8661.   # ● Update
  8662.   #--------------------------------------------------------------------------
  8663.   def update(actor)
  8664.       for index in [email]0...@name.size[/email]
  8665.           update_slide(0,@face[index],@face_org[index][0])
  8666.           update_slide(1,@face[index],@face_org[index][1])
  8667.           update_slide(0,@name[index],@name_org[index][0])
  8668.           update_slide(1,@name[index],@name_org[index][1])
  8669.       end      
  8670.   end      
  8671.  
  8672. end
  8673.  
  8674. #==============================================================================
  8675. # ■ Window_MenuStatus Party
  8676. #==============================================================================
  8677. class Window_MenuStatus_Party < Window_Selectable
  8678.   attr_reader   :pending_index           
  8679.  
  8680.   #--------------------------------------------------------------------------
  8681.   # ● Initialize
  8682.   #--------------------------------------------------------------------------
  8683.   def initialize(x, y)
  8684.       super(x, y, window_width, window_height)
  8685.       @pending_index = -1
  8686.       self.opacity = 0
  8687.       self.contents.font.bold = true
  8688.       self.contents.font.size = 18
  8689.       refresh
  8690.   end
  8691.  
  8692.   #--------------------------------------------------------------------------
  8693.   # ● Window Width
  8694.   #--------------------------------------------------------------------------
  8695.   def window_width
  8696.       Graphics.width - 160
  8697.   end
  8698.  
  8699.   #--------------------------------------------------------------------------
  8700.   # ● Window Height
  8701.   #--------------------------------------------------------------------------
  8702.   def window_height
  8703.       Graphics.height
  8704.   end
  8705.  
  8706.   #--------------------------------------------------------------------------
  8707.   # ● Item Max
  8708.   #--------------------------------------------------------------------------
  8709.   def item_max
  8710.       $game_party.members.size
  8711.   end
  8712.  
  8713.   #--------------------------------------------------------------------------
  8714.   # ● Item Height
  8715.   #--------------------------------------------------------------------------
  8716.   def item_height
  8717.     (height - standard_padding * 2) / 4
  8718.   end
  8719.  
  8720.   #--------------------------------------------------------------------------
  8721.   # ● Draw Item
  8722.   #--------------------------------------------------------------------------
  8723.   def draw_item(index)
  8724.     actor = $game_party.members[index]
  8725.     enabled = $game_party.battle_members.include?(actor)
  8726.     rect = item_rect(index)
  8727.     draw_item_background(index)
  8728.     draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled)
  8729.     self.contents.font.color = Color.new(255,155,55,255)
  8730.     draw_text(rect.x + 60,rect.y + 23,64,32,"LV",2)
  8731.     draw_text(rect.x + 60,rect.y + 43,64,32,"HP",2)
  8732.     draw_text(rect.x + 60,rect.y + 63,64,32,"MP",2)
  8733.  
  8734.     draw_text(rect.x + 140,rect.y + 23,64,32,"Atk",2)
  8735.     draw_text(rect.x + 140,rect.y + 43,64,32,"Def",2)
  8736.     draw_text(rect.x + 140,rect.y + 63,64,32,"Agi",2)   
  8737.  
  8738.     draw_text(rect.x + 220,rect.y + 23,64,32,"Mag",2)
  8739.     draw_text(rect.x + 220,rect.y + 43,64,32,"Mdf",2)
  8740.     draw_text(rect.x + 220,rect.y + 63,64,32,"Luk",2)      
  8741.  
  8742.     self.contents.font.color = Color.new(255,255,255,255)
  8743.     draw_text(rect.x + 105,rect.y,105,32,actor.name,0)
  8744.  
  8745.     draw_text(rect.x + 105,rect.y + 23,64,32,actor.level,2)
  8746.     draw_text(rect.x + 105,rect.y + 43,64,32,actor.mhp,2)
  8747.     draw_text(rect.x + 105,rect.y + 63,64,32,actor.mmp,2)   
  8748.  
  8749.  
  8750.     draw_text(rect.x + 185,rect.y + 23,64,32,actor.atk,2)
  8751.     draw_text(rect.x + 185,rect.y + 43,64,32,actor.def,2)
  8752.     draw_text(rect.x + 185,rect.y + 63,64,32,actor.agi,2)   
  8753.  
  8754.     draw_text(rect.x + 265,rect.y + 23,64,32,actor.mat,2)
  8755.     draw_text(rect.x + 265,rect.y + 43,64,32,actor.mdf,2)
  8756.     draw_text(rect.x + 265,rect.y + 63,64,32,actor.luk,2)      
  8757.  
  8758.   end
  8759.  
  8760.  
  8761.   #--------------------------------------------------------------------------
  8762.   # ● Draw Item Background
  8763.   #--------------------------------------------------------------------------
  8764.   def draw_item_background(index)
  8765.       if index == @pending_index
  8766.         contents.fill_rect(item_rect(index), pending_color)
  8767.       end
  8768.   end
  8769.  
  8770.   #--------------------------------------------------------------------------
  8771.   # ● Process OK
  8772.   #--------------------------------------------------------------------------
  8773.   def process_ok
  8774.       super
  8775.       $game_party.menu_actor = $game_party.members[index]
  8776.   end
  8777.  
  8778.   #--------------------------------------------------------------------------
  8779.   # ● Select Last
  8780.   #--------------------------------------------------------------------------
  8781.   def select_last
  8782.       select($game_party.menu_actor.index || 0)
  8783.   end
  8784.  
  8785.   #--------------------------------------------------------------------------
  8786.   # ● Pending Index
  8787.   #--------------------------------------------------------------------------
  8788.   def pending_index=(index)
  8789.       last_pending_index = @pending_index
  8790.       @pending_index = index
  8791.       redraw_item(@pending_index)
  8792.       redraw_item(last_pending_index)
  8793.   end
  8794. end
  8795.  
  8796. #==============================================================================
  8797. # ■ Scene_Party
  8798. #==============================================================================
  8799. class Scene_Party
  8800.  
  8801.   #--------------------------------------------------------------------------
  8802.   # ● Create Sprites
  8803.   #--------------------------------------------------------------------------
  8804.   def create_sprites
  8805.       create_menu_background
  8806.       create_layout
  8807.       create_particles
  8808.       create_status_window
  8809.       create_actor_menu
  8810.   end
  8811.  
  8812.   #--------------------------------------------------------------------------
  8813.   # ● Create Status Window
  8814.   #--------------------------------------------------------------------------
  8815.   def create_status_window
  8816.       @status_window = Window_MenuStatus_Party.new(0, 0)
  8817.       command_formation
  8818.   end  
  8819.  
  8820.   #--------------------------------------------------------------------------
  8821.   # ● Create Actor Menu
  8822.   #--------------------------------------------------------------------------  
  8823.   def create_actor_menu
  8824.       @actor_status = Actor_Menu_Status_Party.new   
  8825.   end
  8826.  
  8827.   #--------------------------------------------------------------------------
  8828.   # ● Command Personal
  8829.   #--------------------------------------------------------------------------
  8830.   def command_personal
  8831.     @status_window.select_last
  8832.     @status_window.activate
  8833.     @status_window.set_handler(:ok,     method(:on_personal_ok))
  8834.     @status_window.set_handler(:cancel, method(:on_personal_cancel))
  8835.   end
  8836.  
  8837.   #--------------------------------------------------------------------------
  8838.   # ● Command Formation
  8839.   #--------------------------------------------------------------------------
  8840.   def command_formation
  8841.     @status_window.index = 0
  8842.     @old_index = @status_window.index
  8843.     @status_window.activate
  8844.     @status_window.set_handler(:ok,     method(:on_formation_ok))
  8845.     @status_window.set_handler(:cancel, method(:on_formation_cancel))
  8846.   end
  8847.  
  8848.   #--------------------------------------------------------------------------
  8849.   # ● On Personal Cancel
  8850.   #--------------------------------------------------------------------------
  8851.   def on_personal_cancel
  8852.       @status_window.unselect
  8853.   end
  8854.  
  8855.   #--------------------------------------------------------------------------
  8856.   # ● On Formation OK
  8857.   #--------------------------------------------------------------------------
  8858.   def on_formation_ok   
  8859.       if @status_window.pending_index >= 0
  8860.         $game_party.swap_order(@status_window.index,
  8861.                                @status_window.pending_index)
  8862.         @status_window.pending_index = -1
  8863.         @status_window.redraw_item(@status_window.index)
  8864.         @actor_status.refresh
  8865.       else
  8866.         @status_window.pending_index = @status_window.index        
  8867.       end
  8868.       @status_window.activate
  8869.   end
  8870.  
  8871.   #--------------------------------------------------------------------------
  8872.   # ● On Formation Cancel
  8873.   #--------------------------------------------------------------------------
  8874.   def on_formation_cancel
  8875.       if @status_window.pending_index >= 0
  8876.          @status_window.pending_index = -1
  8877.          @status_window.activate         
  8878.       else
  8879.          return_scene
  8880.       end
  8881.   end  
  8882.  
  8883.   #--------------------------------------------------------------------------
  8884.   # ● Create Menu Background
  8885.   #--------------------------------------------------------------------------            
  8886.   def create_menu_background
  8887.       @background = Plane.new
  8888.       @background.bitmap = $game_temp.pre_cache_party_menu[0]
  8889.       @background.z = 0
  8890.       @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  8891.   end   
  8892.  
  8893.   #--------------------------------------------------------------------------
  8894.   # ● Create Layout
  8895.   #--------------------------------------------------------------------------              
  8896.   def create_layout     
  8897.       @layout = Sprite.new
  8898.       @layout.bitmap = $game_temp.pre_cache_party_menu[1]
  8899.       @layout.z = 3
  8900.   end  
  8901.  
  8902.   #--------------------------------------------------------------------------
  8903.   # ● Create Particles
  8904.   #--------------------------------------------------------------------------  
  8905.   def create_particles
  8906.       @particles_sprite =[]
  8907.       for i in 0...NUMBER_OF_PARTICLES
  8908.           @particles_sprite.push(Particles_Menu.new(nil))
  8909.       end
  8910.   end   
  8911.  
  8912. end
  8913.  
  8914. #==============================================================================
  8915. # ■ Scene_Party
  8916. #==============================================================================
  8917. class Scene_Party
  8918.  
  8919.   #--------------------------------------------------------------------------
  8920.   # ● Execute Dispose
  8921.   #--------------------------------------------------------------------------        
  8922.   def execute_dispose
  8923.       Graphics.freeze
  8924.       dispose_background
  8925.       dispose_layout
  8926.       dispose_particles
  8927.       dispose_status_window
  8928.       dispose_actor_menu
  8929.    end
  8930.  
  8931.   #--------------------------------------------------------------------------
  8932.   # ● Dispose Status Window
  8933.   #--------------------------------------------------------------------------           
  8934.    def dispose_status_window
  8935.        @status_window.dispose
  8936.    end
  8937.  
  8938.   #--------------------------------------------------------------------------
  8939.   # ● Dispose Background
  8940.   #--------------------------------------------------------------------------  
  8941.   def dispose_background
  8942.       return if @background == nil
  8943.       @background.dispose
  8944.       @background = nil
  8945.   end   
  8946.  
  8947.   #--------------------------------------------------------------------------
  8948.   # ● Dispose Layout
  8949.   #--------------------------------------------------------------------------               
  8950.   def dispose_layout
  8951.       return if @layout == nil
  8952.       @layout.dispose
  8953.       @layout = nil
  8954.   end  
  8955.  
  8956. #--------------------------------------------------------------------------
  8957. # ● Dispose Particles
  8958. #--------------------------------------------------------------------------   
  8959. def dispose_particles
  8960.      return if @particles_sprite == nil
  8961.      @particles_sprite.each {|sprite| sprite.dispose }
  8962. end     
  8963.  
  8964. #--------------------------------------------------------------------------
  8965. # ● Dispose Actor Menu
  8966. #--------------------------------------------------------------------------   
  8967. def dispose_actor_menu
  8968.      return if @actor_status == nil
  8969.      @actor_status.dispose
  8970. end   
  8971.  
  8972. end
  8973.  
  8974. #==============================================================================
  8975. # ■ Scene_Party
  8976. #==============================================================================
  8977. class Scene_Party
  8978.  
  8979.   #--------------------------------------------------------------------------
  8980.   # ● Update Sprites
  8981.   #--------------------------------------------------------------------------         
  8982.   def update_sprites   
  8983.       update_background
  8984.       update_particles
  8985.       update_status_window
  8986.   end
  8987.  
  8988.   #--------------------------------------------------------------------------
  8989.   # ● Update Background
  8990.   #--------------------------------------------------------------------------              
  8991.   def update_background
  8992.       return if @background == nil
  8993.       @background.ox += @background_scroll[0]
  8994.       @background.oy += @background_scroll[1]
  8995.   end   
  8996.  
  8997.   #--------------------------------------------------------------------------
  8998.   # ● Update Particles
  8999.   #--------------------------------------------------------------------------  
  9000.   def update_particles
  9001.       return if @particles_sprite == nil
  9002.       @particles_sprite.each {|sprite| sprite.update }
  9003.   end
  9004.  
  9005.   #--------------------------------------------------------------------------
  9006.   # ● Update Status Window
  9007.   #--------------------------------------------------------------------------   
  9008.   def update_status_window
  9009.       return if @status_window == nil
  9010.       @status_window.update
  9011.       update_slide(0,@status_window,0)
  9012.       update_slide(1,@status_window,0)
  9013.       @actor = $game_party.members[@status_window.index]
  9014.       @actor_status.update(@actor)
  9015.   end
  9016.  
  9017. #--------------------------------------------------------------------------
  9018. # ● Update Slide
  9019. #--------------------------------------------------------------------------                       
  9020.   def update_slide(type,sprite,np)
  9021.       sprite.contents_opacity += 5
  9022.       cp = type == 0 ? sprite.x : sprite.y
  9023.       sp = 3 + ((cp - np).abs / 10)
  9024.       if cp > np
  9025.          cp -= sp
  9026.          cp = np if cp < np
  9027.       elsif cp < np
  9028.          cp += sp
  9029.          cp = np if cp > np
  9030.       end     
  9031.       sprite.x = cp if type == 0
  9032.       sprite.y = cp if type == 1
  9033.   end   
  9034.  
  9035. end
  9036.  
  9037. #==============================================================================
  9038. # ■ Scene_Party
  9039. #==============================================================================
  9040. class Scene_Party
  9041.  
  9042.   #--------------------------------------------------------------------------
  9043.   # ● Update
  9044.   #--------------------------------------------------------------------------      
  9045.   def update
  9046.       update_sprites
  9047.       update_command
  9048.   end
  9049.  
  9050.   #--------------------------------------------------------------------------
  9051.   # ● Return Scene
  9052.   #--------------------------------------------------------------------------         
  9053.   def return_scene
  9054.       Sound.play_cancel
  9055.       SceneManager.return
  9056.   end
  9057.  
  9058.   #--------------------------------------------------------------------------
  9059.   # ● ON Actor Charge
  9060.   #--------------------------------------------------------------------------
  9061.   def on_actor_change
  9062.       $game_temp.actor_menu_temp = @actor
  9063.       SceneManager.goto(Scene_Status)
  9064.   end  
  9065.  
  9066. end
  9067.  
  9068. #==============================================================================
  9069. # ■ Scene_Party
  9070. #==============================================================================
  9071. class Scene_Party
  9072.  
  9073.   #--------------------------------------------------------------------------
  9074.   # ● Update Command
  9075.   #--------------------------------------------------------------------------      
  9076.   def update_command
  9077.  
  9078.   end
  9079.  
  9080. end
  9081.  
  9082. #==============================================================================
  9083. # ■ Game_Temp
  9084. #==============================================================================
  9085. class Game_Temp
  9086.  
  9087.   #--------------------------------------------------------------------------
  9088.   # ● Execute Pre Cache File Menu
  9089.   #--------------------------------------------------------------------------   
  9090.   def execute_pre_cache_file_menu
  9091.       @pre_cache_file_menu = []
  9092.       @pre_cache_file_menu.push(Cache.menu_save("Background"))
  9093.       @pre_cache_file_menu.push(Cache.menu_save("Layout"))
  9094.       @pre_cache_file_menu.push(Cache.menu_save("File_Mode"))
  9095.       @pre_cache_file_menu.push(Cache.menu_save("File_layout_1"))
  9096.       @pre_cache_file_menu.push(Cache.menu_save("File_layout_2"))
  9097.       @pre_cache_file_menu.push(Cache.menu_save("File_layout_3"))
  9098.       @pre_cache_file_menu.push(Cache.menu_save("Character_Floor"))
  9099.       @pre_cache_file_menu.push(Cache.menu_save("File_Number"))
  9100.   end   
  9101.  
  9102. end
  9103.  
  9104. #==============================================================================
  9105. # ■ Game Temp
  9106. #==============================================================================
  9107. class Game_Temp
  9108.  
  9109.   attr_accessor :scene_save
  9110.   #--------------------------------------------------------------------------
  9111.   # ● Initialize
  9112.   #--------------------------------------------------------------------------
  9113.   alias mog_scene_file_initialize initialize
  9114.   def initialize
  9115.       mog_scene_file_initialize
  9116.       @scene_save = false  
  9117.   end
  9118.  
  9119. end
  9120.  
  9121. #==============================================================================
  9122. # ■ Window_Base
  9123. #==============================================================================
  9124. class Window_Base < Window
  9125.  
  9126.   #--------------------------------------------------------------------------
  9127.   # ● draw_picture_number(x,y,value,file_name,align, space, frame_max ,frame_index)     
  9128.   #--------------------------------------------------------------------------
  9129.   # X - Posição na horizontal
  9130.   # Y - Posição na vertical
  9131.   # VALUE - Valor Numérico
  9132.   # FILE_NAME - Nome do arquivo
  9133.   # ALIGN - Centralizar 0 - Esquerda 1- Centro 2 - Direita  
  9134.   # SPACE - Espaço entre os números.
  9135.   # FRAME_MAX - Quantidade de quadros(Linhas) que a imagem vai ter.
  9136.   # FRAME_INDEX - Definição do quadro a ser utilizado.
  9137.   #--------------------------------------------------------------------------  
  9138.   def draw_picture_number_file(x,y,value, file_name,align = 0, space = 0, frame_max = 1,frame_index = 0)     
  9139.       number_image = $game_temp.pre_cache_file_menu[7]
  9140.       frame_max = 1 if frame_max < 1
  9141.       frame_index = frame_max -1 if frame_index > frame_max -1
  9142.       align = 2 if align > 2
  9143.       cw = number_image.width / 10
  9144.       ch = number_image.height / frame_max
  9145.       h = ch * frame_index
  9146.       number = value.abs.to_s.split(//)
  9147.       case align
  9148.          when 0
  9149.             plus_x = (-cw + space) * number.size
  9150.          when 1
  9151.             plus_x = (-cw + space) * number.size
  9152.             plus_x /= 2
  9153.          when 2  
  9154.             plus_x = 0
  9155.       end
  9156.       for r in 0..number.size - 1      
  9157.           number_abs = number[r].to_i
  9158.           number_rect = Rect.new(cw * number_abs, h, cw, ch)
  9159.           self.contents.blt(plus_x + x + ((cw - space) * r), y , number_image, number_rect)        
  9160.       end   
  9161.   end
  9162.  
  9163.   #--------------------------------------------------------------------------
  9164.   # ● Draw Help Layout
  9165.   #--------------------------------------------------------------------------
  9166.   def draw_face_save(name,x,y,type)
  9167.       if type == 0
  9168.          image_name = name + "_0"
  9169.       elsif type == 1
  9170.          image_name = name + "_1"         
  9171.       else  
  9172.          image_name = name + "_2"
  9173.       end
  9174.       image = Cache.face(image_name)   
  9175.       cw = image.width  
  9176.       ch = image.height
  9177.       src_rect = Rect.new(0, 0, cw, ch)   
  9178.       self.contents.blt(x , y , image, src_rect)  
  9179.       image.dispose
  9180.   end   
  9181.  
  9182.   #--------------------------------------------------------------------------
  9183.   # ● draw_parameter_layout
  9184.   #--------------------------------------------------------------------------  
  9185.   def draw_parameter_layout(x,y)
  9186.       image = $game_temp.pre_cache_file_menu[3]
  9187.       cw = image.width  
  9188.       ch = image.height
  9189.       src_rect = Rect.new(0, 0, cw, ch)   
  9190.       self.contents.blt(x , y , image, src_rect)     
  9191.   end   
  9192.  
  9193.   #--------------------------------------------------------------------------
  9194.   # ● draw_parameter_layout2
  9195.   #--------------------------------------------------------------------------  
  9196.   def draw_parameter_layout2(x,y,type)
  9197.       if type == 0
  9198.          image = $game_temp.pre_cache_file_menu[4]
  9199.       else   
  9200.          image = $game_temp.pre_cache_file_menu[5]
  9201.       end  
  9202.       cw = image.width  
  9203.       ch = image.height
  9204.       src_rect = Rect.new(0, 0, cw, ch)   
  9205.       self.contents.blt(x , y , image, src_rect)     
  9206.   end      
  9207.  
  9208.   #--------------------------------------------------------------------------
  9209.   # ● draw_character_floor
  9210.   #--------------------------------------------------------------------------  
  9211.   def draw_character_floor(x,y)
  9212.       image = $game_temp.pre_cache_file_menu[6]
  9213.       cw = image.width  
  9214.       ch = image.height
  9215.       src_rect = Rect.new(0, 0, cw, ch)   
  9216.       self.contents.blt(x , y , image, src_rect)   
  9217.   end
  9218.  
  9219. end  
  9220.  
  9221. #==============================================================================
  9222. # ■ DataManager
  9223. #==============================================================================
  9224. module DataManager
  9225.  
  9226.   #--------------------------------------------------------------------------
  9227.   # ● Make Save Header
  9228.   #--------------------------------------------------------------------------  
  9229.   def self.make_save_header
  9230.       header = {}
  9231.       header[:characters] = $game_party.characters_for_savefile
  9232.       header[:playtime_s] = $game_system.playtime_s
  9233.       header[:playtime] = $game_system.playtime
  9234.       header[:map_name] = $game_map.display_name
  9235.       header[:members] = $game_party.members
  9236.       header
  9237.   end  
  9238.  
  9239. end  
  9240.  
  9241. #==============================================================================
  9242. # ■ Scene Save
  9243. #==============================================================================
  9244. class Scene_Save < Scene_File
  9245.  
  9246.   #--------------------------------------------------------------------------
  9247.   # ● Initialize
  9248.   #--------------------------------------------------------------------------
  9249.   def initialize
  9250.       $game_temp.scene_save = true
  9251.       super
  9252.   end  
  9253.  
  9254. end  
  9255.  
  9256. #==============================================================================
  9257. # ■ Scene Load
  9258. #==============================================================================
  9259. class Scene_Load < Scene_File
  9260.  
  9261.   #--------------------------------------------------------------------------
  9262.   # ● Initialize
  9263.   #--------------------------------------------------------------------------
  9264.   def initialize
  9265.       $game_temp.scene_save = false
  9266.       super
  9267.   end  
  9268.  
  9269. end
  9270.  
  9271. #==============================================================================
  9272. # ■ Scene_File
  9273. #==============================================================================
  9274. class Scene_File
  9275.   include MOG_MENU_SAVE
  9276.  
  9277. #--------------------------------------------------------------------------
  9278. # ● Main
  9279. #--------------------------------------------------------------------------         
  9280. def main
  9281.      $game_temp.execute_pre_cache_file_menu
  9282.      create_sprites
  9283.      Graphics.transition(10)
  9284.      execute_loop
  9285.      execute_dispose
  9286. end   
  9287.  
  9288. #--------------------------------------------------------------------------
  9289. # ● Execute Loop
  9290. #--------------------------------------------------------------------------           
  9291. def execute_loop
  9292.      loop do
  9293.           Graphics.update
  9294.           Input.update
  9295.           update
  9296.           if SceneManager.scene != self
  9297.               break
  9298.           end
  9299.      end
  9300. end   
  9301.  
  9302. end
  9303.  
  9304. #==============================================================================
  9305. # ■ Window_SaveFile
  9306. #==============================================================================
  9307. class Window_SaveFile_A < Window_Base
  9308.   attr_reader   :filename               
  9309.   attr_reader   :file_exist               
  9310.   attr_reader   :time_stamp              
  9311.   attr_reader   :selected                 
  9312.   attr_reader   :file_index
  9313.  
  9314.   #--------------------------------------------------------------------------
  9315.   # ● Initialize
  9316.   #--------------------------------------------------------------------------
  9317.   def initialize(file_index, filename)
  9318.       super(0, 0,720, 140)
  9319.       self.opacity = 0
  9320.       @file_index = file_index
  9321.       @filename = filename
  9322.       load_gamedata
  9323.       refresh
  9324.       @selected = false
  9325.   end
  9326.  
  9327.   #--------------------------------------------------------------------------
  9328.   # ● load_gamedata
  9329.   #--------------------------------------------------------------------------
  9330.   def load_gamedata
  9331.     @time_stamp = Time.at(0)
  9332.     @file_exist = FileTest.exist?(@filename)
  9333.     if @file_exist
  9334.        header = DataManager.load_header(@file_index)
  9335.        if header == nil
  9336.           @file_exist = false
  9337.           return
  9338.        end  
  9339.        @characters = header[:characters]
  9340.        @total_sec = header[:playtime]
  9341.        @mapname = header[:map_name]
  9342.        @members = header[:members]
  9343.     end
  9344.   end
  9345.  
  9346.   #--------------------------------------------------------------------------
  9347.   # ● Refresh
  9348.   #--------------------------------------------------------------------------
  9349.   def refresh
  9350.       self.contents.clear
  9351.       self.contents.font.color = normal_color
  9352.       xp = 96
  9353.       ex = 60   
  9354.       if @file_exist
  9355.          if @total_sec == nil
  9356.             draw_parameter_layout2(0,50,0)
  9357.             draw_parameter_layout(-10 + xp,0)
  9358.             value = @file_index + 1
  9359.             draw_picture_number_file(13 + xp, 32,value, "File_Number_01",1,0,3,0)           
  9360.             self.contents.draw_text(140, 50, 450, 32, "出错!请不要使用旧的存档文件", 0)
  9361.             return
  9362.         end  
  9363.         draw_parameter_layout2(0,50,0)
  9364.         draw_parameter_layout(-10 + xp,0)
  9365.         value = @file_index + 1
  9366.         draw_picture_number_file(13 + xp, 32,value, "File_Number_01",1,0,3,0)
  9367.         draw_party_characters(180 + xp, 75,ex)
  9368.         draw_playtime(495, 20, contents.width - 4, 2)
  9369.         draw_map_location( 400 + xp,64)
  9370.         draw_level(185 + xp,85,ex)
  9371.         draw_face_save(40 + xp,0)
  9372.       else  
  9373.         draw_parameter_layout2(0,50,1)
  9374.         draw_parameter_layout(-10 + xp,0)
  9375.         value = @file_index + 1
  9376.         draw_picture_number_file(13 + xp, 32,value, "File_Number_01",1,0,3,0)      
  9377.          self.contents.draw_text(260, 50, 120, 32, "没有数据", 1)
  9378.       end
  9379.     end
  9380.  
  9381.   #--------------------------------------------------------------------------
  9382.   # ● draw_face
  9383.   #--------------------------------------------------------------------------
  9384.   def draw_face_save(x,y)
  9385.      draw_actor_face(@members[0], x, y)
  9386.   end
  9387.  
  9388.   #--------------------------------------------------------------------------
  9389.   # ● draw_level
  9390.   #--------------------------------------------------------------------------
  9391.   def draw_level(x,y,ex)
  9392.       self.contents.font.color = normal_color   
  9393.       for i in [email]0...@members.size[/email]
  9394.         break if i > 3
  9395.         level = @members[i].level
  9396.         draw_picture_number_file(x + (ex  * i) , y ,level, "File_Number_01",1,0,3,1)
  9397.       end        
  9398.   end
  9399.  
  9400.   #--------------------------------------------------------------------------
  9401.   # ● draw_map_location
  9402.   #--------------------------------------------------------------------------
  9403.   def draw_map_location(x,y)
  9404.       self.contents.font.bold = true
  9405.       self.contents.font.name = "Georgia"
  9406.       self.contents.font.size = 20
  9407.       self.contents.font.italic = true
  9408.       self.contents.draw_text(x, y, 125, 32, @mapname.to_s, 0)
  9409.   end
  9410.   #--------------------------------------------------------------------------
  9411.   # ● draw_party_characters
  9412.   #--------------------------------------------------------------------------
  9413.   def draw_party_characters(x, y,ex)
  9414.       for i in [email]0...@characters.size[/email]
  9415.         break if i > 3
  9416.         name = @characters[i][0]
  9417.         index = @characters[i][1]
  9418.         draw_character_floor(- 35 + x + i * ex,y - 20)      
  9419.         draw_character(name, index, x + i * ex, y)
  9420.       end
  9421.   end
  9422.  
  9423.   #--------------------------------------------------------------------------
  9424.   # ● draw_playtime
  9425.   #--------------------------------------------------------------------------
  9426.   def draw_playtime(x, y, width, align)
  9427.       hour = @total_sec / 60 / 60
  9428.       min = @total_sec / 60 % 60
  9429.       sec = @total_sec % 60
  9430.       time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
  9431.       draw_picture_number_file(x + 18 * 0, y ,0, "File_Number_01",0,0,3,0) if hour < 10
  9432.       draw_picture_number_file(x + 18 * 1, y ,hour, "File_Number_01",0,0,3,0)
  9433.       draw_picture_number_file(x + 18 * 3, y ,0, "File_Number_01",0,0,3,0) if min < 10
  9434.       draw_picture_number_file(x + 18 * 4, y ,min, "File_Number_01",0,0,3,0)
  9435.       draw_picture_number_file(x + 18 * 6, y ,0, "File_Number_01",0,0,3,0) if sec < 10
  9436.       draw_picture_number_file(x + 18 * 7, y ,sec , "File_Number_01",0,0,3,0)     
  9437.   end
  9438.  
  9439.   #--------------------------------------------------------------------------
  9440.   # ● selected
  9441.   #--------------------------------------------------------------------------
  9442.   def selected=(selected)
  9443.       @selected = selected
  9444.   end
  9445. end
  9446.  
  9447. #==============================================================================
  9448. # ■ Scene_File
  9449. #==============================================================================
  9450. class Scene_File
  9451.  
  9452.   #--------------------------------------------------------------------------
  9453.   # ● Create Sprites
  9454.   #--------------------------------------------------------------------------
  9455.   def create_sprites
  9456.       @saving = $game_temp.scene_save
  9457.       @file_max = FILES_MAX
  9458.       @file_max = 1 if FILES_MAX < 1
  9459.       create_background
  9460.       create_layout
  9461.       create_savefile_windows
  9462.       create_particles
  9463.       @index = DataManager.last_savefile_index
  9464.       @check_prev_index = true
  9465.       @savefile_windows[@index].selected = true   
  9466.   end  
  9467.  
  9468.   #--------------------------------------------------------------------------
  9469.   # ● Create Background
  9470.   #--------------------------------------------------------------------------            
  9471.   def create_background
  9472.       @background = Plane.new
  9473.       @background.bitmap = $game_temp.pre_cache_file_menu[0]
  9474.       @background.z = 0
  9475.       @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  9476.   end   
  9477.  
  9478.   #--------------------------------------------------------------------------
  9479.   # ● Create_Layout
  9480.   #--------------------------------------------------------------------------  
  9481.   def create_layout
  9482.       @layout_01 = Sprite.new  
  9483.       @layout_01.bitmap = $game_temp.pre_cache_file_menu[1]
  9484.       @layout_01.z = 1      
  9485.       @layout_01.blend_type = 1      
  9486.       @save_image = $game_temp.pre_cache_file_menu[2]
  9487.       @layout_02 = Sprite.new  
  9488.       @layout_02.bitmap = Bitmap.new(@save_image.width,@save_image.height)
  9489.       cw = @save_image.width
  9490.       ch = @save_image.height / 2
  9491.       if @saving
  9492.          h = 0
  9493.       else  
  9494.          h = ch
  9495.       end  
  9496.       src_rect = Rect.new(0, h, cw, ch)
  9497.       @layout_02.bitmap.blt(0,0, @save_image, src_rect)      
  9498.       @layout_02.z = 3
  9499.       @layout_02.y = 370
  9500.    end
  9501.  
  9502.   #--------------------------------------------------------------------------
  9503.   # ● Create Save File Window
  9504.   #--------------------------------------------------------------------------
  9505.   def create_savefile_windows
  9506.       @pw_pos = [-160,32]
  9507.       @aw_pos = [-96,160]
  9508.       @nw_pos = [-32,288]
  9509.       @savefile_windows = []
  9510.       for i in 0...@file_max
  9511.           @savefile_windows[i] = Window_SaveFile_A.new(i, DataManager.make_filename(i))
  9512.           @savefile_windows[i].z = 2
  9513.           @savefile_windows[i].visible = false
  9514.           @savefile_windows[i].x = 400
  9515.       end
  9516.       check_active_window
  9517.       @item_max = @file_max
  9518.   end
  9519.  
  9520.   #--------------------------------------------------------------------------
  9521.   # ● Create Particles
  9522.   #--------------------------------------------------------------------------  
  9523.   def create_particles
  9524.       @particles_sprite =[]
  9525.       for i in 0...NUMBER_OF_PARTICLES
  9526.           @particles_sprite.push(Particles_Menu.new(nil))
  9527.       end
  9528.   end   
  9529.  
  9530. end
  9531.  
  9532. #==============================================================================
  9533. # ■ Scene_File
  9534. #==============================================================================
  9535. class Scene_File
  9536.  
  9537.   #--------------------------------------------------------------------------
  9538.   # ● Execute Dispose
  9539.   #--------------------------------------------------------------------------
  9540.   def execute_dispose
  9541.       return if @background == nil
  9542.       Graphics.freeze
  9543.       dispose_background
  9544.       dispose_particles
  9545.       dispose_layout
  9546.       dispose_item_windows
  9547.   end
  9548.  
  9549. #--------------------------------------------------------------------------
  9550. # ● Dispose Layout
  9551. #--------------------------------------------------------------------------  
  9552. def dispose_layout
  9553.      @layout_01.dispose
  9554.      @layout_02.bitmap.dispose
  9555.      @layout_02.dispose  
  9556. end
  9557.  
  9558. #--------------------------------------------------------------------------
  9559. # ● Dispose Background
  9560. #--------------------------------------------------------------------------
  9561. def dispose_background
  9562.      @background.dispose
  9563.      @background = nil   
  9564. end
  9565.  
  9566. #--------------------------------------------------------------------------
  9567. # ● Dispose Particles
  9568. #--------------------------------------------------------------------------   
  9569. def dispose_particles
  9570.      return if @particles_sprite == nil
  9571.      @particles_sprite.each {|sprite| sprite.dispose }
  9572. end   
  9573.  
  9574.   #--------------------------------------------------------------------------
  9575.   # ● Dispose of Save File Window
  9576.   #--------------------------------------------------------------------------
  9577.   def dispose_item_windows
  9578.       for window in @savefile_windows
  9579.           window.dispose
  9580.       end
  9581.   end  
  9582.  
  9583. end
  9584.  
  9585. #==============================================================================
  9586. # ■ Scene_File
  9587. #==============================================================================
  9588. class Scene_File  
  9589.  
  9590.   #--------------------------------------------------------------------------
  9591.   # ● Update Sprites
  9592.   #--------------------------------------------------------------------------
  9593.   def update_sprites
  9594.       check_start_index
  9595.       update_savefile_windows      
  9596.       update_background
  9597.       update_particles      
  9598.   end
  9599.  
  9600.   #--------------------------------------------------------------------------
  9601.   # ● Update Background
  9602.   #--------------------------------------------------------------------------              
  9603.   def update_background
  9604.       return if @background == nil
  9605.       @background.ox += @background_scroll[0]
  9606.       @background.oy += @background_scroll[1]
  9607.   end   
  9608.  
  9609.   #--------------------------------------------------------------------------
  9610.   # ● Update Particles
  9611.   #--------------------------------------------------------------------------  
  9612.   def update_particles
  9613.       return if @particles_sprite == nil
  9614.       @particles_sprite.each {|sprite| sprite.update }
  9615.   end
  9616.  
  9617.   #--------------------------------------------------------------------------
  9618.   # ● check_start_index
  9619.   #--------------------------------------------------------------------------
  9620.   def check_start_index
  9621.       return if @check_prev_index == false
  9622.       @check_prev_index = false
  9623.       check_active_window   
  9624.   end  
  9625.  
  9626.   #--------------------------------------------------------------------------
  9627.   # ● check_active_window   
  9628.   #--------------------------------------------------------------------------
  9629.   def check_active_window   
  9630.       @index = 0 if @index == nil
  9631.       for i in 0...@file_max  
  9632.         @pw = @index - 1
  9633.         @pw = 0 if @pw > @file_max - 1
  9634.         @pw = @file_max- 1 if @pw < 0        
  9635.         @aw = @index
  9636.         @nw = @index + 1
  9637.         @nw = 0 if @nw > @file_max - 1
  9638.         @nw = @file_max - 1  if @nw < 0
  9639.         case @savefile_windows[i].file_index
  9640.            when @pw,@nw
  9641.                 @savefile_windows[i].visible = true
  9642.                 @savefile_windows[i].contents_opacity = 80
  9643.            when @aw  
  9644.                 @savefile_windows[i].visible = true
  9645.                 @savefile_windows[i].contents_opacity = 255
  9646.            else
  9647.                 @savefile_windows[i].visible = false
  9648.         end
  9649.       end         
  9650.   end
  9651.  
  9652.   #--------------------------------------------------------------------------
  9653.   # ● Update Save File Window
  9654.   #--------------------------------------------------------------------------
  9655.   def update_savefile_windows
  9656.       update_slide_window
  9657.       for window in @savefile_windows
  9658.         window.update
  9659.       end
  9660.   end
  9661.  
  9662.   #--------------------------------------------------------------------------
  9663.   # ● update_slide_window
  9664.   #--------------------------------------------------------------------------  
  9665.   def update_slide_window
  9666.       slide_window_x(@pw,@pw_pos[0])
  9667.       slide_window_x(@aw,@aw_pos[0])
  9668.       slide_window_x(@nw,@nw_pos[0])
  9669.       slide_window_y(@pw,@pw_pos[1])
  9670.       slide_window_y(@aw,@aw_pos[1])
  9671.       slide_window_y(@nw,@nw_pos[1])
  9672.   end
  9673.  
  9674.   #--------------------------------------------------------------------------
  9675.   # ● slide_window_x
  9676.   #--------------------------------------------------------------------------   
  9677.   def slide_window_x(i,x_pos)
  9678.       if @savefile_windows[i].x < x_pos
  9679.          @savefile_windows[i].x += 15
  9680.          @savefile_windows[i].x = x_pos if @savefile_windows[i].x > x_pos
  9681.       end  
  9682.       if @savefile_windows[i].x > x_pos
  9683.          @savefile_windows[i].x -= 15
  9684.          @savefile_windows[i].x = x_pos if @savefile_windows[i].x < x_pos        
  9685.        end            
  9686.   end   
  9687.  
  9688.   #--------------------------------------------------------------------------
  9689.   # ● slide_window_y
  9690.   #--------------------------------------------------------------------------   
  9691.   def slide_window_y(i,y_pos)
  9692.       if @savefile_windows[i].y < y_pos
  9693.          @savefile_windows[i].y += 15
  9694.          @savefile_windows[i].y = y_pos if @savefile_windows[i].y > y_pos
  9695.       end  
  9696.       if @savefile_windows[i].y > y_pos
  9697.          @savefile_windows[i].y -= 15
  9698.          @savefile_windows[i].y = y_pos if @savefile_windows[i].y < y_pos        
  9699.        end            
  9700.   end   
  9701.  
  9702.   #--------------------------------------------------------------------------
  9703.   # ● reset_position
  9704.   #--------------------------------------------------------------------------     
  9705.   def reset_position(diretion)
  9706.       check_active_window      
  9707.       case diretion
  9708.          when 0
  9709.             @savefile_windows[@pw].y = -64
  9710.             @savefile_windows[@pw].x = 0
  9711.          when 1  
  9712.             @savefile_windows[@nw].y = 440
  9713.             @savefile_windows[@nw].x = 0
  9714.       end        
  9715.   end   
  9716.  
  9717. end  
  9718.  
  9719. #==============================================================================
  9720. # ■ Scene_File
  9721. #==============================================================================
  9722. class Scene_File  
  9723.  
  9724.   #--------------------------------------------------------------------------
  9725.   # ● Frame Update
  9726.   #--------------------------------------------------------------------------
  9727.   def update
  9728.       update_sprites
  9729.       update_command      
  9730.   end
  9731.  
  9732.   #--------------------------------------------------------------------------
  9733.   # ● Update Command
  9734.   #--------------------------------------------------------------------------
  9735.   def update_command
  9736.       if Input.trigger?(Input::C)
  9737.          on_savefile_ok
  9738.       elsif Input.trigger?(Input::B)
  9739.          Sound.play_cancel
  9740.          return_scene
  9741.       else
  9742.         last_index = @index
  9743.         if Input.trigger?(Input::DOWN)
  9744.            execute_index(1)
  9745.            if @file_max > 2
  9746.               reset_position(1)
  9747.            else
  9748.               reset_position(0)
  9749.            end  
  9750.         end
  9751.         if Input.trigger?(Input::UP)
  9752.            execute_index(-1)
  9753.            reset_position(0)
  9754.         end
  9755.         if @index != last_index
  9756.            Sound.play_cursor
  9757.            @savefile_windows[last_index].selected = false
  9758.            @savefile_windows[@index].selected = true
  9759.         end      
  9760.       end
  9761.   end
  9762.  
  9763.   #--------------------------------------------------------------------------
  9764.   # ● Execute Index
  9765.   #--------------------------------------------------------------------------  
  9766.   def execute_index(value)
  9767.       @index += value
  9768.       @index = @index >= @file_max ? 0 : @index < 0 ? (@file_max - 1) : @index
  9769.   end
  9770.  
  9771. end
  9772.  
  9773. #==============================================================================
  9774. # ■ Game_Temp
  9775. #==============================================================================
  9776. class Game_Temp
  9777.  
  9778.   #--------------------------------------------------------------------------
  9779.   # ● Execute Pre Cache End Menu
  9780.   #--------------------------------------------------------------------------   
  9781.   def execute_pre_cache_end_menu
  9782.       @pre_cache_end_menu = []
  9783.       @pre_cache_end_menu.push(Cache.menu_end("Background"))
  9784.       @pre_cache_end_menu.push(Cache.menu_end("Layout"))
  9785.   end   
  9786.  
  9787. end
  9788.  
  9789. #==============================================================================
  9790. # ■ Scene_End
  9791. #==============================================================================
  9792. class Scene_End
  9793.   include MOG_MENU_END
  9794.   include MOG_MENU_BASE
  9795.  
  9796.   #--------------------------------------------------------------------------
  9797.   # ● Main
  9798.   #--------------------------------------------------------------------------        
  9799.   def main
  9800.       execute_setup
  9801.       execute_loop
  9802.       execute_dispose
  9803.   end  
  9804.  
  9805.   #--------------------------------------------------------------------------
  9806.   # ● Execute Setup
  9807.   #--------------------------------------------------------------------------        
  9808.   def execute_setup
  9809.       @phase = 0
  9810.       create_sprites
  9811.   end
  9812.  
  9813.   #--------------------------------------------------------------------------
  9814.   # ● Execute Lopp
  9815.   #--------------------------------------------------------------------------        
  9816.   def execute_loop
  9817.       Graphics.transition(10)
  9818.       loop do
  9819.          Input.update
  9820.          update
  9821.          Graphics.update
  9822.          break if SceneManager.scene != self
  9823.       end
  9824.   end
  9825.  
  9826. end
  9827.  
  9828. #==============================================================================
  9829. # ■ Scene_End
  9830. #==============================================================================
  9831. class Scene_End
  9832.  
  9833.   #--------------------------------------------------------------------------
  9834.   # ● Create Sprites
  9835.   #--------------------------------------------------------------------------
  9836.   def create_sprites
  9837.       create_menu_background
  9838.       create_layout
  9839.       create_particles
  9840.       create_command_window
  9841.   end
  9842.  
  9843.   #--------------------------------------------------------------------------
  9844.   # ● Create Menu Background
  9845.   #--------------------------------------------------------------------------            
  9846.   def create_menu_background
  9847.       @background = Plane.new
  9848.       @background.bitmap = $game_temp.pre_cache_end_menu[0]
  9849.       @background.z = 0
  9850.       @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  9851.   end   
  9852.  
  9853.   #--------------------------------------------------------------------------
  9854.   # ● Create Layout
  9855.   #--------------------------------------------------------------------------              
  9856.   def create_layout     
  9857.       @layout = Sprite.new
  9858.       @layout.bitmap = $game_temp.pre_cache_end_menu[1]
  9859.       @layout.z = 3
  9860.   end  
  9861.  
  9862.   #--------------------------------------------------------------------------
  9863.   # ● Create Particles
  9864.   #--------------------------------------------------------------------------  
  9865.   def create_particles
  9866.       @particles_sprite =[]
  9867.       for i in 0...NUMBER_OF_PARTICLES
  9868.           @particles_sprite.push(Particles_Menu.new(nil))
  9869.       end
  9870.   end   
  9871.  
  9872.   #--------------------------------------------------------------------------
  9873.   # ● Create Command Window
  9874.   #--------------------------------------------------------------------------
  9875.   def create_command_window
  9876.       @command_window = Window_GameEnd.new
  9877.       @command_window.set_handler(:to_title, method(:command_to_title))
  9878.       @command_window.set_handler(:shutdown, method(:command_shutdown))
  9879.       @command_window.set_handler(:cancel,   method(:return_scene))
  9880.   end  
  9881.  
  9882. end
  9883.  
  9884. #==============================================================================
  9885. # ■ Scene_End
  9886. #==============================================================================
  9887. class Scene_End
  9888.  
  9889.   #--------------------------------------------------------------------------
  9890.   # ● Execute Dispose
  9891.   #--------------------------------------------------------------------------        
  9892.   def execute_dispose
  9893.       Graphics.freeze
  9894.       dispose_background
  9895.       dispose_layout
  9896.       dispose_particles
  9897.       dispose_command_window
  9898.    end
  9899.  
  9900.   #--------------------------------------------------------------------------
  9901.   # ● Dispose Background
  9902.   #--------------------------------------------------------------------------  
  9903.   def dispose_background
  9904.       return if @background == nil
  9905.       @background.dispose
  9906.       @background = nil
  9907.   end
  9908.  
  9909.  
  9910.   #--------------------------------------------------------------------------
  9911.   # ● Dispose Layout
  9912.   #--------------------------------------------------------------------------               
  9913.   def dispose_layout
  9914.       return if @layout == nil
  9915.       @layout.dispose
  9916.       @layout = nil
  9917.   end  
  9918.  
  9919. #--------------------------------------------------------------------------
  9920. # ● Dispose Particles
  9921. #--------------------------------------------------------------------------   
  9922. def dispose_particles
  9923.      return if @particles_sprite == nil
  9924.      @particles_sprite.each {|sprite| sprite.dispose }
  9925. end     
  9926.  
  9927.   #--------------------------------------------------------------------------
  9928.   # ● Dispose Command Window
  9929.   #--------------------------------------------------------------------------
  9930.   def dispose_command_window
  9931.       return if @command_window == nil
  9932.       @command_window.dispose
  9933.   end     
  9934.  
  9935. end
  9936.  
  9937. #==============================================================================
  9938. # ■ Scene_End
  9939. #==============================================================================
  9940. class Scene_End
  9941.  
  9942.   #--------------------------------------------------------------------------
  9943.   # ● Update Sprites
  9944.   #--------------------------------------------------------------------------         
  9945.   def update_sprites   
  9946.       update_background
  9947.       update_particles     
  9948.       update_command_window
  9949.   end
  9950.  
  9951.   #--------------------------------------------------------------------------
  9952.   # ● Update Background
  9953.   #--------------------------------------------------------------------------              
  9954.   def update_background
  9955.       return if @background == nil
  9956.       @background.ox += @background_scroll[0]
  9957.       @background.oy += @background_scroll[1]
  9958.   end   
  9959.  
  9960.   #--------------------------------------------------------------------------
  9961.   # ● Update Particles
  9962.   #--------------------------------------------------------------------------  
  9963.   def update_particles
  9964.       return if @particles_sprite == nil
  9965.       @particles_sprite.each {|sprite| sprite.update }
  9966.   end
  9967.  
  9968.   #--------------------------------------------------------------------------
  9969.   # ● Update Command Window
  9970.   #--------------------------------------------------------------------------
  9971.   def update_command_window
  9972.       return if @command_window == nil
  9973.       @command_window.update
  9974.   end      
  9975.  
  9976. end
  9977.  
  9978. #==============================================================================
  9979. # ■ Scene_End
  9980. #==============================================================================
  9981. class Scene_End
  9982.  
  9983.   #--------------------------------------------------------------------------
  9984.   # ● Update
  9985.   #--------------------------------------------------------------------------      
  9986.   def update
  9987.       update_sprites
  9988.       update_command
  9989.   end
  9990.  
  9991.   #--------------------------------------------------------------------------
  9992.   # ● Return Scene
  9993.   #--------------------------------------------------------------------------         
  9994.   def return_scene
  9995.       Sound.play_cancel
  9996.       SceneManager.return
  9997.   end
  9998.  
  9999.   #--------------------------------------------------------------------------
  10000.   # ● ON Actor Charge
  10001.   #--------------------------------------------------------------------------
  10002.   def on_actor_change
  10003.       $game_temp.actor_menu_temp = @actor
  10004.       SceneManager.goto(Scene_Status)
  10005.   end  
  10006.  
  10007. end
  10008.  
  10009. #==============================================================================
  10010. # ■ Scene_End
  10011. #==============================================================================
  10012. class Scene_End
  10013.  
  10014.   #--------------------------------------------------------------------------
  10015.   # ● Update Command
  10016.   #--------------------------------------------------------------------------      
  10017.   def update_command   
  10018.   end
  10019.  
  10020. end
  10021.  
  10022. $mog_rgss3_monogatari = true

1.png (209.35 KB, 下载次数: 2)

图1

图1

2.png (210.1 KB, 下载次数: 1)

图2

图2
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 16:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表