Added scripts
This commit is contained in:
parent
d40ae86ba4
commit
5118df09f4
106 changed files with 15680 additions and 0 deletions
145
scripts/Game_BattleAction.rb
Normal file
145
scripts/Game_BattleAction.rb
Normal file
|
@ -0,0 +1,145 @@
|
|||
#==============================================================================
|
||||
# ** Game_BattleAction
|
||||
#------------------------------------------------------------------------------
|
||||
# This class handles actions in battle. It's used within the Game_Battler
|
||||
# class.
|
||||
#==============================================================================
|
||||
|
||||
class Game_BattleAction
|
||||
#--------------------------------------------------------------------------
|
||||
# * Public Instance Variables
|
||||
#--------------------------------------------------------------------------
|
||||
attr_accessor :speed # speed
|
||||
attr_accessor :kind # kind (basic / skill / item)
|
||||
attr_accessor :basic # basic (attack / guard / escape)
|
||||
attr_accessor :skill_id # skill ID
|
||||
attr_accessor :item_id # item ID
|
||||
attr_accessor :target_index # target index
|
||||
attr_accessor :forcing # forced flag
|
||||
#--------------------------------------------------------------------------
|
||||
# * Object Initialization
|
||||
#--------------------------------------------------------------------------
|
||||
def initialize
|
||||
clear
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Clear
|
||||
#--------------------------------------------------------------------------
|
||||
def clear
|
||||
@speed = 0
|
||||
@kind = 0
|
||||
@basic = 3
|
||||
@skill_id = 0
|
||||
@item_id = 0
|
||||
@target_index = -1
|
||||
@forcing = false
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Determine Validity
|
||||
#--------------------------------------------------------------------------
|
||||
def valid?
|
||||
return (not (@kind == 0 and @basic == 3))
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Determine if for One Ally
|
||||
#--------------------------------------------------------------------------
|
||||
def for_one_friend?
|
||||
# If kind = skill, and effect scope is for ally (including 0 HP)
|
||||
if @kind == 1 and [3, 5].include?($data_skills[@skill_id].scope)
|
||||
return true
|
||||
end
|
||||
# If kind = item, and effect scope is for ally (including 0 HP)
|
||||
if @kind == 2 and [3, 5].include?($data_items[@item_id].scope)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Determine if for One Ally (HP 0)
|
||||
#--------------------------------------------------------------------------
|
||||
def for_one_friend_hp0?
|
||||
# If kind = skill, and effect scope is for ally (only 0 HP)
|
||||
if @kind == 1 and [5].include?($data_skills[@skill_id].scope)
|
||||
return true
|
||||
end
|
||||
# If kind = item, and effect scope is for ally (only 0 HP)
|
||||
if @kind == 2 and [5].include?($data_items[@item_id].scope)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Random Target (for Actor)
|
||||
#--------------------------------------------------------------------------
|
||||
def decide_random_target_for_actor
|
||||
# Diverge with effect scope
|
||||
if for_one_friend_hp0?
|
||||
battler = $game_party.random_target_actor_hp0
|
||||
elsif for_one_friend?
|
||||
battler = $game_party.random_target_actor
|
||||
else
|
||||
battler = $game_troop.random_target_enemy
|
||||
end
|
||||
# If a target exists, get an index, and if a target doesn't exist,
|
||||
# clear the action
|
||||
if battler != nil
|
||||
@target_index = battler.index
|
||||
else
|
||||
clear
|
||||
end
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Random Target (for Enemy)
|
||||
#--------------------------------------------------------------------------
|
||||
def decide_random_target_for_enemy
|
||||
# Diverge with effect scope
|
||||
if for_one_friend_hp0?
|
||||
battler = $game_troop.random_target_enemy_hp0
|
||||
elsif for_one_friend?
|
||||
battler = $game_troop.random_target_enemy
|
||||
else
|
||||
battler = $game_party.random_target_actor
|
||||
end
|
||||
# If a target exists, get an index, and if a target doesn't exist,
|
||||
# clear the action
|
||||
if battler != nil
|
||||
@target_index = battler.index
|
||||
else
|
||||
clear
|
||||
end
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Last Target (for Actor)
|
||||
#--------------------------------------------------------------------------
|
||||
def decide_last_target_for_actor
|
||||
# If effect scope is ally, then it's an actor, anything else is an enemy
|
||||
if @target_index == -1
|
||||
battler = nil
|
||||
elsif for_one_friend?
|
||||
battler = $game_party.actors[@target_index]
|
||||
else
|
||||
battler = $game_troop.enemies[@target_index]
|
||||
end
|
||||
# Clear action if no target exists
|
||||
if battler == nil or not battler.exist?
|
||||
clear
|
||||
end
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Last Target (for Enemy)
|
||||
#--------------------------------------------------------------------------
|
||||
def decide_last_target_for_enemy
|
||||
# If effect scope is ally, then it's an enemy, anything else is an actor
|
||||
if @target_index == -1
|
||||
battler = nil
|
||||
elsif for_one_friend?
|
||||
battler = $game_troop.enemies[@target_index]
|
||||
else
|
||||
battler = $game_party.actors[@target_index]
|
||||
end
|
||||
# Clear action if no target exists
|
||||
if battler == nil or not battler.exist?
|
||||
clear
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue