Advertisement
Guest User

Untitled

a guest
Apr 9th, 2014
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 355.41 KB | None | 0 0
  1. #==============================================================================
  2. # +++ MOG - Monogatari (物語) (v1.4) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # http://www.atelier-rgss.com/
  6. #==============================================================================
  7. # Sistema avançado de menu, voltado para scripters que desejam saber sobre
  8. # técnicas de manipulação de sprites e janelas.
  9. #==============================================================================
  10.  
  11. #==============================================================================
  12. # Version History.
  13. #==============================================================================
  14. # 1.4 - Compatibilidade com Mog Menu Cursor.
  15. # 1.3 - Corrigido o bug do som da Scene Skill.
  16. # 1.2 - Compatibilidade com Third Party scripts.
  17. # - Scene File incorporado ao sistema Monogatari, melhorando a performance.
  18. #==============================================================================
  19.  
  20. #==============================================================================
  21. # NOTA - Como este é um script para apresentar técnicas de RGSS, não foram
  22. # adicionados comentários explicativos no modulo de configuração
  23. #==============================================================================
  24.  
  25. #==============================================================================
  26. # ■ MAIN MENU
  27. #==============================================================================
  28. module MOG_MENU
  29. NUMBER_OF_PARTICLES = 20
  30. BACKGROUND_SCROLL_SPEED = [1,0]
  31. COMMAND_POSITION = [32, 84]
  32. COMMAND_POSITION_2 = [10,100]
  33. COMMAND_SPACE = 4
  34. COMMAND_NAME_POSITION = [0,0]
  35. COMMAND_NAME_POSITION_2 = [220,48]
  36. ACTOR_SPACE = 100
  37. ACTOR_POSITION = [240,0]
  38.  
  39. ACTOR_LAYOUT_POSITON = [0,275]
  40. ACTOR_HP1_POSITON = [28,315]
  41. ACTOR_HP2_POSITON = [50,330]
  42. ACTOR_MP1_POSITON = [28,346]
  43. ACTOR_MP2_POSITON = [50,361]
  44. ACTOR_HP_METER_POSITON = [29,329]
  45. ACTOR_MP_METER_POSITON = [29,360]
  46. ACTOR_LEVEL_POSITON = [30,290]
  47. ACTOR_STATES_POSITION = [63,283]
  48.  
  49. MEMBERS_FACE_POSITION =[150,55]
  50. MEMBERS_FACE_SPACE = 64
  51. MEMBERS_ARROW_LAYOUT_POSITION = [217,40]
  52. MEMBERS_ARROW_1_POSITION = [180,40]
  53. MEMBERS_ARROW_2_POSITION = [300,40]
  54. TIME_NUMBER_POS = [415,10]
  55. GOLD_NUMBER_POS = [170,388]
  56. LOCATION_POS = [330,380]
  57. end
  58.  
  59. #==============================================================================
  60. # ■ MOG_MENU ITEM
  61. #==============================================================================
  62. module MOG_MENU_ITEM
  63. NUMBER_OF_PARTICLES = 20
  64. BACKGROUND_SCROLL_SPEED = [0,0]
  65. COMMAND_POSITION = [0, 69]
  66. BUTTON_POSITION = [210, 30]
  67. BUTTON_SPACE = 90
  68. end
  69.  
  70. #==============================================================================
  71. # ■ MOG_MENU SKILL
  72. #==============================================================================
  73. module MOG_MENU_SKILL
  74. NUMBER_OF_PARTICLES = 20
  75. BACKGROUND_SCROLL_SPEED = [0,0]
  76. end
  77.  
  78. #==============================================================================
  79. # ■ MOG_ACTOR SKILL STATUS
  80. #==============================================================================
  81. module MOG_ACTOR_SKILL_STATUS
  82. MEMBERS_SPACE = 80
  83. LAYOUT_POSITION = [155,0]
  84. PAR_POSITION = [0,0]
  85. FACE_POSITION = [-13,-3]
  86. HP_METER_POSITION = [158,15]
  87. MP_METER_POSITION = [177,35]
  88. STATES_POSITION = [71,36]
  89. STATES_SCROLLING_ANIMATION = false
  90. NAME_POSITION = [105,34]
  91. FONT_NAME = "Georgia"
  92. FONT_SIZE = 18
  93. FONT_BOLD = true
  94. end
  95.  
  96. #==============================================================================
  97. # ■ MOG_MENU EQUIP
  98. #==============================================================================
  99. module MOG_MENU_EQUIP
  100. NUMBER_OF_PARTICLES = 20
  101. BACKGROUND_SCROLL_SPEED = [0,0]
  102. FONT_NAME = "Arial"
  103. FONT_SIZE = 18
  104. FONT_BOLD = true
  105. FONT_ITALIC = false
  106. end
  107.  
  108. #==============================================================================
  109. # ■ MOG_MENU STATUS
  110. #==============================================================================
  111. module MOG_MENU_STATUS
  112. NUMBER_OF_PARTICLES = 20
  113. BACKGROUND_SCROLL_SPEED = [1,0]
  114. end
  115.  
  116. #==============================================================================
  117. # ■ MOG MENU PARTY
  118. #==============================================================================
  119. module MOG_MENU_PARTY
  120. NUMBER_OF_PARTICLES = 20
  121. BACKGROUND_SCROLL_SPEED = [0,0]
  122. end
  123.  
  124. #==============================================================================
  125. # ■ MOG MENU SAVE
  126. #==============================================================================
  127. module MOG_MENU_SAVE
  128. FILES_MAX = 9
  129. NUMBER_OF_PARTICLES = 20
  130. BACKGROUND_SCROLL_SPEED = [1,0]
  131. end
  132.  
  133. #==============================================================================
  134. # ■ MOG MENU END
  135. #==============================================================================
  136. module MOG_MENU_END
  137. NUMBER_OF_PARTICLES = 20
  138. BACKGROUND_SCROLL_SPEED = [0,0]
  139. end
  140.  
  141. #==============================================================================
  142. # ■ MOG ACTOR MENU STATUS
  143. #==============================================================================
  144. module MOG_ACTOR_MENU_STATUS
  145. LAYOUT_POSITION = [385,115]
  146. FACE_POSITION = [48,-32]
  147. PAR_POSITION = [5,64]
  148. STATES_POSITION = [15,25]
  149. STATES_SCROLLING_ANIMATION = false
  150. NAME_POSITION = [10,60]
  151. FONT_NAME = "Georgia"
  152. FONT_SIZE = 18
  153. FONT_BOLD = true
  154. end
  155.  
  156. #==============================================================================
  157. # ■ MOG MEMBERS LAYOUT
  158. #==============================================================================
  159. module MOG_MEMBERS_LAYOUT
  160. MEMBERS_SPACE = 80
  161. LAYOUT_POSITION = [3,160]
  162. PAR_POSITION = [0,0]
  163. FACE_POSITION = [0,-2]
  164. HP_METER_POSITION = [12,37]
  165. MP_METER_POSITION = [86,37]
  166. SCOPE_TEXT_POSITION = [0,170]
  167. ARROW_1_POSITION = [50,55]
  168. ARROW_2_POSITION = [50,4]
  169. NAME_POSITION = [42,38]
  170. FONT_NAME = "Georgia"
  171. FONT_SIZE = 18
  172. FONT_BOLD = true
  173. end
  174.  
  175. #==============================================================================
  176. # ■ MOG MENU BASE
  177. #==============================================================================
  178. module MOG_MENU_BASE
  179. end
  180.  
  181. $imported = {} if $imported.nil?
  182. $imported[:mog_monogatari] = true
  183.  
  184. #==============================================================================
  185. # ■ Game Temp
  186. #==============================================================================
  187. class Game_Temp
  188.  
  189. attr_accessor :menu_index
  190. attr_accessor :actor_menu_temp
  191. attr_accessor :item_scope
  192. attr_accessor :temp_actor_equip
  193.  
  194. #--------------------------------------------------------------------------
  195. # ● Initialize
  196. #--------------------------------------------------------------------------
  197. alias mog_menu_index_initialize initialize
  198. def initialize
  199. @menu_index = 0
  200. @actor_menu_temp = -1
  201. @item_scope = 0
  202. @temp_actor_equip = nil
  203. mog_menu_index_initialize
  204. end
  205.  
  206. end
  207.  
  208. #==============================================================================
  209. # ■ Scene Map
  210. #==============================================================================
  211. class Scene_Map < Scene_Base
  212.  
  213. #--------------------------------------------------------------------------
  214. # ● Update Call Menu
  215. #--------------------------------------------------------------------------
  216. alias mog_menu_monogatari_update_call_menu update_call_menu
  217. def update_call_menu
  218. if $game_party.members.size == 0
  219. @call_menu = false
  220. return
  221. end
  222. mog_menu_monogatari_update_call_menu
  223. end
  224.  
  225. #--------------------------------------------------------------------------
  226. # ● Call Menu
  227. #--------------------------------------------------------------------------
  228. alias mog_menu_monogatari_call_menu call_menu
  229. def call_menu
  230. $game_temp.menu_index = 0
  231. mog_menu_monogatari_call_menu
  232. end
  233.  
  234. end
  235.  
  236. #==============================================================================
  237. # ■ Window Command
  238. #==============================================================================
  239. class Window_Command < Window_Selectable
  240. attr_reader :list
  241. end
  242.  
  243. #==============================================================================
  244. # ■ Game Party
  245. #==============================================================================
  246. class Game_Party < Game_Unit
  247. attr_accessor :menu_actor_id
  248. end
  249.  
  250. #==============================================================================
  251. # ■ Game Interpreter
  252. #==============================================================================
  253. class Game_Interpreter
  254.  
  255. #--------------------------------------------------------------------------
  256. # ● gain Tp
  257. #--------------------------------------------------------------------------
  258. def gain_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. #--------------------------------------------------------------------------
  264. # ● Lose Tp
  265. #--------------------------------------------------------------------------
  266. def lose_tp(actor_id,value)
  267. return if $game_party.members[actor_id] == nil
  268. $game_party.members[actor_id].tp -= value.truncate
  269. end
  270.  
  271. end
  272.  
  273. #==============================================================================
  274. # ■ Cache
  275. #==============================================================================
  276. module Cache
  277.  
  278. #--------------------------------------------------------------------------
  279. # ● Menu
  280. #--------------------------------------------------------------------------
  281. def self.menu(filename)
  282. load_bitmap("Graphics/Menus/", filename)
  283. end
  284.  
  285. #--------------------------------------------------------------------------
  286. # ● Menu Main
  287. #--------------------------------------------------------------------------
  288. def self.menu_main(filename)
  289. load_bitmap("Graphics/Menus/Main/", filename)
  290. end
  291.  
  292. #--------------------------------------------------------------------------
  293. # ● Menu Item
  294. #--------------------------------------------------------------------------
  295. def self.menu_item(filename)
  296. load_bitmap("Graphics/Menus/Item/", filename)
  297. end
  298.  
  299. #--------------------------------------------------------------------------
  300. # ● Menu Skill
  301. #--------------------------------------------------------------------------
  302. def self.menu_skill(filename)
  303. load_bitmap("Graphics/Menus/Skill/", filename)
  304. end
  305.  
  306. #--------------------------------------------------------------------------
  307. # ● Menu Equip
  308. #--------------------------------------------------------------------------
  309. def self.menu_equip(filename)
  310. load_bitmap("Graphics/Menus/Equip/", filename)
  311. end
  312.  
  313. #--------------------------------------------------------------------------
  314. # ● Menu Status
  315. #--------------------------------------------------------------------------
  316. def self.menu_status(filename)
  317. load_bitmap("Graphics/Menus/Status/", filename)
  318. end
  319.  
  320. #--------------------------------------------------------------------------
  321. # ● Menu Save
  322. #--------------------------------------------------------------------------
  323. def self.menu_save(filename)
  324. load_bitmap("Graphics/Menus/Save/", filename)
  325. end
  326.  
  327. #--------------------------------------------------------------------------
  328. # ● Menu Party
  329. #--------------------------------------------------------------------------
  330. def self.menu_party(filename)
  331. load_bitmap("Graphics/Menus/Party/", filename)
  332. end
  333.  
  334. #--------------------------------------------------------------------------
  335. # ● Menu End
  336. #--------------------------------------------------------------------------
  337. def self.menu_end(filename)
  338. load_bitmap("Graphics/Menus/End/", filename)
  339. end
  340.  
  341. end
  342.  
  343. #==============================================================================
  344. # ■ Game_Temp
  345. #==============================================================================
  346. class Game_Temp
  347.  
  348. attr_accessor :pre_cache_main_menu
  349. attr_accessor :pre_cache_actor_menu
  350. attr_accessor :pre_cache_item_menu
  351. attr_accessor :pre_cache_skill_menu
  352. attr_accessor :pre_cache_equip_menu
  353. attr_accessor :pre_cache_status_menu
  354. attr_accessor :pre_cache_party_menu
  355. attr_accessor :pre_cache_file_menu
  356. attr_accessor :pre_cache_end_menu
  357. attr_accessor :pre_cache_icon
  358. attr_accessor :pre_symbol
  359.  
  360. #--------------------------------------------------------------------------
  361. # ● Pre Cache Atelier Menu
  362. #--------------------------------------------------------------------------
  363. def pre_cache_atelier_menu
  364. @pre_cache_main_menu = []
  365. @pre_cache_item_menu = []
  366. @pre_cache_skill_menu = []
  367. @pre_cache_equip_menu = []
  368. @pre_cache_status_menu = []
  369. @pre_cache_party_menu = []
  370. @pre_cache_file_menu = []
  371. @pre_cache_end_menu = []
  372. @pre_symbol = ""
  373. execute_pre_cache_icon if can_pre_cache_icon?
  374. execute_pre_cache_actor
  375. execute_pre_cache_main_menu
  376. execute_pre_cache_item_menu
  377. execute_pre_cache_skill_menu
  378. execute_pre_cache_equip_menu
  379. execute_pre_cache_status_menu
  380. execute_pre_cache_file_menu
  381. execute_pre_cache_party_menu
  382. execute_pre_cache_end_menu
  383. end
  384.  
  385. #--------------------------------------------------------------------------
  386. # ● Pre Cache Icon
  387. #--------------------------------------------------------------------------
  388. def execute_pre_cache_icon
  389. @pre_cache_icon = Cache.system("Iconset")
  390. end
  391.  
  392. #--------------------------------------------------------------------------
  393. # ● Can Pre Cache Menu?
  394. #--------------------------------------------------------------------------
  395. def can_pre_cache_icon?
  396. return true if @pre_cache_icon == nil
  397. return true if @pre_cache_icon.disposed? rescue return false
  398. return false
  399. end
  400.  
  401. end
  402.  
  403. #==============================================================================
  404. # ■ Spriteset_Map
  405. #==============================================================================
  406. class Spriteset_Map
  407.  
  408. #--------------------------------------------------------------------------
  409. # ● Initialize
  410. #--------------------------------------------------------------------------
  411. alias mog_atelier_menu_initialize initialize
  412. def initialize
  413. $game_temp.pre_cache_atelier_menu if $game_temp.can_pre_cache_icon?
  414. mog_atelier_menu_initialize
  415. end
  416.  
  417. end
  418.  
  419. #==============================================================================
  420. # ■ Particles_Menu
  421. #==============================================================================
  422. class Particles_Menu < Sprite
  423.  
  424. #--------------------------------------------------------------------------
  425. # ● Initialize
  426. #--------------------------------------------------------------------------
  427. def initialize(viewport = nil)
  428. super(viewport)
  429. @speed_x = 0
  430. @speed_y = 0
  431. @speed_a = 0
  432. self.bitmap = Cache.menu("Particles")
  433. self.blend_type = 0
  434. self.z = 1
  435. reset_setting(true)
  436. end
  437.  
  438. #--------------------------------------------------------------------------
  439. # ● Reset Setting
  440. #--------------------------------------------------------------------------
  441. def reset_setting(initial = false)
  442. zoom = (50 + rand(100)) / 100.1
  443. self.zoom_x = zoom
  444. self.zoom_y = zoom
  445. self.x = rand(576) - 160
  446. self.y = initial == true ? rand(480) : 512
  447. self.opacity = 0
  448. @speed_y = -(1 + rand(3))
  449. @speed_x = (1 + rand(2))
  450. @speed_a = (1 + rand(2))
  451. end
  452.  
  453. #--------------------------------------------------------------------------
  454. # ● Dispose
  455. #--------------------------------------------------------------------------
  456. def dispose
  457. super
  458. self.bitmap.dispose if self.bitmap != nil
  459. end
  460.  
  461. #--------------------------------------------------------------------------
  462. # ● Update
  463. #--------------------------------------------------------------------------
  464. def update
  465. super
  466. self.x += @speed_x
  467. self.y += @speed_y
  468. self.opacity += 5
  469. reset_setting if can_reset_setting?
  470. end
  471.  
  472. #--------------------------------------------------------------------------
  473. # ● Can Reset Setting
  474. #--------------------------------------------------------------------------
  475. def can_reset_setting?
  476. return true if self.y < -50
  477. return true if self.x > 576
  478. return false
  479. end
  480.  
  481. end
  482.  
  483.  
  484.  
  485.  
  486. #==============================================================================
  487. # ■ Window_Actor_Status_0
  488. #==============================================================================
  489. class Members_Windows_Status < Window_Selectable
  490. attr_reader :pending_index
  491.  
  492. #--------------------------------------------------------------------------
  493. # ● Initialize
  494. #--------------------------------------------------------------------------
  495. def initialize(x = 0, y = 0)
  496. super(x, y, window_width, window_height)
  497. self.windowskin = Cache.menu("")
  498. self.opacity = 0
  499. self.contents_opacity = 0
  500. self.visible = false
  501. @input_lag = 0
  502. @old_index = -1
  503. @pending_index = -1
  504. refresh
  505. end
  506.  
  507. #--------------------------------------------------------------------------
  508. # ● Window Width
  509. #--------------------------------------------------------------------------
  510. def window_width
  511. 40
  512. end
  513.  
  514. #--------------------------------------------------------------------------
  515. # ● Window Height
  516. #--------------------------------------------------------------------------
  517. def window_height
  518. 40
  519. end
  520.  
  521. #--------------------------------------------------------------------------
  522. # ● Cursor Movable?
  523. #--------------------------------------------------------------------------
  524. def cursor_movable?
  525. active && open? && !@cursor_fix && !@cursor_all && item_max > 0 && @input_lag == 0
  526. end
  527.  
  528. #--------------------------------------------------------------------------
  529. # ● Item Max
  530. #--------------------------------------------------------------------------
  531. def item_max
  532. $game_party.members.size
  533. end
  534.  
  535. #--------------------------------------------------------------------------
  536. # ● Item Height
  537. #--------------------------------------------------------------------------
  538. def item_height
  539. (height - standard_padding * 2) / 4
  540. end
  541.  
  542. #--------------------------------------------------------------------------
  543. # ● Draw Item Background
  544. #--------------------------------------------------------------------------
  545. def draw_item_background(index)
  546. end
  547.  
  548. #--------------------------------------------------------------------------
  549. # ● Pending Index
  550. #--------------------------------------------------------------------------
  551. def pending_index=(index)
  552. last_pending_index = @pending_index
  553. @pending_index = index
  554. end
  555.  
  556. #--------------------------------------------------------------------------
  557. # ● Process OK
  558. #--------------------------------------------------------------------------
  559. def process_ok
  560. $game_party.target_actor = $game_party.members[index] unless @cursor_all
  561. call_ok_handler
  562. end
  563.  
  564. #--------------------------------------------------------------------------
  565. # ● Select Last
  566. #--------------------------------------------------------------------------
  567. def select_last
  568. select($game_party.target_actor.index || 0)
  569. end
  570.  
  571. #--------------------------------------------------------------------------
  572. # ● Select For Item
  573. #--------------------------------------------------------------------------
  574. def select_for_item(item)
  575. @cursor_fix = item.for_user?
  576. @cursor_all = item.for_all?
  577. if @cursor_fix
  578. select($game_party.menu_actor.index)
  579. elsif @cursor_all
  580. select(0)
  581. else
  582. @index = @index < 0 ? 0 : @index
  583. end
  584. end
  585.  
  586. #--------------------------------------------------------------------------
  587. # ● Draw Item
  588. #--------------------------------------------------------------------------
  589. def draw_item(index)
  590. end
  591.  
  592. #--------------------------------------------------------------------------
  593. # ● Process Cursor Move 2
  594. #--------------------------------------------------------------------------
  595. def process_cursor_move2
  596. return unless cursor_movable?
  597. last_index = @index
  598. cursor_down (Input.trigger?(:RIGHT)) if Input.repeat?(:RIGHT)
  599. cursor_up (Input.trigger?(:LEFT)) if Input.repeat?(:LEFT)
  600. Sound.play_cursor if @index != last_index
  601. end
  602.  
  603. #--------------------------------------------------------------------------
  604. # ● Update
  605. #--------------------------------------------------------------------------
  606. def update
  607. super
  608. @input_lag -= 1 if @input_lag > 0
  609. if @old_index != @index
  610. @old_index = @index
  611. @input_lag = 5
  612. end
  613. end
  614.  
  615. end
  616.  
  617. #==============================================================================
  618. # ■ Members Menu
  619. #==============================================================================
  620. class Members_Menu
  621. include MOG_MEMBERS_LAYOUT
  622.  
  623. attr_accessor :actor
  624.  
  625. #--------------------------------------------------------------------------
  626. # ● Initialize
  627. #--------------------------------------------------------------------------
  628. def initialize(actor,index)
  629. @actor = actor
  630. @index = index
  631. @index_old = -1
  632. @com_index = 0
  633. @max_index = $game_party.members.size - 1
  634. @active = false
  635. @active_old = false
  636. @opac = 0
  637. @opac_active = [0,0]
  638. @par = []
  639. @float = [0,0,0]
  640. set_old_parameter
  641. create_sprites
  642. create_sprites_support if @index == 0
  643. end
  644.  
  645. #--------------------------------------------------------------------------
  646. # ● Create Sprites
  647. #--------------------------------------------------------------------------
  648. def create_sprites
  649. @meter_image = $game_temp.pre_cache_actor_menu[6]
  650. @meter_cw = @meter_image.width
  651. @meter_ch = @meter_image.height / 2
  652. @parameter_number = $game_temp.pre_cache_actor_menu[2]
  653. @parameter_cw = @parameter_number.width / 10
  654. @parameter_ch = @parameter_number.height
  655. @visible = false
  656. create_layout
  657. create_parameter
  658. create_face
  659. create_name
  660. create_hp_meter
  661. create_mp_meter
  662. @next_pos = [-@layout.width - 64,0]
  663. @now_index = [-@layout.width - 64,0,0]
  664. @before_index = [-@layout.width - 64,0,0]
  665. @next_index = [-@layout.width - 64,0,0]
  666. set_position(-@layout.width - 64,0)
  667. set_opacity(0)
  668. end
  669.  
  670. #--------------------------------------------------------------------------
  671. # ● Create Sprites
  672. #--------------------------------------------------------------------------
  673. def create_sprites_support
  674. create_scope_all
  675. create_arrow
  676. end
  677.  
  678. #--------------------------------------------------------------------------
  679. # ● Create Scope All
  680. #--------------------------------------------------------------------------
  681. def create_scope_all
  682. @scope = Sprite.new
  683. @scope.bitmap = $game_temp.pre_cache_actor_menu[4]
  684. @scope_cw = @scope.bitmap.width
  685. @org_pos_scope = [SCOPE_TEXT_POSITION[0],SCOPE_TEXT_POSITION[1],SCOPE_TEXT_POSITION[0] - @scope_cw]
  686. @scope.x = @org_pos_scope[2]
  687. @scope.y = @org_pos_scope[1]
  688. @scope.z = 15
  689. end
  690.  
  691. #--------------------------------------------------------------------------
  692. # ● Update Scope
  693. #--------------------------------------------------------------------------
  694. def update_scope
  695. if @active and all_targets
  696. if @scope.x < @org_pos_scope[0]
  697. @scope.x += 15
  698. if @scope.x >= @org_pos_scope[0]
  699. @scope.x = @org_pos_scope[0]
  700. end
  701. end
  702. else
  703. if @scope.x > @org_pos_scope[2]
  704. @scope.x -= 15
  705. if @scope.x <= @org_pos_scope[2]
  706. @scope.x = @org_pos_scope[2]
  707. end
  708. end
  709. end
  710. end
  711.  
  712. #--------------------------------------------------------------------------
  713. # ● Create Arrow
  714. #--------------------------------------------------------------------------
  715. def create_arrow
  716. @arrow_float = [0,0,0]
  717. @arrow_np_1 = [0,0]
  718. @arrow_np_2 = [0,0]
  719. @arrow_image = $game_temp.pre_cache_actor_menu[5]
  720. @arrow_image_cw = @arrow_image.width
  721. @arrow_image_ch = @arrow_image.height# / 2
  722. @arrow_1 = Sprite.new
  723. @arrow_1.bitmap = Bitmap.new(@arrow_image_cw,@arrow_image_ch)
  724. @arrow_cw = @arrow_1.bitmap.width
  725. @org_pos_arrow_1 = [ARROW_1_POSITION[0],ARROW_1_POSITION[1]]
  726. @arrow_1.x = @org_pos_arrow_1[0]
  727. @arrow_1.y = @org_pos_arrow_1[1]
  728. @arrow_1.z = 15
  729. @arrow_1.opacity = 0
  730. @arrow_2 = Sprite.new
  731. @arrow_2.bitmap = Bitmap.new(@arrow_image_cw,@arrow_image_ch)
  732. @arrow_2.ox = @arrow_2.bitmap.width / 2
  733. @arrow_2.oy = @arrow_2.bitmap.height / 2
  734. @arrow_2.angle = 180
  735. ar_y = (MEMBERS_SPACE * 4) + ARROW_2_POSITION[1]
  736. @org_pos_arrow_2 = [ARROW_2_POSITION[0] + @arrow_2.ox,ar_y]
  737. @arrow_2.x = @org_pos_arrow_2[0]
  738. @arrow_2.y = @org_pos_arrow_2[1]
  739. @arrow_2.z = 15
  740. @arrow_2.opacity = 0
  741. @arrow_time_1 = 0
  742. @arrow_time_2 = 0
  743. refresh_arrow(0,@arrow_1,0)
  744. refresh_arrow(1,@arrow_2,0)
  745. end
  746.  
  747. #--------------------------------------------------------------------------
  748. # ● Refresh_arrow 1
  749. #--------------------------------------------------------------------------
  750. def refresh_arrow(arrow,sprite,type)
  751. sprite.bitmap.clear
  752. h = @arrow_image_ch * type
  753. a_rect = Rect.new(0,h,@arrow_image_cw,@arrow_image_ch)
  754. sprite.bitmap.blt(0,0,@arrow_image,a_rect)
  755. @arrow_time_1 = 20 if arrow == 0
  756. @arrow_time_2 = 20 if arrow ==1
  757. end
  758.  
  759. #--------------------------------------------------------------------------
  760. # ● Update Arrow
  761. #--------------------------------------------------------------------------
  762. def update_arrow
  763. # update_arrow_type
  764. update_arrow_visible
  765. update_arrow_float_animation
  766. end
  767.  
  768. #--------------------------------------------------------------------------
  769. # ● Update Arrow Type
  770. #--------------------------------------------------------------------------
  771. def update_arrow_type
  772. if @arrow_time_1 > 0
  773. @arrow_time_1 -= 1
  774. refresh_arrow(0,@arrow_1,0) if @arrow_time_1 == 0
  775. end
  776. if @arrow_time_2 > 0
  777. @arrow_time_2 -= 1
  778. refresh_arrow(1,@arrow_2,0) if @arrow_time_2 == 0
  779. end
  780. end
  781.  
  782. #--------------------------------------------------------------------------
  783. # ● Refresh Arrow Type
  784. #--------------------------------------------------------------------------
  785. def refresh_arrow_type
  786. return
  787. if @index_old > @com_index
  788. refresh_arrow(0,@arrow_1,1)
  789. else
  790. refresh_arrow(1,@arrow_2,1)
  791. end
  792. end
  793.  
  794. #--------------------------------------------------------------------------
  795. # ● Update Arrow Visible
  796. #--------------------------------------------------------------------------
  797. def update_arrow_visible
  798. if can_arrow_visible?
  799. @arrow_1.opacity += 15
  800. @arrow_2.opacity += 15
  801. @arrow_np_1 = [@org_pos_arrow_1[0],@org_pos_arrow_1[1]]
  802. @arrow_np_2 = [@org_pos_arrow_2[0],@org_pos_arrow_2[1]]
  803. else
  804. @arrow_1.opacity -= 10
  805. @arrow_2.opacity -= 10
  806. @arrow_np_1 = [-@arrow_cw,@org_pos[1]]
  807. @arrow_np_2 = [-@arrow_cw + @arrow_2.ox,@org_pos[1] + @arrow_2.oy]
  808. end
  809.  
  810. end
  811.  
  812. #--------------------------------------------------------------------------
  813. # ● Update Slide Arrow
  814. #--------------------------------------------------------------------------
  815. def update_slide_arrow(type,sprite,cp,np)
  816. cp -= @arrow_float[1] if type == 1
  817. sp = 2 + ((cp - np).abs / 20)
  818. if cp > np
  819. cp -= sp
  820. cp = np if cp < np
  821. elsif cp < np
  822. cp += sp
  823. cp = np if cp > np
  824. end
  825. sprite.x = cp if type == 0
  826. sprite.y = cp + @arrow_float[1] if type == 1
  827. end
  828.  
  829. #--------------------------------------------------------------------------
  830. # ● Can Arrow Visiblle?
  831. #--------------------------------------------------------------------------
  832. def can_arrow_visible?
  833. return false if !@active
  834. return false if all_targets
  835. return false if $game_party.members.size < 2
  836. return true
  837. end
  838.  
  839. #--------------------------------------------------------------------------
  840. # ● Update Arrow Float Animation
  841. #--------------------------------------------------------------------------
  842. def update_arrow_float_animation
  843. @arrow_float[2] += 1
  844. if @arrow_float[2] > 2
  845. @arrow_float[2] = 0
  846. @arrow_float[0] += 1
  847. case @arrow_float[0]
  848. when 1..11
  849. @arrow_float[1] += 1
  850. when 12..22
  851. @arrow_float[1] -= 1
  852. else
  853. @arrow_float[0] = 0
  854. @arrow_float[1] = 0
  855. end
  856. end
  857. update_slide_arrow(0,@arrow_1,@arrow_1.x,@arrow_np_1[0])
  858. update_slide_arrow(1,@arrow_1,@arrow_1.y,@arrow_np_1[1])
  859. update_slide_arrow(0,@arrow_2,@arrow_2.x,@arrow_np_2[0])
  860. update_slide_arrow(1,@arrow_2,@arrow_2.y,@arrow_np_2[1])
  861. end
  862.  
  863. #--------------------------------------------------------------------------
  864. # ● Create Scope All
  865. #--------------------------------------------------------------------------
  866. def update_support
  867. update_scope
  868. update_arrow
  869. end
  870.  
  871. #--------------------------------------------------------------------------
  872. # ● Set Old Parameter
  873. #--------------------------------------------------------------------------
  874. def set_old_parameter
  875. @par.clear
  876. @par = [@actor.hp,@actor.mhp,@actor.mp,@actor.mmp,@actor.level]
  877. end
  878.  
  879. #--------------------------------------------------------------------------
  880. # ● Members Spate
  881. #--------------------------------------------------------------------------
  882. def members_space
  883. LAYOUT_POSITION[1] + (@index * MEMBERS_SPACE)
  884. end
  885.  
  886. #--------------------------------------------------------------------------
  887. # ● Dispose
  888. #--------------------------------------------------------------------------
  889. def dispose
  890. dispose_layout
  891. dispose_parameter
  892. dispose_face
  893. dispose_name
  894. dispose_hp_meter
  895. dispose_mp_meter
  896. dispose_support if @index == 0
  897. end
  898.  
  899. #--------------------------------------------------------------------------
  900. # ● Dispose Support
  901. #--------------------------------------------------------------------------
  902. def dispose_support
  903. dispose_scope
  904. dispose_arrow
  905. end
  906.  
  907. #--------------------------------------------------------------------------
  908. # ● Dispose Layout
  909. #--------------------------------------------------------------------------
  910. def dispose_layout
  911. @layout.dispose
  912. end
  913.  
  914. #--------------------------------------------------------------------------
  915. # ● Dispose Scope
  916. #--------------------------------------------------------------------------
  917. def dispose_scope
  918. @scope.dispose
  919. end
  920.  
  921. #--------------------------------------------------------------------------
  922. # ● Dispose_Arrow
  923. #--------------------------------------------------------------------------
  924. def dispose_arrow
  925. @arrow_1.bitmap.dispose
  926. @arrow_1.dispose
  927. @arrow_2.bitmap.dispose
  928. @arrow_2.dispose
  929. end
  930.  
  931. #--------------------------------------------------------------------------
  932. # ● Dispose Parameter
  933. #--------------------------------------------------------------------------
  934. def dispose_parameter
  935. @parameter.bitmap.dispose
  936. @parameter.dispose
  937. end
  938.  
  939. #--------------------------------------------------------------------------
  940. # ● Dispose Face
  941. #--------------------------------------------------------------------------
  942. def dispose_face
  943. @face.dispose
  944. end
  945.  
  946. #--------------------------------------------------------------------------
  947. # ● Dispose HP Meter
  948. #--------------------------------------------------------------------------
  949. def dispose_hp_meter
  950. @hp_meter.bitmap.dispose
  951. @hp_meter.dispose
  952. end
  953.  
  954. #--------------------------------------------------------------------------
  955. # ● Dispose MP Meter
  956. #--------------------------------------------------------------------------
  957. def dispose_mp_meter
  958. @mp_meter.bitmap.dispose
  959. @mp_meter.dispose
  960. end
  961.  
  962. #--------------------------------------------------------------------------
  963. # ● Dispose Name
  964. #--------------------------------------------------------------------------
  965. def dispose_name
  966. @name.bitmap.dispose
  967. @name.dispose
  968. end
  969.  
  970. #--------------------------------------------------------------------------
  971. # ● Create Layout
  972. #--------------------------------------------------------------------------
  973. def create_layout
  974. @layout = Sprite.new
  975. @layout.bitmap = Cache.menu("Actor_Layout_1")
  976. @org_pos = [LAYOUT_POSITION[0],LAYOUT_POSITION[1]]
  977. @layout.x = @org_pos[0]
  978. @layout.y = @org_pos[1]
  979. @layout.z = 10
  980. #@layout.opacity = 0
  981. end
  982.  
  983. #--------------------------------------------------------------------------
  984. # ● Create Parameter
  985. #--------------------------------------------------------------------------
  986. def create_parameter
  987. @parameter = Sprite.new
  988. @parameter.bitmap = Bitmap.new(@layout.bitmap.width,@layout.bitmap.height)
  989. @org_pos_par = [@org_pos[0] + PAR_POSITION[0],
  990. @org_pos[1] + PAR_POSITION[1]]
  991. @parameter.x = @org_pos_par[0]
  992. @parameter.y = @org_pos_par[1]
  993. @parameter.z = 12
  994. # @parameter.opacity = 0
  995. refresh_parameter
  996. end
  997.  
  998. #--------------------------------------------------------------------------
  999. # ● Create HP Meter
  1000. #--------------------------------------------------------------------------
  1001. def create_hp_meter
  1002. @hp_meter_old = [-1,-1]
  1003. @hp_meter = Sprite.new
  1004. @hp_meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
  1005. @org_pos_hp = [@org_pos[0] + HP_METER_POSITION[0],
  1006. @org_pos[1] + HP_METER_POSITION[1]]
  1007. @hp_meter.x = @org_pos_hp[0]
  1008. @hp_meter.y = @org_pos_hp[1]
  1009. @hp_meter.z = 11
  1010. end
  1011.  
  1012. #--------------------------------------------------------------------------
  1013. # ● Refresh HP Meter
  1014. #--------------------------------------------------------------------------
  1015. def refresh_hp_meter
  1016. @hp_meter_old[0] = @actor.hp
  1017. @hp_meter_old[1] = @actor.mhp
  1018. @hp_meter.bitmap.clear
  1019. width_range = @meter_cw * @actor.hp / @actor.mhp
  1020. m_rect = Rect.new(0,0,width_range,@meter_ch)
  1021. @hp_meter.bitmap.blt(0,0,@meter_image,m_rect)
  1022. end
  1023.  
  1024. #--------------------------------------------------------------------------
  1025. # ● Create MP Meter
  1026. #--------------------------------------------------------------------------
  1027. def create_mp_meter
  1028. @mp_meter_old = [-1,-1]
  1029. @mp_meter = Sprite.new
  1030. @mp_meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
  1031. @org_pos_mp = [@org_pos[0] + MP_METER_POSITION[0],
  1032. @org_pos[1] + MP_METER_POSITION[1]]
  1033. @mp_meter.x = @org_pos_mp[0]
  1034. @mp_meter.y = @org_pos_mp[1]
  1035. @mp_meter.z = 11
  1036. end
  1037.  
  1038. #--------------------------------------------------------------------------
  1039. # ● Refresh MP Meter
  1040. #--------------------------------------------------------------------------
  1041. def refresh_mp_meter
  1042. @mp_meter_old[0] = @actor.mp
  1043. @mp_meter_old[1] = @actor.mmp
  1044. @mp_meter.bitmap.clear
  1045. width_range = @meter_cw * @actor.mp / @actor.mmp rescue nil
  1046. width_range = 0 if width_range == nil
  1047. m_rect = Rect.new(0,@meter_ch,width_range,@meter_ch)
  1048. @mp_meter.bitmap.blt(0,0,@meter_image,m_rect)
  1049. end
  1050.  
  1051. #--------------------------------------------------------------------------
  1052. # ● Create Face
  1053. #--------------------------------------------------------------------------
  1054. def refresh_parameter
  1055. set_old_parameter
  1056. @parameter.bitmap.clear
  1057.  
  1058. value = @actor.level
  1059. x = 146
  1060. y = 8
  1061. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1062.  
  1063. value = @actor.hp
  1064. x = 72
  1065. y = 24
  1066. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1067.  
  1068. value = @actor.mp
  1069. x = 146
  1070. y = 24
  1071. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1072.  
  1073. end
  1074.  
  1075. #--------------------------------------------------------------------------
  1076. # ● Refresh Number
  1077. #--------------------------------------------------------------------------
  1078. def refresh_number(sprite,image,value,number_cw,number_ch,x,y)
  1079. number = value.abs.to_s.split(//)
  1080. x2 = -number_cw * number.size
  1081. for i in 0..number.size - 1
  1082. number_abs = number[i].to_i
  1083. nsrc_rect = Rect.new(number_cw * number_abs, 0, number_cw , number_ch)
  1084. sprite.bitmap.blt(x + x2 + (number_cw * i), y, image, nsrc_rect)
  1085. end
  1086.  
  1087. end
  1088.  
  1089. #--------------------------------------------------------------------------
  1090. # ● Create Face
  1091. #--------------------------------------------------------------------------
  1092. def create_face
  1093. @face = Sprite.new
  1094. @org_pos_face = [@org_pos[0] + FACE_POSITION[0],
  1095. @org_pos[1] + FACE_POSITION[1]]
  1096. @face.x = @org_pos_face[0]
  1097. @face.y = @org_pos_face[1]
  1098. @face.z = 11
  1099. # @face.opacity = 0
  1100. refresh_face
  1101. end
  1102.  
  1103. #--------------------------------------------------------------------------
  1104. # ● Refresh Face
  1105. #--------------------------------------------------------------------------
  1106. def refresh_face
  1107. face_name = "Face_B" + @actor.id.to_s
  1108. @face.bitmap = Cache.menu(face_name.to_s)
  1109. end
  1110.  
  1111. #--------------------------------------------------------------------------
  1112. # ● Create Name
  1113. #--------------------------------------------------------------------------
  1114. def create_name
  1115. @name = Sprite.new
  1116. @name.bitmap = Bitmap.new(140,32)
  1117. @name.bitmap.font.name = FONT_NAME
  1118. @name.bitmap.font.size = FONT_SIZE
  1119. @name.bitmap.font.bold = FONT_BOLD
  1120. @org_pos_name = [@org_pos[0] + NAME_POSITION[0],
  1121. @org_pos[1] + NAME_POSITION[1]]
  1122. @name.x = @org_pos_name[0]
  1123. @name.y = @org_pos_name[1]
  1124. @name.z = 11
  1125. #@name.opacity = 0
  1126. refresh_name
  1127. end
  1128.  
  1129. #--------------------------------------------------------------------------
  1130. # ● Refresh Name
  1131. #--------------------------------------------------------------------------
  1132. def refresh_name
  1133. @name.bitmap.clear
  1134. @name.bitmap.draw_text(0,0,140,32,@actor.name.to_s,0)
  1135. end
  1136.  
  1137. #--------------------------------------------------------------------------
  1138. # ● Set Actor
  1139. #--------------------------------------------------------------------------
  1140. def set_actor(actor)
  1141. @actor = actor
  1142. end
  1143.  
  1144. #--------------------------------------------------------------------------
  1145. # ● Can Refresh HP Meter
  1146. #--------------------------------------------------------------------------
  1147. def can_refresh_hp_meter?
  1148. return true if @hp_meter_old[0] != @actor.hp
  1149. return true if @hp_meter_old[1] != @actor.mhp
  1150. return false
  1151. end
  1152.  
  1153. #--------------------------------------------------------------------------
  1154. # ● Can Refresh MP Meter
  1155. #--------------------------------------------------------------------------
  1156. def can_refresh_mp_meter?
  1157. return true if @mp_meter_old[0] != @actor.mp
  1158. return true if @mp_meter_old[1] != @actor.mmp
  1159. return false
  1160. end
  1161.  
  1162. #--------------------------------------------------------------------------
  1163. # ● Can Refresh Parameter
  1164. #--------------------------------------------------------------------------
  1165. def can_refresh_parameter?
  1166. return true if @par[0] != @actor.hp
  1167. return true if @par[1] != @actor.mhp
  1168. return true if @par[2] != @actor.mp
  1169. return true if @par[3] != @actor.mmp
  1170. return true if @par[4] != @actor.level
  1171. return false
  1172. end
  1173.  
  1174. #--------------------------------------------------------------------------
  1175. # ● Refresh_Visible
  1176. #--------------------------------------------------------------------------
  1177. def refresh_visible
  1178. if can_visible?
  1179. set_visible(true)
  1180. else
  1181. set_visible(false)
  1182. end
  1183. end
  1184.  
  1185. #--------------------------------------------------------------------------
  1186. # ● Set Index
  1187. #--------------------------------------------------------------------------
  1188. def set_index
  1189. @now_index[0] = @com_index
  1190. @before_index[0] = @com_index - 1
  1191. @next_index[0] = @com_index + 1
  1192. @before_index[0] = @max_index if @before_index[0] < 0
  1193. @next_index[0] = 0 if @next_index[0] > @max_index
  1194. end
  1195.  
  1196. #--------------------------------------------------------------------------
  1197. # ● Can Visible?
  1198. #--------------------------------------------------------------------------
  1199. def can_visible?
  1200. return true if @index == @now_index[0]
  1201. return true if @index == @next_index[0]
  1202. return true if @index == @before_index[0]
  1203. return false
  1204. end
  1205.  
  1206. #--------------------------------------------------------------------------
  1207. # ● Set Visible
  1208. #--------------------------------------------------------------------------
  1209. def set_visible(value)
  1210. @visible = value
  1211. return
  1212. @layout.visible = @visible
  1213. @parameter.visible = @visible
  1214. @hp_meter.visible = @visible
  1215. @mp_meter.visible = @visible
  1216. @face.visible = @visible
  1217. @name.visible = @visible
  1218. end
  1219.  
  1220. #--------------------------------------------------------------------------
  1221. # ● Update Position
  1222. #--------------------------------------------------------------------------
  1223. def update_position
  1224. update_slide(0,@layout,@layout.x,@next_pos[0] + @org_pos[0])
  1225. update_slide(1,@layout,@layout.y,@next_pos[1] + @org_pos[1])
  1226. update_slide(0,@parameter,@parameter.x,@next_pos[0] + @org_pos_par[0])
  1227. update_slide(1,@parameter,@parameter.y,@next_pos[1] + @org_pos_par[1])
  1228. update_slide(0,@hp_meter,@hp_meter.x,@next_pos[0] + @org_pos_hp[0])
  1229. update_slide(1,@hp_meter,@hp_meter.y,@next_pos[1] + @org_pos_hp[1])
  1230. update_slide(0,@mp_meter,@mp_meter.x,@next_pos[0] + @org_pos_mp[0])
  1231. update_slide(1,@mp_meter,@mp_meter.y,@next_pos[1] + @org_pos_mp[1])
  1232. update_slide(0,@face,@face.x,@next_pos[0] + @org_pos_face[0])
  1233. update_slide(1,@face,@face.y,@next_pos[1] + @org_pos_face[1])
  1234. update_slide(0,@name,@name.x,@next_pos[0] + @org_pos_name[0])
  1235. update_slide(1,@name,@name.y,@next_pos[1] + @org_pos_name[1])
  1236. end
  1237.  
  1238. #--------------------------------------------------------------------------
  1239. # ● Update Float
  1240. #--------------------------------------------------------------------------
  1241. def update_float
  1242. @float[2] += 1
  1243. if @float[2] > 5
  1244. @float[2] = 0
  1245. @float[0] += 1
  1246. case @float[0]
  1247. when 1..5
  1248. @float[1] -= 1
  1249. when 6..15
  1250. @float[1] += 1
  1251. when 16..20
  1252. @float[1] -= 1
  1253. else
  1254. @float = [0,0,0]
  1255. end
  1256. end
  1257. end
  1258.  
  1259. #--------------------------------------------------------------------------
  1260. # ● Update Slide
  1261. #--------------------------------------------------------------------------
  1262. def update_slide(type,sprite,cp,np)
  1263. cp -= @float[1] if type == 1
  1264. sp = 3 + ((cp - np).abs / 10)
  1265. if cp > np
  1266. cp -= sp
  1267. cp = np if cp < np
  1268. elsif cp < np
  1269. cp += sp
  1270. cp = np if cp > np
  1271. end
  1272. sprite.x = cp if type == 0
  1273. sprite.y = cp + @float[1] if type == 1
  1274. end
  1275.  
  1276. #--------------------------------------------------------------------------
  1277. # ● All Targets
  1278. #--------------------------------------------------------------------------
  1279. def all_targets
  1280. return true if $game_temp.item_scope == 8
  1281. return true if $game_temp.item_scope == 10
  1282. return false
  1283. end
  1284.  
  1285. #--------------------------------------------------------------------------
  1286. # ● Update Opacity
  1287. #--------------------------------------------------------------------------
  1288. def update_opacity
  1289. if @visible
  1290. if all_targets
  1291. if @max_index == 0
  1292. @next_pos = [0,0]
  1293. else
  1294. if @index == @before_index[0]
  1295. @next_pos = [0,-MEMBERS_SPACE]
  1296. elsif @index == @next_index[0]
  1297. @next_pos = [0,MEMBERS_SPACE]
  1298. else
  1299. @next_pos = [0,0]
  1300. end
  1301. end
  1302. update_opacity_active
  1303. update_float
  1304. else
  1305. if ((@index == @before_index[0]) or (@index == @next_index[0])) and
  1306. @max_index != 0
  1307. opac_limit = 170
  1308. if @opac > opac_limit
  1309. @opac -= 10
  1310. @opac = opac_limit if @opac < opac_limit
  1311. elsif @opac < opac_limit
  1312. @opac += 10
  1313. @opac = opac_limit if @opac > opac_limit
  1314. end
  1315. @float = [0,0,0]
  1316. else
  1317. update_opacity_active
  1318. update_float
  1319. end
  1320. end
  1321. else
  1322. @opac -= 10 if @opac > 0
  1323. @opac = 0 if @opac < 0
  1324. @float = [0,0,0]
  1325. end
  1326. set_opacity(@opac)
  1327. end
  1328.  
  1329. #--------------------------------------------------------------------------
  1330. # ● Update Opacity Active
  1331. #--------------------------------------------------------------------------
  1332. def update_opacity_active
  1333. @opac_active[0] += 1
  1334. case @opac_active[0]
  1335. when 1..30
  1336. @opac_active[1] += 4
  1337. when 31..60
  1338. @opac_active[1] -= 4
  1339. else
  1340. @opac_active[1] = 0
  1341. @opac_active[0] = 0
  1342. end
  1343. @opac = 160 + @opac_active[1]
  1344. end
  1345.  
  1346. #--------------------------------------------------------------------------
  1347. # ● Set Opacity
  1348. #--------------------------------------------------------------------------
  1349. def set_opacity(opac)
  1350. @layout.opacity = opac
  1351. @layout.opacity = opac
  1352. @parameter.opacity = opac
  1353. @parameter.opacity = opac
  1354. @hp_meter.opacity = opac
  1355. @hp_meter.opacity = opac
  1356. @mp_meter.opacity = opac
  1357. @mp_meter.opacity = opac
  1358. @face.opacity = opac
  1359. @face.opacity = opac
  1360. @name.opacity = opac
  1361. @name.opacity = opac
  1362. end
  1363.  
  1364. #--------------------------------------------------------------------------
  1365. # ● Refresh Index
  1366. #--------------------------------------------------------------------------
  1367. def refresh_index
  1368. refresh_arrow_type if @index == 0
  1369. @index_old = @com_index
  1370. set_index
  1371. refresh_visible
  1372. set_next_position
  1373. end
  1374.  
  1375. #--------------------------------------------------------------------------
  1376. # ● Set Next Position
  1377. #--------------------------------------------------------------------------
  1378. def set_next_position
  1379. if @max_index == 0
  1380. @next_pos = [0,0]
  1381. return
  1382. end
  1383. if @visible
  1384. if @index == @before_index[0]
  1385. @next_pos = [-32,-MEMBERS_SPACE]
  1386. if @layout.opacity < 150
  1387. set_position(@next_pos[0],-MEMBERS_SPACE * 2)
  1388. set_opacity(0)
  1389. end
  1390. elsif @index == @next_index[0]
  1391. @next_pos = [-32,MEMBERS_SPACE]
  1392. if @layout.opacity < 150
  1393. set_position(@next_pos[0],MEMBERS_SPACE * 2)
  1394. set_opacity(0)
  1395. end
  1396. else
  1397. @next_pos = [0,0]
  1398. end
  1399. else
  1400. @next_pos = [-64,0]
  1401. end
  1402. end
  1403.  
  1404. #--------------------------------------------------------------------------
  1405. # ● Update Position
  1406. #--------------------------------------------------------------------------
  1407. def set_position(pos_x,pos_y)
  1408. @layout.x = @org_pos[0] + pos_x
  1409. @layout.y = @org_pos[1] + pos_y
  1410. @parameter.x = @org_pos_par[0] + pos_x
  1411. @parameter.y = @org_pos_par[1] + pos_y
  1412. @hp_meter.x = @org_pos_hp[0] + pos_x
  1413. @hp_meter.y = @org_pos_hp[1] + pos_y
  1414. @mp_meter.x = @org_pos_mp[0] + pos_x
  1415. @mp_meter.y = @org_pos_mp[1] + pos_y
  1416. @face.x = @org_pos_face[0] + pos_x
  1417. @face.y = @org_pos_face[1] + pos_y
  1418. @name.x = @org_pos_name[0] + pos_x
  1419. @name.y = @org_pos_name[1] + pos_y
  1420. end
  1421.  
  1422. #--------------------------------------------------------------------------
  1423. # ● Refresh Active
  1424. #--------------------------------------------------------------------------
  1425. def refresh_active
  1426. @active_old = @active
  1427. @visible = @active
  1428. refresh_index
  1429. if !@active
  1430. @visible = @active
  1431. @next_pos = [-@layout.width - 64,0]
  1432. else
  1433. set_position(-@layout.width - 64,0)
  1434. end
  1435. end
  1436.  
  1437. #--------------------------------------------------------------------------
  1438. # ● Update
  1439. #--------------------------------------------------------------------------
  1440. def update(active,com_index)
  1441. @active = active
  1442. @com_index = com_index
  1443. refresh_active if @active != @active_old
  1444. update_opacity
  1445. update_position
  1446. update_support if @index == 0
  1447. return if !@active
  1448. refresh_index if @index_old != @com_index
  1449. return if !@active or !@visible
  1450. refresh_hp_meter if can_refresh_hp_meter?
  1451. refresh_mp_meter if can_refresh_mp_meter?
  1452. refresh_parameter if can_refresh_parameter?
  1453. end
  1454.  
  1455. #--------------------------------------------------------------------------
  1456. # ● Current Actor
  1457. #--------------------------------------------------------------------------
  1458. def current_actor
  1459. return true if @com_index == @index
  1460. return false
  1461. end
  1462.  
  1463. end
  1464.  
  1465. #==============================================================================
  1466. # ■ Game_Temp
  1467. #==============================================================================
  1468. class Game_Temp
  1469.  
  1470. #--------------------------------------------------------------------------
  1471. # ● Execute Pre Cache Actor
  1472. #--------------------------------------------------------------------------
  1473. def execute_pre_cache_actor
  1474. @pre_cache_actor_menu = []
  1475. @pre_cache_actor_menu.push(Cache.menu("Actor_Layout_1"))
  1476. @pre_cache_actor_menu.push(Cache.menu("Actor_Layout_2"))
  1477. @pre_cache_actor_menu.push(Cache.menu("Actor_Number_1"))
  1478. @pre_cache_actor_menu.push(Cache.menu("Actor_Number_2"))
  1479. @pre_cache_actor_menu.push(Cache.menu("Actor_Scope_All"))
  1480. @pre_cache_actor_menu.push(Cache.menu("Actor_Members_Arrow"))
  1481. @pre_cache_actor_menu.push(Cache.menu("Actor_Meter"))
  1482. end
  1483.  
  1484. end
  1485.  
  1486. #==============================================================================
  1487. # ■ Actor Menu Status
  1488. #==============================================================================
  1489. class Actor_Menu_Status
  1490.  
  1491. include MOG_ACTOR_MENU_STATUS
  1492.  
  1493. #--------------------------------------------------------------------------
  1494. # ● Initialize
  1495. #--------------------------------------------------------------------------
  1496. def initialize(actor)
  1497. @actor = actor
  1498. @active = false
  1499. set_old_parameter
  1500. create_sprites
  1501. end
  1502.  
  1503. #--------------------------------------------------------------------------
  1504. # ● Create Sprites
  1505. #--------------------------------------------------------------------------
  1506. def create_sprites
  1507. @parameter_number = $game_temp.pre_cache_actor_menu[3]
  1508. @parameter_cw = @parameter_number.width / 10
  1509. @parameter_ch = @parameter_number.height
  1510. create_layout
  1511. create_face
  1512. create_parameter
  1513. create_name
  1514. create_states
  1515. # update(true,@actor)
  1516. end
  1517.  
  1518. #--------------------------------------------------------------------------
  1519. # ● Dispose
  1520. #--------------------------------------------------------------------------
  1521. def dispose
  1522. dispose_layout
  1523. dispose_face
  1524. dispose_parameter
  1525. dispose_name
  1526. dispose_states
  1527. end
  1528.  
  1529. #--------------------------------------------------------------------------
  1530. # ● Dispose Layout
  1531. #--------------------------------------------------------------------------
  1532. def dispose_layout
  1533. @layout.dispose
  1534. end
  1535.  
  1536. #--------------------------------------------------------------------------
  1537. # ● Dispose Face
  1538. #--------------------------------------------------------------------------
  1539. def dispose_face
  1540. @face.bitmap.dispose if @face.bitmap != nil
  1541. @face.dispose
  1542. end
  1543.  
  1544. #--------------------------------------------------------------------------
  1545. # ● Dispose Parameter
  1546. #--------------------------------------------------------------------------
  1547. def dispose_parameter
  1548. @parameter.bitmap.dispose
  1549. @parameter.dispose
  1550. end
  1551.  
  1552. #--------------------------------------------------------------------------
  1553. # ● Dispose Name
  1554. #--------------------------------------------------------------------------
  1555. def dispose_name
  1556. @name.bitmap.dispose
  1557. @name.dispose
  1558. end
  1559.  
  1560. #--------------------------------------------------------------------------
  1561. # ● Dispose States
  1562. #--------------------------------------------------------------------------
  1563. def dispose_states
  1564. return if @status == nil
  1565. @status.bitmap.dispose
  1566. @status.dispose
  1567. if @actor_status != nil
  1568. @actor_status.dispose
  1569. @actor_status = nil
  1570. end
  1571. end
  1572.  
  1573. #--------------------------------------------------------------------------
  1574. # ● Set Old Parameter
  1575. #--------------------------------------------------------------------------
  1576. def set_old_parameter
  1577. @par = [] if @par == nil
  1578. @par.clear
  1579. @par = [@actor.hp,@actor.mhp,@actor.mp,@actor.mmp,@actor.atk,@actor.def,
  1580. @actor.mat,@actor.mdf,@actor.agi,@actor.luk,@actor.level,@actor.tp]
  1581. end
  1582.  
  1583. #--------------------------------------------------------------------------
  1584. # ● Create Layout
  1585. #--------------------------------------------------------------------------
  1586. def create_layout
  1587. @layout = Sprite.new
  1588. @layout.bitmap = $game_temp.pre_cache_actor_menu[1]
  1589. @org_pos = [LAYOUT_POSITION[0],LAYOUT_POSITION[1]]
  1590. @layout.x = @org_pos[0] + 150
  1591. @layout.y = @org_pos[1]
  1592. @layout.z = 10
  1593. @layout.opacity = 0
  1594. end
  1595.  
  1596. #--------------------------------------------------------------------------
  1597. # ● Create Parameter
  1598. #--------------------------------------------------------------------------
  1599. def create_parameter
  1600. @parameter = Sprite.new
  1601. @parameter.bitmap = Bitmap.new(@layout.bitmap.width,@layout.bitmap.height)
  1602. @org_pos_par = [@org_pos[0] + PAR_POSITION[0],
  1603. @org_pos[1] + PAR_POSITION[1]]
  1604. @parameter.x = @org_pos_par[0] + 150
  1605. @parameter.y = @org_pos_par[1]
  1606. @parameter.z = 11
  1607. @parameter.opacity = 0
  1608. refresh_parameter
  1609. end
  1610.  
  1611. #--------------------------------------------------------------------------
  1612. # ● Create Face
  1613. #--------------------------------------------------------------------------
  1614. def create_face
  1615. @face = Sprite.new
  1616. @face.bitmap = Bitmap.new(96,96)
  1617. @org_pos_face = [@org_pos[0] + FACE_POSITION[0],
  1618. @org_pos[1] + FACE_POSITION[1]]
  1619. @face.x = @org_pos_face[0] + 150
  1620. @face.y = @org_pos_face[1]
  1621. @face.z = 11
  1622. @face.opacity = 0
  1623. refresh_face
  1624. end
  1625.  
  1626. #--------------------------------------------------------------------------
  1627. # ● Create Name
  1628. #--------------------------------------------------------------------------
  1629. def create_name
  1630. @name = Sprite.new
  1631. @name.bitmap = Bitmap.new(140,32)
  1632. @name.bitmap.font.name = FONT_NAME
  1633. @name.bitmap.font.size = FONT_SIZE
  1634. @name.bitmap.font.bold = FONT_BOLD
  1635. @org_pos_name = [@org_pos[0] + NAME_POSITION[0],
  1636. @org_pos[1] + NAME_POSITION[1]]
  1637. @name.x = @org_pos_name[0] + 150
  1638. @name.y = @org_pos_name[1]
  1639. @name.z = 11
  1640. @name.opacity = 0
  1641. refresh_name
  1642. end
  1643.  
  1644. #--------------------------------------------------------------------------
  1645. # ● Create_States
  1646. #--------------------------------------------------------------------------
  1647. def create_states
  1648. @status_old = nil
  1649. @status_flow = [-24,0]
  1650. @status = Sprite.new
  1651. @status.bitmap = Bitmap.new(24,24)
  1652. @org_pos_states = [@org_pos[0] + STATES_POSITION[0],
  1653. @org_pos[1] + STATES_POSITION[1]]
  1654. @status.x = @org_pos_states[0] + 150
  1655. @status.y = @org_pos_states[1]
  1656. @status.z = 11
  1657. end
  1658.  
  1659. #--------------------------------------------------------------------------
  1660. # * Refresh States
  1661. #--------------------------------------------------------------------------
  1662. def refresh_states
  1663. check_icon_image
  1664. @status_old = @actor.states
  1665. @status_flow = [0,0]
  1666. @actor_status.dispose if @actor_status != nil
  1667. @states_size = @actor.states.size > 0 ? (26 * @actor.states.size) : 24
  1668. @actor_status = Bitmap.new(@states_size,24)
  1669. index = 0
  1670. for i in @actor.states
  1671. rect = Rect.new(i.icon_index % 16 * 24, i.icon_index / 16 * 24, 24, 24)
  1672. @actor_status.blt(26 * index , 0, @icon_image, rect)
  1673. index += 1
  1674. end
  1675. end
  1676.  
  1677. #--------------------------------------------------------------------------
  1678. # * Flow_Status
  1679. #--------------------------------------------------------------------------
  1680. def flow_states
  1681. return if @actor_status == nil
  1682. @status.bitmap.clear
  1683. return if @actor.states.size == 0
  1684. st_src_rect = Rect.new(@status_flow[0],0, 24,24)
  1685. @status.bitmap.blt(0,0, @actor_status, st_src_rect)
  1686. if STATES_SCROLLING_ANIMATION
  1687. @status_flow[0] += 1
  1688. @status_flow[0] = -24 if @status_flow[0] >= @states_size + 2
  1689. else
  1690. @status_flow[1] += 1 unless @actor.states.size <= 1
  1691. if @status_flow[1] > 30
  1692. @status_flow[1] = 0
  1693. @status_flow[0] += 26
  1694. @status_flow[0] = 0 if @status_flow[0] >= (@states_size - 0)
  1695. end
  1696. end
  1697. end
  1698.  
  1699. #--------------------------------------------------------------------------
  1700. # * Check Icon Image
  1701. #--------------------------------------------------------------------------
  1702. def check_icon_image
  1703. if @icon_image == nil or @icon_image.disposed?
  1704. @icon_image = Cache.system("Iconset")
  1705. end
  1706. end
  1707.  
  1708. #--------------------------------------------------------------------------
  1709. # ● Can Refresh Parameter
  1710. #--------------------------------------------------------------------------
  1711. def can_refresh_parameter?
  1712. return false if !@active
  1713. return true if @par[0] != @actor.hp
  1714. return true if @par[1] != @actor.mhp
  1715. return true if @par[2] != @actor.mp
  1716. return true if @par[3] != @actor.mmp
  1717. return true if @par[4] != @actor.atk
  1718. return true if @par[5] != @actor.def
  1719. return true if @par[6] != @actor.mat
  1720. return true if @par[7] != @actor.mdf
  1721. return true if @par[8] != @actor.agi
  1722. return true if @par[9] != @actor.luk
  1723. return true if @par[10] != @actor.level
  1724. return true if @par[11] != @actor.tp
  1725. return false
  1726. end
  1727.  
  1728. #--------------------------------------------------------------------------
  1729. # ● Refresh All
  1730. #--------------------------------------------------------------------------
  1731. def refresh_all(actor)
  1732. @actor = actor
  1733. refresh_parameter
  1734. refresh_face
  1735. refresh_name
  1736. end
  1737.  
  1738. #--------------------------------------------------------------------------
  1739. # ● Refresh Name
  1740. #--------------------------------------------------------------------------
  1741. def refresh_name
  1742. @name.bitmap.clear
  1743. @name.bitmap.draw_text(0,0,140,32,@actor.name.to_s,0)
  1744. end
  1745.  
  1746. #--------------------------------------------------------------------------
  1747. # ● Create Face
  1748. #--------------------------------------------------------------------------
  1749. def refresh_parameter
  1750. set_old_parameter
  1751. @parameter.bitmap.clear
  1752. value = @actor.level
  1753. x = 67
  1754. y = 24
  1755. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1756.  
  1757. value = @actor.tp
  1758. x = 140
  1759. y = 24
  1760. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1761.  
  1762. value = @actor.hp
  1763. x = 70
  1764. y = 46
  1765. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1766.  
  1767. value = @actor.mhp
  1768. x = 140
  1769. y = 46
  1770. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1771.  
  1772. value = @actor.mp
  1773. x = 70
  1774. y = 46 + 22 * 1
  1775. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1776.  
  1777. value = @actor.mmp
  1778. x = 140
  1779. y = 46 + 22 * 1
  1780. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1781.  
  1782. value = @actor.atk
  1783. x = 70
  1784. y = 46 + 22 * 2
  1785. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1786.  
  1787. value = @actor.def
  1788. x = 70
  1789. y = 46 + 22 * 3
  1790. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1791.  
  1792. value = @actor.agi
  1793. x = 70
  1794. y = 46 + 22 * 4
  1795. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1796.  
  1797. value = @actor.mat
  1798. x = 140
  1799. y = 46 + 22 * 2
  1800. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1801.  
  1802. value = @actor.mdf
  1803. x = 140
  1804. y = 46 + 22 * 3
  1805. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1806.  
  1807. value = @actor.luk
  1808. x = 140
  1809. y = 46 + 22 * 4
  1810. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  1811. end
  1812.  
  1813. #--------------------------------------------------------------------------
  1814. # ● Refresh Number
  1815. #--------------------------------------------------------------------------
  1816. def refresh_number(sprite,image,value,number_cw,number_ch,x,y)
  1817. number = value.truncate.abs.to_s.split(//)
  1818. x2 = -number_cw * number.size
  1819. for i in 0..number.size - 1
  1820. number_abs = number[i].to_i
  1821. nsrc_rect = Rect.new(number_cw * number_abs, 0, number_cw , number_ch)
  1822. sprite.bitmap.blt(x + x2 + (number_cw * i), y, image, nsrc_rect)
  1823. end
  1824. end
  1825.  
  1826. #--------------------------------------------------------------------------
  1827. # ● Refresh Face
  1828. #--------------------------------------------------------------------------
  1829. def refresh_face
  1830. #return
  1831. @face.bitmap.clear
  1832. face_image = Cache.face(@actor.face_name)
  1833. arect = Rect.new(@actor.face_index % 4 * 96, @actor.face_index / 4 * 96, 96, 96)
  1834. @face.bitmap.blt(0,0, face_image, arect)
  1835. # face_image.dispose
  1836. end
  1837.  
  1838. #--------------------------------------------------------------------------
  1839. # ● Update Slide
  1840. #--------------------------------------------------------------------------
  1841. def update_slide
  1842. slide_speed = 10
  1843. opac_speed = 23
  1844. @slide_range = (@org_pos[0] + 150)
  1845. if @active
  1846. if @layout.x > @org_pos[0]
  1847. @layout.x -= slide_speed
  1848. @parameter.x -= slide_speed
  1849. @face.x -= slide_speed
  1850. @name.x -= slide_speed
  1851. @status.x -= slide_speed
  1852. @layout.opacity += opac_speed
  1853. @parameter.opacity += opac_speed
  1854. @face.opacity += opac_speed
  1855. @name.opacity += opac_speed
  1856. @status.opacity += opac_speed
  1857. if @layout.x <= @org_pos[0]
  1858. @layout.x = @org_pos[0]
  1859. @parameter.x = @org_pos_par[0]
  1860. @face.x = @org_pos_face[0]
  1861. @name.x = @org_pos_name[0]
  1862. @status.x = @org_pos_states[0]
  1863. @layout.opacity = 255
  1864. @parameter.opacity = 255
  1865. @face.opacity = 255
  1866. @name.opacity = 255
  1867. @status.opacity = 255
  1868. end
  1869. end
  1870. else
  1871. if @layout.x < @slide_range
  1872. @layout.x += slide_speed
  1873. @parameter.x += slide_speed
  1874. @face.x += slide_speed
  1875. @name.x += slide_speed
  1876. @status.x += slide_speed
  1877. @layout.opacity -= opac_speed
  1878. @parameter.opacity -= opac_speed
  1879. @face.opacity -= opac_speed
  1880. @name.opacity -= opac_speed
  1881. @status.opacity -= opac_speed
  1882. if @layout.x >= @slide_range
  1883. @layout.x = @slide_range
  1884. @parameter.x = @org_pos_par[0] + 150
  1885. @face.x = @org_pos_face[0] + 150
  1886. @name.x = @org_pos_name[0] + 150
  1887. @status.x = @org_pos_states[0] + 150
  1888. @layout.opacity = 0
  1889. @parameter.opacity = 0
  1890. @face.opacity = 0
  1891. @name.opacity = 0
  1892. @status.opacity = 0
  1893. end
  1894. end
  1895.  
  1896. end
  1897. end
  1898.  
  1899. #--------------------------------------------------------------------------
  1900. # ● Update
  1901. #--------------------------------------------------------------------------
  1902. def update(active,actor)
  1903. @active = active
  1904. update_slide
  1905. return if !@active
  1906. refresh_all(actor) if actor != @actor
  1907. refresh_parameter if can_refresh_parameter?
  1908. refresh_states if @status_old != @actor.states
  1909. flow_states
  1910. end
  1911.  
  1912. end
  1913.  
  1914.  
  1915.  
  1916. #==============================================================================
  1917. # ■ Game_Temp
  1918. #==============================================================================
  1919. class Game_Temp
  1920.  
  1921. #--------------------------------------------------------------------------
  1922. # ● Execute Pre Cache Main Menu
  1923. #--------------------------------------------------------------------------
  1924. def execute_pre_cache_main_menu
  1925. @pre_cache_main_menu = []
  1926. @pre_cache_main_menu.push(Cache.menu_main("Background"))
  1927. @pre_cache_main_menu.push(Cache.menu_main("Layout"))
  1928. @pre_cache_main_menu.push(Cache.menu_main("Time_Number"))
  1929. @pre_cache_main_menu.push(Cache.menu_main("Gold_Number"))
  1930. @pre_cache_main_menu.push(Cache.menu_main("Members_Layout"))
  1931. @pre_cache_main_menu.push(Cache.menu_main("Members_Arrow"))
  1932. @pre_cache_main_menu.push(Cache.menu_main("Par_Number_1"))
  1933. @pre_cache_main_menu.push(Cache.menu_main("Par_Number_2"))
  1934. @pre_cache_main_menu.push(Cache.menu_main("Par_Meter"))
  1935. @pre_cache_main_menu.push(Cache.menu_main("Par_Layout"))
  1936. end
  1937.  
  1938. end
  1939.  
  1940. class Window_MenuCommand < Window_Command
  1941. # attr_accessor :handler
  1942. end
  1943.  
  1944. #==============================================================================
  1945. # ■ Scene_Menu
  1946. #==============================================================================
  1947. class Scene_Menu
  1948. include MOG_MENU
  1949. include MOG_MENU_BASE
  1950.  
  1951. #--------------------------------------------------------------------------
  1952. # ● Main
  1953. #--------------------------------------------------------------------------
  1954. def main
  1955. execute_setup
  1956. execute_loop
  1957. execute_dispose
  1958. end
  1959.  
  1960. #--------------------------------------------------------------------------
  1961. # ● Execute Setup
  1962. #--------------------------------------------------------------------------
  1963. def execute_setup
  1964. $game_temp.execute_pre_cache_icon if $game_temp.can_pre_cache_icon?
  1965. @phase = 0
  1966. @members_windows_active = false
  1967. @members_index = 0
  1968. create_sprites
  1969. end
  1970.  
  1971. #--------------------------------------------------------------------------
  1972. # ● Execute Lopp
  1973. #--------------------------------------------------------------------------
  1974. def execute_loop
  1975. Graphics.transition(10)
  1976. loop do
  1977. Input.update
  1978. update
  1979. Graphics.update
  1980. break if SceneManager.scene != self
  1981. end
  1982. end
  1983.  
  1984. end
  1985.  
  1986. #==============================================================================
  1987. # ■ Face Members
  1988. #==============================================================================
  1989. class Face_Members_Sprite < Sprite
  1990. include MOG_MENU
  1991. attr_accessor :index
  1992. attr_accessor :active
  1993. attr_accessor :actor_id
  1994.  
  1995. #--------------------------------------------------------------------------
  1996. # ● Initialize
  1997. #--------------------------------------------------------------------------
  1998. def initialize(viewport = nil, index, actor_id)
  1999. super(viewport)
  2000. @active = false
  2001. @index = index
  2002. @actor_id = actor_id
  2003. @active = false
  2004. self.bitmap = Cache.menu("Face" + @actor_id.to_s)
  2005. self.z = 12
  2006. self.ox = self.bitmap.width / 2
  2007. self.oy = self.bitmap.height / 2
  2008. members_size = $game_party.members.size - 1
  2009. members_size = 3 if members_size > 3
  2010. space_base = (MEMBERS_FACE_SPACE * @index)
  2011. space = space_base - ((ACTOR_SPACE * members_size ) / 2) + MEMBERS_FACE_POSITION[0]
  2012. @org_pos = [space + self.ox , self.oy ]
  2013. @ny = 0
  2014. @zoom_duration = [0,0,false]
  2015. self.x = @org_pos[0]
  2016. self.y = @org_pos[1]
  2017. end
  2018.  
  2019. #--------------------------------------------------------------------------
  2020. # ● Dispose
  2021. #--------------------------------------------------------------------------
  2022. def dispose
  2023. super
  2024. self.bitmap.dispose
  2025. end
  2026.  
  2027. #--------------------------------------------------------------------------
  2028. # ● Update
  2029. #--------------------------------------------------------------------------
  2030. def update_command(index, ny)
  2031. @active = index == @index ? true : false
  2032. @ny = ny
  2033. update_slide(index)
  2034. update_opacity
  2035. update_zoom
  2036. end
  2037.  
  2038. #--------------------------------------------------------------------------
  2039. # ● Update Opacity
  2040. #--------------------------------------------------------------------------
  2041. def update_opacity
  2042. if @active
  2043. self.opacity += 12
  2044. else
  2045. self.opacity -= 6 if self.opacity > 120
  2046. end
  2047. end
  2048.  
  2049. #--------------------------------------------------------------------------
  2050. # ● Update Zoom
  2051. #--------------------------------------------------------------------------
  2052. def update_zoom
  2053. if @active
  2054. if !@zoom_duration[2]
  2055. update_zoom_out
  2056. @zoom_duration = [0,0,true] if self.zoom_x == 1.00
  2057. else
  2058. update_zoom_effect
  2059. end
  2060. else
  2061. @zoom_duration[2] = false
  2062. update_zoom_in
  2063. end
  2064. end
  2065.  
  2066. #--------------------------------------------------------------------------
  2067. # ● Update Zoom Out
  2068. #--------------------------------------------------------------------------
  2069. def update_zoom_out
  2070. return if self.zoom_x == 1.00
  2071. self.zoom_x += 0.03
  2072. self.zoom_y += 0.03
  2073. if self.zoom_x >= 1.00
  2074. self.zoom_x = 1.00
  2075. self.zoom_y = 1.00
  2076. end
  2077. end
  2078.  
  2079. #--------------------------------------------------------------------------
  2080. # ● Update Zoom In
  2081. #--------------------------------------------------------------------------
  2082. def update_zoom_in
  2083. return if self.zoom_x == 0.80
  2084. self.zoom_x -= 0.03
  2085. self.zoom_y -= 0.03
  2086. if self.zoom_x <= 0.80
  2087. self.zoom_x = 0.80
  2088. self.zoom_y = 0.80
  2089. end
  2090. end
  2091.  
  2092. #--------------------------------------------------------------------------
  2093. # ● Update Zoom_effect
  2094. #--------------------------------------------------------------------------
  2095. def update_zoom_effect
  2096. @zoom_duration[0] += 1
  2097. return if @zoom_duration[0] < 1
  2098. @zoom_duration[0] = 0
  2099. @zoom_duration[1] += 1
  2100. case @zoom_duration[1]
  2101. when 1..30
  2102. self.zoom_x -= 0.005
  2103. self.zoom_y -= 0.005
  2104. when 31..60
  2105. self.zoom_x += 0.005
  2106. self.zoom_y += 0.005
  2107. when 61..999
  2108. @zoom_duration[1] = 0
  2109. self.zoom_x = 1.00
  2110. self.zoom_y = 1.00
  2111. end
  2112. end
  2113.  
  2114. #--------------------------------------------------------------------------
  2115. # ● Update Slide
  2116. #--------------------------------------------------------------------------
  2117. def update_slide(index)
  2118. np = @org_pos[0] - (index * MEMBERS_FACE_SPACE) + @ny
  2119. cp = self.x
  2120. sp = 5 + ((cp - np).abs / 5)
  2121. if cp > np
  2122. cp -= sp
  2123. cp = np if cp < np
  2124. elsif cp < np
  2125. cp += sp
  2126. cp = np if cp > np
  2127. end
  2128. self.x = cp
  2129. end
  2130.  
  2131. #--------------------------------------------------------------------------
  2132. # ● Active
  2133. #--------------------------------------------------------------------------
  2134. def active(value)
  2135. @active = value
  2136. end
  2137.  
  2138. end
  2139.  
  2140. #==============================================================================
  2141. # ■ Members Arrow Sprite
  2142. #==============================================================================
  2143. class Members_Arrow_Sprite
  2144. include MOG_MENU
  2145. attr_accessor :active
  2146.  
  2147. #--------------------------------------------------------------------------
  2148. # ● Initialize
  2149. #--------------------------------------------------------------------------
  2150. def initialize
  2151. @active = false
  2152. create_members_layout
  2153. create_arrows
  2154. end
  2155.  
  2156. #--------------------------------------------------------------------------
  2157. # ● Create Members Layout
  2158. #--------------------------------------------------------------------------
  2159. def create_members_layout
  2160. @layout_members = Sprite.new
  2161. @layout_members.bitmap = $game_temp.pre_cache_main_menu[4]
  2162. @layout_members.z = 13
  2163. @layout_members_pos = [MEMBERS_ARROW_LAYOUT_POSITION[0], MEMBERS_ARROW_LAYOUT_POSITION[1]]
  2164. @layout_members.x = @layout_members_pos[0]
  2165. @layout_members.y = @layout_members_pos[1]
  2166. @layout_members.opacity = 0
  2167. end
  2168.  
  2169. #--------------------------------------------------------------------------
  2170. # ● Create Arrows
  2171. #--------------------------------------------------------------------------
  2172. def create_arrows
  2173. @arrow_animation_duration = [0,0]
  2174. @arrow_1 = Sprite.new
  2175. @arrow_1.bitmap = $game_temp.pre_cache_main_menu[5]
  2176. @arrow_1.z = 13
  2177. @arrow1_pos = [MEMBERS_ARROW_1_POSITION[0], MEMBERS_ARROW_1_POSITION[1]]
  2178. @arrow_1.x = @arrow1_pos[0]
  2179. @arrow_1.y = @arrow1_pos[1]
  2180. @arrow_1.opacity = 0
  2181. @arrow_2 = Sprite.new
  2182. @arrow_2.bitmap = $game_temp.pre_cache_main_menu[5]
  2183. @arrow_2.z = 13
  2184. @arrow_2.mirror = true
  2185. @arrow2_pos = [MEMBERS_ARROW_2_POSITION[0], MEMBERS_ARROW_2_POSITION[1]]
  2186. @arrow_2.x = @arrow2_pos[0]
  2187. @arrow_2.y = @arrow2_pos[1]
  2188. @arrow_2.opacity = 0
  2189. @nx = 0
  2190. @nx2 = 0
  2191. end
  2192.  
  2193. #--------------------------------------------------------------------------
  2194. # ● Dispose
  2195. #--------------------------------------------------------------------------
  2196. def dispose
  2197. dispose_members_layout
  2198. dispose_arrows
  2199. end
  2200.  
  2201. #--------------------------------------------------------------------------
  2202. # ● Dispose Arrows
  2203. #--------------------------------------------------------------------------
  2204. def dispose_arrows
  2205. return if @arrow_1 == nil
  2206. @arrow_1.dispose
  2207. @arrow_2.dispose
  2208. @arrow_1 = nil
  2209. end
  2210.  
  2211. #--------------------------------------------------------------------------
  2212. # ● Dispose Members Layout
  2213. #--------------------------------------------------------------------------
  2214. def dispose_members_layout
  2215. return if @layout_members == nil
  2216. @layout_members.dispose
  2217. @layout_members = nil
  2218. end
  2219.  
  2220. #--------------------------------------------------------------------------
  2221. # ● Update
  2222. #--------------------------------------------------------------------------
  2223. def update
  2224. update_arrow_animation
  2225. update_position
  2226. @layout_members.opacity += 15
  2227. @arrow_1.opacity += 15
  2228. @arrow_2.opacity += 15
  2229. end
  2230.  
  2231. #--------------------------------------------------------------------------
  2232. # ● Update Position
  2233. #--------------------------------------------------------------------------
  2234. def update_position
  2235. @arrow_1.x = @arrow1_pos[0] + @nx + @nx2
  2236. @arrow_2.x = @arrow2_pos[0] + @nx - @nx2
  2237. @layout_members.x = @layout_members_pos[0] + @nx
  2238. end
  2239.  
  2240. #--------------------------------------------------------------------------
  2241. # ● Update Arrow Animation
  2242. #--------------------------------------------------------------------------
  2243. def update_arrow_animation
  2244. @arrow_animation_duration[0] += 1
  2245. return if @arrow_animation_duration[0] < 2
  2246. @arrow_animation_duration[0] = 0
  2247. @arrow_animation_duration[1] += 1
  2248. case @arrow_animation_duration[1]
  2249. when 1..20
  2250. @nx2 -= 1
  2251. when 21..40
  2252. @nx2 += 1
  2253. when 41..999
  2254. @nx2 = 0
  2255. @arrow_animation_duration[1] = 0
  2256. end
  2257. end
  2258.  
  2259. #--------------------------------------------------------------------------
  2260. # ● Active
  2261. #--------------------------------------------------------------------------
  2262. def nx(value)
  2263. @nx = value
  2264. end
  2265.  
  2266. end
  2267.  
  2268. #==============================================================================
  2269. # ■ Command Menu Sprite
  2270. #==============================================================================
  2271. class Command_Menu_Sprite < Sprite
  2272. include MOG_MENU
  2273. attr_accessor :index
  2274.  
  2275. #--------------------------------------------------------------------------
  2276. # ● Initialize
  2277. #--------------------------------------------------------------------------
  2278. def initialize(viewport = nil,index,command_name)
  2279. super(viewport)
  2280. @index = index
  2281. @command_name = command_name
  2282. self.bitmap = Cache.menu_main("CM_" + @command_name.to_s)
  2283. @cw = self.bitmap.width
  2284. @ch = self.bitmap.height
  2285. cw1 = self.bitmap.height / 2
  2286. cw2 = (self.bitmap.width + COMMAND_SPACE) * index
  2287. self.ox = self.bitmap.width / 2
  2288. self.oy = self.bitmap.height / 2
  2289. @org_pos = [COMMAND_POSITION[0] + cw2 + self.ox, COMMAND_POSITION[1] + self.oy]
  2290. @slide_max = @org_pos[1] + cw1
  2291. @zoom_duration = [0,0,false]
  2292. @zoom_limit = [1.00, 1.20]
  2293. self.x = -@cw
  2294. self.y = -@ch
  2295. self.z = 10
  2296. @active = false
  2297. @visible_old = true
  2298. @np = [-@cw,-@ch]
  2299. @sprite_name = Sprite.new
  2300. @sprite_name.bitmap = Bitmap.new(100,32)
  2301. @sprite_name.bitmap.font.name = "Georgia"
  2302. @sprite_name.bitmap.draw_text(0,0,100,32,@command_name.to_s,0)
  2303. @sprite_name.z = 11
  2304. @np_name = [-@cw,-@ch]
  2305. @cw_name_pos = [@cw - self.ox + 4, -self.oy + 4]
  2306. end
  2307.  
  2308. #--------------------------------------------------------------------------
  2309. # ● Dispose
  2310. #--------------------------------------------------------------------------
  2311. def dispose_command
  2312. self.bitmap.dispose
  2313. @sprite_name.bitmap.dispose
  2314. @sprite_name.dispose
  2315. end
  2316.  
  2317. #--------------------------------------------------------------------------
  2318. # ● Update
  2319. #--------------------------------------------------------------------------
  2320. def update_command(index, visible)
  2321. @active = index == @index ? true : false
  2322. refresh_active(visible) if @visible_old != visible
  2323. update_position
  2324. if !visible
  2325. if @active
  2326. self.opacity += 15
  2327. else
  2328. self.opacity -= 15
  2329. end
  2330. return
  2331. end
  2332. update_zoom
  2333. update_opacity
  2334. end
  2335.  
  2336. #--------------------------------------------------------------------------
  2337. # ● Update Slide
  2338. #--------------------------------------------------------------------------
  2339. def update_slide(type,cp,np)
  2340. sp = 2 + ((cp - np).abs / 15)
  2341. if cp > np
  2342. cp -= sp
  2343. cp = np if cp < np
  2344. elsif cp < np
  2345. cp += sp
  2346. cp = np if cp > np
  2347. end
  2348. self.x = cp if type == 0
  2349. self.y = cp if type == 1
  2350. @sprite_name.x = cp if type == 2
  2351. @sprite_name.y = cp if type == 3
  2352. end
  2353.  
  2354. #--------------------------------------------------------------------------
  2355. # ● Update Position
  2356. #--------------------------------------------------------------------------
  2357. def update_position
  2358. unless !@visible_old
  2359. if @active
  2360. @np[0] = @org_pos[0]
  2361. @np[1] = @slide_max
  2362. else
  2363. @np[0] = @org_pos[0]
  2364. @np[1] = @org_pos[1]
  2365. end
  2366. end
  2367. update_slide(0,self.x,@np[0])
  2368. update_slide(1,self.y,@np[1])
  2369. update_sprite_name_position
  2370. end
  2371.  
  2372. #--------------------------------------------------------------------------
  2373. # ● Update Sprite Name Position
  2374. #--------------------------------------------------------------------------
  2375. def update_sprite_name_position
  2376. if (@active and !@visible_old) or !@active
  2377. @np_name[0] = self.x + @cw_name_pos[0] + COMMAND_NAME_POSITION[0]
  2378. @np_name[1] = self.y + @cw_name_pos[1] + COMMAND_NAME_POSITION[1]
  2379. else
  2380. @np_name[0] = COMMAND_NAME_POSITION_2[0]
  2381. @np_name[1] = COMMAND_NAME_POSITION_2[1]
  2382. end
  2383. update_slide(2,@sprite_name.x,@np_name[0])
  2384. update_slide(3,@sprite_name.y,@np_name[1])
  2385. @sprite_name.visible = @active ? true : false
  2386. end
  2387.  
  2388.  
  2389. #--------------------------------------------------------------------------
  2390. # ● Refresh Active
  2391. #--------------------------------------------------------------------------
  2392. def refresh_active(visible)
  2393. if @active and !visible
  2394. @np[0] = COMMAND_POSITION_2[0] + (@cw / 2)
  2395. @np[1] = COMMAND_POSITION_2[1]
  2396. self.zoom_x = @zoom_limit[0]
  2397. self.zoom_y = @zoom_limit[0]
  2398. else
  2399. @np[0] = @org_pos[0]
  2400. @np[1] = @org_pos[1]
  2401. end
  2402. @visible_old = visible
  2403. end
  2404.  
  2405. #--------------------------------------------------------------------------
  2406. # ● Update Opacity
  2407. #--------------------------------------------------------------------------
  2408. def update_opacity
  2409. if @active
  2410. self.opacity += 15
  2411. else
  2412. self.opacity -= 15 if self.opacity > 160
  2413. if self.opacity < 160
  2414. self.opacity += 15
  2415. self.opacity = 160 if self.opacity > 160
  2416. end
  2417. end
  2418. end
  2419.  
  2420. #--------------------------------------------------------------------------
  2421. # ● Update Zoom
  2422. #--------------------------------------------------------------------------
  2423. def update_zoom
  2424. if @active
  2425. if !@zoom_duration[2]
  2426. update_zoom_out
  2427. @zoom_duration = [0,0,true] if self.zoom_x == @zoom_limit[1]
  2428. else
  2429. update_zoom_effect
  2430. end
  2431. else
  2432. @zoom_duration[2] = false
  2433. update_zoom_in
  2434. end
  2435. end
  2436.  
  2437. #--------------------------------------------------------------------------
  2438. # ● Update Zoom Out
  2439. #--------------------------------------------------------------------------
  2440. def update_zoom_out
  2441. return if self.zoom_x == @zoom_limit[1]
  2442. self.zoom_x += 0.03
  2443. self.zoom_y += 0.03
  2444. if self.zoom_x >= @zoom_limit[1]
  2445. self.zoom_x = @zoom_limit[1]
  2446. self.zoom_y = @zoom_limit[1]
  2447. end
  2448. end
  2449.  
  2450. #--------------------------------------------------------------------------
  2451. # ● Update Zoom In
  2452. #--------------------------------------------------------------------------
  2453. def update_zoom_in
  2454. return if self.zoom_x == @zoom_limit[0]
  2455. self.zoom_x -= 0.03
  2456. self.zoom_y -= 0.03
  2457. if self.zoom_x <= @zoom_limit[0]
  2458. self.zoom_x = @zoom_limit[0]
  2459. self.zoom_y = @zoom_limit[0]
  2460. end
  2461. end
  2462.  
  2463. #--------------------------------------------------------------------------
  2464. # ● Update Zoom_effect
  2465. #--------------------------------------------------------------------------
  2466. def update_zoom_effect
  2467. @zoom_duration[0] += 1
  2468. return if @zoom_duration[0] < 1
  2469. @zoom_duration[0] = 0
  2470. @zoom_duration[1] += 1
  2471. case @zoom_duration[1]
  2472. when 1..30
  2473. self.zoom_x -= 0.005
  2474. self.zoom_y -= 0.005
  2475. when 31..60
  2476. self.zoom_x += 0.005
  2477. self.zoom_y += 0.005
  2478. when 61..999
  2479. @zoom_duration[1] = 0
  2480. self.zoom_x = @zoom_limit[1]
  2481. self.zoom_y = @zoom_limit[1]
  2482. end
  2483. end
  2484.  
  2485. end
  2486.  
  2487. #==============================================================================
  2488. # ■ Actor Menu Pictures
  2489. #==============================================================================
  2490. class Actor_Menu_Pictures < Sprite
  2491. include MOG_MENU
  2492. attr_accessor :index
  2493.  
  2494. #--------------------------------------------------------------------------
  2495. # ● Initialize
  2496. #--------------------------------------------------------------------------
  2497. def initialize(viewport = nil,index,actor_id)
  2498. super(viewport)
  2499. @index = index
  2500. @actor_id = actor_id
  2501. self.bitmap = Cache.menu("Actor" + @actor_id.to_s)
  2502. self.z = 2
  2503. set_position
  2504. @slide_max = @org_pos[0] + 24
  2505. auto_y = Graphics.height - self.bitmap.height
  2506. self.ox = self.bitmap.width / 2
  2507. self.x = @org_pos[0] - 15
  2508. self.y = auto_y
  2509. self.opacity = 0
  2510. @op_time = 10 * @index
  2511. end
  2512.  
  2513. #--------------------------------------------------------------------------
  2514. # ● Set Position
  2515. #--------------------------------------------------------------------------
  2516. def set_position
  2517. members_size = $game_party.members.size
  2518. members_size = $game_party.max_battle_members if members_size > $game_party.max_battle_members
  2519. space_members = ((Graphics.width ) / members_size)
  2520. space_members_2 = (space_members * @index)
  2521. space_members_3 = ((space_members / 2) * (members_size - 1))
  2522. center = Graphics.width / 2
  2523. space = center + space_members_2 - space_members_3
  2524. @org_pos = [space, ACTOR_POSITION[1]]
  2525. end
  2526.  
  2527. #--------------------------------------------------------------------------
  2528. # ● Dispose
  2529. #--------------------------------------------------------------------------
  2530. def dispose_picture
  2531. self.bitmap.dispose
  2532. end
  2533.  
  2534. #--------------------------------------------------------------------------
  2535. # ● Update Picture
  2536. #--------------------------------------------------------------------------
  2537. def update_picture
  2538. @op_time -= 1 if @op_time > 0
  2539. return if @op_time > 0
  2540. self.opacity += 15
  2541. self.x += 1 if self.x < @org_pos[0]
  2542. end
  2543.  
  2544. end
  2545.  
  2546. #==============================================================================
  2547. # ■ Actor Menu Parameter
  2548. #==============================================================================
  2549. class Actor_Menu_Parameter
  2550.  
  2551. include MOG_MENU
  2552. attr_accessor :index
  2553.  
  2554. #--------------------------------------------------------------------------
  2555. # ● Initialize
  2556. #--------------------------------------------------------------------------
  2557. def initialize(index, actor)
  2558. setup(index, actor)
  2559. create_layout_par
  2560. create_hp_number
  2561. create_hp2_number
  2562. create_mp_number
  2563. create_mp2_number
  2564. create_hp_meter
  2565. create_mp_meter
  2566. create_level
  2567. create_states
  2568. create_name
  2569. end
  2570.  
  2571. #--------------------------------------------------------------------------
  2572. # ● Setup
  2573. #--------------------------------------------------------------------------
  2574. def setup(index, actor)
  2575. @actor = actor
  2576. @index = index
  2577. set_position
  2578. @number_image_1 = $game_temp.pre_cache_main_menu[6]
  2579. @number_image_1_cw = @number_image_1.width / 10
  2580. @number_image_1_ch = @number_image_1.height / 3
  2581. @number_image_2 = $game_temp.pre_cache_main_menu[7]
  2582. @number_image_2_cw = @number_image_2.width / 10
  2583. @number_image_2_ch = @number_image_2.height
  2584. @par_meter_image = $game_temp.pre_cache_main_menu[8]
  2585. @par_meter_cw = @par_meter_image.width / 3
  2586. @par_meter_ch = @par_meter_image.height / 2
  2587. @par_meter_flow = 0
  2588. @par_meter_flow_max = @par_meter_image.width - @par_meter_cw
  2589. @icon_image = $game_temp.pre_cache_icon
  2590. end
  2591.  
  2592. #--------------------------------------------------------------------------
  2593. # ● Set Position
  2594. #--------------------------------------------------------------------------
  2595. def set_position
  2596. members_size = $game_party.members.size
  2597. members_size = $game_party.max_battle_members if members_size >= $game_party.max_battle_members
  2598. space_members = ((Graphics.width ) / members_size)
  2599. space_members_2 = (space_members * @index)
  2600. space_members_3 = ((space_members / 2) * (members_size - 1))
  2601. center = Graphics.width / 2
  2602. layout_ox = $game_temp.pre_cache_main_menu[9].width / 2
  2603. @base_x = center - layout_ox + space_members_2 - space_members_3
  2604. end
  2605.  
  2606. #--------------------------------------------------------------------------
  2607. # ● Create Layout Par
  2608. #--------------------------------------------------------------------------
  2609. def create_layout_par
  2610. @layout_par = Sprite.new
  2611. @layout_par.bitmap = $game_temp.pre_cache_main_menu[9]
  2612. @layout_par.z = 10
  2613. @layout_par.x = @base_x + ACTOR_LAYOUT_POSITON[0]
  2614. @layout_par.y = ACTOR_LAYOUT_POSITON[1]
  2615. end
  2616.  
  2617. #--------------------------------------------------------------------------
  2618. # ● Create Name
  2619. #--------------------------------------------------------------------------
  2620. def create_name
  2621. @actor_name = Sprite.new
  2622. @actor_name.bitmap = Bitmap.new(160,32)
  2623. @actor_name.bitmap.font.name = "Georgia"
  2624. @actor_name.bitmap.font.size = 18
  2625. @actor_name.bitmap.font.bold = true
  2626. @actor_name.bitmap.font.italic = true
  2627. actor_name = @actor.name
  2628. @actor_name.bitmap.font.color = Color.new(0,0,0)
  2629. @actor_name.bitmap.draw_text(1,1,140,32,actor_name,1)
  2630. @actor_name.bitmap.font.color = Color.new(255 ,255,255)
  2631. @actor_name.bitmap.draw_text(0,0,140,32,actor_name,1)
  2632. @actor_name.z = 12
  2633. @actor_name.x = @base_x - 20
  2634. @actor_name.y = 250
  2635. end
  2636.  
  2637. #--------------------------------------------------------------------------
  2638. # ● Create HP Number
  2639. #--------------------------------------------------------------------------
  2640. def create_hp_number
  2641. @hp_number = Sprite.new
  2642. @hp_number.bitmap = Bitmap.new(@number_image_1_cw * 4,@number_image_1_ch)
  2643. @hp_number.z = 12
  2644. @hp_number.x = @base_x + ACTOR_HP1_POSITON[0]
  2645. @hp_number.y = ACTOR_HP1_POSITON[1]
  2646. refresh_hp
  2647. end
  2648.  
  2649. #--------------------------------------------------------------------------
  2650. # ● Refresh HP
  2651. #--------------------------------------------------------------------------
  2652. def refresh_hp
  2653. @hp_number.bitmap.clear
  2654. number = @actor.hp.abs.to_s.split(//)
  2655. number_cw = @number_image_1_cw
  2656. number_ch = @number_image_1_ch
  2657. for i in 0..number.size - 1
  2658. number_abs = number[i].to_i
  2659. nsrc_rect = Rect.new(number_cw * number_abs, 0, number_cw , number_ch)
  2660. @hp_number.bitmap.blt(number_cw * i, 0, @number_image_1, nsrc_rect)
  2661. end
  2662. end
  2663.  
  2664. #--------------------------------------------------------------------------
  2665. # ● Create HP2 Number
  2666. #--------------------------------------------------------------------------
  2667. def create_hp2_number
  2668. @hp2_number = Sprite.new
  2669. @hp2_number.bitmap = Bitmap.new(@number_image_2_cw * 4,@number_image_2_ch)
  2670. @hp2_number.z = 12
  2671. @hp2_number.x = @base_x + ACTOR_HP2_POSITON[0]
  2672. @hp2_number.y = ACTOR_HP2_POSITON[1]
  2673. refresh_hp2
  2674. end
  2675.  
  2676. #--------------------------------------------------------------------------
  2677. # ● Refresh HP2
  2678. #--------------------------------------------------------------------------
  2679. def refresh_hp2
  2680. @hp2_number.bitmap.clear
  2681. number = @actor.mhp.abs.to_s.split(//)
  2682. number_cw = @number_image_2_cw
  2683. number_ch = @number_image_2_ch
  2684. for i in 0..number.size - 1
  2685. number_abs = number[i].to_i
  2686. nsrc_rect = Rect.new(number_cw * number_abs, 0, number_cw , number_ch)
  2687. @hp2_number.bitmap.blt(number_cw * i, 0, @number_image_2, nsrc_rect)
  2688. end
  2689. end
  2690.  
  2691. #--------------------------------------------------------------------------
  2692. # ● Create MP Number
  2693. #--------------------------------------------------------------------------
  2694. def create_mp_number
  2695. @mp_number = Sprite.new
  2696. @mp_number.bitmap = Bitmap.new(@number_image_1_cw * 4,@number_image_1_ch)
  2697. @mp_number.z = 12
  2698. @mp_number.x = @base_x + ACTOR_MP1_POSITON[0]
  2699. @mp_number.y = ACTOR_MP1_POSITON[1]
  2700. refresh_mp
  2701. end
  2702.  
  2703. #--------------------------------------------------------------------------
  2704. # ● Refresh MP
  2705. #--------------------------------------------------------------------------
  2706. def refresh_mp
  2707. @mp_number.bitmap.clear
  2708. number = @actor.mp.abs.to_s.split(//)
  2709. number_cw = @number_image_1_cw
  2710. number_ch = @number_image_1_ch
  2711. for i in 0..number.size - 1
  2712. number_abs = number[i].to_i
  2713. nsrc_rect = Rect.new(number_cw * number_abs, 0, number_cw , number_ch)
  2714. @mp_number.bitmap.blt(number_cw * i, 0, @number_image_1, nsrc_rect)
  2715. end
  2716. end
  2717.  
  2718. #--------------------------------------------------------------------------
  2719. # ● Create MP2 Number
  2720. #--------------------------------------------------------------------------
  2721. def create_mp2_number
  2722. @mp2_number = Sprite.new
  2723. @mp2_number.bitmap = Bitmap.new(@number_image_2_cw * 4,@number_image_2_ch)
  2724. @mp2_number.z = 12
  2725. @mp2_number.x = @base_x + ACTOR_MP2_POSITON[0]
  2726. @mp2_number.y = ACTOR_MP2_POSITON[1]
  2727. refresh_mp2
  2728. end
  2729.  
  2730. #--------------------------------------------------------------------------
  2731. # ● Refresh MP2
  2732. #--------------------------------------------------------------------------
  2733. def refresh_mp2
  2734. @mp2_number.bitmap.clear
  2735. number = @actor.mmp.abs.to_s.split(//)
  2736. number_cw = @number_image_2_cw
  2737. number_ch = @number_image_2_ch
  2738. for i in 0..number.size - 1
  2739. number_abs = number[i].to_i
  2740. nsrc_rect = Rect.new(number_cw * number_abs, 0, number_cw , number_ch)
  2741. @mp2_number.bitmap.blt(number_cw * i, 0, @number_image_2, nsrc_rect)
  2742. end
  2743. end
  2744.  
  2745. #--------------------------------------------------------------------------
  2746. # ● Create Level
  2747. #--------------------------------------------------------------------------
  2748. def create_level
  2749. @level = Sprite.new
  2750. @level.bitmap = Bitmap.new(@number_image_1_cw * 2, @number_image_1_ch)
  2751. @level.z = 12
  2752. @level.x = @base_x + ACTOR_LEVEL_POSITON[0]
  2753. @level.y = ACTOR_LEVEL_POSITON[1]
  2754. refresh_level
  2755. end
  2756.  
  2757. #--------------------------------------------------------------------------
  2758. # ● Refresh Level
  2759. #--------------------------------------------------------------------------
  2760. def refresh_level
  2761. @level.bitmap.clear
  2762. number = @actor.level.abs.to_s.split(//)
  2763. number_cw = @number_image_1_cw
  2764. number_ch = @number_image_1_ch
  2765. for i in 0..number.size - 1
  2766. number_abs = number[i].to_i
  2767. nsrc_rect = Rect.new(number_cw * number_abs, number_ch * 2, number_cw , number_ch)
  2768. @level.bitmap.blt(number_cw * i, 0, @number_image_1, nsrc_rect)
  2769. end
  2770. end
  2771.  
  2772. #--------------------------------------------------------------------------
  2773. # ● Create HP Meter
  2774. #--------------------------------------------------------------------------
  2775. def create_hp_meter
  2776. @hp_meter = Sprite.new
  2777. @hp_meter.bitmap = Bitmap.new(@par_meter_cw,@par_meter_ch)
  2778. @hp_meter.z = 11
  2779. @hp_meter.x = @base_x + ACTOR_HP_METER_POSITON[0]
  2780. @hp_meter.y = ACTOR_HP_METER_POSITON[1]
  2781. update_flow_hp
  2782. end
  2783.  
  2784. #--------------------------------------------------------------------------
  2785. # ● Update Flow HP
  2786. #--------------------------------------------------------------------------
  2787. def update_flow_hp
  2788. @hp_meter.bitmap.clear
  2789. par_width = @par_meter_cw * @actor.hp / @actor.mhp
  2790. m_scr = Rect.new(@par_meter_flow,0, par_width, @par_meter_ch)
  2791. @hp_meter.bitmap.blt(0,0,@par_meter_image, m_scr)
  2792. end
  2793.  
  2794. #--------------------------------------------------------------------------
  2795. # ● Create MP Meter
  2796. #--------------------------------------------------------------------------
  2797. def create_mp_meter
  2798. @mp_meter = Sprite.new
  2799. @mp_meter.bitmap = Bitmap.new(@par_meter_cw,@par_meter_ch)
  2800. @mp_meter.z = 11
  2801. @mp_meter.x = @base_x + ACTOR_MP_METER_POSITON[0]
  2802. @mp_meter.y = ACTOR_MP_METER_POSITON[1]
  2803. update_flow_mp
  2804. end
  2805.  
  2806. #--------------------------------------------------------------------------
  2807. # ● Update Flow MP
  2808. #--------------------------------------------------------------------------
  2809. def update_flow_mp
  2810. @mp_meter.bitmap.clear
  2811. par_width = @par_meter_cw * @actor.mp / @actor.mmp rescue nil
  2812. par_width = 0 if par_width == nil
  2813. m_scr = Rect.new(@par_meter_flow,@par_meter_ch, par_width, @par_meter_ch)
  2814. @mp_meter.bitmap.blt(0,0,@par_meter_image, m_scr)
  2815. @par_meter_flow += 3
  2816. @par_meter_flow = 0 if @par_meter_flow > @par_meter_flow_max
  2817. end
  2818.  
  2819. #--------------------------------------------------------------------------
  2820. # ● Create_States
  2821. #--------------------------------------------------------------------------
  2822. def create_states
  2823. refresh_states
  2824. @status = Sprite.new
  2825. @status.bitmap = Bitmap.new(24,24)
  2826. @status.x = @base_x + ACTOR_STATES_POSITION[0]
  2827. @status.y = ACTOR_STATES_POSITION[1]
  2828. @status_flow = -24
  2829. @states_speed = 50
  2830. @status.z = 503
  2831. @old_states = @actor.states
  2832. refresh_states
  2833. update_flow_states
  2834. end
  2835.  
  2836. #--------------------------------------------------------------------------
  2837. # ● Upate Flow_Status
  2838. #--------------------------------------------------------------------------
  2839. def update_flow_states
  2840. return if @actor.states.size == 0 and !@status.visible
  2841. @states_speed = 0
  2842. @status.bitmap.clear
  2843. src_rect = Rect.new(@status_flow,0, 24,24)
  2844. @status.bitmap.blt(0,0, @actor_status, src_rect)
  2845. @status.visible = @actor.states.size == 0 ? false : true
  2846. @status_flow += 1
  2847. @status_flow = -24 if @status_flow >= @states_size - 24
  2848. end
  2849.  
  2850. #--------------------------------------------------------------------------
  2851. # ● Refresh States
  2852. #--------------------------------------------------------------------------
  2853. def refresh_states
  2854. @old_states = @actor.states
  2855. if @actor_status != nil
  2856. @actor_status.dispose
  2857. @actor_status = nil
  2858. end
  2859. @states_size = @actor.states.size > 0 ? (48 * @actor.states.size) : 24
  2860. @actor_status = Bitmap.new(@states_size,24)
  2861. index = 0
  2862. for i in @actor.states
  2863. rect = Rect.new(i.icon_index % 16 * 24, i.icon_index / 16 * 24, 24, 24)
  2864. @actor_status.blt(48 * index , 0, @icon_image, rect)
  2865. index += 1
  2866. end
  2867. end
  2868.  
  2869. #--------------------------------------------------------------------------
  2870. # ● Update
  2871. #--------------------------------------------------------------------------
  2872. def update
  2873. update_flow_hp
  2874. update_flow_mp
  2875. update_flow_states
  2876. end
  2877.  
  2878. end
  2879.  
  2880.  
  2881. #==============================================================================
  2882. # ■ Actor Menu Parameter
  2883. #==============================================================================
  2884. class Actor_Menu_Parameter
  2885.  
  2886. #--------------------------------------------------------------------------
  2887. # ● Dispose
  2888. #--------------------------------------------------------------------------
  2889. def dispose
  2890. dispose_actor_layout_par
  2891. dispose_name
  2892. dispose_hp_number
  2893. dispose_mp_number
  2894. dispose_hp_meter
  2895. dispose_mp_meter
  2896. dispose_states
  2897. dispose_level
  2898. end
  2899.  
  2900. #--------------------------------------------------------------------------
  2901. # ● Dispose Actor Layout Par
  2902. #--------------------------------------------------------------------------
  2903. def dispose_actor_layout_par
  2904. return if @layout_par == nil
  2905. @layout_par.dispose
  2906. @layout_par = nil
  2907. end
  2908.  
  2909. #--------------------------------------------------------------------------
  2910. # ● Dispose Name
  2911. #--------------------------------------------------------------------------
  2912. def dispose_name
  2913. return if @actor_name == nil
  2914. @actor_name.bitmap.dispose
  2915. @actor_name.dispose
  2916. @actor_name = nil
  2917. end
  2918.  
  2919. #--------------------------------------------------------------------------
  2920. # ● Dispose HP Number
  2921. #--------------------------------------------------------------------------
  2922. def dispose_hp_number
  2923. return if @hp_number == nil
  2924. @hp_number.bitmap.dispose
  2925. @hp_number.dispose
  2926. @hp_number = nil
  2927. @hp2_number.bitmap.dispose
  2928. @hp2_number.dispose
  2929. @hp2_number = nil
  2930.  
  2931. end
  2932.  
  2933. #--------------------------------------------------------------------------
  2934. # ● Dispose MP Number
  2935. #--------------------------------------------------------------------------
  2936. def dispose_mp_number
  2937. return if @mp_number == nil
  2938. @mp_number.bitmap.dispose
  2939. @mp_number.dispose
  2940. @mp_number = nil
  2941. @mp2_number.bitmap.dispose
  2942. @mp2_number.dispose
  2943. @mp2_number = nil
  2944. end
  2945.  
  2946. #--------------------------------------------------------------------------
  2947. # ● Dispose States
  2948. #--------------------------------------------------------------------------
  2949. def dispose_states
  2950. return if @status == nil
  2951. @status.bitmap.dispose
  2952. @status.dispose
  2953. if @actor_status != nil
  2954. @actor_status.dispose
  2955. @actor_status = nil
  2956. end
  2957. end
  2958.  
  2959. #--------------------------------------------------------------------------
  2960. # ● Dispose MP Meter
  2961. #--------------------------------------------------------------------------
  2962. def dispose_mp_meter
  2963. return if @mp_meter == nil
  2964. @mp_meter.bitmap.dispose
  2965. @mp_meter.dispose
  2966. @mp_meter = nil
  2967. end
  2968.  
  2969. #--------------------------------------------------------------------------
  2970. # ● Dispose HP Meter
  2971. #--------------------------------------------------------------------------
  2972. def dispose_hp_meter
  2973. return if @hp_meter == nil
  2974. @hp_meter.bitmap.dispose
  2975. @hp_meter.dispose
  2976. @hp_meter = nil
  2977. end
  2978.  
  2979. #--------------------------------------------------------------------------
  2980. # ● Dispose Level
  2981. #--------------------------------------------------------------------------
  2982. def dispose_level
  2983. return if @level == nil
  2984. @level.bitmap.dispose
  2985. @level.dispose
  2986. @level = nil
  2987. end
  2988.  
  2989. end
  2990.  
  2991. #==============================================================================
  2992. # ■ Scene_Menu
  2993. #==============================================================================
  2994. class Scene_Menu
  2995.  
  2996. #--------------------------------------------------------------------------
  2997. # ● Create Sprites
  2998. #--------------------------------------------------------------------------
  2999. def create_sprites
  3000. create_menu_background
  3001. create_layout
  3002. create_particles
  3003. create_command
  3004. create_actor_pictures
  3005. create_timer_sprite
  3006. create_gold_number
  3007. create_location
  3008. create_actor_parameter
  3009. create_members
  3010. create_members_layout
  3011. update_members_face
  3012. end
  3013.  
  3014. #--------------------------------------------------------------------------
  3015. # ● Create Menu Background
  3016. #--------------------------------------------------------------------------
  3017. def create_menu_background
  3018. @background = Plane.new
  3019. @background.bitmap = $game_temp.pre_cache_main_menu[0]
  3020. @background.z = 0
  3021. @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  3022. end
  3023.  
  3024. #--------------------------------------------------------------------------
  3025. # ● Create Menu Background
  3026. #--------------------------------------------------------------------------
  3027. def create_layout
  3028. @layout = Sprite.new
  3029. @layout.bitmap = $game_temp.pre_cache_main_menu[1]
  3030. @layout.z = 3
  3031. end
  3032.  
  3033. #--------------------------------------------------------------------------
  3034. # ● Create Particles
  3035. #--------------------------------------------------------------------------
  3036. def create_particles
  3037. @particles_sprite =[]
  3038. for i in 0...NUMBER_OF_PARTICLES
  3039. @particles_sprite.push(Particles_Menu.new(nil))
  3040. end
  3041. end
  3042.  
  3043. #--------------------------------------------------------------------------
  3044. # ● Create Command
  3045. #--------------------------------------------------------------------------
  3046. def create_command
  3047. create_command_window
  3048. @command_window.visible = false
  3049. @command_window.x -=544
  3050. @command_max = @command_window.list.size
  3051. @commnad_name = []
  3052. index = 0
  3053. for i in @command_window.list
  3054. @commnad_name.push(i[:name])
  3055. index += 1
  3056. end
  3057. @command_scroll_max = @command_max > 6 ? 6 : @command_max
  3058. @command_ny = 0
  3059. @command_sprites = []
  3060. index = 0
  3061. for i in 0...@command_max
  3062. @command_sprites.push(Command_Menu_Sprite.new(nil, index,@commnad_name[index]) )
  3063. index += 1
  3064. end
  3065. end
  3066.  
  3067. #--------------------------------------------------------------------------
  3068. # ● Create Command Window
  3069. #--------------------------------------------------------------------------
  3070. def create_command_window
  3071. @command_window = Window_MenuCommand.new
  3072. @command_window.set_handler(:item, method(:command_item))
  3073. @command_window.set_handler(:skill, method(:command_personal))
  3074. @command_window.set_handler(:equip, method(:command_personal))
  3075. @command_window.set_handler(:status, method(:command_personal))
  3076. @command_window.set_handler(:formation, method(:command_formation))
  3077. @command_window.set_handler(:save, method(:command_save))
  3078. @command_window.set_handler(:game_end, method(:command_game_end))
  3079. @command_window.set_handler(:cancel, method(:return_scene))
  3080. @command_window.index = $game_temp.menu_index
  3081. end
  3082.  
  3083. #--------------------------------------------------------------------------
  3084. # ● Create Actor Pictures
  3085. #--------------------------------------------------------------------------
  3086. def create_actor_pictures
  3087. @actor_pictures = []
  3088. members_size = $game_party.members.size
  3089. members_size = $game_party.max_battle_members if members_size >= $game_party.max_battle_members
  3090. for i in 0...members_size
  3091. @actor_pictures.push(Actor_Menu_Pictures.new(nil,i,$game_party.members[i].id))
  3092. end
  3093. end
  3094.  
  3095. #--------------------------------------------------------------------------
  3096. # ● Create Timer Number
  3097. #--------------------------------------------------------------------------
  3098. def create_timer_sprite
  3099. update_timer
  3100. @min_old = @min
  3101. @timer_image = $game_temp.pre_cache_main_menu[2]
  3102. @timer_cw = @timer_image.width / 10
  3103. @timer_ch = @timer_image.height
  3104. @timer_sprite = Sprite.new
  3105. @timer_sprite.bitmap = Bitmap.new(@timer_image.width ,@timer_image.height)
  3106. @timer_sprite.z = 11
  3107. @timer_sprite.x = TIME_NUMBER_POS[0]
  3108. @timer_sprite.y = TIME_NUMBER_POS[1]
  3109. refresh_timer
  3110. end
  3111.  
  3112. #--------------------------------------------------------------------------
  3113. # ● Create Gold Number
  3114. #--------------------------------------------------------------------------
  3115. def create_gold_number
  3116. @gold = $game_party.gold
  3117. @gold_image = $game_temp.pre_cache_main_menu[3]
  3118. @gold_cw = @gold_image.width / 10
  3119. @gold_ch = @gold_image.height
  3120. @gold_sprite = Sprite.new
  3121. @gold_sprite.bitmap = Bitmap.new(@gold_image.width ,@gold_image.height)
  3122. @gold_sprite.z = 11
  3123. @gold_sprite.x = GOLD_NUMBER_POS[0]
  3124. @gold_sprite.y = GOLD_NUMBER_POS[1]
  3125. refresh_gold
  3126. end
  3127.  
  3128. #--------------------------------------------------------------------------
  3129. # ● Create Location
  3130. #--------------------------------------------------------------------------
  3131. def create_location
  3132. @location = Sprite.new
  3133. @location.bitmap = Bitmap.new(200,40)
  3134. @location.bitmap.font.name = "Georgia"
  3135. @location.bitmap.font.size = 20
  3136. @location.bitmap.font.bold = true
  3137. @location.bitmap.font.italic = true
  3138. @location.z = 12
  3139. @location.x = LOCATION_POS[0]
  3140. @location.y = LOCATION_POS[1]
  3141. refresh_location
  3142. end
  3143.  
  3144. #--------------------------------------------------------------------------
  3145. # ● Refresh Location
  3146. #--------------------------------------------------------------------------
  3147. def refresh_location
  3148. location_name = $game_map.display_name
  3149. @location.bitmap.clear
  3150. @location.bitmap.font.color = Color.new(120,120,120,120)
  3151. @location.bitmap.draw_text(6,4,190,32, location_name.to_s,2)
  3152. @location.bitmap.font.color = Color.new(255,255,255)
  3153. @location.bitmap.draw_text(0,0,190,32, location_name.to_s,2)
  3154. end
  3155.  
  3156. #--------------------------------------------------------------------------
  3157. # ● Create Actor Parameter
  3158. #--------------------------------------------------------------------------
  3159. def create_actor_parameter
  3160. @actor_par = []
  3161. members_size = $game_party.members.size
  3162. members_size = $game_party.max_battle_members if members_size >= $game_party.max_battle_members
  3163. for i in 0...members_size
  3164. @actor_par.push(Actor_Menu_Parameter.new(i,$game_party.members[i]))
  3165. end
  3166. end
  3167.  
  3168. #--------------------------------------------------------------------------
  3169. # ● Create Members
  3170. #--------------------------------------------------------------------------
  3171. def create_members
  3172. @members_viewport = Viewport.new(MEMBERS_FACE_POSITION[0],MEMBERS_FACE_POSITION[1],400,96)
  3173. @members_viewport.z = 12
  3174. @members_viewport.ox = -544
  3175. @members_slide_max = (MEMBERS_FACE_POSITION[0] - 544)
  3176. @members = []
  3177. for i in 0...$game_party.members.size
  3178. @members.push(Face_Members_Sprite.new(@members_viewport,i, $game_party.members[i].id))
  3179. end
  3180. end
  3181.  
  3182. #--------------------------------------------------------------------------
  3183. # ● Create Members Layout
  3184. #--------------------------------------------------------------------------
  3185. def create_members_layout
  3186. @members_layout = Members_Arrow_Sprite.new
  3187. end
  3188.  
  3189. end
  3190.  
  3191. #==============================================================================
  3192. # ■ Scene_Menu
  3193. #==============================================================================
  3194. class Scene_Menu
  3195.  
  3196. #--------------------------------------------------------------------------
  3197. # ● Execute Dispose
  3198. #--------------------------------------------------------------------------
  3199. def execute_dispose
  3200. Graphics.freeze
  3201. dispose_background
  3202. dispose_layout
  3203. dispose_particles
  3204. dispose_command_sprites
  3205. dispose_actor_sprites
  3206. dispose_actor_parameter
  3207. dispose_timer_sprite
  3208. dispose_gold_number
  3209. dispose_location
  3210. dispose_members
  3211. end
  3212.  
  3213. #--------------------------------------------------------------------------
  3214. # ● Dispose Background
  3215. #--------------------------------------------------------------------------
  3216. def dispose_background
  3217. return if @background == nil
  3218. # @background.bitmap.dispose
  3219. @background.dispose
  3220. @background = nil
  3221. end
  3222.  
  3223. #--------------------------------------------------------------------------
  3224. # ● Dispose Layout
  3225. #--------------------------------------------------------------------------
  3226. def dispose_layout
  3227. return if @layout == nil
  3228. # @layout.bitmap.dispose
  3229. @layout.dispose
  3230. @layout = nil
  3231. end
  3232.  
  3233. #--------------------------------------------------------------------------
  3234. # ● Dispose Particles
  3235. #--------------------------------------------------------------------------
  3236. def dispose_particles
  3237. return if @particles_sprite == nil
  3238. @particles_sprite.each {|sprite| sprite.dispose }
  3239. end
  3240.  
  3241. #--------------------------------------------------------------------------
  3242. # ● Dispose Command Sprites
  3243. #--------------------------------------------------------------------------
  3244. def dispose_command_sprites
  3245. return if @command_sprites == nil
  3246. @command_sprites.each {|sprite| sprite.dispose_command }
  3247. @command_sprites = nil
  3248. @command_window.dispose
  3249. end
  3250.  
  3251. #--------------------------------------------------------------------------
  3252. # ● Dispose Actor Sprites
  3253. #--------------------------------------------------------------------------
  3254. def dispose_actor_sprites
  3255. return if @actor_pictures == nil
  3256. @actor_pictures.each {|sprite| sprite.dispose_picture }
  3257. @actor_pictures = nil
  3258. end
  3259.  
  3260. #--------------------------------------------------------------------------
  3261. # ● Dispose timer Sprite
  3262. #--------------------------------------------------------------------------
  3263. def dispose_timer_sprite
  3264. return if @timer_sprite == nil
  3265. @timer_sprite.dispose
  3266. end
  3267.  
  3268. #--------------------------------------------------------------------------
  3269. # ● Dispose Gold Number
  3270. #--------------------------------------------------------------------------
  3271. def dispose_gold_number
  3272. return if @gold_image == nil
  3273. @gold_sprite.dispose
  3274. @gold_sprite = nil
  3275. end
  3276.  
  3277. #--------------------------------------------------------------------------
  3278. # ● Dispose Location
  3279. #--------------------------------------------------------------------------
  3280. def dispose_location
  3281. return if @location == nil
  3282. @location.bitmap.dispose
  3283. @location.dispose
  3284. @location = nil
  3285. end
  3286.  
  3287. #--------------------------------------------------------------------------
  3288. # ● Dispose Actor Parameter
  3289. #--------------------------------------------------------------------------
  3290. def dispose_actor_parameter
  3291. return if @actor_par == nil
  3292. @actor_par.each {|sprite| sprite.dispose }
  3293. @actor_par = nil
  3294. end
  3295.  
  3296. #--------------------------------------------------------------------------
  3297. # ● Dispose Members
  3298. #--------------------------------------------------------------------------
  3299. def dispose_members
  3300. return if @members == nil
  3301. @members.each {|sprite| sprite.dispose }
  3302. @members = nil
  3303. @members_layout.dispose
  3304. @members_viewport.dispose
  3305. end
  3306.  
  3307. end
  3308.  
  3309. #==============================================================================
  3310. # ■ Scene_Menu
  3311. #==============================================================================
  3312. class Scene_Menu
  3313.  
  3314. #--------------------------------------------------------------------------
  3315. # ● Update Sprites
  3316. #--------------------------------------------------------------------------
  3317. def update_sprites
  3318. update_background
  3319. update_particles
  3320. update_command_sprites
  3321. update_actor_parameter
  3322. update_actor_sprites
  3323. update_members_face
  3324. refresh_timer if @min_old != @min
  3325. refresh_gold if @gold != $game_party.gold
  3326. end
  3327.  
  3328. #--------------------------------------------------------------------------
  3329. # ● Update Background
  3330. #--------------------------------------------------------------------------
  3331. def update_background
  3332. return if @background == nil
  3333. @background.ox += @background_scroll[0]
  3334. @background.oy += @background_scroll[1]
  3335. end
  3336.  
  3337. #--------------------------------------------------------------------------
  3338. # ● Update Particles
  3339. #--------------------------------------------------------------------------
  3340. def update_particles
  3341. return if @particles_sprite == nil
  3342. @particles_sprite.each {|sprite| sprite.update }
  3343. end
  3344.  
  3345. #--------------------------------------------------------------------------
  3346. # ● Update Command Sprites
  3347. #--------------------------------------------------------------------------
  3348. def update_command_sprites
  3349. return if @command_window == nil
  3350. visible = @phase == 0 ? true : false
  3351. @command_sprites.each {|sprite| sprite.update_command(@command_window.index,visible) }
  3352. end
  3353.  
  3354. #--------------------------------------------------------------------------
  3355. # ● Refresh Number
  3356. #--------------------------------------------------------------------------
  3357. def refresh_timer
  3358. @min_old = @min
  3359. @timer_sprite.bitmap.clear
  3360. draw_number(@timer_cw * 1,0,0) if @hour < 10
  3361. draw_number(@timer_cw * 2,0,@hour)
  3362. draw_number(@timer_cw * 4,0,0) if @min < 10
  3363. draw_number(@timer_cw * 5,0,@min)
  3364. end
  3365.  
  3366. #--------------------------------------------------------------------------
  3367. # ● Draw Number
  3368. #--------------------------------------------------------------------------
  3369. def draw_number(x,y,value)
  3370. @number_text = value.abs.to_s.split(//)
  3371. plus_x = -@timer_cw * @number_text.size
  3372. for r in 0..@number_text.size - 1
  3373. @number_abs = @number_text[r].to_i
  3374. nsrc_rect = Rect.new(@timer_cw * @number_abs, 0, @timer_cw, @timer_ch)
  3375. @timer_sprite.bitmap.blt(plus_x + x + (@timer_cw * r), y, @timer_image, nsrc_rect)
  3376. end
  3377. end
  3378.  
  3379. #--------------------------------------------------------------------------
  3380. # ● update
  3381. #--------------------------------------------------------------------------
  3382. def update_timer
  3383. time = $game_system.playtime
  3384. @hour = time / 60 / 60
  3385. @min = time / 60 % 60
  3386. @sec = time % 60
  3387. end
  3388.  
  3389. #--------------------------------------------------------------------------
  3390. # ● Refresh Gold
  3391. #--------------------------------------------------------------------------
  3392. def refresh_gold
  3393. @gold = $game_party.gold
  3394. @gold_sprite.bitmap.clear
  3395. value_text = @gold.abs.to_s.split(//)
  3396. index = 0
  3397. for i in 0..value_text.size - 1
  3398. value_abs = value_text[i].to_i
  3399. nsrc_rect = Rect.new(@gold_cw * value_abs, 0, @gold_cw, @gold_ch)
  3400. @gold_sprite.bitmap.blt(@gold_cw * i, 0, @gold_image, nsrc_rect)
  3401. index += 1
  3402. end
  3403. ey = (index * @gold_cw)
  3404. @gold_sprite.x = GOLD_NUMBER_POS[0] - ey
  3405. end
  3406.  
  3407. #--------------------------------------------------------------------------
  3408. # ● Update Actor Parameter
  3409. #--------------------------------------------------------------------------
  3410. def update_actor_parameter
  3411. return if @actor_par == nil
  3412. @actor_par.each {|sprite| sprite.update }
  3413. end
  3414.  
  3415. #--------------------------------------------------------------------------
  3416. # ● Update Actor Sprites
  3417. #--------------------------------------------------------------------------
  3418. def update_actor_sprites
  3419. return if @actor_pictures == nil
  3420. @actor_pictures.each {|sprite| sprite.update_picture }
  3421. end
  3422.  
  3423. #--------------------------------------------------------------------------
  3424. # ● Update Members Face
  3425. #--------------------------------------------------------------------------
  3426. def update_members_face
  3427. return if @members == nil or @members == 0
  3428. if @members_index > 4
  3429. ny = (5 * 64)
  3430. else
  3431. ny = 64 * @members_index
  3432. end
  3433. @members.each {|sprite| sprite.update_command(@members_index, ny) }
  3434. @members_layout.update
  3435. if @members_windows_active
  3436. if @members_viewport.ox < 0
  3437. @members_viewport.ox += 25
  3438. end
  3439. else
  3440. if @members_viewport.ox > -544
  3441. @members_viewport.ox -= 25
  3442. end
  3443. end
  3444. @members_layout.nx(@members_viewport.ox)
  3445. end
  3446.  
  3447. end
  3448.  
  3449. #==============================================================================
  3450. # ■ Scene_Menu
  3451. #==============================================================================
  3452. class Scene_Menu
  3453.  
  3454. #--------------------------------------------------------------------------
  3455. # ● Update
  3456. #--------------------------------------------------------------------------
  3457. def update
  3458. update_timer
  3459. update_sprites
  3460. update_command
  3461. @members_windows_active = @phase == 100 ? true : false
  3462. end
  3463.  
  3464. end
  3465.  
  3466. #==============================================================================
  3467. # ■ Scene_Menu
  3468. #==============================================================================
  3469. class Scene_Menu
  3470.  
  3471. #--------------------------------------------------------------------------
  3472. # ● Update Command
  3473. #--------------------------------------------------------------------------
  3474. def update_command
  3475. case @phase
  3476. when 0; update_main_command
  3477. when 100; update_select_members
  3478. end
  3479. end
  3480.  
  3481. #--------------------------------------------------------------------------
  3482. # ● Update Main Command
  3483. #--------------------------------------------------------------------------
  3484. def update_main_command
  3485. if Input.trigger?(:UP) or Input.trigger?(:LEFT)
  3486. move_command_index(-1)
  3487. elsif Input.trigger?(:DOWN) or Input.trigger?(:RIGHT)
  3488. move_command_index(1)
  3489. elsif Input.trigger?(:C)
  3490. execute_select
  3491. elsif Input.trigger?(:B)
  3492. return_to_map
  3493. end
  3494. end
  3495.  
  3496. #--------------------------------------------------------------------------
  3497. # ● Update Main Command
  3498. #--------------------------------------------------------------------------
  3499. def move_command_index(value)
  3500. Sound.play_cursor
  3501. @command_window.index += value
  3502. @command_window.index = 0 if @command_window.index >= @command_max
  3503. @command_window.index = (@command_max - 1) if @command_window.index < 0
  3504. end
  3505.  
  3506. #--------------------------------------------------------------------------
  3507. # ● Execute Select
  3508. #--------------------------------------------------------------------------
  3509. def execute_select
  3510. @phase = @command_window.index
  3511. $game_temp.menu_index = @phase
  3512. Sound.play_ok
  3513. $game_temp.pre_symbol = @command_window.current_symbol
  3514. @command_window.call_handler(@command_window.current_symbol)
  3515. end
  3516.  
  3517. #--------------------------------------------------------------------------
  3518. # ● Update Select Members
  3519. #--------------------------------------------------------------------------
  3520. def update_select_members
  3521. if $game_party.members.size == 0
  3522. execute_cancel
  3523. return
  3524. end
  3525. if Input.trigger?(:LEFT)
  3526. move_members_index(-1)
  3527. elsif Input.trigger?(:RIGHT)
  3528. move_members_index(1)
  3529. elsif Input.trigger?(:C)
  3530. execute_select_members
  3531. elsif Input.trigger?(:B)
  3532. execute_cancel
  3533. end
  3534. end
  3535.  
  3536. #--------------------------------------------------------------------------
  3537. # ● Execute Cancel
  3538. #--------------------------------------------------------------------------
  3539. def execute_cancel
  3540. Sound.play_cancel
  3541. @phase = 0
  3542. @members_index = 0
  3543. end
  3544.  
  3545. #--------------------------------------------------------------------------
  3546. # ● Move Members Index
  3547. #--------------------------------------------------------------------------
  3548. def move_members_index(value)
  3549. Sound.play_cursor
  3550. @members_index += value
  3551. @members_index = 0 if @members_index >= $game_party.members.size
  3552. @members_index = ($game_party.members.size - 1) if @members_index < 0
  3553. end
  3554.  
  3555. #--------------------------------------------------------------------------
  3556. # ● Command Formation
  3557. #--------------------------------------------------------------------------
  3558. def command_formation
  3559. SceneManager.call(Scene_Party)
  3560. end
  3561.  
  3562. #--------------------------------------------------------------------------
  3563. # ● Can Access Scene
  3564. #--------------------------------------------------------------------------
  3565. def can_access_scene?
  3566. if $game_party.members.size == 0
  3567. #Sound.play_buzzer
  3568. execute_cancel
  3569. return false
  3570. end
  3571. return true
  3572. end
  3573.  
  3574. #--------------------------------------------------------------------------
  3575. # ● Execute Select Members
  3576. #--------------------------------------------------------------------------
  3577. def execute_select_members
  3578. @phase = @command_window.index
  3579. $game_temp.menu_index = @phase
  3580. Sound.play_ok
  3581. on_personal_ok
  3582. end
  3583.  
  3584. #--------------------------------------------------------------------------
  3585. # ● ON Personal OK
  3586. #--------------------------------------------------------------------------
  3587. alias mog_monogatari_on_personal_ok on_personal_ok
  3588. def on_personal_ok
  3589. $game_temp.actor_menu_temp = $game_party.members[@members_index]
  3590. $game_party.menu_actor = $game_party.members[@members_index]
  3591. mog_monogatari_on_personal_ok
  3592. end
  3593.  
  3594. #--------------------------------------------------------------------------
  3595. # ● Return To Map
  3596. #--------------------------------------------------------------------------
  3597. def return_to_map
  3598. $game_temp.menu_index = 0
  3599. Sound.play_cancel
  3600. SceneManager.return
  3601. end
  3602.  
  3603. #--------------------------------------------------------------------------
  3604. # ● Command Personal
  3605. #--------------------------------------------------------------------------
  3606. def command_personal
  3607. @phase = 100
  3608. end
  3609.  
  3610. end
  3611.  
  3612. #==============================================================================
  3613. # ■ Game_Temp
  3614. #==============================================================================
  3615. class Game_Temp
  3616.  
  3617. #--------------------------------------------------------------------------
  3618. # ● Execute Pre Cache Item Menu
  3619. #--------------------------------------------------------------------------
  3620. def execute_pre_cache_item_menu
  3621. @pre_cache_item_menu = []
  3622. @pre_cache_item_menu.push(Cache.menu_item("Background"))
  3623. @pre_cache_item_menu.push(Cache.menu_item("Layout"))
  3624. end
  3625.  
  3626. end
  3627.  
  3628. #==============================================================================
  3629. # ■ Scene_Menu
  3630. #==============================================================================
  3631. class Scene_Item
  3632. include MOG_MENU_ITEM
  3633. include MOG_MENU_BASE
  3634.  
  3635. #--------------------------------------------------------------------------
  3636. # ● Main
  3637. #--------------------------------------------------------------------------
  3638. def main
  3639. execute_setup
  3640. execute_loop
  3641. execute_dispose
  3642. end
  3643.  
  3644. #--------------------------------------------------------------------------
  3645. # ● Execute Setup
  3646. #--------------------------------------------------------------------------
  3647. def execute_setup
  3648. @phase = 0
  3649. @command_index = 0
  3650. @actor = $game_party.members[0]
  3651. @wait_time = 0
  3652. create_sprites
  3653. end
  3654.  
  3655. #--------------------------------------------------------------------------
  3656. # ● Execute Lopp
  3657. #--------------------------------------------------------------------------
  3658. def execute_loop
  3659. Graphics.transition(10)
  3660. loop do
  3661. Input.update
  3662. update
  3663. Graphics.update
  3664. break if SceneManager.scene != self
  3665. end
  3666. end
  3667.  
  3668. end
  3669.  
  3670. #==============================================================================
  3671. # ■ Window_ItemList Z
  3672. #==============================================================================
  3673. class Window_ItemList_Z < Window_Selectable
  3674.  
  3675. #--------------------------------------------------------------------------
  3676. # ● Initialize
  3677. #--------------------------------------------------------------------------
  3678. def initialize(x, y, width, height)
  3679. super
  3680. @category = :none
  3681. @data = []
  3682. end
  3683.  
  3684. #--------------------------------------------------------------------------
  3685. # ● Category
  3686. #--------------------------------------------------------------------------
  3687. def category=(category)
  3688. return if @category == category
  3689. @category = category
  3690. self.oy = 0
  3691. end
  3692.  
  3693. #--------------------------------------------------------------------------
  3694. # ● Col Max
  3695. #--------------------------------------------------------------------------
  3696. def col_max
  3697. return 1
  3698. end
  3699. #--------------------------------------------------------------------------
  3700. # ● Item Max
  3701. #--------------------------------------------------------------------------
  3702. def item_max
  3703. @data ? @data.size : 1
  3704. end
  3705. #--------------------------------------------------------------------------
  3706. # ● Item
  3707. #--------------------------------------------------------------------------
  3708. def item
  3709. @data && index >= 0 ? @data[index] : nil
  3710. end
  3711.  
  3712. #--------------------------------------------------------------------------
  3713. # ● Current Item Enabled?
  3714. #--------------------------------------------------------------------------
  3715. def current_item_enabled?
  3716. enable?(@data[index])
  3717. end
  3718.  
  3719. #--------------------------------------------------------------------------
  3720. # ● Include?
  3721. #--------------------------------------------------------------------------
  3722. def include?(item)
  3723. case @category
  3724. when :item
  3725. item.is_a?(RPG::Item) && !item.key_item?
  3726. when :weapon
  3727. item.is_a?(RPG::Weapon)
  3728. when :armor
  3729. item.is_a?(RPG::Armor)
  3730. when :key_item
  3731. item.is_a?(RPG::Item) && item.key_item?
  3732. else
  3733. false
  3734. end
  3735. end
  3736.  
  3737. #--------------------------------------------------------------------------
  3738. # ● Enable?
  3739. #--------------------------------------------------------------------------
  3740. def enable?(item)
  3741. $game_party.usable?(item)
  3742. end
  3743.  
  3744. #--------------------------------------------------------------------------
  3745. # ● Make Item List
  3746. #--------------------------------------------------------------------------
  3747. def make_item_list
  3748. @data = $game_party.all_items.select {|item| include?(item) }
  3749. @data.push(nil) if include?(nil)
  3750. end
  3751.  
  3752. #--------------------------------------------------------------------------
  3753. # ● Select Last
  3754. #--------------------------------------------------------------------------
  3755. def select_last
  3756. select(@data.index($game_party.last_item.object) || 0)
  3757. end
  3758.  
  3759. #--------------------------------------------------------------------------
  3760. # ● Draw Item
  3761. #--------------------------------------------------------------------------
  3762. def draw_item(index)
  3763. item = @data[index]
  3764. if item
  3765. rect = item_rect(index)
  3766. rect.width -= 4
  3767. draw_item_name(item, rect.x, rect.y, enable?(item))
  3768. draw_item_number(rect, item)
  3769. end
  3770. end
  3771.  
  3772. #--------------------------------------------------------------------------
  3773. # ● Draw Item Number
  3774. #--------------------------------------------------------------------------
  3775. def draw_item_number(rect, item)
  3776. draw_text(rect, sprintf(":%2d", $game_party.item_number(item)), 2)
  3777. end
  3778.  
  3779. #--------------------------------------------------------------------------
  3780. # ● Update Help
  3781. #--------------------------------------------------------------------------
  3782. def update_help
  3783. @help_window.set_item(item)
  3784. end
  3785.  
  3786. #--------------------------------------------------------------------------
  3787. # ● Refresh
  3788. #--------------------------------------------------------------------------
  3789. def refresh
  3790. make_item_list
  3791. create_contents
  3792. draw_all_items
  3793. end
  3794.  
  3795. end
  3796.  
  3797. #==============================================================================
  3798. # ■ Window_ItemList Z
  3799. #==============================================================================
  3800. class Window_ItemList_Item_1 < Window_Selectable
  3801.  
  3802. #--------------------------------------------------------------------------
  3803. # ● Initialize
  3804. #--------------------------------------------------------------------------
  3805. def initialize(x, y, width, height)
  3806. super
  3807. @category = :none
  3808. @data = []
  3809. end
  3810.  
  3811. #--------------------------------------------------------------------------
  3812. # ● Category
  3813. #--------------------------------------------------------------------------
  3814. def category=(category)
  3815. return if @category == category
  3816. @category = category
  3817. self.oy = 0
  3818. end
  3819.  
  3820. #--------------------------------------------------------------------------
  3821. # ● Col Max
  3822. #--------------------------------------------------------------------------
  3823. def col_max
  3824. return 1
  3825. end
  3826. #--------------------------------------------------------------------------
  3827. # ● Item Max
  3828. #--------------------------------------------------------------------------
  3829. def item_max
  3830. @data ? @data.size : 1
  3831. end
  3832. #--------------------------------------------------------------------------
  3833. # ● Item
  3834. #--------------------------------------------------------------------------
  3835. def item
  3836. @data && index >= 0 ? @data[index] : nil
  3837. end
  3838.  
  3839. #--------------------------------------------------------------------------
  3840. # ● Current Item Enabled?
  3841. #--------------------------------------------------------------------------
  3842. def current_item_enabled?
  3843. enable?(@data[index])
  3844. end
  3845.  
  3846. #--------------------------------------------------------------------------
  3847. # ● Include?
  3848. #--------------------------------------------------------------------------
  3849. def include?(item)
  3850. case @category
  3851. when :item ; item.is_a?(RPG::Item) && !item.key_item?
  3852. else
  3853. false
  3854. end
  3855. end
  3856.  
  3857. #--------------------------------------------------------------------------
  3858. # ● Enable?
  3859. #--------------------------------------------------------------------------
  3860. def enable?(item)
  3861. $game_party.usable?(item)
  3862. end
  3863.  
  3864. #--------------------------------------------------------------------------
  3865. # ● Make Item List
  3866. #--------------------------------------------------------------------------
  3867. def make_item_list
  3868. @data = $game_party.all_items.select {|item| include?(item) }
  3869. @data.push(nil) if include?(nil)
  3870. end
  3871.  
  3872. #--------------------------------------------------------------------------
  3873. # ● Select Last
  3874. #--------------------------------------------------------------------------
  3875. def select_last
  3876. select(@data.index($game_party.last_item.object) || 0)
  3877. end
  3878.  
  3879. #--------------------------------------------------------------------------
  3880. # ● Draw Item
  3881. #--------------------------------------------------------------------------
  3882. def draw_item(index)
  3883. item = @data[index]
  3884. if item
  3885. rect = item_rect(index)
  3886. rect.width -= 4
  3887. draw_item_number(rect, item)
  3888. end
  3889. end
  3890.  
  3891. #--------------------------------------------------------------------------
  3892. # ● Draw Item Number
  3893. #--------------------------------------------------------------------------
  3894. def draw_item_number(rect, item)
  3895. draw_text(rect, sprintf(":%2d", $game_party.item_number(item)), 2)
  3896. end
  3897.  
  3898. #--------------------------------------------------------------------------
  3899. # ● Update Help
  3900. #--------------------------------------------------------------------------
  3901. def update_help
  3902. @help_window.set_item(item)
  3903. end
  3904.  
  3905. #--------------------------------------------------------------------------
  3906. # ● Refresh
  3907. #--------------------------------------------------------------------------
  3908. def refresh
  3909. make_item_list
  3910. create_contents
  3911. draw_all_items
  3912. end
  3913.  
  3914. end
  3915.  
  3916. #==============================================================================
  3917. # ■ Window_ItemList Z
  3918. #==============================================================================
  3919. class Window_ItemList_Item_2 < Window_Selectable
  3920.  
  3921. #--------------------------------------------------------------------------
  3922. # ● Initialize
  3923. #--------------------------------------------------------------------------
  3924. def initialize(x, y, width, height)
  3925. super
  3926. @category = :none
  3927. @data = []
  3928. end
  3929.  
  3930. #--------------------------------------------------------------------------
  3931. # ● Category
  3932. #--------------------------------------------------------------------------
  3933. def category=(category)
  3934. return if @category == category
  3935. @category = category
  3936. self.oy = 0
  3937. end
  3938.  
  3939. #--------------------------------------------------------------------------
  3940. # ● Col Max
  3941. #--------------------------------------------------------------------------
  3942. def col_max
  3943. return 1
  3944. end
  3945. #--------------------------------------------------------------------------
  3946. # ● Item Max
  3947. #--------------------------------------------------------------------------
  3948. def item_max
  3949. @data ? @data.size : 1
  3950. end
  3951. #--------------------------------------------------------------------------
  3952. # ● Item
  3953. #--------------------------------------------------------------------------
  3954. def item
  3955. @data && index >= 0 ? @data[index] : nil
  3956. end
  3957.  
  3958. #--------------------------------------------------------------------------
  3959. # ● Current Item Enabled?
  3960. #--------------------------------------------------------------------------
  3961. def current_item_enabled?
  3962. enable?(@data[index])
  3963. end
  3964.  
  3965. #--------------------------------------------------------------------------
  3966. # ● Include?
  3967. #--------------------------------------------------------------------------
  3968. def include?(item)
  3969. case @category
  3970. when :item ; item.is_a?(RPG::Item) && !item.key_item?
  3971. else
  3972. false
  3973. end
  3974. end
  3975.  
  3976. #--------------------------------------------------------------------------
  3977. # ● Enable?
  3978. #--------------------------------------------------------------------------
  3979. def enable?(item)
  3980. $game_party.usable?(item)
  3981. end
  3982.  
  3983. #--------------------------------------------------------------------------
  3984. # ● Make Item List
  3985. #--------------------------------------------------------------------------
  3986. def make_item_list
  3987. @data = $game_party.all_items.select {|item| include?(item) }
  3988. @data.push(nil) if include?(nil)
  3989. end
  3990.  
  3991. #--------------------------------------------------------------------------
  3992. # ● Select Last
  3993. #--------------------------------------------------------------------------
  3994. def select_last
  3995. select(@data.index($game_party.last_item.object) || 0)
  3996. end
  3997.  
  3998. #--------------------------------------------------------------------------
  3999. # ● Draw Item
  4000. #--------------------------------------------------------------------------
  4001. def draw_item(index)
  4002. item = @data[index]
  4003. if item
  4004. rect = item_rect(index)
  4005. rect.width -= 4
  4006. draw_item_name(item, rect.x, rect.y, enable?(item))
  4007. # draw_item_number(rect, item)
  4008. end
  4009. end
  4010.  
  4011. #--------------------------------------------------------------------------
  4012. # ● Draw Item Number
  4013. #--------------------------------------------------------------------------
  4014. def draw_item_number(rect, item)
  4015. draw_text(rect, sprintf(":%2d", $game_party.item_number(item)), 2)
  4016. end
  4017.  
  4018. #--------------------------------------------------------------------------
  4019. # ● Update Help
  4020. #--------------------------------------------------------------------------
  4021. def update_help
  4022. end
  4023.  
  4024. #--------------------------------------------------------------------------
  4025. # ● Refresh
  4026. #--------------------------------------------------------------------------
  4027. def refresh
  4028. make_item_list
  4029. create_contents
  4030. draw_all_items
  4031. end
  4032.  
  4033. end
  4034.  
  4035. #==============================================================================
  4036. # ■ Scene_Item
  4037. #==============================================================================
  4038. class Scene_Item
  4039.  
  4040. #--------------------------------------------------------------------------
  4041. # ● Create Sprites
  4042. #--------------------------------------------------------------------------
  4043. def create_sprites
  4044. create_menu_background
  4045. create_layout
  4046. create_particles
  4047. create_command
  4048. create_button
  4049. create_help_window
  4050. create_item_window
  4051. create_weapon_window
  4052. create_armor_window
  4053. create_key_window
  4054. create_actor_window
  4055. set_initial_visible
  4056. end
  4057.  
  4058. #--------------------------------------------------------------------------
  4059. # ● Create Actor Window
  4060. #--------------------------------------------------------------------------
  4061. def create_actor_window
  4062. @actor_window = Members_Windows_Status.new
  4063. @actor_window.set_handler(:ok, method(:on_actor_ok))
  4064. @actor_window.set_handler(:cancel, method(:on_actor_cancel))
  4065. @actor_window.opacity = 0
  4066. @actor_window.x = -10
  4067. @actor_window.y = 36
  4068. @actor_window_slide_range = [@actor_window.x, -@actor_window.width]
  4069. @actor_window.x = @actor_window_slide_range[1]
  4070. @actor_window.visible = true
  4071. @actor_window_index_old = @actor_window.index
  4072. create_members_window
  4073. create_actor_status
  4074. update_active_window
  4075. update_command_sprites
  4076. end
  4077.  
  4078. #--------------------------------------------------------------------------
  4079. # ● Create Members Window
  4080. #--------------------------------------------------------------------------
  4081. def create_members_window
  4082. index = 0
  4083. @members_status = []
  4084. for actor in $game_party.members
  4085. @members_status.push(Members_Menu.new(actor,index))
  4086. index += 1
  4087. end
  4088. end
  4089.  
  4090. #--------------------------------------------------------------------------
  4091. # ● Create Actor Status
  4092. #--------------------------------------------------------------------------
  4093. def create_actor_status
  4094. @actor_status = Actor_Menu_Status.new(@actor)
  4095. end
  4096.  
  4097. #--------------------------------------------------------------------------
  4098. # ● Create Item Window
  4099. #--------------------------------------------------------------------------
  4100. def create_item_window
  4101. @item_window = Window_ItemList_Item_1.new(162,92,225,270)
  4102. @item_window.help_window = @help_window
  4103. @item_window.set_handler(:ok, method(:on_item_ok))
  4104. @item_window.set_handler(:cancel, method(:on_item_cancel))
  4105. @item_window.category = :item
  4106. @item_window.active = true
  4107. @item_window.refresh
  4108. @item_window.index = 0
  4109. @item_window.opacity = 0
  4110. @item_window_2 = Window_ItemList_Item_2.new(162,92,225,270)
  4111. @item_window_2.help_window = @help_window
  4112. @item_window_2.set_handler(:ok, method(:on_item_ok))
  4113. @item_window_2.set_handler(:cancel, method(:on_item_cancel))
  4114. @item_window_2.category = :item
  4115. @item_window_2.active = true
  4116. @item_window_2.refresh
  4117. @item_window_2.index = 0
  4118. @item_window_2.opacity = 0
  4119. end
  4120.  
  4121. #--------------------------------------------------------------------------
  4122. # ● Create Weapon Window
  4123. #--------------------------------------------------------------------------
  4124. def create_weapon_window
  4125. @weapon_window = Window_ItemList_Z.new(162,92,225,270)
  4126. @weapon_window.help_window = @help_window
  4127. @weapon_window.set_handler(:ok, method(:on_item_ok))
  4128. @weapon_window.set_handler(:cancel, method(:on_item_cancel))
  4129. @weapon_window.category = :weapon
  4130. @weapon_window.active = true
  4131. @weapon_window.refresh
  4132. @weapon_window.index = 0
  4133. @weapon_window.opacity = 0
  4134. end
  4135.  
  4136. #--------------------------------------------------------------------------
  4137. # ● Create Armor Window
  4138. #--------------------------------------------------------------------------
  4139. def create_armor_window
  4140. @armor_window = Window_ItemList_Z.new(162,92,225,270)
  4141. @armor_window.help_window = @help_window
  4142. @armor_window.set_handler(:ok, method(:on_item_ok))
  4143. @armor_window.set_handler(:cancel, method(:on_item_cancel))
  4144. @armor_window.category = :armor
  4145. @armor_window.active = true
  4146. @armor_window.refresh
  4147. @armor_window.index = 0
  4148. @armor_window.opacity = 0
  4149. end
  4150.  
  4151. #--------------------------------------------------------------------------
  4152. # ● Create Key Window
  4153. #--------------------------------------------------------------------------
  4154. def create_key_window
  4155. @key_window = Window_ItemList_Z.new(162,92,225,270)
  4156. @key_window.help_window = @help_window
  4157. @key_window.set_handler(:ok, method(:on_item_ok))
  4158. @key_window.set_handler(:cancel, method(:on_item_cancel))
  4159. @key_window.category = :key_item
  4160. @key_window.active = true
  4161. @key_window.refresh
  4162. @key_window.index = 0
  4163. @key_window.opacity = 0
  4164. end
  4165.  
  4166. #--------------------------------------------------------------------------
  4167. # ● Create Help Window
  4168. #--------------------------------------------------------------------------
  4169. def create_help_window
  4170. @help_window = Window_Help.new
  4171. @help_window.x = 0
  4172. @help_window.y = Graphics.height - @help_window.height
  4173. @help_window.opacity = 0
  4174. end
  4175.  
  4176. #--------------------------------------------------------------------------
  4177. # ● Create Menu Background
  4178. #--------------------------------------------------------------------------
  4179. def create_menu_background
  4180. @background = Plane.new
  4181. @background.bitmap = $game_temp.pre_cache_item_menu[0]
  4182. @background.z = 0
  4183. @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  4184. end
  4185.  
  4186. #--------------------------------------------------------------------------
  4187. # ● Create Layout
  4188. #--------------------------------------------------------------------------
  4189. def create_layout
  4190. @layout = Sprite.new
  4191. @layout.bitmap = $game_temp.pre_cache_item_menu[1]
  4192. @layout.z = 3
  4193. end
  4194.  
  4195. #--------------------------------------------------------------------------
  4196. # ● Create Particles
  4197. #--------------------------------------------------------------------------
  4198. def create_particles
  4199. @particles_sprite =[]
  4200. for i in 0...NUMBER_OF_PARTICLES
  4201. @particles_sprite.push(Particles_Menu.new(nil))
  4202. end
  4203. end
  4204.  
  4205. #--------------------------------------------------------------------------
  4206. # ● Create Command
  4207. #--------------------------------------------------------------------------
  4208. def create_command
  4209. @command_sprites = []
  4210. index = 0
  4211. for i in 0...4
  4212. @command_sprites.push(Layout_Window_Sprite.new(nil, index) )
  4213. index += 1
  4214. end
  4215. end
  4216.  
  4217. #--------------------------------------------------------------------------
  4218. # ● Create Button
  4219. #--------------------------------------------------------------------------
  4220. def create_button
  4221. @button_sprites = []
  4222. index = 0
  4223. for i in 0...4
  4224. @button_sprites.push(Item_Button_Sprite.new(nil, index) )
  4225. index += 1
  4226. end
  4227. end
  4228.  
  4229. #--------------------------------------------------------------------------
  4230. # ● Set Initial Visible
  4231. #--------------------------------------------------------------------------
  4232. def set_initial_visible
  4233. @item_window.visible = false
  4234. @item_window_2.visible = false
  4235. @weapon_window.visible = false
  4236. @armor_window.visible = false
  4237. @key_window.visible = false
  4238. end
  4239.  
  4240. end
  4241.  
  4242. #==============================================================================
  4243. # ■ Layout Window Sprite
  4244. #==============================================================================
  4245. class Layout_Window_Sprite < Sprite
  4246. include MOG_MENU_ITEM
  4247. attr_accessor :index
  4248. attr_accessor :position
  4249.  
  4250. #--------------------------------------------------------------------------
  4251. # ● Initialize
  4252. #--------------------------------------------------------------------------
  4253. def initialize(viewport = nil,index)
  4254. super(viewport)
  4255. @index = index
  4256. self.bitmap = Cache.menu_item("Item_Window" + @index.to_s)
  4257. self.z = 10
  4258. @org_pos = [COMMAND_POSITION[0],COMMAND_POSITION[1]]
  4259. @slide_max = @org_pos[0] + 24
  4260. @center = (544 - self.bitmap.width) - (544 / 2) + (self.bitmap.width / 2)
  4261. @left = -self.bitmap.width
  4262. @right = 544
  4263. @position = 0
  4264. @direction = 0
  4265. @org_pos = [@left ,COMMAND_POSITION[1]]
  4266. self.x = @org_pos[0]
  4267. self.y = @org_pos[1]
  4268. self.visible = false if @index > 0
  4269. end
  4270.  
  4271. #--------------------------------------------------------------------------
  4272. # ● Dispose
  4273. #--------------------------------------------------------------------------
  4274. def dispose_sprite
  4275. self.bitmap.dispose
  4276. end
  4277.  
  4278. #--------------------------------------------------------------------------
  4279. # ● Update
  4280. #--------------------------------------------------------------------------
  4281. def update_command(index)
  4282. slide_speed = 30
  4283. if @index == index
  4284. if self.x < @center
  4285. self.x += slide_speed
  4286. self.x = @center if self.x >= @center
  4287. elsif self.x > @center
  4288. self.x -= slide_speed
  4289. self.x = @center if self.x <= @center
  4290. end
  4291. else
  4292. if @direction == -1
  4293. self.x -= slide_speed if self.x > @left
  4294. else
  4295. self.x += slide_speed if self.x < @right
  4296. end
  4297. end
  4298. end
  4299.  
  4300. #--------------------------------------------------------------------------
  4301. # ● New P
  4302. #--------------------------------------------------------------------------
  4303. def newp(index,direction)
  4304. now_command = index
  4305. if direction == -1
  4306. pre_command = index + 1
  4307. pre_command = 0 if pre_command > 3
  4308. else
  4309. pre_command = index - 1
  4310. pre_command = 3 if pre_command < 0
  4311. end
  4312. if index == @index
  4313. self.visible = true
  4314. self.x = @right if direction == -1
  4315. self.x = @left if direction == 1
  4316. elsif pre_command == @index
  4317. self.visible = true
  4318. else
  4319. self.visible = false
  4320. end
  4321. @direction = direction
  4322. end
  4323.  
  4324. end
  4325.  
  4326. #==============================================================================
  4327. # ■ Item Button Sprite
  4328. #==============================================================================
  4329. class Item_Button_Sprite < Sprite
  4330. include MOG_MENU_ITEM
  4331. attr_accessor :index
  4332.  
  4333. #--------------------------------------------------------------------------
  4334. # ● Initialize
  4335. #--------------------------------------------------------------------------
  4336. def initialize(viewport = nil,index)
  4337. super(viewport)
  4338. @index = index
  4339. self.bitmap = Cache.menu_item("Button" + @index.to_s)
  4340. self.z = 12
  4341. self.ox = self.bitmap.width / 2
  4342. self.oy = self.bitmap.height / 2
  4343. @org_pos = [(BUTTON_SPACE * @index) + BUTTON_POSITION[0],BUTTON_POSITION[1]]
  4344. @slide_max = @org_pos[1] + 24
  4345. @next_pos = [@org_pos[0],@org_pos[1]]
  4346. self.x = @org_pos[0]
  4347. self.y = @org_pos[1] - 128 - (128 * @index)
  4348. @zoom_duration = [0,0,false]
  4349. @active = false
  4350. end
  4351.  
  4352. #--------------------------------------------------------------------------
  4353. # ● Dispose
  4354. #--------------------------------------------------------------------------
  4355. def dispose_sprite
  4356. self.bitmap.dispose
  4357. end
  4358.  
  4359. #--------------------------------------------------------------------------
  4360. # ● Update
  4361. #--------------------------------------------------------------------------
  4362. def update_command(index)
  4363. if @index == index
  4364. # self.y += 2
  4365. # self.y = @slide_max if self.y > @slide_max
  4366. @next_pos[1] =@slide_max
  4367. self.opacity += 15
  4368. @active = true
  4369. else
  4370. # self.y -= 2
  4371. # self.y = @org_pos[1] if self.y < @org_pos[1]
  4372. @next_pos[1] = @org_pos[1]
  4373. self.opacity -= 15 if self.opacity > 160
  4374. @active = false
  4375. end
  4376. update_slide(1,self.y,@next_pos[1])
  4377. update_zoom
  4378. end
  4379.  
  4380.  
  4381. #--------------------------------------------------------------------------
  4382. # ● Update Slide
  4383. #--------------------------------------------------------------------------
  4384. def update_slide(type,cp,np)
  4385. sp = 3 + ((cp - np).abs / 10)
  4386. if cp > np
  4387. cp -= sp
  4388. cp = np if cp < np
  4389. elsif cp < np
  4390. cp += sp
  4391. cp = np if cp > np
  4392. end
  4393. self.x = cp if type == 0
  4394. self.y = cp if type == 1
  4395. end
  4396.  
  4397. #--------------------------------------------------------------------------
  4398. # ● Update Zoom
  4399. #--------------------------------------------------------------------------
  4400. def update_zoom
  4401. if @active
  4402. if !@zoom_duration[2]
  4403. update_zoom_in
  4404. @zoom_duration = [0,0,true] if self.zoom_x == 1.00
  4405. else
  4406. update_zoom_effect
  4407. end
  4408. else
  4409. @zoom_duration[2] = false
  4410. update_zoom_in
  4411. end
  4412. end
  4413.  
  4414. #--------------------------------------------------------------------------
  4415. # ● Update Zoom Out
  4416. #--------------------------------------------------------------------------
  4417. def update_zoom_out
  4418. return if self.zoom_x == 1.00
  4419. self.zoom_x += 0.03
  4420. self.zoom_y += 0.03
  4421. if self.zoom_x >= 1.00
  4422. self.zoom_x = 1.00
  4423. self.zoom_y = 1.00
  4424. end
  4425. end
  4426.  
  4427. #--------------------------------------------------------------------------
  4428. # ● Update Zoom In
  4429. #--------------------------------------------------------------------------
  4430. def update_zoom_in
  4431. return if self.zoom_x == 1.00
  4432. self.zoom_x -= 0.03
  4433. self.zoom_y -= 0.03
  4434. if self.zoom_x <= 1.00
  4435. self.zoom_x = 1.00
  4436. self.zoom_y = 1.00
  4437. end
  4438. end
  4439.  
  4440. #--------------------------------------------------------------------------
  4441. # ● Update Zoom_effect
  4442. #--------------------------------------------------------------------------
  4443. def update_zoom_effect
  4444. @zoom_duration[0] += 1
  4445. return if @zoom_duration[0] < 1
  4446. @zoom_duration[0] = 0
  4447. @zoom_duration[1] += 1
  4448. case @zoom_duration[1]
  4449. when 1..30
  4450. self.zoom_x += 0.005
  4451. self.zoom_y += 0.005
  4452. when 31..60
  4453. self.zoom_x -= 0.005
  4454. self.zoom_y -= 0.005
  4455. when 61..999
  4456. @zoom_duration[1] = 0
  4457. self.zoom_x = 1.00
  4458. self.zoom_y = 1.00
  4459. end
  4460. end
  4461.  
  4462. end
  4463.  
  4464. #==============================================================================
  4465. # ■ Scene_Item
  4466. #==============================================================================
  4467. class Scene_Item
  4468.  
  4469. #--------------------------------------------------------------------------
  4470. # ● Execute Dispose
  4471. #--------------------------------------------------------------------------
  4472. def execute_dispose
  4473. Graphics.freeze
  4474. dispose_background
  4475. dispose_layout
  4476. dispose_particles
  4477. dispose_command_sprites
  4478. dispose_button_sprites
  4479. dispose_windows
  4480. dispose_members_status
  4481. end
  4482.  
  4483. #--------------------------------------------------------------------------
  4484. # ● Dispose Background
  4485. #--------------------------------------------------------------------------
  4486. def dispose_background
  4487. return if @background == nil
  4488. @background.dispose
  4489. @background = nil
  4490. end
  4491.  
  4492. #--------------------------------------------------------------------------
  4493. # ● Dispose Layout
  4494. #--------------------------------------------------------------------------
  4495. def dispose_layout
  4496. return if @layout == nil
  4497. @layout.dispose
  4498. @layout = nil
  4499. end
  4500.  
  4501. #--------------------------------------------------------------------------
  4502. # ● Dispose Particles
  4503. #--------------------------------------------------------------------------
  4504. def dispose_particles
  4505. return if @particles_sprite == nil
  4506. @particles_sprite.each {|sprite| sprite.dispose }
  4507. end
  4508.  
  4509. #--------------------------------------------------------------------------
  4510. # ● Dispose Command Sprites
  4511. #--------------------------------------------------------------------------
  4512. def dispose_command_sprites
  4513. return if @command_sprites == nil
  4514. @command_sprites.each {|sprite| sprite.dispose_sprite }
  4515. @command_sprites = nil
  4516. end
  4517.  
  4518. #--------------------------------------------------------------------------
  4519. # ● Dispose Button Sprites
  4520. #--------------------------------------------------------------------------
  4521. def dispose_button_sprites
  4522. return if @button_sprites == nil
  4523. @button_sprites.each {|sprite| sprite.dispose_sprite }
  4524. @button_sprites = nil
  4525. end
  4526.  
  4527. #--------------------------------------------------------------------------
  4528. # ● Dispose Members Status
  4529. #--------------------------------------------------------------------------
  4530. def dispose_members_status
  4531. return if @members_status == nil
  4532. @members_status.each {|sprite| sprite.dispose }
  4533. end
  4534.  
  4535. #--------------------------------------------------------------------------
  4536. # ● Dispose Winndows
  4537. #--------------------------------------------------------------------------
  4538. def dispose_windows
  4539. return if @item_window == nil
  4540. @item_window.dispose
  4541. @item_window_2.dispose
  4542. @weapon_window.dispose
  4543. @armor_window.dispose
  4544. @key_window.dispose
  4545. @actor_window.dispose
  4546. @actor_status.dispose
  4547. @help_window.dispose
  4548. end
  4549.  
  4550. end
  4551.  
  4552. #==============================================================================
  4553. # ■ Scene_Item
  4554. #==============================================================================
  4555. class Scene_Item
  4556.  
  4557. #--------------------------------------------------------------------------
  4558. # ● Update Sprites
  4559. #--------------------------------------------------------------------------
  4560. def update_sprites
  4561. update_background
  4562. update_particles
  4563. update_command_sprites
  4564. update_button_sprites
  4565. update_windows
  4566. update_members_status
  4567. end
  4568.  
  4569. #--------------------------------------------------------------------------
  4570. # ● Update Members Status
  4571. #--------------------------------------------------------------------------
  4572. def update_members_status
  4573. @members_status.each {|sprite| sprite.update(@actor_window.active,@actor_window.index) }
  4574. end
  4575.  
  4576. #--------------------------------------------------------------------------
  4577. # ● Update Background
  4578. #--------------------------------------------------------------------------
  4579. def update_background
  4580. return if @background == nil
  4581. @background.ox += @background_scroll[0]
  4582. @background.oy += @background_scroll[1]
  4583. end
  4584.  
  4585. #--------------------------------------------------------------------------
  4586. # ● Update Particles
  4587. #--------------------------------------------------------------------------
  4588. def update_particles
  4589. return if @particles_sprite == nil
  4590. @particles_sprite.each {|sprite| sprite.update }
  4591. end
  4592.  
  4593. #--------------------------------------------------------------------------
  4594. # ● Update Command Sprites
  4595. #--------------------------------------------------------------------------
  4596. def update_command_sprites
  4597. return if @command_sprites == nil
  4598. for i in @command_sprites
  4599. i.update_command(@command_index)
  4600. if i.index == 0
  4601. @item_window.x = i.x
  4602. @item_window.visible = i.visible
  4603. @item_window_2.x = i.x
  4604. @item_window_2.visible = i.visible
  4605. elsif i.index == 1
  4606. @weapon_window.x = i.x
  4607. @weapon_window.visible = i.visible
  4608. elsif i.index == 2
  4609. @armor_window.x = i.x
  4610. @armor_window.visible = i.visible
  4611. elsif i.index == 3
  4612. @key_window.x = i.x
  4613. @key_window.visible = i.visible
  4614. end
  4615. end
  4616. end
  4617.  
  4618. #--------------------------------------------------------------------------
  4619. # ● Update Button Sprites
  4620. #--------------------------------------------------------------------------
  4621. def update_button_sprites
  4622. return if @button_sprites == nil
  4623. @button_sprites.each {|sprite| sprite.update_command(@command_index) }
  4624. end
  4625.  
  4626. #--------------------------------------------------------------------------
  4627. # ● Update Winndow
  4628. #--------------------------------------------------------------------------
  4629. def update_windows
  4630. return if @item_window == nil
  4631. @item_window_2.index = @item_window.index
  4632. @item_window.update
  4633. @weapon_window.update
  4634. @armor_window.update
  4635. @key_window.update
  4636. @actor_window.update
  4637. update_actor_window_slide
  4638. update_actor_window2_slide
  4639. end
  4640.  
  4641. #--------------------------------------------------------------------------
  4642. # ● Update Actor Window Slide
  4643. #--------------------------------------------------------------------------
  4644. def update_actor_window_slide
  4645. if @actor_window.active
  4646. if @actor_window.x < @actor_window_slide_range[0]
  4647. @actor_window.x += 15
  4648. @actor_window.contents_opacity += 23
  4649. if @actor_window.x >= @actor_window_slide_range[0]
  4650. @actor_window.x = @actor_window_slide_range[0]
  4651. @actor_window.contents_opacity = 255
  4652. end
  4653. end
  4654. else
  4655. if @actor_window.x >= @actor_window_slide_range[1]
  4656. @actor_window.x -= 15
  4657. @actor_window.contents_opacity -= 3
  4658. if @actor_window.x <= @actor_window_slide_range[1]
  4659. @actor_window.x = @actor_window_slide_range[1]
  4660. @actor_window.contents_opacity = 0
  4661. end
  4662. end
  4663. end
  4664. end
  4665.  
  4666. #--------------------------------------------------------------------------
  4667. # ● Update Actor Window Slide
  4668. #--------------------------------------------------------------------------
  4669. def update_actor_window2_slide
  4670. @actor_status.update(@actor_window.active,@actor)
  4671. end
  4672.  
  4673. end
  4674.  
  4675. #==============================================================================
  4676. # ■ Scene_Item
  4677. #==============================================================================
  4678. class Scene_Item
  4679.  
  4680. #--------------------------------------------------------------------------
  4681. # ● Update
  4682. #--------------------------------------------------------------------------
  4683. def update
  4684. update_command
  4685. update_sprites
  4686. end
  4687.  
  4688. end
  4689.  
  4690. #==============================================================================
  4691. # ■ Scene_Item
  4692. #==============================================================================
  4693. class Scene_Item
  4694.  
  4695. #--------------------------------------------------------------------------
  4696. # ● Update Command
  4697. #--------------------------------------------------------------------------
  4698. def update_command
  4699. if @actor_window.active
  4700. update_target_select
  4701. else
  4702. update_main_command
  4703. update_active_window
  4704. end
  4705. end
  4706.  
  4707. #--------------------------------------------------------------------------
  4708. # ● Update Active Window
  4709. #--------------------------------------------------------------------------
  4710. def update_active_window
  4711. @item_window_2.active = false
  4712. if @command_index == 0
  4713. @item_window.active = true
  4714. @weapon_window.active = false
  4715. @armor_window.active = false
  4716. @key_window.active = false
  4717. elsif @command_index == 1
  4718. @item_window.active = false
  4719. @weapon_window.active = true
  4720. @armor_window.active = false
  4721. @key_window.active = false
  4722. elsif @command_index == 2
  4723. @item_window.active = false
  4724. @weapon_window.active = false
  4725. @armor_window.active = true
  4726. @key_window.active = false
  4727. elsif @command_index == 3
  4728. @item_window.active = false
  4729. @weapon_window.active = false
  4730. @armor_window.active = false
  4731. @key_window.active = true
  4732. end
  4733. end
  4734.  
  4735. #--------------------------------------------------------------------------
  4736. # ● Update Main Command
  4737. #--------------------------------------------------------------------------
  4738. def update_main_command
  4739. @wait_time -= 1 if @wait_time > 0
  4740. if Input.trigger?(:LEFT)
  4741. move_command_index(-1)
  4742. elsif Input.trigger?(:RIGHT)
  4743. move_command_index(1)
  4744. elsif Input.trigger?(:B)
  4745. return_scene
  4746. end
  4747. end
  4748.  
  4749. #--------------------------------------------------------------------------
  4750. # ● Return Scene
  4751. #--------------------------------------------------------------------------
  4752. def return_scene
  4753. Sound.play_cancel
  4754. SceneManager.return
  4755. end
  4756.  
  4757. #--------------------------------------------------------------------------
  4758. # ● Cancel_Selection
  4759. #--------------------------------------------------------------------------
  4760. def cancel_selection
  4761. Sound.play_cancel
  4762. @phase = 0
  4763. end
  4764.  
  4765. #--------------------------------------------------------------------------
  4766. # ● Update Main Command
  4767. #--------------------------------------------------------------------------
  4768. def move_command_index(value)
  4769. return if @wait_time > 0
  4770. @wait_time = 7
  4771. pre_index = @command_index
  4772. @command_index += value
  4773. @command_index = 0 if @command_index > 3
  4774. @command_index = 3 if @command_index < 0
  4775. for i in @command_sprites
  4776. i.newp(@command_index,value)
  4777. end
  4778. Sound.play_cursor
  4779. end
  4780.  
  4781. #--------------------------------------------------------------------------
  4782. # ● ON Category OK
  4783. #--------------------------------------------------------------------------
  4784. def on_category_ok
  4785. if @command_index == 0
  4786. @item_window.activate
  4787. @item_window.select_last
  4788. elsif @command_index == 1
  4789. @weapon_window.activate
  4790. @weapon_window.select_last
  4791. elsif @command_index == 2
  4792. @armor_window.activate
  4793. @armor_window.select_last
  4794. elsif @command_index == 3
  4795. @key_window.activate
  4796. @key_window.select_last
  4797. end
  4798. refresh_actor_status
  4799. end
  4800.  
  4801. #--------------------------------------------------------------------------
  4802. # ● ON Item OK
  4803. #--------------------------------------------------------------------------
  4804. def on_item_ok
  4805. $game_party.last_item.object = item
  4806. determine_item
  4807. end
  4808.  
  4809. #--------------------------------------------------------------------------
  4810. # ● ON Item Cancel
  4811. #--------------------------------------------------------------------------
  4812. def on_item_cancel
  4813. @item_window.unselect
  4814. end
  4815.  
  4816. #--------------------------------------------------------------------------
  4817. # ● Play SE For Item
  4818. #--------------------------------------------------------------------------
  4819. def play_se_for_item
  4820. Sound.play_use_item
  4821. end
  4822.  
  4823. #--------------------------------------------------------------------------
  4824. # ● Item
  4825. #--------------------------------------------------------------------------
  4826. def item
  4827. if @command_index == 0
  4828. @item_window.item
  4829. elsif @command_index == 1
  4830. @weapon_window.item
  4831. elsif @command_index == 2
  4832. @armor_window.item
  4833. elsif @command_index == 3
  4834. @key_window.item
  4835. end
  4836. end
  4837.  
  4838. #--------------------------------------------------------------------------
  4839. # ● User
  4840. #--------------------------------------------------------------------------
  4841. def user
  4842. $game_party.movable_members.max_by {|member| member.pha }
  4843. end
  4844.  
  4845. #--------------------------------------------------------------------------
  4846. # ● Cursor Left
  4847. #--------------------------------------------------------------------------
  4848. def cursor_left?
  4849. @item_window.index % 2 == 0
  4850. end
  4851.  
  4852. #--------------------------------------------------------------------------
  4853. # ● Show Sub Window
  4854. #--------------------------------------------------------------------------
  4855. def show_sub_window(window)
  4856. window.show.activate
  4857. end
  4858.  
  4859. #--------------------------------------------------------------------------
  4860. # ● Hide Sub Window
  4861. #--------------------------------------------------------------------------
  4862. def hide_sub_window(window)
  4863. window.deactivate
  4864. activate_item_window
  4865. end
  4866.  
  4867. #--------------------------------------------------------------------------
  4868. # ● ON Actor OK
  4869. #--------------------------------------------------------------------------
  4870. def on_actor_ok
  4871. if item_usable?
  4872. use_item
  4873. refresh_window
  4874. else
  4875. Sound.play_buzzer
  4876. end
  4877. end
  4878.  
  4879. #--------------------------------------------------------------------------
  4880. # ● Refresh Window
  4881. #--------------------------------------------------------------------------
  4882. def refresh_window
  4883. if @command_index == 0
  4884. old_item = @item_window.item
  4885. @item_window.refresh
  4886. # set_actor_for_members_menu
  4887. if @item_window.item == nil
  4888. @item_window.index -= 1
  4889. @item_window.index = 0 if @item_window.index < 0
  4890. @item_window.update
  4891. end
  4892. if old_item != @item_window.item
  4893. on_actor_cancel
  4894. cancel_selection
  4895. @item_window_2.refresh
  4896. @item_window.update_help
  4897. end
  4898. elsif @command_index == 1
  4899. @weapon_window.refresh
  4900. elsif @command_index == 2
  4901. @armor_window.refresh
  4902. elsif @command_index == 3
  4903. @key_window.refresh
  4904. end
  4905. end
  4906.  
  4907. #--------------------------------------------------------------------------
  4908. # ● Set Actor for Members Menu
  4909. #--------------------------------------------------------------------------
  4910. def set_actor_for_members_menu
  4911. index = 0
  4912. for actor in $game_party.members
  4913. @members_status[index].set_actor(actor)
  4914. index += 1
  4915. end
  4916. end
  4917.  
  4918. #--------------------------------------------------------------------------
  4919. # ● ON Actor Cancel
  4920. #--------------------------------------------------------------------------
  4921. def on_actor_cancel
  4922. hide_sub_window(@actor_window)
  4923. end
  4924.  
  4925. #--------------------------------------------------------------------------
  4926. # ● Determine Item
  4927. #--------------------------------------------------------------------------
  4928. def determine_item
  4929. if item.for_friend?
  4930. show_sub_window(@actor_window)
  4931. @actor_window.select_for_item(item)
  4932. $game_temp.item_scope = @item_window.item.scope rescue nil
  4933. else
  4934. use_item
  4935. activate_item_window
  4936. end
  4937. end
  4938.  
  4939. #--------------------------------------------------------------------------
  4940. # ● Activate Item Window
  4941. #--------------------------------------------------------------------------
  4942. def activate_item_window
  4943. if @command_index == 0
  4944. @item_window.refresh
  4945. @item_window.activate
  4946. elsif @command_index == 1
  4947. @weapon_window.refresh
  4948. @weapon_window.activate
  4949. elsif @command_index == 2
  4950. @armor_window.refresh
  4951. @armor_window.activate
  4952. elsif @command_index == 3
  4953. @key_window.refresh
  4954. @key_window.activate
  4955. end
  4956. end
  4957.  
  4958. #--------------------------------------------------------------------------
  4959. # ● Item Target Actors
  4960. #--------------------------------------------------------------------------
  4961. def item_target_actors
  4962. if !item.for_friend?
  4963. []
  4964. elsif item.for_all?
  4965. $game_party.members
  4966. else
  4967. [$game_party.members[@actor_window.index]]
  4968. end
  4969. end
  4970.  
  4971. #--------------------------------------------------------------------------
  4972. # ● Item Usable?
  4973. #--------------------------------------------------------------------------
  4974. def item_usable?
  4975. user.usable?(item) && item_effects_valid?
  4976. end
  4977.  
  4978. #--------------------------------------------------------------------------
  4979. # ● Item Effects Valid?
  4980. #--------------------------------------------------------------------------
  4981. def item_effects_valid?
  4982. item_target_actors.any? do |target|
  4983. target.item_test(user, item)
  4984. end
  4985. end
  4986.  
  4987. #--------------------------------------------------------------------------
  4988. # ● Use Item to Actors
  4989. #--------------------------------------------------------------------------
  4990. def use_item_to_actors
  4991. item_target_actors.each do |target|
  4992. item.repeats.times { target.item_apply(user, item) }
  4993. end
  4994. end
  4995.  
  4996. #--------------------------------------------------------------------------
  4997. # ● Use Item
  4998. #--------------------------------------------------------------------------
  4999. def use_item
  5000. play_se_for_item
  5001. user.use_item(item)
  5002. use_item_to_actors
  5003. check_common_event
  5004. check_gameover
  5005. @actor_window.refresh
  5006. end
  5007.  
  5008. #--------------------------------------------------------------------------
  5009. # ● Check Common Event
  5010. #--------------------------------------------------------------------------
  5011. def check_common_event
  5012. SceneManager.goto(Scene_Map) if $game_temp.common_event_reserved?
  5013. end
  5014.  
  5015. #--------------------------------------------------------------------------
  5016. # ● Update Target Select
  5017. #--------------------------------------------------------------------------
  5018. def update_target_select
  5019. @actor = $game_party.members[@actor_window.index]
  5020. if Input.trigger?(:B)
  5021. cancel_selection
  5022. end
  5023. end
  5024.  
  5025. end
  5026.  
  5027.  
  5028. #==============================================================================
  5029. # ■ Game_Temp
  5030. #==============================================================================
  5031. class Game_Temp
  5032.  
  5033. #--------------------------------------------------------------------------
  5034. # ● Execute Pre Cache Skill Menu
  5035. #--------------------------------------------------------------------------
  5036. def execute_pre_cache_skill_menu
  5037. @pre_cache_skill_menu = []
  5038. @pre_cache_skill_menu.push(Cache.menu_skill("Background"))
  5039. @pre_cache_skill_menu.push(Cache.menu_skill("Layout"))
  5040. @pre_cache_skill_menu.push(Cache.menu_skill("Type_Layout"))
  5041. @pre_cache_skill_menu.push(Cache.menu_skill("List_Layout"))
  5042. @pre_cache_skill_menu.push(Cache.menu_skill("Actor_Layout"))
  5043.  
  5044. end
  5045.  
  5046. end
  5047.  
  5048. #==============================================================================
  5049. # ■ Scene_Skill
  5050. #==============================================================================
  5051. class Scene_Skill
  5052. include MOG_MENU_SKILL
  5053. include MOG_MENU_BASE
  5054.  
  5055. #--------------------------------------------------------------------------
  5056. # ● Main
  5057. #--------------------------------------------------------------------------
  5058. def main
  5059. execute_setup
  5060. execute_loop
  5061. execute_dispose
  5062. end
  5063.  
  5064. #--------------------------------------------------------------------------
  5065. # ● Execute Setup
  5066. #--------------------------------------------------------------------------
  5067. def execute_setup
  5068. @actor = $game_temp.actor_menu_temp
  5069. @index_max = (@actor.added_skill_types.size - 1)
  5070. @index_max = 0 if @index_max < 0
  5071. @phase = 0
  5072. @press_time = 0
  5073. @press_lag = 0
  5074. @scene_active = @actor.added_skill_types.size > 0 ? true : false
  5075. create_sprites
  5076. end
  5077.  
  5078. #--------------------------------------------------------------------------
  5079. # ● Execute Lopp
  5080. #--------------------------------------------------------------------------
  5081. def execute_loop
  5082. Graphics.transition(10)
  5083. loop do
  5084. Input.update
  5085. update
  5086. Graphics.update
  5087. break if SceneManager.scene != self
  5088. end
  5089. end
  5090.  
  5091. end
  5092.  
  5093. #==============================================================================
  5094. # ■ Actor Skill Status
  5095. #==============================================================================
  5096. class Actor_Skill_Status
  5097. include MOG_ACTOR_SKILL_STATUS
  5098.  
  5099. #--------------------------------------------------------------------------
  5100. # ● Initialize
  5101. #--------------------------------------------------------------------------
  5102. def initialize(actor)
  5103. @actor = actor
  5104. set_old_parameter
  5105. create_sprites
  5106. end
  5107.  
  5108. #--------------------------------------------------------------------------
  5109. # ● Create Sprites
  5110. #--------------------------------------------------------------------------
  5111. def create_sprites
  5112. @meter_image = $game_temp.pre_cache_actor_menu[6]
  5113. @meter_cw = @meter_image.width
  5114. @meter_ch = @meter_image.height / 2
  5115. @parameter_number = $game_temp.pre_cache_actor_menu[2]
  5116. @parameter_cw = @parameter_number.width / 10
  5117. @parameter_ch = @parameter_number.height
  5118. @opac = 0
  5119. create_layout
  5120. create_parameter
  5121. create_face
  5122. create_name
  5123. create_hp_meter
  5124. create_mp_meter
  5125. create_states
  5126. set_position(0,-@layout.bitmap.height - 48)
  5127. end
  5128.  
  5129. #--------------------------------------------------------------------------
  5130. # ● Set Old Parameter
  5131. #--------------------------------------------------------------------------
  5132. def set_old_parameter
  5133. @par = [] if @par == nil
  5134. @par.clear
  5135. @par = [@actor.hp,@actor.mhp,@actor.mp,@actor.mmp,@actor.level]
  5136. end
  5137.  
  5138. #--------------------------------------------------------------------------
  5139. # ● Dispose
  5140. #--------------------------------------------------------------------------
  5141. def dispose
  5142. dispose_layout
  5143. dispose_parameter
  5144. dispose_face
  5145. dispose_name
  5146. dispose_hp_meter
  5147. dispose_mp_meter
  5148. dispose_states
  5149. end
  5150.  
  5151. #--------------------------------------------------------------------------
  5152. # ● Dispose Layout
  5153. #--------------------------------------------------------------------------
  5154. def dispose_layout
  5155. @layout.dispose
  5156. end
  5157.  
  5158. #--------------------------------------------------------------------------
  5159. # ● Dispose Parameter
  5160. #--------------------------------------------------------------------------
  5161. def dispose_parameter
  5162. @parameter.bitmap.dispose
  5163. @parameter.dispose
  5164. end
  5165.  
  5166. #--------------------------------------------------------------------------
  5167. # ● Dispose Face
  5168. #--------------------------------------------------------------------------
  5169. def dispose_face
  5170. @face.bitmap.dispose if @face.bitmap != nil
  5171. @face.dispose
  5172. end
  5173.  
  5174. #--------------------------------------------------------------------------
  5175. # ● Dispose HP Meter
  5176. #--------------------------------------------------------------------------
  5177. def dispose_hp_meter
  5178. @hp_meter.bitmap.dispose
  5179. @hp_meter.dispose
  5180. end
  5181.  
  5182. #--------------------------------------------------------------------------
  5183. # ● Dispose MP Meter
  5184. #--------------------------------------------------------------------------
  5185. def dispose_mp_meter
  5186. @mp_meter.bitmap.dispose
  5187. @mp_meter.dispose
  5188. end
  5189.  
  5190. #--------------------------------------------------------------------------
  5191. # ● Dispose Name
  5192. #--------------------------------------------------------------------------
  5193. def dispose_name
  5194. @name.bitmap.dispose
  5195. @name.dispose
  5196. end
  5197.  
  5198. #--------------------------------------------------------------------------
  5199. # ● Dispose States
  5200. #--------------------------------------------------------------------------
  5201. def dispose_states
  5202. return if @status == nil
  5203. @status.bitmap.dispose
  5204. @status.dispose
  5205. if @actor_status != nil
  5206. @actor_status.dispose
  5207. @actor_status = nil
  5208. end
  5209. end
  5210.  
  5211. #--------------------------------------------------------------------------
  5212. # ● Create Layout
  5213. #--------------------------------------------------------------------------
  5214. def create_layout
  5215. @layout = Sprite.new
  5216. @layout.bitmap = $game_temp.pre_cache_skill_menu[4]
  5217. @org_pos = [LAYOUT_POSITION[0],LAYOUT_POSITION[1]]
  5218. @layout.x = @org_pos[0]
  5219. @layout.y = @org_pos[1]
  5220. @layout.z = 10
  5221. #@layout.opacity = 0
  5222. end
  5223.  
  5224. #--------------------------------------------------------------------------
  5225. # ● Create Parameter
  5226. #--------------------------------------------------------------------------
  5227. def create_parameter
  5228. @parameter = Sprite.new
  5229. @parameter.bitmap = Bitmap.new(@layout.bitmap.width,@layout.bitmap.height)
  5230. @org_pos_par = [@org_pos[0] + PAR_POSITION[0],
  5231. @org_pos[1] + PAR_POSITION[1]]
  5232. @parameter.x = @org_pos_par[0]
  5233. @parameter.y = @org_pos_par[1]
  5234. @parameter.z = 12
  5235. # @parameter.opacity = 0
  5236. refresh_parameter
  5237. end
  5238.  
  5239. #--------------------------------------------------------------------------
  5240. # ● Create HP Meter
  5241. #--------------------------------------------------------------------------
  5242. def create_hp_meter
  5243. @hp_meter_old = [-1,-1]
  5244. @hp_meter = Sprite.new
  5245. @hp_meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
  5246. @org_pos_hp = [@org_pos[0] + HP_METER_POSITION[0],
  5247. @org_pos[1] + HP_METER_POSITION[1]]
  5248. @hp_meter.x = @org_pos_hp[0]
  5249. @hp_meter.y = @org_pos_hp[1]
  5250. @hp_meter.z = 11
  5251. end
  5252.  
  5253. #--------------------------------------------------------------------------
  5254. # ● Refresh HP Meter
  5255. #--------------------------------------------------------------------------
  5256. def refresh_hp_meter
  5257. @hp_meter_old[0] = @actor.hp
  5258. @hp_meter_old[1] = @actor.mhp
  5259. @hp_meter.bitmap.clear
  5260. width_range = @meter_cw * @actor.hp / @actor.mhp
  5261. m_rect = Rect.new(0,0,width_range,@meter_ch)
  5262. @hp_meter.bitmap.blt(0,0,@meter_image,m_rect)
  5263. end
  5264.  
  5265. #--------------------------------------------------------------------------
  5266. # ● Create MP Meter
  5267. #--------------------------------------------------------------------------
  5268. def create_mp_meter
  5269. @mp_meter_old = [-1,-1]
  5270. @mp_meter = Sprite.new
  5271. @mp_meter.bitmap = Bitmap.new(@meter_cw,@meter_ch)
  5272. @org_pos_mp = [@org_pos[0] + MP_METER_POSITION[0],
  5273. @org_pos[1] + MP_METER_POSITION[1]]
  5274. @mp_meter.x = @org_pos_mp[0]
  5275. @mp_meter.y = @org_pos_mp[1]
  5276. @mp_meter.z = 11
  5277. end
  5278.  
  5279. #--------------------------------------------------------------------------
  5280. # ● Create_States
  5281. #--------------------------------------------------------------------------
  5282. def create_states
  5283. @status_old = nil
  5284. @status_flow = [-24,0]
  5285. @status = Sprite.new
  5286. @status.bitmap = Bitmap.new(24,24)
  5287. @org_pos_states = [@org_pos[0] + STATES_POSITION[0],
  5288. @org_pos[1] + STATES_POSITION[1]]
  5289. @status.x = @org_pos_states[0] + 1
  5290. @status.y = @org_pos_states[1]
  5291. @status.z = 11
  5292. end
  5293.  
  5294. #--------------------------------------------------------------------------
  5295. # * Refresh States
  5296. #--------------------------------------------------------------------------
  5297. def refresh_states
  5298. check_icon_image
  5299. @status_old = @actor.states
  5300. @status_flow = [0,0]
  5301. @actor_status.dispose if @actor_status != nil
  5302. @states_size = @actor.states.size > 0 ? (26 * @actor.states.size) : 24
  5303. @actor_status = Bitmap.new(@states_size,24)
  5304. index = 0
  5305. for i in @actor.states
  5306. rect = Rect.new(i.icon_index % 16 * 24, i.icon_index / 16 * 24, 24, 24)
  5307. @actor_status.blt(26 * index , 0, @icon_image, rect)
  5308. index += 1
  5309. end
  5310. end
  5311.  
  5312. #--------------------------------------------------------------------------
  5313. # * Flow_Status
  5314. #--------------------------------------------------------------------------
  5315. def flow_states
  5316. return if @actor_status == nil
  5317. @status.bitmap.clear
  5318. return if @actor.states.size == 0
  5319. st_src_rect = Rect.new(@status_flow[0],0, 24,24)
  5320. @status.bitmap.blt(0,0, @actor_status, st_src_rect)
  5321. if STATES_SCROLLING_ANIMATION
  5322. @status_flow[0] += 1
  5323. @status_flow[0] = -24 if @status_flow[0] >= @states_size + 2
  5324. else
  5325. @status_flow[1] += 1 unless @actor.states.size <= 1
  5326. if @status_flow[1] > 30
  5327. @status_flow[1] = 0
  5328. @status_flow[0] += 26
  5329. @status_flow[0] = 0 if @status_flow[0] >= (@states_size - 0)
  5330. end
  5331. end
  5332. end
  5333.  
  5334. #--------------------------------------------------------------------------
  5335. # * Check Icon Image
  5336. #--------------------------------------------------------------------------
  5337. def check_icon_image
  5338. if @icon_image == nil or @icon_image.disposed?
  5339. @icon_image = Cache.system("Iconset")
  5340. end
  5341. end
  5342.  
  5343.  
  5344. #--------------------------------------------------------------------------
  5345. # ● Refresh MP Meter
  5346. #--------------------------------------------------------------------------
  5347. def refresh_mp_meter
  5348. @mp_meter_old[0] = @actor.mp
  5349. @mp_meter_old[1] = @actor.mmp
  5350. @mp_meter.bitmap.clear
  5351. width_range = @meter_cw * @actor.mp / @actor.mmp rescue nil
  5352. width_range = 0 if width_range == nil
  5353. m_rect = Rect.new(0,@meter_ch,width_range,@meter_ch)
  5354. @mp_meter.bitmap.blt(0,0,@meter_image,m_rect)
  5355. end
  5356.  
  5357. #--------------------------------------------------------------------------
  5358. # ● Create Face
  5359. #--------------------------------------------------------------------------
  5360. def refresh_parameter
  5361. set_old_parameter
  5362. @parameter.bitmap.clear
  5363.  
  5364. value = @actor.level
  5365. x = 112
  5366. y = 8
  5367. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  5368.  
  5369. value = @actor.hp
  5370. x = 218
  5371. y = 2
  5372. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  5373.  
  5374. value = @actor.mp
  5375. x = 238
  5376. y = 22
  5377. refresh_number(@parameter,@parameter_number,value,@parameter_cw,@parameter_ch,x,y)
  5378.  
  5379. end
  5380.  
  5381. #--------------------------------------------------------------------------
  5382. # ● Refresh Number
  5383. #--------------------------------------------------------------------------
  5384. def refresh_number(sprite,image,value,number_cw,number_ch,x,y)
  5385. number = value.abs.to_s.split(//)
  5386. x2 = -number_cw * number.size
  5387. for i in 0..number.size - 1
  5388. number_abs = number[i].to_i
  5389. nsrc_rect = Rect.new(number_cw * number_abs, 0, number_cw , number_ch)
  5390. sprite.bitmap.blt(x + x2 + (number_cw * i), y, image, nsrc_rect)
  5391. end
  5392.  
  5393. end
  5394.  
  5395. #--------------------------------------------------------------------------
  5396. # ● Create Face
  5397. #--------------------------------------------------------------------------
  5398. def create_face
  5399. @face = Sprite.new
  5400. @org_pos_face = [@org_pos[0] + FACE_POSITION[0],
  5401. @org_pos[1] + FACE_POSITION[1]]
  5402. @face.x = @org_pos_face[0]
  5403. @face.y = @org_pos_face[1]
  5404. @face.z = 11
  5405. # @face.opacity = 0
  5406. refresh_face
  5407. end
  5408.  
  5409. #--------------------------------------------------------------------------
  5410. # ● Refresh Face
  5411. #--------------------------------------------------------------------------
  5412. def refresh_face
  5413. face_name = "Face" + @actor.id.to_s
  5414. @face.bitmap = Cache.menu(face_name.to_s)
  5415. end
  5416.  
  5417. #--------------------------------------------------------------------------
  5418. # ● Create Name
  5419. #--------------------------------------------------------------------------
  5420. def create_name
  5421. @name = Sprite.new
  5422. @name.bitmap = Bitmap.new(140,32)
  5423. @name.bitmap.font.name = FONT_NAME
  5424. @name.bitmap.font.size = FONT_SIZE
  5425. @name.bitmap.font.bold = FONT_BOLD
  5426. @org_pos_name = [@org_pos[0] + NAME_POSITION[0],
  5427. @org_pos[1] + NAME_POSITION[1]]
  5428. @name.x = @org_pos_name[0]
  5429. @name.y = @org_pos_name[1]
  5430. @name.z = 11
  5431. #@name.opacity = 0
  5432. refresh_name
  5433. end
  5434.  
  5435. #--------------------------------------------------------------------------
  5436. # ● Refresh Name
  5437. #--------------------------------------------------------------------------
  5438. def refresh_name
  5439. @name.bitmap.clear
  5440. @name.bitmap.draw_text(0,0,140,32,@actor.name.to_s,0)
  5441. end
  5442.  
  5443. #--------------------------------------------------------------------------
  5444. # ● Set Actor
  5445. #--------------------------------------------------------------------------
  5446. def set_actor(actor)
  5447. @actor = actor
  5448. end
  5449.  
  5450. #--------------------------------------------------------------------------
  5451. # ● Can Refresh HP Meter
  5452. #--------------------------------------------------------------------------
  5453. def can_refresh_hp_meter?
  5454. return true if @hp_meter_old[0] != @actor.hp
  5455. return true if @hp_meter_old[1] != @actor.mhp
  5456. return false
  5457. end
  5458.  
  5459. #--------------------------------------------------------------------------
  5460. # ● Can Refresh MP Meter
  5461. #--------------------------------------------------------------------------
  5462. def can_refresh_mp_meter?
  5463. return true if @mp_meter_old[0] != @actor.mp
  5464. return true if @mp_meter_old[1] != @actor.mmp
  5465. return false
  5466. end
  5467.  
  5468. #--------------------------------------------------------------------------
  5469. # ● Can Refresh Parameter
  5470. #--------------------------------------------------------------------------
  5471. def can_refresh_parameter?
  5472. return true if @par[0] != @actor.hp
  5473. return true if @par[1] != @actor.mhp
  5474. return true if @par[2] != @actor.mp
  5475. return true if @par[3] != @actor.mmp
  5476. return false
  5477. end
  5478.  
  5479. #--------------------------------------------------------------------------
  5480. # ● Update Position
  5481. #--------------------------------------------------------------------------
  5482. def update_position
  5483. update_slide(0,@layout,@layout.x,@org_pos[0])
  5484. update_slide(1,@layout,@layout.y,@org_pos[1])
  5485. update_slide(0,@parameter,@parameter.x,@org_pos_par[0])
  5486. update_slide(1,@parameter,@parameter.y,@org_pos_par[1])
  5487. update_slide(0,@hp_meter,@hp_meter.x,@org_pos_hp[0])
  5488. update_slide(1,@hp_meter,@hp_meter.y,@org_pos_hp[1])
  5489. update_slide(0,@mp_meter,@mp_meter.x,@org_pos_mp[0])
  5490. update_slide(1,@mp_meter,@mp_meter.y,@org_pos_mp[1])
  5491. update_slide(0,@face,@face.x,@org_pos_face[0])
  5492. update_slide(1,@face,@face.y,@org_pos_face[1])
  5493. update_slide(0,@name,@name.x,@org_pos_name[0])
  5494. update_slide(1,@name,@name.y,@org_pos_name[1])
  5495. update_slide(0,@status,@status.x,@org_pos_states[0])
  5496. update_slide(1,@status,@status.y,@org_pos_states[1])
  5497. end
  5498.  
  5499. #--------------------------------------------------------------------------
  5500. # ● Update Slide
  5501. #--------------------------------------------------------------------------
  5502. def update_slide(type,sprite,cp,np)
  5503. sp = 3 + ((cp - np).abs / 10)
  5504. if cp > np
  5505. cp -= sp
  5506. cp = np if cp < np
  5507. elsif cp < np
  5508. cp += sp
  5509. cp = np if cp > np
  5510. end
  5511. sprite.x = cp if type == 0
  5512. sprite.y = cp if type == 1
  5513. end
  5514.  
  5515. #--------------------------------------------------------------------------
  5516. # ● Update Opacity
  5517. #--------------------------------------------------------------------------
  5518. def update_opacity
  5519. @opac += 10
  5520. @opac = 255 if @opac > 255
  5521. set_opacity(@opac)
  5522. end
  5523.  
  5524. #--------------------------------------------------------------------------
  5525. # ● Set Opacity
  5526. #--------------------------------------------------------------------------
  5527. def set_opacity(opac)
  5528. @layout.opacity = opac
  5529. @layout.opacity = opac
  5530. @parameter.opacity = opac
  5531. @parameter.opacity = opac
  5532. @hp_meter.opacity = opac
  5533. @hp_meter.opacity = opac
  5534. @mp_meter.opacity = opac
  5535. @mp_meter.opacity = opac
  5536. @face.opacity = opac
  5537. @face.opacity = opac
  5538. @name.opacity = opac
  5539. @name.opacity = opac
  5540. @status.opacity = opac
  5541. end
  5542.  
  5543. #--------------------------------------------------------------------------
  5544. # ● Update Position
  5545. #--------------------------------------------------------------------------
  5546. def set_position(pos_x,pos_y)
  5547. @layout.x = @org_pos[0] + pos_x
  5548. @layout.y = @org_pos[1] + pos_y
  5549. @parameter.x = @org_pos_par[0] + pos_x
  5550. @parameter.y = @org_pos_par[1] + pos_y
  5551. @hp_meter.x = @org_pos_hp[0] + pos_x
  5552. @hp_meter.y = @org_pos_hp[1] + pos_y
  5553. @mp_meter.x = @org_pos_mp[0] + pos_x
  5554. @mp_meter.y = @org_pos_mp[1] + pos_y
  5555. @face.x = @org_pos_face[0] + pos_x
  5556. @face.y = @org_pos_face[1] + pos_y
  5557. @name.x = @org_pos_name[0] + pos_x
  5558. @name.y = @org_pos_name[1] + pos_y
  5559. @status.x = @org_pos_states[0] + pos_x
  5560. @status.y = @org_pos_states[1] + pos_y
  5561. end
  5562.  
  5563. #--------------------------------------------------------------------------
  5564. # ● Update
  5565. #--------------------------------------------------------------------------
  5566. def update
  5567. refresh_hp_meter if can_refresh_hp_meter?
  5568. refresh_mp_meter if can_refresh_mp_meter?
  5569. refresh_parameter if can_refresh_parameter?
  5570. refresh_states if @status_old != @actor.states
  5571. update_opacity
  5572. update_position
  5573. flow_states
  5574. end
  5575.  
  5576. end
  5577.  
  5578. #==============================================================================
  5579. # ■ Window_SkillCommand
  5580. #==============================================================================
  5581. class Window_SkillCommand_2 < Window_Command
  5582.  
  5583. attr_reader :skill_window
  5584.  
  5585. #--------------------------------------------------------------------------
  5586. # ● Initialize
  5587. #--------------------------------------------------------------------------
  5588. def initialize(x, y)
  5589. super(x, y)
  5590. @actor = nil
  5591. @index_max = 0
  5592. end
  5593.  
  5594. #--------------------------------------------------------------------------
  5595. # ● Window Width
  5596. #--------------------------------------------------------------------------
  5597. def window_width
  5598. return 140
  5599. end
  5600.  
  5601. #--------------------------------------------------------------------------
  5602. # ● Actor
  5603. #--------------------------------------------------------------------------
  5604. def actor=(actor)
  5605. return if @actor == actor
  5606. @actor = actor
  5607. @index_max = (@actor.added_skill_types.size - 1)
  5608. @index_max = 0 if @index_max < 0
  5609. refresh
  5610. select_last
  5611. end
  5612.  
  5613. #--------------------------------------------------------------------------
  5614. # ● Visible Line Number
  5615. #--------------------------------------------------------------------------
  5616. def visible_line_number
  5617. return 4
  5618. end
  5619.  
  5620. #--------------------------------------------------------------------------
  5621. # ● Make Command List
  5622. #--------------------------------------------------------------------------
  5623. def make_command_list
  5624. return unless @actor
  5625. @actor.added_skill_types.sort.each do |stype_id|
  5626. name = $data_system.skill_types[stype_id]
  5627. add_command(name, :skill, true, stype_id)
  5628. end
  5629. end
  5630.  
  5631. #--------------------------------------------------------------------------
  5632. # ● Update
  5633. #--------------------------------------------------------------------------
  5634. def update
  5635. super
  5636. @skill_window.stype_id = current_ext if @skill_window
  5637. # update_index
  5638. end
  5639.  
  5640. #--------------------------------------------------------------------------
  5641. # ● Update
  5642. #--------------------------------------------------------------------------
  5643. def update_index
  5644. return if @index_max <= 0
  5645. if Input.trigger?(:RIGHT)
  5646. add_index(1)
  5647. elsif Input.trigger?(:LEFT)
  5648. add_index(-1)
  5649. end
  5650. end
  5651.  
  5652. #--------------------------------------------------------------------------
  5653. # ● Add Index
  5654. #--------------------------------------------------------------------------
  5655. def add_index(value)
  5656. Sound.play_cursor
  5657. @index += value
  5658. @index = 0 if @index > @index_max
  5659. @index = @index_max if @index < 0
  5660. end
  5661.  
  5662. #--------------------------------------------------------------------------
  5663. # ● Skill Window
  5664. #--------------------------------------------------------------------------
  5665. def skill_window=(skill_window)
  5666. @skill_window = skill_window
  5667. update
  5668. end
  5669.  
  5670. #--------------------------------------------------------------------------
  5671. # ● Select Last
  5672. #--------------------------------------------------------------------------
  5673. def select_last
  5674. skill = @actor.last_skill.object
  5675. if skill
  5676. select_ext(skill.stype_id)
  5677. else
  5678. select(0)
  5679. end
  5680. end
  5681.  
  5682. end
  5683.  
  5684. #==============================================================================
  5685. # ■ Window_SkillList
  5686. #==============================================================================
  5687. class Window_SkillList_Menu < Window_Selectable
  5688.  
  5689. attr_accessor :windows_index
  5690.  
  5691. #--------------------------------------------------------------------------
  5692. # ● Initialize
  5693. #--------------------------------------------------------------------------
  5694. def initialize(x, y, width, height)
  5695. super
  5696. @stype_id = 0
  5697. @data = []
  5698. @windows_index = 0
  5699. self.opacity = 0
  5700. @actor = nil
  5701. end
  5702.  
  5703. #--------------------------------------------------------------------------
  5704. # ● Actor
  5705. #--------------------------------------------------------------------------
  5706. def actor=(actor)
  5707. return if @actor == actor
  5708. @actor = actor
  5709. self.oy = 0
  5710. end
  5711.  
  5712. #--------------------------------------------------------------------------
  5713. # ● Setup
  5714. #--------------------------------------------------------------------------
  5715. def setup(actor,skill_type,index)
  5716. @actor = actor
  5717. @stype_id = skill_type
  5718. @windows_index = index
  5719. refresh
  5720. end
  5721.  
  5722. #--------------------------------------------------------------------------
  5723. # ● Stype ID
  5724. #--------------------------------------------------------------------------
  5725. def stype_id=(stype_id)
  5726. end
  5727.  
  5728. #--------------------------------------------------------------------------
  5729. # ● Col Max
  5730. #--------------------------------------------------------------------------
  5731. def col_max
  5732. return 1
  5733. end
  5734.  
  5735. #--------------------------------------------------------------------------
  5736. # ● Item Max
  5737. #--------------------------------------------------------------------------
  5738. def item_max
  5739. @data ? @data.size : 1
  5740. end
  5741.  
  5742. #--------------------------------------------------------------------------
  5743. # ● Item
  5744. #--------------------------------------------------------------------------
  5745. def item
  5746. @data && index >= 0 ? @data[index] : nil
  5747. end
  5748.  
  5749. #--------------------------------------------------------------------------
  5750. # ● Current Item Enabled
  5751. #--------------------------------------------------------------------------
  5752. def current_item_enabled?
  5753. enable?(@data[index])
  5754. end
  5755.  
  5756. #--------------------------------------------------------------------------
  5757. # ● Include
  5758. #--------------------------------------------------------------------------
  5759. def include?(item)
  5760. item && item.stype_id == @stype_id
  5761. end
  5762.  
  5763. #--------------------------------------------------------------------------
  5764. # ● Enable
  5765. #--------------------------------------------------------------------------
  5766. def enable?(item)
  5767. @actor && @actor.usable?(item)
  5768. end
  5769.  
  5770. #--------------------------------------------------------------------------
  5771. # ● Male Item List
  5772. #--------------------------------------------------------------------------
  5773. def make_item_list
  5774. @data = @actor ? @actor.skills.select {|skill| include?(skill) } : []
  5775. end
  5776.  
  5777. #--------------------------------------------------------------------------
  5778. # ● Select Last
  5779. #--------------------------------------------------------------------------
  5780. def select_last
  5781. select(@data.index(@actor.last_skill.object) || 0)
  5782. end
  5783.  
  5784. #--------------------------------------------------------------------------
  5785. # ● Draw Item
  5786. #--------------------------------------------------------------------------
  5787. def draw_item(index)
  5788. self.contents.font.size = 18
  5789. self.contents.font.bold = true
  5790. skill = @data[index]
  5791. if skill
  5792. rect = item_rect(index)
  5793. rect.width -= 4
  5794. draw_item_name(skill, rect.x, rect.y, enable?(skill),110)
  5795. draw_skill_cost(rect, skill)
  5796. end
  5797. end
  5798.  
  5799. #--------------------------------------------------------------------------
  5800. # ● Draw Skill Cost
  5801. #--------------------------------------------------------------------------
  5802. def draw_skill_cost(rect, skill)
  5803. if @actor.skill_tp_cost(skill) > 0
  5804. change_color(tp_cost_color, enable?(skill))
  5805. draw_text(rect, @actor.skill_tp_cost(skill), 2)
  5806. elsif @actor.skill_mp_cost(skill) > 0
  5807. change_color(mp_cost_color, enable?(skill))
  5808. draw_text(rect, @actor.skill_mp_cost(skill), 2)
  5809. end
  5810. end
  5811.  
  5812. #--------------------------------------------------------------------------
  5813. # ● Update Help
  5814. #--------------------------------------------------------------------------
  5815. def update_help
  5816. @help_window.set_item(item)
  5817. end
  5818.  
  5819. #--------------------------------------------------------------------------
  5820. # ● Refresh
  5821. #--------------------------------------------------------------------------
  5822. def refresh
  5823. make_item_list
  5824. create_contents
  5825. draw_all_items
  5826. end
  5827.  
  5828. end
  5829.  
  5830. #==============================================================================
  5831. # ■ Scene Skill
  5832. #==============================================================================
  5833. class Scene_Skill
  5834.  
  5835. #--------------------------------------------------------------------------
  5836. # ● Create Sprites
  5837. #--------------------------------------------------------------------------
  5838. def create_sprites
  5839. create_menu_background
  5840. create_layout
  5841. create_particles
  5842. create_actor_status
  5843. create_help_window
  5844. create_command_window
  5845. create_type_layout
  5846. create_item_window
  5847. create_list_layout
  5848. create_actor_window
  5849. create_type_name
  5850. @command_window.active = true
  5851. end
  5852.  
  5853. #--------------------------------------------------------------------------
  5854. # ● Create Menu Background
  5855. #--------------------------------------------------------------------------
  5856. def create_menu_background
  5857. @background = Plane.new
  5858. @background.bitmap = $game_temp.pre_cache_skill_menu[0]
  5859. @background.z = 0
  5860. @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  5861. end
  5862.  
  5863. #--------------------------------------------------------------------------
  5864. # ● Create Layout
  5865. #--------------------------------------------------------------------------
  5866. def create_layout
  5867. @layout = Sprite.new
  5868. @layout.bitmap = $game_temp.pre_cache_skill_menu[1]
  5869. @layout.z = 3
  5870. end
  5871.  
  5872. #--------------------------------------------------------------------------
  5873. # ● Create Particles
  5874. #--------------------------------------------------------------------------
  5875. def create_particles
  5876. @particles_sprite =[]
  5877. for i in 0...NUMBER_OF_PARTICLES
  5878. @particles_sprite.push(Particles_Menu.new(nil))
  5879. end
  5880. end
  5881.  
  5882. #--------------------------------------------------------------------------
  5883. # ● Create Actor Status
  5884. #--------------------------------------------------------------------------
  5885. def create_actor_status
  5886. @actor_skill_status = Actor_Skill_Status.new(@actor)
  5887. end
  5888.  
  5889. #--------------------------------------------------------------------------
  5890. # ● Create Help Window
  5891. #--------------------------------------------------------------------------
  5892. def create_help_window
  5893. @help_window = Window_Help.new
  5894. @help_window.x = 0
  5895. @help_window.y = Graphics.height - @help_window.height
  5896. @help_window.opacity = 0
  5897. end
  5898.  
  5899. #--------------------------------------------------------------------------
  5900. # ● Create Command Window
  5901. #--------------------------------------------------------------------------
  5902. def create_command_window
  5903. @command_window = Window_SkillCommand_2.new(0, 84)
  5904. @command_window.help_window = @help_window
  5905. @command_window.actor = @actor
  5906. @command_window.set_handler(:skill, method(:command_skill))
  5907. @command_window.set_handler(:pagedown, method(:next_actor))
  5908. @command_window.set_handler(:pageup, method(:prev_actor))
  5909. @command_window.active = false
  5910. @command_window.opacity = 0
  5911. @command_window.index = 0
  5912. @command_window.visible = @scene_active
  5913. @skill_list_slide_range = [@command_window.x, -(@command_window.x + @command_window.width)]
  5914. @command_window.x = @skill_list_slide_range[1] - 80
  5915. @command_window.opacity = 0
  5916. end
  5917.  
  5918. #--------------------------------------------------------------------------
  5919. # ● Create Type Layout
  5920. #--------------------------------------------------------------------------
  5921. def create_type_layout
  5922. @type_layout = Sprite.new
  5923. @type_layout.bitmap = $game_temp.pre_cache_skill_menu[2]
  5924. @type_layout.z = @command_window.z - 1
  5925. @type_layout.x = @command_window.x
  5926. @type_layout.y = @command_window.y - 30
  5927. @type_layout.opacity = 0
  5928. end
  5929.  
  5930. #--------------------------------------------------------------------------
  5931. # ● Create Item Window
  5932. #--------------------------------------------------------------------------
  5933. def create_item_window
  5934. @skill_window = []
  5935. index = 0
  5936. window_max = @actor.added_skill_types.size
  5937. window_max = 1 if window_max == 0
  5938. for item in 0...window_max
  5939. @skill_window.push(Window_SkillList_Menu.new(170,75,200,270))
  5940. @skill_window[index].setup(@actor,@actor.added_skill_types[index],index)
  5941. @skill_window[index].help_window = @help_window
  5942. @skill_window[index].set_handler(:ok, method(:on_item_ok))
  5943. @skill_window[index].set_handler(:cancel, method(:on_item_cancel))
  5944. @skill_window[index].active = false
  5945. @skill_window[index].index = -1
  5946. @skill_window[index].opacity = 0
  5947. @skill_window[index].contents_opacity = 0
  5948. @item_slide_range = [@skill_window[index].x, @skill_window[index].x + 50]
  5949. @skill_window[index].x = @item_slide_range[1]
  5950. index += 1
  5951. end
  5952. @item_pre_index = @skill_window[@command_window.index].index
  5953. @old_command_index = @skill_window[@command_window.index].index
  5954. end
  5955.  
  5956. #--------------------------------------------------------------------------
  5957. # ● Create List Layout
  5958. #--------------------------------------------------------------------------
  5959. def create_list_layout
  5960. @list_layout = Sprite.new
  5961. @list_layout.bitmap = $game_temp.pre_cache_skill_menu[3]
  5962. @list_layout.z = @skill_window[@command_window.index].z - 1
  5963. @list_layout.x = @item_slide_range[0] - 4
  5964. @list_layout.y = @skill_window[@command_window.index].y
  5965. @list_layout.opacity = 0
  5966. @list_layout_slide_range = [@list_layout.x,@list_layout.x + 50]
  5967. @list_layout.x = @list_layout_slide_range[1]
  5968. end
  5969.  
  5970. #--------------------------------------------------------------------------
  5971. # ● Create Actor Window
  5972. #--------------------------------------------------------------------------
  5973. def create_actor_window
  5974. @actor_window = Members_Windows_Status.new
  5975. @actor_window.set_handler(:ok, method(:on_actor_ok))
  5976. @actor_window.set_handler(:cancel, method(:on_actor_cancel))
  5977. @actor_window.opacity = 0
  5978. @actor_window.x = -10
  5979. @actor_window.y = 36
  5980. @actor_window_slide_range = [@actor_window.x, -@actor_window.width]
  5981. @actor_window.x = @actor_window_slide_range[1]
  5982. @actor_window.visible = true
  5983. @actor_window_index_old = @actor_window.index
  5984. create_members_window
  5985. update_active
  5986. end
  5987.  
  5988. #--------------------------------------------------------------------------
  5989. # ● Create Members Window
  5990. #--------------------------------------------------------------------------
  5991. def create_members_window
  5992. @actor_status = Actor_Menu_Status.new(@actor)
  5993. index = 0
  5994. @members_status = []
  5995. for actor in $game_party.members
  5996. @members_status.push(Members_Menu.new(actor,index))
  5997. index += 1
  5998. end
  5999. end
  6000.  
  6001. #--------------------------------------------------------------------------
  6002. # ● Create Type Name
  6003. #--------------------------------------------------------------------------
  6004. def create_type_name
  6005. @type_name = Sprite.new
  6006. @type_name.x = 260
  6007. @type_name.y = 60
  6008. @type_name.z = @list_layout.z + 2
  6009. @type_name.bitmap = Bitmap.new(100,32)
  6010. @type_name.bitmap.font.name = "Georgia"
  6011. @type_name.bitmap.font.size = 18
  6012. @type_name.bitmap.font.bold = true
  6013. @type_name.opacity = 0
  6014. refresh_type_name
  6015. end
  6016.  
  6017. #--------------------------------------------------------------------------
  6018. # ● Refresh Type Name
  6019. #--------------------------------------------------------------------------
  6020. def refresh_type_name
  6021. @type_name.bitmap.clear
  6022. return if !@scene_active
  6023. stype_id = @actor.added_skill_types[@command_window.index]
  6024. type_name = $data_system.skill_types[stype_id]
  6025. @type_name.bitmap.draw_text(0,0,100,32,type_name,2)
  6026. end
  6027.  
  6028. end
  6029.  
  6030. #==============================================================================
  6031. # ■ Scene_Skill
  6032. #==============================================================================
  6033. class Scene_Skill
  6034.  
  6035. #--------------------------------------------------------------------------
  6036. # ● Execute Dispose
  6037. #--------------------------------------------------------------------------
  6038. def execute_dispose
  6039. Graphics.freeze
  6040. dispose_background
  6041. dispose_layout
  6042. dispose_list_layout
  6043. dispose_particles
  6044. dispose_windows
  6045. dispose_members_status
  6046. dispose_type_name
  6047. end
  6048.  
  6049. #--------------------------------------------------------------------------
  6050. # ● Dispose Background
  6051. #--------------------------------------------------------------------------
  6052. def dispose_background
  6053. return if @background == nil
  6054. @background.dispose
  6055. @background = nil
  6056. end
  6057.  
  6058.  
  6059. #--------------------------------------------------------------------------
  6060. # ● Dispose Layout
  6061. #--------------------------------------------------------------------------
  6062. def dispose_layout
  6063. return if @layout == nil
  6064. @layout.dispose
  6065. @layout = nil
  6066. end
  6067.  
  6068. #--------------------------------------------------------------------------
  6069. # ● Dispose Particles
  6070. #--------------------------------------------------------------------------
  6071. def dispose_particles
  6072. return if @particles_sprite == nil
  6073. @particles_sprite.each {|sprite| sprite.dispose }
  6074. end
  6075.  
  6076. #--------------------------------------------------------------------------
  6077. # ● Dispose Window
  6078. #--------------------------------------------------------------------------
  6079. def dispose_windows
  6080. return if @command_window == nil
  6081. @skill_window.each {|sprite| sprite.dispose }
  6082. @command_window.dispose
  6083. @actor_window.dispose
  6084. @help_window.dispose
  6085. end
  6086.  
  6087. #--------------------------------------------------------------------------
  6088. # ● Dispose List Layout
  6089. #--------------------------------------------------------------------------
  6090. def dispose_list_layout
  6091. return if @list_layout == nil
  6092. @list_layout.dispose
  6093. @type_layout.dispose
  6094. @list_layout = nil
  6095. end
  6096.  
  6097. #--------------------------------------------------------------------------
  6098. # ● Dispose Members Status
  6099. #--------------------------------------------------------------------------
  6100. def dispose_members_status
  6101. return if @members_status == nil
  6102. @actor_status.dispose
  6103. @actor_skill_status.dispose
  6104. @members_status.each {|sprite| sprite.dispose }
  6105. end
  6106.  
  6107. #--------------------------------------------------------------------------
  6108. # ● Dispose Type Name
  6109. #--------------------------------------------------------------------------
  6110. def dispose_type_name
  6111. @type_name.bitmap.dispose
  6112. @type_name.dispose
  6113. end
  6114.  
  6115. end
  6116.  
  6117. #==============================================================================
  6118. # ■ Scene Skill
  6119. #==============================================================================
  6120. class Scene_Skill
  6121.  
  6122. #--------------------------------------------------------------------------
  6123. # ● Update Sprites
  6124. #--------------------------------------------------------------------------
  6125. def update_sprites
  6126. update_background
  6127. update_particles
  6128. update_actor_status
  6129. update_slide_item
  6130. update_members_status
  6131. update_windows
  6132. end
  6133.  
  6134. #--------------------------------------------------------------------------
  6135. # ● Update Background
  6136. #--------------------------------------------------------------------------
  6137. def update_background
  6138. return if @background == nil
  6139. @background.ox += @background_scroll[0]
  6140. @background.oy += @background_scroll[1]
  6141. end
  6142.  
  6143. #--------------------------------------------------------------------------
  6144. # ● Update Particles
  6145. #--------------------------------------------------------------------------
  6146. def update_particles
  6147. return if @particles_sprite == nil
  6148. @particles_sprite.each {|sprite| sprite.update }
  6149. end
  6150.  
  6151. #--------------------------------------------------------------------------
  6152. # ● Update Windows
  6153. #--------------------------------------------------------------------------
  6154. def update_windows
  6155. @press_lag -= 1 if @press_lag > 0
  6156. return if @command_window == nil
  6157. for skw in @skill_window
  6158. skw.update unless @press_lag > 0
  6159. if skw.windows_index == @command_window.index
  6160. skw.active = true
  6161. if @phase == 0
  6162. skw.index = 0 if skw.index < 0 or skw.index >= skw.item_max
  6163. end
  6164. skw.visible = true
  6165. else
  6166. skw.visible = false
  6167. skw.active = false
  6168. end
  6169. end
  6170. #@skill_window[@command_window.index].update
  6171. @command_window.update
  6172. @actor_window.update
  6173. update_actor_window_slide
  6174. update_skill_list_slide
  6175. end
  6176.  
  6177. #--------------------------------------------------------------------------
  6178. # ● Update Skill List Slide
  6179. #--------------------------------------------------------------------------
  6180. def update_skill_list_slide
  6181. return if @phase == 999
  6182. if @actor_window.active or !@command_window.active
  6183. if @command_window.x > @skill_list_slide_range[1]
  6184. @command_window.x -= 15
  6185. @command_window.x = @skill_list_slide_range[1] if @command_window.x < @skill_list_slide_range[1]
  6186. end
  6187. else
  6188. if @command_window.x < @skill_list_slide_range[0]
  6189. @command_window.x += 15
  6190. @command_window.x = @skill_list_slide_range[0] if @command_window.x > @skill_list_slide_range[0]
  6191. end
  6192. end
  6193. @type_layout.x = @command_window.x
  6194. end
  6195.  
  6196. #--------------------------------------------------------------------------
  6197. # ● Update Actor Window Slide
  6198. #--------------------------------------------------------------------------
  6199. def update_actor_window_slide
  6200. if @actor_window.active
  6201. if @actor_window.x < @actor_window_slide_range[0]
  6202. @actor_window.x += 15
  6203. @actor_window.contents_opacity += 23
  6204. if @actor_window.x >= @actor_window_slide_range[0]
  6205. @actor_window.x = @actor_window_slide_range[0]
  6206. @actor_window.contents_opacity = 255
  6207. end
  6208. end
  6209. else
  6210. if @actor_window.x >= @actor_window_slide_range[1]
  6211. @actor_window.x -= 15
  6212. @actor_window.contents_opacity -= 3
  6213. if @actor_window.x <= @actor_window_slide_range[1]
  6214. @actor_window.x = @actor_window_slide_range[1]
  6215. @actor_window.contents_opacity = 0
  6216. end
  6217. end
  6218. end
  6219. end
  6220.  
  6221. #--------------------------------------------------------------------------
  6222. # ● Update Actor Status
  6223. #--------------------------------------------------------------------------
  6224. def update_actor_status
  6225. refresh_actor_status(true) if @actor_window_index_old != @actor_window.index
  6226. end
  6227.  
  6228. #--------------------------------------------------------------------------
  6229. # ● Refresh Actor Status
  6230. #--------------------------------------------------------------------------
  6231. def refresh_actor_status(reset = false)
  6232. # @actor = $game_party.members[@actor_window.index]
  6233. # @actor_window_index_old = @actor_window.index
  6234. end
  6235.  
  6236. #--------------------------------------------------------------------------
  6237. # ● Update Slide Item
  6238. #--------------------------------------------------------------------------
  6239. def update_slide_item
  6240. if @phase == 0
  6241. @command_window.contents_opacity += 10
  6242. else
  6243. @command_window.contents_opacity -= 10 if @command_window.contents_opacity > 160
  6244. end
  6245. @type_layout.opacity = @command_window.contents_opacity
  6246. @type_name.opacity = @skill_window[@command_window.index].contents_opacity
  6247. if @phase == 1
  6248. @skill_window[@command_window.index].contents_opacity += 5
  6249. @list_layout.opacity += 5
  6250. else
  6251. @skill_window[@command_window.index].contents_opacity -= 10 if @skill_window[@command_window.index].contents_opacity > 165
  6252. @list_layout.opacity -= 10 if @list_layout.opacity > 160
  6253. end
  6254. if @skill_window[@command_window.index].x > @item_slide_range[0]
  6255. @skill_window[@command_window.index].x -= 3
  6256. @list_layout.x -= 3
  6257. if @skill_window[@command_window.index].x <= @item_slide_range[0]
  6258. @skill_window[@command_window.index].x = @item_slide_range[0]
  6259. @list_layout.x = @list_layout_slide_range[0]
  6260. end
  6261. end
  6262. end
  6263.  
  6264. #--------------------------------------------------------------------------
  6265. # ● Update Members Status
  6266. #--------------------------------------------------------------------------
  6267. def update_members_status
  6268. for members in @members_status
  6269. members.update(@actor_window.active,@actor_window.index)
  6270. @actor_2 = members.actor if members.current_actor
  6271. end
  6272. @actor_2 = @actor if @actor_2 == nil
  6273. @actor_skill_status.update
  6274. @actor_status.update(@actor_window.active,@actor_2)
  6275. #@members_status.each {|sprite| sprite.update(@actor_window.active,@actor_window.index) }
  6276. end
  6277.  
  6278. end
  6279.  
  6280. #==============================================================================
  6281. # ■ Scene_Skill
  6282. #==============================================================================
  6283. class Scene_Skill
  6284.  
  6285. #--------------------------------------------------------------------------
  6286. # ● Update
  6287. #--------------------------------------------------------------------------
  6288. def update
  6289. unless @skill_window[@command_window.index].index < 0
  6290. @item_pre_index = @skill_window[@command_window.index].index
  6291. end
  6292. update_command
  6293. update_sprites
  6294. end
  6295.  
  6296. #--------------------------------------------------------------------------
  6297. # ● Show Sub Window
  6298. #--------------------------------------------------------------------------
  6299. def show_sub_window(window)
  6300. window.show.activate
  6301. end
  6302. #--------------------------------------------------------------------------
  6303. # ● Hide Sub Window
  6304. #--------------------------------------------------------------------------
  6305. def hide_sub_window(window)
  6306. window.hide.deactivate
  6307. activate_item_window
  6308. end
  6309.  
  6310. #--------------------------------------------------------------------------
  6311. # ● Determine Item
  6312. #--------------------------------------------------------------------------
  6313. def determine_item
  6314. if item.for_friend?
  6315. @phase = 2
  6316. show_sub_window(@actor_window)
  6317. @actor_window.select_for_item(item)
  6318. $game_temp.item_scope = @skill_window[@command_window.index].item.scope rescue nil
  6319. else
  6320. use_item
  6321. activate_item_window
  6322. end
  6323. end
  6324.  
  6325. #--------------------------------------------------------------------------
  6326. # ● ON Item OK
  6327. #--------------------------------------------------------------------------
  6328. def on_item_ok
  6329. return if @press_time > 1
  6330. @actor.last_skill.object = item
  6331. determine_item
  6332. end
  6333.  
  6334. #--------------------------------------------------------------------------
  6335. # ● Item
  6336. #--------------------------------------------------------------------------
  6337. def item
  6338. @skill_window[@command_window.index].item
  6339. end
  6340.  
  6341. #--------------------------------------------------------------------------
  6342. # ● Use Item
  6343. #--------------------------------------------------------------------------
  6344. def use_item
  6345. super
  6346. @skill_window[@command_window.index].refresh if can_refresh_item_window?
  6347. end
  6348.  
  6349. #--------------------------------------------------------------------------
  6350. # ● Activate Item Window
  6351. #--------------------------------------------------------------------------
  6352. def activate_item_window
  6353. @skill_window[@command_window.index].refresh if can_refresh_item_window?
  6354. @skill_window[@command_window.index].activate
  6355. end
  6356.  
  6357. #--------------------------------------------------------------------------
  6358. # ● On Item Cancel
  6359. #--------------------------------------------------------------------------
  6360. def on_item_cancel
  6361. @skill_window[@command_window.index].unselect
  6362. @command_window.activate
  6363. end
  6364.  
  6365. #--------------------------------------------------------------------------
  6366. # ● Can Refresh Item Window
  6367. #--------------------------------------------------------------------------
  6368. def can_refresh_item_window?
  6369. return true if @actor.mp < @skill_window[@command_window.index].item.mp_cost
  6370. return true if @actor.tp < @skill_window[@command_window.index].item.tp_cost
  6371. return false
  6372. end
  6373.  
  6374. end
  6375.  
  6376. #==============================================================================
  6377. # ■ Scene_Item
  6378. #==============================================================================
  6379. class Scene_Skill
  6380.  
  6381. #--------------------------------------------------------------------------
  6382. # ● Update Command
  6383. #--------------------------------------------------------------------------
  6384. def update_command
  6385. @skill_window[@command_window.index].index = @item_pre_index
  6386. if @phase == 0
  6387. update_main_command
  6388. elsif @phase == 1
  6389. update_item_window
  6390. elsif @phase == 2
  6391. update_target_window
  6392. end
  6393. update_active
  6394. end
  6395.  
  6396. #--------------------------------------------------------------------------
  6397. # ● Command Skill
  6398. #--------------------------------------------------------------------------
  6399. def command_skill
  6400. @skill_window[@command_window.index].activate
  6401. @skill_window[@command_window.index].select_last
  6402. # @item_window.activate
  6403. # @item_window.select_last
  6404. end
  6405.  
  6406. #--------------------------------------------------------------------------
  6407. # ● Update Active
  6408. #--------------------------------------------------------------------------
  6409. def update_active
  6410. if @phase == 0
  6411. @skill_window[@command_window.index].active = false
  6412. @command_window.active = true
  6413. @actor_window.active = false
  6414. elsif @phase == 1
  6415. @skill_window[@command_window.index].active = true
  6416. @command_window.active = false
  6417. @actor_window.active = false
  6418. elsif @phase == 2
  6419. @skill_window[@command_window.index].active = false
  6420. @command_window.active = false
  6421. @actor_window.active = true
  6422. end
  6423. end
  6424.  
  6425. #--------------------------------------------------------------------------
  6426. # ● Update Main Command
  6427. #--------------------------------------------------------------------------
  6428. def update_main_command
  6429. reset_item_index
  6430. if Input.trigger?(:C) and @scene_active
  6431. Sound.play_ok
  6432. @phase = 1
  6433. @press_time = 2
  6434. @press_lag = 2
  6435. @skill_window[@command_window.index].index = 0 if @skill_window[@command_window.index].index == -1
  6436. elsif Input.trigger?(:B)
  6437. return_scene
  6438. end
  6439. end
  6440.  
  6441. #--------------------------------------------------------------------------
  6442. # ● Return Scene
  6443. #--------------------------------------------------------------------------
  6444. def return_scene
  6445. Sound.play_cancel
  6446. SceneManager.return
  6447. end
  6448.  
  6449. #--------------------------------------------------------------------------
  6450. # ● ON Actor Charge
  6451. #--------------------------------------------------------------------------
  6452. def on_actor_change
  6453. @phase = 999
  6454. $game_temp.actor_menu_temp = @actor
  6455. SceneManager.goto(Scene_Skill)
  6456. end
  6457.  
  6458. #--------------------------------------------------------------------------
  6459. # ● Reset Item Index
  6460. #--------------------------------------------------------------------------
  6461. def reset_item_index
  6462. return if @old_command_index == @command_window.index
  6463. return if @command_window.index == -1
  6464. @old_command_index = @command_window.index
  6465. refresh_type_name
  6466. reset_item_position
  6467. end
  6468.  
  6469. #--------------------------------------------------------------------------
  6470. # ● Reset Item Position
  6471. #--------------------------------------------------------------------------
  6472. def reset_item_position
  6473. @skill_window[@command_window.index].x = @item_slide_range[1]
  6474. @skill_window[@command_window.index].contents_opacity = 160
  6475. @list_layout.x = @list_layout_slide_range[1]
  6476. @list_layout.opacity = 160
  6477. end
  6478.  
  6479. end
  6480.  
  6481. #==============================================================================
  6482. # ■ Scene_Skill
  6483. #==============================================================================
  6484. class Scene_Skill
  6485.  
  6486. #--------------------------------------------------------------------------
  6487. # ● Update Item Window
  6488. #--------------------------------------------------------------------------
  6489. def update_item_window
  6490. @press_time -= 1 if @press_time > 0
  6491. update_item_command
  6492. update_index_type
  6493. end
  6494.  
  6495. #--------------------------------------------------------------------------
  6496. # ● Update Main Command
  6497. #--------------------------------------------------------------------------
  6498. def update_item_command
  6499. if Input.trigger?(:B)
  6500. @phase = 0
  6501. Sound.play_cancel
  6502. end
  6503. end
  6504.  
  6505. #--------------------------------------------------------------------------
  6506. # ● Update
  6507. #--------------------------------------------------------------------------
  6508. def update_index_type
  6509. return if @index_max <= 0
  6510. return if @command_window == nil
  6511. if Input.trigger?(:RIGHT)
  6512. add_index(1)
  6513. elsif Input.trigger?(:LEFT)
  6514. add_index(-1)
  6515. end
  6516. end
  6517.  
  6518. #--------------------------------------------------------------------------
  6519. # ● Add Index
  6520. #--------------------------------------------------------------------------
  6521. def add_index(value)
  6522. Sound.play_cursor
  6523. @command_window.index += value
  6524. @command_window.index = 0 if @command_window.index > @index_max
  6525. @command_window.index = @index_max if @command_window.index < 0
  6526. reset_item_index
  6527. end
  6528.  
  6529. end
  6530.  
  6531. #==============================================================================
  6532. # ■ Scene_Skill
  6533. #==============================================================================
  6534. class Scene_Skill
  6535.  
  6536. #--------------------------------------------------------------------------
  6537. # ● Update Item Window
  6538. #--------------------------------------------------------------------------
  6539. def update_target_window
  6540. update_target_command
  6541. end
  6542.  
  6543. #--------------------------------------------------------------------------
  6544. # ● Update Main Command
  6545. #--------------------------------------------------------------------------
  6546. def update_target_command
  6547. if Input.trigger?(:B)
  6548. @phase = 1
  6549. @skill_window[@command_window.index].index = @item_pre_index
  6550. end
  6551. end
  6552.  
  6553. end
  6554.  
  6555. #==============================================================================
  6556. # ■ Window Base
  6557. #==============================================================================
  6558. class Window_Base < Window
  6559.  
  6560. include MOG_MENU_EQUIP
  6561.  
  6562. #--------------------------------------------------------------------------
  6563. # ● Set Equip Font
  6564. #--------------------------------------------------------------------------
  6565. def set_font_equip
  6566. return if self.disposed?
  6567. return if self.contents == nil
  6568. self.contents.font.name = FONT_NAME
  6569. self.contents.font.size = FONT_SIZE
  6570. self.contents.font.bold = FONT_BOLD
  6571. self.contents.font.italic = FONT_ITALIC
  6572. end
  6573.  
  6574. end
  6575.  
  6576. #==============================================================================
  6577. # ■ Game_Temp
  6578. #==============================================================================
  6579. class Game_Temp
  6580.  
  6581. #--------------------------------------------------------------------------
  6582. # ● Execute Pre Cache Skill Menu
  6583. #--------------------------------------------------------------------------
  6584. def execute_pre_cache_equip_menu
  6585. @pre_cache_equip_menu = []
  6586. @pre_cache_equip_menu.push(Cache.menu_equip("Background"))
  6587. @pre_cache_equip_menu.push(Cache.menu_equip("Layout_U"))
  6588. @pre_cache_equip_menu.push(Cache.menu_equip("Layout_R"))
  6589. @pre_cache_equip_menu.push(Cache.menu_equip("Layout_D"))
  6590. @pre_cache_equip_menu.push(Cache.menu_equip("Layout_L"))
  6591. @pre_cache_equip_menu.push(Cache.menu_equip("Par_Number"))
  6592. end
  6593.  
  6594. end
  6595.  
  6596. #==============================================================================
  6597. # ■ Scene_Skill
  6598. #==============================================================================
  6599. class Scene_Equip
  6600. include MOG_MENU_EQUIP
  6601. include MOG_MENU_BASE
  6602.  
  6603. #--------------------------------------------------------------------------
  6604. # ● Main
  6605. #--------------------------------------------------------------------------
  6606. def main
  6607. execute_setup
  6608. execute_loop
  6609. execute_dispose
  6610. end
  6611.  
  6612. #--------------------------------------------------------------------------
  6613. # ● Execute Setup
  6614. #--------------------------------------------------------------------------
  6615. def execute_setup
  6616. @actor = $game_temp.actor_menu_temp
  6617. @actor_old = @actor
  6618. @phase = 0
  6619. create_sprites
  6620. end
  6621.  
  6622. #--------------------------------------------------------------------------
  6623. # ● Execute Lopp
  6624. #--------------------------------------------------------------------------
  6625. def execute_loop
  6626. Graphics.transition(10)
  6627. loop do
  6628. Input.update
  6629. update
  6630. Graphics.update
  6631. break if SceneManager.scene != self
  6632. end
  6633. end
  6634.  
  6635. end
  6636.  
  6637. #==============================================================================
  6638. # ■ Window_EquipStatus
  6639. #==============================================================================
  6640. class Window_EquipStatus < Window_Base
  6641.  
  6642. #--------------------------------------------------------------------------
  6643. # ● Initializee
  6644. #--------------------------------------------------------------------------
  6645. def initialize(x, y)
  6646. super(x, y, window_width, window_height)
  6647. @actor = nil
  6648. @temp_actor = nil
  6649. self.visible = false
  6650. end
  6651.  
  6652. #--------------------------------------------------------------------------
  6653. # ● Window Width
  6654. #--------------------------------------------------------------------------
  6655. def window_width
  6656. return 208
  6657. end
  6658.  
  6659. #--------------------------------------------------------------------------
  6660. # ● Window Height
  6661. #--------------------------------------------------------------------------
  6662. def window_height
  6663. return 296
  6664. end
  6665.  
  6666. #--------------------------------------------------------------------------
  6667. # ● Visible Line Number
  6668. #--------------------------------------------------------------------------
  6669. def visible_line_number
  6670. return 1
  6671. end
  6672. #--------------------------------------------------------------------------
  6673. # ● Actor
  6674. #--------------------------------------------------------------------------
  6675. def actor=(actor)
  6676. return if @actor == actor
  6677. @actor = actor
  6678. end
  6679.  
  6680. #--------------------------------------------------------------------------
  6681. # ● Refresh
  6682. #--------------------------------------------------------------------------
  6683. def refresh
  6684. contents.clear
  6685. end
  6686.  
  6687. #--------------------------------------------------------------------------
  6688. # ● Set Temp Actor
  6689. #--------------------------------------------------------------------------
  6690. def set_temp_actor(temp_actor)
  6691. return if @temp_actor == temp_actor
  6692. @temp_actor = temp_actor
  6693. $game_temp.temp_actor_equip = @temp_actor
  6694. end
  6695.  
  6696. end
  6697.  
  6698. #==============================================================================
  6699. # ■ Window_EquipCommand
  6700. #==============================================================================
  6701. class Window_EquipCommand < Window_HorzCommand
  6702.  
  6703. #--------------------------------------------------------------------------
  6704. # ● Initialize
  6705. #--------------------------------------------------------------------------
  6706. def initialize(x, y, width)
  6707. @window_width = width
  6708. super(x, y)
  6709. end
  6710.  
  6711. #--------------------------------------------------------------------------
  6712. # ● Window Width
  6713. #--------------------------------------------------------------------------
  6714. def window_width
  6715. @window_width
  6716. end
  6717.  
  6718. #--------------------------------------------------------------------------
  6719. # ● Col Max
  6720. #--------------------------------------------------------------------------
  6721. def col_max
  6722. return 3
  6723. end
  6724.  
  6725. #--------------------------------------------------------------------------
  6726. # ● Make Command List
  6727. #--------------------------------------------------------------------------
  6728. def make_command_list
  6729. add_command(Vocab::equip2, :equip)
  6730. add_command(Vocab::optimize, :optimize)
  6731. add_command(Vocab::clear, :clear)
  6732. end
  6733.  
  6734. #--------------------------------------------------------------------------
  6735. # ● Draw Item
  6736. #--------------------------------------------------------------------------
  6737. def draw_item(index)
  6738. end
  6739.  
  6740. end
  6741.  
  6742. #==============================================================================
  6743. # ■ Window_EquipSlot
  6744. #==============================================================================
  6745. class Window_EquipSlot < Window_Selectable
  6746.  
  6747. attr_reader :status_window
  6748. attr_reader :item_window
  6749.  
  6750. #--------------------------------------------------------------------------
  6751. # ● Initialize
  6752. #--------------------------------------------------------------------------
  6753. def initialize(x, y, width)
  6754. super(x, y, width, window_height)
  6755. @actor = nil
  6756. refresh
  6757. end
  6758.  
  6759. #--------------------------------------------------------------------------
  6760. # ● Window Height
  6761. #--------------------------------------------------------------------------
  6762. def window_height
  6763. fitting_height(visible_line_number)
  6764. end
  6765.  
  6766. #--------------------------------------------------------------------------
  6767. # ● Visible Line Number
  6768. #--------------------------------------------------------------------------
  6769. def visible_line_number
  6770. return 5
  6771. end
  6772.  
  6773. #--------------------------------------------------------------------------
  6774. # ● Actor
  6775. #--------------------------------------------------------------------------
  6776. def actor=(actor)
  6777. return if @actor == actor
  6778. @actor = actor
  6779. refresh
  6780. end
  6781.  
  6782. #--------------------------------------------------------------------------
  6783. # ● Update
  6784. #--------------------------------------------------------------------------
  6785. def update
  6786. super
  6787. @item_window.slot_id = index if @item_window
  6788. end
  6789.  
  6790. #--------------------------------------------------------------------------
  6791. # ● Item Max
  6792. #--------------------------------------------------------------------------
  6793. def item_max
  6794. @actor ? @actor.equip_slots.size : 0
  6795. end
  6796.  
  6797. #--------------------------------------------------------------------------
  6798. # ● Item
  6799. #--------------------------------------------------------------------------
  6800. def item
  6801. @actor ? @actor.equips[index] : nil
  6802. end
  6803.  
  6804. #--------------------------------------------------------------------------
  6805. # ● Draw Item
  6806. #--------------------------------------------------------------------------
  6807. def draw_item(index)
  6808. return unless @actor
  6809. rect = item_rect_for_text(index)
  6810. change_color(system_color, enable?(index))
  6811. set_font_equip
  6812. draw_item_name(@actor.equips[index], rect.x + 92, rect.y, enable?(index))
  6813. end
  6814.  
  6815. #--------------------------------------------------------------------------
  6816. # ● Slot Name
  6817. #--------------------------------------------------------------------------
  6818. def slot_name(index)
  6819. @actor ? Vocab::etype(@actor.equip_slots[index]) : ""
  6820. end
  6821.  
  6822. #--------------------------------------------------------------------------
  6823. # ● Enable
  6824. #--------------------------------------------------------------------------
  6825. def enable?(index)
  6826. @actor ? @actor.equip_change_ok?(index) : false
  6827. end
  6828.  
  6829. #--------------------------------------------------------------------------
  6830. # ● Current Item Enabled
  6831. #--------------------------------------------------------------------------
  6832. def current_item_enabled?
  6833. enable?(index)
  6834. end
  6835.  
  6836. #--------------------------------------------------------------------------
  6837. # ● Status Window
  6838. #--------------------------------------------------------------------------
  6839. def status_window=(status_window)
  6840. @status_window = status_window
  6841. call_update_help
  6842. end
  6843.  
  6844. #--------------------------------------------------------------------------
  6845. # ● Item Window
  6846. #--------------------------------------------------------------------------
  6847. def item_window=(item_window)
  6848. @item_window = item_window
  6849. update
  6850. end
  6851.  
  6852. #--------------------------------------------------------------------------
  6853. # ● Update Help
  6854. #--------------------------------------------------------------------------
  6855. def update_help
  6856. super
  6857. @help_window.set_item(item) if @help_window
  6858. $game_temp.temp_actor_equip = nil if @status_window
  6859. end
  6860.  
  6861. end
  6862.  
  6863. #==============================================================================
  6864. # ■ Window_EquipItem
  6865. #==============================================================================
  6866. class Window_EquipItem_Menu < Window_ItemList
  6867.  
  6868. attr_reader :status_window
  6869. attr_accessor :windows_index
  6870.  
  6871. #--------------------------------------------------------------------------
  6872. # ● Initialize
  6873. #--------------------------------------------------------------------------
  6874. def initialize(x, y, width, height)
  6875. super
  6876. @actor = nil
  6877. @slot_id = 0
  6878. @windows_index = 0
  6879. self.visible = false
  6880. self.opacity = 0
  6881. end
  6882.  
  6883. #--------------------------------------------------------------------------
  6884. # ● Col Max
  6885. #--------------------------------------------------------------------------
  6886. def col_max
  6887. return 1
  6888. end
  6889.  
  6890. #--------------------------------------------------------------------------
  6891. # ● Actor
  6892. #--------------------------------------------------------------------------
  6893. def actor=(actor)
  6894. return if @actor == actor
  6895. @actor = actor
  6896. self.oy = 0
  6897. end
  6898.  
  6899. #--------------------------------------------------------------------------
  6900. # ● Setup
  6901. #--------------------------------------------------------------------------
  6902. def setup(actor,equip_type,index)
  6903. @actor = actor
  6904. @slot_id = equip_type
  6905. @windows_index = index
  6906. refresh
  6907. end
  6908.  
  6909. #--------------------------------------------------------------------------
  6910. # ● Slot ID
  6911. #--------------------------------------------------------------------------
  6912. def slot_id=(slot_id)
  6913. end
  6914.  
  6915. #--------------------------------------------------------------------------
  6916. # ● Include?
  6917. #--------------------------------------------------------------------------
  6918. def include?(item)
  6919. return true if item == nil
  6920. return false unless item.is_a?(RPG::EquipItem)
  6921. return false if @slot_id < 0
  6922. return false if item.etype_id != @actor.equip_slots[@slot_id]
  6923. return @actor.equippable?(item)
  6924. end
  6925.  
  6926. #--------------------------------------------------------------------------
  6927. # ● Enable?
  6928. #--------------------------------------------------------------------------
  6929. def enable?(item)
  6930. return true
  6931. end
  6932.  
  6933. #--------------------------------------------------------------------------
  6934. # ● Select Last
  6935. #--------------------------------------------------------------------------
  6936. def select_last
  6937. end
  6938.  
  6939. #--------------------------------------------------------------------------
  6940. # ● Status Window
  6941. #--------------------------------------------------------------------------
  6942. def status_window=(status_window)
  6943. @status_window = status_window
  6944. call_update_help
  6945. end
  6946.  
  6947. #--------------------------------------------------------------------------
  6948. # ● Update Help
  6949. #--------------------------------------------------------------------------
  6950. def update_help
  6951. super
  6952. if @actor && @status_window
  6953. temp_actor = Marshal.load(Marshal.dump(@actor))
  6954. temp_actor.force_change_equip(@slot_id, item)
  6955. $game_temp.temp_actor_equip = temp_actor
  6956. end
  6957. end
  6958.  
  6959. #--------------------------------------------------------------------------
  6960. # ● Draw Item
  6961. #--------------------------------------------------------------------------
  6962. def draw_item(index)
  6963. item = @data[index]
  6964. if item
  6965. set_font_equip
  6966. rect = item_rect(index)
  6967. rect.width -= 4
  6968. draw_item_name(item, rect.x, rect.y, enable?(item))
  6969. draw_item_number(rect, item)
  6970. end
  6971. end
  6972.  
  6973. #--------------------------------------------------------------------------
  6974. # ● Draw Item Number
  6975. #--------------------------------------------------------------------------
  6976. def draw_item_number(rect, item)
  6977. draw_text(rect, sprintf(": %2d", $game_party.item_number(item)), 2)
  6978. end
  6979.  
  6980. end
  6981.  
  6982. module MOG_EQUIP_STATUS
  6983. LAYOUT_POSITION = [0,80]
  6984. FACE_POSITION = [120,-45]
  6985. PAR_POSITION = [5,32]
  6986. NAME_POSITION = [15,-5]
  6987. FONT_NAME = "Georgia"
  6988. FONT_SIZE = 18
  6989. FONT_BOLD = true
  6990. end
  6991.  
  6992.  
  6993. #==============================================================================
  6994. # ■ Actor Menu Status
  6995. #==============================================================================
  6996. class Actor_Equip_Status
  6997.  
  6998. include MOG_EQUIP_STATUS
  6999.  
  7000. #--------------------------------------------------------------------------
  7001. # ● Initialize
  7002. #--------------------------------------------------------------------------
  7003. def initialize(actor)
  7004. @actor = actor
  7005. @actor_old = @actor
  7006. $game_temp.temp_actor_equip = nil
  7007. @old_temp_actor = $game_temp.temp_actor_equip
  7008. set_old_parameter
  7009. create_sprites
  7010. end
  7011.  
  7012. #--------------------------------------------------------------------------
  7013. # ● Create Sprites
  7014. #--------------------------------------------------------------------------
  7015. def create_sprites
  7016. @parameter_number = $game_temp.pre_cache_equip_menu[5]
  7017. @parameter_cw = @parameter_number.width / 11
  7018. @parameter_ch = @parameter_number.height / 3
  7019. create_layout
  7020. create_face
  7021. create_parameter
  7022. create_name
  7023. end
  7024.  
  7025. #--------------------------------------------------------------------------
  7026. # ● Dispose
  7027. #--------------------------------------------------------------------------
  7028. def dispose
  7029. dispose_layout
  7030. dispose_face
  7031. dispose_parameter
  7032. dispose_name
  7033. end
  7034.  
  7035. #--------------------------------------------------------------------------
  7036. # ● Dispose Layout
  7037. #--------------------------------------------------------------------------
  7038. def dispose_layout
  7039. @layout.dispose
  7040. end
  7041.  
  7042. #--------------------------------------------------------------------------
  7043. # ● Dispose Face
  7044. #--------------------------------------------------------------------------
  7045. def dispose_face
  7046. @face.dispose
  7047. end
  7048.  
  7049. #--------------------------------------------------------------------------
  7050. # ● Dispose Parameter
  7051. #--------------------------------------------------------------------------
  7052. def dispose_parameter
  7053. @parameter.bitmap.dispose
  7054. @parameter.dispose
  7055. end
  7056.  
  7057. #--------------------------------------------------------------------------
  7058. # ● Dispose Name
  7059. #--------------------------------------------------------------------------
  7060. def dispose_name
  7061. @name.bitmap.dispose
  7062. @name.dispose
  7063. end
  7064.  
  7065. #--------------------------------------------------------------------------
  7066. # ● Create Layout
  7067. #--------------------------------------------------------------------------
  7068. def create_layout
  7069. @layout = Sprite.new
  7070. @layout.bitmap = $game_temp.pre_cache_equip_menu[4]
  7071. @org_pos = [LAYOUT_POSITION[0],LAYOUT_POSITION[1]]
  7072. @layout.x = @org_pos[0] - 150
  7073. @layout.y = @org_pos[1]
  7074. @layout.z = 10
  7075. @layout.opacity = 0
  7076. @slide_range = (@org_pos[0] - 150)
  7077. end
  7078.  
  7079. #--------------------------------------------------------------------------
  7080. # ● Create Parameter
  7081. #--------------------------------------------------------------------------
  7082. def create_parameter
  7083. @parameter = Sprite.new
  7084. @parameter.bitmap = Bitmap.new(@layout.bitmap.width,@layout.bitmap.height)
  7085. @org_pos_par = [@org_pos[0] + PAR_POSITION[0],
  7086. @org_pos[1] + PAR_POSITION[1]]
  7087. @parameter.x = @org_pos_par[0] - 150
  7088. @parameter.y = @org_pos_par[1]
  7089. @parameter.z = 11
  7090. @parameter.opacity = 0
  7091. refresh_parameter
  7092. end
  7093.  
  7094. #--------------------------------------------------------------------------
  7095. # ● Create Face
  7096. #--------------------------------------------------------------------------
  7097. def create_face
  7098. @face = Sprite.new
  7099. @org_pos_face = [@org_pos[0] + FACE_POSITION[0],
  7100. @org_pos[1] + FACE_POSITION[1]]
  7101. @face.x = @org_pos_face[0] - 150
  7102. @face.y = @org_pos_face[1]
  7103. @face.z = 11
  7104. @face.opacity = 0
  7105. refresh_face
  7106. end
  7107.  
  7108. #--------------------------------------------------------------------------
  7109. # ● Create Name
  7110. #--------------------------------------------------------------------------
  7111. def create_name
  7112. @name = Sprite.new
  7113. @name.bitmap = Bitmap.new(140,32)
  7114. @name.bitmap.font.name = FONT_NAME
  7115. @name.bitmap.font.size = FONT_SIZE
  7116. @name.bitmap.font.bold = FONT_BOLD
  7117. @org_pos_name = [@org_pos[0] + NAME_POSITION[0],
  7118. @org_pos[1] + NAME_POSITION[1]]
  7119. @name.x = @org_pos_name[0] - 150
  7120. @name.y = @org_pos_name[1]
  7121. @name.z = 11
  7122. @name.opacity = 0
  7123. refresh_name
  7124. end
  7125.  
  7126. #--------------------------------------------------------------------------
  7127. # ● Set Old Parameter
  7128. #--------------------------------------------------------------------------
  7129. def set_old_parameter
  7130. @par = [] if @par == nil
  7131. @par.clear
  7132. @par = [
  7133. @actor.param(0),@actor.param(1),@actor.param(2),@actor.param(3),
  7134. @actor.param(4),@actor.param(5),@actor.param(6),@actor.param(7),
  7135. @old_temp_actor
  7136. ]
  7137. end
  7138.  
  7139. #--------------------------------------------------------------------------
  7140. # ● Can Refresh Parameter
  7141. #--------------------------------------------------------------------------
  7142. def can_refresh_parameter?
  7143. return true if @par[0] != @actor.param(0)
  7144. return true if @par[1] != @actor.param(1)
  7145. return true if @par[2] != @actor.param(2)
  7146. return true if @par[3] != @actor.param(3)
  7147. return true if @par[4] != @actor.param(4)
  7148. return true if @par[5] != @actor.param(5)
  7149. return true if @par[6] != @actor.param(6)
  7150. return true if @par[7] != @actor.param(7)
  7151. return true if @old_temp_actor != $game_temp.temp_actor_equip
  7152. return false
  7153. end
  7154.  
  7155. #--------------------------------------------------------------------------
  7156. # ● Refresh Name
  7157. #--------------------------------------------------------------------------
  7158. def refresh_name
  7159. @name.bitmap.clear
  7160. @name.bitmap.draw_text(0,0,140,32,@actor.name.to_s,0)
  7161. end
  7162.  
  7163. #--------------------------------------------------------------------------
  7164. # ● Create Face
  7165. #--------------------------------------------------------------------------
  7166. def refresh_parameter
  7167. set_old_parameter
  7168. @parameter.bitmap.clear
  7169. @old_temp_actor = $game_temp.temp_actor_equip
  7170. x = 180
  7171. for p in 0...8
  7172. y = 24 * p
  7173. refresh_number(@parameter,@parameter_number,p,@parameter_cw,@parameter_ch,x,y,0)
  7174. end
  7175. if $game_temp.temp_actor_equip != nil
  7176. x = 180 - (@parameter_cw * 7)
  7177. for p in 0...8
  7178. y = 24 * p
  7179. refresh_number(@parameter,@parameter_number,p,@parameter_cw,@parameter_ch,x,y,1)
  7180. end
  7181. end
  7182. end
  7183.  
  7184. #--------------------------------------------------------------------------
  7185. # ● Refresh Number
  7186. #--------------------------------------------------------------------------
  7187. def refresh_number(sprite,image,p,number_cw,number_ch,x,y,type)
  7188. value = @actor.param(p)
  7189. new_value = 0
  7190. ch = 0
  7191. if type == 1
  7192. if $game_temp.temp_actor_equip != nil
  7193. new_value = $game_temp.temp_actor_equip.param(p)
  7194. end
  7195. d_value = new_value - value
  7196. if d_value < 0
  7197. ch = 2
  7198. elsif d_value > 0
  7199. ch = 1
  7200. else
  7201. ch = 0
  7202. end
  7203. value = new_value
  7204. end
  7205. draw_arrow(sprite,image,number_cw,number_ch,x,y,ch)
  7206. draw_number(sprite,image,value,number_cw,number_ch,x,y,ch)
  7207. end
  7208.  
  7209. #--------------------------------------------------------------------------
  7210. # ● Draw Arrow
  7211. #--------------------------------------------------------------------------
  7212. def draw_arrow(sprite,image,number_cw,number_ch,x,y,ch)
  7213. nsrc_rect = Rect.new(number_cw * 10, number_ch * ch , number_cw , number_ch)
  7214. sprite.bitmap.blt(x + number_cw, y, image, nsrc_rect)
  7215. end
  7216.  
  7217. #--------------------------------------------------------------------------
  7218. # ● Draw Number
  7219. #--------------------------------------------------------------------------
  7220. def draw_number(sprite,image,value,number_cw,number_ch,x,y,ch)
  7221. number = value.truncate.abs.to_s.split(//)
  7222. x2 = -number_cw * number.size
  7223. for i in 0..number.size - 1
  7224. number_abs = number[i].to_i
  7225. nsrc_rect = Rect.new(number_cw * number_abs, number_ch * ch , number_cw , number_ch)
  7226. sprite.bitmap.blt(x + x2 + (number_cw * i), y, image, nsrc_rect)
  7227. end
  7228. end
  7229.  
  7230. #--------------------------------------------------------------------------
  7231. # ● Refresh Face
  7232. #--------------------------------------------------------------------------
  7233. def refresh_face
  7234. face_name = "Face" + @actor.id.to_s
  7235. @face.bitmap = Cache.menu(face_name.to_s)
  7236. end
  7237.  
  7238. #--------------------------------------------------------------------------
  7239. # ● Update Move
  7240. #--------------------------------------------------------------------------
  7241. def update_move
  7242. update_slide(0,@layout,@layout.x,@org_pos[0])
  7243. update_slide(1,@layout,@layout.y,@org_pos[1])
  7244. update_slide(0,@parameter,@parameter.x,@org_pos_par[0])
  7245. update_slide(1,@parameter,@parameter.y,@org_pos_par[1])
  7246. update_slide(0,@face,@face.x,@org_pos_face[0])
  7247. update_slide(1,@face,@face.y,@org_pos_face[1])
  7248. update_slide(0,@name,@name.x,@org_pos_name[0])
  7249. update_slide(1,@name,@name.y,@org_pos_name[1])
  7250. end
  7251.  
  7252. #--------------------------------------------------------------------------
  7253. # ● Update Slide
  7254. #--------------------------------------------------------------------------
  7255. def update_slide(type,sprite,cp,np)
  7256. sprite.opacity += 5
  7257. sp = 3 + ((cp - np).abs / 10)
  7258. if cp > np
  7259. cp -= sp
  7260. cp = np if cp < np
  7261. elsif cp < np
  7262. cp += sp
  7263. cp = np if cp > np
  7264. end
  7265. sprite.x = cp if type == 0
  7266. sprite.y = cp if type == 1
  7267. end
  7268.  
  7269. #--------------------------------------------------------------------------
  7270. # ● Refresh All
  7271. #--------------------------------------------------------------------------
  7272. def refresh_all(actor)
  7273. @actor = actor
  7274. refresh_parameter
  7275. refresh_face
  7276. refresh_name
  7277. end
  7278.  
  7279. #--------------------------------------------------------------------------
  7280. # ● Update
  7281. #--------------------------------------------------------------------------
  7282. def update(actor)
  7283. update_move
  7284. refresh_all(actor) if actor != @actor
  7285. refresh_parameter if can_refresh_parameter?
  7286. end
  7287.  
  7288. end
  7289.  
  7290. #==============================================================================
  7291. # ■ Scene_Equip
  7292. #==============================================================================
  7293. class Scene_Equip
  7294.  
  7295. #--------------------------------------------------------------------------
  7296. # ● Create Sprites
  7297. #--------------------------------------------------------------------------
  7298. def create_sprites
  7299. create_menu_background
  7300. create_layout
  7301. create_particles
  7302. create_help_window
  7303. create_status_window
  7304. create_command_window
  7305. create_slot_window
  7306. create_item_window
  7307. create_actor_status
  7308. set_sprite_position
  7309. end
  7310.  
  7311. #--------------------------------------------------------------------------
  7312. # ● Set Sprite Position
  7313. #--------------------------------------------------------------------------
  7314. def set_sprite_position
  7315. @status_window.opacity = 0
  7316. @command_window.opacity = 0
  7317. @slot_window.opacity = 0
  7318. @help_window.opacity = 0
  7319. @status_window.contents_opacity = 0
  7320. @command_window.contents_opacity = 0
  7321. @slot_window.contents_opacity = 0
  7322. @help_window.contents_opacity = 0
  7323. @layout2.opacity = 0
  7324. @layout3.opacity = 0
  7325. @layout4.opacity = 0
  7326. @org_pos_help = [@help_window.x,@help_window.y]
  7327. @help_window.x = @org_pos_help[0]
  7328. @help_window.y = @org_pos_help[1] + 150
  7329. @org_pos_com = [@command_window.x,@command_window.y]
  7330. @command_window.x = @org_pos_com[0]
  7331. @command_window.y = @org_pos_com[1] - 150
  7332. @org_pos_slot = [@slot_window.x,@slot_window.y]
  7333. @slot_window.x = @org_pos_slot[0] + 150
  7334. @slot_window.y = @org_pos_slot[1]
  7335. @layout2.y = -150
  7336. @layout3.x = 150
  7337. @layout4.y = 150
  7338. end
  7339.  
  7340. #--------------------------------------------------------------------------
  7341. # ● Create Actor Status
  7342. #--------------------------------------------------------------------------
  7343. def create_actor_status
  7344. @actor_status = Actor_Equip_Status.new(@actor)
  7345. end
  7346.  
  7347. #--------------------------------------------------------------------------
  7348. # ● Create Menu Background
  7349. #--------------------------------------------------------------------------
  7350. def create_menu_background
  7351. @background = Plane.new
  7352. @background.bitmap = $game_temp.pre_cache_equip_menu[0]
  7353. @background.z = 0
  7354. @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  7355. end
  7356.  
  7357. #--------------------------------------------------------------------------
  7358. # ● Create Layout
  7359. #--------------------------------------------------------------------------
  7360. def create_layout
  7361. @layout2 = Sprite.new
  7362. @layout2.bitmap = $game_temp.pre_cache_equip_menu[1]
  7363. @layout2.z = 3
  7364. @layout3 = Sprite.new
  7365. @layout3.bitmap = $game_temp.pre_cache_equip_menu[2]
  7366. @layout3.z = 3
  7367. @layout4 = Sprite.new
  7368. @layout4.bitmap = $game_temp.pre_cache_equip_menu[3]
  7369. @layout4.z = 3
  7370. end
  7371.  
  7372. #--------------------------------------------------------------------------
  7373. # ● Create Particles
  7374. #--------------------------------------------------------------------------
  7375. def create_particles
  7376. @particles_sprite =[]
  7377. for i in 0...NUMBER_OF_PARTICLES
  7378. @particles_sprite.push(Particles_Menu.new(nil))
  7379. end
  7380. end
  7381.  
  7382. #--------------------------------------------------------------------------
  7383. # ● Create Help Window
  7384. #--------------------------------------------------------------------------
  7385. def create_help_window
  7386. @help_window = Window_Help.new
  7387. @help_window.x = 0
  7388. @help_window.y = Graphics.height - @help_window.height
  7389. @help_window.set_font_equip
  7390. end
  7391.  
  7392. #--------------------------------------------------------------------------
  7393. # ● Create Status Window
  7394. #--------------------------------------------------------------------------
  7395. def create_status_window
  7396. @status_window = Window_EquipStatus.new(0, @help_window.height)
  7397. @status_window.viewport = @viewport
  7398. @status_window.actor = @actor
  7399. @status_window.y = 48
  7400. end
  7401.  
  7402. #--------------------------------------------------------------------------
  7403. # ● Create Command Window
  7404. #--------------------------------------------------------------------------
  7405. def create_command_window
  7406. @command_window = Window_EquipCommand.new(208, 0, 336)
  7407. @command_window.help_window = @help_window
  7408. @command_window.set_handler(:equip, method(:command_equip))
  7409. @command_window.set_handler(:optimize, method(:command_optimize))
  7410. @command_window.set_handler(:clear, method(:command_clear))
  7411. @command_window.set_handler(:cancel, method(:return_scene))
  7412. @command_window.set_handler(:pagedown, method(:next_actor))
  7413. @command_window.set_handler(:pageup, method(:prev_actor))
  7414. end
  7415.  
  7416. #--------------------------------------------------------------------------
  7417. # ● Create Slot Window
  7418. #--------------------------------------------------------------------------
  7419. def create_slot_window
  7420. wx = @status_window.width
  7421. wy = @command_window.y + @command_window.height + 5
  7422. ww = Graphics.width - @status_window.width
  7423. @slot_window = Window_EquipSlot.new(wx, wy, ww)
  7424. @slot_window.help_window = @help_window
  7425. @slot_window.status_window = @status_window
  7426. @slot_window.actor = @actor
  7427. @slot_window.set_handler(:ok, method(:on_slot_ok))
  7428. @slot_window.set_handler(:cancel, method(:on_slot_cancel))
  7429. @slot_window.set_handler(:pagedown, method(:next_actor))
  7430. @slot_window.set_handler(:pageup, method(:prev_actor))
  7431. end
  7432.  
  7433. #--------------------------------------------------------------------------
  7434. # ● Create Item Window
  7435. #--------------------------------------------------------------------------
  7436. def create_item_window
  7437. @equip_window = []
  7438. index = 0
  7439. window_max = 5
  7440. for item in 0...window_max
  7441. wx = @slot_window.x
  7442. wy = @slot_window.y + @slot_window.height + 5
  7443. ww = @slot_window.width
  7444. wh = @slot_window.height
  7445. @equip_window.push(Window_EquipItem_Menu.new(wx, wy, ww, wh))
  7446. @equip_window[item].setup(@actor,item, index)
  7447. @equip_window[item].visible = false
  7448. @equip_window[item].help_window = @help_window
  7449. @equip_window[item].status_window = @status_window
  7450. @equip_window[item].actor = @actor
  7451. @equip_window[item].set_handler(:ok, method(:on_item_ok))
  7452. @equip_window[item].set_handler(:cancel, method(:on_item_cancel))
  7453. @equip_window[item].opacity = 0
  7454. @org_pos_equip = [@equip_window[item].x,@equip_window[item].y]
  7455. index += 1
  7456. end
  7457.  
  7458. end
  7459.  
  7460. end
  7461.  
  7462. #==============================================================================
  7463. # ■ Scene_Equip
  7464. #==============================================================================
  7465. class Scene_Equip
  7466.  
  7467. #--------------------------------------------------------------------------
  7468. # ● Execute Dispose
  7469. #--------------------------------------------------------------------------
  7470. def execute_dispose
  7471. Graphics.freeze
  7472. dispose_background
  7473. dispose_layout
  7474. dispose_particles
  7475. dispose_window
  7476. dispose_actor_status
  7477. end
  7478.  
  7479. #--------------------------------------------------------------------------
  7480. # ● Dispose Background
  7481. #--------------------------------------------------------------------------
  7482. def dispose_background
  7483. return if @background == nil
  7484. @background.dispose
  7485. @background = nil
  7486. end
  7487.  
  7488. #--------------------------------------------------------------------------
  7489. # ● Dispose Layout
  7490. #--------------------------------------------------------------------------
  7491. def dispose_layout
  7492. return if @layout2 == nil
  7493. @layout2.dispose
  7494. @layout3.dispose
  7495. @layout4.dispose
  7496. @layout2 = nil
  7497. end
  7498.  
  7499. #--------------------------------------------------------------------------
  7500. # ● Dispose Particles
  7501. #--------------------------------------------------------------------------
  7502. def dispose_particles
  7503. return if @particles_sprite == nil
  7504. @particles_sprite.each {|sprite| sprite.dispose }
  7505. end
  7506.  
  7507. #--------------------------------------------------------------------------
  7508. # ● Dispose Window
  7509. #--------------------------------------------------------------------------
  7510. def dispose_window
  7511. @status_window.dispose
  7512. @command_window.dispose
  7513. @slot_window.dispose
  7514. @equip_window.each {|sprite| sprite.dispose }
  7515. @help_window.dispose
  7516. end
  7517.  
  7518. #--------------------------------------------------------------------------
  7519. # ● Dispose Actor Status
  7520. #--------------------------------------------------------------------------
  7521. def dispose_actor_status
  7522. return if @actor_status == nil
  7523. @actor_status.dispose
  7524. end
  7525.  
  7526. end
  7527.  
  7528. #==============================================================================
  7529. # ■ Scene_Equip
  7530. #==============================================================================
  7531. class Scene_Equip
  7532.  
  7533. #--------------------------------------------------------------------------
  7534. # ● Update Sprites
  7535. #--------------------------------------------------------------------------
  7536. def update_sprites
  7537. update_actor_status
  7538. update_background
  7539. update_particles
  7540. update_window
  7541. update_move
  7542. end
  7543.  
  7544. #--------------------------------------------------------------------------
  7545. # ● Update Move
  7546. #--------------------------------------------------------------------------
  7547. def update_move
  7548.  
  7549. update_slide(0,@command_window,@org_pos_com[0],0)
  7550. update_slide(1,@command_window,@org_pos_com[1],0)
  7551.  
  7552. update_slide(0,@help_window,@org_pos_help[0],0)
  7553. update_slide(1,@help_window,@org_pos_help[1],0)
  7554.  
  7555. update_slide(0,@slot_window,@org_pos_slot[0],0)
  7556. update_slide(1,@slot_window,@org_pos_slot[1],0)
  7557.  
  7558. update_slide(0,@layout2,0,1)
  7559. update_slide(1,@layout2,0,1)
  7560.  
  7561. update_slide(0,@layout3,0,1)
  7562. update_slide(1,@layout3,0,1)
  7563.  
  7564. update_slide(0,@layout4,0,1)
  7565. update_slide(1,@layout4,0,1)
  7566.  
  7567. end
  7568.  
  7569. #--------------------------------------------------------------------------
  7570. # ● Update Slide
  7571. #--------------------------------------------------------------------------
  7572. def update_slide(type,sprite,np,op_type)
  7573. if op_type == 0
  7574. sprite.contents_opacity += 5
  7575. else
  7576. sprite.opacity += 5
  7577. end
  7578. cp = type == 0 ? sprite.x : sprite.y
  7579. sp = 3 + ((cp - np).abs / 10)
  7580. if cp > np
  7581. cp -= sp
  7582. cp = np if cp < np
  7583. elsif cp < np
  7584. cp += sp
  7585. cp = np if cp > np
  7586. end
  7587. sprite.x = cp if type == 0
  7588. sprite.y = cp if type == 1
  7589. end
  7590.  
  7591. #--------------------------------------------------------------------------
  7592. # ● Update Actor Status
  7593. #--------------------------------------------------------------------------
  7594. def update_actor_status
  7595. return if @actor_status == nil
  7596. @actor_status.update(@actor)
  7597. end
  7598.  
  7599. #--------------------------------------------------------------------------
  7600. # ● Update Background
  7601. #--------------------------------------------------------------------------
  7602. def update_background
  7603. return if @background == nil
  7604. @background.ox += @background_scroll[0]
  7605. @background.oy += @background_scroll[1]
  7606. end
  7607.  
  7608. #--------------------------------------------------------------------------
  7609. # ● Update Particles
  7610. #--------------------------------------------------------------------------
  7611. def update_particles
  7612. return if @particles_sprite == nil
  7613. @particles_sprite.each {|sprite| sprite.update }
  7614. end
  7615.  
  7616. #--------------------------------------------------------------------------
  7617. # ● Update Window
  7618. #--------------------------------------------------------------------------
  7619. def update_window
  7620. @status_window.update
  7621. @command_window.update
  7622. @slot_window.update
  7623. for equip in @equip_window
  7624. update_slide(0,equip,@org_pos_equip[0],0)
  7625. update_slide(1,equip,@org_pos_equip[1],0)
  7626. if equip.windows_index == @slot_window.index
  7627. equip.visible = true
  7628. equip.update
  7629. else
  7630. equip.visible = false
  7631. end
  7632. end
  7633. end
  7634.  
  7635. end
  7636.  
  7637. #==============================================================================
  7638. # ■ Scene_Equip
  7639. #==============================================================================
  7640. class Scene_Equip
  7641.  
  7642. #--------------------------------------------------------------------------
  7643. # ● Update
  7644. #--------------------------------------------------------------------------
  7645. def update
  7646. update_sprites
  7647. update_command
  7648. end
  7649.  
  7650. #--------------------------------------------------------------------------
  7651. # ● Command Equip
  7652. #--------------------------------------------------------------------------
  7653. def command_equip
  7654. @slot_window.activate
  7655. @slot_window.select(0)
  7656. end
  7657.  
  7658. #--------------------------------------------------------------------------
  7659. # ● Command Optimize
  7660. #--------------------------------------------------------------------------
  7661. def command_optimize
  7662. Sound.play_equip
  7663. @actor.optimize_equipments
  7664. @status_window.refresh
  7665. @slot_window.refresh
  7666. @command_window.activate
  7667. end
  7668.  
  7669. #--------------------------------------------------------------------------
  7670. # ● Command Clear
  7671. #--------------------------------------------------------------------------
  7672. def command_clear
  7673. Sound.play_equip
  7674. @actor.clear_equipments
  7675. @status_window.refresh
  7676. @slot_window.refresh
  7677. @command_window.activate
  7678. end
  7679.  
  7680. #--------------------------------------------------------------------------
  7681. # ● On Slot OK
  7682. #--------------------------------------------------------------------------
  7683. def on_slot_ok
  7684. @equip_window[@slot_window.index].activate
  7685. @equip_window[@slot_window.index].select(0)
  7686. end
  7687.  
  7688. #--------------------------------------------------------------------------
  7689. # ● On Slot Cancel
  7690. #--------------------------------------------------------------------------
  7691. def on_slot_cancel
  7692. @slot_window.unselect
  7693. @command_window.activate
  7694. end
  7695.  
  7696. #--------------------------------------------------------------------------
  7697. # ● On Item OK
  7698. #--------------------------------------------------------------------------
  7699. def on_item_ok
  7700. Sound.play_equip
  7701. @actor.change_equip(@slot_window.index, @equip_window[@slot_window.index].item)
  7702. @slot_window.activate
  7703. @slot_window.refresh
  7704. @equip_window[@slot_window.index].unselect
  7705. @equip_window[@slot_window.index].refresh
  7706. end
  7707.  
  7708. #--------------------------------------------------------------------------
  7709. # ● On Item Cancel
  7710. #--------------------------------------------------------------------------
  7711. def on_item_cancel
  7712. @slot_window.activate
  7713. @equip_window[@slot_window.index].unselect
  7714. end
  7715.  
  7716. #--------------------------------------------------------------------------
  7717. # ● Return Scene
  7718. #--------------------------------------------------------------------------
  7719. def return_scene
  7720. Sound.play_cancel
  7721. SceneManager.return
  7722. end
  7723.  
  7724. #--------------------------------------------------------------------------
  7725. # ● ON Actor Charge
  7726. #--------------------------------------------------------------------------
  7727. def on_actor_change
  7728. $game_temp.actor_menu_temp = @actor
  7729. SceneManager.goto(Scene_Equip)
  7730. end
  7731.  
  7732. end
  7733.  
  7734. #==============================================================================
  7735. # ■ Scene_Equip
  7736. #==============================================================================
  7737. class Scene_Equip
  7738.  
  7739. #--------------------------------------------------------------------------
  7740. # ● Update Command
  7741. #--------------------------------------------------------------------------
  7742. def update_command
  7743.  
  7744. end
  7745.  
  7746. end
  7747.  
  7748. #==============================================================================
  7749. # ■ Game_Temp
  7750. #==============================================================================
  7751. class Game_Temp
  7752.  
  7753. #--------------------------------------------------------------------------
  7754. # ● Execute Pre Cache Status Menu
  7755. #--------------------------------------------------------------------------
  7756. def execute_pre_cache_status_menu
  7757. @pre_cache_status_menu = []
  7758. @pre_cache_status_menu.push(Cache.menu_status("Background"))
  7759. @pre_cache_status_menu.push(Cache.menu_status("Layout"))
  7760. end
  7761.  
  7762. end
  7763.  
  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.  
  8486. #==============================================================================
  8487. # ■ Game_Temp
  8488. #==============================================================================
  8489. class Game_Temp
  8490.  
  8491. #--------------------------------------------------------------------------
  8492. # ● Execute Pre Cache Party Menu
  8493. #--------------------------------------------------------------------------
  8494. def execute_pre_cache_party_menu
  8495. @pre_cache_party_menu = []
  8496. @pre_cache_party_menu.push(Cache.menu_party("Background"))
  8497. @pre_cache_party_menu.push(Cache.menu_party("Layout"))
  8498. end
  8499.  
  8500. end
  8501.  
  8502. #==============================================================================
  8503. # ■ Scene_Party
  8504. #==============================================================================
  8505. class Scene_Party
  8506. include MOG_MENU_PARTY
  8507. include MOG_MENU_BASE
  8508.  
  8509. #--------------------------------------------------------------------------
  8510. # ● Main
  8511. #--------------------------------------------------------------------------
  8512. def main
  8513. execute_setup
  8514. execute_loop
  8515. execute_dispose
  8516. end
  8517.  
  8518. #--------------------------------------------------------------------------
  8519. # ● Execute Setup
  8520. #--------------------------------------------------------------------------
  8521. def execute_setup
  8522. @phase = 0
  8523. @actor = $game_party.members[0]
  8524. @actor_old = @actor
  8525. create_sprites
  8526. end
  8527.  
  8528. #--------------------------------------------------------------------------
  8529. # ● Execute Lopp
  8530. #--------------------------------------------------------------------------
  8531. def execute_loop
  8532. Graphics.transition(10)
  8533. loop do
  8534. Input.update
  8535. update
  8536. Graphics.update
  8537. break if SceneManager.scene != self
  8538. end
  8539. end
  8540.  
  8541. end
  8542.  
  8543. module MOG_ACTOR_MENU_PARTY
  8544. FACE_POSITION = [390,96]
  8545. NAME_POSITION = [390,73]
  8546. FONT_NAME = "Verdana"
  8547. FONT_SIZE = 16
  8548. FONT_BOLD = true
  8549. end
  8550.  
  8551.  
  8552. #==============================================================================
  8553. # ■ Actor Menu Status Party
  8554. #==============================================================================
  8555. class Actor_Menu_Status_Party
  8556.  
  8557. include MOG_ACTOR_MENU_PARTY
  8558.  
  8559. #--------------------------------------------------------------------------
  8560. # ● Initialize
  8561. #--------------------------------------------------------------------------
  8562. def initialize
  8563. @active = false
  8564. @max_members = $game_party.max_battle_members
  8565. @max_members = $game_party.members.size if @max_members > $game_party.members.size
  8566. create_sprites
  8567. end
  8568.  
  8569. #--------------------------------------------------------------------------
  8570. # ● Create Sprites
  8571. #--------------------------------------------------------------------------
  8572. def create_sprites
  8573. @face = []
  8574. @face_org = []
  8575. @name = []
  8576. @name_org = []
  8577. @actor_id = []
  8578. space = 70
  8579. index = 0
  8580. for actor in $game_party.members
  8581. @face.push(Sprite.new)
  8582. @face_org[index] = [FACE_POSITION[0],FACE_POSITION[1] + space * index]
  8583. @face[index].x = @face_org[index][0] + 150 + (150 * index)
  8584. @face[index].y = @face_org[index][1]
  8585. @face[index].z = 10
  8586. @name.push(Sprite.new)
  8587. @name[index].bitmap = Bitmap.new(200,120)
  8588. @name[index].bitmap.font.name = FONT_NAME
  8589. @name[index].bitmap.font.size = FONT_SIZE
  8590. @name[index].bitmap.font.bold = FONT_BOLD
  8591. @name_org[index] = [NAME_POSITION[0],NAME_POSITION[1] + space * index]
  8592. @name[index].x = @name_org[index][0] + 150 + (150 * index)
  8593. @name[index].y = @name_org[index][1]
  8594. @name[index].z = 11
  8595. @actor_id[index] = actor.id
  8596. index += 1
  8597. break if index >= @max_members
  8598. end
  8599. refresh
  8600. end
  8601.  
  8602. #--------------------------------------------------------------------------
  8603. # ● Refresh Position
  8604. #--------------------------------------------------------------------------
  8605. def refresh_position(actor,index)
  8606. @actor_id[index] = actor.id
  8607. @face[index].x = @face_org[index][0] + 150 + (150 * index)
  8608. @name[index].x = @name_org[index][0] + 150 + (150 * index)
  8609. end
  8610.  
  8611. #--------------------------------------------------------------------------
  8612. # ● Dispose
  8613. #--------------------------------------------------------------------------
  8614. def dispose
  8615. @face.each {|sprite| sprite.dispose }
  8616. @name.each {|sprite| sprite.bitmap.dispose }
  8617. @name.each {|sprite| sprite.dispose }
  8618. end
  8619.  
  8620. #--------------------------------------------------------------------------
  8621. # ● Refresh
  8622. #--------------------------------------------------------------------------
  8623. def refresh
  8624. index = 0
  8625. for actor in $game_party.members
  8626. face_name = "Face_B" + actor.id.to_s
  8627. @face[index].bitmap = Cache.menu(face_name.to_s)
  8628. @name[index].bitmap.clear
  8629. @name[index].bitmap.draw_text(100,28,64,32,"LV " + actor.level.to_s,0)
  8630. aname = actor.name
  8631. @name[index].bitmap.draw_text(0,0,100,32,aname.to_s,0)
  8632. refresh_position(actor,index) if @actor_id[index] != actor.id
  8633. index += 1
  8634. break if index >= @max_members
  8635. end
  8636. end
  8637.  
  8638. #--------------------------------------------------------------------------
  8639. # ● Update Slide
  8640. #--------------------------------------------------------------------------
  8641. def update_slide(type,sprite,np)
  8642. sprite.opacity += 5
  8643. cp = type == 0 ? sprite.x : sprite.y
  8644. sp = 3 + ((cp - np).abs / 10)
  8645. if cp > np
  8646. cp -= sp
  8647. cp = np if cp < np
  8648. elsif cp < np
  8649. cp += sp
  8650. cp = np if cp > np
  8651. end
  8652. sprite.x = cp if type == 0
  8653. sprite.y = cp if type == 1
  8654. end
  8655.  
  8656. #--------------------------------------------------------------------------
  8657. # ● Update
  8658. #--------------------------------------------------------------------------
  8659. def update(actor)
  8660. for index in 0...@name.size
  8661. update_slide(0,@face[index],@face_org[index][0])
  8662. update_slide(1,@face[index],@face_org[index][1])
  8663. update_slide(0,@name[index],@name_org[index][0])
  8664. update_slide(1,@name[index],@name_org[index][1])
  8665. end
  8666. end
  8667.  
  8668. end
  8669.  
  8670. #==============================================================================
  8671. # ■ Window_MenuStatus Party
  8672. #==============================================================================
  8673. class Window_MenuStatus_Party < Window_Selectable
  8674. attr_reader :pending_index
  8675.  
  8676. #--------------------------------------------------------------------------
  8677. # ● Initialize
  8678. #--------------------------------------------------------------------------
  8679. def initialize(x, y)
  8680. super(x, y, window_width, window_height)
  8681. @pending_index = -1
  8682. self.opacity = 0
  8683. self.contents.font.bold = true
  8684. self.contents.font.size = 18
  8685. refresh
  8686. end
  8687.  
  8688. #--------------------------------------------------------------------------
  8689. # ● Window Width
  8690. #--------------------------------------------------------------------------
  8691. def window_width
  8692. Graphics.width - 160
  8693. end
  8694.  
  8695. #--------------------------------------------------------------------------
  8696. # ● Window Height
  8697. #--------------------------------------------------------------------------
  8698. def window_height
  8699. Graphics.height
  8700. end
  8701.  
  8702. #--------------------------------------------------------------------------
  8703. # ● Item Max
  8704. #--------------------------------------------------------------------------
  8705. def item_max
  8706. $game_party.members.size
  8707. end
  8708.  
  8709. #--------------------------------------------------------------------------
  8710. # ● Item Height
  8711. #--------------------------------------------------------------------------
  8712. def item_height
  8713. (height - standard_padding * 2) / 4
  8714. end
  8715.  
  8716. #--------------------------------------------------------------------------
  8717. # ● Draw Item
  8718. #--------------------------------------------------------------------------
  8719. def draw_item(index)
  8720. actor = $game_party.members[index]
  8721. enabled = $game_party.battle_members.include?(actor)
  8722. rect = item_rect(index)
  8723. draw_item_background(index)
  8724. draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled)
  8725. self.contents.font.color = Color.new(255,155,55,255)
  8726. draw_text(rect.x + 60,rect.y + 23,64,32,"LV",2)
  8727. draw_text(rect.x + 60,rect.y + 43,64,32,"HP",2)
  8728. draw_text(rect.x + 60,rect.y + 63,64,32,"MP",2)
  8729.  
  8730. draw_text(rect.x + 140,rect.y + 23,64,32,"Atk",2)
  8731. draw_text(rect.x + 140,rect.y + 43,64,32,"Def",2)
  8732. draw_text(rect.x + 140,rect.y + 63,64,32,"Agi",2)
  8733.  
  8734. draw_text(rect.x + 220,rect.y + 23,64,32,"Mag",2)
  8735. draw_text(rect.x + 220,rect.y + 43,64,32,"Mdf",2)
  8736. draw_text(rect.x + 220,rect.y + 63,64,32,"Luk",2)
  8737.  
  8738. self.contents.font.color = Color.new(255,255,255,255)
  8739. draw_text(rect.x + 105,rect.y,105,32,actor.name,0)
  8740.  
  8741. draw_text(rect.x + 105,rect.y + 23,64,32,actor.level,2)
  8742. draw_text(rect.x + 105,rect.y + 43,64,32,actor.mhp,2)
  8743. draw_text(rect.x + 105,rect.y + 63,64,32,actor.mmp,2)
  8744.  
  8745.  
  8746. draw_text(rect.x + 185,rect.y + 23,64,32,actor.atk,2)
  8747. draw_text(rect.x + 185,rect.y + 43,64,32,actor.def,2)
  8748. draw_text(rect.x + 185,rect.y + 63,64,32,actor.agi,2)
  8749.  
  8750. draw_text(rect.x + 265,rect.y + 23,64,32,actor.mat,2)
  8751. draw_text(rect.x + 265,rect.y + 43,64,32,actor.mdf,2)
  8752. draw_text(rect.x + 265,rect.y + 63,64,32,actor.luk,2)
  8753.  
  8754. end
  8755.  
  8756.  
  8757. #--------------------------------------------------------------------------
  8758. # ● Draw Item Background
  8759. #--------------------------------------------------------------------------
  8760. def draw_item_background(index)
  8761. if index == @pending_index
  8762. contents.fill_rect(item_rect(index), pending_color)
  8763. end
  8764. end
  8765.  
  8766. #--------------------------------------------------------------------------
  8767. # ● Process OK
  8768. #--------------------------------------------------------------------------
  8769. def process_ok
  8770. super
  8771. $game_party.menu_actor = $game_party.members[index]
  8772. end
  8773.  
  8774. #--------------------------------------------------------------------------
  8775. # ● Select Last
  8776. #--------------------------------------------------------------------------
  8777. def select_last
  8778. select($game_party.menu_actor.index || 0)
  8779. end
  8780.  
  8781. #--------------------------------------------------------------------------
  8782. # ● Pending Index
  8783. #--------------------------------------------------------------------------
  8784. def pending_index=(index)
  8785. last_pending_index = @pending_index
  8786. @pending_index = index
  8787. redraw_item(@pending_index)
  8788. redraw_item(last_pending_index)
  8789. end
  8790. end
  8791.  
  8792. #==============================================================================
  8793. # ■ Scene_Party
  8794. #==============================================================================
  8795. class Scene_Party
  8796.  
  8797. #--------------------------------------------------------------------------
  8798. # ● Create Sprites
  8799. #--------------------------------------------------------------------------
  8800. def create_sprites
  8801. create_menu_background
  8802. create_layout
  8803. create_particles
  8804. create_status_window
  8805. create_actor_menu
  8806. end
  8807.  
  8808. #--------------------------------------------------------------------------
  8809. # ● Create Status Window
  8810. #--------------------------------------------------------------------------
  8811. def create_status_window
  8812. @status_window = Window_MenuStatus_Party.new(0, 0)
  8813. command_formation
  8814. end
  8815.  
  8816. #--------------------------------------------------------------------------
  8817. # ● Create Actor Menu
  8818. #--------------------------------------------------------------------------
  8819. def create_actor_menu
  8820. @actor_status = Actor_Menu_Status_Party.new
  8821. end
  8822.  
  8823. #--------------------------------------------------------------------------
  8824. # ● Command Personal
  8825. #--------------------------------------------------------------------------
  8826. def command_personal
  8827. @status_window.select_last
  8828. @status_window.activate
  8829. @status_window.set_handler(:ok, method(:on_personal_ok))
  8830. @status_window.set_handler(:cancel, method(:on_personal_cancel))
  8831. end
  8832.  
  8833. #--------------------------------------------------------------------------
  8834. # ● Command Formation
  8835. #--------------------------------------------------------------------------
  8836. def command_formation
  8837. @status_window.index = 0
  8838. @old_index = @status_window.index
  8839. @status_window.activate
  8840. @status_window.set_handler(:ok, method(:on_formation_ok))
  8841. @status_window.set_handler(:cancel, method(:on_formation_cancel))
  8842. end
  8843.  
  8844. #--------------------------------------------------------------------------
  8845. # ● On Personal Cancel
  8846. #--------------------------------------------------------------------------
  8847. def on_personal_cancel
  8848. @status_window.unselect
  8849. end
  8850.  
  8851. #--------------------------------------------------------------------------
  8852. # ● On Formation OK
  8853. #--------------------------------------------------------------------------
  8854. def on_formation_ok
  8855. if @status_window.pending_index >= 0
  8856. $game_party.swap_order(@status_window.index,
  8857. @status_window.pending_index)
  8858. @status_window.pending_index = -1
  8859. @status_window.redraw_item(@status_window.index)
  8860. @actor_status.refresh
  8861. else
  8862. @status_window.pending_index = @status_window.index
  8863. end
  8864. @status_window.activate
  8865. end
  8866.  
  8867. #--------------------------------------------------------------------------
  8868. # ● On Formation Cancel
  8869. #--------------------------------------------------------------------------
  8870. def on_formation_cancel
  8871. if @status_window.pending_index >= 0
  8872. @status_window.pending_index = -1
  8873. @status_window.activate
  8874. else
  8875. return_scene
  8876. end
  8877. end
  8878.  
  8879. #--------------------------------------------------------------------------
  8880. # ● Create Menu Background
  8881. #--------------------------------------------------------------------------
  8882. def create_menu_background
  8883. @background = Plane.new
  8884. @background.bitmap = $game_temp.pre_cache_party_menu[0]
  8885. @background.z = 0
  8886. @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  8887. end
  8888.  
  8889. #--------------------------------------------------------------------------
  8890. # ● Create Layout
  8891. #--------------------------------------------------------------------------
  8892. def create_layout
  8893. @layout = Sprite.new
  8894. @layout.bitmap = $game_temp.pre_cache_party_menu[1]
  8895. @layout.z = 3
  8896. end
  8897.  
  8898. #--------------------------------------------------------------------------
  8899. # ● Create Particles
  8900. #--------------------------------------------------------------------------
  8901. def create_particles
  8902. @particles_sprite =[]
  8903. for i in 0...NUMBER_OF_PARTICLES
  8904. @particles_sprite.push(Particles_Menu.new(nil))
  8905. end
  8906. end
  8907.  
  8908. end
  8909.  
  8910. #==============================================================================
  8911. # ■ Scene_Party
  8912. #==============================================================================
  8913. class Scene_Party
  8914.  
  8915. #--------------------------------------------------------------------------
  8916. # ● Execute Dispose
  8917. #--------------------------------------------------------------------------
  8918. def execute_dispose
  8919. Graphics.freeze
  8920. dispose_background
  8921. dispose_layout
  8922. dispose_particles
  8923. dispose_status_window
  8924. dispose_actor_menu
  8925. end
  8926.  
  8927. #--------------------------------------------------------------------------
  8928. # ● Dispose Status Window
  8929. #--------------------------------------------------------------------------
  8930. def dispose_status_window
  8931. @status_window.dispose
  8932. end
  8933.  
  8934. #--------------------------------------------------------------------------
  8935. # ● Dispose Background
  8936. #--------------------------------------------------------------------------
  8937. def dispose_background
  8938. return if @background == nil
  8939. @background.dispose
  8940. @background = nil
  8941. end
  8942.  
  8943. #--------------------------------------------------------------------------
  8944. # ● Dispose Layout
  8945. #--------------------------------------------------------------------------
  8946. def dispose_layout
  8947. return if @layout == nil
  8948. @layout.dispose
  8949. @layout = nil
  8950. end
  8951.  
  8952. #--------------------------------------------------------------------------
  8953. # ● Dispose Particles
  8954. #--------------------------------------------------------------------------
  8955. def dispose_particles
  8956. return if @particles_sprite == nil
  8957. @particles_sprite.each {|sprite| sprite.dispose }
  8958. end
  8959.  
  8960. #--------------------------------------------------------------------------
  8961. # ● Dispose Actor Menu
  8962. #--------------------------------------------------------------------------
  8963. def dispose_actor_menu
  8964. return if @actor_status == nil
  8965. @actor_status.dispose
  8966. end
  8967.  
  8968. end
  8969.  
  8970. #==============================================================================
  8971. # ■ Scene_Party
  8972. #==============================================================================
  8973. class Scene_Party
  8974.  
  8975. #--------------------------------------------------------------------------
  8976. # ● Update Sprites
  8977. #--------------------------------------------------------------------------
  8978. def update_sprites
  8979. update_background
  8980. update_particles
  8981. update_status_window
  8982. end
  8983.  
  8984. #--------------------------------------------------------------------------
  8985. # ● Update Background
  8986. #--------------------------------------------------------------------------
  8987. def update_background
  8988. return if @background == nil
  8989. @background.ox += @background_scroll[0]
  8990. @background.oy += @background_scroll[1]
  8991. end
  8992.  
  8993. #--------------------------------------------------------------------------
  8994. # ● Update Particles
  8995. #--------------------------------------------------------------------------
  8996. def update_particles
  8997. return if @particles_sprite == nil
  8998. @particles_sprite.each {|sprite| sprite.update }
  8999. end
  9000.  
  9001. #--------------------------------------------------------------------------
  9002. # ● Update Status Window
  9003. #--------------------------------------------------------------------------
  9004. def update_status_window
  9005. return if @status_window == nil
  9006. @status_window.update
  9007. update_slide(0,@status_window,0)
  9008. update_slide(1,@status_window,0)
  9009. @actor = $game_party.members[@status_window.index]
  9010. @actor_status.update(@actor)
  9011. end
  9012.  
  9013. #--------------------------------------------------------------------------
  9014. # ● Update Slide
  9015. #--------------------------------------------------------------------------
  9016. def update_slide(type,sprite,np)
  9017. sprite.contents_opacity += 5
  9018. cp = type == 0 ? sprite.x : sprite.y
  9019. sp = 3 + ((cp - np).abs / 10)
  9020. if cp > np
  9021. cp -= sp
  9022. cp = np if cp < np
  9023. elsif cp < np
  9024. cp += sp
  9025. cp = np if cp > np
  9026. end
  9027. sprite.x = cp if type == 0
  9028. sprite.y = cp if type == 1
  9029. end
  9030.  
  9031. end
  9032.  
  9033. #==============================================================================
  9034. # ■ Scene_Party
  9035. #==============================================================================
  9036. class Scene_Party
  9037.  
  9038. #--------------------------------------------------------------------------
  9039. # ● Update
  9040. #--------------------------------------------------------------------------
  9041. def update
  9042. update_sprites
  9043. update_command
  9044. end
  9045.  
  9046. #--------------------------------------------------------------------------
  9047. # ● Return Scene
  9048. #--------------------------------------------------------------------------
  9049. def return_scene
  9050. Sound.play_cancel
  9051. SceneManager.return
  9052. end
  9053.  
  9054. #--------------------------------------------------------------------------
  9055. # ● ON Actor Charge
  9056. #--------------------------------------------------------------------------
  9057. def on_actor_change
  9058. $game_temp.actor_menu_temp = @actor
  9059. SceneManager.goto(Scene_Status)
  9060. end
  9061.  
  9062. end
  9063.  
  9064. #==============================================================================
  9065. # ■ Scene_Party
  9066. #==============================================================================
  9067. class Scene_Party
  9068.  
  9069. #--------------------------------------------------------------------------
  9070. # ● Update Command
  9071. #--------------------------------------------------------------------------
  9072. def update_command
  9073.  
  9074. end
  9075.  
  9076. end
  9077.  
  9078. #==============================================================================
  9079. # ■ Game_Temp
  9080. #==============================================================================
  9081. class Game_Temp
  9082.  
  9083. #--------------------------------------------------------------------------
  9084. # ● Execute Pre Cache File Menu
  9085. #--------------------------------------------------------------------------
  9086. def execute_pre_cache_file_menu
  9087. @pre_cache_file_menu = []
  9088. @pre_cache_file_menu.push(Cache.menu_save("Background"))
  9089. @pre_cache_file_menu.push(Cache.menu_save("Layout"))
  9090. @pre_cache_file_menu.push(Cache.menu_save("File_Mode"))
  9091. @pre_cache_file_menu.push(Cache.menu_save("File_layout_1"))
  9092. @pre_cache_file_menu.push(Cache.menu_save("File_layout_2"))
  9093. @pre_cache_file_menu.push(Cache.menu_save("File_layout_3"))
  9094. @pre_cache_file_menu.push(Cache.menu_save("Character_Floor"))
  9095. @pre_cache_file_menu.push(Cache.menu_save("File_Number"))
  9096. end
  9097.  
  9098. end
  9099.  
  9100. #==============================================================================
  9101. # ■ Game Temp
  9102. #==============================================================================
  9103. class Game_Temp
  9104.  
  9105. attr_accessor :scene_save
  9106. #--------------------------------------------------------------------------
  9107. # ● Initialize
  9108. #--------------------------------------------------------------------------
  9109. alias mog_scene_file_initialize initialize
  9110. def initialize
  9111. mog_scene_file_initialize
  9112. @scene_save = false
  9113. end
  9114.  
  9115. end
  9116.  
  9117. #==============================================================================
  9118. # ■ Window_Base
  9119. #==============================================================================
  9120. class Window_Base < Window
  9121.  
  9122. #--------------------------------------------------------------------------
  9123. # ● draw_picture_number(x,y,value,file_name,align, space, frame_max ,frame_index)
  9124. #--------------------------------------------------------------------------
  9125. # X - Posição na horizontal
  9126. # Y - Posição na vertical
  9127. # VALUE - Valor Numérico
  9128. # FILE_NAME - Nome do arquivo
  9129. # ALIGN - Centralizar 0 - Esquerda 1- Centro 2 - Direita
  9130. # SPACE - Espaço entre os números.
  9131. # FRAME_MAX - Quantidade de quadros(Linhas) que a imagem vai ter.
  9132. # FRAME_INDEX - Definição do quadro a ser utilizado.
  9133. #--------------------------------------------------------------------------
  9134. def draw_picture_number_file(x,y,value, file_name,align = 0, space = 0, frame_max = 1,frame_index = 0)
  9135. number_image = $game_temp.pre_cache_file_menu[7]
  9136. frame_max = 1 if frame_max < 1
  9137. frame_index = frame_max -1 if frame_index > frame_max -1
  9138. align = 2 if align > 2
  9139. cw = number_image.width / 10
  9140. ch = number_image.height / frame_max
  9141. h = ch * frame_index
  9142. number = value.abs.to_s.split(//)
  9143. case align
  9144. when 0
  9145. plus_x = (-cw + space) * number.size
  9146. when 1
  9147. plus_x = (-cw + space) * number.size
  9148. plus_x /= 2
  9149. when 2
  9150. plus_x = 0
  9151. end
  9152. for r in 0..number.size - 1
  9153. number_abs = number[r].to_i
  9154. number_rect = Rect.new(cw * number_abs, h, cw, ch)
  9155. self.contents.blt(plus_x + x + ((cw - space) * r), y , number_image, number_rect)
  9156. end
  9157. end
  9158.  
  9159. #--------------------------------------------------------------------------
  9160. # ● Draw Help Layout
  9161. #--------------------------------------------------------------------------
  9162. def draw_face_save(name,x,y,type)
  9163. if type == 0
  9164. image_name = name + "_0"
  9165. elsif type == 1
  9166. image_name = name + "_1"
  9167. else
  9168. image_name = name + "_2"
  9169. end
  9170. image = Cache.face(image_name)
  9171. cw = image.width
  9172. ch = image.height
  9173. src_rect = Rect.new(0, 0, cw, ch)
  9174. self.contents.blt(x , y , image, src_rect)
  9175. image.dispose
  9176. end
  9177.  
  9178. #--------------------------------------------------------------------------
  9179. # ● draw_parameter_layout
  9180. #--------------------------------------------------------------------------
  9181. def draw_parameter_layout(x,y)
  9182. image = $game_temp.pre_cache_file_menu[3]
  9183. cw = image.width
  9184. ch = image.height
  9185. src_rect = Rect.new(0, 0, cw, ch)
  9186. self.contents.blt(x , y , image, src_rect)
  9187. end
  9188.  
  9189. #--------------------------------------------------------------------------
  9190. # ● draw_parameter_layout2
  9191. #--------------------------------------------------------------------------
  9192. def draw_parameter_layout2(x,y,type)
  9193. if type == 0
  9194. image = $game_temp.pre_cache_file_menu[4]
  9195. else
  9196. image = $game_temp.pre_cache_file_menu[5]
  9197. end
  9198. cw = image.width
  9199. ch = image.height
  9200. src_rect = Rect.new(0, 0, cw, ch)
  9201. self.contents.blt(x , y , image, src_rect)
  9202. end
  9203.  
  9204. #--------------------------------------------------------------------------
  9205. # ● draw_character_floor
  9206. #--------------------------------------------------------------------------
  9207. def draw_character_floor(x,y)
  9208. image = $game_temp.pre_cache_file_menu[6]
  9209. cw = image.width
  9210. ch = image.height
  9211. src_rect = Rect.new(0, 0, cw, ch)
  9212. self.contents.blt(x , y , image, src_rect)
  9213. end
  9214.  
  9215. end
  9216.  
  9217. #==============================================================================
  9218. # ■ DataManager
  9219. #==============================================================================
  9220. module DataManager
  9221.  
  9222. #--------------------------------------------------------------------------
  9223. # ● Make Save Header
  9224. #--------------------------------------------------------------------------
  9225. def self.make_save_header
  9226. header = {}
  9227. header[:characters] = $game_party.characters_for_savefile
  9228. header[:playtime_s] = $game_system.playtime_s
  9229. header[:playtime] = $game_system.playtime
  9230. header[:map_name] = $game_map.display_name
  9231. header[:members] = $game_party.members
  9232. header
  9233. end
  9234.  
  9235. end
  9236.  
  9237. #==============================================================================
  9238. # ■ Scene Save
  9239. #==============================================================================
  9240. class Scene_Save < Scene_File
  9241.  
  9242. #--------------------------------------------------------------------------
  9243. # ● Initialize
  9244. #--------------------------------------------------------------------------
  9245. def initialize
  9246. $game_temp.scene_save = true
  9247. super
  9248. end
  9249.  
  9250. end
  9251.  
  9252. #==============================================================================
  9253. # ■ Scene Load
  9254. #==============================================================================
  9255. class Scene_Load < Scene_File
  9256.  
  9257. #--------------------------------------------------------------------------
  9258. # ● Initialize
  9259. #--------------------------------------------------------------------------
  9260. def initialize
  9261. $game_temp.scene_save = false
  9262. super
  9263. end
  9264.  
  9265. end
  9266.  
  9267. #==============================================================================
  9268. # ■ Scene_File
  9269. #==============================================================================
  9270. class Scene_File
  9271. include MOG_MENU_SAVE
  9272.  
  9273. #--------------------------------------------------------------------------
  9274. # ● Main
  9275. #--------------------------------------------------------------------------
  9276. def main
  9277. $game_temp.execute_pre_cache_file_menu
  9278. create_sprites
  9279. Graphics.transition(10)
  9280. execute_loop
  9281. execute_dispose
  9282. end
  9283.  
  9284. #--------------------------------------------------------------------------
  9285. # ● Execute Loop
  9286. #--------------------------------------------------------------------------
  9287. def execute_loop
  9288. loop do
  9289. Graphics.update
  9290. Input.update
  9291. update
  9292. if SceneManager.scene != self
  9293. break
  9294. end
  9295. end
  9296. end
  9297.  
  9298. end
  9299.  
  9300. #==============================================================================
  9301. # ■ Window_SaveFile
  9302. #==============================================================================
  9303. class Window_SaveFile_A < Window_Base
  9304. attr_reader :filename
  9305. attr_reader :file_exist
  9306. attr_reader :time_stamp
  9307. attr_reader :selected
  9308. attr_reader :file_index
  9309.  
  9310. #--------------------------------------------------------------------------
  9311. # ● Initialize
  9312. #--------------------------------------------------------------------------
  9313. def initialize(file_index, filename)
  9314. super(0, 0,720, 140)
  9315. self.opacity = 0
  9316. @file_index = file_index
  9317. @filename = filename
  9318. load_gamedata
  9319. refresh
  9320. @selected = false
  9321. end
  9322.  
  9323. #--------------------------------------------------------------------------
  9324. # ● load_gamedata
  9325. #--------------------------------------------------------------------------
  9326. def load_gamedata
  9327. @time_stamp = Time.at(0)
  9328. @file_exist = FileTest.exist?(@filename)
  9329. if @file_exist
  9330. header = DataManager.load_header(@file_index)
  9331. if header == nil
  9332. @file_exist = false
  9333. return
  9334. end
  9335. @characters = header[:characters]
  9336. @total_sec = header[:playtime]
  9337. @mapname = header[:map_name]
  9338. @members = header[:members]
  9339. end
  9340. end
  9341.  
  9342. #--------------------------------------------------------------------------
  9343. # ● Refresh
  9344. #--------------------------------------------------------------------------
  9345. def refresh
  9346. self.contents.clear
  9347. self.contents.font.color = normal_color
  9348. xp = 96
  9349. ex = 60
  9350. if @file_exist
  9351. if @total_sec == nil
  9352. draw_parameter_layout2(0,50,0)
  9353. draw_parameter_layout(-10 + xp,0)
  9354. value = @file_index + 1
  9355. draw_picture_number_file(13 + xp, 32,value, "File_Number_01",1,0,3,0)
  9356. self.contents.draw_text(140, 50, 450, 32, "Error! - Please, dont't use your old Save Files...", 0)
  9357. return
  9358. end
  9359. draw_parameter_layout2(0,50,0)
  9360. draw_parameter_layout(-10 + xp,0)
  9361. value = @file_index + 1
  9362. draw_picture_number_file(13 + xp, 32,value, "File_Number_01",1,0,3,0)
  9363. draw_party_characters(180 + xp, 75,ex)
  9364. draw_playtime(495, 20, contents.width - 4, 2)
  9365. draw_map_location( 400 + xp,64)
  9366. draw_level(185 + xp,85,ex)
  9367. draw_face_save(40 + xp,0)
  9368. else
  9369. draw_parameter_layout2(0,50,1)
  9370. draw_parameter_layout(-10 + xp,0)
  9371. value = @file_index + 1
  9372. draw_picture_number_file(13 + xp, 32,value, "File_Number_01",1,0,3,0)
  9373. self.contents.draw_text(260, 50, 120, 32, "No Data", 1)
  9374. end
  9375. end
  9376.  
  9377. #--------------------------------------------------------------------------
  9378. # ● draw_face
  9379. #--------------------------------------------------------------------------
  9380. def draw_face_save(x,y)
  9381. draw_actor_face(@members[0], x, y)
  9382. end
  9383.  
  9384. #--------------------------------------------------------------------------
  9385. # ● draw_level
  9386. #--------------------------------------------------------------------------
  9387. def draw_level(x,y,ex)
  9388. self.contents.font.color = normal_color
  9389. for i in 0...@members.size
  9390. break if i > 3
  9391. level = @members[i].level
  9392. draw_picture_number_file(x + (ex * i) , y ,level, "File_Number_01",1,0,3,1)
  9393. end
  9394. end
  9395.  
  9396. #--------------------------------------------------------------------------
  9397. # ● draw_map_location
  9398. #--------------------------------------------------------------------------
  9399. def draw_map_location(x,y)
  9400. self.contents.font.bold = true
  9401. self.contents.font.name = "Georgia"
  9402. self.contents.font.size = 20
  9403. self.contents.font.italic = true
  9404. self.contents.draw_text(x, y, 125, 32, @mapname.to_s, 0)
  9405. end
  9406. #--------------------------------------------------------------------------
  9407. # ● draw_party_characters
  9408. #--------------------------------------------------------------------------
  9409. def draw_party_characters(x, y,ex)
  9410. for i in 0...@characters.size
  9411. break if i > 3
  9412. name = @characters[i][0]
  9413. index = @characters[i][1]
  9414. draw_character_floor(- 35 + x + i * ex,y - 20)
  9415. draw_character(name, index, x + i * ex, y)
  9416. end
  9417. end
  9418.  
  9419. #--------------------------------------------------------------------------
  9420. # ● draw_playtime
  9421. #--------------------------------------------------------------------------
  9422. def draw_playtime(x, y, width, align)
  9423. hour = @total_sec / 60 / 60
  9424. min = @total_sec / 60 % 60
  9425. sec = @total_sec % 60
  9426. time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
  9427. draw_picture_number_file(x + 18 * 0, y ,0, "File_Number_01",0,0,3,0) if hour < 10
  9428. draw_picture_number_file(x + 18 * 1, y ,hour, "File_Number_01",0,0,3,0)
  9429. draw_picture_number_file(x + 18 * 3, y ,0, "File_Number_01",0,0,3,0) if min < 10
  9430. draw_picture_number_file(x + 18 * 4, y ,min, "File_Number_01",0,0,3,0)
  9431. draw_picture_number_file(x + 18 * 6, y ,0, "File_Number_01",0,0,3,0) if sec < 10
  9432. draw_picture_number_file(x + 18 * 7, y ,sec , "File_Number_01",0,0,3,0)
  9433. end
  9434.  
  9435. #--------------------------------------------------------------------------
  9436. # ● selected
  9437. #--------------------------------------------------------------------------
  9438. def selected=(selected)
  9439. @selected = selected
  9440. end
  9441. end
  9442.  
  9443. #==============================================================================
  9444. # ■ Scene_File
  9445. #==============================================================================
  9446. class Scene_File
  9447.  
  9448. #--------------------------------------------------------------------------
  9449. # ● Create Sprites
  9450. #--------------------------------------------------------------------------
  9451. def create_sprites
  9452. @saving = $game_temp.scene_save
  9453. @file_max = FILES_MAX
  9454. @file_max = 1 if FILES_MAX < 1
  9455. create_background
  9456. create_layout
  9457. create_savefile_windows
  9458. create_particles
  9459. @index = DataManager.last_savefile_index
  9460. @check_prev_index = true
  9461. @savefile_windows[@index].selected = true
  9462. end
  9463.  
  9464. #--------------------------------------------------------------------------
  9465. # ● Create Background
  9466. #--------------------------------------------------------------------------
  9467. def create_background
  9468. @background = Plane.new
  9469. @background.bitmap = $game_temp.pre_cache_file_menu[0]
  9470. @background.z = 0
  9471. @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  9472. end
  9473.  
  9474. #--------------------------------------------------------------------------
  9475. # ● Create_Layout
  9476. #--------------------------------------------------------------------------
  9477. def create_layout
  9478. @layout_01 = Sprite.new
  9479. @layout_01.bitmap = $game_temp.pre_cache_file_menu[1]
  9480. @layout_01.z = 1
  9481. @layout_01.blend_type = 1
  9482. @save_image = $game_temp.pre_cache_file_menu[2]
  9483. @layout_02 = Sprite.new
  9484. @layout_02.bitmap = Bitmap.new(@save_image.width,@save_image.height)
  9485. cw = @save_image.width
  9486. ch = @save_image.height / 2
  9487. if @saving
  9488. h = 0
  9489. else
  9490. h = ch
  9491. end
  9492. src_rect = Rect.new(0, h, cw, ch)
  9493. @layout_02.bitmap.blt(0,0, @save_image, src_rect)
  9494. @layout_02.z = 3
  9495. @layout_02.y = 370
  9496. end
  9497.  
  9498. #--------------------------------------------------------------------------
  9499. # ● Create Save File Window
  9500. #--------------------------------------------------------------------------
  9501. def create_savefile_windows
  9502. @pw_pos = [-160,32]
  9503. @aw_pos = [-96,160]
  9504. @nw_pos = [-32,288]
  9505. @savefile_windows = []
  9506. for i in 0...@file_max
  9507. @savefile_windows[i] = Window_SaveFile_A.new(i, DataManager.make_filename(i))
  9508. @savefile_windows[i].z = 2
  9509. @savefile_windows[i].visible = false
  9510. @savefile_windows[i].x = 400
  9511. end
  9512. check_active_window
  9513. @item_max = @file_max
  9514. end
  9515.  
  9516. #--------------------------------------------------------------------------
  9517. # ● Create Particles
  9518. #--------------------------------------------------------------------------
  9519. def create_particles
  9520. @particles_sprite =[]
  9521. for i in 0...NUMBER_OF_PARTICLES
  9522. @particles_sprite.push(Particles_Menu.new(nil))
  9523. end
  9524. end
  9525.  
  9526. end
  9527.  
  9528. #==============================================================================
  9529. # ■ Scene_File
  9530. #==============================================================================
  9531. class Scene_File
  9532.  
  9533. #--------------------------------------------------------------------------
  9534. # ● Execute Dispose
  9535. #--------------------------------------------------------------------------
  9536. def execute_dispose
  9537. return if @background == nil
  9538. Graphics.freeze
  9539. dispose_background
  9540. dispose_particles
  9541. dispose_layout
  9542. dispose_item_windows
  9543. end
  9544.  
  9545. #--------------------------------------------------------------------------
  9546. # ● Dispose Layout
  9547. #--------------------------------------------------------------------------
  9548. def dispose_layout
  9549. @layout_01.dispose
  9550. @layout_02.bitmap.dispose
  9551. @layout_02.dispose
  9552. end
  9553.  
  9554. #--------------------------------------------------------------------------
  9555. # ● Dispose Background
  9556. #--------------------------------------------------------------------------
  9557. def dispose_background
  9558. @background.dispose
  9559. @background = nil
  9560. end
  9561.  
  9562. #--------------------------------------------------------------------------
  9563. # ● Dispose Particles
  9564. #--------------------------------------------------------------------------
  9565. def dispose_particles
  9566. return if @particles_sprite == nil
  9567. @particles_sprite.each {|sprite| sprite.dispose }
  9568. end
  9569.  
  9570. #--------------------------------------------------------------------------
  9571. # ● Dispose of Save File Window
  9572. #--------------------------------------------------------------------------
  9573. def dispose_item_windows
  9574. for window in @savefile_windows
  9575. window.dispose
  9576. end
  9577. end
  9578.  
  9579. end
  9580.  
  9581. #==============================================================================
  9582. # ■ Scene_File
  9583. #==============================================================================
  9584. class Scene_File
  9585.  
  9586. #--------------------------------------------------------------------------
  9587. # ● Update Sprites
  9588. #--------------------------------------------------------------------------
  9589. def update_sprites
  9590. check_start_index
  9591. update_savefile_windows
  9592. update_background
  9593. update_particles
  9594. end
  9595.  
  9596. #--------------------------------------------------------------------------
  9597. # ● Update Background
  9598. #--------------------------------------------------------------------------
  9599. def update_background
  9600. return if @background == nil
  9601. @background.ox += @background_scroll[0]
  9602. @background.oy += @background_scroll[1]
  9603. end
  9604.  
  9605. #--------------------------------------------------------------------------
  9606. # ● Update Particles
  9607. #--------------------------------------------------------------------------
  9608. def update_particles
  9609. return if @particles_sprite == nil
  9610. @particles_sprite.each {|sprite| sprite.update }
  9611. end
  9612.  
  9613. #--------------------------------------------------------------------------
  9614. # ● check_start_index
  9615. #--------------------------------------------------------------------------
  9616. def check_start_index
  9617. return if @check_prev_index == false
  9618. @check_prev_index = false
  9619. check_active_window
  9620. end
  9621.  
  9622. #--------------------------------------------------------------------------
  9623. # ● check_active_window
  9624. #--------------------------------------------------------------------------
  9625. def check_active_window
  9626. @index = 0 if @index == nil
  9627. for i in 0...@file_max
  9628. @pw = @index - 1
  9629. @pw = 0 if @pw > @file_max - 1
  9630. @pw = @file_max- 1 if @pw < 0
  9631. @aw = @index
  9632. @nw = @index + 1
  9633. @nw = 0 if @nw > @file_max - 1
  9634. @nw = @file_max - 1 if @nw < 0
  9635. case @savefile_windows[i].file_index
  9636. when @pw,@nw
  9637. @savefile_windows[i].visible = true
  9638. @savefile_windows[i].contents_opacity = 80
  9639. when @aw
  9640. @savefile_windows[i].visible = true
  9641. @savefile_windows[i].contents_opacity = 255
  9642. else
  9643. @savefile_windows[i].visible = false
  9644. end
  9645. end
  9646. end
  9647.  
  9648. #--------------------------------------------------------------------------
  9649. # ● Update Save File Window
  9650. #--------------------------------------------------------------------------
  9651. def update_savefile_windows
  9652. update_slide_window
  9653. for window in @savefile_windows
  9654. window.update
  9655. end
  9656. end
  9657.  
  9658. #--------------------------------------------------------------------------
  9659. # ● update_slide_window
  9660. #--------------------------------------------------------------------------
  9661. def update_slide_window
  9662. slide_window_x(@pw,@pw_pos[0])
  9663. slide_window_x(@aw,@aw_pos[0])
  9664. slide_window_x(@nw,@nw_pos[0])
  9665. slide_window_y(@pw,@pw_pos[1])
  9666. slide_window_y(@aw,@aw_pos[1])
  9667. slide_window_y(@nw,@nw_pos[1])
  9668. end
  9669.  
  9670. #--------------------------------------------------------------------------
  9671. # ● slide_window_x
  9672. #--------------------------------------------------------------------------
  9673. def slide_window_x(i,x_pos)
  9674. if @savefile_windows[i].x < x_pos
  9675. @savefile_windows[i].x += 15
  9676. @savefile_windows[i].x = x_pos if @savefile_windows[i].x > x_pos
  9677. end
  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. end
  9683.  
  9684. #--------------------------------------------------------------------------
  9685. # ● slide_window_y
  9686. #--------------------------------------------------------------------------
  9687. def slide_window_y(i,y_pos)
  9688. if @savefile_windows[i].y < y_pos
  9689. @savefile_windows[i].y += 15
  9690. @savefile_windows[i].y = y_pos if @savefile_windows[i].y > y_pos
  9691. end
  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. end
  9697.  
  9698. #--------------------------------------------------------------------------
  9699. # ● reset_position
  9700. #--------------------------------------------------------------------------
  9701. def reset_position(diretion)
  9702. check_active_window
  9703. case diretion
  9704. when 0
  9705. @savefile_windows[@pw].y = -64
  9706. @savefile_windows[@pw].x = 0
  9707. when 1
  9708. @savefile_windows[@nw].y = 440
  9709. @savefile_windows[@nw].x = 0
  9710. end
  9711. end
  9712.  
  9713. end
  9714.  
  9715. #==============================================================================
  9716. # ■ Scene_File
  9717. #==============================================================================
  9718. class Scene_File
  9719.  
  9720. #--------------------------------------------------------------------------
  9721. # ● Frame Update
  9722. #--------------------------------------------------------------------------
  9723. def update
  9724. update_sprites
  9725. update_command
  9726. end
  9727.  
  9728. #--------------------------------------------------------------------------
  9729. # ● Update Command
  9730. #--------------------------------------------------------------------------
  9731. def update_command
  9732. if Input.trigger?(Input::C)
  9733. on_savefile_ok
  9734. elsif Input.trigger?(Input::B)
  9735. Sound.play_cancel
  9736. return_scene
  9737. else
  9738. last_index = @index
  9739. if Input.trigger?(Input::DOWN)
  9740. execute_index(1)
  9741. if @file_max > 2
  9742. reset_position(1)
  9743. else
  9744. reset_position(0)
  9745. end
  9746. end
  9747. if Input.trigger?(Input::UP)
  9748. execute_index(-1)
  9749. reset_position(0)
  9750. end
  9751. if @index != last_index
  9752. Sound.play_cursor
  9753. @savefile_windows[last_index].selected = false
  9754. @savefile_windows[@index].selected = true
  9755. end
  9756. end
  9757. end
  9758.  
  9759. #--------------------------------------------------------------------------
  9760. # ● Execute Index
  9761. #--------------------------------------------------------------------------
  9762. def execute_index(value)
  9763. @index += value
  9764. @index = @index >= @file_max ? 0 : @index < 0 ? (@file_max - 1) : @index
  9765. end
  9766.  
  9767. end
  9768.  
  9769. #==============================================================================
  9770. # ■ Game_Temp
  9771. #==============================================================================
  9772. class Game_Temp
  9773.  
  9774. #--------------------------------------------------------------------------
  9775. # ● Execute Pre Cache End Menu
  9776. #--------------------------------------------------------------------------
  9777. def execute_pre_cache_end_menu
  9778. @pre_cache_end_menu = []
  9779. @pre_cache_end_menu.push(Cache.menu_end("Background"))
  9780. @pre_cache_end_menu.push(Cache.menu_end("Layout"))
  9781. end
  9782.  
  9783. end
  9784.  
  9785. #==============================================================================
  9786. # ■ Scene_End
  9787. #==============================================================================
  9788. class Scene_End
  9789. include MOG_MENU_END
  9790. include MOG_MENU_BASE
  9791.  
  9792. #--------------------------------------------------------------------------
  9793. # ● Main
  9794. #--------------------------------------------------------------------------
  9795. def main
  9796. execute_setup
  9797. execute_loop
  9798. execute_dispose
  9799. end
  9800.  
  9801. #--------------------------------------------------------------------------
  9802. # ● Execute Setup
  9803. #--------------------------------------------------------------------------
  9804. def execute_setup
  9805. @phase = 0
  9806. create_sprites
  9807. end
  9808.  
  9809. #--------------------------------------------------------------------------
  9810. # ● Execute Lopp
  9811. #--------------------------------------------------------------------------
  9812. def execute_loop
  9813. Graphics.transition(10)
  9814. loop do
  9815. Input.update
  9816. update
  9817. Graphics.update
  9818. break if SceneManager.scene != self
  9819. end
  9820. end
  9821.  
  9822. end
  9823.  
  9824. #==============================================================================
  9825. # ■ Scene_End
  9826. #==============================================================================
  9827. class Scene_End
  9828.  
  9829. #--------------------------------------------------------------------------
  9830. # ● Create Sprites
  9831. #--------------------------------------------------------------------------
  9832. def create_sprites
  9833. create_menu_background
  9834. create_layout
  9835. create_particles
  9836. create_command_window
  9837. end
  9838.  
  9839. #--------------------------------------------------------------------------
  9840. # ● Create Menu Background
  9841. #--------------------------------------------------------------------------
  9842. def create_menu_background
  9843. @background = Plane.new
  9844. @background.bitmap = $game_temp.pre_cache_end_menu[0]
  9845. @background.z = 0
  9846. @background_scroll = [BACKGROUND_SCROLL_SPEED[0],BACKGROUND_SCROLL_SPEED[1]]
  9847. end
  9848.  
  9849. #--------------------------------------------------------------------------
  9850. # ● Create Layout
  9851. #--------------------------------------------------------------------------
  9852. def create_layout
  9853. @layout = Sprite.new
  9854. @layout.bitmap = $game_temp.pre_cache_end_menu[1]
  9855. @layout.z = 3
  9856. end
  9857.  
  9858. #--------------------------------------------------------------------------
  9859. # ● Create Particles
  9860. #--------------------------------------------------------------------------
  9861. def create_particles
  9862. @particles_sprite =[]
  9863. for i in 0...NUMBER_OF_PARTICLES
  9864. @particles_sprite.push(Particles_Menu.new(nil))
  9865. end
  9866. end
  9867.  
  9868. #--------------------------------------------------------------------------
  9869. # ● Create Command Window
  9870. #--------------------------------------------------------------------------
  9871. def create_command_window
  9872. @command_window = Window_GameEnd.new
  9873. @command_window.set_handler(:to_title, method(:command_to_title))
  9874. @command_window.set_handler(:shutdown, method(:command_shutdown))
  9875. @command_window.set_handler(:cancel, method(:return_scene))
  9876. end
  9877.  
  9878. end
  9879.  
  9880. #==============================================================================
  9881. # ■ Scene_End
  9882. #==============================================================================
  9883. class Scene_End
  9884.  
  9885. #--------------------------------------------------------------------------
  9886. # ● Execute Dispose
  9887. #--------------------------------------------------------------------------
  9888. def execute_dispose
  9889. Graphics.freeze
  9890. dispose_background
  9891. dispose_layout
  9892. dispose_particles
  9893. dispose_command_window
  9894. end
  9895.  
  9896. #--------------------------------------------------------------------------
  9897. # ● Dispose Background
  9898. #--------------------------------------------------------------------------
  9899. def dispose_background
  9900. return if @background == nil
  9901. @background.dispose
  9902. @background = nil
  9903. end
  9904.  
  9905.  
  9906. #--------------------------------------------------------------------------
  9907. # ● Dispose Layout
  9908. #--------------------------------------------------------------------------
  9909. def dispose_layout
  9910. return if @layout == nil
  9911. @layout.dispose
  9912. @layout = nil
  9913. end
  9914.  
  9915. #--------------------------------------------------------------------------
  9916. # ● Dispose Particles
  9917. #--------------------------------------------------------------------------
  9918. def dispose_particles
  9919. return if @particles_sprite == nil
  9920. @particles_sprite.each {|sprite| sprite.dispose }
  9921. end
  9922.  
  9923. #--------------------------------------------------------------------------
  9924. # ● Dispose Command Window
  9925. #--------------------------------------------------------------------------
  9926. def dispose_command_window
  9927. return if @command_window == nil
  9928. @command_window.dispose
  9929. end
  9930.  
  9931. end
  9932.  
  9933. #==============================================================================
  9934. # ■ Scene_End
  9935. #==============================================================================
  9936. class Scene_End
  9937.  
  9938. #--------------------------------------------------------------------------
  9939. # ● Update Sprites
  9940. #--------------------------------------------------------------------------
  9941. def update_sprites
  9942. update_background
  9943. update_particles
  9944. update_command_window
  9945. end
  9946.  
  9947. #--------------------------------------------------------------------------
  9948. # ● Update Background
  9949. #--------------------------------------------------------------------------
  9950. def update_background
  9951. return if @background == nil
  9952. @background.ox += @background_scroll[0]
  9953. @background.oy += @background_scroll[1]
  9954. end
  9955.  
  9956. #--------------------------------------------------------------------------
  9957. # ● Update Particles
  9958. #--------------------------------------------------------------------------
  9959. def update_particles
  9960. return if @particles_sprite == nil
  9961. @particles_sprite.each {|sprite| sprite.update }
  9962. end
  9963.  
  9964. #--------------------------------------------------------------------------
  9965. # ● Update Command Window
  9966. #--------------------------------------------------------------------------
  9967. def update_command_window
  9968. return if @command_window == nil
  9969. @command_window.update
  9970. end
  9971.  
  9972. end
  9973.  
  9974. #==============================================================================
  9975. # ■ Scene_End
  9976. #==============================================================================
  9977. class Scene_End
  9978.  
  9979. #--------------------------------------------------------------------------
  9980. # ● Update
  9981. #--------------------------------------------------------------------------
  9982. def update
  9983. update_sprites
  9984. update_command
  9985. end
  9986.  
  9987. #--------------------------------------------------------------------------
  9988. # ● Return Scene
  9989. #--------------------------------------------------------------------------
  9990. def return_scene
  9991. Sound.play_cancel
  9992. SceneManager.return
  9993. end
  9994.  
  9995. #--------------------------------------------------------------------------
  9996. # ● ON Actor Charge
  9997. #--------------------------------------------------------------------------
  9998. def on_actor_change
  9999. $game_temp.actor_menu_temp = @actor
  10000. SceneManager.goto(Scene_Status)
  10001. end
  10002.  
  10003. end
  10004.  
  10005. #==============================================================================
  10006. # ■ Scene_End
  10007. #==============================================================================
  10008. class Scene_End
  10009.  
  10010. #--------------------------------------------------------------------------
  10011. # ● Update Command
  10012. #--------------------------------------------------------------------------
  10013. def update_command
  10014. end
  10015.  
  10016. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement