Added scripts
This commit is contained in:
parent
d40ae86ba4
commit
5118df09f4
106 changed files with 15680 additions and 0 deletions
307
scripts/Game_Battler 1.rb
Normal file
307
scripts/Game_Battler 1.rb
Normal file
|
@ -0,0 +1,307 @@
|
|||
#==============================================================================
|
||||
# ** Game_Battler (part 1)
|
||||
#------------------------------------------------------------------------------
|
||||
# This class deals with battlers. It's used as a superclass for the Game_Actor
|
||||
# and Game_Enemy classes.
|
||||
#==============================================================================
|
||||
|
||||
class Game_Battler
|
||||
#--------------------------------------------------------------------------
|
||||
# * Public Instance Variables
|
||||
#--------------------------------------------------------------------------
|
||||
attr_reader :battler_name # battler file name
|
||||
attr_reader :battler_hue # battler hue
|
||||
attr_reader :hp # HP
|
||||
attr_reader :sp # SP
|
||||
attr_reader :states # states
|
||||
attr_accessor :hidden # hidden flag
|
||||
attr_accessor :immortal # immortal flag
|
||||
attr_accessor :damage_pop # damage display flag
|
||||
attr_accessor :damage # damage value
|
||||
attr_accessor :critical # critical flag
|
||||
attr_accessor :animation_id # animation ID
|
||||
attr_accessor :animation_hit # animation hit flag
|
||||
attr_accessor :white_flash # white flash flag
|
||||
attr_accessor :blink # blink flag
|
||||
#--------------------------------------------------------------------------
|
||||
# * Object Initialization
|
||||
#--------------------------------------------------------------------------
|
||||
def initialize
|
||||
@battler_name = ""
|
||||
@battler_hue = 0
|
||||
@hp = 0
|
||||
@sp = 0
|
||||
@states = []
|
||||
@states_turn = {}
|
||||
@maxhp_plus = 0
|
||||
@maxsp_plus = 0
|
||||
@str_plus = 0
|
||||
@dex_plus = 0
|
||||
@agi_plus = 0
|
||||
@int_plus = 0
|
||||
@hidden = false
|
||||
@immortal = false
|
||||
@damage_pop = false
|
||||
@damage = nil
|
||||
@critical = false
|
||||
@animation_id = 0
|
||||
@animation_hit = false
|
||||
@white_flash = false
|
||||
@blink = false
|
||||
@current_action = Game_BattleAction.new
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Get Maximum HP
|
||||
#--------------------------------------------------------------------------
|
||||
def maxhp
|
||||
n = [[base_maxhp + @maxhp_plus, 1].max, 999999].min
|
||||
for i in @states
|
||||
n *= $data_states[i].maxhp_rate / 100.0
|
||||
end
|
||||
n = [[Integer(n), 1].max, 999999].min
|
||||
return n
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Get Maximum SP
|
||||
#--------------------------------------------------------------------------
|
||||
def maxsp
|
||||
n = [[base_maxsp + @maxsp_plus, 0].max, 9999].min
|
||||
for i in @states
|
||||
n *= $data_states[i].maxsp_rate / 100.0
|
||||
end
|
||||
n = [[Integer(n), 0].max, 9999].min
|
||||
return n
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Get Strength (STR)
|
||||
#--------------------------------------------------------------------------
|
||||
def str
|
||||
n = [[base_str + @str_plus, 1].max, 999].min
|
||||
for i in @states
|
||||
n *= $data_states[i].str_rate / 100.0
|
||||
end
|
||||
n = [[Integer(n), 1].max, 999].min
|
||||
return n
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Get Dexterity (DEX)
|
||||
#--------------------------------------------------------------------------
|
||||
def dex
|
||||
n = [[base_dex + @dex_plus, 1].max, 999].min
|
||||
for i in @states
|
||||
n *= $data_states[i].dex_rate / 100.0
|
||||
end
|
||||
n = [[Integer(n), 1].max, 999].min
|
||||
return n
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Get Agility (AGI)
|
||||
#--------------------------------------------------------------------------
|
||||
def agi
|
||||
n = [[base_agi + @agi_plus, 1].max, 999].min
|
||||
for i in @states
|
||||
n *= $data_states[i].agi_rate / 100.0
|
||||
end
|
||||
n = [[Integer(n), 1].max, 999].min
|
||||
return n
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Get Intelligence (INT)
|
||||
#--------------------------------------------------------------------------
|
||||
def int
|
||||
n = [[base_int + @int_plus, 1].max, 999].min
|
||||
for i in @states
|
||||
n *= $data_states[i].int_rate / 100.0
|
||||
end
|
||||
n = [[Integer(n), 1].max, 999].min
|
||||
return n
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Set Maximum HP
|
||||
# maxhp : new maximum HP
|
||||
#--------------------------------------------------------------------------
|
||||
def maxhp=(maxhp)
|
||||
@maxhp_plus += maxhp - self.maxhp
|
||||
@maxhp_plus = [[@maxhp_plus, -9999].max, 9999].min
|
||||
@hp = [@hp, self.maxhp].min
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Set Maximum SP
|
||||
# maxsp : new maximum SP
|
||||
#--------------------------------------------------------------------------
|
||||
def maxsp=(maxsp)
|
||||
@maxsp_plus += maxsp - self.maxsp
|
||||
@maxsp_plus = [[@maxsp_plus, -9999].max, 9999].min
|
||||
@sp = [@sp, self.maxsp].min
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Set Strength (STR)
|
||||
# str : new Strength (STR)
|
||||
#--------------------------------------------------------------------------
|
||||
def str=(str)
|
||||
@str_plus += str - self.str
|
||||
@str_plus = [[@str_plus, -999].max, 999].min
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Set Dexterity (DEX)
|
||||
# dex : new Dexterity (DEX)
|
||||
#--------------------------------------------------------------------------
|
||||
def dex=(dex)
|
||||
@dex_plus += dex - self.dex
|
||||
@dex_plus = [[@dex_plus, -999].max, 999].min
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Set Agility (AGI)
|
||||
# agi : new Agility (AGI)
|
||||
#--------------------------------------------------------------------------
|
||||
def agi=(agi)
|
||||
@agi_plus += agi - self.agi
|
||||
@agi_plus = [[@agi_plus, -999].max, 999].min
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Set Intelligence (INT)
|
||||
# int : new Intelligence (INT)
|
||||
#--------------------------------------------------------------------------
|
||||
def int=(int)
|
||||
@int_plus += int - self.int
|
||||
@int_plus = [[@int_plus, -999].max, 999].min
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Get Hit Rate
|
||||
#--------------------------------------------------------------------------
|
||||
def hit
|
||||
n = 100
|
||||
for i in @states
|
||||
n *= $data_states[i].hit_rate / 100.0
|
||||
end
|
||||
return Integer(n)
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Get Attack Power
|
||||
#--------------------------------------------------------------------------
|
||||
def atk
|
||||
n = base_atk
|
||||
for i in @states
|
||||
n *= $data_states[i].atk_rate / 100.0
|
||||
end
|
||||
return Integer(n)
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Get Physical Defense Power
|
||||
#--------------------------------------------------------------------------
|
||||
def pdef
|
||||
n = base_pdef
|
||||
for i in @states
|
||||
n *= $data_states[i].pdef_rate / 100.0
|
||||
end
|
||||
return Integer(n)
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Get Magic Defense Power
|
||||
#--------------------------------------------------------------------------
|
||||
def mdef
|
||||
n = base_mdef
|
||||
for i in @states
|
||||
n *= $data_states[i].mdef_rate / 100.0
|
||||
end
|
||||
return Integer(n)
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Get Evasion Correction
|
||||
#--------------------------------------------------------------------------
|
||||
def eva
|
||||
n = base_eva
|
||||
for i in @states
|
||||
n += $data_states[i].eva
|
||||
end
|
||||
return n
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Change HP
|
||||
# hp : new HP
|
||||
#--------------------------------------------------------------------------
|
||||
def hp=(hp)
|
||||
@hp = [[hp, maxhp].min, 0].max
|
||||
# add or exclude incapacitation
|
||||
for i in 1...$data_states.size
|
||||
if $data_states[i].zero_hp
|
||||
if self.dead?
|
||||
add_state(i)
|
||||
else
|
||||
remove_state(i)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Change SP
|
||||
# sp : new SP
|
||||
#--------------------------------------------------------------------------
|
||||
def sp=(sp)
|
||||
@sp = [[sp, maxsp].min, 0].max
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Recover All
|
||||
#--------------------------------------------------------------------------
|
||||
def recover_all
|
||||
@hp = maxhp
|
||||
@sp = maxsp
|
||||
for i in @states.clone
|
||||
remove_state(i)
|
||||
end
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Get Current Action
|
||||
#--------------------------------------------------------------------------
|
||||
def current_action
|
||||
return @current_action
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Determine Action Speed
|
||||
#--------------------------------------------------------------------------
|
||||
def make_action_speed
|
||||
@current_action.speed = agi + rand(10 + agi / 4)
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Decide Incapacitation
|
||||
#--------------------------------------------------------------------------
|
||||
def dead?
|
||||
return (@hp == 0 and not @immortal)
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Decide Existance
|
||||
#--------------------------------------------------------------------------
|
||||
def exist?
|
||||
return (not @hidden and (@hp > 0 or @immortal))
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Decide HP 0
|
||||
#--------------------------------------------------------------------------
|
||||
def hp0?
|
||||
return (not @hidden and @hp == 0)
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Decide if Command is Inputable
|
||||
#--------------------------------------------------------------------------
|
||||
def inputable?
|
||||
return (not @hidden and restriction <= 1)
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Decide if Action is Possible
|
||||
#--------------------------------------------------------------------------
|
||||
def movable?
|
||||
return (not @hidden and restriction < 4)
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Decide if Guarding
|
||||
#--------------------------------------------------------------------------
|
||||
def guarding?
|
||||
return (@current_action.kind == 0 and @current_action.basic == 1)
|
||||
end
|
||||
#--------------------------------------------------------------------------
|
||||
# * Decide if Resting
|
||||
#--------------------------------------------------------------------------
|
||||
def resting?
|
||||
return (@current_action.kind == 0 and @current_action.basic == 3)
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue