so I've 'updated' it, but I think I screwed up in several places:
#==============================================================================
# ** Scene Battle Strategy
#------------------------------------------------------------------------------
# This class performs battle strategy screen processing.
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# * Start Strategy (make sure @battler is_an_actor? = true)
#--------------------------------------------------------------------------
def start_strategy
#load background window overlay with actor's name
#load arrow key readers
@triangle_step = 1
update_triangle
end
#--------------------------------------------------------------------------
# * Make Triangle (circle, x_rotate, y_rotate, z_rotate, triangle lid)
#--------------------------------------------------------------------------
def make_triangle
y_mod = 25
# triangle background
@sprite8 = Sprite.new
@sprite8.z, @sprite8.x, @sprite8.y = 115, 477, 280 + y_mod
@sprite8.angle = 0 #keep 0
@sprite8.bitmap = RPG::Cache.picture ("tri_circle")
# get actor
@active_battler = $game_party.actors[@actor_index]
# x_rotate
@sprite9 = Sprite.new
@sprite9.z, @sprite9.x, @sprite9.y = 116, 555, 306 + y_mod
@sprite9.angle = 0 + @active_battler.spd
@sprite9.ox = 6
@sprite9.oy = 6
@sprite9.bitmap = RPG::Cache.picture ("x_rotate")
# y_rotate
@sprite10 = Sprite.new
@sprite10.z, @sprite10.x, @sprite10.y = 117, 503 +6, 381 + y_mod
@sprite10.angle = 0 + @active_battler.uke
@sprite10.ox = 6
@sprite10.oy = 47
@sprite10.bitmap = RPG::Cache.picture ("y_rotate")
#z_rotate
@sprite11 = Sprite.new
@sprite11.z, @sprite11.x, @sprite11.y = 118, 525 +69, 383 + y_mod
@sprite11.angle = 0 + @active_battler.agg
@sprite11.ox = 69
@sprite11.oy = 52
@sprite11.bitmap = RPG::Cache.picture ("z_rotate")
#tri_cover
@sprite12 = Sprite.new
@sprite12.z, @sprite12.x, @sprite12.y = 119, 497, 290 + y_mod
@sprite12.angle = 0 #keep 0
@sprite12.bitmap = RPG::Cache.picture ("tri_cover")
end
#--------------------------------------------------------------------------
# * Make Bars (initiative, semeru, brutality, arrowR, arrowG, arrowB)
#--------------------------------------------------------------------------
def make_bars
# get actor
@active_battler = $game_party.actors[@actor_index]
# @active_battler.name
abs = @active_battler.spd
abu = @active_battler.uke
aba = @active_battler.agg
y_mod = 25
# initiative <=> patience (impulsive/intercept)
@sprite1 = Sprite.new
@sprite1.z, @sprite1.x, @sprite1.y = 120, 260, 274 + y_mod
@sprite1.angle = 0
@sprite1.bitmap = RPG::Cache.picture ("yellow_blue")
# semeru <=> ukeru (forceful/receiving)
@sprite2 = Sprite.new
@sprite2.z, @sprite2.x, @sprite2.y = 121, 261, 348 + y_mod
@sprite2.angle = 0
@sprite2.bitmap = RPG::Cache.picture ("indigo_green")
# brutality <=> finesse (bloody/accurate)
@sprite3 = Sprite.new
@sprite3.z, @sprite3.x, @sprite3.y = 122, 260, 376 + y_mod
@sprite3.angle = 0
@sprite3.bitmap = RPG::Cache.picture ("red_orange")
#arrowB
@sprite4 = Sprite.new
@sprite4.z, @sprite4.x, @sprite4.y = 123, 346 + abs, 334 + y_mod
@sprite4.angle = 0
@sprite4.bitmap = RPG::Cache.picture ("arrowB")
#arrowG
@sprite5 = Sprite.new
@sprite5.z, @sprite5.x, @sprite5.y = 123, 346 + abu, 362 + y_mod
@sprite5.angle = 0
@sprite5.bitmap = RPG::Cache.picture ("arrowG")
#arrowR
@sprite6 = Sprite.new
@sprite6.z, @sprite6.x, @sprite6.y = 124, 346 + aba, 391 + y_mod
@sprite6.angle = 0
@sprite6.bitmap = RPG::Cache.picture ("arrowR")
#black rectangle status display
@sprite7 = Sprite.new
@sprite7.z, @sprite7.x, @sprite7.y = 125, 260, 402 + y_mod
@sprite7.angle = 0
@sprite7.bitmap = RPG::Cache.picture ("black_rectangle")
#you need to stick the +/- 1-10 + text. over black_rectangle
# may need a Window_BlackText to make it happen.
end
#--------------------------------------------------------------------------
# * Frame Update (triangle lines and bar arrows move when updated)
#--------------------------------------------------------------------------
#probably an index loop starting with a case = 1, ++ with up/down
def update_triangle
case @triangle_step
when 1
update_triangle_step1
when 2
update_triangle_step2
when 3
update_triangle_step3
end
end
#--------------------------------------------------------------------------
# * Arrows Verticle: UP & DOWN
#--------------------------------------------------------------------------
def arrows_verticle
if Input.repeat?(Input::UP) and @triangle_step > 1
$game_system.se_play($data_system.cursor_se)
@triangle_step -= 1
refresh
end
if Input.repeat?(Input::DOWN) and @triangle_step < 3
$game_system.se_play($data_system.cursor_se)
@triangle_step += 1
refresh
end
end
#--------------------------------------------------------------------------
# * Frame Update (Strategy Option 1)
#--------------------------------------------------------------------------
def update_triangle_step1
#changes @active_battler.spd with left/right
arrows_verticle #may want this in refresh
#define active battler
@active_battler = $game_party.actors[@actor_index]
if Input.repeat?(Input::LEFT) and @active_battler.spd > -10
$game_system.se_play($data_system.cursor_se)
@active_battler.spd -= 1
refresh
end
if Input.repeat?(Input::RIGHT) and @active_battler.spd < 10
$game_system.se_play($data_system.cursor_se)
@active_battler.spd += 1
refresh
end
#Confirm Choices and Exit
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
make_strategy_result
end
# if you backspace, you want to reset "strategy" to temp values.
# this means you need a "temp" container
# i think the temp container-back space option is the hardest part...
#refresh display => probably could become a "refresh" def
#C button to confirm all three bars info
#if C button, then makebar/maketri/update tri
end
#--------------------------------------------------------------------------
# * Frame Update (Strategy Option 2)
#--------------------------------------------------------------------------
def update_triangle_step2
#changes @active_battler.uke with left/right
arrows_verticle
#define active battler
@active_battler = $game_party.actors[@actor_index]
if Input.repeat?(Input::LEFT) and @active_battler.uke > -10
$game_system.se_play($data_system.cursor_se)
@active_battler.uke -= 1
refresh
end
if Input.repeat?(Input::RIGHT) and @active_battler.uke < 10
$game_system.se_play($data_system.cursor_se)
@active_battler.uke += 1
refresh
end
#Confirm Choices and Exit
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
make_strategy_result
end
end
#--------------------------------------------------------------------------
# * Frame Update (Strategy Option 3)
#--------------------------------------------------------------------------
def update_triangle_step3
#changes @active_battler.agg with left/right
arrows_verticle
#define active battler
@active_battler = $game_party.actors[@actor_index]
if Input.repeat?(Input::LEFT) and @active_battler.agg > -10
$game_system.se_play($data_system.cursor_se)
@active_battler.agg -= 1
refresh
end
if Input.repeat?(Input::RIGHT) and @active_battler.agg < 10
$game_system.se_play($data_system.cursor_se)
@active_battler.agg += 1
refresh
end
#Confirm Choices and Exit
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
make_strategy_result
end
end
#--------------------------------------------------------------------------
# * Refresh - may cause interference: alt: "strategy_refresh"
#--------------------------------------------------------------------------
def refresh # may crash
make_bars
make_triangle
update_triangle
end
#--------------------------------------------------------------------------
# * Make Strategy Results (Game Battler: attr accessor(s) for @actor)
#--------------------------------------------------------------------------
def make_strategy_result
#lock values in place
# this def is a result of the C button from "update_triangle_step1-3"
#dispose of these windows and bitmaps (may crash)
@sprite1.dispose
@sprite2.dispose
@sprite3.dispose
@sprite4.dispose
@sprite5.dispose
@sprite6.dispose
@sprite7.dispose
@sprite8.dispose
@sprite9.dispose
@sprite10.dispose
@sprite11.dispose
@sprite12.dispose
# Go to command input for next actor
phase3_next_actor
end
end
some of the problems I'm experiencing:
it reads all the button pushing simultaneously - so as soon as I select the "strategy" and load these options, it also reads the
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
make_strategy_result
end
which then immediately loads the "phase3_next_actor" and '@sprite.dispose'.
finally, The arrow keys UP/DOWN/LEFT/RIGHT are still being used by Command menu instead of my script.