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

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