- module Mercenaries 
 
 
-   class Window_Help < ::Window_Base 
 
 
-     def initialize 
 
 
-       super(0, 0, 196, 256) 
 
 
-       self.contents = Bitmap.new(width - 32, height - 32) 
 
 
-       self.contents.font.size = 18 
 
 
-       @actor = nil 
 
 
-       self.z += 10 
 
 
-     end 
 
 
-     def draw_actor(actor) 
 
 
-       if @actor != actor 
 
 
-         self.contents.clear 
 
 
-         bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue) 
 
 
-         bx = (self.width / 2) - bitmap.width / 2 
 
 
-         by = (self.height / 2) - bitmap.height / 2 
 
 
-         self.contents.blt(bx, by, bitmap, bitmap.rect, 196) 
 
 
-         self.contents.draw_text(4, 4 + 0, 196, 18, "佣金:" + actor.price.to_s) 
 
 
-         self.contents.draw_text(4, 4 + 20, 196, 18, "姓名:" + actor.name) 
 
 
-         self.contents.draw_text(4, 4 + 40, 196, 18, "职业:" + actor.class_name) 
 
 
-   
-         @weapon_id = actor.weapon_id
 
 
-         if actor.weapon_id == 0
 
 
-           self.contents.draw_text(4, 4 + 60, 196, 18, "武器:空")
 
 
-         else
 
 
-           self.contents.draw_text(4, 4 + 60, 196, 18, "武器:#{$data_weapons[actor.weapon_id].name}") 
 
 
-         end
 
 
-   
-         @armor3_id = actor.armor3_id
 
 
-         if actor.armor3_id == 0
 
 
-           self.contents.draw_text(4, 4 + 80, 196, 18, "铠甲:空")
 
 
-         else  
 
 
-           self.contents.draw_text(4, 4 + 80, 196, 18, "铠甲:#{$data_armors[actor.armor3_id].name}") 
 
 
-         end
 
 
-         self.contents.draw_text(4, 4 + 100, 196, 18, "攻击力:#{actor.atk}") 
 
 
-         self.contents.draw_text(4, 4 + 120, 196, 18, "防御力:#{actor.pdef}") 
 
 
-         self.contents.draw_text(4, 4 + 140, 196, 18, "魔御力:#{actor.mdef}") 
 
 
-         self.contents.draw_text(4, 4 + 160, 196, 18, "力量:#{actor.str}") 
 
 
-         self.contents.draw_text(4, 4 + 180, 196, 18, "灵巧:#{actor.dex}") 
 
 
-         self.contents.draw_text(4, 4 + 200, 196, 18, "速度:#{actor.agi}") 
 
 
-         self.contents.draw_text(4, 4 + 220, 196, 18, "魔力:#{actor.int}") 
 
 
-         @actor = actor 
 
 
-       end 
 
 
-     end 
 
 
-   end 
 
 
-   class Window_ShopCommand < Window_Selectable 
 
 
- #-------------------------------------------------------------------------- 
 
 
- # ● 初始化对像 
 
 
- #-------------------------------------------------------------------------- 
 
 
-     def initialize 
 
 
-       super(80, 90 - 64, 480, 64) 
 
 
-       self.contents = Bitmap.new(width - 32, height - 32) 
 
 
-       @item_max = 3 
 
 
-       @column_max = 3 
 
 
-       @commands = ["雇佣", "解雇", "取消"] 
 
 
-       refresh 
 
 
-       self.index = 0 
 
 
-     end 
 
 
- #-------------------------------------------------------------------------- 
 
 
- # ● 刷新 
 
 
- #-------------------------------------------------------------------------- 
 
 
-     def refresh 
 
 
-       self.contents.clear 
 
 
-       for i in 0...@item_max 
 
 
-         draw_item(i) 
 
 
-       end 
 
 
-     end 
 
 
- #-------------------------------------------------------------------------- 
 
 
- # ● 描绘项目 
 
 
- # index : 项目编号 
 
 
- #-------------------------------------------------------------------------- 
 
 
-     def draw_item(index) 
 
 
-       x = 4 + index * 160 
 
 
-       self.contents.draw_text(x, 0, 128, 32, @commands[index]) 
 
 
-     end 
 
 
-   end 
 
 
-   class Window_Mercenaries < ::Window_Selectable 
 
 
-     attr_reader :column_max 
 
 
-     attr_reader :item_max 
 
 
-     attr_reader :mercenaries 
 
 
-     def initialize(mercenaries) 
 
 
-       super(80, 90, 480, 320) 
 
 
-       @mercenaries = mercenaries 
 
 
-       @column_max = 7 
 
 
-       refresh 
 
 
-       self.index = 0 
 
 
-     end 
 
 
-     def set_mercenaries(mercenaries) 
 
 
-       @mercenaries = mercenaries 
 
 
-       refresh 
 
 
-     end 
 
 
-     def id 
 
 
-       return @mercenaries[self.index] 
 
 
-     end 
 
 
-     def refresh 
 
 
-       if self.contents != nil 
 
 
-         self.contents.dispose 
 
 
-         self.contents = nil 
 
 
-       end 
 
 
-       @item_max = @mercenaries.size 
 
 
-       if @item_max > 0 
 
 
-         self.contents = Bitmap.new(width - 32, row_max * 80) 
 
 
-         for i in 0...@item_max 
 
 
-           draw_actor(i) if @mercenaries[i] != nil#凌冰 
 
 
-         end 
 
 
-       end 
 
 
-     end 
 
 
-     def draw_actor(index) 
 
 
-       x = 4 + (index % @column_max * 64) 
 
 
-       y = 4 + (index / @column_max * 80) 
 
 
-       actor = $game_actors[@mercenaries[index]] 
 
 
-       bitmap = RPG::Cache.character(actor.character_name,actor.character_hue) 
 
 
-       rect = bitmap.rect 
 
 
-       rect.width /= 4 
 
 
-       rect.height /= 4 
 
 
-       self.contents.blt(x, y, bitmap, rect) 
 
 
-       self.contents.font.size = 12 
 
 
-       self.contents.draw_text(x, y + 64 - 8, 64, 16, actor.name) 
 
 
-       self.contents.font.size = 9 
 
 
-       self.contents.draw_text(x + 4, y + 64 - 16, 64, 9, "Lv."+sprintf("%02d", actor.level)) 
 
 
-     end 
 
 
- #-------------------------------------------------------------------------- 
 
 
- # ● 更新光标举行 
 
 
- #-------------------------------------------------------------------------- 
 
 
-     def update_cursor_rect 
 
 
-       # 光标位置不满 0 的情况下 
 
 
-       if @index < 0 
 
 
-         self.cursor_rect.empty 
 
 
-         return 
 
 
-       end 
 
 
-       # 获取当前的行 
 
 
-       row = @index / @column_max 
 
 
-       # 当前行被显示开头行前面的情况下 
 
 
-       if row < self.top_row 
 
 
-         # 从当前行向开头行滚动 
 
 
-         self.top_row = row 
 
 
-       end 
 
 
-       # 当前行被显示末尾行之后的情况下 
 
 
-       if row > self.top_row + (self.page_row_max - 1) 
 
 
-         # 从当前行向末尾滚动 
 
 
-         self.top_row = row - (self.page_row_max - 1) 
 
 
-       end 
 
 
-       # 计算光标的宽 
 
 
-       cursor_width = self.width / @column_max - 32 
 
 
-       # 计算光标坐标 
 
 
-       x = @index % @column_max * 64 
 
 
-       y = @index / @column_max * 80 - self.oy 
 
 
-       # 更新国标矩形 
 
 
-       self.cursor_rect.set(x, y, 64, 80) 
 
 
-     end 
 
 
-   end 
 
 
-   class Scene_Mercenaries 
 
 
-     def initialize(mercenaries) 
 
 
-       @mercenaries = mercenaries 
 
 
-       for actor in $game_party.actors 
 
 
-         if @mercenaries.include?(actor.id) 
 
 
-           @mercenaries.delete(actor.id) 
 
 
-         end 
 
 
-       end 
 
 
-       @windows = [] 
 
 
-       @temp = @mercenaries.dup 
 
 
-       @type = -1 
 
 
-     end 
 
 
-     def main_start 
 
 
-       make_window 
 
 
-       @spriteset = Spriteset_Map.new 
 
 
-     end 
 
 
-     def main_loop 
 
 
-       while $scene == self 
 
 
-         rm_update 
 
 
-         input_update 
 
 
-         update_window 
 
 
-       end 
 
 
-     end 
 
 
-     def main_end 
 
 
-       dispose_window 
 
 
-       @spriteset.dispose 
 
 
-     end 
 
 
-     def main 
 
 
-       main_start 
 
 
-       Graphics.transition 
 
 
-       main_loop 
 
 
-       Graphics.freeze 
 
 
-       main_end 
 
 
-     end 
 
 
-     def make_window 
 
 
-       @window_shopcommand = Window_ShopCommand.new 
 
 
-       @window_help = Window_Help.new 
 
 
-       @window_mercenaries = Window_Mercenaries.new(@mercenaries) 
 
 
-       @window_mercenaries.active = false 
 
 
-       @window_mercenaries.index = -1 
 
 
-       wx = (@window_mercenaries.index % @window_mercenaries.column_max * 64) 
 
 
-       wy = (@window_mercenaries.index / @window_mercenaries.column_max * 80) 
 
 
-       @window_help.x = wx + @window_mercenaries.x + 64 
 
 
-       @window_help.y = wy + @window_mercenaries.y + 80 
 
 
-       @window_gold = Window_Gold.new 
 
 
-       @window_gold.x = 640 - @window_gold.width - 32 
 
 
-       @window_gold.y = 480 - @window_gold.height - 32 
 
 
-       @windows << @window_gold << @window_shopcommand << @window_mercenaries << @window_help 
 
 
-       @window_help.visible = false 
 
 
-     end 
 
 
-     def update_window 
 
 
-       @windows.each{ |window|window.update } 
 
 
-       help_update 
 
 
-     end 
 
 
-     def dispose_window 
 
 
-       @windows.each{ |window|window.dispose } 
 
 
-     end 
 
 
-     def help_update 
 
 
-       if @window_mercenaries.active and @window_mercenaries.id != nil#凌冰 
 
 
-         @window_help.visible = true 
 
 
-         wx = (@window_mercenaries.index % @window_mercenaries.column_max * 64) 
 
 
-         wy = (@window_mercenaries.index / @window_mercenaries.column_max * 80) 
 
 
-         @window_help.x = wx + @window_mercenaries.x + 64 
 
 
-         @window_help.y = wy + @window_mercenaries.y + 80 
 
 
-         if @window_help.x + @window_help.width > 640 
 
 
-           @window_help.x = 640 - @window_help.width 
 
 
-         end 
 
 
-         if @window_help.y + @window_help.height > 480 
 
 
-           @window_help.y = 480 - @window_help.height 
 
 
-         end 
 
 
-         @window_help.draw_actor($game_actors[@window_mercenaries.id]) 
 
 
-       else 
 
 
-         @window_help.visible = false 
 
 
-       end 
 
 
-     end 
 
 
-     def input_update 
 
 
-       if Input.trigger?(Input::B) 
 
 
-         @type = -1 
 
 
-         @window_shopcommand.active = true 
 
 
-         @window_mercenaries.active = false 
 
 
-         @window_mercenaries.index = -1 
 
 
-         return 
 
 
-       end 
 
 
-       if Input.trigger?(Input::C) 
 
 
-         if @window_shopcommand.active 
 
 
-           case @window_shopcommand.index 
 
 
-           when 0 
 
 
-             @window_mercenaries.set_mercenaries(@temp) 
 
 
-             @type = 0 
 
 
-             @window_shopcommand.active = false 
 
 
-             @window_mercenaries.active = true 
 
 
-             @window_mercenaries.index = 0 
 
 
-             return 
 
 
-           when 1
 
 
-             actors = []
 
 
-             for actor in $game_party.actors
 
 
-               actors << actor.id and actors -= [1]
 
 
-             end
 
 
-             @window_mercenaries.set_mercenaries(actors)
 
 
-             @type = 1
 
 
-             @window_shopcommand.active = false
 
 
-             @window_mercenaries.active = true
 
 
-             @window_mercenaries.index = 0
 
 
-             return
 
 
-           when 2 
 
 
-             $scene = Scene_Map.new 
 
 
-             return 
 
 
-           end 
 
 
-         end 
 
 
-         case @type 
 
 
-         when 0 
 
 
-           if @window_mercenaries.id != nil and 
 
 
-             $game_party.gold >= $game_actors[@window_mercenaries.id].price
 
 
-             if $game_party.actors.size < 4 
 
 
-               $game_party.lose_gold($game_actors[@window_mercenaries.id].price) 
 
 
-               $game_party.add_actor(@window_mercenaries.id) 
 
 
-               @window_mercenaries.mercenaries.delete(@window_mercenaries.id) 
 
 
-               @window_mercenaries.refresh 
 
 
-               if @window_mercenaries.index > @window_mercenaries.mercenaries.size-1 
 
 
-                 @window_mercenaries.index = @window_mercenaries.mercenaries.size-1 
 
 
-               end 
 
 
-             end 
 
 
-           end 
 
 
-         when 1 
 
 
-           if @window_mercenaries.id != nil
 
 
-             $game_party.gain_gold($game_actors[@window_mercenaries.id].price / 2) 
 
 
-             $game_party.remove_actor(@window_mercenaries.id) 
 
 
-             @temp << @window_mercenaries.id 
 
 
-             @window_mercenaries.mercenaries.delete(@window_mercenaries.id) 
 
 
-             @window_mercenaries.refresh 
 
 
-             if @window_mercenaries.index > @window_mercenaries.mercenaries.size-1 
 
 
-               @window_mercenaries.index = @window_mercenaries.mercenaries.size-1 
 
 
-             end 
 
 
-           end 
 
 
-         end 
 
 
-         @window_gold.refresh 
 
 
-       end 
 
 
-     end 
 
 
-     def rm_update 
 
 
-       Graphics.update 
 
 
-       Input.update 
 
 
-     end 
 
 
-   end 
 
 
- end 
 
 
-   
- class Game_Actor 
 
 
-   def price 
 
 
-     price = @name.split(/,/)[1].nil? ? 0 : @name.split(/,/)[1].to_i 
 
 
-     return price * self.level 
 
 
-   end 
 
 
-   def name 
 
 
-     return @name.split(/,/)[0] 
 
 
-   end 
 
 
- end 
 
 
-   
- class Game_System 
 
 
-   attr_reader :mercenaries 
 
 
-   alias old_initialize initialize 
 
 
-   def initialize 
 
 
-     old_initialize 
 
 
-     @mercenaries = {} 
 
 
-   end 
 
 
- end