rgss3_default_scripts 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/Gemfile +4 -0
  4. data/README.md +9 -0
  5. data/Rakefile +2 -0
  6. data/lib/rgss3_default_scripts.rb +109 -0
  7. data/lib/rgss3_default_scripts/BattleManager.rb +392 -0
  8. data/lib/rgss3_default_scripts/Cache.rb +134 -0
  9. data/lib/rgss3_default_scripts/DataManager.rb +267 -0
  10. data/lib/rgss3_default_scripts/Game_Action.rb +262 -0
  11. data/lib/rgss3_default_scripts/Game_ActionResult.rb +159 -0
  12. data/lib/rgss3_default_scripts/Game_Actor.rb +696 -0
  13. data/lib/rgss3_default_scripts/Game_Actors.rb +22 -0
  14. data/lib/rgss3_default_scripts/Game_BaseItem.rb +51 -0
  15. data/lib/rgss3_default_scripts/Game_Battler.rb +824 -0
  16. data/lib/rgss3_default_scripts/Game_BattlerBase.rb +731 -0
  17. data/lib/rgss3_default_scripts/Game_Character.rb +396 -0
  18. data/lib/rgss3_default_scripts/Game_CharacterBase.rb +443 -0
  19. data/lib/rgss3_default_scripts/Game_CommonEvent.rb +41 -0
  20. data/lib/rgss3_default_scripts/Game_Enemy.rb +264 -0
  21. data/lib/rgss3_default_scripts/Game_Event.rb +308 -0
  22. data/lib/rgss3_default_scripts/Game_Follower.rb +74 -0
  23. data/lib/rgss3_default_scripts/Game_Followers.rb +112 -0
  24. data/lib/rgss3_default_scripts/Game_Interpreter.rb +1413 -0
  25. data/lib/rgss3_default_scripts/Game_Map.rb +704 -0
  26. data/lib/rgss3_default_scripts/Game_Message.rb +101 -0
  27. data/lib/rgss3_default_scripts/Game_Party.rb +418 -0
  28. data/lib/rgss3_default_scripts/Game_Picture.rb +161 -0
  29. data/lib/rgss3_default_scripts/Game_Pictures.rb +28 -0
  30. data/lib/rgss3_default_scripts/Game_Player.rb +488 -0
  31. data/lib/rgss3_default_scripts/Game_Screen.rb +234 -0
  32. data/lib/rgss3_default_scripts/Game_SelfSwitches.rb +35 -0
  33. data/lib/rgss3_default_scripts/Game_Switches.rb +35 -0
  34. data/lib/rgss3_default_scripts/Game_System.rb +122 -0
  35. data/lib/rgss3_default_scripts/Game_Temp.rb +45 -0
  36. data/lib/rgss3_default_scripts/Game_Timer.rb +56 -0
  37. data/lib/rgss3_default_scripts/Game_Troop.rb +205 -0
  38. data/lib/rgss3_default_scripts/Game_Unit.rb +131 -0
  39. data/lib/rgss3_default_scripts/Game_Variables.rb +34 -0
  40. data/lib/rgss3_default_scripts/Game_Vehicle.rb +193 -0
  41. data/lib/rgss3_default_scripts/SceneManager.rb +94 -0
  42. data/lib/rgss3_default_scripts/Scene_Base.rb +132 -0
  43. data/lib/rgss3_default_scripts/Scene_Battle.rb +693 -0
  44. data/lib/rgss3_default_scripts/Scene_Debug.rb +87 -0
  45. data/lib/rgss3_default_scripts/Scene_End.rb +61 -0
  46. data/lib/rgss3_default_scripts/Scene_Equip.rb +144 -0
  47. data/lib/rgss3_default_scripts/Scene_File.rb +203 -0
  48. data/lib/rgss3_default_scripts/Scene_Gameover.rb +85 -0
  49. data/lib/rgss3_default_scripts/Scene_Item.rb +75 -0
  50. data/lib/rgss3_default_scripts/Scene_ItemBase.rb +147 -0
  51. data/lib/rgss3_default_scripts/Scene_Load.rb +40 -0
  52. data/lib/rgss3_default_scripts/Scene_Map.rb +276 -0
  53. data/lib/rgss3_default_scripts/Scene_Menu.rb +127 -0
  54. data/lib/rgss3_default_scripts/Scene_MenuBase.rb +63 -0
  55. data/lib/rgss3_default_scripts/Scene_Name.rb +32 -0
  56. data/lib/rgss3_default_scripts/Scene_Save.rb +38 -0
  57. data/lib/rgss3_default_scripts/Scene_Shop.rb +299 -0
  58. data/lib/rgss3_default_scripts/Scene_Skill.rb +108 -0
  59. data/lib/rgss3_default_scripts/Scene_Status.rb +25 -0
  60. data/lib/rgss3_default_scripts/Scene_Title.rb +137 -0
  61. data/lib/rgss3_default_scripts/Sound.rb +135 -0
  62. data/lib/rgss3_default_scripts/Sprite_Base.rb +232 -0
  63. data/lib/rgss3_default_scripts/Sprite_Battler.rb +231 -0
  64. data/lib/rgss3_default_scripts/Sprite_Character.rb +226 -0
  65. data/lib/rgss3_default_scripts/Sprite_Picture.rb +82 -0
  66. data/lib/rgss3_default_scripts/Sprite_Timer.rb +77 -0
  67. data/lib/rgss3_default_scripts/Spriteset_Battle.rb +389 -0
  68. data/lib/rgss3_default_scripts/Spriteset_Map.rb +273 -0
  69. data/lib/rgss3_default_scripts/Spriteset_Weather.rb +184 -0
  70. data/lib/rgss3_default_scripts/Vocab.rb +145 -0
  71. data/lib/rgss3_default_scripts/Window_ActorCommand.rb +78 -0
  72. data/lib/rgss3_default_scripts/Window_Base.rb +571 -0
  73. data/lib/rgss3_default_scripts/Window_BattleActor.rb +38 -0
  74. data/lib/rgss3_default_scripts/Window_BattleEnemy.rb +70 -0
  75. data/lib/rgss3_default_scripts/Window_BattleItem.rb +40 -0
  76. data/lib/rgss3_default_scripts/Window_BattleLog.rb +425 -0
  77. data/lib/rgss3_default_scripts/Window_BattleSkill.rb +34 -0
  78. data/lib/rgss3_default_scripts/Window_BattleStatus.rb +111 -0
  79. data/lib/rgss3_default_scripts/Window_ChoiceList.rb +88 -0
  80. data/lib/rgss3_default_scripts/Window_Command.rb +152 -0
  81. data/lib/rgss3_default_scripts/Window_DebugLeft.rb +104 -0
  82. data/lib/rgss3_default_scripts/Window_DebugRight.rb +119 -0
  83. data/lib/rgss3_default_scripts/Window_EquipCommand.rb +36 -0
  84. data/lib/rgss3_default_scripts/Window_EquipItem.rb +78 -0
  85. data/lib/rgss3_default_scripts/Window_EquipSlot.rb +111 -0
  86. data/lib/rgss3_default_scripts/Window_EquipStatus.rb +97 -0
  87. data/lib/rgss3_default_scripts/Window_GameEnd.rb +38 -0
  88. data/lib/rgss3_default_scripts/Window_Gold.rb +47 -0
  89. data/lib/rgss3_default_scripts/Window_Help.rb +43 -0
  90. data/lib/rgss3_default_scripts/Window_HorzCommand.rb +106 -0
  91. data/lib/rgss3_default_scripts/Window_ItemCategory.rb +54 -0
  92. data/lib/rgss3_default_scripts/Window_ItemList.rb +117 -0
  93. data/lib/rgss3_default_scripts/Window_KeyItem.rb +55 -0
  94. data/lib/rgss3_default_scripts/Window_MapName.rb +96 -0
  95. data/lib/rgss3_default_scripts/Window_MenuActor.rb +43 -0
  96. data/lib/rgss3_default_scripts/Window_MenuCommand.rb +106 -0
  97. data/lib/rgss3_default_scripts/Window_MenuStatus.rb +85 -0
  98. data/lib/rgss3_default_scripts/Window_Message.rb +397 -0
  99. data/lib/rgss3_default_scripts/Window_NameEdit.rb +129 -0
  100. data/lib/rgss3_default_scripts/Window_NameInput.rb +253 -0
  101. data/lib/rgss3_default_scripts/Window_NumberInput.rb +148 -0
  102. data/lib/rgss3_default_scripts/Window_PartyCommand.rb +47 -0
  103. data/lib/rgss3_default_scripts/Window_SaveFile.rb +69 -0
  104. data/lib/rgss3_default_scripts/Window_ScrollText.rb +90 -0
  105. data/lib/rgss3_default_scripts/Window_Selectable.rb +442 -0
  106. data/lib/rgss3_default_scripts/Window_ShopBuy.rb +115 -0
  107. data/lib/rgss3_default_scripts/Window_ShopCommand.rb +36 -0
  108. data/lib/rgss3_default_scripts/Window_ShopNumber.rb +137 -0
  109. data/lib/rgss3_default_scripts/Window_ShopSell.rb +27 -0
  110. data/lib/rgss3_default_scripts/Window_ShopStatus.rb +124 -0
  111. data/lib/rgss3_default_scripts/Window_SkillCommand.rb +76 -0
  112. data/lib/rgss3_default_scripts/Window_SkillList.rb +121 -0
  113. data/lib/rgss3_default_scripts/Window_SkillStatus.rb +38 -0
  114. data/lib/rgss3_default_scripts/Window_Status.rb +125 -0
  115. data/lib/rgss3_default_scripts/Window_TitleCommand.rb +45 -0
  116. data/rgss3_default_scripts.gemspec +23 -0
  117. metadata +186 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2c36f974a8270aeb5df04d5863c999b5d5491d0f
