| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 7 |
| 经验 | |
| 最后登录 | 2021-10-29 |
| 在线时间 | 2184 小时 |
- 梦石
- 0
- 星屑
- 672
- 在线时间
- 2184 小时
- 注册时间
- 2009-12-6
- 回帖
- 571

|
发表于 2012-4-15 18:26:59
|
显示全部楼层
[pre lang="ruby"]
5 J! {1 O, P% s# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
4 i' e* f8 s5 j) \, m9 U3 w#===============================================================================& [' x# l/ S6 ^1 Z* K
# BATTLER / SENSOR RANGE / PLAYER COMMANDS / ENEMY COMMANDS/ L2 V) k$ s% i1 S3 u
#===============================================================================) r& ^7 ?9 W& n/ a/ a" O
# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■9 X& t- V/ X# P
( e7 y+ z4 m' L0 R
9 B1 H" Z" C9 i! d- K. w/ R
/ I; G! R& U: J* V+ ~
h4 ?+ _* P! g! ^3 M$ L4 X
#===============================================================================! W! [/ Q5 M/ \1 f
# ■ SENSOR - {4 R* |0 a7 f6 Q! I
#===============================================================================
5 {+ I8 p5 j: m& P$ }$ c6 V1 ^# wmodule XRXS_EnemySensor
" ]* I' q1 {( B) ~) g5 @" `5 q
' c, \, x$ A1 o: e5 a& o #--------------------------------------------------------------------------
& @$ H6 ~+ i8 i6 k; {+ m7 V # ● Update Sensor# X$ q* k/ |$ {4 Q7 k+ \: Q: S
#--------------------------------------------------------------------------1 G# g( S" {5 q
def update_sensor/ j Q. v! G; L ], q
return if self.dead? or self.erased or self.tool_id > 0
# N7 C% I$ x, ]$ w0 F) Y if self.battler.is_a?(Game_Actor)
. l: t3 g% k0 h+ o D5 G0 Z enemy_sensor = 4* f; V* _- Q2 L. S4 b) S( u( s6 ~
else& m" z: `8 ?# s3 j0 Y
enemy_sensor = XAS_BA_ENEMY::ENEMY_SENSOR[self.battler.id]
; w5 _- ^ x) N' t end ' C8 W) J3 w9 L
if self.battler != nil and self.battler.sensor_range > 0
2 H- H( D+ H- P. S @sensor_range = enemy_sensor * G D' u) Z* |
else 4 t: X0 N9 y2 Y$ _# u) D8 Z6 [
@sensor_range = $game_variables[XAS_BA_ENEMY::DEFAULT_ENEMY_SENSOR_VARIABLE_ID] Y |; }9 c% ^# p9 Z3 j
end 0 Q, s" [/ u" g
@sensor_range = -1 if self.battler != nil and cancel_sensor? $ j H/ q" D: |8 K* A9 L( {
distance = ($game_player.x - self.x).abs + ($game_player.y - self.y).abs# y% C8 o$ U) j6 I/ K y
enable = (distance <= @sensor_range)' Z- ?( P; w5 R" U, t
key = [$game_map.map_id, self.id, XAS_BA::SENSOR_SELF_SWITCH]
) S' W5 O0 T8 R# W" m$ J, r last_enable = $game_self_switches[key]
5 d$ n& w+ P% n last_enable = false if last_enable == nil- V" l- t1 J' k3 ~1 S% L
if enable, C3 x) ]2 o# a2 c/ {3 L; f
self.range_type = 0
( ^4 W9 c7 |) r: ~ else
6 ^$ r. D9 B, Y: [$ n# I* N self.range_type = 12 a* ^1 E& [( d$ L; \7 {
end 8 W5 E! E3 k6 m) ^
if enable != last_enable
- Y$ L4 s. u/ a+ m self.action_times = 0+ E5 R U; i& U% k% S$ a! }' o
$game_self_switches[key] = enable
! ]$ e6 G6 V5 L. B5 G, y) y8 R attack_off if self.battler != nil3 l9 C' C# b" [
self.refresh
: E, M+ k. z0 Q5 {$ C h5 D* ^- m end6 ?( O% ]- N6 \- h$ A
end1 h; x2 }" Z# G; N9 p. v9 h
: j2 O; G6 P) m& D1 [
#--------------------------------------------------------------------------
9 _% L4 w! n% x" j! s* J J # ● Cancel Sensor
) _) x/ A ^; O #--------------------------------------------------------------------------3 c4 A/ e. f) [9 ^
def cancel_sensor?) x2 E* u$ Y. U* q: v; s, o8 @
return true if @actor == nil 5 i y o [4 H3 @
return true if self.knockbacking?
0 D% i8 P. j* p9 t return true if self.throw_active
0 B9 b0 M6 H4 ~! a return true if self.battler.e_passive
# Z. ~; [ \# a' c2 Z% f8 w return true if self.battler.stop2 A! F0 M0 `9 { |
return true if self.battler.state_sleep
' h4 v% \0 W: W& J if self.battler.sensor_range < 15) {8 [ z7 m6 B
return true if self.battler.state_cancel_sensor# H! {+ k# }& Z9 {7 e
return true if $game_player.battler.state_cancel_sensor9 ~7 r0 X7 E) K9 L! H
end
# h# W6 K7 \# q c, d8 U return false 0 l3 `; U8 q0 K
end5 {) w( | D4 \; O1 W
end
6 N8 e+ X r* |. j4 I4 o. Y" `( U3 |! S
#===============================================================================
3 s- t9 N: b n- b# ■ Game_Event
p- {% g; K7 k4 ?+ m+ v& U#===============================================================================. \! c: y+ q |5 X
class Game_Event < Game_Character6 I, k* f; k0 L
include XRXS_EnemySensor
' g3 [7 r2 W+ K: y5 |3 ]end$ e4 ]$ W; e! h# y0 q( w
# u3 E! C, |/ M
; Y$ z2 a- X$ M" \# d# A K; }9 M" {+ @
1 i% _$ p4 v M4 g# j
0 M& |4 U* @5 Y9 p$ _
% M: D! R* H( j* S6 |#===============================================================================
/ b/ }. k6 T+ ~" ~; b# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■6 k' y/ ~) l. @! g) c9 n
# CT METER
; e9 O! |' X0 v( b# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
& X( X# B$ c7 s$ M5 M( j" a#===============================================================================( n u+ h! ~! N! K# g, o
B6 ]; C) i) o+ {% H#===============================================================================
3 M8 O. I' m8 Q2 `" [# H- a: D# ■ GAME_PLAYER1 F' b( d; }0 m) A o4 N
#===============================================================================
# W/ b7 j0 c) h, P# t, @4 ?class Game_Player < Game_Character
' H$ |2 F! M/ {0 e% W
: P( _6 [( @" k #--------------------------------------------------------------------------
# c) N8 I+ o% j0 L: H7 m7 z) V # ● Update CT Meter Speed/ U% {2 D+ T* Q% X' J7 r" C
#--------------------------------------------------------------------------6 P7 q' B6 N4 O G
def update_ct_meter_speed
2 L& M1 V2 p$ t/ W0 I0 C' g8 j return if $game_switches[XAS::CT_DISABLE_SWITCH]
4 R2 J3 W. w& i& l9 c, n. f if self.battler.state_ctdown
/ H2 z( B" M V7 }" K$ P* T ct_meter_limit = XAS::CT_METER_SPEED * XAS::CT_POWER
5 f8 ~4 n* ~& W else
( J/ R# L( B, e$ M4 R8 j m m ct_meter_limit = XAS::CT_METER_SPEED
9 D7 r/ W1 |5 X# Z end
, Y; T' M2 [" \) V) A2 C $game_system.action_meter_refresh += 1* D/ p3 F/ L: o% ~3 e* n
$game_system.action_meter_refresh = 0 if $game_system.action_meter_refresh > ct_meter_limit 6 C" W' j) K3 b4 S' ]' A/ L
if self.battler.state_ctup4 [8 P; w$ S8 n* E7 ?
ct_speed_down = 1
2 U! ~, Y8 s2 _ ct_speed_up = XAS::CT_POWER
0 H# ]+ L3 i1 k7 Q: e- B9 o ct_speed_up = 0 if $game_temp.xas_charge_time > 5
4 T f/ L9 y! y1 i9 C' o F elsif self.battler.state_ctdown
* _5 v4 t2 K5 L+ J8 X ct_speed_down = XAS::CT_POWER# k8 U) B k0 Y# W& B
ct_speed_up = 1 7 Y5 {. E7 z/ r1 ] @/ H& c
ct_speed_up = 0 if $game_temp.xas_charge_time > 55 l: q: B3 w9 n/ c- ?- c
else . H( c; S3 Z: q3 F8 c+ s! K* o6 d
ct_speed_down = 1
+ \" @" k# z6 A( w% _ ct_speed_up = 1
7 r% y2 }9 q6 F4 t* Y. V6 a ct_speed_up = 0 if $game_temp.xas_charge_time > 5" u5 i+ Q6 g0 n
end
' \: y, U/ K4 Y% D) d/ T if Input.press?(XAS_COMMAND::DASH_BUTTON) or can_shield?(0) - u" ^2 C* J& l l: ]+ o
if $game_system.action_meter_refresh == 01 s$ k/ Z2 T+ `9 L/ {
$game_system.action_meter -= ct_speed_down if $game_player.action == nil
6 x/ y% `: T7 I! j* \1 y% Q end
* a7 d6 |; }( A& S! ?% t7 l6 T else * e& I, ?$ r, S( b0 O
if $game_system.action_meter_refresh == 0 and not can_shield?(1) + g' k/ }/ I( o4 f
$game_system.action_meter += ct_speed_up6 _6 f% u& q& n' B, C6 M, Z
end
F. e0 O1 Z# ?! w( o end
, i+ W7 @( t3 ?5 O# K; a+ U. ?3 Q4 c0 q end
! W. N/ t* {0 S5 p2 \0 k0 H- r ( X) i" V; U* d, g2 }' T# X/ S
end / S4 i; x8 S. S+ l8 Z
g. B6 d/ `" b& @5 S# Z7 B( u1 w6 P1 _
+ k0 u; V- n9 ?3 ?7 S6 C
; I9 A1 F* H; N% T/ {
$ K3 W- g7 {2 \
4 r8 Z) p- o$ ~: E
& S1 [( }/ P- x) w, _6 |7 U: F8 i% ^0 B9 c9 Q2 E' e
# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■7 E5 X+ \" C" x: b& v- v
#===============================================================================
! M8 e# S4 f @/ N" t# COMMAND" |- i+ R# t: u8 H3 |
#===============================================================================
( k$ o2 q! R& y. b% M, b0 o# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
1 v& m; `" t h( C+ U% i2 U( F' L5 ^, s1 R3 i" Z, l* A& i
class Game_Player < Game_Character ) i! \( e0 P+ N+ o) a5 ^+ W% G
#--------------------------------------------------------------------------* k P; ]2 M$ } d& E
# ● Update Command. [9 J V3 ]. N3 Y, \+ q
#-------------------------------------------------------------------------- 9 y7 z/ L+ g, P" \
def update_command: U T( F: t; M$ j( a& N; E
if Input.trigger?(XAS_COMMAND::ATTACK_ACTION1) # P' |1 g0 ]% L6 `" Y, a" w
active_attack #ATTACK
$ F- `. e4 P' U ^( e) z' \ elsif Input.trigger?(XAS_COMMAND::SKILL_ACTION) or $command_skill != 0" P* W/ m! T( p2 ^2 |
active_skill #SKILL
, g }2 C# O/ t6 U. `$ a3 } elsif Input.trigger?(XAS_COMMAND::ATTACK_ACTION2)9 N3 h2 e. c; y. X
active_shield #SHIELD
9 k" b* D) T% J: I5 F# ~ elsif Input.trigger?(XAS_COMMAND::ITEM_ACTION) or $command_item != 0! F9 k ^7 `( c0 c
active_item #ITEM
8 T4 \4 |( P& {8 i elsif Input.trigger?(XAS_COMMAND::DASH_BUTTON) $ k$ ?7 U* l: M" w* M# E; x
active_dodge #DODGE
4 y) l7 @) n/ Y( ` Z- x/ U elsif Input.trigger?(XAS_COMMAND::SKILL_CHANGE)$ t0 Y6 q& j% e) M3 r: s" |
if $game_system.quick_menu and can_call_menu? #Quik Menu Skill
6 H7 y' }1 W5 C4 j; U $scene = Quick_Menu_Skill.new8 W) x. k+ E+ F1 N& B H9 g6 e
else
" {( m/ Z" Z. }: a active_change_skill #Change Skill
: M( Y$ u# J: d* y. h0 ^' F end
2 R% W% y/ F. x1 r3 g0 N1 X elsif Input.trigger?(XAS_COMMAND::ITEM_CHANGE) 6 r) C! W1 q6 C2 C8 P+ ^
if $game_system.quick_menu and can_call_menu?
' E7 h b& q/ A' G+ g $scene = Quick_Menu_Item.new #Quik Menu Item % c6 a1 ]2 G* a# _7 X/ ^$ {
else# {3 p1 F" c6 c. F b: ~
active_change_item #Change Item
) Z) b% |8 S5 x% s$ Z* W7 ]" [& z end ) Q7 d9 `+ a& Q3 _$ A
end
3 P1 v% ^5 c5 A M' c! ? end 4 Z0 @) e Z. E( Y: l
: D" W6 h+ {# ?& w #--------------------------------------------------------------------------
1 Q# N" M! ~: m/ w# W # ● Can Action . D( U# {9 p3 I8 q9 ?
#--------------------------------------------------------------------------
# B7 p, z. J9 z def can_action?
3 k, R9 Q2 u. ~: Q4 y2 [( B return false if self.action != nil* d9 y8 i3 v9 K+ ]) o( `
return false if self.knockbacking? R2 f) K# g. n* r$ r4 K. m
return false if $game_temp.xas_charge_time >= 10/ H: u8 O7 }, B8 Z) _2 b
return false if $game_temp.cast_time > 0 , l6 _" @# P4 y, ] {
return false if jumping?
7 m' r& Y {' [: {0 p return false if $game_switches[XAS_COMMAND::COMMAND_DISABLE_SWITCH] == true. c' w# D) L$ C* ]9 V; `( ]' k$ R' Z4 u
return false if $game_temp.lock_command # D- K! R7 r4 Z5 Z: L. c
return false if $game_system.fly
/ P* c$ i. y& D D2 [, G( Y return false if @swimming
, W* z9 p7 k% D3 z6 J& k& O return false if @pickup_lock
/ G* ]) c! x9 [# v# Q, ~; d8 k return false if @pickup_lock_time > 0 2 c' n/ ?4 W( U0 l0 R% g8 e
return false if terrain_tag == XAS::FALL_TERRAIN and @fall_safe_time == 03 n9 z+ ^6 t5 \" o' i6 X4 M% h4 g- k
return false if terrain_tag == XAS::SLIP_TERRAIN " g6 Z' R8 |: [" V( [1 B
return false unless $game_temp.hook_x == 0 and $game_temp.hook_y == 0 $ S6 o/ G: } R+ Q$ e
return true, i- g+ a) ]7 S% ~: Z$ k
end , l! ^/ G9 n- j) ^; y/ W
: S6 b/ D. a: Z. Z1 f) K#--------------------------------------------------------------------------
. j+ i% k$ J5 H5 [7 k# \# ● Check Combo# Q, I: Y6 @2 C8 M
#--------------------------------------------------------------------------
9 H* D: P. Q% F8 i7 C- ]: g def check_combo(action_id,type)3 Y4 n: j3 Y% b
combo_id = Database_Bullet::LINK_ACTION_ID[action_id] : b" s3 F, h: x' G
return false if combo_id == 0
. a( r7 @3 `0 h$ t* q7 R8 s combo_time = Database_Bullet::SUFLAGS[action_id] + XAS_SKILL::COMBO_TIME
4 X9 ?* T( O5 H d case type ) D( _- d" A* s( ]
when 1 #Attack) q) C: G# [' } w8 f
$game_temp.xas_combo_attack_id = combo_id
3 s2 E1 @5 Q5 K $game_temp.xas_combo_attack_time = combo_time
3 d* a+ Y8 d4 G! \$ ~/ g $game_temp.xas_combo_skill_id = 0
7 V: C, M/ Z- I$ A $game_temp.xas_combo_skill_time = 0
; o5 V9 Z8 Z" J2 c& A" i $game_temp.xas_combo_item_id = 0
$ k# b" ^/ Q& V% O' g% f3 G2 L$ J/ b $game_temp.xas_combo_item_time = 0 / I8 `% G7 r9 o. |' [
when 2 #Skill
% K% ~4 g \" }+ u/ i E" A& r% G+ Z $game_temp.xas_combo_attack_id = 0, _- q3 \' X! L( b4 C
$game_temp.xas_combo_attack_time = 0: Q5 N, \3 O6 `7 s0 k3 z1 @
$game_temp.xas_combo_skill_id = combo_id
" e; }( ^3 |$ Y/ X) n $game_temp.xas_combo_skill_time = combo_time# Q2 h) T8 l: _( ?4 x, e
$game_temp.xas_combo_item_id = 0/ C( X- ~$ D$ ?
$game_temp.xas_combo_item_time = 0
1 o. U! o4 l% h" Q4 c: y" e$ a when 3 #Item
7 n6 `" L" {% G4 p/ u% L7 h2 O $game_temp.xas_combo_attack_id = 0
% n$ Y6 Y+ A& G+ f0 P% z4 Z! X $game_temp.xas_combo_attack_time = 07 t, G9 L, s/ V$ p
$game_temp.xas_combo_skill_id = 0
2 \: I2 q( @/ w: J9 H $game_temp.xas_combo_skill_time = 01 B6 E$ C6 O6 q3 r4 l0 R3 k C1 ^! }
$game_temp.xas_combo_item_id = combo_id l/ b4 ]) A( t! P+ q i
$game_temp.xas_combo_item_time = combo_time $ r: H& o( }/ H- F" x5 x% m, E
end
$ L& S5 t/ k" r' |8 o- j) p end # j6 U: K; v+ y+ @2 o
) Q& O9 I( }9 ~6 M3 v4 R) h, S9 ^7 K
#--------------------------------------------------------------------------7 }; U7 V% M5 O. p
# ● Cast Action ?
9 I; F& K/ e) }; f#--------------------------------------------------------------------------
~, s% ~3 @6 ?+ p A2 h def cast_action?(action_id,type)
" q' g+ C: ?8 u cast_time = Database_Bullet::PLAYER_CAST_TIME[action_id]
0 x0 @! |6 [1 z return false if cast_time <= 0
' ~2 o7 x+ e7 x return false if $game_temp.cast_skill_id != 0" z1 f7 k' T# L, |+ e2 r( |/ j3 v \
return false if $game_temp.force_action_now_id != 0 or $game_temp.force_action_id != 0 U$ ^0 z( F; k5 K: [* [
$game_temp.cast_type = type
2 U9 Q+ e& z6 K" D, d skill_id = action_id
$ B0 j$ r$ K" a- s% ~ skill = skill_id == nil ? nil : $data_skills[skill_id]
$ k* I0 z7 J7 j sp_cost = skill.sp_cost
U, v7 j. ]$ z0 I/ U if @actor.sp >= skill.sp_cost6 A' b- N; ~7 b3 x
$game_player.animation_id = XAS_SKILL::DEFAULT_CAST_ANIMATION_ID
$ D0 J; @1 v3 F9 C' E | end " }: P- s6 G& \) r; w7 `4 q }$ I
$game_temp.cast_skill_id = action_id
/ {9 ~. h4 d/ Y1 V; l. I $game_temp.cast_time = 10 * cast_time
, R" X* S/ g4 A x7 s( _0 B3 j return true
' g9 m* m) p) o3 A% N$ z8 I end
i1 k; `! M' s
p4 G7 L, w3 r& E2 s4 b#--------------------------------------------------------------------------
0 @- y2 z& x, V# ● Can Target?
, _! l2 s6 k, k#--------------------------------------------------------------------------
9 G; n! f+ n' v* G+ ~$ M5 i% S- R- N def update_shoot_on_target
1 W T& U* m) s return if $game_temp.xas_target_time == 0
* e. I: I: w; d1 N. | return if $game_temp.xas_target_shoot_id == 0
- Y; V8 z: H* Q return if $game_temp.xas_target_x == 0 and $game_temp.xas_target_y == 0
9 ~1 A R% }, u! H* I6 @ $game_temp.xas_target_time -= 18 J; A9 C I1 Z6 ]( ]% `4 u; f
if $game_temp.xas_target_time == 0
2 w; G' w# `/ s7 v! @' E self.shoot($game_temp.xas_target_shoot_id) ( R1 x) C/ G3 b; W& a: s
$game_temp.xas_target_shoot_id = 08 Z* |0 Z9 [5 `" k+ P
end ! N- F, l" T7 p# ^) m4 q
end
$ |) O- H9 R; \$ u* Y! J4 i 1 A7 n# R2 J* V* H: k E( H- o' g" f
#--------------------------------------------------------------------------
: v- L8 V; K% C- i$ J$ J! h! R# ● XAS - Button SKILL0 T! F4 {+ I$ O1 }0 R2 x( N3 A' L
#--------------------------------------------------------------------------; V6 p$ {! k u1 n
def active_skill
: ^8 a2 K2 \, ]0 J( B0 [6 I+ F3 G$ P type = 2
" r' ^" o& r$ w7 u+ g if seal_state?(type)
* J% J, Y, Y4 Y2 L; S seal_text
" k5 @3 L' u) a. {# i: S# N( d return
, J0 c& g) Y- ?* c m+ | end
. R) D& K( [! c F4 @ K2 N: B if $game_temp.xas_combo_skill_time > 0
. j9 h& x$ t: V' I t1 g% O; @ action_id = $game_temp.xas_combo_skill_id# x1 h; P5 J. `5 B# e, n2 m
else/ N; y3 ^+ l. e) X* G2 j
if $command_skill != 09 ~8 Y; f! B6 `9 B; n8 w+ {
action_id = $command_skill;$command_skill = 0, J6 H+ S; l: ]+ y2 ^7 O* {& _+ S
else: g5 F# |9 L ]8 t* a8 \
action_id = $game_system.xas_skill_id
* J( i9 _ h4 [; v) ^+ |2 M end9 Q/ D! J4 N& E- }+ R
end7 D: e0 J# K$ u& A& l( V
2 w) E# c5 X5 I( n; ?# U$ R return false unless check_action_exist?(action_id) 8 h6 C7 R/ j3 t ^3 x
check_combo(action_id,type)
; U5 ^6 Y0 t, |9 P6 _7 s* e return if cast_action?(action_id,type)
; \; o0 D# n% E4 Y0 j; B6 ?* ~ self.shoot(action_id)
$ E9 V& t4 Y3 F" ^0 E end
0 R+ C* {7 w% N. X+ k/ [4 A
8 M! q6 l7 N* M4 G3 d! P% a" N#-------------------------------------------------------------------------- ^3 D0 _' r' q3 O( u* l1 f
# ● XAS - Button Attack
' e* ^. a; V! B+ |3 Z3 H#--------------------------------------------------------------------------
( U* u& f+ P; R2 B def active_attack
/ ~' I2 V' ?8 d type = 1
' m7 g$ ]9 m: f& Q% `3 d( b if seal_state?(type) 9 S7 c \3 k5 c$ J+ w
seal_text! w- P8 h# T( N( U
return
: C, K5 z" F; q/ s3 k/ p+ Z9 {: l end
$ J% j2 ^' @( M# p# g1 B+ j if $game_temp.xas_combo_attack_time > 0 - c# g5 h) i. I6 y* |
action_id = $game_temp.xas_combo_attack_id4 F8 [; V: m1 y. F1 K
else
) A9 u- p9 D$ T( r" d: l action_id = $game_system.xas_action_slash_id
" E( n; \( V4 {% y g end
+ g3 u; r: @( y6 N: \7 v5 n: X6 b return false unless check_action_exist?(action_id)
4 b* B! |4 T7 m2 Q check_combo(action_id,type)
* Q. y( G8 B( t" I5 L( Q% D9 J, z return if cast_action?(action_id,type)
/ @/ N+ d# R9 b! X" Y self.shoot(action_id)
9 D) K& T* E" M7 Y( T. X end
& K/ \8 U$ m5 x; E& f6 o- G' d7 \- H0 [
#--------------------------------------------------------------------------$ z3 D6 Z5 h. R, Y& X8 |
# ● XAS - Button Shield, p" N, R9 G2 I
#--------------------------------------------------------------------------
. |4 N% _/ }/ ^) W% ]# M: n! W def active_shield
M/ i. A# h h' J type = 1
0 [" B: m3 r9 Q if seal_state?(type)
- d( O% G) ^& L seal_text
+ j% ?6 `' D" x6 K# r0 l- l return
8 s, ~0 D# m; l+ M( ^/ U, O end
7 v% ]1 |+ L# B4 P* H% x. x* h# e action_id = $game_system.xas_action_slash_id2# q# ~/ q2 X( y+ {! s
return false unless check_action_exist?(action_id)
1 `" d. d2 T7 z+ W3 ? return if cast_action?(action_id,type) 3 @, s; m& O; C
self.shoot(action_id)
1 ^( M1 t! G' T7 `% H4 V $game_temp.clear_setting3 G! z: d% L+ L
end 7 r$ k _, f! `% R. K$ U
8 ]0 U+ K( [/ X1 K; \0 `/ M: I
#--------------------------------------------------------------------------7 I( i& I. A# ], t7 l
# ● XAS - Button Item
' E6 [! N8 V2 n0 J% T9 R2 k3 b# T#--------------------------------------------------------------------------* i7 p( e6 c& c0 B, e9 T w. z7 a# u
def active_item
7 \" Q0 I8 |$ |9 w type = 3( }7 q) G2 V/ j v$ N
return if ($mog_rgss_xas_extra_skill != nil and Input.press?(Input::L))
6 w6 v6 }( {6 N5 ]5 }; l if seal_state?(type) 9 }: E4 {; s9 K+ N1 s! `4 ~
seal_text0 h9 z. I* y& y. B2 A
return( H/ X: o4 `$ x
end + @- T/ Q- u( u
if $game_temp.xas_combo_item_time > 0 ; d/ y; l% F3 `7 l: Z! l
action_id = $game_temp.xas_combo_item_id0 W2 j9 Q+ o3 q, X8 ^3 D
else
! v! r e8 q) f9 k# E; B if $command_item != 0
( s$ \+ |6 T9 z% ?# Z action_id = $command_item;$command_item = 0# K8 o% e0 R' N0 _( U
else5 t2 l! O/ v& l/ Y" I
action_id = item_tool_id = XAS::XASITEM_ID[$game_system.xas_item_id] : D+ r [# N& u. l
end g, d7 U2 I0 ^
end
7 _" ?) T! W, G* X- m* H return false unless check_action_exist?(action_id) 4 z4 H/ I8 z- \8 F: {) n/ Q
check_combo(action_id,type) - V! [. A7 j( l; Z- m
return if cast_action?(action_id,type) ' |' U5 S0 }+ E* T' U1 I( q
self.shoot(action_id) * v( \ [3 H0 U& c1 [
end + u) A- S' b) X8 R0 M* t o: D
# b' \' t; z! z# H1 ^ #--------------------------------------------------------------------------3 ] ], q3 T; X+ B
# ● XAS - Dodge Efect
2 B2 @4 |+ h' [- I2 i* ~% C #------------------------------------------------ --------------------------' r* d4 s9 o; j5 {* V% c
def dodge_effect ; ?$ z9 [9 F. U2 e$ i
jump(0,0)) ~$ T& ?9 H- F$ [
@need_refresh_pose = true
% Q! O1 I' ]4 z2 G $game_temp.dodge_time_real = 15. |# t2 S0 H: `( m4 `, p, n, J! I
$game_temp.lock_command = true: t" `8 m+ L, R" e; ]' v2 e) N3 a9 y
$game_system.se_play(XAS::SE_DODGE)& E" R0 L: W2 I K+ Z! k# W) z7 }* H
$game_system.action_meter -= XAS::DODGE_COST
0 n7 |1 c' b4 [& P C $game_player.animation_id = XAS::DODGE_ANIMATION_ID 6 i" p- @' b7 e% d" R, y3 Q& M
power = XAS::DODGE_RANGE % o; T1 Y( H- H) k. M+ @( x
power.times do% b' S2 z" [" D' I
move_backward7 c+ T. z! t( A" B9 v5 V. w C
end
& R. ~3 A# V* u0 A. z8 [+ z/ c6 f end 1 f7 I8 a. z. Q' p8 r6 v
9 o& h q3 \+ I9 Q #--------------------------------------------------------------------------. l. X! _2 S8 H
# ● XAS - DODGE
" f; p5 T1 K" h2 a8 @- c. w #--------------------------------------------------------------------------! v' ~/ W$ V' ?# h
def active_dodge 2 b. o' I" ~( @( b% G; ?' h
return if XAS::DODGE_SYSTEM == false 4 B4 C2 @7 H' ^/ U
return if $game_switches[XAS::CT_DISABLE_SWITCH]
- Y9 f$ m% G" C d/ f if $game_temp.dodge_time > 0
1 b# n8 s" r* }* u+ V if $game_system.action_meter > XAS::DASH_ACTIVE_PERC 1 i" y2 o+ I: r& N8 e
dodge_effect 7 C+ D5 J2 C5 Q2 E
else
% K# |7 y& t; a9 v2 v% t( U $game_system.se_play($data_system.buzzer_se)
" ~1 @6 J, S! J* e$ I: L8 O end
$ V9 |4 \" k4 Z5 C $game_temp.clear_setting2 : e i E# n8 k& O5 \$ ]7 t
else , p4 G1 _' a7 Z1 P
$game_temp.dodge_time = 15
- i; m3 ]$ G/ R) E% x) Z $game_temp.dodge = true / V) G: _3 E3 f% h9 S! `
end ! F" d( X: y- ]4 O
end
y8 r9 L+ p& d7 u5 W% X+ D
7 a6 `0 L$ I: q! |* u I, v#--------------------------------------------------------------------------, g* o2 a4 s- r1 L! r7 J5 z
# ● XAS - CAST TIME* P5 o1 n$ @; g
#--------------------------------------------------------------------------$ i: |% l" i5 X% w. o6 f
def update_release_cast_action2 r _& O1 F, F. \
if $game_temp.cast_time == 0 and $game_temp.cast_skill_id != 0
3 h- i* V8 \; S+ `7 j M& u. O" s( Y if seal_state?($game_temp.cast_type)
. r7 U( J0 H7 d& O seal_text
0 j' t% G0 E m6 J+ H return" w" e0 T2 ?/ M+ ~6 p( ^6 O
end
! U: O3 D0 H, d action_id = $game_temp.cast_skill_id
( u, x! O) n7 }, R force_move = Database_Bullet::FORCE_MOVE[action_id] ' a2 J' q4 N8 U( b
@actor.hit_it = 1 if force_move != nil
% b9 G% z' @! h$ F self.shoot(action_id) ; B8 Y3 a$ t. t- c. |4 S8 T( f
) q5 i/ D K$ e
$game_temp.clear_setting2
6 ~% ~2 B' M6 M8 K* J: m end % _& E+ G( m# L+ n% m
end
, u$ h5 q# X5 ?) \( v
$ V! A/ C& m2 R( Q7 {#--------------------------------------------------------------------------( V2 p% J- @2 b/ C
# ● XAS - Change Skill
1 j9 Q2 c% B; {5 {! P ^5 z: e#--------------------------------------------------------------------------0 p+ j9 e7 O& l
def active_change_skill
( H; `$ q* ?, g4 i0 i- x @data = []
e+ O. i b, S, v- G for i in 0...@actor.skills.size
- u' }6 H! l5 _! G5 L" c% l8 A8 r skill = $data_skills[@actor.skills], `( M2 x" O: c3 ^
if skill != nil. }! m( b2 s% o6 S7 u" }& Y, k6 e
@data.push(skill)
, u$ b, Z7 J9 e* e; r: Z end
9 H* d4 p* ^! J* d. G: n end
4 z- Q u" C' N1 T ^: c2 A if skill == nil5 x" v1 {4 G) A- a' F
$game_system.se_play($data_system.buzzer_se) % F L2 t/ Z* E! i
return & I6 O' c$ F K
end
6 f1 X* ~- \! s P0 | ]; L $game_system.xas_skill_index += 1
# _" [8 j* T% j, X9 H if $game_system.xas_skill_index == @data.size s7 C% l$ _+ W) q3 n, \' ?+ i; H/ I
$game_system.xas_skill_index = 0
- b$ } F( }4 u9 N* t7 ]3 n8 g end' y- ~3 f+ Z& p s3 S5 I
skill = @data[$game_system.xas_skill_index] ^: t# l, C9 R1 W* b2 ~; ?
skill_action = skill.id% e0 N3 J5 q( k9 l* C+ ~
$game_system.xas_skill_id = skill.id
+ j1 F( b+ \( M4 O8 @2 [ $game_system.se_play($data_system.cursor_se)
0 H( H" x$ q; _7 W9 ~ Q* P end; u% |- C8 k: u& ~+ k9 D6 n0 p- z
* e4 r5 `3 e1 q% u9 y
#--------------------------------------------------------------------------
$ A( J) c$ O' u1 L# ● XAS - Change Item
6 K. ], B7 Y) R" r7 @! g#-------------------------------------------------------------------------- * E5 u0 o2 L- K; Z
def active_change_item$ u. Y9 A; t; S7 a$ i
@data2 = []9 x3 {- a1 W$ e2 \
for i in 1...$data_items.size: k* C, I" N4 ]- n) K
if $game_party.item_number(i) > 0 and $game_party.item_can_use?(i)% E/ ~: j ]' B$ V5 O/ K d( p
@data2.push($data_items)( \5 C+ |9 Y0 W2 _
end
1 @1 a/ Y2 O2 I; Z2 c end % I, }: E, y" C w2 X
item = @data2[$game_system.xas_item_index]! |" g8 y( ~8 F; [. A
if item == nil3 K# E% S) a! {% k% h& ~5 `
$game_system.se_play($data_system.buzzer_se) * O1 r4 F1 o' B4 f1 G4 j) c6 g& M1 S
return
; b# ~) N) D6 J, A8 G) }: Y c end9 L& }3 o2 I* B- x9 h# j+ r, I
$game_system.xas_item_index += 1& x6 F" @* [, T5 z, Q1 G G
if $game_system.xas_item_index == @data2.size
5 l( Y( B7 z9 [; A) V $game_system.xas_item_index = 0 ! f) a9 v4 P. e: f9 t& U$ o/ c6 l n0 a
end+ U; G- i1 T( X6 P! U8 N# s
item = @data2[$game_system.xas_item_index]0 r% Y0 l( Z/ P! N$ f% L" ]
item_action = item.id
2 C9 U# L. L' \0 H5 v $game_system.xas_item_id = item.id
. Z0 j/ e0 F7 `0 K $game_system.se_play($data_system.cursor_se). Y! @$ r" s3 e; ?+ C
end
/ D" R6 G& u4 z
& w) Z, W9 _! b6 q/ n- u$ h2 I#--------------------------------------------------------------------------
4 |) C9 |/ {. ]+ ]: `# ● XAS - Force_Action_Now
8 g9 D, s I% n; x' |* V3 V) W( R#--------------------------------------------------------------------------0 d1 O" x- O: i4 {7 G- B8 n
def update_force_action5 l0 _3 w# N" U' s1 r8 Y. Q
if $game_temp.force_action_now_id != 0 and not
, B* s7 b2 Q6 |8 _5 C' X7 g4 i (self.knockbacking? or @actor.state_sleep or @actor.stop)
- C3 D( n& `5 o' S q if seal_state?(0) 0 t8 D+ V6 Q/ w' C& Z: h1 ~
seal_text. N: d7 Y6 W1 [( ^" I& T) F% }9 x
return false
& s! m; H o4 m0 x6 v' y# i end ' @8 X* `; S, p6 E9 c0 K
action_id = $game_temp.force_action_now_id
% b: \" L: _9 W2 F: w4 v2 W+ F self.shoot(action_id) 8 y1 |0 u2 s3 g# c/ Y4 k
elsif self.action == nil and $game_temp.force_action_id != 0 and not, ~- o6 ^8 P$ [/ g/ z
(self.knockbacking? or @actor.state_sleep or @actor.stop)
4 u, X" X- Y8 r8 Z& ]& f' K if seal_state?(0) 7 v( A2 A5 p+ x; i; d& B' m, Z
seal_text
' o3 c$ I- {: I8 y. |5 ? return false
! y' l3 T4 ~' k1 H end
( l" T, T1 |+ l) u* l8 r. U2 V action_id = $game_temp.force_action_id
% r, ]% U0 d1 o8 Z/ p( J/ x self.shoot(action_id)
8 z6 `' U+ n/ Z4 c1 C9 X end 7 }4 L: v. M3 X5 ]) I
end
3 T5 {& U9 R2 z0 @, n, t1 H( p! R% q" N. n
#--------------------------------------------------------------------------0 p8 G% @" J; u4 j w% l) a
# ● Can Charge?
+ r. X3 V. |2 K0 @" N) ?#--------------------------------------------------------------------------
1 F7 Y! E" k6 Q4 }7 |7 ndef can_charge?2 u! f7 y k4 f$ G2 R
return false if $game_temp.cast_time > 0
! _1 h0 O& ^; D, J8 v* ` return false if seal_state?(0) ' {- c8 P O7 r# N) m/ b
return false if $game_switches[XAS_COMMAND::COMMAND_DISABLE_SWITCH]
3 O. @; F' }' M B9 A) m return false if @wp_tool_id == nil
* S: r7 Q/ W7 B return false if @pickup_lock
# b- e, [" y" o( L6 j/ l, _ return false if @swimming
: K# c/ x9 V3 J* z+ V& {$ Q) L return true' D* g$ N8 `; Z3 |
end
3 h0 R. m" z/ Q: D% a- u; y/ B3 x# v* l# `# l
#--------------------------------------------------------------------------% ?6 }. `) N% u
# ● XAS - CHARGE + d- u" z Z9 B9 y6 X
#--------------------------------------------------------------------------
0 a, E0 |- F9 T7 \/ u" ddef update_charge_button
6 N% q) U; y, P1 }2 G unless self.action != nil or self.knockbacking? 9 L$ ?3 w" N5 ?5 j4 n
if Input.press?(XAS_COMMAND::SKILL_CHARGE) and can_charge?
7 k5 z: }1 X7 b/ G if $game_temp.xas_charge_time > 10
- Z5 |8 |4 R! e9 U if MOG::FIXED_DIRECTION_SKILL.include?(@wp_tool_id)% n- I0 H$ e, u# n
@direction_fix = true 0 n/ J7 O# c" Q- }# @- I) A
@action_move_speed = -1
3 H! k/ m! v/ ?! [% p else
1 r) }4 S; q" E @action_move_speed = 0! _5 Z, D' ?" V8 U$ M
end
8 `; T% D2 J' Z3 J1 X _ end
, n W$ B* W6 E" j( p @wp_tool_time = WEP_CHARGE_TIME[@wp_id] : f4 M% V' l {4 w$ {
if @wp_tool_time != nil
( O) V2 w6 V5 }+ B9 k6 {& a $game_temp.xas_charge_time += @wp_tool_time if $game_temp.xas_charge_time < 100
$ l% Z; H( p& k \' A3 ?. e $game_temp.xas_anime_loop += @wp_tool_time
1 ]8 r% ` F. \8 o) K! K $game_temp.xas_anime_loop2 += @wp_tool_time
; S. p+ M, v. }2 Y) }4 E$ ? loop = 40 * @wp_tool_time" V4 ` Q# X+ f" ~/ ?! Y: E
else$ i0 ?) W' Z5 ]
$game_temp.xas_charge_time += DEFAULT_CHARGE_TIME if $game_temp.xas_charge_time < 100
) W0 W$ O3 @2 m& ]6 ?- | $game_temp.xas_anime_loop += DEFAULT_CHARGE_TIME % { b9 E/ u0 P0 F& j7 A2 _
$game_temp.xas_anime_loop2 += DEFAULT_CHARGE_TIME , K* @3 q$ ~7 H$ @; q
loop = 40 * DEFAULT_CHARGE_TIME 0 w( J. S2 H& ?" v- Q3 N! y5 p
end
; N& l: b- v$ \% k/ ?; O. { if $game_temp.xas_anime_loop > loop5 p+ X1 K) G6 p3 A" e K% C
if $game_temp.xas_anime_loop2 >= 100
* W0 T% C, M5 G& G $game_player.animation_id = XAS_FULL_ANIME
* |3 J# O" x& z4 c else! I* m, U u7 |7 X
$game_player.animation_id = XAS_CHARGE_ANIME 3 O/ |6 E. t- z- e, \- f
end
3 {$ Q2 v6 ^/ D7 T4 F% [ $game_temp.xas_anime_loop = 06 F7 T. r1 }! U/ Y4 R1 S- o
end
0 a% @2 C+ s6 v1 R6 E7 E. n. b0 n else# Q7 C/ b. d$ o/ B$ @
reset_charge_mode(true)
; _, x( a$ @3 q+ u! X; K3 c end % t/ U7 @: b* f* y
end" l4 G5 e, x$ ]7 X! Z* q
end1 \9 X- M$ r% N/ Y7 F1 m, T& a) v
0 U. R u; I" x
#--------------------------------------------------------------------------
" A9 N- W$ m& H' K, w, h$ l- `# ● Release Charge Update O7 r! U, g& |' g* g& O9 r
#--------------------------------------------------------------------------1 v# g: U, E- w8 G4 w) r9 j, X
def update_release_charge
6 b* Z( m5 z* ]5 i! r if $game_temp.xas_charge_time >= 100 and not Input.press?(XAS_COMMAND::SKILL_CHARGE) {$ _( G4 e& X2 E4 t- K
unless self.action != nil or self.knockbacking?9 e1 ?& G) X9 J6 G
action_id = @wp_tool_id if @wp_tool_id != nil 9 Y5 V3 m$ v! Z+ O" d8 j
return if action_id == nil or action_id == 0
9 D7 P& {% ^8 B k+ g if seal_state?(1) # ^/ V3 }; I& Q& g
seal_text
. ^* u# {* Z, ~5 X7 x1 M" \. w reset_charge_mode
: {, P8 c7 c$ h3 [/ o return
9 Q5 o9 a0 @ G! |& n4 {- F end
* l9 ?! r3 M3 m! Q/ k self.shoot(action_id) if action_id != nil 7 G3 ?# n: _" m/ X9 w" v
end
& k1 k6 X% p4 m% z% F $game_temp.clear_setting2, e' y# L* {- \/ K7 I6 |2 `' w
reset_charge_mode1 ^! L4 L- h5 {# g9 v9 K. ~
end
1 h2 |# {; K. ]# V+ }1 v/ K* B" P( S end
" [; N( s. i* J( f
0 L9 d' ^" O6 E# E#--------------------------------------------------------------------------
7 \3 d; ^1 z+ Q+ ^; ^6 k4 a( D, b# ● Reset Charge Mode) f" S5 x9 B7 h
#--------------------------------------------------------------------------
' \, _9 Y3 B, c% Z def reset_charge_mode(max = false) D* }' s5 O/ k7 D# Q0 `
return if $game_temp.xas_charge_time == 0$ v! ]! O3 T9 Z
if max
; ?% Q6 r w, j5 w6 P $game_temp.xas_charge_time = 0 if $game_temp.xas_charge_time < 100
, T6 q. R, z) M( N9 l' o, i else
) p# x: H, @7 `5 h* v4 A$ P $game_temp.xas_charge_time = 00 r4 p; L, a: _, P* K" h" B
end
$ b$ k; L" S3 v $game_temp.xas_anime_loop2 = 0! i4 t. H* s8 V/ f. x, K! v. y! H
$game_temp.xas_anime_loop = 0
0 c! y0 x6 ~0 m* A5 p# c) G5 R @action_move_speed = 0" p# t# q% k$ A/ t
@direction_fix = false2 M4 @3 x! b+ w. {4 \ X6 m
@need_refresh_pose = true if @pose_type == "Charge"
$ B; I4 `6 G( e& b" R6 ~0 _2 | end
: Y4 C% l7 K, V7 t/ O! Z
- I4 P6 N( Q0 Z0 S1 @0 s
/ U9 ]8 O) l H5 ^9 B' _: ], r #--------------------------------------------------------------------------$ _) u5 I3 a* M+ c( g0 b
# ● Shield Direction
* I1 }" @5 }/ d2 k' G# z: H. J8 x #-------------------------------------------------------------------------- & y; ^6 ?6 y1 v" i* o5 t
def update_shield_direction
" C+ Y$ S2 u2 a" c" r3 k if $data_skills[self.action.id].element_set.include?($data_system.elements.index(XAS_ELEMENT::SHIELD_EFFECT)) 9 `* ?- N. X2 j! i% o$ _1 V; H
if self.battler.state_confuse6 I* G1 w% g# K6 t" O
turn_reverse_direction ! E# l' ^0 T$ T- R$ i+ x( g m
else
9 f# I8 P: I& w4 a0 f. |! J turn_normal_direction * i/ c2 ]6 L+ J, a8 H
end
+ e4 i' r- O* }; Y" W3 k3 m end ) C6 S- ?$ l, F0 O! Z1 K
end
0 B! i3 k( q) j# X# ^) e: S 9 ?4 u/ t0 G9 v2 A% C6 ^
#--------------------------------------------------------------------------' S' O* M1 P1 E6 G. b0 H* W0 s$ ~/ \
# ● Turn_normal_direction
, L8 C- f' A* l( e4 ` #--------------------------------------------------------------------------
, z" K2 z3 L: M9 A def turn_normal_direction1 @( l9 N' }! X C: P1 q' ^
if Input.press?(Input::UP)
( m5 ?- M$ i' z; g0 ]8 [# m turn_up
3 d4 t6 {& P4 B; ]* [0 }5 W% p elsif Input.press?(Input::DOWN)
2 _* I8 @& X' \+ | turn_down
. ~8 g3 v% I- s& z7 |# z elsif Input.press?(Input::RIGHT)
. w3 y9 l; E+ x; B5 l6 N% C turn_right
: T c( x( M7 @9 r2 f9 ]' v' T elsif Input.press?(Input::LEFT)6 `( h, q: m2 f, h! r: r2 y
turn_left
1 B9 o4 H1 }: y F end
. u- ~( r5 m+ E0 b% H& s5 J0 n end
8 O1 c& S- V- e& ]- O" Z6 Z
! h; P" [5 j9 H0 d7 p0 i #--------------------------------------------------------------------------
# J1 V* R! g: Y2 r7 Z, x. l M # ● Turn_reverse_direction
^ c! { _/ ` #-------------------------------------------------------------------------- * |$ x: z+ o- A7 [3 }
def turn_reverse_direction
- g7 z2 E3 H) \7 u- R* f; B if Input.press?(Input::UP)* J- a2 J7 r Q1 }' n) Z
turn_down
$ K% z+ E% Y- @1 [! e elsif Input.press?(Input::DOWN)$ J9 h) Q2 g' A+ d7 z
turn_up+ e/ B7 T+ [& }, E8 m- V
elsif Input.press?(Input::RIGHT)) U% \# `7 X8 z' w: @- G
turn_left- z4 s! r7 |- G0 Q0 x
elsif Input.press?(Input::LEFT)
* f6 q/ j# U. C: y* W1 t' w, f turn_right m3 c' s) Q8 x' i
end
f- F( T( B$ L( k% D* R5 x end) G9 R* w, o) B3 E2 Q6 I6 w2 q$ ]
5 c6 N0 `- d1 z8 F5 E* ~% B/ _
#--------------------------------------------------------------------------
% d. O6 J7 g3 l! c$ H1 d6 p3 t # ● Direction Fix Update 2 C' S2 Q9 V- `0 u/ y1 J9 Y
#--------------------------------------------------------------------------; P6 W* w% V& E i: `1 r: h) V, f
def update_direction_fix* L8 R7 _0 l7 c/ }/ ~7 l; Y
if $game_temp.xas_combo_attack_time > 15 or2 u, T7 \& ?+ N" d: [: W1 X
$game_temp.xas_combo_skill_time > 15 or
+ b+ o, D% W) t2 w $game_temp.xas_combo_item_time > 15 or
2 N( M9 v+ Y/ w: W $game_temp.xas_charge_time > 10 and MOG::FIXED_DIRECTION_SKILL.include?(@wp_tool_id)
/ G3 t! A( x& b @direction_fix = true
- ~$ Z6 q8 `; u' X else
" ?& y2 Y, T, _7 S- ^1 S @direction_fix = false, I' N6 F* ?' P6 S
end 1 l( `! S2 C0 ~/ j( h
end
0 d1 a7 t0 c# [% n, h% F( b / ?+ C! I5 b! s
#--------------------------------------------------------------------------# j9 h* g8 ^+ |8 |1 ~9 A# K5 P* s
# ● Check Equipment ID% }, h: |$ N9 _- K l
#--------------------------------------------------------------------------# U" B, f- G* m" z! E& t
def update_check_equipment_id4 a$ o6 V9 G; p
if @wp_id != @actor.weapon_id
% [) s" |1 f4 [9 U2 c @wp_id = @actor.weapon_id- I0 r: x; U) d5 j# g2 P- n
@wp_tool_id = WEP_CHARGE_ID[@wp_id]; d4 c ]7 z" a8 p4 j
@wp_tool_time = WEP_CHARGE_TIME[@wp_id] . {$ w, t5 k0 L- H; j+ N! R* `
@weapon_tool_id = XAS_SKILL::WEAPON_ID_TOOL[@wp_id]
. Z% n. L! u: h, T) _ $game_system.xas_action_slash_id = @weapon_tool_id & c' ?0 l: L- `% A4 D, O% K+ g( D
end# N. ] J1 r3 k6 E
if @armor_id != @actor.armor1_id
$ `1 y& ^' S8 ?3 x @armor_id = @actor.armor1_id3 Y( J6 R+ ~, r$ L5 K1 _" l
@armor_tool_id = XAS_SKILL::SHIELD_ID_TOOL[@armor_id]
* u9 X7 R; J; i) c7 @" }- ?5 v0 H $game_system.xas_action_slash_id2 = @armor_tool_id
# N% u! w( p' m9 x7 t$ U end
8 y* X3 P, m$ x end" e1 x( Z/ j$ L0 G8 _* R7 }% r
! o, l+ s( G8 o( {0 F$ c# u
#--------------------------------------------------------------------------
8 u( N6 L) T& D s% `) P # ● Pressed Button7 a. d9 N9 p8 b% c+ i
#-------------------------------------------------------------------------- 6 Y1 I! p; ^5 o' E! @, W0 l
def pressed_button?3 Z" B$ |4 ?$ g( H2 K9 r# a
return false if self.knockbacking?8 F# v+ X/ H8 V# z7 x
return false if $game_system.map_interpreter.running? $ |5 }, ^# |4 f: u ~5 u* N2 P
return false if @pickup_lock U2 N f8 y! i$ @% _$ W7 U/ v! v
return true if Input.press?(XAS_COMMAND::ATTACK_ACTION1)* V/ ~4 k2 q6 b3 q4 ^0 ]
return true if Input.press?(XAS_COMMAND::ATTACK_ACTION2)
7 f/ v6 {% @; ^- t" @ return true if Input.press?(XAS_COMMAND::ITEM_ACTION)
- }3 h5 S4 B" l# F. f3 [% [9 u( ] return true if Input.press?(XAS_COMMAND::SKILL_ACTION)9 Y8 k0 U3 S% T7 n: z
return true if Input.press?(XAS_COMMAND::DASH_BUTTON)
* k7 `. h$ [; q I( E/ D/ s return false+ c' `( A) D8 a! R3 S" v
end) M: r& w5 F/ I+ R' ^
# s7 S& ~# T/ v/ L
#--------------------------------------------------------------------------
- C1 t S9 J6 h7 t1 \ # ● Trigger Button# V6 }! ^* ^, N H( H9 T! l3 B
#--------------------------------------------------------------------------
0 V3 F# R$ z, ` J2 C; T def trigger_button?
3 ~) X' M' s' Z0 u! o return true if Input.trigger?(XAS_COMMAND::ATTACK_ACTION1)
5 X: q. R3 \# F return true if Input.trigger?(XAS_COMMAND::ATTACK_ACTION2)
% _; h& w2 ~+ _) O! D! ] return true if Input.trigger?(XAS_COMMAND::ITEM_ACTION)* M' b( d% {7 P/ B/ h
return true if Input.trigger?(XAS_COMMAND::SKILL_ACTION)8 N7 T" z4 C* J
return true if Input.trigger?(XAS_COMMAND::DASH_BUTTON)6 a3 S L/ @4 _2 i1 _. U
return false
6 l- b; s1 C& V" E: U$ j end
; `! a% h1 |* [9 v8 S
' X, u+ U/ s9 U% R #--------------------------------------------------------------------------
) D4 V6 a; O) e2 S # ● Pressed Check
8 t( t/ t6 g+ j9 L3 j4 ~3 O6 n: j #--------------------------------------------------------------------------
" ~3 v8 r3 q" l0 m. L0 N: r3 } def update_pressed_check ( ? M2 s9 p. `- N% u3 s2 B
if pressed_button?2 f3 j, f3 r# S" B! T
$game_temp.pressed_attack = true
& k8 N6 e. g* E4 ]4 M1 | $game_temp.pressed_attack = false if trigger_button?
4 P8 c& L# m" }6 C4 D8 { else 5 L3 }5 O# O7 ~9 p* l5 \% n
$game_temp.pressed_attack = false
+ }: `0 G! ]! O5 Q3 \) A$ p end
' g; _6 [ X$ a M end
. X) _1 [: P1 l" W! n
: o6 [" ?: D5 X. X1 c6 _" M #--------------------------------------------------------------------------
* k: `+ C8 p6 \ # ● Call Menu& E l4 |: X. N( V2 G
#-------------------------------------------------------------------------- 2 s( j; ?( ]7 @+ ? Q
def can_call_menu?
; X3 s; s) J, N3 @8 x return false if $game_temp.slow_motion > 0
5 k% b2 E, \6 R! ~$ o return true
) U! n5 E% G" `& G; ~$ z end : @8 C5 z4 K! v# V. e- V4 B+ Z
- ^. e6 Q, Y D& L- \! _# e1 ?end
: C9 ^" H( f+ r5 i+ q2 V
. L8 F) q3 N' t+ F. Y# O/ C% A#===============================================================================
- A/ l* n/ D4 M% l7 g* _# ■ Game_Character
- Y1 l7 |! u7 z9 Y& ^; ]+ K5 k' W#===============================================================================! F5 Y7 o; ?3 n3 ?
class Game_Character
# M/ |+ ]$ g* I1 k. I #--------------------------------------------------------------------------" \; ^0 ^4 K$ S. g$ q
# ● Passable Hookshot
9 Z! N) s- Y; v6 [6 B( x$ P #--------------------------------------------------------------------------
/ G* ]: w7 V3 d' G0 m; C8 m5 W" P def passable_hookshot?(x, y, d)4 N, S- v: n4 w) K) E; Y
new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)" H( K; O, D# D! e2 @: L
new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0): m: |; W# U& ?' z& j
unless $game_map.valid?(new_x, new_y)
6 E! R. `: H; p) t return false
0 b- X) N# C5 ~$ e, [ end
+ _3 f3 @& s& n5 D7 ` if @through; b( E/ U |& \
return true+ t1 q2 P) { p" J# ]( F# p
end1 @5 u# N7 X! u
for event in $game_map.events.values
7 D1 ~. ?6 c C t7 ] if event.x == new_x and event.y == new_y 4 V& N3 Q& z+ g
if event.character_name == "") H) I% k7 P' Q" M( {6 r
return true, Q+ i( k" J' Q
end
* Y& i& W. P/ \7 ]6 H$ z- |/ D unless event.through
j; q9 F, h+ ]6 t' k! l- b if self != $game_player9 t/ f& u7 a Y; d" d
return false' t: |3 a* W3 h W" \
end
( p1 { p# X3 S* M* @ G if event.character_name != ""
7 r2 x5 S$ p( w return false
" G# L4 l/ x$ x, D' ~6 J end. z9 {# N8 [. I: G1 @$ C' D
end
) g& I; H" C9 S4 o8 m end
' G: Q6 x+ T, s end
4 X& U2 l2 v$ L9 T% t o if $game_player.x == new_x and $game_player.y == new_y
' j% A! O" y7 e' S/ O unless $game_player.through2 t% J" ?: d, }) J9 \+ p
if @character_name != ""5 m3 s. e, K" c7 s" Y/ \
return false
5 M/ v% U* o) I4 }" e2 a end. n/ f" s- W3 t9 T+ U! ?1 E! l
end
; c U) ^. w7 V) u6 [ end8 Y8 x4 i" _) P3 n
return true7 t- f9 g( ^) B$ j% p2 x; I8 ?
end
$ y$ G# \/ W* E# l3 w
' U/ {9 u% Y3 u; r0 fend * c, e# v+ `( g: r$ x6 k
% m( l( {/ t! K7 Z( ?" I* o' [#===============================================================================
9 R: Q0 e- @' I6 i, J8 ^# ■ Scene_Save
. t4 O: Z- g% {4 {#===============================================================================, G2 D' b) R/ Q3 d* y) _3 j. v
class Scene_Save1 X, A; Y' d2 i3 x5 L# s
: j" [ @0 _+ ?; s& |6 E& b) W #--------------------------------------------------------------------------
3 a* h1 O1 \2 J# t( E' [ # ● update / v; z2 X Y/ |( n1 S9 e. g1 i& \
#-------------------------------------------------------------------------- . b- W$ g1 j) F) U" G& G* G( G" K
alias xas_background_on_decision on_decision
/ d, o1 [/ Q/ C1 l def on_decision(filename)+ r1 d$ V$ i! w( I8 W5 g
if $game_temp.background_effect_time > 0
! c3 i: V% ~7 R) o: _ l7 {" c% E $game_temp.background_effect_time = 01 m% I/ l/ g5 z0 w. ^$ Y
$game_map.panorama_name = $game_temp.pre_panorama_name ` q$ S/ U3 c5 y! u% A
$game_map.panorama_hue = $game_temp.pre_panorama_hue
$ }- m5 W; {0 r6 S end
0 |/ m" h0 u& t$ O7 E2 r xas_background_on_decision(filename)
& |3 n" K* l# j2 B W0 e end ( [- K1 Z' @: t. Z* ]% R" q: h0 |, ~
end
$ E& x4 d7 }1 O0 r5 R# W+ V" n$ `
" A- L+ u$ t8 N5 x9 R% Y5 @$ q' M
% N. h7 m* n- f* y6 w2 {( R' ~& _
6 k7 L* p. t2 ^) ` I( T1 \
+ O- x' A" F3 D4 Q#===============================================================================
/ W2 c% J6 b# |% U Z/ X6 B; Y$ B# ■ XAS_ACTION
! q K0 B9 F% w8 V# z! g#===============================================================================4 n1 l( @5 j; V! o D/ P
module XAS_ACTION
3 W1 o2 C) ], C
. Y8 Y" C. X- }7 o2 y: R& e#===============================================================================+ a+ `' ^3 d% u7 x
# ■ Battler Commands
- Y" `+ {3 C" d# J+ K#===============================================================================
8 p5 Y/ T; |5 v3 u$ N; T% M4 a
/ Y3 u4 y& K8 W. ]$ I #--------------------------------------------------------------------------4 E. C) z8 A; f3 k' d9 l
# ● Anime$ \. ] y9 T' X
#--------------------------------------------------------------------------
6 ~) b8 Y+ S+ y3 `, { def anime(anime_id)# u. }6 }3 z1 U$ v7 R& P
self.animation_id = anime_id 9 ?, Q/ F. h3 n4 b
end
+ j+ V5 M2 W: u7 |( A
4 t2 H. o+ n8 m" |( g8 m #--------------------------------------------------------------------------. `5 R/ d2 s' n* c, z6 i
# ● Anime D8 ?- K8 x' _& e
#--------------------------------------------------------------------------1 |1 T. x$ r* Q \' X
def anime_d(u,d,l,r)
- }5 w( i; z6 G if @direction == 29 p/ `0 M4 [' @ R& D* t8 n
self.animation_id = d 5 |6 D: Q6 z0 b% Y$ ^( c9 l. s
elsif @direction == 8' I9 J* R' r6 w9 Z' F$ h2 X
self.animation_id = u
+ X& S3 U) ^, z elsif @direction == 4! m5 [1 g' T* d0 R. g
self.animation_id = l6 _2 U, @9 m Z
elsif @direction == 6
( d( O, e1 i5 V$ ?# K self.animation_id = r
# H) ~8 \' n, k, I end
& v1 q) _1 d' z6 R end , Q8 ]* t. i/ w; H: |) \2 m& T* R
2 ?4 k$ Q! F4 z( x
#--------------------------------------------------------------------------, S0 z- [3 {$ k `1 c! V( _
# ● Invunerable( G) ?& [/ D5 p5 c: ?
#--------------------------------------------------------------------------* P* D) k! O! w. u
def invunerable
7 U2 e! b3 o+ b0 v( s return unless check_battler_exist?( j, Z y9 Q7 h a% I" m
self.battler.no_damage = true
" H a! ~4 w, D* L, {) F# e. T% m end
1 ]+ H) Q* g( ^. ~# O1 d
, m! [4 p$ c* v+ x0 u( m #--------------------------------------------------------------------------1 J1 z. {& y8 V$ a0 y: h0 v
# ● Vunerable( Y9 k$ M2 ~% v7 X5 L
#--------------------------------------------------------------------------
* x# s8 w: T9 z: q/ t def vunerable
, y/ \( q( O k7 M$ G1 t+ Q return unless check_battler_exist? m% e0 m. U t; Y2 `2 C
self.battler.no_damage = false, K7 d( E9 e5 Q& T* P
end$ R' ^+ |: `( M x2 {
4 X0 ^* i! k% E8 @" W7 g% ?
#--------------------------------------------------------------------------0 q. Q( ^) D& A9 x, G8 G2 w( l# u
# ● Text
$ k4 N$ u$ U R' R* o% \1 V! Q% ]/ T #--------------------------------------------------------------------------
5 ?9 P/ F' _/ N- z- y! v9 M def text(tx,perc)+ o# E2 Y1 D# z. D2 r3 K) f
return unless check_battler_exist?6 u2 [& M5 l6 `0 o* P
if rand(100) <= perc! e" F9 ~1 ]8 H' _ n7 p7 m
self.battler.damage = tx.to_s7 n b! d* T9 y1 R) w
self.battler.damage_pop = true1 E; _ h; }2 [% G, ^( `0 f2 A! Y
end8 F/ U2 |5 i! x
end
# y/ m9 c2 E: T/ V4 E
. O4 G$ {6 `$ |3 V# D! x2 w& @ #--------------------------------------------------------------------------
( v% B @5 y! h' c; b9 `2 f/ s # ● Zoom
' w1 b- X: ~2 F b. Q, R* \1 C #--------------------------------------------------------------------------; _6 `6 y- `5 p! O1 p/ s' U
def zoom(x,y)
1 D8 U7 _$ l" Z | return unless check_battler_exist?
! d; e7 {2 [# E self.battler.zoomx = x
3 m. X3 t. o- j- F( _& }8 N& q2 o8 ] self.battler.zoomy = y/ ~2 t5 ]2 U7 F& h
end , q6 |) f$ B5 w$ m
- ] Y8 ?" }. _1 O/ K8 F5 i; s #--------------------------------------------------------------------------. Z+ @* N! l) o" _( ~( B
# ● Zoom fast
3 j% Q6 j8 l6 Y- v #--------------------------------------------------------------------------! d; ~& z9 t+ S5 w. f3 H
def fastzoom(valor)
) Z0 I- I$ o" T/ n+ W return unless check_battler_exist?
( }& `2 Y* R/ f7 ~1 J self.battler.zoom_fast = valor
( s" J9 u$ L2 k, M+ \6 W end
) u0 f: u7 E" t9 F, W2 E" ] #--------------------------------------------------------------------------6 W) B$ A7 i4 \; Q6 L
# ● Self Damage8 N3 Z6 d7 K+ J; P9 G0 S0 I
#--------------------------------------------------------------------------
+ R6 w8 g: x- b6 q0 o def selfdamage(damage,perc)6 ?4 R6 p; d$ x) _( F) `# K6 Z
return unless check_battler_exist? k: T0 ^8 o7 f4 X8 V7 v4 Q
if rand(100) <= perc
X/ ~; g j4 T, \6 Z- b self.battler.damage = damage.to_i; z& g9 I. {4 }- T" E
self.battler.damage_pop = true 6 q7 h4 e4 G6 S( J P* ?
self.battler.hp -= damage
5 _. [) c- w. U* f if self.battler.hp <= 0 ' Q. d. s( F l, E* s
self.battler.gain_exp_act = false
- F+ c3 F7 S; c2 A3 W. C2 R end
: O* E, {: M7 E end. ?1 N; W1 B1 c2 C( J* {
end
# b. q+ L$ W ~4 h! Z
! f. m1 g5 B2 W0 r0 I+ i) L8 P #--------------------------------------------------------------------------
8 }, v" u: o# a9 N# t # ● Add State5 L4 p2 E8 }7 D; Q$ C b* D
#--------------------------------------------------------------------------
" y6 k3 c0 R; s( m; h0 W v def addstate(states_id,perc)
( i" k& |3 ~6 c" p8 c return unless check_battler_exist?
) S1 i6 E' W1 i# z6 ~+ E+ [0 { if rand(100) <= perc( t8 H) J, E9 K9 z$ q, k% b, ^
self.battler.add_state(states_id)
" l- g1 X% `/ K- w end
0 E+ l, l' g/ m& ?! I2 ]) L, W& d end
( C4 ?4 a5 \: e# k # M2 G# o. r9 i+ [* ?9 j
#--------------------------------------------------------------------------
! e- v& T4 J. \, o. A # ● Counter ON
0 T1 C7 r; e& Q$ w- v #--------------------------------------------------------------------------6 A& e0 D8 x2 \+ j& f% h/ U4 y
def counter_on
! c0 N) L O3 E& |" [5 w: ` return unless check_battler_exist?* F8 t7 m/ n5 d U
self.battler.counter_on = true" r+ r2 m1 Q. I* u# @7 L
end
& Y F: o# Q; m; o" v * i- M5 ?: X& S' f8 h* k7 B
#--------------------------------------------------------------------------
0 O# t; n5 M; o6 P0 b6 V- Y # ● Counter Off
- R) G, ]. Y& P: S {1 Z% W, _ #--------------------------------------------------------------------------
* G! T4 z4 J0 t" V/ V5 f. Z9 b& C def counter_off
0 p4 i0 S2 D4 e return unless check_battler_exist?$ {& w. N! m; R0 i0 g5 s
self.battler.counter_on = false
2 b% v* ]3 B" |) F# a7 A1 u end 0 K6 l0 o. _6 {( l- k5 y4 F' K; Q
. ]* K: ~0 z3 j3 x #--------------------------------------------------------------------------# }+ D8 n7 f+ I2 z$ \
# ● LowHP Add State
, Y. e' E! [; ~& W2 }& f #--------------------------------------------------------------------------
; h4 q5 |0 h% A- ?8 o& |$ N1 K def lowhp_addstate(states_id,perc)
. a2 i+ f) s. v* ?4 O return unless check_battler_exist?& j: u [0 g3 I' G0 A% R
lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
9 }& P) t+ g& O, _: m if rand(100) <= perc
% `6 F2 n I% \3 O2 B/ y& ^ if self.battler.hp <= lowhp* X5 E" {+ J; U: Z
self.battler.add_state(states_id) - L' B c9 m s& A1 j, q: X
end- T4 K! ~0 n; T+ {% ~
end
+ H- P* t: {; n4 m3 G* f3 A end( }7 [7 |; Z( g" E
2 B% {+ Q+ x! [ l5 E #--------------------------------------------------------------------------
; g, y2 ?, e( g) q: t' g # ● LowHP Remove State
+ E. @* r |) \4 ?) _2 S5 g #--------------------------------------------------------------------------0 Z* O- @4 I+ G$ c: \
def lowhp_removestate(states_id,perc)
4 r7 R' v( M! O) F* T$ N return unless check_battler_exist?6 V/ N5 M0 I% w7 \- u. \
lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
! m2 h- F% f1 C, L. i if rand(100) <= perc. C; ?& N; w% Z: ?0 m* Z
if self.battler.hp <= lowhp
. R. E, Y- @$ C$ J8 i+ K self.battler.remove_state(states_id)2 e, ]0 v. l# N. C! _) s5 r
end+ c( c# @- v" w' w1 X3 M. {% ~
end# G, j. W+ s- w; I
end $ M8 G' f! ~- n- W! i
8 x% m( y. x; V: v4 j* I; Y
#--------------------------------------------------------------------------7 C5 u9 {( h, Y1 s
# ● Remove State* v; v: U* q9 B- w2 W; w, T
#--------------------------------------------------------------------------9 D& \# R$ v% P2 H2 g6 r0 ]' c% _
def removestate(states_id,perc)7 s" W$ }- R1 Y4 L
return unless check_battler_exist?
9 T9 r; g" m1 E9 H. p if rand(100) <= perc
" |* ?, w+ f( T& U! I7 [ self.battler.remove_state(states_id)
8 ]; z5 Q3 [- y; w& d. N( j end
9 t$ w. g2 \$ F8 _1 K) S end
3 C! T) \4 N" h
6 D3 t2 B( u. {. U2 y3 u4 s8 j p #--------------------------------------------------------------------------* S7 V. w2 p1 ~% |
# ● Recover All" Z9 G8 w% i5 v" E j
#--------------------------------------------------------------------------
7 v4 \0 _; @& q/ H def recoverall(per)% v% l. v( U) [, R& J4 t1 b
return unless check_battler_exist?) i& `- J! v) B( o& F0 `
self.battler.damage = "Recover"
0 l/ @+ }3 U5 w* @: ^* w self.battler.damage_pop = true
3 c+ W7 }3 p1 w q( J. J; a8 b3 p self.battler.recover_all
5 D% l, e* h) M1 `' {% Z z end3 v0 ?# Z( Q# ~$ W# a
4 z g1 E. ~( Q #--------------------------------------------------------------------------
; X" D) z# p' M' o( D& l2 R9 S; r7 ]* c7 \ # ● LowHP Recover All
2 c3 s9 s; c+ r ?" C #--------------------------------------------------------------------------. U$ @) l( t& Z! _
def lowhp_recoverall(per)
$ o' I" B4 E% j# n' X return unless check_battler_exist?
: J. c" }& ^' R, U6 ]/ ? lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
9 ]$ ]; o( V8 \' X7 k if self.battler.hp <= lowhp H: @" |" ^- E8 s# ]
self.battler.damage = "Recover"
: x8 ?& ]+ s: U: _- Z* s self.battler.damage_pop = true& z' G% h9 v2 }- k
self.battler.recover_all
% C7 e# e$ T% i* V end* g& [' R- t* S0 _' j
end
8 G; n' h+ B. D" B1 N; D( ] 9 }5 k) A& |5 \! s
#--------------------------------------------------------------------------
, x4 _& F d& X# s # ● Low HP Anime
" |& D$ T9 x. M- u# l #--------------------------------------------------------------------------
5 A% d6 d+ P3 d% S5 \ def lowhp_anime(anime_id)! N% [$ C; G: L" ~
return unless check_battler_exist?# x# F2 b M5 r( ~1 t
lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 1001 ]( [* F; e. l2 w( _! `0 A+ X) u( c
if self.battler.hp <= lowhp
0 Y( F; R4 o" J ^ self.animation_id = anime_id
6 ~$ a4 V V7 D7 P% ` end8 r/ ]9 t" B5 L2 g9 K5 S
end " c/ Z% g: g, C, s2 H
" k9 w- V+ v+ A/ A
#--------------------------------------------------------------------------9 s0 U3 B, a6 x
# ● HP Anime
1 p" `8 i% P0 ]' \ #--------------------------------------------------------------------------
2 B6 p2 S- r, M* w; n def hp_anime(anime_id1,anime_id2)
$ K# N$ ~. |- X3 Z return unless check_battler_exist?: M4 |- ?- O6 C7 {! W9 f h
lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100' \; x$ e+ @* R+ y) F! U
if self.battler.hp > lowhp
4 ~/ h. w- }! F, ?9 F/ E4 G self.animation_id = anime_id1
/ {, o5 }% Q' d; O4 u else9 Z) s8 `: i0 I& t
self.animation_id = anime_id2 % @! g6 r+ O3 X! J; |$ v! k
end5 e @5 X u u' G, C- w& ?
end
! b8 }$ k l: _7 v, o4 c, U
3 A% T$ Y, U5 _, F* r' _5 N# q #--------------------------------------------------------------------------
+ U& U' `0 B: d # ● Speed( h' n, L: _; ^0 f8 P, i0 m
#--------------------------------------------------------------------------
! L1 Z/ H2 H# z; J. W! g6 w def speed(x)
* ^. q7 d7 g& V& Y @base_move_speed = x! F/ U, }. Q! w% H1 I( a6 H% D
end
( F; c6 H- V$ a% f
, h7 }9 }' [# U: Y- S* n! { m #--------------------------------------------------------------------------$ @: ?1 n& x$ k6 f1 L
# ● Freq
; W* Z- m' z* F( R" t* z/ K' v/ ^' o #-------------------------------------------------------------------------- 8 D$ k4 M, ~+ u7 B7 s- `/ t7 Q7 c
def freq(x)2 M% x) q3 N4 s9 x
@move_frequency = x: P8 u- {# |6 p+ S/ V
end
( t* m" {* [2 g: F, @. l #--------------------------------------------------------------------------
8 y$ U) c/ I8 `4 B& T6 v # ● LowHP Speed+ a/ t6 ^# d. ^6 k Z8 c' ~/ Z. i
#--------------------------------------------------------------------------* X4 _; r( K( ^3 r- e
def lowhp_speed(x): s9 O0 {8 J$ o
lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
! T# T' _- ^$ l$ u# P, X if self.battler.hp <= lowhp
- n9 `8 S# X3 S7 y/ Y! _ @move_speed = x
q2 a: J8 X) W end
" N. Z/ S/ |) A, X0 v' S end
8 f# I9 l: D8 ~3 m; \. n4 v
: l/ a0 {. ^1 T. S, I$ l0 \ #-------------------------------------------------------------------------- \- f3 x m% z" @
# ● HP Speed+ _$ G- A) R: ^6 z) C9 d
#--------------------------------------------------------------------------
8 F8 X l0 b- u$ p, B( K def hp_speed(x1,x2)! c1 L- M0 s8 m. K% j# U! [
lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100$ h5 o* Z9 o) Q% Z6 P, |- S/ x
if self.battler.hp > lowhp
$ w! X7 F) m" Q5 Z0 O @move_speed = x1 - v$ i' K9 l/ }6 F
else$ v3 t0 P( s# R5 V9 U) @
@move_speed = x2 2 u& T- f3 G: h% @3 u+ ]/ \0 m. W; m
end) t) b3 R$ |& Q
end 7 [+ h0 f- t( c
+ y2 P2 A8 |8 `7 p
#--------------------------------------------------------------------------$ Y" F* N, a q
# ● LowHP Switch/ F1 D3 z" Q# `: M% [3 @
#--------------------------------------------------------------------------/ Y6 ~6 l" T2 y, j- \. L
def lowhp_switch(x,on)) C! u, J: M$ X% L$ M" E
return unless check_battler_exist?
5 t. y6 T6 R' ] lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
! O! N. l* q+ v if self.battler.hp <= lowhp8 `* \% O4 ]# ` y) [5 ?. ?
$game_switches[x] = on
/ W# ~& E4 _( N+ F; Z5 F/ `& ? $game_map.need_refresh = true if $game_map.need_refresh == false9 O) Z- s: J) I/ f
self.refresh
3 T1 a% ~- z4 N' _6 h4 J end
$ V% X i( j) U/ S7 | end & V4 h* x1 \( w$ {" Y+ n
( b2 C5 u: B- G) P6 b) s #-------------------------------------------------------------------------- ?% t) ^6 c2 j# t
# ● Hero LowHP Switch K7 n9 F0 F' J7 i& k) S
#--------------------------------------------------------------------------
& ^$ t3 J, b+ F0 D4 Q6 [ def hero_lowhp_switch(x,on)
# }" z7 O- P+ X( u actor = $game_party.actors[0]
7 b7 J* p8 o' {' {5 s lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 100; E( T& f/ A/ g
if actor.hp <= lowhp , D8 F6 t1 m* V
$game_switches[x] = on
# p& E! b5 ?# f8 y+ a $game_map.need_refresh = true if $game_map.need_refresh == false1 q9 O# r" T& u, K
self.refresh, W7 s& k% b A1 @, {9 R9 }0 z
end8 ~ s" G2 _6 k6 N' {
end 7 x* \* y8 `" m
& c3 a( [, x0 I' ^7 v #--------------------------------------------------------------------------
: E: ^8 G1 _- p$ [0 B9 F # ● Dual Switch! ^' w& B2 \5 E0 Y7 I! q% s7 k
#-------------------------------------------------------------------------- I6 q/ [+ Y: }% U* G2 d" g5 M
def dual_switch(a,b,perc)
3 z1 H0 b* _8 D! i [% _ if rand(100) <= perc7 ~# j1 Y8 V0 U, I7 |6 d
if $game_switches[a] == true
' ` c3 Y+ E, G# u7 T! _6 p) a $game_switches[a] = false
8 F7 h3 g2 r) s& l5 r' G $game_switches = true' F9 }. L! l& ]3 \ Y$ Y, p) I a# i
else
# f# ?! S4 l2 {$ X $game_switches[a] = true# B5 X8 r1 v# }7 D8 N
$game_switches = false
' `6 l' ~( j; z6 ~/ i end! W+ X# K% a. d, F- v4 k: m
end
8 m7 y/ U* V& ^7 Y$ t self.refresh+ ~/ S5 D! S3 {/ ]$ N/ A
$game_map.need_refresh = true if $game_map.need_refresh == false4 E/ O3 n/ ~) A5 z/ V# `) d
end
* \1 J" N$ b- j5 ~4 z
8 e8 j3 H5 S, ?( a, o, m. d #--------------------------------------------------------------------------$ Q6 H( D: A, }: W! |
# ● Hero Level Switch
& R" `/ y; q7 z& }4 j8 V #--------------------------------------------------------------------------( K8 t4 D+ `- _
def hero_level_switch(x,level,on)& m4 X+ Q! A/ P- K7 G; z; T/ @
actor = $game_party.actors[0]
* X, [8 i( h' J if actor.level >= level) w& a3 f0 @& v9 ]
$game_switches[x] = on6 D3 s' c- E3 q* O8 x. H3 n' b
$game_map.need_refresh = true if $game_map.need_refresh == false$ y5 e7 g& }" B2 f% ~; V
end' K1 v* r0 G2 f! Y$ s
end * `$ S4 }" `" y9 r8 i6 n! _* u
& R% c7 Y! F5 U #--------------------------------------------------------------------------# S7 p+ r% {( f$ M- S! z" L
# ● Hero HP Anime
# y( D* s4 o- T7 ^- n& O #--------------------------------------------------------------------------
8 x0 _1 ?3 T# n def hero_hp_anime(anime_id1,anime_id2)
& ^1 d8 N" k9 l d; n" s4 E actor = $game_party.actors[0]* m( U1 Q' z% F, |
lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 1002 n& r! p; `+ w2 R1 F1 p. ^# E
if actor.hp > lowhp $ l2 S+ }4 H, k2 E( }4 m
self.animation_id = anime_id1 ) U6 m: `. h. i. ]8 y6 R
else- m" [7 f5 w# J7 E; g1 \
self.animation_id = anime_id2
4 @$ I# `4 f0 M2 V& U+ G end- y# ?" W9 Y+ r, S4 J: L6 e8 z
end
) n' E" ?+ O8 [: t 3 ~# Z% Y& n, @0 ^
#--------------------------------------------------------------------------
, Q: y( {7 F4 }* E # ● Hero Level Anime5 \% u: q2 B; t1 {
#--------------------------------------------------------------------------
: S; i8 Q# C4 t$ `5 ^7 T3 T. Q9 S def hero_level_anime(anime_id1,anime_id2,level)# r" V& T8 R) a; T
actor = $game_party.actors[0]
+ Y5 b; q1 H8 |3 s5 \8 H if actor.level >= level 0 t8 [, d& I' P1 N
self.animation_id = anime_id1 & k* L3 B6 D# K0 L& L: u0 X1 O
else7 t2 B" B8 s% `
self.animation_id = anime_id2
K, p( n7 y( \; _+ l/ Q1 I end. e% W/ O( f8 `
end P6 a+ \5 V6 j5 H" q [
5 O4 ]/ Y+ P3 c' N5 w$ Q% o
#--------------------------------------------------------------------------6 l, Y7 f. @8 l6 j- X
# ● Hero Level Speed( O4 K$ u8 w+ t" ^( j% b
#--------------------------------------------------------------------------0 y) Q5 {& f3 }; x
def hero_level_speed(x1,x2,level)
4 h( T8 v$ N, x5 ~0 C actor = $game_party.actors[0]
) R: L* {! B \, h r& i9 g4 ?- O if actor.level >= level
, ~$ D) C& [* W( v @move_speed = x1 , X- y) i( }1 V8 @; b9 Y% @
else
& a: M7 O% b0 Q& _' V @move_speed = x2 . A1 e% I1 L1 Y; _* G
end : Y0 d* S! ~7 r" |3 W* {
end
' x0 o8 r, n( m: z4 e
9 q6 S1 X1 L0 | #--------------------------------------------------------------------------
/ H3 a$ }6 ~% S5 n; D1 I; l # ● Hero HP Switch4 r! Y% r1 X* p4 E( _6 ]
#--------------------------------------------------------------------------8 a& f: ?: g' E) K
def hero_hp_switch(x,on)
2 j3 {% @9 _# [" t# W( m0 S actor = $game_party.actors[0]* a: |2 M2 z6 X& c% \1 R% j: z
lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 1001 U5 q6 T4 o9 ~4 y3 `: z) o
if actor.hp > lowhp
: U; N% }% l/ I, v9 @4 _ $game_switches[x] = on 3 @5 P% s+ \; a
$game_map.need_refresh = true
! I$ P% X E, V/ j6 B else3 q" m! n0 K" g0 v9 T, ~9 ~$ Z
if on == true
( v# O. P C( P: D: } $game_switches[x] = false - e8 T- w# I( a. V/ {0 \, {
else 1 N- p+ V- Q& |- z) A
$game_switches[x] = true
) k' }9 \3 ^4 I7 h$ z, l end 1 D9 }* ^3 i; [5 j( M
$game_map.need_refresh = true if $game_map.need_refresh == false
4 a2 a' ~: n4 g end) @* k; @5 U+ x0 d9 h7 P
end + |7 d& \9 P2 Y; Y
+ `7 |8 ^' S4 t$ [, R/ Z #--------------------------------------------------------------------------; P/ X2 i* {4 T; n
# ● Hero Level Shoot
9 S$ n; }) p m8 i3 y; D) E$ L #--------------------------------------------------------------------------( s' E/ B. G/ F P( M5 w) l
def hero_level_shoot(x1,x2,level,perc)/ q' I, t" [, f5 k7 b9 K5 {
if rand(100) <= perc
& A2 W# w9 }7 N+ c actor = $game_party.actors[0]
' e# t# T( D: U" G if actor.level >= level - q; {9 d% [; k0 p5 N( f
shoot(x1)
0 [. ]: `# T1 } else
5 _( s8 @4 t% N8 K& L; s/ { shoot(x2)" w8 ~5 a1 O" P0 x; w _
end
$ |/ Z9 p9 S) m% [ end
- k! P% Y e8 f& X. y, ^ end
) \& Y! u% N! D5 f0 r & U+ `; m( n8 I* a; D
#--------------------------------------------------------------------------
5 C' w2 A4 }9 E1 \' p7 t: [ # ● Hero Level Escape
3 I+ E5 S1 l6 Y2 M$ Q: B* |& Z #--------------------------------------------------------------------------
+ Y- J. f% ?2 R7 k2 ` def hero_level_escape(level,perc)( f6 a. u- n5 G( l# l
return unless check_battler_exist?
9 {, W O6 X; x: x if rand(100) <= perc" x; b2 u# c) t; k
actor = $game_party.actors[0]3 ]1 x7 L; ~8 d+ H* {5 B i
if actor.level >= level( ]3 m8 ~5 T$ E% m0 q
self.battler.no_damage = true
7 b4 o# c! b$ j8 G2 k self.battler.damage = "Escape"
# u; Q$ C" @- b4 j! |. I. P) g self.battler.damage_pop = true % ?7 f. U; X: W* l5 Q/ M
self.collapse_done = true
4 T! m+ r6 ?& W, f# U& T $game_system.se_play($data_system.escape_se)1 @ O0 F* W7 U' V8 m+ T2 O
end
3 T6 z8 ]1 c+ [# a* X end b r& Q0 E8 H- u2 r) Y
end
, J9 T/ m2 O; G0 x" R% i. h + C9 x: y5 c% w; Q2 q
#--------------------------------------------------------------------------
9 S8 i. q0 m1 L, q! r # ● HP Switch7 i" { P. r, R- C- @' v K- X
#--------------------------------------------------------------------------
- s* z1 k' i, O/ | def hp_switch(x,on)$ Z1 M6 y$ A' Y6 `0 W
return unless check_battler_exist?
& _' Y* H( }9 s* D! t lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
7 l( v5 o6 ~! B% \ if self.battler.hp > lowhp
- ^1 L* W' I4 b6 w, f Z $game_switches[x] = on 6 ]6 C$ E* e8 y$ G& _
$game_map.need_refresh = true
( C; k% d/ W) z else
6 u3 m u' |. J* e5 Y$ c/ j if on == true
$ u- Z, ?# N) V: R& _1 l+ G/ x $game_switches[x] = false
. ]3 o: C6 }2 f else 5 L; B8 b4 o1 l, b! Z
$game_switches[x] = true
+ f7 B& K# ]6 U' N end " m5 [3 V, F+ ~3 y* s4 Y2 c
$game_map.need_refresh = true if $game_map.need_refresh == false) M) [ B! s) W
end7 J6 D. f: U$ R W# `) `
end
S9 F; S3 N! w' n3 w
8 w6 u* A$ Z& R) d0 T- ` #--------------------------------------------------------------------------8 p. B, z1 g8 ~8 u* M
# ● Escape8 _ b# }$ J( o, j, Z$ u
#--------------------------------------------------------------------------/ N F- Y6 k& _4 Z
def escape(perc)" X4 g1 Q$ [; c5 U( u; ^2 `
return unless check_battler_exist?0 w. d8 }* x: F$ K y
if rand(100) <= perc
# R% u( C/ ~' U% g! U6 R self.battler.damage = XAS_ABS_SETUP::ESCAPE_TEXT; l5 T! `; L4 T
self.battler.damage_pop = true8 u6 E5 @2 F2 V1 d8 P
self.collapse_done = true
3 P- c7 x/ O1 t6 d $game_system.se_play($data_system.escape_se)
' _6 }0 j1 i% h/ Q self.erase
( r4 h5 ?8 ~, K5 x end
. {) y6 N& O O8 u/ @5 Z end
a: ?$ X! N7 S/ P 5 V+ c3 L4 B% M" } i. r( p
#--------------------------------------------------------------------------
" F8 ?4 F% _+ d # ● LowHP Escape! h! a M( I1 d: ]# @' z% P
#--------------------------------------------------------------------------/ b2 l0 v( N( W2 H, H2 F' ~$ f3 I
def lowhp_escape(perc)
7 @9 S- D+ P7 y4 z/ e return unless check_battler_exist? ! D A. G) V# o/ ^4 l
if rand(100) <= perc9 @" R+ n% t6 }$ N$ [) V
lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
! ^. l% O/ q$ h/ ?! p if self.battler.hp <= lowhp 1 [ \% o2 d( f2 I4 H* i8 ^
self.battler.damage = XAS_ABS_SETUP::ESCAPE_TEXT7 a% E! p4 {: N2 h) b2 }/ N
self.battler.damage_pop = true& o# W0 f1 r9 m+ l4 ?+ S
self.collapse_done = true) D, s' ?& _/ H: U1 y) P
$game_system.se_play($data_system.escape_se)
0 Q9 p& Q2 V% @3 N6 R, }, L% M2 | end
2 G. X) Q2 Q" A/ J8 z. E end, F6 |; P/ w9 a: a" {* {
end 6 w( x3 a! ^) W2 a4 N" \+ U1 Y
6 L8 v$ l- F& V* J
#--------------------------------------------------------------------------
8 w' r4 d) V' h* v4 W" R; H # ● Shoot Chance
6 H9 V, ], [* h! e! ]& r #--------------------------------------------------------------------------/ ^4 L7 V- W& ^$ T+ ^7 G5 ?
def shoot_chance(action_id,perc). ~3 o" @% g" g
if rand(100) <= perc# Y" P3 y* ` i9 i/ g9 N0 M+ H
shoot(action_id)
& u& u7 ?$ Q) ? end1 Q2 [" ?( y. V! m+ d
end
( q# ^( |0 ] Y2 q' I- G6 j3 i( m
$ W; g1 W1 {& |. D #--------------------------------------------------------------------------
w+ c7 F, h% j7 \& I # ● Jump Org1 z) q+ Q% s& `7 V( L6 Y" I
#--------------------------------------------------------------------------
$ z# h' e2 n! f8 h5 V! r def jump_org
% O) e: v y' W) J5 E4 T0 p5 I5 y range_x = org_x - self.x
* J; e: `. c6 @ range_y = org_y - self.y
& X/ ~% M; y. w! _ jump(range_x,range_y)% k v. G8 e+ ?3 L& P+ t
end
N9 y# X& ~/ C3 x3 f. a
. R) `7 Q$ G) h- t$ C! ~+ b# }0 a #--------------------------------------------------------------------------: V" R: v% K0 d# R+ I9 e+ d
# ● Org Here
2 c% x4 y6 |7 z4 Q- @- a #--------------------------------------------------------------------------9 U7 K6 r u. _$ p$ ?
def org_here
' ~5 Y# u; m& j5 X- v* b self.org_x = self.x
% p; h( K% d5 m+ y+ {& R, b6 D self.org_y = self.y
1 w! j: ^! ~& L$ N2 T! } end
, v1 `2 N& Y) _' H4 \3 ] 0 K3 o1 x! h# O1 r. }" J% u3 B
#--------------------------------------------------------------------------+ D- ~: A P8 a
# ● Jump Near- \# r# a( z* J% a. V& u: y
#--------------------------------------------------------------------------* ]2 i" ]& Q5 \/ i, j
def jump_near
/ q) z. K, @) T if $game_player.x > self.x and" S, \3 S l9 ^1 U9 E$ k* H- i1 `
$game_player.y > self.y. w+ G2 X6 |# \
range_x = $game_player.x - self.x
0 z. R' }6 n. v2 V6 Q- v range_y = -1 + $game_player.y - self.y
1 P( f( e6 t1 r elsif $game_player.x < self.x and) w" s L$ _6 \9 C6 y& g
$game_player.y < self.y* c. I( ^9 P% {9 ^
range_x = $game_player.x - self.x 4 k) L/ z9 R5 t, s. }1 W. |
range_y = 1 + $game_player.y - self.y
# x+ f1 q1 J9 E1 w# o1 X" Q7 m# ? elsif $game_player.x > self.x and) f, e- c7 Z- q& [$ l5 G: h Y
$game_player.y < self.y
% z. x+ D2 l" @; R; X3 { @" X" H range_x = $game_player.x - self.x
& z( ~( c% Q8 K range_y = 1 + $game_player.y - self.y " ?; y2 n0 b- ?" A- u* r0 V# H
elsif $game_player.x < self.x and* f% ?; [. k# Y& T) c$ r
$game_player.y > self.y: T3 H( Y, |) B1 ?: q
range_x = $game_player.x - self.x . _ o8 t) c y
range_y = -1 + $game_player.y - self.y
' X8 K+ Z1 F5 m: E elsif $game_player.x < self.x and% n4 Z; E/ a* Y1 N4 K K
$game_player.y == self.y
: R0 f$ X- l/ `3 X range_x = 1 + $game_player.x - self.x ; _, x$ Q# h7 e
range_y = $game_player.y - self.y
6 z! a$ r) O* E. g$ i. K& X2 w elsif $game_player.x > self.x and
% \; d& v4 x6 \" x0 i/ p& J. F/ S $game_player.y == self.y
9 z2 H0 ]+ }. W( P range_x = -1 + $game_player.x - self.x
7 }# P' \+ G( @1 m( N$ P$ } range_y = $game_player.y - self.y 9 b4 v1 {7 A1 Y" b
elsif $game_player.x == self.x and
; n0 N: o7 g' w; b0 [- L $game_player.y > self.y* L3 t7 ]9 K- h- C' W8 y
range_x = $game_player.x - self.x
8 A. O( F2 y" J0 Q0 U range_y = -1 + $game_player.y - self.y
5 U: \/ y, [+ h I elsif $game_player.x == self.x and* `! l$ o: v1 f# f1 n
$game_player.y < self.y2 u5 c1 e# n" W
range_x = $game_player.x - self.x
5 [1 f# c8 J# \5 Y$ w4 L range_y = 1 + $game_player.y - self.y # P. n" q+ F$ X: y' n! G
else
/ P+ B5 b/ x5 U! `. } range_x = 0% K/ H1 i6 p" F/ L0 w3 ]- }
range_y = 0 + S f9 c7 g: S0 }" P- r
" l$ C6 ?( t+ @2 x) W
end. v* E2 A3 ~8 }6 s5 s' W
jump(range_x,range_y) unless range_y == 0 and range_x == 0
: m8 Y7 I) k# Z1 M end ' {) S3 q1 d' U0 V# V0 g
2 v5 u) _* f+ f4 `0 l, w2 ^! v* ` #--------------------------------------------------------------------------& N: a! W) r$ o! U4 T* Z, c m7 ?7 N: b
# ● Lowhp Shoot, s2 U8 I0 \! ]5 W# B3 P$ x$ N# k% l
#--------------------------------------------------------------------------) I% j& W/ m$ S' X7 t# [
def lowhp_shoot(action_id,perc), G9 \1 |$ j6 g& z6 ?" K
return unless check_battler_exist?
; f# a' h; }$ G9 D. S. E" [4 E if rand(100) <= perc" G! M5 N! l4 Q: q/ b
lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
" x( C7 F# V* }: V4 C0 v) S if self.battler.hp <= lowhp
1 Z9 F0 {( Q+ K' ^# A; Y shoot(action_id)9 J8 @1 \) o2 }+ H% i e* Q
end8 K) n1 t+ H) w: @* w& Q. r/ V
end 0 R( M1 R! g1 g+ }1 w
end " E7 R0 r5 Y' B( _) R
# W( _0 f! z. g( ]* F #--------------------------------------------------------------------------2 t( r% l7 p) }# f5 Q
# ● Fatal Shoot
# l3 y E; L# j' Q' I" n, c #--------------------------------------------------------------------------$ c, e7 J8 T& f" G9 T& ~. H
def fatal_shoot(action_id,perc)0 N- t8 T+ s% f6 E1 h) U4 ^
return unless check_battler_exist?5 s4 @ I& M# |" m8 I
if rand(100) <= perc
. h: {0 D- f# Q shoot(action_id)0 ^' f" e' m* ?' X9 t3 i* i
self.battler.damage = self.battler.hp, v6 ~& N. N3 h" P% o0 q F
self.battler.damage_pop = true ( V$ h% ]- P9 ^' K/ Z* `
self.battler.gain_exp_act = false
) F' w e, M+ ?0 b* i6 H self.battler.hp -= self.battler.hp
, h- S3 a/ I! n+ v6 |2 W L end. a, \5 D8 P; k7 O
end - B9 F6 k) J J0 G- Q
4 c9 ?3 ~6 D) z9 `/ ^$ @& }
#--------------------------------------------------------------------------/ X4 m) ?0 a2 x6 J, G/ l( ]7 S
# ● Lowhp Fatal Shoot
2 i, r, ]: j& A7 n; w #--------------------------------------------------------------------------
* R' Y; O% |/ s9 p: r def lowhp_fatal_shoot(action_id,perc)
" ~! u9 r" h/ c7 ]9 X return unless check_battler_exist?
" T( H1 {* Q* S4 r lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 1004 |7 k a) V9 D- }: x
if self.battler.hp <= lowhp
6 C% B# ]' Q( I if rand(100) <= perc
8 ~, f5 j5 Z5 k/ _' D8 a shoot(action_id)4 `3 r. F+ q+ [! d1 v
self.battler.damage = self.battler.hp v! V5 E% g* Q ^- M6 R
self.battler.damage_pop = true
+ T7 e; L3 ^; x! l" ] n self.battler.gain_exp_act = false
E: U4 U2 {7 } self.battler.hp -= self.battler.hp
9 f/ u% L) r1 _, t. \ end
) Q' s3 w6 P% b8 K- L# |7 i end
! u2 ~0 Q2 D- n% _# J end ; K) |0 O' E0 ]7 k) d+ K8 {5 |
7 P2 Q- R0 a+ B; z
#--------------------------------------------------------------------------1 n' L. X1 k, A- [0 T M) @
# ● HP Shoot
* ^* V& o# _# U( g/ d #--------------------------------------------------------------------------2 @, u- ~- C- D3 d" V( ]2 }& l9 J
def hp_shoot(hp_high,hp_low,perc)$ e$ r9 k; w# y; e' Y |/ L
return unless check_battler_exist?
- ^ n; e8 U% R P0 D if rand(100) <= perc
* n* X% T1 n" s# [ lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
5 J' ? G7 B/ q& y, g: z) u if self.battler.hp >= lowhp
& a7 N+ i, G$ I0 ]( U shoot(hp_high)
' Y' P& B" A8 o5 }& Q; x else
4 {2 o$ O: g, c# C8 g% H shoot(hp_low)! D) i, X% H5 n* y$ M; r& d$ i9 H
end
& `7 c4 k$ [% i' Y8 ?& E! F end( A8 c+ `( F2 _& T: U
end8 R( K( A" ]* t7 D7 k; f
* u2 `% y1 U% g$ F/ d H1 x/ r7 \+ h #--------------------------------------------------------------------------
4 I9 C" r2 c* L' I% E- {3 O # ● Hero LOWHP Shoot
; j" Z5 @* O( |- Q- H: c+ F% V #--------------------------------------------------------------------------, n# l6 V7 D+ I# _
def hero_lowhp_shoot(x,perc)
) X5 ?1 p5 ~* Y+ Q actor = $game_party.actors[0]1 D* Z! D) J/ X& d5 ~$ Q- V
if rand(100) <= perc
1 |) c! ^/ H$ h$ I lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 100
6 U/ U0 N) B3 ^, n if actor.hp <= lowhp
0 r" e: M! u3 W$ ^% a8 J, [ shoot(x) " l" B8 k. K" X ^; Q
end
' b5 D5 l6 y- E: Q end: C+ |% K; B7 q/ ^
end2 w% F4 \ d% g E" o
: h/ J& R0 o' D' b& _0 s) g) e: z #--------------------------------------------------------------------------/ c+ K4 w5 q7 ]( r
# ● Hero HP Shoot( N/ u# }! L4 V
#--------------------------------------------------------------------------
1 Q! n( a. {3 @0 d def hero_hp_shoot(hp_high,hp_low,perc)* x- u* O+ z5 y
actor = $game_party.actors[0]
7 d* x) o' a: W if rand(100) <= perc9 U: j, J! E) b2 \/ S
lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 100
, [: p( ?6 t1 c if actor.hp > lowhp
0 r* F$ j8 w1 I9 a1 s6 M+ y shoot(hp_high) 7 X2 @% J3 r6 t1 t
else
2 r: W, y3 o! I9 G8 j! L; W( _: Y* c6 f shoot(hp_low)
1 @2 P" Q4 d7 \3 j$ ] end
8 ]' y6 g5 R S8 Z& B" M$ [ end8 @+ c( L/ h. J: l4 A; h8 s- V' }: n
end 8 ?' U1 z0 [7 }% K W/ X8 ^% D* m
* M, i# U* h9 X+ I& v5 Q #--------------------------------------------------------------------------
2 ?( ^. A4 K& _% z # ● Lowhp Rand Shoot
; ~4 U4 ~. [" I! J' D #--------------------------------------------------------------------------
6 P* ?. y3 h0 ?% S. A* z( O1 [ def lowhp_rand_shoot(a,b,c,d,e)
5 Z, Z% p/ ]0 `% y U attack_off! E* Q1 c% b. _- Q/ U( f3 G$ B6 a
lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 1008 Z. w7 P. i+ q! f! Y
if self.battler.hp <= lowhp ; t$ R# {. O- g) ?$ @* U7 D" X5 `
case rand(5)/ a2 `: o4 r: z) r* @# ?: g K5 U
when 0
5 t, c/ T' r5 F' K6 \% x if a == 0
3 T' C, ]7 k5 A, a4 \/ p attack_on$ D6 n3 l% }! o6 }1 S
else
$ i# f$ d% t% F r shoot(a)
3 F# W% v' t N# c end
$ T6 b% l7 @6 t, ]7 W when 1 . Z) G( S6 Z$ ]& y3 i% @ y
if b == 0( a9 @2 R+ `/ ]7 [# d# A+ M% ~
attack_on4 }6 @0 a$ Z: o a
else$ N& K. ^& l) Y
shoot(b)
: G: f0 `. W/ F( X, J1 l) b end - K9 @7 ^) u1 y: s* ^
when 2
. K, o) G1 @+ U) Z( q7 e. `, b% r/ b if c == 0+ Q. l, p: Y* u! Y. W; l
attack_on
) v. g& V: O' Y' V- o5 L( r, u else" j# w) l: q9 C) S* L$ \9 r
shoot(c)% E: u' `/ p: `7 I2 z( ~0 N
end: W0 b. v. C7 R }0 g- [
when 3
/ y' ^" `0 L& u0 d: ` if d == 0
( k" _& x7 ?6 \5 u attack_on
% S( v. ~# b# n' n* E/ }1 e else
6 h- O) e. f9 J. o shoot(d)
/ h- i. V3 J' ~7 ^* Z/ x/ v \ end / z- B* L+ G' C8 |+ `9 W6 v
when 4
" A+ G: p3 t+ z7 I, i, N! q if e == 0& q7 X/ k( n0 p0 b5 ~
attack_on
: A. y9 Z j0 b$ E% z else
2 Z! n+ V& t$ J% |8 ? shoot(e)
& D0 t2 ?* k0 v" o1 Q end
7 X4 k3 @$ `- p end
: U* B7 {2 `) o. b4 P9 b8 ?, P end
& N5 y! Q) I! X) q end - m/ q: W ~' D4 c- [2 y6 d
1 J: K" m( C1 G7 n& [ #--------------------------------------------------------------------------1 E; Z# `0 ^# k/ t% Y- \2 f/ W/ F) }
# ● Rand Shoot3 h4 j1 u5 I" g1 J$ h0 r4 u. X
#--------------------------------------------------------------------------- `- p9 l$ F' Z% f$ n: u' R; |
def rand_shoot(a,b,c,d,e)
, B, Z! M; D+ S+ K4 j attack_off
5 `6 ~" h1 s' a4 N case rand(5); w5 g) q. g( J, N. W2 V
when 04 ^, y: Q& } k* p! ?' p9 i
if a == 0/ ^6 E3 Q8 f4 q& V L
attack_on! i8 X+ |6 ^! b: i/ }6 ?
else9 z {% ^- a: m: r
shoot(a)/ @ X6 R! w3 D1 p/ u6 A/ \
end
}% @ l: W7 N$ i$ S when 1
$ \( h3 u3 k% L5 a" q4 O; O if b == 0) @, W: W( f' ?5 a$ W
attack_on$ [8 {; E3 I* g( \& {1 h
else
" c& {3 D4 Q) Z8 V4 X shoot(b)
. l9 @ H Z) s% @* O: }% y6 F end # w) t A! s* `+ B* n5 u ?
when 2
; {+ H z+ k6 f1 H; l% K if c == 0) C5 |# p: F/ R) x8 V
attack_on" m" r; |4 D9 p" R8 h: }
else
9 v& z0 m! G2 y2 N+ \$ v shoot(c)3 A! B9 F0 \: b. i
end. g8 o7 Q5 x, D- t& S# e. n
when 3
9 q8 X+ N2 s0 D: ]3 Q# C2 q if d == 0
Y$ U) H$ t4 n ^) ^8 m( Y1 L attack_on
/ E3 G: s* M: i, I, ]7 e else
]0 K+ g- X0 t shoot(d)
" r6 C: |* Q% v( b. @ end
; Z4 A) |1 I. n% x G, O when 4
# S7 \5 G$ }: P( c, m if e == 0
& l: E. o( k3 N% y, O attack_on
5 h' ], |; q; J8 g0 e+ K$ L' g2 a' D# W else) B( T1 T2 j9 v) P0 E1 i) s5 ]
shoot(e)
" J+ C4 Z5 G5 ~3 e end 7 \4 O% a) U1 e
end
) T) d( o6 ], p. H( E _ end
( Y4 _9 i: D. q* M% J 9 X$ H- k( U7 r, y
end
& I+ z' M/ b5 S& ]* _: E) X6 W5 ~! z9 e; S$ v9 ?! T# f5 A& V
8 L8 p: \* Z+ ]0 q( V7 N" w) A1 j9 i0 _( K( _! H% y. C, `+ |) A; I! [; S2 T: B, g
' k. \+ A8 L* t, K0 d* M) ]$ `# V
0 K, c7 `0 y# p2 D" X) ]; H
8 ~; F$ `; h. R#===============================================================================
, M+ f# v0 R1 l) d& d% a$ i# ■ Game_Enemy5 _! O' g% l6 A' C
#===============================================================================
( U& r1 f0 O: p+ i$ fclass Game_Battler
$ a+ P9 ~: O4 _+ ]. x
3 U7 Z ~0 _! F/ ] attr_accessor :e_object
, {. j4 ]9 E5 d, D% ~5 H attr_accessor :e_item
) Q3 W/ z% ^" a" d+ F4 [" ~ attr_accessor :e_ignore_hero_shield: _: J) B0 o/ \: i o: Z1 e0 P# ?
attr_accessor :e_knockback_disable k% ?/ i+ H' K) D' Y- G
attr_accessor :e_jump_hit_disable8 H9 ^8 \+ N7 { o
attr_accessor :e_breath_effect
8 M) e3 C6 C7 {4 R0 @, H/ @ attr_accessor :e_zoom_in_effect+ e5 S6 Q. T# j- s
attr_accessor :e_zoom_out_effect
: e1 w- W, T2 D+ m* W$ { attr_accessor :e_only_blow0 ~0 N! F, y, {9 ~( w7 D
attr_accessor :e_passive5 r- J- Q# }' @# {' `5 G% [
attr_accessor :e_drain0 [& b3 n6 w! J) m& `# G3 u8 c
attr_accessor :e_sp_damage
! y/ h8 I7 {: D! A. A7 L8 M; X7 u#--------------------------------------------------------------------------
/ B- j) Q1 g V# ● Initialize
: ]5 M% f7 {4 A#--------------------------------------------------------------------------
8 Y4 x" ?7 E$ s# v0 @6 E0 p alias xas_enemy_parameter_initialize initialize 9 L+ P) W2 M! y: A3 w. {8 ]
def initialize; E% m" P* I2 b9 D+ {
xas_enemy_parameter_initialize
. f1 K+ `' F( l9 _ @e_object = false
6 R$ t/ W& P/ e" h @e_item = false
' z6 b1 X0 N/ ^ P* s+ F% E, t @e_ignore_hero_shield = false & O$ d a0 D }- Z
@e_knockback_disable = false
9 m$ B6 V; Q3 [0 F @e_jump_hit_disable = false 0 W+ D- I' D8 }2 W
@e_breath_effect = false
9 J- [" {' Y1 {5 E @e_zoom_in_effect = false
4 p( P# R a0 k* j3 ]2 \9 Y @e_zoom_out_effect = false + o5 ~7 c' B$ \3 S; V/ k
@e_only_blow = false4 t. J+ ]- U! N$ ^! n' ^
@e_passive = false& J# C1 n, L5 t9 s- c& j M
@e_drain = false
, \% H9 }5 P1 q' m6 X/ z, P @e_sp_damage = false
- d6 j7 }5 e' q" G: E' l end
1 \) m7 `* W, E/ fend
% f1 t# P; V# a, P" v$ l1 A# h' R4 o- Z. }7 o ^
#===============================================================================. Q$ \+ [( I* _7 m' q
# ■ Game_Enemy* R y; |) o% v. o+ w
#===============================================================================* I% m7 q8 F' n
class Game_Enemy < Game_Battler
! ~4 ?! i s2 G2 b% }& J. }
. P; |* \, w. B#--------------------------------------------------------------------------8 [$ ?& c5 @& `5 B
# ● Initialize 6 A: M6 Z7 g9 N* y, v n& R
#--------------------------------------------------------------------------
, p+ _9 Y6 A: }* g alias xas_enemy_initialize initialize + k# |" L- }9 C5 _5 b
def initialize(troop_id, member_index)6 ~) _& w7 w: l1 d" z
xas_enemy_initialize(troop_id, member_index)
: X% {) ?8 X0 o8 D for i in 1...$data_system.elements.size
; \+ J* h# M2 r7 Q7 e" R! j# r if $data_enemies[@enemy_id].element_ranks != 3 3 W {9 @, I: D% R/ U5 L/ l
@e_object = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_OBJECT)% G5 X' ~. X8 u. n# }" t# ?
@e_item = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_ITEM) # p; e& _4 X% i6 w( @5 |2 s
@e_ignore_hero_shield = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_IGNORE_HERO_SHIELD)
# j6 G. \* J9 s9 F @e_knockback_disable = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_KNOCKBACK_DISABLE)
7 S& F$ q8 ^# _/ K ^$ I% g @e_jump_hit_disable = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_JUMP_HIT_DISABLE)
- u# s- R! K0 M7 X+ l& W @e_breath_effect = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_BREATH_EFFECT)
8 E, u+ \4 c! C @e_zoom_in_effect = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_ZOOM_IN_EFFECT) $ S9 u9 J* j* H2 ]7 o, p9 Z3 i5 B
@e_zoom_out_effect = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_ZOOM_OUT_EFFECT) ) `' f& X) y7 ^* Y
@e_zoom_out_effect = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_ONLY_BLOW_TOUCH) ( E. |! ~2 v3 a' q
@e_passive = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_PASSIVE) ! R: i, S# D* N8 O& d
@e_drain = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_DRAIN)
- [ S. `; L6 B& Q9 y( h @e_sp_damage = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_SP_DAMAGE) . d9 k8 e S9 t; g8 M; j7 w G
end
0 h8 g+ b T$ n; {: I! M3 b7 u: p end
3 t- f' @5 S( A. C7 u7 M4 A self.gain_exp_act = true
& y6 ?3 [/ l$ t6 Y, z end
7 d( Q- P4 l* eend
+ D( W" q8 t6 P0 n8 r4 f: a
8 o2 x" H& E* u/ r5 f. P; ^; X9 Z0 Y& p#===============================================================================
# l# M/ y; C+ S. z- V P" r# Game_Player1 a+ z. h4 X7 W& {
#===============================================================================
* O* V: I8 S5 o7 X- ]class Game_Player < Game_Character; g. R0 i0 k* j: `: Q% b) V
include XRXS_BattlerAttachment" L! f1 U3 g5 ]
" X" R$ m! |. f5 h9 i: T" w #--------------------------------------------------------------------------
) O, k% r+ S9 s/ ?1 r" x" Y2 ` # ● Battler
N f; t D+ x# v+ ` #--------------------------------------------------------------------------
2 v1 p! U! H x+ j; K' K. @( u8 E# O def battler
9 E$ I `; h0 `! n. q return $game_party.actors[0]- g7 t% p; |3 B2 F2 }* x
end* H$ q( Z0 g( X7 P( R, q. G
9 g9 }6 n4 [; f0 c
#--------------------------------------------------------------------------
) @' ~6 R1 \! d, k" c9 Q; D # ● Defeat Process/ E; S+ j( B2 x' X V
#--------------------------------------------------------------------------: O8 R- ] H6 T* O
def defeat_process
9 Z& W+ {5 p- k5 z6 y" g7 h, k super ! \8 n; Z6 C. q1 P3 s# M. R
if RPG_FileTest.character_exist?(@actor.character_name + "_HIT")
. e' c/ ~7 a# v V @character_name = @actor.character_name + "_HIT"
$ ]4 d4 T M6 l& g end
. O/ }4 Y, o2 }3 C% h9 F4 G5 C, ]) o: x. A if XAS_BA::AUTOGAMEOVER == true( ]* h2 b+ G; q% Q8 h, J
if self.collapse_done ! h# y8 Q: R7 z( \/ t! r
$scene = Scene_Gameover.new rescue nil3 Q) `$ J7 H7 X: u& U m( m
end
" l& m4 _. [0 t. X9 v, F# Y. m else
+ t$ h7 A- }1 v3 | $game_switches[XAS_BA::GAMEOVER_SWITCH_ID] = true+ K( u! i8 b9 I5 t) ~$ f d0 X
$game_map.refresh
J* P% k$ v/ B: {- l7 V( ~# w6 D end. S0 H! q' S2 x5 t0 m+ e
end
! j5 C1 T5 X% q, s+ Mend
" A8 A( h; v! Y- v- S: \1 E& F$ Q+ g# W+ T" [7 a, A
#===============================================================================
: F3 o7 O& `* {# ■ Game Event3 {8 q7 S( F' s* R# s
#===============================================================================& N( O8 \# U9 M1 k
class Game_Event < Game_Character
5 H6 A% x% A* b; L, m include XRXS_BattlerAttachment
1 z% _; _; b3 p' z- c' ]& H2 [6 T7 v8 j' e' o3 |/ z2 R
#--------------------------------------------------------------------------5 e( @! M. ]5 ]- ?; p: P
# ● Battler A# {0 `# o9 ^0 }" k
#--------------------------------------------------------------------------
7 t& ^1 y2 @: F; H6 A# \* _" M def battler
+ w) A- I2 {. n% [0 Y return @battler
" [$ o& `% D' N* ?/ k5 j) S end
2 D) r H0 f7 M
8 Y/ Y! _" q1 `2 | #--------------------------------------------------------------------------
# `( m7 I" \6 S( x% K # ● Refresh* ?) k+ g: Y' X, L( G
#--------------------------------------------------------------------------1 s6 [$ W( S/ V1 j0 k! L5 W
alias xrxs64c_refresh refresh% R4 Y' N C0 ^% K1 k
def refresh9 Z1 A9 R* h6 B ~
xrxs64c_refresh5 ]# X* ]" n3 v" }" g2 g% l
self.battler_recheck) P; k5 `" F* X, x" ^* x
end
, N5 Q1 z' j3 y2 Y& P9 y
/ P1 ~ p9 u' Y5 n/ o& | n: c #--------------------------------------------------------------------------: g& o( @0 S7 m8 w$ @2 Q
# ● Battler Recheck
5 X* x8 m( w8 ^ #--------------------------------------------------------------------------9 \+ {: }2 n, T+ P, D# v
def battler_recheck
$ u' f( m" n2 p9 X) Q" y return if @battler != nil7 t# {2 Y9 Y5 X1 }+ Q4 H( ~. \! C
if @page == nil
9 |! j% c3 P8 A( D- [# m9 H return' G. Y+ V4 {: I* A p& G% Z7 K3 F( u
end
. T' n. a# f8 t: n7 y, e% H G if self.event_name =~ /<Actor>/
. I3 g+ ?) N9 @ actor = $game_party.actors[0]
. \% z/ P7 n4 \- A* g @battler = Game_Actor.new(actor.id)% z( d0 ^( a" N. w: ]
return
7 g, m5 c& N8 L8 \ else
. n& G4 ?/ u% f2 u7 q2 x+ ` @enemy_id = 06 w* }, L2 {7 p4 X3 o. ^
if self.event_name =~ /<Enemy(\d+)>/i
/ [3 F/ q# |5 @ @enemy_id = $1.to_i
( m/ C2 n& G9 i end
; c9 e$ Q5 e6 j; N; O0 @$ s' V if @enemy_id == 0
7 M h% I9 t% O' [3 l' d return5 p2 A+ ]! z1 `, T" b3 y
end. c9 K1 k/ `" z. P- q" N
end
8 Q/ P5 v9 [# N: V4 E- ~ troop_id = -1* J# }, P' _2 r4 l; g. |% m8 u
member_index = -16 j" d) f& x7 d1 R7 K) w7 J v0 N/ |# w
for troop in $data_troops1 y+ r$ m \- T, b8 R, r
next if troop == nil+ J& A: r ] o9 l$ b9 P" ?
for enemy in troop.members
' o# G1 z% W; y if enemy.enemy_id == @enemy_id0 E: e) `" ~" k& X' S# @7 \
troop_id = $data_troops.index(troop)
: k6 C3 t6 k1 t' i3 s- z9 K member_index = troop.members.index(enemy)
, x) c1 a' {: S# q( v break
1 \$ T }( K& y9 Q: b2 r end* q7 M1 s* w# L/ p0 X8 T5 p
end) V- _0 } t2 e- a
end
! X& a1 s$ P. m1 @# [ if troop_id != -1 and member_index != -16 f& `8 E8 B; O; F* |) o
@battler = Game_Enemy.new(troop_id, member_index): q% v! R% _1 @9 G
end: K& M1 Y- z7 e+ }
end
3 l$ y( k3 m' E4 K( U2 ^, ?1 d; g
0 o0 Q, E; \8 D7 G4 Q #--------------------------------------------------------------------------
5 {: t+ W/ N3 ` # ● Enemy Id
* i3 O3 ]8 ^+ S% g! {9 u #--------------------------------------------------------------------------
2 m+ P8 d1 w4 g+ { def enemy_id" G. F' X& q9 S; {8 H) u9 M
self.battler3 o2 t* R0 @ }! S3 _5 X
return @enemy_id
/ a; `3 Q! @1 r& c1 ]1 k end
7 I, F& W& n* u2 L: P 3 p$ \7 g3 S' s x. H
#--------------------------------------------------------------------------4 P' S v% d% x
# ● update_gained_exp_gold7 v5 G3 {8 G+ f: A8 l: O) o
#-------------------------------------------------------------------------- / H, ~3 M! {3 ~! s. H
def update_defeated/ R6 n; [. _2 L! ~# J4 r2 g4 A5 b
return if self.battler == nil7 O: I- n _. ~
if self.battler.dead? and self.battler.defeated == false
0 p& T8 G( b2 ?& {4 w8 c self.battler.defeated = true 4 r$ k y0 L4 l" w; ~
defeated_effect
4 H; U7 ]2 S1 b, } end . q9 K7 A; H+ P3 ]4 }7 U7 `1 K) [
end
% z( |/ }1 m3 N) g: [/ G6 ?9 @
0 m8 m# m: v; v4 g: X6 \ #--------------------------------------------------------------------------
7 @# ?; {: I8 k* | # ● Defeated Effect # K; y' f; u, v3 t- E1 c7 k8 R
#--------------------------------------------------------------------------
2 \) ]1 u3 _ Y6 N8 S! Q def defeated_effect $ V$ Q8 y4 X& L# t; V* ] `7 A3 P
self.through = true: G5 B) B A: V# f* v
last_attack = XAS_BA_ENEMY::ENEMY_FINAL_ATTACK[self.battler.id]
) Q2 V& b2 E t+ q self.battler.last_attack_time = 15 if last_attack != nil
* }/ h, h# f2 ] unless self.tool_id > 0 or self.battler.e_item
1 g$ X: \3 F, O& n$ w* y+ g5 G @actor.exp += self.battler.exp; a+ Z" V U: R- |9 M0 g
$game_party.gain_gold(self.battler.gold) j; V Q' F6 i0 z, B5 h
end
( z# U6 m; ^! X: J$ P! H( W% \. W id = XAS_BA::DEFEAT_NUMBER_ID( J ?' e* y6 @* ]
$game_variables[id] += 1 if id != 0
- ]4 n2 K% n8 f4 e \- f jumpa(0,0,20) if XAS_BA_ENEMY::COLLAPSE_JUMP == true : g5 Q( `! H o2 P9 M! ^
switch_id = XAS_BA_ENEMY::DEFEAT_SWITCH_IDS[self.battler.id]7 A. \# | X) w. ~2 j* Y$ h3 m
if switch_id != nil( a: o7 F; \/ T1 X
$game_switches[switch_id] = true
$ K2 x7 ?# h6 j. z/ ~" p g $game_map.refresh
, q& u2 ~8 o6 O end
- v' |+ G: Z. G end , i6 S. F5 T5 j6 m, y
% z8 ^$ x+ S* ?( p, i3 [2 G( t+ G
+ f9 [2 r# v: |% v/ E1 p
0 Q, H$ z5 {* }2 u% ~* d+ k! w #--------------------------------------------------------------------------
7 A# y' e# j2 X' l' D # ● Treasure Dispose( O, A( \7 G' [- v4 l* _/ y& {
#--------------------------------------------------------------------------
' e6 r9 @3 ?" J2 U2 V1 O4 O7 ?* E5 g+ H def treasure_dispose
* }; R% ~3 f$ z0 b% } if self.battler == nil and self.is_a?(Game_Event)" \, E( T! ]" C& @+ q3 D
if self.treasure_time > 0 and
8 C: k0 b" D' m t5 [ self.treasure_time -= 1
1 Y* C8 i9 K! y* ~# b, `. m if self.alwaly_on_target_id != 0
9 r5 z0 H8 e' T" p# k' C6 C, A2 R self.zoom_x = 1.00
: W2 Y$ r g. F' a2 L2 B4 J% t. }1 m, t elsif self.treasure_time < 100
; f& k# q" A8 ?6 t9 g self.zoom_x -= 0.01 if self.zoom_x > 0.01 5 n# r- V* P" a' n: P+ |! I" _
$game_map.remove_token(self) if self.treasure_time == 0" g0 Y, N7 b4 K) x+ j
end/ R8 x" s' r& {) [6 R5 n% N' t0 C: D
end ! T! U) x' e2 l% s
end
+ A/ \ X2 J& R2 D, V1 J end 1 z; \0 P. T/ _. e
- w% v9 T7 A6 t- n0 X7 O$ ?( j #--------------------------------------------------------------------------
' e- x r: d. h6 R! q # ● Hit Reaction ON6 f0 ]* I- h5 ^" N
#--------------------------------------------------------------------------" t( R- p$ I7 _
def hit_reaction_on
7 G3 h2 B s( b return unless check_battler_exist? 4 s1 Q; e; s: U2 t. d5 V
self.hit_reaction = true
, x6 V5 m( P1 T% T9 t0 j0 | end : T$ s5 O$ v" g- V% n5 _& O
" k% H5 y8 M: H7 Z- s' {) U
#--------------------------------------------------------------------------
$ @% W+ Y/ d/ x3 V+ Z # ● Hit Reaction Off# |! C0 l2 i8 e0 v! j
#--------------------------------------------------------------------------
& H5 A2 O8 G: p1 j6 ~9 v" U1 W def hit_reaction_off2 D' G z% s: L6 k
return unless check_battler_exist? 9 ` [" u, g& u* v
self.hit_reaction = false
7 o6 D$ i2 n$ X( D; g. R. A* c end & U0 l1 G7 ?* Y$ U
1 e y3 ^( t3 K
#--------------------------------------------------------------------------8 s$ {* g C6 H! {
# ● Hp Hit Reaction
. O9 [4 v+ y* |8 `1 A #--------------------------------------------------------------------------, I* N! B5 v5 p
def hp_hit_reaction(on)
8 W3 e5 D3 }. r2 Q( c3 f. C return unless check_battler_exist?
: K. L) E& c `/ u' R0 E+ m lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
! n. O1 r1 U: q+ j9 d; d8 ` if self.battler.hp > lowhp : i/ G- f( Q& K
self.hit_reaction = on
" v* o+ z; C% s, t8 q7 X else
# Z% f( P) I) g0 t: A- U9 o if on == true* k' z: n9 F) C6 |, C O9 c
self.hit_reaction = false% U$ f9 i$ Y, H) e) \9 j- O
else
+ F3 v& f7 Q6 X6 b self.hit_reaction = true
5 e8 a: q# f; i) R5 M end2 P. A+ s, N" C# [: _
end
/ S* j+ `; [( ?. r) P; K end
. p# Q/ X% z8 e0 H ; ?% `" e5 q( w1 x2 Z/ G0 w
#--------------------------------------------------------------------------
* f" {. O# b" E; O1 \3 ?. g, | # ● Hero Level Hit Reaction9 m" u1 ~4 F2 G- W, r! `
#--------------------------------------------------------------------------% |8 F1 j. |/ X# X7 _* L
def hero_level_hit_reaction(level,on)" W! [4 W6 c& F! W$ j
return unless check_battler_exist? 2 u8 J3 x$ x- x6 n, e) T3 j- w
actor = $game_party.actors[0]8 }% T8 ]& b, k% R" O9 v! k. \ R1 p
if actor.level >= level 1 [8 a9 J1 ]9 ^- l9 H
self.hit_reaction = on
2 S, N/ T2 e# w& a5 S4 `# | else
D* w. W7 v* ? l3 S if on == true5 b3 }* c6 w' m' F- G# i, ^
self.hit_reaction = false
$ S* F# r, k; V6 x9 A6 `1 O else
" G& Q- x( H1 p4 d0 I self.hit_reaction = true
# w3 h* n4 l1 J8 x9 D# M/ }6 W end0 |; P' m) Y b Q
end
! A" V/ ^* u6 G/ f end 8 A0 I1 u5 ^/ w# J1 Z
* D' i% A$ `! x& M5 y0 c #--------------------------------------------------------------------------2 v# }0 W3 @7 |/ ?& A
# ● Shield Enable!
" O) ?) L5 E' v, R0 |- G #--------------------------------------------------------------------------
, }' s, F; k$ r, f def shield_enable!
9 `: t6 _+ u3 h, K return unless check_battler_exist?
* \3 d% G3 S, s4 v @shield_disable = nil; v# \8 `) c7 p0 \
self.battler.shield_active = true" Z0 Z& o: g, s* t5 ?
end
7 c) u% e+ S9 y & Q7 R; }# R( w' F: ~3 F! W
#--------------------------------------------------------------------------
/ n7 z8 Y) r5 o9 Z; w # ● Shield Disable!
, e; N, _0 b6 L' ^( q #--------------------------------------------------------------------------! O7 {9 G+ E: I% u
def shield_disable!. e Q. ?; u. u9 r8 i
return unless check_battler_exist? / M$ V* R$ X2 i
@shield_disable = true
1 }# g1 |) d+ v4 r, S- Z; c self.battler.shield_active = false) G# }& }3 C' p, q) b
end
4 S) V! w" A1 ]+ g+ C! ^& K
0 |5 }+ }4 W/ x7 T! b #--------------------------------------------------------------------------
; |0 ^9 |, V( K # ● LowHP Shield
3 R6 c: ?5 L2 ]' `' f3 D #--------------------------------------------------------------------------
4 V8 }3 ^1 T# `1 n/ E def lowhp_shield(on)
1 B+ f0 T2 V3 D1 [) K return unless check_battler_exist?
/ M5 b+ W' T+ _! J; @; [ lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100( [- `: z- ?+ d* p( }2 _
if on == true
# K; ~5 ?) a4 I! X8 p4 r @shield_disable = true
3 ^9 G0 q" Z$ @; s; P elsif on == false& z' j7 Y" H+ U
@shield_disable = nil3 q3 ^& I7 s* \" G Y9 O
end8 K- q- r: `7 z4 G$ o4 u$ T
end 6 D- C+ p3 p% R% h4 Q/ F5 W
( ~/ {& ]+ N* N
#--------------------------------------------------------------------------
' |! O$ a. N2 M" H4 S- |2 O" ~ # ● Hero HP Shield / O, K0 v# j. S
#--------------------------------------------------------------------------2 l0 L8 O/ l. `" Y3 c3 s
def hp_shield(on)
8 D9 ^: W- o' \( w& c return unless check_battler_exist? * | S$ t3 |/ O# f9 V# ^
lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 1005 e3 [. e, a% E9 d
if self.battler.hp > lowhp
4 t% L2 f: {" I @, d if on == true% K. _9 @3 g' f. P
@shield_disable = nil
. L9 J! X8 O+ V5 E) _# _; R else
/ ] m1 `' ~% j& J2 X3 ` @shield_disable = true. W/ w; H5 ]3 D: A% h1 G0 B* {0 O
end
# O0 l2 f6 z8 s+ F; Q, C3 _ else$ [- I# ~" } r" [
if on == true% `: x/ X) i9 ?( f: U
@shield_disable = true% }" U3 O( E" N- H! i; _8 `2 m* i
else
( f: Y9 E1 X. e9 Z3 R3 M- ~2 K) Q3 w @shield_disable = nil1 |3 V# l& b! S! m
end
3 Z7 o! l5 K' \' n6 E end. f4 {; @& w' N2 f+ l# y! a& V" t6 J' I$ h
end
2 _* d' x- R& K! T! b# o
' H9 E t6 k& A( g# q: g$ m #--------------------------------------------------------------------------" E* v. \% J7 w, Z, c5 M
# ● Hero Level Shield
0 m/ O `5 p: ? @ #--------------------------------------------------------------------------7 G: R9 A& A/ i" k
def hero_level_shield(level,on)
3 N. @$ u- p% R0 F0 G8 h return unless check_battler_exist?
9 y6 B1 r8 A; h actor = $game_party.actors[0]
* Z6 L4 u* w$ f" @* p; D- e* N if actor.level >= level 6 J; `0 C" O& g) P
if on == true
& v r; T' S# r9 h7 V @shield_disable = nil( w0 [6 n4 L3 D, q, e
else1 B* h. h/ l5 p- c7 y& ?1 k; R' M( N
@shield_disable = true
. b( q! H9 C" a+ I1 x! e/ |. {: i, j end ' l2 P: D2 W: G( e J Z j; W
else
6 r$ j0 b+ M; x6 G3 X: P if on == true8 r, `8 E" U' O2 b
@shield_disable = true$ v$ V" P$ A5 Q3 n; Y# k( G
else0 L4 T9 u% x( {" |" e# [
@shield_disable = nil
' z) v8 T7 O6 ]5 a! k6 S end
/ r' A0 b% T2 B4 \7 f end
9 x# A s; [ D7 V$ `$ X# `9 P end
5 z; f, j, p8 A/ K! T9 J ' G& C* ^2 i6 h8 V/ s6 }
#--------------------------------------------------------------------------* o w* F6 O" f, F4 j3 f2 m
# ● Shield Directions
( F! ]0 {( b4 a% S: ]" ?. \: `+ p #--------------------------------------------------------------------------
5 S2 K" i" Q8 L. Y1 W( J. a def shield_directions) d- v* K! u' D k6 [) w! N
if self.battler.auto_action; O2 n+ R! G8 E, z' o
set = @shield_disable ? [] : [2,4,6,8]
" B- ~5 f4 J9 t$ r( q1 B3 ~& J' g else0 f E' i. d$ W4 Z4 S/ I
set = @shield_disable ? [] : XAS_BA_ENEMY::SHILED_DIRECTIONS[self.enemy_id]
% ^0 O" O: i) H; s3 B+ @7 }1 f. m end , l! h! q( Q! Q. Z! t f2 p$ a
set = [] if set == nil
3 ]. C a" R9 ^7 N return set
. V C" q8 n& T3 Z) I end3 z( V3 A$ M' B
# G6 R1 P8 n, R& ? D8 R #--------------------------------------------------------------------------
7 T; Q: v9 B. L+ G& o # ● Shield Actions
) e" ` a4 G# s #--------------------------------------------------------------------------" _0 H7 M' ? E
def shield_actions & Q: ~. c8 n2 M6 |
set = XAS_BA_ENEMY::SHILED_ACTIONS[self.enemy_id]- X9 |$ _' e9 b5 L) K
set = [] if set == nil* D/ G" n$ r- c& X o
return set
4 e$ y4 w. X) v7 c! k* b' z9 r- ~ end
2 m4 ?" s+ z% ] J - T+ w/ F W. a' x1 [1 s
#--------------------------------------------------------------------------$ Y! L) t1 M* j) X3 R! F ?: T
# ● Knock Back Disable/ `9 w0 l: Y$ V
#--------------------------------------------------------------------------
! S- ?7 {( T4 J def knock_back_disable
8 F: b1 I' }1 o return self.battler.e_knockback_disable
" {) o3 Q; ~' d4 @+ ~ end* o4 W* r$ U# o3 d
5 t; u7 g, [: F, J V) [
#--------------------------------------------------------------------------& t$ y# T2 M+ W# k! w
# ● Body Size: V' F/ U% X, g2 J0 j# ?$ }) C
#--------------------------------------------------------------------------
. [3 k, o, @6 y def body_size# s( r5 `$ c0 |( @, {4 R8 I5 R
return XAS_BA_ENEMY::BODY_SQUARE[self.enemy_id].to_i
9 M( q$ |: q+ {9 o end2 h# N5 H+ F5 j" l1 P6 `
* r" C% r* {2 p3 g8 V% N8 _
#--------------------------------------------------------------------------7 ] f$ O0 E' I* G/ H
# ● Defeat Process
8 L! @% W4 p- N7 q( N #--------------------------------------------------------------------------
. a) x) X: L- \" [) S W+ A def defeat_process6 c" g4 L" t# W+ B: b
super
! C. p; W G' c. ]$ F enemy_defeat_process(self.battler)$ M' X; F- z6 q" ^# C- r
end/ r- l! K* A) ?1 j) e0 [$ \
end
) A& h4 m; M* E* O+ y
# T) i6 ~3 _3 `) G. u/ g#===============================================================================
3 \: ?4 \) R1 \. a9 ^; H" D; b1 ?% h# ■ Game Event
0 R4 ?8 [ t6 _% ~) ]#===============================================================================/ p! K; \# x* e( |9 q. Y
class Game_Event < Game_Character
% V7 }6 Y" @" q) ~' L7 R attr_reader :collision_attack
, Z9 D# \* P* P. B9 D4 @1 ]. G: f' n" t3 P) D! a
#--------------------------------------------------------------------------3 s$ J% e/ |5 G1 g( W. p8 E
# ● Attack ON
: V. ]" x; i, u$ T- x8 W #--------------------------------------------------------------------------
1 a! @- g& b* z# Y- ^7 s, f% f% i4 f def attack_on
" H! t, F* C6 I) I) ? return unless check_battler_exist?
B! u( J; |, c# n+ T if seal_state?(1)
( I: E- M/ M5 K" L seal_text, E8 j% L6 j" ~8 v0 R$ b" {
@collision_attack = false: H( [3 A6 b# P
return * T( p3 X7 Q! U, K
end, w- F0 S' u( D
@collision_attack = true
5 n% Z$ w. \, X' o6 J% I X self.animation_id = self.battler.animation1_id
( I) a0 H! A) a6 `" j4 C name = @page.graphic.character_name + "_ACT"
! R2 V9 ], O0 N: D8 O+ n$ I if RPG_FileTest.character_exist?(name), m( T& \, J( q0 x* h
@character_name = name' y& e" ]. n) ]
end$ t3 Y5 w2 [, J! L- J: A7 u
self.refresh + f2 Z) H- X/ D! C2 t2 r' B E" F
end
( j+ z- R1 X9 A" e" } 4 K. S# c. K5 g: Z/ C5 [ H1 R
#--------------------------------------------------------------------------: _, ?/ \" K3 b: ?& J) k, x: I
# ● Attack Off G" h1 I6 W3 N- d h
#--------------------------------------------------------------------------
0 s9 h) T2 o& N1 M% O- l* O def attack_off! R# x( [# s! w. W4 u# o2 q7 T
return unless check_battler_exist?
/ a" X r) e8 @ @collision_attack = false : [+ e/ k9 E/ l$ p; F$ a% j* z6 [! ^
return if @page == nil- T' y1 F/ b+ i; m2 Y. ^1 _* z* x
@character_name = @page.graphic.character_name6 }/ R' Q! F5 L E
self.refresh8 j. `3 J5 V: O+ Q9 o! _( {
end
T6 T/ V4 z0 l8 v3 Fend
: W& u8 _5 H& T7 u& L2 [+ j- U* ]) z
% K1 b* t! f) f& `7 m, J% H! L3 Z( J/ K6 C6 v
#===============================================================================( W! J" v2 d+ H6 t' ]
# ■ Game_Player# n. U- F. }. A J& a
#===============================================================================0 @7 L- D% l: D8 b
class Game_Player < Game_Character
, v x+ k, n* z0 I! m + s% B& W7 H' x/ Q
#--------------------------------------------------------------------------
2 Z- ^ X& W! E # ● Can Touch Damage$ W5 Y; `/ M% }3 K( X6 e
#--------------------------------------------------------------------------
) V1 ^/ W4 D( |$ L' F def can_touch_damage?(event)& K( Q( J6 X4 Q+ x% j
return false if event.erased% M1 W6 ?) d4 [! c; M
return false if event.battler.dead?3 e& e4 w' a0 |" _5 G
return false if event.knockbacking? * b% v0 O+ M7 p) K) a' F) j
return false if event.battler.stop
2 a6 w: ?. r6 l* Q return false if event.battler.state_sleep
% T( s6 S9 j! B; r& m b. N# I, T return true0 ^+ H" [8 I, x1 n1 W& c4 u
end + I* _1 O! w& G
6 o% e9 [ ^# p# H0 w; S
#--------------------------------------------------------------------------
& U) A* y4 t p% B6 { # ● Check Event Trigger Touch$ L' v O+ @0 g$ k
#--------------------------------------------------------------------------2 y6 v$ w# M0 J/ M6 ]7 q2 s0 D
alias xrxs64c_check_event_trigger_touch check_event_trigger_touch
- `$ D5 f, ?4 D+ D def check_event_trigger_touch(x, y)
+ e6 u& e) ^) t3 t$ h3 H0 { xrxs64c_check_event_trigger_touch(x, y)( Y2 i7 f0 U' Y2 V/ }
if $game_system.map_interpreter.running?5 q9 D& [2 l5 {2 [( v5 X
return/ Y6 I6 b5 \/ [: `! E) q+ z
end
1 H, e- k+ F: z# n1 @0 t' \ for event in $game_map.events.values
& r# p& t2 A$ T$ N next unless event.collision_attack * z9 G* Q9 K, q2 g5 @$ Z
unless [1,2].include?(event.trigger)
9 _, ?" O' N/ R* ^( | R if event.battler != nil and event.x == x and event.y == y and
3 v8 Q( G; q. n6 x, h can_touch_damage?(event): |% c! L$ O% Y0 X/ ~) s, f
$game_player.attack_effect(event)6 [/ r8 g. ^! {$ q
end
+ R4 M9 n" ?5 B5 Y4 { e: Z0 l3 s0 d) O end# P' M5 a- v) g0 r9 k ~' a
end
# r) t: i; ?- U. H% ] end
. n3 h- s" ?& ?end
8 w9 y* }# ^/ f Q9 u5 {: \
4 s6 J) M/ p$ ^& ]#===============================================================================
1 _7 [* i+ I& H# q8 v i3 b' |# ■ Game_Event; b$ u2 L2 N# E2 J, V- `& W
#===============================================================================8 u8 U% e/ d/ s1 x
class Game_Event < Game_Character
9 \; G. c5 ?7 N3 l7 k + B- d; F; a0 y+ Z0 r
#--------------------------------------------------------------------------
2 B" ?7 ]# B" }/ J# Q, L8 m1 M# ~ # ● Check Event Trigger Touch+ w+ R% a4 B$ f: F! q/ D& r$ C1 t y+ c
#--------------------------------------------------------------------------6 e0 U/ {1 H7 k+ @ r# f* S
alias xrxs64c_check_event_trigger_touch check_event_trigger_touch
# k) }" y0 M" {+ G. x' X3 K g def check_event_trigger_touch(x, y)$ R B3 s! X) ?
xrxs64c_check_event_trigger_touch(x, y)) |9 @8 r' P* L2 t
if $game_system.map_interpreter.running?
) M4 d) O7 h( |5 e( m3 C return
2 h$ u. F, J# q0 ~ end
% j" Z2 G4 }& | return unless self.collision_attack2 ]- ^% c- R5 O$ s# I6 R; x
if self.battler != nil and x == $game_player.x and y == $game_player.y2 j+ t$ v5 H+ B3 V1 p' Y9 Q, R
$game_player.attack_effect(self)
. n" j5 U! d5 D7 S9 Q- f3 W9 n end- R( B* I Z) h
end' y3 d& `" G- g
end
$ @) H" D4 V" Q( u" }& N
' p8 }, t7 H4 B; J: F#===============================================================================
- W" P0 F$ u# C# ■ XAS_BA_BATTLEEVENT_NONPREEMPT7 D+ P$ g( ~5 i
#===============================================================================5 a J. V {6 @0 {! L& Q, h2 n
module XAS_BA_BATTLEEVENT_NONPREEMPT/ o' @. b6 n- M7 c) p4 m
' m: N2 i2 ^* h. w* d9 } #--------------------------------------------------------------------------
" V9 k' l7 |* Z s) b # Update
% n: i4 ~3 u# n! ~ U8 k/ j #--------------------------------------------------------------------------
# t+ C9 G7 |5 ^% K; k) h9 ` def update2 [. s4 B5 g4 {* {
return if self.battler != nil and $game_system.map_interpreter.running?! m7 {8 h/ t2 [; ~( E3 |
super
2 B& l+ {3 P4 z& E4 a end
; n) \) ~( `8 K8 ~5 H1 X# oend
7 G, y" g% ]- U1 h' z, n5 q, L* R( c
#===============================================================================
7 c, \4 a; Q4 g+ u9 l3 ?; R# ■ Game_Event8 Q# [. p; k; M- c0 b
#===============================================================================! `( f( @& f! r6 H) m
class Game_Event < Game_Character2 _. ?- T& N i4 ^
include XAS_BA_BATTLEEVENT_NONPREEMPT# e0 {+ R0 r* v0 ?( \5 a- R5 j' d( I
end8 F9 U1 s# E) @( B
; V% w- |) X, [9 \- b( z5 N
3 R* `) j4 L0 v3 W
' K' ?; D H4 W2 X3 F+ d8 j( n1 W# X- V4 [1 U5 A0 P/ L) I) W
- p$ H* O$ m! W
$ i0 w/ a0 H1 d" M, s, c& x#===============================================================================; d0 n6 G, e) {& x/ R5 t
# ■ Game_Character6 U+ L( B( K/ A- b: _0 i6 W
#===============================================================================; j" s0 k# }) A
class Game_Character
7 O& C3 ` s+ c5 o( h/ y. a 2 C% y% |" I4 @9 H0 U) x; [
#--------------------------------------------------------------------------
4 O' w( v s, v, ^/ v: R # ● Blow" [7 s# L: E0 e! V
#--------------------------------------------------------------------------
) \2 v4 f+ L9 L def blow(d, power = 1)1 F, q; c7 l: r7 n8 o8 N0 R
if self.move_route_forcing and $game_system.map_interpreter.running?
& R7 U: ^! ?# r( c! f- t3 L; J$ \9 C return
. B, b% D- w7 ?1 ^2 m2 I. I7 D H# [ end 2 I+ I ]: C0 K1 {% L* b, _& q
@need_refresh_pose = true' p1 S! U& @8 `9 j8 c! i
@pose_type_old = " X "
& z# e; }' Q4 M- ~) b. ] @knock_back_prespeed = @move_speed if @knock_back_prespeed == nil6 t4 ? I7 v4 P2 B5 Z+ i
return if self.knock_back_disable
8 E V9 Z, a9 M0 u% t5 \8 P& |. T" N reset_pickup if self.battler.is_a?(Game_Actor)1 P6 T- b& n' \! y
power.times do
8 P! s) O1 P6 p' z if passable?(self.x, self.y, d)) ^6 z- h, R- b/ b- o
@x += ([3,6,9].include?(d) ? 1 : [1,4,7].include?(d) ? -1 : 0)
/ k; Q0 g0 d, r% L- p4 O+ L @y += ([1,2,3].include?(d) ? 1 : [7,8,9].include?(d) ? -1 : 0)
. {1 K) Q) J8 n/ o! t8 q end8 _8 n z& g9 A {3 h1 J" e( v
end9 n" ^* |9 Z5 b) V2 Q
if self.battler.is_a?(Game_Enemy) 8 }2 v5 F7 {5 u) m
enemy_knock_duration = XAS_BA_ENEMY::INVICIBLE_DURATION_ENEMY[enemy_id]# S: Z4 b: i, h% |; v$ Q0 N" W; q
if enemy_knock_duration != nil; o1 @$ Q) }+ j: S
@knock_back_duration = enemy_knock_duration
6 g/ i; [1 g$ p4 k3 V+ G# Z8 Q7 a else' ?- X1 t6 R2 L
@knock_back_duration = XAS_BA_ENEMY::DEFAULT_INVICIBLE_DURATION_ENEMY ; e$ E! U" E- B+ Y
end 5 T Z7 V0 W$ N! V& l7 A" E7 P, h5 `
else
3 u- G$ s0 s) i$ n7 ^. o @knock_back_duration = XAS_BA::KNOCK_BACK_DURATION_HERO
) p) R! k* v* k5 D. d- [ jump(0,0) if XAS_BA::JUMP_HIT_HERO and self.action == nil
( Z( w" ^; ]' r- N end
4 i7 q8 B0 N# s4 | @move_speed = XAS_BA::KNOCK_BACK_SPEED
6 l1 Q3 t9 `$ s( C- C' j0 C end # S9 A% d+ d: A) _( D4 z
1 R; m0 |7 F# e7 i #--------------------------------------------------------------------------( U0 m/ {% Y& S0 w$ E
# ● knockbacking?
9 C, H8 i- a" { e6 S #--------------------------------------------------------------------------* q+ X" Z$ u( f& R
def knockbacking?
4 L! B; q3 H9 E# \0 H2 @. R4 j return @knock_back_duration != nil
! b9 |) ?9 M' C/ P# l end8 F; ?1 F$ |, c% Q" P) ~
" H$ S' o+ I! b6 \/ v1 E$ e: K #--------------------------------------------------------------------------" N* y# ?! `; K( N9 [
# ● Collapsing?3 {# l- c/ c- A, t3 l o
#--------------------------------------------------------------------------) E- ?. Z* P" N- l N
def collapsing?
( W* D" o- b) [3 i5 c$ W: T' w return self.collapse_duration.to_i > 0$ L2 q7 `/ `' x# I0 k
end
7 w/ S" G5 P+ U% d" D! E- j
% Y/ e% e; k M# O #--------------------------------------------------------------------------
1 U/ I5 m9 `# D& x; {3 H # ● update_text_popup ' O/ p. L: Z- L( a, |! `
#-------------------------------------------------------------------------- 8 I0 m r. x2 `+ j
def update_after_text_popup : p+ s) ]7 f) w
return if self.battler.after_damage_pop_time == 0
$ X7 q# _$ B; N1 R, Z7 M self.battler.after_damage_pop_time -= 12 R$ F, t# n2 ~
display_damage(self.battler.after_damage_pop) if self.battler.after_damage_pop_time == 04 G+ P0 z5 A4 m9 U* I/ N
end
; z4 J, Z+ o8 J4 d2 v2 t * C2 q, Q) t) v1 |1 U7 o( t/ j# |
#--------------------------------------------------------------------------9 p; d. o) U0 D1 } ? q: T5 M
# ● update after animation
- u& Z, f" d0 l6 m #-------------------------------------------------------------------------- $ B* r* l+ E: Y# a, s: t4 D& ~/ w4 s
def update_after_animation
+ I0 V" V: T4 p) K return if self.battler.after_animation_time == 0
- X4 D: F P, x0 \ self.battler.after_animation_time -= 1
0 z% C7 y; b e1 \4 q self.animation_id = self.battler.after_animation_id if self.battler.after_animation_time == 00 _9 \1 p2 `3 z8 K" q( r2 g! J2 c
end
6 ^: I0 A" O- d: O' I7 m$ }2 T& [
- I+ F D7 i( w- q& d #--------------------------------------------------------------------------8 q5 O+ i. K" B4 @( }9 v# t
# ● update knockbacking
( [. M8 X! v1 J& L. {' V8 B #-------------------------------------------------------------------------- " K* ]" [3 \0 b% R$ k) _
def update_knockbacking
$ ?5 _; \0 w6 E8 A+ |3 e4 y; D3 B @knock_back_duration = 5 if self.battler.state_sleep$ u- ]+ P7 r5 J- [
return unless self.knockbacking?6 a) F1 |! Q4 x0 R7 n6 n( \
return if self.battler.stop
2 ?$ L# N# j- s T @pattern = 0 unless @direction_fix
- z0 N! ~4 ~ N( c4 C1 X @knock_back_duration -= 1 unless self.throw_active ' x4 \$ Y( v& O2 E7 @
update_knockbacksprite
/ a; Y) z' `4 v* L! B2 l- y: G) n if @knock_back_duration <= 0
" s7 @, z& h' g* X) Z& x* h" I @knock_back_duration = nil6 W8 \3 l5 V- b
@knock_back_prespeed = nil
* X0 r% z: q+ i: f7 T( c; P9 { if self.is_a?(Game_Event)$ r, T* ~4 j% a) X) E$ v1 M
@pose_type = ""
" Z! i9 w9 Q) H8 G3 C( }, Q& M5 ` @pose_type_old = @pose_type
3 c: G3 }8 M' z* K2 ?6 @ @character_name = @page.graphic.character_name
* ]* M- r- R; N$ S: b+ } self.refresh
; L [% ?: v+ h2 l+ e. w end8 h; G2 A8 H9 [$ K- F6 Q
end# ~: n5 t/ f* @- r6 |) ?4 n0 v( H
end
& k! R% Q! x+ U% h% A ) l4 D7 C. L( P
#--------------------------------------------------------------------------# Q2 t9 A9 i' [4 N
# ● Update Knockback Sprite
- q8 i2 v8 S4 n- I( o' t6 M+ K I #-------------------------------------------------------------------------- * j) q3 V" h& k" a
def update_knockbacksprite
- B; m6 O* ~; B" Y) U& _0 v return if @pose_type == "Refresh"3 z3 f1 h; B4 M0 a2 l) V9 L1 _
return if self.is_a?(Game_Player) 6 G- A: u) u, a' G% G
@pose_type = "Refresh" n5 N5 n8 n% x
name = @page.graphic.character_name + "_HIT", Y% _; j2 t0 ]' h% S( B+ ]
if RPG_FileTest.character_exist?(name)
' L" J) h4 R- N) n7 _ @character_name = name
4 U8 Y" j* I# t- r' V# c self.refresh0 e! O1 C; K. E0 O: p5 w2 ^" u; g- b
end
% t5 c' c4 Y' Q9 J& F2 N end
7 B* R: y7 a6 d3 q; M
3 s) P: H- k2 S #--------------------------------------------------------------------------2 U1 d" N# l! D7 W, c
# ● Seal State1 g- M) z5 A8 r( m
#-------------------------------------------------------------------------- 2 G1 E1 z: E( N4 t% P: A8 T9 ^
def seal_state?(type)
5 b1 Q5 W, F6 w2 J) j case type 2 |) Y" @0 p9 ], L) i
when 0 #Mute
1 b# m2 o1 l2 j* I6 r return true if self.battler.state_mute
% _, v3 F, K2 E1 g9 j# c( m when 1 #Seal Attack
, M5 g3 P% S( S V1 E5 j8 | return true if self.battler.state_mute
9 i$ N8 U3 ^& w4 s return true if self.battler.state_seal_attack5 T" G; A2 a5 X% g0 u- f
when 2 #Seal Skill
3 L0 O" n0 O2 `& q- b return true if self.battler.state_mute + I( e- _5 ~$ n0 j t0 f! S W4 k; M
return true if self.battler.state_berserk
X' g3 [5 a/ e) _$ Z! Y2 A6 [8 v return true if self.battler.state_seal_skill D, ]6 }8 K& X' f& H: H& Z
when 3 #Seal Item
7 V/ J: C# _9 T! ] return true if self.battler.state_mute2 H: o0 k/ K, n5 I
return true if self.battler.state_berserk
) ?1 e0 @: B+ F4 R return true if self.battler.state_seal_item+ I$ i7 _4 w7 h6 U: r! q( K+ u
end+ o, Y/ Y& v6 N3 G4 `
return false6 f. {7 ?1 N6 k1 g
end . {5 I' v( |* A, l6 M' f% d: ~
! O; H, U: B4 Q4 p& U, _* {; h! j #--------------------------------------------------------------------------
5 {0 P2 e! i: W0 N u. } # ● Seal Text & d- [ R3 o9 i
#--------------------------------------------------------------------------" t: [8 }: [- }0 a q( w: t: |
def seal_text
8 @3 _8 d8 B0 {- S. ?7 q self.battler.damage = XAS::SEALED_TEXT
. E; y; T9 w6 ?8 c2 @9 S+ ^ self.battler.damage_pop = true
. [5 S1 Q4 Q# p8 [4 X $game_system.se_play(XAS::SEALED_SE)
7 g& l7 S+ T* u: d# a2 e" T $game_temp.clear_setting2 if self.battler.is_a?(Game_Actor)
$ ~) O& @* {- ~" K2 [ end , u3 N' K& Z: @% p' Q1 q G* ~2 y
% ^0 d* Z% k5 p5 t5 Mend
" w. Z! I; Y3 j) g ~#===============================================================================9 {. M3 b4 U: s2 [0 Y3 T
# ■ XAS_DamageStop
0 e( e2 ~: Q: m; c% J& F- x. C#===============================================================================
, z' {5 e8 O. S4 j. I* qmodule XAS_DamageStop
0 \: W1 i1 I1 I
% b+ t, x& b- A #--------------------------------------------------------------------------* ~8 A8 V0 C) w# b) P
# ● Actiong?# A1 X/ c1 d/ I& M, z
#--------------------------------------------------------------------------
, S7 I. k: e9 H: I! x8 g: d6 f def acting?& f: a, d4 T4 f5 h) t
return (super or self.knockbacking? or self.collapsing?)
0 Y$ u' ^" i# I end9 D# C a% D! t! y' }8 b4 {
end
/ j- T0 m& g* _5 B1 F" ~ \: w7 a9 U/ U: D
#===============================================================================
6 O* N# g; V# ^; v5 I; d7 U# ■ Game_Player$ V( F$ a* v* A/ ~' C
#===============================================================================4 h- K: ?: s- E# q/ G: D4 A ^* r( b
class Game_Player < Game_Character- t9 n# h+ u" D" u' ]9 S
include XAS_DamageStop
I8 v% ^, u( C& B% zend
7 f' |+ G/ L' W7 y/ C4 T
5 w# k+ t7 C- ~! t% w- K#===============================================================================( s9 [! a& \: L) z, l$ `
# ■ Game_Event
1 a# U0 U* a6 A+ m2 Z9 o& V: k# n#===============================================================================: G" `. g& I/ b: Q4 |& ^
class Game_Event < Game_Character
2 o+ [3 t3 w# ~$ M0 n include XAS_DamageStop
$ V. K+ _% D9 i. T1 Y6 D5 gend
/ m6 b! w) E; t. ~2 c
$ l3 N2 ` D8 [- x1 Q8 S#=============================================================================== E5 h+ L: D/ g2 b6 q9 j( f3 f
# ■ Game_Map
$ u+ J0 |2 R$ y: u. Z' j+ u#===============================================================================
# p5 x2 E; i2 q. e: y' ^6 j! Tclass Game_Map; R: a1 @7 w- C, A- f+ c9 a
) a# S( o4 Z% l5 g: X0 E+ B
#--------------------------------------------------------------------------- X9 F) z' t& Y1 B0 }
# ● Starting?6 y! E0 t/ O& H1 I' u1 U, m$ q
#--------------------------------------------------------------------------
+ P. ^1 v* _; s) y) b# h9 W$ G def starting?
, L4 ~4 E+ X( n7 [8 W K if $game_system.map_interpreter.running?
. c& r* a( a$ V: h1 o% t7 p return true( q! ?1 N# a" S" J% O# |! F* G
end+ J2 z3 R2 F; S: t
for event in $game_map.events.values
) Q9 C5 ?8 Q$ c return true if event.starting# W1 X3 Z& @' [1 k
end" E, p% A8 f" D0 |% T6 g6 S8 x
return false
$ ?$ O; k& [1 l2 V, W9 z, ` end
, f1 \. Q. a, m& nend; i) t$ m, V+ ^# `5 H
# d' U( L# |3 V- }9 e
#===============================================================================
) y0 D* }3 `7 J N j# ■ Interpreter
6 `. G4 |. @! `6 c6 ^#===============================================================================
; {5 J4 v% k7 Fmodule XAS_ACTION$ M1 s Y9 V! T$ `
; p$ i+ T& e# j6 I2 i; S
#--------------------------------------------------------------------------
/ \$ A/ d; d# K* E$ ?: L& e # ● Xas Z Shoot Bullet
B5 j# B6 t! g- i6 E6 O5 [1 P #--------------------------------------------------------------------------( j& _9 n, C* h: E* B
alias xas_z_shoot_bullet shoot_bullet* x* w( s8 q, I! R0 I6 H2 L
def shoot_bullet(action_id)
% W$ K2 s* m$ _$ D5 E: y, o bullet_token = xas_z_shoot_bullet(action_id)
5 S" }6 A8 X9 R% o: x- w4 r. c5 ^ return bullet_token! C- @1 c2 q( G* i
end" i u0 k6 |- v1 }7 S6 w
end
6 J d, @9 C& |* Y6 J# Y
' V" F$ V( e6 C' S# ^+ W#===============================================================================
Y5 f" }0 A% M- @6 E! i# ■ Sprite_Battler Fix
- |; K5 @. p* @/ l#===============================================================================1 u) z/ a8 {( q- K O
class Sprite_Battler < RPG::Sprite
$ {& m, Q, P2 r% o2 {. dalias xas_damage_update update
|* k, w2 N7 w. {* L) ]
, }; C" x8 M4 C# Q$ L4 ~5 p9 R #--------------------------------------------------------------------------
0 c" A$ i4 \" R, h # ● Update# i0 S% W/ i, `$ D5 u! L
#--------------------------------------------------------------------------
e/ l3 K/ _0 L; g. n; m3 ? def update/ w9 E6 k& y* b
super 6 h: V6 k0 k4 U8 R# D& \: I) |
if @battler_visible
; Y2 N. O7 Z1 M2 P if @battler.damage_pop( ]" o$ C' a2 C+ d7 o
damage(@battler.damage, @battler.critical,@battler.state,@battler.item)
% o0 i4 V) l8 j& s0 c0 Q7 f @battler.damage = nil
4 z; k. R b3 g& M- v3 C# Y0 j @battler.critical = false
8 f/ E9 J( z6 u8 m. P @battler.damage_pop = false2 K$ S* q* ?* w+ \9 F/ N
end
/ O9 I# h- B, P o end
3 f `, t. T2 s- Q8 Q- i7 h xas_damage_update
3 w6 ~3 `: b" m" ^- R end" C+ W' k' }' T; Y+ @+ S6 M
end$ w! a! ^: T$ }: |
[/pre]
; P8 [, ?. h7 b7 z0 \) K6 o3 ^应该没有问题的才对,替换XAS - Battler 1试下吧,
& g2 D5 o1 R) P. M我这里完全是正常的。 |
|