4
+ data.tar.gz: 8fda48e8030318f43f34515002d420ef3f87b214
5
+ SHA512:
6
+ metadata.gz: 52eeafc6ca3d0fb20515ec42d488c84e60087d8254fcad457452d17f9b04495bc1537ae284198d5637a6f51b0cd31182be95cca2bac7f231276a3bf6cc17ea8a
7
+ data.tar.gz: 1743f20ed0ef4ac6258bfa50f883cb5a46fa141b926f5fc18b819cb56eb9ef02960237d60df3e80828bc9a9993aa558d04b3ce6b21fe2ad22648c57d602dba47
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in rgss3_default_scripts.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # rgss3_default_scripts
2
+
3
+ Default scripts in RGSS3. Copyrights are owned by KADOKAWA.
4
+
5
+ This gem can be used as a reference. Requiring it will probably cause an exception.
6
+
7
+ ## License
8
+
9
+ Go and ask KADOKAWA.
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+ task :default => :spec
@@ -0,0 +1,109 @@
1
+ require_relative 'rgss3_default_scripts/Vocab'
2
+ require_relative 'rgss3_default_scripts/Sound'
3
+ require_relative 'rgss3_default_scripts/Cache'
4
+ require_relative 'rgss3_default_scripts/DataManager'
5
+ require_relative 'rgss3_default_scripts/SceneManager'
6
+ require_relative 'rgss3_default_scripts/BattleManager'
7
+ require_relative 'rgss3_default_scripts/Game_Temp'
8
+ require_relative 'rgss3_default_scripts/Game_System'
9
+ require_relative 'rgss3_default_scripts/Game_Timer'
10
+ require_relative 'rgss3_default_scripts/Game_Message'
11
+ require_relative 'rgss3_default_scripts/Game_Switches'
12
+ require_relative 'rgss3_default_scripts/Game_Variables'
13
+ require_relative 'rgss3_default_scripts/Game_SelfSwitches'
14
+ require_relative 'rgss3_default_scripts/Game_Screen'
15
+ require_relative 'rgss3_default_scripts/Game_Picture'
16
+ require_relative 'rgss3_default_scripts/Game_Pictures'
17
+ require_relative 'rgss3_default_scripts/Game_BaseItem'
18
+ require_relative 'rgss3_default_scripts/Game_Action'
19
+ require_relative 'rgss3_default_scripts/Game_ActionResult'
20
+ require_relative 'rgss3_default_scripts/Game_BattlerBase'
21
+ require_relative 'rgss3_default_scripts/Game_Battler'
22
+ require_relative 'rgss3_default_scripts/Game_Actor'
23
+ require_relative 'rgss3_default_scripts/Game_Enemy'
24
+ require_relative 'rgss3_default_scripts/Game_Actors'
25
+ require_relative 'rgss3_default_scripts/Game_Unit'
26
+ require_relative 'rgss3_default_scripts/Game_Party'
27
+ require_relative 'rgss3_default_scripts/Game_Troop'
28
+ require_relative 'rgss3_default_scripts/Game_Map'
29
+ require_relative 'rgss3_default_scripts/Game_CommonEvent'
30
+ require_relative 'rgss3_default_scripts/Game_CharacterBase'
31
+ require_relative 'rgss3_default_scripts/Game_Character'
32
+ require_relative 'rgss3_default_scripts/Game_Player'
33
+ require_relative 'rgss3_default_scripts/Game_Follower'
34
+ require_relative 'rgss3_default_scripts/Game_Followers'
35
+ require_relative 'rgss3_default_scripts/Game_Vehicle'
36
+ require_relative 'rgss3_default_scripts/Game_Event'
37
+ require_relative 'rgss3_default_scripts/Game_Interpreter'
38
+ require_relative 'rgss3_default_scripts/Sprite_Base'
39
+ require_relative 'rgss3_default_scripts/Sprite_Character'
40
+ require_relative 'rgss3_default_scripts/Sprite_Battler'
41
+ require_relative 'rgss3_default_scripts/Sprite_Picture'
42
+ require_relative 'rgss3_default_scripts/Sprite_Timer'
43
+ require_relative 'rgss3_default_scripts/Spriteset_Weather'
44
+ require_relative 'rgss3_default_scripts/Spriteset_Map'
45
+ require_relative 'rgss3_default_scripts/Spriteset_Battle'
46
+ require_relative 'rgss3_default_scripts/Window_Base'
47
+ require_relative 'rgss3_default_scripts/Window_Selectable'
48
+ require_relative 'rgss3_default_scripts/Window_Command'
49
+ require_relative 'rgss3_default_scripts/Window_HorzCommand'
50
+ require_relative 'rgss3_default_scripts/Window_Help'
51
+ require_relative 'rgss3_default_scripts/Window_Gold'
52
+ require_relative 'rgss3_default_scripts/Window_MenuCommand'
53
+ require_relative 'rgss3_default_scripts/Window_MenuStatus'
54
+ require_relative 'rgss3_default_scripts/Window_MenuActor'
55
+ require_relative 'rgss3_default_scripts/Window_ItemCategory'
56
+ require_relative 'rgss3_default_scripts/Window_ItemList'
57
+ require_relative 'rgss3_default_scripts/Window_SkillCommand'
58
+ require_relative 'rgss3_default_scripts/Window_SkillStatus'
59
+ require_relative 'rgss3_default_scripts/Window_SkillList'
60
+ require_relative 'rgss3_default_scripts/Window_EquipStatus'
61
+ require_relative 'rgss3_default_scripts/Window_EquipCommand'
62
+ require_relative 'rgss3_default_scripts/Window_EquipSlot'
63
+ require_relative 'rgss3_default_scripts/Window_EquipItem'
64
+ require_relative 'rgss3_default_scripts/Window_Status'
65
+ require_relative 'rgss3_default_scripts/Window_SaveFile'
66
+ require_relative 'rgss3_default_scripts/Window_ShopCommand'
67
+ require_relative 'rgss3_default_scripts/Window_ShopBuy'
68
+ require_relative 'rgss3_default_scripts/Window_ShopSell'
69
+ require_relative 'rgss3_default_scripts/Window_ShopNumber'
70
+ require_relative 'rgss3_default_scripts/Window_ShopStatus'
71
+ require_relative 'rgss3_default_scripts/Window_NameEdit'
72
+ require_relative 'rgss3_default_scripts/Window_NameInput'
73
+ require_relative 'rgss3_default_scripts/Window_ChoiceList'
74
+ require_relative 'rgss3_default_scripts/Window_NumberInput'
75
+ require_relative 'rgss3_default_scripts/Window_KeyItem'
76
+ require_relative 'rgss3_default_scripts/Window_Message'
77
+ require_relative 'rgss3_default_scripts/Window_ScrollText'
78
+ require_relative 'rgss3_default_scripts/Window_MapName'
79
+ require_relative 'rgss3_default_scripts/Window_BattleLog'
80
+ require_relative 'rgss3_default_scripts/Window_PartyCommand'
81
+ require_relative 'rgss3_default_scripts/Window_ActorCommand'
82
+ require_relative 'rgss3_default_scripts/Window_BattleStatus'
83
+ require_relative 'rgss3_default_scripts/Window_BattleActor'
84
+ require_relative 'rgss3_default_scripts/Window_BattleEnemy'
85
+ require_relative 'rgss3_default_scripts/Window_BattleSkill'
86
+ require_relative 'rgss3_default_scripts/Window_BattleItem'
87
+ require_relative 'rgss3_default_scripts/Window_TitleCommand'
88
+ require_relative 'rgss3_default_scripts/Window_GameEnd'
89
+ require_relative 'rgss3_default_scripts/Window_DebugLeft'
90
+ require_relative 'rgss3_default_scripts/Window_DebugRight'
91
+ require_relative 'rgss3_default_scripts/Scene_Base'
92
+ require_relative 'rgss3_default_scripts/Scene_Title'
93
+ require_relative 'rgss3_default_scripts/Scene_Map'
94
+ require_relative 'rgss3_default_scripts/Scene_MenuBase'
95
+ require_relative 'rgss3_default_scripts/Scene_Menu'
96
+ require_relative 'rgss3_default_scripts/Scene_ItemBase'
97
+ require_relative 'rgss3_default_scripts/Scene_Item'
98
+ require_relative 'rgss3_default_scripts/Scene_Skill'
99
+ require_relative 'rgss3_default_scripts/Scene_Equip'
100
+ require_relative 'rgss3_default_scripts/Scene_Status'
101
+ require_relative 'rgss3_default_scripts/Scene_File'
102
+ require_relative 'rgss3_default_scripts/Scene_Save'
103
+ require_relative 'rgss3_default_scripts/Scene_Load'
104
+ require_relative 'rgss3_default_scripts/Scene_End'
105
+ require_relative 'rgss3_default_scripts/Scene_Shop'
106
+ require_relative 'rgss3_default_scripts/Scene_Name'
107
+ require_relative 'rgss3_default_scripts/Scene_Debug'
108
+ require_relative 'rgss3_default_scripts/Scene_Battle'
109
+ require_relative 'rgss3_default_scripts/Scene_Gameover'
@@ -0,0 +1,392 @@
1
+ #==============================================================================
2
+ # ** BattleManager
3
+ #------------------------------------------------------------------------------
4
+ # This module manages battle progress.
5
+ #==============================================================================
6
+
7
+ module BattleManager
8
+ #--------------------------------------------------------------------------
9
+ # * Setup
10
+ #--------------------------------------------------------------------------
11
+ def self.setup(troop_id, can_escape = true, can_lose = false)
12
+ init_members
13
+ $game_troop.setup(troop_id)
14
+ @can_escape = can_escape
15
+ @can_lose = can_lose
16
+ make_escape_ratio
17
+ end
18
+ #--------------------------------------------------------------------------
19
+ # * Initialize Member Variables
20
+ #--------------------------------------------------------------------------
21
+ def self.init_members
22
+ @phase = :init # Battle Progress Phase
23
+ @can_escape = false # Can Escape Flag
24
+ @can_lose = false # Can Lose Flag
25
+ @event_proc = nil # Event Callback
26
+ @preemptive = false # Preemptive Attack Flag
27
+ @surprise = false # Surprise Flag
28
+ @actor_index = -1 # Actor for Which Command Is Being Entered
29
+ @action_forced = nil # Force Action
30
+ @map_bgm = nil # For Memorizing Pre-Battle BGM
31
+ @map_bgs = nil # For Memorizing Pre-Battle BGS
32
+ @action_battlers = [] # Action Order List
33
+ end
34
+ #--------------------------------------------------------------------------
35
+ # * Processing at Encounter Time
36
+ #--------------------------------------------------------------------------
37
+ def self.on_encounter
38
+ @preemptive = (rand < rate_preemptive)
39
+ @surprise = (rand < rate_surprise && !@preemptive)
40
+ end
41
+ #--------------------------------------------------------------------------
42
+ # * Get Probability of Preemptive Attack
43
+ #--------------------------------------------------------------------------
44
+ def self.rate_preemptive
45
+ $game_party.rate_preemptive($game_troop.agi)
46
+ end
47
+ #--------------------------------------------------------------------------
48
+ # * Get Probability of Surprise
49
+ #--------------------------------------------------------------------------
50
+ def self.rate_surprise
51
+ $game_party.rate_surprise($game_troop.agi)
52
+ end
53
+ #--------------------------------------------------------------------------
54
+ # * Save BGM and BGS
55
+ #--------------------------------------------------------------------------
56
+ def self.save_bgm_and_bgs
57
+ @map_bgm = RPG::BGM.last
58
+ @map_bgs = RPG::BGS.last
59
+ end
60
+ #--------------------------------------------------------------------------
61
+ # * Play Battle BGM
62
+ #--------------------------------------------------------------------------
63
+ def self.play_battle_bgm
64
+ $game_system.battle_bgm.play
65
+ RPG::BGS.stop
66
+ end
67
+ #--------------------------------------------------------------------------
68
+ # * Play Battle End ME
69
+ #--------------------------------------------------------------------------
70
+ def self.play_battle_end_me
71
+ $game_system.battle_end_me.play
72
+ end
73
+ #--------------------------------------------------------------------------
74
+ # * Resume BGM and BGS
75
+ #--------------------------------------------------------------------------
76
+ def self.replay_bgm_and_bgs
77
+ @map_bgm.replay unless $BTEST
78
+ @map_bgs.replay unless $BTEST
79
+ end
80
+ #--------------------------------------------------------------------------
81
+ # * Create Escape Success Probability
82
+ #--------------------------------------------------------------------------
83
+ def self.make_escape_ratio
84
+ @escape_ratio = 1.5 - 1.0 * $game_troop.agi / $game_party.agi
85
+ end
86
+ #--------------------------------------------------------------------------
87
+ # * Determine if Turn Is Executing
88
+ #--------------------------------------------------------------------------
89
+ def self.in_turn?
90
+ @phase == :turn
91
+ end
92
+ #--------------------------------------------------------------------------
93
+ # * Determine if Turn Is Ending
94
+ #--------------------------------------------------------------------------
95
+ def self.turn_end?
96
+ @phase == :turn_end
97
+ end
98
+ #--------------------------------------------------------------------------
99
+ # * Determine if Battle Is Aborting
100
+ #--------------------------------------------------------------------------
101
+ def self.aborting?
102
+ @phase == :aborting
103
+ end
104
+ #--------------------------------------------------------------------------
105
+ # * Get Whether Escape Is Possible
106
+ #--------------------------------------------------------------------------
107
+ def self.can_escape?
108
+ @can_escape
109
+ end
110
+ #--------------------------------------------------------------------------
111
+ # * Get Actor for Which Command Is Being Entered
112
+ #--------------------------------------------------------------------------
113
+ def self.actor
114
+ @actor_index >= 0 ? $game_party.members[@actor_index] : nil
115
+ end
116
+ #--------------------------------------------------------------------------
117
+ # * Clear Actor for Which Command Is Being Entered
118
+ #--------------------------------------------------------------------------
119
+ def self.clear_actor
120
+ @actor_index = -1
121
+ end
122
+ #--------------------------------------------------------------------------
123
+ # * To Next Command Input
124
+ #--------------------------------------------------------------------------
125
+ def self.next_command
126
+ begin
127
+ if !actor || !actor.next_command
128
+ @actor_index += 1
129
+ return false if @actor_index >= $game_party.members.size
130
+ end
131
+ end until actor.inputable?
132
+ return true
133
+ end
134
+ #--------------------------------------------------------------------------
135
+ # * To Previous Command Input
136
+ #--------------------------------------------------------------------------
137
+ def self.prior_command
138
+ begin
139
+ if !actor || !actor.prior_command
140
+ @actor_index -= 1
141
+ return false if @actor_index < 0
142
+ end
143
+ end until actor.inputable?
144
+ return true
145
+ end
146
+ #--------------------------------------------------------------------------
147
+ # * Set Proc for Callback to Event
148
+ #--------------------------------------------------------------------------
149
+ def self.event_proc=(proc)
150
+ @event_proc = proc
151
+ end
152
+ #--------------------------------------------------------------------------
153
+ # * Set Wait Method
154
+ #--------------------------------------------------------------------------
155
+ def self.method_wait_for_message=(method)
156
+ @method_wait_for_message = method
157
+ end
158
+ #--------------------------------------------------------------------------
159
+ # * Wait Until Message Display has Finished
160
+ #--------------------------------------------------------------------------
161
+ def self.wait_for_message
162
+ @method_wait_for_message.call if @method_wait_for_message
163
+ end
164
+ #--------------------------------------------------------------------------
165
+ # * Battle Start
166
+ #--------------------------------------------------------------------------
167
+ def self.battle_start
168
+ $game_system.battle_count += 1
169
+ $game_party.on_battle_start
170
+ $game_troop.on_battle_start
171
+ $game_troop.enemy_names.each do |name|
172
+ $game_message.add(sprintf(Vocab::Emerge, name))
173
+ end
174
+ if @preemptive
175
+ $game_message.add(sprintf(Vocab::Preemptive, $game_party.name))
176
+ elsif @surprise
177
+ $game_message.add(sprintf(Vocab::Surprise, $game_party.name))
178
+ end
179
+ wait_for_message
180
+ end
181
+ #--------------------------------------------------------------------------
182
+ # * Battle Abort
183
+ #--------------------------------------------------------------------------
184
+ def self.abort
185
+ @phase = :aborting
186
+ end
187
+ #--------------------------------------------------------------------------
188
+ # * Determine Win/Loss Results
189
+ #--------------------------------------------------------------------------
190
+ def self.judge_win_loss
191
+ if @phase
192
+ return process_abort if $game_party.members.empty?
193
+ return process_defeat if $game_party.all_dead?
194
+ return process_victory if $game_troop.all_dead?
195
+ return process_abort if aborting?
196
+ end
197
+ return false
198
+ end
199
+ #--------------------------------------------------------------------------
200
+ # * Victory Processing
201
+ #--------------------------------------------------------------------------
202
+ def self.process_victory
203
+ play_battle_end_me
204
+ replay_bgm_and_bgs
205
+ $game_message.add(sprintf(Vocab::Victory, $game_party.name))
206
+ display_exp
207
+ gain_gold
208
+ gain_drop_items
209
+ gain_exp
210
+ SceneManager.return
211
+ battle_end(0)
212
+ return true
213
+ end
214
+ #--------------------------------------------------------------------------
215
+ # * Escape Processing
216
+ #--------------------------------------------------------------------------
217
+ def self.process_escape
218
+ $game_message.add(sprintf(Vocab::EscapeStart, $game_party.name))
219
+ success = @preemptive ? true : (rand < @escape_ratio)
220
+ Sound.play_escape
221
+ if success
222
+ process_abort
223
+ else
224
+ @escape_ratio += 0.1
225
+ $game_message.add('\.' + Vocab::EscapeFailure)
226
+ $game_party.clear_actions
227
+ end
228
+ wait_for_message
229
+ return success
230
+ end
231
+ #--------------------------------------------------------------------------
232
+ # * Abort Processing
233
+ #--------------------------------------------------------------------------
234
+ def self.process_abort
235
+ replay_bgm_and_bgs
236
+ SceneManager.return
237
+ battle_end(1)
238
+ return true
239
+ end
240
+ #--------------------------------------------------------------------------
241
+ # * Defeat Processing
242
+ #--------------------------------------------------------------------------
243
+ def self.process_defeat
244
+ $game_message.add(sprintf(Vocab::Defeat, $game_party.name))
245
+ wait_for_message
246
+ if @can_lose
247
+ revive_battle_members
248
+ replay_bgm_and_bgs
249
+ SceneManager.return
250
+ else
251
+ SceneManager.goto(Scene_Gameover)
252
+ end
253
+ battle_end(2)
254
+ return true
255
+ end
256
+ #--------------------------------------------------------------------------
257
+ # * Revive Battle Members (When Defeated)
258
+ #--------------------------------------------------------------------------
259
+ def self.revive_battle_members
260
+ $game_party.battle_members.each do |actor|
261
+ actor.hp = 1 if actor.dead?
262
+ end
263
+ end
264
+ #--------------------------------------------------------------------------
265
+ # * End Battle
266
+ # result : Result (0: Win 1: Escape 2: Lose)
267
+ #--------------------------------------------------------------------------
268
+ def self.battle_end(result)
269
+ @phase = nil
270
+ @event_proc.call(result) if @event_proc
271
+ $game_party.on_battle_end
272
+ $game_troop.on_battle_end
273
+ SceneManager.exit if $BTEST
274
+ end
275
+ #--------------------------------------------------------------------------
276
+ # * Start Command Input
277
+ #--------------------------------------------------------------------------
278
+ def self.input_start
279
+ if @phase != :input
280
+ @phase = :input
281
+ $game_party.make_actions
282
+ $game_troop.make_actions
283
+ clear_actor
284
+ end
285
+ return !@surprise && $game_party.inputable?
286
+ end
287
+ #--------------------------------------------------------------------------
288
+ # * Start Turn
289
+ #--------------------------------------------------------------------------
290
+ def self.turn_start
291
+ @phase = :turn
292
+ clear_actor
293
+ $game_troop.increase_turn
294
+ make_action_orders
295
+ end
296
+ #--------------------------------------------------------------------------
297
+ # * End Turn
298
+ #--------------------------------------------------------------------------
299
+ def self.turn_end
300
+ @phase = :turn_end
301
+ @preemptive = false
302
+ @surprise = false
303
+ end
304
+ #--------------------------------------------------------------------------
305
+ # * Display EXP Earned
306
+ #--------------------------------------------------------------------------
307
+ def self.display_exp
308
+ if $game_troop.exp_total > 0
309
+ text = sprintf(Vocab::ObtainExp, $game_troop.exp_total)
310
+ $game_message.add('\.' + text)
311
+ end
312
+ end
313
+ #--------------------------------------------------------------------------
314
+ # * Gold Acquisition and Display
315
+ #--------------------------------------------------------------------------
316
+ def self.gain_gold
317
+ if $game_troop.gold_total > 0
318
+ text = sprintf(Vocab::ObtainGold, $game_troop.gold_total)
319
+ $game_message.add('\.' + text)
320
+ $game_party.gain_gold($game_troop.gold_total)
321
+ end
322
+ wait_for_message
323
+ end
324
+ #--------------------------------------------------------------------------
325
+ # * Dropped Item Acquisition and Display
326
+ #--------------------------------------------------------------------------
327
+ def self.gain_drop_items
328
+ $game_troop.make_drop_items.each do |item|
329
+ $game_party.gain_item(item, 1)
330
+ $game_message.add(sprintf(Vocab::ObtainItem, item.name))
331
+ end
332
+ wait_for_message
333
+ end
334
+ #--------------------------------------------------------------------------
335
+ # * EXP Acquisition and Level Up Display
336
+ #--------------------------------------------------------------------------
337
+ def self.gain_exp
338
+ $game_party.all_members.each do |actor|
339
+ actor.gain_exp($game_troop.exp_total)
340
+ end
341
+ wait_for_message
342
+ end
343
+ #--------------------------------------------------------------------------
344
+ # * Create Action Order
345
+ #--------------------------------------------------------------------------
346
+ def self.make_action_orders
347
+ @action_battlers = []
348
+ @action_battlers += $game_party.members unless @surprise
349
+ @action_battlers += $game_troop.members unless @preemptive
350
+ @action_battlers.each {|battler| battler.make_speed }
351
+ @action_battlers.sort! {|a,b| b.speed - a.speed }
352
+ end
353
+ #--------------------------------------------------------------------------
354
+ # * Force Action
355
+ #--------------------------------------------------------------------------
356
+ def self.force_action(battler)
357
+ @action_forced = battler
358
+ @action_battlers.delete(battler)
359
+ end
360
+ #--------------------------------------------------------------------------
361
+ # * Get Forced State of Battle Action
362
+ #--------------------------------------------------------------------------
363
+ def self.action_forced?
364
+ @action_forced != nil
365
+ end
366
+ #--------------------------------------------------------------------------
367
+ # * Get Battler Subjected to Forced Action
368
+ #--------------------------------------------------------------------------
369
+ def self.action_forced_battler
370
+ @action_forced
371
+ end
372
+ #--------------------------------------------------------------------------
373
+ # * Clear Forcing of Battle Action
374
+ #--------------------------------------------------------------------------
375
+ def self.clear_action_force
376
+ @action_forced = nil
377
+ end
378
+ #--------------------------------------------------------------------------
379
+ # * Get Next Action Subject
380
+ # Get the battler from the beginning of the action order list.
381
+ # If an actor not currently in the party is obtained (occurs when index
382
+ # is nil, immediately after escaping in battle events etc.), skip them.
383
+ #--------------------------------------------------------------------------
384
+ def self.next_subject
385
+ loop do
386
+ battler = @action_battlers.shift
387
+ return nil unless battler
388
+ next unless battler.index && battler.alive?
389
+ return battler
390
+ end
391
+ end
392
+ end