楼主: timmyyayaya

[已经解决] 请问是否有办法增加热键?

[复制链接]
梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
回帖
228
 楼主| 发表于 2012-4-15 16:36:27 | 显示全部楼层
刚才修完以后,一进入游戏角色就向后跳跃,接着就卡住不能动弹了,
4 |* y. B) m. ]) D3 a- ~4 h  L. U要修的地方应该都没修错。

点评

感谢您!  发表于 2012-4-15 16:47
有点小麻烦,请再稍候  发表于 2012-4-15 16:42
回复

使用道具 举报

梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
回帖
571

开拓者

发表于 2012-4-15 16:55:54 | 显示全部楼层
本帖最后由 ML4455739 于 2012-4-15 16:57 编辑 ' N0 j' ^0 Q. `) l% W. ?/ r. Y
class Game_Player < Game_Character
0 y" H6 y9 S. N7 j; I( M5 e #--------------------------------------------------------------------------, ?. L, B4 n0 Q% N7 \
# ● Update Command: F- u* Z( ]( ^$ K" j% t. _
#--------------------------------------------------------------------------  
8 F2 y* C% [% k: D/ W4 g5 z$ [ def update_command
7 ?$ r* v5 C  N7 `
在XAS - Battler 1的140行左右找到这一段吧,
/ m; V. F, ?3 R0 ?  @, Y$ h在def update_command上方加俩个
  1.     @hothey_skill = (Input.trigger?(XAS_COMMAND::SKILL_ACTION) or $command_skill != 0)$ S. o3 o" K1 j  ^9 s1 N
  2.   @hothey_item = (Input.trigger?(XAS_COMMAND::ITEM_ACTION) or $command_item != 0)
    4 y  V2 k/ t5 ~8 O: {, ~, O

  3. 0 |$ j/ d- u2 U! C1 b' L, Y
复制代码
然后替换elsif的条件,附近差不多改成这个样子:
  1. class Game_Player < Game_Character
    - @; _; Y4 p7 Q0 ]
  2.   ! I" U- `# ~+ u* \* |1 E8 S. V' ], t
  3.     @hothey_skill = (Input.trigger?(XAS_COMMAND::SKILL_ACTION) or $command_skill != 0)
    / |8 _3 A: c1 l& f: U4 W- c
  4.   @hothey_item = (Input.trigger?(XAS_COMMAND::ITEM_ACTION) or $command_item != 0)
    6 r: z+ C) K  P( u' h  N0 V

  5. ! q  M. m3 e9 E8 u. G" Z
  6.   
    $ g# S. E2 {& b5 I9 g5 Z3 n
  7. #--------------------------------------------------------------------------
    1 ^, r0 f3 z$ A3 i/ O0 _
  8. # ● Update Command
    1 [  `/ J; k, \, B" v
  9. #--------------------------------------------------------------------------  - q1 ]5 w0 D5 j( n4 F+ [6 p
  10. def update_command
    2 w8 B& z% S; X" O- x
  11.      if Input.trigger?(XAS_COMMAND::ATTACK_ACTION1)   
    ! _$ n/ O5 \  h' h6 {3 q2 V4 O3 }
  12.         active_attack #ATTACK    * k. p, G2 I4 _  ~$ I, A0 q; E4 p
  13.      elsif @hothey_skill3 _7 {7 j- v, d3 _4 u
  14.         active_skill  #SKILL  `1 `* C# g1 o
  15.      elsif Input.trigger?(XAS_COMMAND::ATTACK_ACTION2)
    4 N6 S! s" t) w# P
  16.         active_shield #SHIELD3 F' h4 g% ?3 Z; b. ]/ d3 l' {
  17.      elsif @hothey_item
    2 V8 v1 c& L: j! {1 x9 f+ {: p
  18.         active_item   #ITEM
    2 `! j6 a5 q4 Q! e" z* y
  19.      elsif Input.trigger?(XAS_COMMAND::DASH_BUTTON)  
    ' F( a; K  {0 F. W8 i
  20.         active_dodge  #DODGE5 K& q/ C' P4 Q& F
  21.      elsif Input.trigger?(XAS_COMMAND::SKILL_CHANGE)6 u+ {  N) |* M* A
  22.         if $game_system.quick_menu and can_call_menu? #Quik Menu Skill   
    7 l  I! V6 |6 Q, H7 `' v1 `3 j- g
  23.            $scene = Quick_Menu_Skill.new) Z  y# x" I4 P( Q$ A
复制代码
再试一下。3.91的这种结构对我这种脚本风实在苦手……
往事简直不堪回首,稍微做点想做的事吧
回复

使用道具 举报

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
回帖
228
 楼主| 发表于 2012-4-15 17:05:36 | 显示全部楼层
本帖最后由 timmyyayaya 于 2012-4-15 17:32 编辑
$ U, H& x# ~" }: I3 Y; c( t
$ V7 {9 [6 n  j" X所以目前XAS - Battler 1是修正成这样,游戏中不会向后跳了,
* `# t. u0 v  |/ V! L不过热键装上去后,发不出技能?
/ M% h# Z" @: ]/ C$ }是因为我原本15楼的修正拿掉的关系吗?
* c4 u( f0 k/ q2 |, h/ y9 d还是15楼的脚本已经不需要?
回复

使用道具 举报

梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
回帖
571

开拓者

发表于 2012-4-15 17:13:28 | 显示全部楼层
= =理论派吃亏了……
3 G) q4 Y& ]3 ]/ z8 ^  d6 O* _9 A& I- S& z0 K- R8 D$ @7 I
LZ你看这样行不,只复制个Data里的Scripts.rxdata文件给我," l! v* j+ h- ~( ?( c% d6 c
我想这样直接些,一点点看着改的话要浪费很多时间。

点评

OK!  发表于 2012-4-15 17:33
往事简直不堪回首,稍微做点想做的事吧
回复

使用道具 举报

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
回帖
228
 楼主| 发表于 2012-4-15 17:29:30 | 显示全部楼层
本帖最后由 timmyyayaya 于 2012-4-15 20:46 编辑
0 M! R( M. g  {! K0 X$ M/ D
5 P; d0 f. J7 o# U9 m好的

点评

没想到没办法夹带图片以外的档案…  发表于 2012-4-15 17:37
回复

使用道具 举报

梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
回帖
571

开拓者

发表于 2012-4-15 18:26:59 | 显示全部楼层
[pre lang="ruby"]$ {  F) P& ]2 q& P7 I. ^
# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■1 J$ n0 m# I4 x) S' ^
#===============================================================================$ {# H# S& E& H6 ~) T' J/ q3 g
# BATTLER / SENSOR RANGE / PLAYER COMMANDS / ENEMY COMMANDS
0 r8 T1 H) t! Z  }( r; e  y# q#===============================================================================
" X2 y! n4 O& d  t6 V, y* F# u" i# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
- e! ^9 N: h. m/ @& h; d& e  V
1 f! s* R6 ^/ s8 H- J' g- P, H+ ]# n1 s1 q! R' x' U, i
9 J# e* D" x: w

; @5 z9 w$ ?1 D  M#===============================================================================# y7 Y" L* o/ u/ b
# ■ SENSOR  3 s$ _; Z5 I5 ]* _
#===============================================================================% V3 i! `& m3 N' t
module XRXS_EnemySensor
; q/ T9 y6 d9 X4 p  7 ?% K  {! p/ U0 l$ Q6 ]
#--------------------------------------------------------------------------
; s1 K/ j9 K3 Q& f& J # ● Update Sensor3 H% j  @6 Z& Q2 |; e6 f1 r
#--------------------------------------------------------------------------. D* D( g3 M- J! e+ U
def update_sensor
7 [% J% l: a% X& C  N     return if self.dead? or self.erased or self.tool_id > 0" N6 n8 Q; s/ k5 Y6 @
     if self.battler.is_a?(Game_Actor)) b6 H/ n4 f$ X! Q  g/ m  H
        enemy_sensor = 4
" Y2 i  Q9 v) J2 m$ R+ l) t     else
" ~/ x; p) T( n% j        enemy_sensor =  XAS_BA_ENEMY::ENEMY_SENSOR[self.battler.id]
! J7 G) f8 D( o+ {7 k+ P" y     end  0 X2 h0 q7 K( Q% ?6 s
     if self.battler != nil and self.battler.sensor_range > 0  
2 R, T0 x+ D( ^        @sensor_range = enemy_sensor  
$ L( T; L& ]# q9 S" `+ L. u* d' B     else  , r4 c  @, K* p. X
       @sensor_range = $game_variables[XAS_BA_ENEMY::DEFAULT_ENEMY_SENSOR_VARIABLE_ID]
4 f: R  }- y# V! L% o! C     end     4 ]0 L' U+ Y0 u
    @sensor_range = -1 if self.battler != nil and cancel_sensor?    6 ~( V4 q6 j$ u: ~8 Y, [
    distance = ($game_player.x - self.x).abs + ($game_player.y - self.y).abs
2 I. Q) d* A5 A$ y5 d    enable   = (distance <= @sensor_range)$ s& W) ^4 a: }: K  s8 _6 b. b! w7 S  w
    key = [$game_map.map_id, self.id, XAS_BA::SENSOR_SELF_SWITCH]
5 i: s! ~+ i6 i( t. l    last_enable = $game_self_switches[key]/ [* n% g3 p& M* K7 H+ E
    last_enable = false if last_enable == nil4 k# p, u) T. a: Q# h
    if enable
1 z9 a8 N0 r0 B       self.range_type = 0
) C& w8 z% w. g/ B8 `, i) U3 I    else  
. H; Y4 V& I# F9 y, m1 Y       self.range_type = 1; |& W. M; S  e$ P* E- u
    end      
- }' e% K7 n5 ~9 {& D    if enable != last_enable
! r/ j0 j2 i$ I! X1 \: F       self.action_times = 08 T, Q! R8 v- [2 P' ]
       $game_self_switches[key] = enable. Q, G) A6 A8 i' A. A
       attack_off if self.battler != nil- o* P! S2 ~6 B+ X6 m
       self.refresh
5 _0 Z2 W$ ?* L6 f, W    end7 h. q  G; Z; }+ z6 p9 S
  end: P. H4 L# u, r4 D% |, I
  
, F) C0 l' C4 z* B- K/ k1 A #--------------------------------------------------------------------------2 |6 u+ f% l9 _2 H
# ● Cancel Sensor6 @1 x: t/ u4 }3 ?' C& z
#--------------------------------------------------------------------------
3 Y. w% F" o$ d+ o def cancel_sensor?4 S) S" A& Y8 F0 O: W" F* A4 m
     return true if @actor == nil 5 w% s. |7 M$ a9 i# E; o
     return true if self.knockbacking?
% Z7 L, ~# ^2 }" N) x, g     return true if self.throw_active
% R& H: N0 s0 B6 G0 A     return true if self.battler.e_passive
: g% j+ @0 o3 j9 B; t) Z5 V5 }% \     return true if self.battler.stop: o/ h, i& A0 M
     return true if self.battler.state_sleep
, D, n" _' q- }. M# ]; e# k     if self.battler.sensor_range < 15) o; b7 c: ]2 W2 p7 M/ Y( K* F
        return true if self.battler.state_cancel_sensor
: e1 x4 w3 H% U# g6 g+ q, o        return true if $game_player.battler.state_cancel_sensor
& P$ k7 j  Q* |) y$ M, j1 W     end! Z2 Q9 F/ c) W( Z6 X8 E3 {
     return false
! h+ e6 X( C8 K& q) A end; ~- m5 O1 S" H5 r7 n0 g" M8 O
end   " Y0 o& {0 d* [0 ^2 ?6 {! c. c1 s
6 V7 _, U+ w5 l4 {
#===============================================================================& f! d! H4 Y9 q$ d' ]
# ■ Game_Event
  V# \5 f: m1 e#===============================================================================* T/ z' i* D$ ]' l3 t; f$ J: ~' I% F
class Game_Event < Game_Character9 x1 Z: W( o6 n+ {5 x3 F
  include XRXS_EnemySensor* g% q* w  N$ x6 [: Q( B
end! I3 ^/ {$ ~; O; ~

. d  ~* }8 y8 K7 B
$ ]) j) i8 I$ t" e9 O0 o1 B
- M) [6 o) \* s2 |/ s* \# h4 w, J0 i8 {* t( D, [* G1 F
2 ]6 h3 Z" c3 s# O6 V( p3 e, ]$ @
#===============================================================================
$ @, H! I) Q  C2 y& R2 ]# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■+ m5 Q9 j$ _) H; Y. y- ]1 M
# CT METER
, B- H& @0 v8 A/ z8 P# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■4 K- w# R1 s# s& k
#===============================================================================
. B, U5 F2 x& @0 A+ U% i4 x
! o  R  u8 O$ _$ I  L; h# ^#===============================================================================
& b6 Q) y. ^0 |9 p# ■ GAME_PLAYER
, u4 A" u% i, K& q#===============================================================================
7 L6 s8 M0 H4 z$ o, yclass Game_Player < Game_Character& |4 {. H  X# p0 H

/ t7 C( _1 i% I) O% B9 l #--------------------------------------------------------------------------
+ d2 H; o& O0 G3 L4 Y+ b # ● Update CT Meter Speed
, @8 l& K9 |" j& U) } #--------------------------------------------------------------------------
9 R/ U; b; Z2 p( Q* ~$ r  def update_ct_meter_speed& K' Z7 g& t8 \
      return if $game_switches[XAS::CT_DISABLE_SWITCH]! m. j4 p9 h/ m  M3 ]
      if self.battler.state_ctdown
: S: P( S6 j$ z8 J         ct_meter_limit = XAS::CT_METER_SPEED * XAS::CT_POWER  1 x5 _2 Y( w9 O3 G3 A9 l
      else
  R5 A: ]6 c) F4 F         ct_meter_limit = XAS::CT_METER_SPEED      
/ H* R- N  C1 l9 N! j/ w$ m4 ^: L      end   2 ?/ m% m* u+ Y
      $game_system.action_meter_refresh += 1* E6 J4 s) b) `7 K$ Z' J
      $game_system.action_meter_refresh = 0 if $game_system.action_meter_refresh > ct_meter_limit   
( x8 |6 ]( N( y6 {# D      if self.battler.state_ctup6 I, r/ H" S; B: {
         ct_speed_down = 1 ; ]0 @. d) I7 }2 x2 `
         ct_speed_up = XAS::CT_POWER% N5 L7 j& V6 @# y7 \
         ct_speed_up = 0 if $game_temp.xas_charge_time > 5
4 s. O- o  T3 Y  ^# f- B4 j      elsif self.battler.state_ctdown: v: x# ]/ D, H
         ct_speed_down = XAS::CT_POWER
$ I9 `# o' w1 l! [         ct_speed_up = 1       ! b7 S2 u  L9 D  J- Y% X; ~4 m
         ct_speed_up = 0 if $game_temp.xas_charge_time > 5  `- D; j, k0 F' }, q' T6 k9 h
      else
: z" Z6 t6 |; N; E6 \( n7 I         ct_speed_down = 1
- `4 @  W3 ^1 t  P5 P# v6 w3 h         ct_speed_up = 1
7 a5 H9 w- t  f         ct_speed_up = 0 if $game_temp.xas_charge_time > 5
" ]# B" h' _1 Z" ^       end         
" B7 L6 d7 r5 l& z' l       if Input.press?(XAS_COMMAND::DASH_BUTTON) or can_shield?(0)           
9 ]( L) a6 U7 j: j* v# L           if $game_system.action_meter_refresh == 0
1 R2 @' X3 p( y  w5 l* q0 J/ F7 x+ H              $game_system.action_meter -= ct_speed_down if $game_player.action == nil
- W; u/ r2 X7 Q% E- V( B           end
( L# `: x  u- j% W       else   
$ J5 r( O1 e' z9 j9 ~( a5 G           if $game_system.action_meter_refresh == 0 and not can_shield?(1) % r! b+ a3 n+ L+ Z$ l
              $game_system.action_meter += ct_speed_up& q; Q; X( ?( r% e. y) I
           end$ n1 l; W2 f! g6 _
       end
0 ^+ {% J! Z0 O% R4 t& ^  end   4 {8 W9 g9 z4 l1 b9 d. B
     4 ~: V7 P2 V6 f- s
end   
" u9 o; z4 }: t0 ^8 l6 y) N7 \+ u  |2 g6 D1 w/ M! W/ W
+ V5 a/ S1 ]( ?- m
2 _0 n: a! c- w. Y+ L7 o  Y+ r
' ^2 E5 N* C" q. K

1 G. o& F/ B* ]
3 G/ t. s8 h$ E: A# f5 R' k- _6 [4 K7 H& N9 B' I# g( P
# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
; f5 X0 d5 v, G' B  Q" Z4 l#===============================================================================; S- }9 o- g6 l
# COMMAND
! {( D, |$ y( p0 Q#===============================================================================
8 J  A6 O5 h' K) ]: a# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■9 P$ N- f2 G) \0 A% p

# U  W5 g( j# P( rclass Game_Player < Game_Character , H& r6 Z6 G1 o- _
#--------------------------------------------------------------------------
0 n  y; n5 f3 E # ● Update Command
: h) P; Y4 [& p* X$ ~5 u1 {; p #--------------------------------------------------------------------------  
) _# |+ t" a% g& i' t8 i def update_command- ]/ ^$ S  N4 K0 l4 q. `* I
     if Input.trigger?(XAS_COMMAND::ATTACK_ACTION1)   
2 D4 U( g1 ~( v        active_attack #ATTACK    ) l/ Z+ C- Q: A
     elsif Input.trigger?(XAS_COMMAND::SKILL_ACTION) or $command_skill != 0
5 n9 `# e8 q# S% b4 m( |: n, p        active_skill  #SKILL" }$ F  _% ~; i9 b) U) S7 @! @
     elsif Input.trigger?(XAS_COMMAND::ATTACK_ACTION2)% V& O+ X7 B9 ^# g7 L
        active_shield #SHIELD+ w) `- P/ k' X1 g$ r& d$ }
     elsif Input.trigger?(XAS_COMMAND::ITEM_ACTION) or $command_item != 0) h5 H, o& f9 C, [( F! F
        active_item   #ITEM3 ?4 G5 _: g# M  P' J+ q8 j) X4 U& r
     elsif Input.trigger?(XAS_COMMAND::DASH_BUTTON)  
$ ~" j/ @& @( E        active_dodge  #DODGE
* \( ?; X( f5 I: o6 F0 f9 c8 V     elsif Input.trigger?(XAS_COMMAND::SKILL_CHANGE)
+ f+ }4 N& U2 f2 V0 @        if $game_system.quick_menu and can_call_menu? #Quik Menu Skill   
1 A9 c( l$ J, i* D7 ?  r           $scene = Quick_Menu_Skill.new
' u; X3 G2 S' [5 l        else 5 ~  b5 s8 {3 U  `! @
           active_change_skill #Change Skill   
) D4 K; N- V, ?        end  6 C) X8 N# z, ^& ~# H: u8 R
     elsif Input.trigger?(XAS_COMMAND::ITEM_CHANGE) * E- _0 H: q; n4 G# g; S& z
        if $game_system.quick_menu and can_call_menu?    % A! V  ?2 ~1 T: N* {  e6 r" }! M0 R
           $scene = Quick_Menu_Item.new #Quik Menu Item     5 I0 l/ H% ~( J- r- W+ Y/ @
        else
  `* s& f* p. b7 R5 w+ z2 J           active_change_item  #Change Item    / ^+ q" ]5 G1 \$ h2 K3 n) Y+ B
        end  0 P8 G8 d+ w3 [- u
     end        & t9 I1 s" U, A; ?) x1 x  k; e7 }! |
end    5 P* ~; o, W5 W
  
4 h  S; j/ d' k+ d/ z- N7 P. P #--------------------------------------------------------------------------
3 S3 ?( C9 }5 e, m/ a% ]- ?3 _ # ● Can Action
& K8 q: n. ~, g! @7 F1 Y; F- W/ i #--------------------------------------------------------------------------+ p6 f8 o7 h1 h7 T4 \
  def can_action?% R8 K1 X( p1 }$ a" Z* g2 A% O" f
     return false if self.action != nil
" \) e( @- l+ s. P$ g& `6 E& m* P2 ~     return false if self.knockbacking?
; {+ s5 s" O+ }5 X) l8 m2 _     return false if $game_temp.xas_charge_time >= 10/ }6 o/ E& ]) J  d) `; k7 v. P
     return false if $game_temp.cast_time > 0 " ^4 ?0 N& b! t+ c+ q- m% z& h6 c
     return false if jumping?0 C; H9 H0 q# i; k* K/ \
     return false if $game_switches[XAS_COMMAND::COMMAND_DISABLE_SWITCH] == true; a6 b% i8 g* ^6 v" E4 R! W* s
     return false if $game_temp.lock_command ! j6 T$ O+ p+ E/ i2 X, X! \
     return false if $game_system.fly
  T; ?. b2 y. C' s* s' H, a9 Q     return false if @swimming
0 |4 X- b, r& {6 S- N; W! d     return false if @pickup_lock + h$ s) b1 {$ N9 _  v
     return false if @pickup_lock_time > 0      9 k# A7 u9 t: t  I% F4 b
     return false if terrain_tag == XAS::FALL_TERRAIN and @fall_safe_time == 0$ ^5 \7 d4 V; K
     return false if terrain_tag == XAS::SLIP_TERRAIN      2 x3 |4 Z1 X5 I
     return false unless $game_temp.hook_x == 0 and $game_temp.hook_y == 0     $ i/ ~7 L8 }' B9 I
     return true
1 {, ?; S, n7 j9 x  end 1 t8 q! |1 G, E- F4 R: i" P& g/ ?
: Z- R4 j* d( ?4 B% ?5 ?6 }
#--------------------------------------------------------------------------. D# l1 ^% G% J6 @5 m
# ● Check Combo
/ X: S* z: }7 E% a( ]5 a( O#--------------------------------------------------------------------------1 g" d3 o1 e6 f8 f8 l5 d
  def check_combo(action_id,type). G, Q2 o4 U/ V
      combo_id = Database_Bullet::LINK_ACTION_ID[action_id]      
' x* U- J( {9 Y( l      return false if combo_id == 0
( _5 ?0 V" c% h1 w      combo_time = Database_Bullet::SUFLAGS[action_id] + XAS_SKILL::COMBO_TIME   9 `; }! f* Y' u3 V% u2 {. \
      case type
' [' u, S& u' K, q         when 1 #Attack
( z" W  B- m* Q              $game_temp.xas_combo_attack_id = combo_id
# C- w! C" n8 w' i              $game_temp.xas_combo_attack_time = combo_time: s3 v& z7 ?1 @& X( W/ g0 u+ L/ y% f3 w
              $game_temp.xas_combo_skill_id = 0
& q  m) [6 C; O$ Y$ v7 B" ]              $game_temp.xas_combo_skill_time = 0/ C( A' A% H4 P: s
              $game_temp.xas_combo_item_id = 0
' \2 Y9 T. t8 _; o: Q& c  Y              $game_temp.xas_combo_item_time = 0        
: ^7 ]# {6 ~8 }, {& L# Y- E6 _5 P         when 2 #Skill' H1 `* `% e" ~/ ~: N7 I9 y
              $game_temp.xas_combo_attack_id = 0! A7 Z1 r9 ~) h
              $game_temp.xas_combo_attack_time = 06 R5 R1 ~  a; q  v
              $game_temp.xas_combo_skill_id = combo_id
! \% F+ q) [) X0 A0 S" P              $game_temp.xas_combo_skill_time = combo_time2 P- B% O* m1 I" x
              $game_temp.xas_combo_item_id = 05 w( i- p* D* g) U
              $game_temp.xas_combo_item_time = 0            
9 n" J- ?) O/ B# i7 }1 X" K         when 3 #Item
9 G/ W8 N' X$ R9 \3 L, }7 O* s* l              $game_temp.xas_combo_attack_id = 0
3 c, U2 ~* L  f& D              $game_temp.xas_combo_attack_time = 0) W" J- Y: t3 Z) V
              $game_temp.xas_combo_skill_id = 0
- J. S+ y6 Q6 P, ]              $game_temp.xas_combo_skill_time = 0, r! T- x/ c6 F  f/ X
              $game_temp.xas_combo_item_id = combo_id : C% b& F% U# z
              $game_temp.xas_combo_item_time = combo_time           
2 }* S2 X. h5 ?      end         
) U- s" |  e' Q7 [  n% x  end   . d7 k; T2 t# K
  
: U( z: w0 r* ~9 @3 b6 j" a; ]#--------------------------------------------------------------------------* F, Y. T' u+ H
# ● Cast Action ?
6 B- E& s8 M3 _, H#--------------------------------------------------------------------------6 d8 {' b) _, o& P" j! ], g
  def cast_action?(action_id,type)
/ J: V* n' c6 K      cast_time = Database_Bullet::PLAYER_CAST_TIME[action_id]
- E: L" |9 S0 U/ I$ C8 _      return false if cast_time <= 00 _( D' Q: o: _1 g  U
      return false if $game_temp.cast_skill_id != 08 U+ s2 d' w" D. e  Z' A, A! ?+ ?" b
      return false if $game_temp.force_action_now_id != 0 or $game_temp.force_action_id != 0
- A9 l/ a" z  L7 p      $game_temp.cast_type = type
! {$ G3 i8 f' p8 y) Z: p' z      skill_id = action_id7 I2 `5 z% D) Q' f5 v7 \3 k
      skill    = skill_id == nil ? nil : $data_skills[skill_id]
& G+ M. K. d; M8 N% |8 Z$ a4 m      sp_cost  = skill.sp_cost         
8 c' X8 P" N& N/ N$ W$ R5 H  j4 r      if @actor.sp >= skill.sp_cost/ G# F% m. S1 c
         $game_player.animation_id = XAS_SKILL::DEFAULT_CAST_ANIMATION_ID         ; Z! d( Q2 L0 S
      end # I/ \! l. k6 T5 M1 ^
      $game_temp.cast_skill_id = action_id$ u( H% M* H8 Z7 P- K1 c
      $game_temp.cast_time = 10 * cast_time/ L# ?3 v+ s2 g7 N% ]5 w2 D. G( h
      return true      
- l- c4 R# H' m5 K) T9 w/ u: g) k  end
' g8 t: Y2 J0 f  Y, J) y: \  \3 Z, |- W" {* s1 D! ~
#--------------------------------------------------------------------------' H  G& j3 S8 Q% y2 k+ ?
# ● Can Target?
# ]# i  x  _) v- }: c$ E7 f#-------------------------------------------------------------------------- + I) r: ]% s; @  f
def update_shoot_on_target
+ {! y; m4 E; }# B) G1 x1 Y  ^/ U7 G     return if $game_temp.xas_target_time == 0
+ D9 T% g: m  X6 V9 h     return if $game_temp.xas_target_shoot_id == 0
# m' Q  a5 Z3 O  Q- n' {  J     return if $game_temp.xas_target_x == 0 and $game_temp.xas_target_y == 0   
: ~# z* p  \' s  M5 p     $game_temp.xas_target_time -= 1" }1 Z7 x9 G" ?1 y
     if $game_temp.xas_target_time == 0
$ ]' M. g# ~7 @) h7 n" s% U        self.shoot($game_temp.xas_target_shoot_id)
! X0 B3 [9 x6 e! O  C4 |        $game_temp.xas_target_shoot_id = 0
% R& k& d, L" s% }5 q     end   4 _8 t; X0 n3 S& C: @* Z4 ?
end 3 f' K5 ?8 i/ i: i+ i4 [3 }) O

- k3 r3 e/ t# i8 Q#--------------------------------------------------------------------------5 O5 E; Q; m1 {# \! k7 Q6 M
# ● XAS - Button SKILL' w% j$ o! k' u3 b
#--------------------------------------------------------------------------
  t4 A$ s! S4 r8 R  v2 ^% w5 a, n  def active_skill7 K$ j1 h5 w) c5 H- a4 @
      type = 2
+ l3 G9 Q6 d7 o8 ~$ n5 L      if seal_state?(type)   
/ X/ R2 Z/ [% S( y6 I8 F: \         seal_text$ H6 P' @0 Y7 _, m3 |2 j
         return
( [2 d9 q' ]2 D* M; N      end
$ r7 u& K5 {6 g* m/ `0 ^+ {      if $game_temp.xas_combo_skill_time > 0 5 G6 K/ l! T$ k4 m) n' C
         action_id = $game_temp.xas_combo_skill_id" F5 o7 {' Z! w) S9 L1 N5 K  h6 L
       else+ k6 a& R7 _, z- I% O7 o
         if $command_skill != 0
* h* b9 Y/ o4 x4 f% }! ?3 Z$ U         action_id = $command_skill;$command_skill = 0
, v% s5 o& F4 M2 c         else; [6 I7 E! C: G2 s
         action_id = $game_system.xas_skill_id! I" T2 |: N4 D" l) Q* z# o
         end  i& U5 f$ [" w0 |* L
       end# z0 Q. i. K% x, z+ U6 ]) s
4 U! X: X  S. z; R
      return false unless check_action_exist?(action_id)      
& G5 z. K0 Y0 Q6 C/ t; T: h8 j# S      check_combo(action_id,type)
7 g; f7 s8 F" h% \      return if cast_action?(action_id,type)  
+ i3 o1 I2 _1 V* A8 ~3 g      self.shoot(action_id)
8 Z2 E  Z+ P+ P3 ~9 W9 `! p" \  end  ! [8 G( m) [; t' i% n5 N$ F

6 y9 }6 s' C  z3 o0 m# X% o) u#--------------------------------------------------------------------------$ I" R! P, Q- x3 d6 y- ~3 U
# ● XAS - Button Attack
/ J0 S, ?7 b, j# W# u. m9 i7 f: @#--------------------------------------------------------------------------1 R! H, I3 o, n
  def active_attack
0 a$ _) f, r4 k, s' I      type = 1
$ V+ o3 H0 c5 l1 d5 x      if seal_state?(type)   
# a# J- a) A- |# W" @  ?  e         seal_text; I0 j% S8 C$ V; ~- s  q# c
         return" a/ x6 g3 N) ?% }9 O" l
      end       * M$ j( }7 z' U6 V: A, D9 F; p
      if $game_temp.xas_combo_attack_time > 0
5 G2 I- `: `1 ~# t+ [- |' k( s         action_id = $game_temp.xas_combo_attack_id' M0 r3 @; Q7 X+ y% n
      else
: p  M% J0 N4 O/ q' C         action_id = $game_system.xas_action_slash_id
. `! }( l7 {- ?9 c, g. q       end
6 ^& [( K: l. h3 e2 Z      return false unless check_action_exist?(action_id)       # F7 H! l1 t( j$ M! p1 V
      check_combo(action_id,type)
5 z) T/ Q; k! q4 u: ?: r% ?      return if cast_action?(action_id,type)  
" w7 {" \, m( d      self.shoot(action_id)   
8 c8 u4 J/ l5 T& r4 ^* |  end  1 D) _5 C2 |, m- ?3 g

7 u2 t) b5 x- ]/ }! A5 x#--------------------------------------------------------------------------
5 V  Q$ x$ `2 E. V0 \" K6 `# ● XAS - Button Shield3 j; C% |( B& \
#--------------------------------------------------------------------------1 P& q) R5 V1 S/ N
  def active_shield( t. J. j0 Y9 k
      type = 14 d9 ?, a; N8 x2 l
      if seal_state?(type)   
$ }6 U' j' I4 w. ^+ b. C9 i         seal_text
; W9 m8 j' n% F6 h2 M9 f         return
: ]9 }) ?" M! a; _! ~2 p      end            ; X0 ^- h- o; N+ n( D
      action_id = $game_system.xas_action_slash_id29 M1 a2 O, E3 U, R5 n8 l$ C9 ?/ W
      return false unless check_action_exist?(action_id)     % \9 i' B% F& }  [- J, C
      return if cast_action?(action_id,type)      * Z, a' }" i  ?6 @* g2 I! z
      self.shoot(action_id)      
0 S" `5 T: T2 o6 e  [      $game_temp.clear_setting35 V/ n8 ~# S8 n6 B" W  Q
  end
2 @; \7 ~! Y' u1 y, }0 P& ~  Y4 @4 I2 E- W
#--------------------------------------------------------------------------
# j/ A5 T) C! a! g# ● XAS - Button Item; w) i! S/ D& q2 d' X
#--------------------------------------------------------------------------) i5 n$ ^9 I. `6 g" Y# K8 b% D) v, f
  def active_item# h2 A/ C6 L" M0 `3 u8 d. I. J2 A
      type = 3: R( Q7 E2 m1 A' H+ ]0 f
      return if ($mog_rgss_xas_extra_skill != nil and Input.press?(Input::L))8 _& r. Z  M$ f  ]+ G# d9 e1 y
      if seal_state?(type)   $ T7 |2 S2 f' a) U) S, X* A
         seal_text) E: Z; r! A% k$ v5 ^( q" E% D
         return
9 s0 n/ \/ u1 ?& K      end          ( w6 a! o* R. R: R$ f
      if $game_temp.xas_combo_item_time > 0 % M. J, _# J/ @, B
          action_id = $game_temp.xas_combo_item_id6 E+ T! B6 n* }( O
        else& G( o* y; _! I2 _
          if $command_item != 0
( B' t- _& Z# f& b: ]2 g" ]" y% r) @            action_id = $command_item;$command_item = 0
+ M/ x& x' w( p3 q  F          else6 m/ t5 Q6 z( \
            action_id = item_tool_id = XAS::XASITEM_ID[$game_system.xas_item_id]            % D, K3 ^! a* {' U) j5 m
          end  T) [9 m# b3 ]8 T' o
        end/ L- Z% V9 ~+ z" B
      return false unless check_action_exist?(action_id)     , H/ H7 m+ N  F& l
      check_combo(action_id,type) ( @. q" D" B" e. ^+ O
      return if cast_action?(action_id,type)   
9 D# m  {3 n% ]9 p6 `* b      self.shoot(action_id)
" b3 Y  W( ?8 d9 W4 X0 X  end  2 E! v( {3 p2 v6 S
: E1 [0 V$ B3 D! i: m( k
#--------------------------------------------------------------------------, [$ u( x7 T% a* @! }# a
# ● XAS - Dodge Efect+ [. F$ S9 j# L
#------------------------------------------------ --------------------------
+ I$ Y& \8 v6 } def dodge_effect - f% V% N  o* ~# X' w
     jump(0,0)2 w" Z$ O; _( j
     @need_refresh_pose = true
+ r. T$ _  X+ B3 Q) ^     $game_temp.dodge_time_real = 15" E/ }$ m( R8 f" D8 n2 ]! y
     $game_temp.lock_command = true
/ S4 v- b9 W+ A% H     $game_system.se_play(XAS::SE_DODGE)9 O& {% C2 D% E' x! e0 c
     $game_system.action_meter -= XAS::DODGE_COST6 V! N5 N+ X; R9 J, l0 |
     $game_player.animation_id = XAS::DODGE_ANIMATION_ID     7 \8 u0 V  Y) P, `4 y0 m; L+ P2 H
     power = XAS::DODGE_RANGE      # e" J. a) g- p  V9 C
     power.times do1 d: \; n7 e: W" T; P  H4 I8 t0 L- D
         move_backward
! a7 {. P6 W/ g" ?     end
! P; U' j, T+ ^4 c" ?% L# u4 L6 O end  : l+ K# C% N+ c; c. \9 m) W
2 H- u; D, I, _7 z: C
#--------------------------------------------------------------------------
3 x( \. s% g. l+ y+ |8 X # ● XAS - DODGE
6 X* T" I+ W/ V, } #--------------------------------------------------------------------------
3 Q& D* N& L' y" ]% @6 V; J+ x def active_dodge   
, c7 v6 d/ O) I; k! \9 s5 W) a5 ^2 g. i     return if XAS::DODGE_SYSTEM == false ' [- y' J- x- l5 B5 j3 S
     return if $game_switches[XAS::CT_DISABLE_SWITCH] 5 h+ ?  K/ p3 A( J  U5 l! b0 y
     if $game_temp.dodge_time > 0 & n+ U) n0 c# ^  o' x: B
        if $game_system.action_meter > XAS::DASH_ACTIVE_PERC      
- s  ?) o$ |, h% W& A           dodge_effect    H& l& t: p4 T- q% w/ E
        else% y, _' Q" b  g7 \- K3 P2 [; f0 L: U
           $game_system.se_play($data_system.buzzer_se)      
7 {: l( S0 F4 r6 {% H! L0 |3 a5 h        end
# q! b9 z! a2 A/ g3 W        $game_temp.clear_setting2          7 F( g  a. g8 H; ^( |( ~/ L& V( |
     else  
: \/ c3 S4 h4 v$ Y0 k3 y6 _4 A0 m        $game_temp.dodge_time = 15: p6 J: M: k8 \, m: \+ R
        $game_temp.dodge = true         
) z/ p3 |0 H6 O3 b% P     end  
, O4 H$ O; ]. s) Z3 L" n end# R6 i5 Z" O; L1 I9 H" F
     # Q& w8 v/ \. S" a6 o
#--------------------------------------------------------------------------5 }! f8 Q6 S( e. @- M
# ● XAS - CAST TIME
/ o5 X  g7 B" e- {/ m/ V#--------------------------------------------------------------------------5 ^6 w) I+ _" e' i
def update_release_cast_action
/ f! @4 }* e" C1 w  o* y1 J    if $game_temp.cast_time == 0 and $game_temp.cast_skill_id != 06 B- p! ]' K  D1 v, r& W& a
       if seal_state?($game_temp.cast_type)   6 V% `5 x$ q! \) [7 w( `
          seal_text
. Y6 g  D6 |9 ?$ ~" r, n1 N( I) Q          return
: X3 V+ o" {1 t" M# }& b       end            8 ?/ r2 @5 ?! h; q0 F$ S! y$ Q
       action_id = $game_temp.cast_skill_id6 ^% H. @; L( w# K9 f" g
       force_move = Database_Bullet::FORCE_MOVE[action_id]    6 n: r' X$ H$ e
       @actor.hit_it = 1 if force_move != nil; r3 X" ?! C$ A- q* x, b
       self.shoot(action_id) 0 @6 W0 ?1 L5 j4 Z0 }
      
$ Q" r8 M9 I) K       $game_temp.clear_setting2   
  \3 v" b2 [$ G, q* D+ N     end  - ^9 z) @0 v1 E% w. V9 H( u
end  6 d% p& o- g8 I' U( H2 F. L9 K

9 @" ?' D' ^0 E/ x#--------------------------------------------------------------------------% N* V2 T: i3 O
# ● XAS - Change Skill) I& |8 @+ A- ~( p' f
#--------------------------------------------------------------------------
% C1 n! b! E1 s! A! m6 l/ @  def active_change_skill+ b4 W$ o) O! u" _' P  ^
      @data = []         0 T. ?# G" A7 m# V
      for i in 0...@actor.skills.size- h: j8 W9 d9 x2 c4 b* U; b1 b
         skill = $data_skills[@actor.skills]5 i; b$ I* A( V& {. }. t. \3 C5 A
         if skill != nil  o6 m( \0 @9 s/ I7 l% B' `
            @data.push(skill)# |, R# @5 h" [  y+ d+ K
         end4 `0 n. e# v! D7 x0 I9 @
      end
- b' g: |# e/ K9 _* _5 @      if skill == nil' M6 u) Q/ T$ J, |. t8 C$ Y) s2 U$ o
         $game_system.se_play($data_system.buzzer_se)  : D% Z6 e% f( w/ Z. W7 O! J
         return  9 k$ b$ P9 F% L  Q# `0 a/ F- h1 P
      end; {: S" |6 o9 f- j, `
      $game_system.xas_skill_index += 1
: Z$ s3 @* K7 |; ~; N) C1 i% l      if $game_system.xas_skill_index == @data.size
% y1 O6 Q9 c$ p         $game_system.xas_skill_index = 0  : O' c9 r1 G1 e$ V8 ^
      end0 h# Z) _/ U% E0 M, I0 {/ u# a1 K
      skill = @data[$game_system.xas_skill_index]- h) n1 i3 [" ?% q. A
      skill_action = skill.id
6 {( L: f2 f0 L+ j      $game_system.xas_skill_id = skill.id
+ T1 F. R6 m1 ]/ H- q      $game_system.se_play($data_system.cursor_se)( `, Y* ^- c6 H7 y2 f+ x) K1 `: Y
  end2 R3 y. d+ r8 J% k7 T' k
  * [( F8 F7 n- h8 U9 M6 v7 W
#--------------------------------------------------------------------------* G+ O& V& y7 v. }4 ?; ?
# ● XAS - Change Item2 q8 ?) V7 x- j. o) H8 J
#--------------------------------------------------------------------------  
/ j& h, s4 x, A+ v  U  def active_change_item
1 G/ c' C4 [6 v) J. Y9 x  d0 W      @data2 = []
9 S7 ^( T0 b, Z* C5 N5 l      for i in 1...$data_items.size
% B- R+ S; W1 h3 T. K! m) p          if $game_party.item_number(i) > 0 and $game_party.item_can_use?(i)* {# }; O! B  I& Y, N' ?
             @data2.push($data_items)) S1 w" z( u0 s) W+ C5 `
          end# y% e  G# ]6 R& _! k% t
      end          7 t; s: N3 k' F  R. k) a, s3 k
      item = @data2[$game_system.xas_item_index]
$ M1 b; H1 A7 t% P' k# A      if item == nil
  `. n( }" ~) F- p5 y0 J         $game_system.se_play($data_system.buzzer_se)  " C2 I) `# }/ W; p6 [: _" x
         return  
2 U7 A% R0 h: B1 x1 w- T      end
) J0 R9 ^5 \! f5 K      $game_system.xas_item_index += 1
; E* @! J" c. N1 \! S, v& J- T      if $game_system.xas_item_index == @data2.size
9 A: ~  w  K2 |7 O: k1 Q+ b+ ]         $game_system.xas_item_index = 0  
! [- j; i+ i) I( |! b9 _# I      end3 p; R. T: z- q; {) U& L# c8 @1 u
      item = @data2[$game_system.xas_item_index]
$ {0 \' x" ~  o      item_action = item.id
) \2 R# K( \( P* h      $game_system.xas_item_id = item.id
5 c+ p# a! {) [3 t      $game_system.se_play($data_system.cursor_se)
. H8 r. W! n$ Q% R8 F5 K  end
: j9 j' I: B$ a  `( m1 g0 Y6 g) }+ Z/ \
#--------------------------------------------------------------------------. y) p/ c+ z. `5 R2 G
# ● XAS - Force_Action_Now
2 [. J4 z7 C7 z9 ~, W' I* c4 v#--------------------------------------------------------------------------
4 s8 a' T; {* B% Tdef update_force_action
9 O( c- ?' b, p6 W! D- O* e* y3 S2 P    if $game_temp.force_action_now_id != 0 and not: Y$ v" ^; ]# |& A4 }" _; z
       (self.knockbacking? or @actor.state_sleep or @actor.stop)  
  p. m! d% ?! N8 r" N$ f) u       if seal_state?(0)  - n9 F$ L1 S/ q% Y6 {/ k6 a" s
          seal_text
" [9 s5 r  T3 q5 T2 |3 V          return false
4 t3 `; ^* P( O( A! f! i% A+ x9 v       end   
5 Q, E, m  S; F* Z3 @       action_id = $game_temp.force_action_now_id
) E- E5 S. B) v2 ^: m) J       self.shoot(action_id) 9 Y' ~1 Q+ b& x
     elsif self.action == nil and $game_temp.force_action_id != 0  and not+ b' X/ \) G3 F4 H
       (self.knockbacking? or @actor.state_sleep or @actor.stop)  
: P8 q8 ~2 V7 c       if seal_state?(0)  
1 H4 n5 N6 N' Y# c2 [          seal_text
( Z8 J$ n7 |, g7 ~/ q          return false
" L$ n' X# Z1 }- A1 n8 x5 h, j       end  
  ^) N$ q1 Y- C$ T       action_id = $game_temp.force_action_id1 Q7 F4 v4 a% m+ R$ i+ m+ E
       self.shoot(action_id)
* M8 r$ G% G: s; A4 O    end   , S( ]7 U3 ^3 i3 E+ E
end  
! ^1 ~/ h! U! @
& g. _/ ]1 J5 i; J. I3 y6 o#--------------------------------------------------------------------------5 ^- T0 u8 o: J" X9 `
# ● Can Charge?
5 v$ Q  w0 v  O#--------------------------------------------------------------------------  N) @' J/ g3 @
def can_charge?& Q6 b6 R% d% ^2 f  ^" j
    return false if $game_temp.cast_time > 0
) H9 ~: I) T1 l# h0 J% D    return false if seal_state?(0)   & Z0 {) c6 d* N) b" K
    return false if $game_switches[XAS_COMMAND::COMMAND_DISABLE_SWITCH]
5 p( @' k) X6 b3 ?    return false if @wp_tool_id == nil
/ J# S& Q) G! Y    return false if @pickup_lock 3 t4 b7 |4 O! j* v" s
    return false if @swimming     ( J4 N3 h0 t: h4 }
    return true2 d3 z* u& y1 b7 [4 s7 p! f
end; b) D! f  W- E5 |6 m% R" X
7 T# g" S' I0 M8 N
#--------------------------------------------------------------------------
  ?# D1 v3 n  @; J$ }* M) W: v/ C& f# ● XAS - CHARGE ; ^- @7 u& g) G% v
#--------------------------------------------------------------------------
) Y3 X9 _+ o( hdef update_charge_button7 x& ?* N6 k4 }3 A/ i1 E" e, x
  unless self.action != nil or self.knockbacking?           . h2 @: n& I* M, A* ?
  if Input.press?(XAS_COMMAND::SKILL_CHARGE) and can_charge?     
: o. y. z6 R9 Z2 L! M2 R3 n     if $game_temp.xas_charge_time > 10
% q1 i0 ~7 _/ X% w* j# L        if MOG::FIXED_DIRECTION_SKILL.include?(@wp_tool_id)
3 p* k4 \" N7 U  W2 G1 |           @direction_fix = true  
% ]5 x% \$ S1 f# {; V4 m           @action_move_speed = -11 D4 P0 L# h7 ^$ ?
        else
) _, q8 S  h; @# I3 {% v3 a           @action_move_speed = 0
$ g  ?7 B7 x7 [3 R        end         
6 a" s) V1 ^6 E4 P' x     end% a/ \% W: i( S- E: ]7 d
     @wp_tool_time = WEP_CHARGE_TIME[@wp_id] / ]& @) K; ^6 S
     if @wp_tool_time != nil" M3 U- ?$ q7 n- r  D# x% N
        $game_temp.xas_charge_time += @wp_tool_time if $game_temp.xas_charge_time < 100
4 q% b, n. J; E+ W) A7 u        $game_temp.xas_anime_loop += @wp_tool_time $ y8 J" @0 o- L% {; i' J* `
        $game_temp.xas_anime_loop2 += @wp_tool_time
% W* M, u9 I' O5 s6 ~4 _' p% X        loop = 40 * @wp_tool_time
7 i+ V) C; n2 i2 B3 {9 m' I% N     else
8 [" E2 A7 f; K2 a        $game_temp.xas_charge_time += DEFAULT_CHARGE_TIME if $game_temp.xas_charge_time < 100   
. m4 D6 N" |  k; E2 q        $game_temp.xas_anime_loop += DEFAULT_CHARGE_TIME  
8 A- {$ s7 ^8 ^) Q" @6 Q        $game_temp.xas_anime_loop2 += DEFAULT_CHARGE_TIME  
1 `. [' u% B& N9 N4 n) k        loop = 40 * DEFAULT_CHARGE_TIME ; }" h( n  [$ l1 U
     end  9 V3 Z$ B0 W: ]
     if $game_temp.xas_anime_loop > loop; E: c3 V' I  g2 e5 I8 q, o
        if $game_temp.xas_anime_loop2 >= 100
& z3 t4 T. R% X# y. P           $game_player.animation_id = XAS_FULL_ANIME
& h. b% Z: g. l' a8 r4 J        else
; R0 `8 t$ g- N- Q# t           $game_player.animation_id = XAS_CHARGE_ANIME * Y4 E, G! d! f
        end0 D. W, c  p% v1 X' F
        $game_temp.xas_anime_loop = 07 y% @( J  z4 S( ~5 R  w$ x, x
     end   + q8 U) @) x$ r$ [
  else
& f. T& w" d8 O& `# u$ t5 G     reset_charge_mode(true)
2 D1 F: h% o# D+ E4 _: a( f$ t( M  end         
- C( q, R( v( K3 l/ ^6 `end
  K0 C$ f' M5 [" x) send
8 y$ x' l3 O/ w  s" r+ e+ Y5 v- R' w2 w
#--------------------------------------------------------------------------/ H* |7 m6 l- U' f5 N
# ● Release Charge Update0 v; Q/ O" ]% ^/ U, N
#--------------------------------------------------------------------------9 b7 C: s3 Y  e: z
  def update_release_charge  4 J, U8 [- n! |
    if $game_temp.xas_charge_time >= 100 and not Input.press?(XAS_COMMAND::SKILL_CHARGE)/ O* r) }; ]+ C/ X; o+ Q
       unless self.action != nil or self.knockbacking?, L/ k; p1 [1 O& l/ N# S
         action_id = @wp_tool_id if @wp_tool_id != nil
8 {+ ~' z& `" }2 S0 h% c         return if action_id == nil or action_id == 0  
3 i: k- Q0 [! z0 W% L. |; l( t         if seal_state?(1)
8 v% _9 X5 P' O            seal_text
1 R) B' P8 p7 h6 a+ W( u            reset_charge_mode" x! t4 D5 m  W/ O3 }3 E( t0 X
            return
' b! a! y7 [3 z5 c* `, F         end   
# y; |1 w7 ]. I! g, s         self.shoot(action_id) if action_id != nil  
" O4 y% X1 l6 s- y4 Y5 c$ I" _: T       end- f7 }7 R5 z1 q, p- q8 D, g: X
       $game_temp.clear_setting2/ S$ k, }2 A' e1 }: R: ~4 [
       reset_charge_mode* t0 M' m. a+ d! e( Q
    end
, I, T* e+ z/ P6 M  end
5 X+ \& T, J/ T" s% i- y" K6 w8 z+ j9 O" o1 N# G9 U0 h6 S
#--------------------------------------------------------------------------0 m+ E; `1 c9 O9 v) Y
# ● Reset Charge Mode
- q1 b, \$ Q1 X# M#--------------------------------------------------------------------------0 ~7 p& m9 }3 B4 `* X2 B
  def reset_charge_mode(max = false)! j' R4 R6 L; X7 R
      return if $game_temp.xas_charge_time == 05 i$ V# Z. J2 }4 d; i; ~8 Z
      if max . Z. o3 q" K8 w
         $game_temp.xas_charge_time = 0 if $game_temp.xas_charge_time < 100
  k/ ~6 s- `0 D6 W, |      else
4 ~+ u  d+ S6 C1 X         $game_temp.xas_charge_time = 0! a4 a, Q( W* g1 o
      end
( K/ q* t: c* B* P      $game_temp.xas_anime_loop2 = 0
& [: Z0 d5 x9 X: Z) m! K$ Z; i      $game_temp.xas_anime_loop = 0
8 T8 @! [& l& r9 G      @action_move_speed = 0
$ y  `4 t. U7 z$ }4 o# a+ U      @direction_fix = false: ^. @- C! I& ?
      @need_refresh_pose = true if @pose_type == "Charge"     ! @+ K' c& s% \6 J* l. `5 j
  end
3 [4 f: j3 v! `+ G
1 V- \& M0 V8 `     5 x/ U* ~6 r5 w8 O
#--------------------------------------------------------------------------7 k6 h, {5 x) q% j  q/ R# s4 D
# ● Shield Direction
) b7 }0 L- W, y1 ~ #--------------------------------------------------------------------------  
! z2 c' T/ ]1 k: E" r def update_shield_direction # b: c  o6 ^$ ~
     if $data_skills[self.action.id].element_set.include?($data_system.elements.index(XAS_ELEMENT::SHIELD_EFFECT))        - {. b5 x/ l" {
        if self.battler.state_confuse% K" M! Z& D  P$ C/ s
            turn_reverse_direction     
# Y- z2 K4 t# m" [7 f% p        else9 M' s( c7 w( k* [) ^# n7 P' i
            turn_normal_direction      
+ h' g7 X0 N8 e& i3 }        end) q+ [, U9 n# a* V) N0 ~7 c
     end     + z1 J& {* g9 z8 N" v
end  6 s. W3 B- @' A

/ q" ^8 f9 |' `- w #--------------------------------------------------------------------------
+ r" T# H" {# n; T& w4 m/ H) b& d # ● Turn_normal_direction2 j" j! Q$ E' d; P4 I% j
#--------------------------------------------------------------------------   ( }/ T" ]9 C' ?+ f9 S& v* k. N3 b
def turn_normal_direction% ^* A8 ^1 q2 [/ |- c0 k
     if Input.press?(Input::UP)
$ ?# Z  X# _$ A( X! Y# e: E        turn_up
+ E7 e. P* O9 M) x1 O  ]7 l% g% w2 @     elsif Input.press?(Input::DOWN)
' ^; c- _9 @5 K2 G, T        turn_down
8 h: f: h/ l/ w7 ]     elsif Input.press?(Input::RIGHT)
; b- \& c- K; ^5 {' ]        turn_right; N' [* G1 P2 u2 l( C
     elsif Input.press?(Input::LEFT)
/ M2 ~, ~5 x: T# l  D: B8 k" r        turn_left
7 l" h2 ]" A. R) X- N% [     end   
# y/ p' A4 I: O6 J! V end
3 i/ q* P. E$ f2 z0 ^$ }   X6 w% r$ P+ n+ Z! z! E* g2 |0 b  T
#--------------------------------------------------------------------------
( c7 @9 Q4 N4 E # ● Turn_reverse_direction
: N+ n0 ~. N5 X# Y% z #--------------------------------------------------------------------------
; u. g+ O6 m( d9 ?9 G' w, M3 U! ] def turn_reverse_direction8 |2 j, C9 g+ }
     if Input.press?(Input::UP)' d4 K6 n& S/ y2 Z
        turn_down
9 ~4 H4 L: _, T9 |, `( O( f     elsif Input.press?(Input::DOWN); o" A) s0 B7 f  E+ q9 t3 _' P
        turn_up8 M# Q: }/ Q! ?3 i. H+ i2 ?9 q
     elsif Input.press?(Input::RIGHT)
: s8 E+ Y' W& `  n        turn_left
3 L4 ?  C5 D' t1 l7 N, n9 |' D: v7 |     elsif Input.press?(Input::LEFT)
0 w. v3 c2 {: i! b& ^! B        turn_right
# p8 O' H4 O2 d4 x6 x3 u     end : ^/ _: O( T$ K$ @) E- a9 ^
end8 J7 Y2 L; ~# c; D' H
     
$ u" I) _+ S* H. F #--------------------------------------------------------------------------
) f! }" c! h+ d; G # ● Direction Fix Update
0 [+ }# L4 A, e' o$ j/ L8 O: n #--------------------------------------------------------------------------
& I3 G: ~/ M9 s  def update_direction_fix2 M" p, N7 l4 \+ x( t5 J4 E
      if $game_temp.xas_combo_attack_time > 15 or
% k- Y+ i! [: B  ^4 h. S6 V( D& c         $game_temp.xas_combo_skill_time > 15 or
/ h, g& V" h# i  t7 x0 i/ u         $game_temp.xas_combo_item_time > 15 or- z  F6 Y0 j5 t3 c! b8 n6 P8 U1 E7 z
         $game_temp.xas_charge_time > 10 and MOG::FIXED_DIRECTION_SKILL.include?(@wp_tool_id)$ Z  ]* g& Q* e. }: y
         @direction_fix = true$ C% {3 @# e/ p" U% t: s
      else  & C3 O6 `3 e$ C% A
         @direction_fix = false
8 }3 ?9 W0 S, V1 m2 c0 B      end  $ H3 i/ S! D9 m. n4 E, q6 y
  end  : }/ v1 {% l4 c! j* h+ O
  / }8 Y( t- Q$ ]/ z* d6 T
#--------------------------------------------------------------------------6 f% k9 w8 L7 p9 a5 T
# ● Check Equipment ID
0 x8 r* i  A) a6 n: j/ _+ p #--------------------------------------------------------------------------/ e& F. Q$ u3 U4 b
  def update_check_equipment_id1 g! m0 e3 G; b6 ~' c" k
      if @wp_id != @actor.weapon_id  
7 N0 B4 `( r, O+ M         @wp_id = @actor.weapon_id& T0 i1 c) ~) L. U* }/ @  ]2 O
         @wp_tool_id = WEP_CHARGE_ID[@wp_id]
( M' D# @2 ]+ x% a, A9 r         @wp_tool_time = WEP_CHARGE_TIME[@wp_id]    : A8 V, y0 W/ c
         @weapon_tool_id = XAS_SKILL::WEAPON_ID_TOOL[@wp_id]; z' \8 m/ h$ p
         $game_system.xas_action_slash_id = @weapon_tool_id " m) e. m  u& C( }3 J
      end
, F/ M9 W% B6 O; _2 }$ m: i      if @armor_id != @actor.armor1_id  ' [9 @% r* l! J. G1 Q
         @armor_id = @actor.armor1_id
8 S8 b, s" o% I         @armor_tool_id = XAS_SKILL::SHIELD_ID_TOOL[@armor_id], O' K% x0 P, P3 f! a$ V! U4 U
         $game_system.xas_action_slash_id2 = @armor_tool_id        
8 Z( m+ P& S; V" N      end
' Q& `! n( l6 ~( G  end! T$ {0 H* E, h0 N- `; @4 ]9 E
  
1 s" O/ E( P: w0 s) g0 s #--------------------------------------------------------------------------7 O% c, t* S. p+ S6 V
# ● Pressed Button
: f  b4 R0 b6 c* p& |/ E #--------------------------------------------------------------------------  
2 R: m8 ^3 D' s+ \- s" c: O; d4 K def pressed_button?; M! _3 w& b6 C% y
     return false if self.knockbacking?
3 c, d8 b' {6 |4 [     return false if $game_system.map_interpreter.running?
% v% T( X; O& g2 k  A9 G% r     return false if @pickup_lock/ C6 _2 l6 b/ z) a% x
     return true if Input.press?(XAS_COMMAND::ATTACK_ACTION1)
; y2 S$ X! ^& `: g6 _     return true if Input.press?(XAS_COMMAND::ATTACK_ACTION2)$ f/ A! F6 p& B' h! v- A9 N
     return true if Input.press?(XAS_COMMAND::ITEM_ACTION)
6 X/ s& i$ J6 V. _& T* {3 P8 Z     return true if Input.press?(XAS_COMMAND::SKILL_ACTION)+ K% M; G  Q' w4 C
     return true if Input.press?(XAS_COMMAND::DASH_BUTTON)0 J1 |0 t* i2 q0 ^5 o$ a
     return false
5 e- Z/ B# U6 O3 F end( @7 G. T% j9 U

( C3 ?9 [% H; G: Y2 `) b7 V #--------------------------------------------------------------------------) D. D+ ]; }6 }* G4 h+ }6 |
# ● Trigger Button% Z5 t4 N0 A7 |7 c, N5 W4 @
#--------------------------------------------------------------------------  
# C( Z. ~' \# d+ Z  T! a def trigger_button?# d5 o! O# T& M4 G4 I! M
     return true if Input.trigger?(XAS_COMMAND::ATTACK_ACTION1)8 k7 s+ s4 i6 ?9 z# [
     return true if Input.trigger?(XAS_COMMAND::ATTACK_ACTION2)
: L8 A# N  C* f% [     return true if Input.trigger?(XAS_COMMAND::ITEM_ACTION)
& J+ P( |, f; N( {     return true if Input.trigger?(XAS_COMMAND::SKILL_ACTION)
6 D2 T  G! |9 P" c9 w3 ?     return true if Input.trigger?(XAS_COMMAND::DASH_BUTTON)! d" L( u) p$ T; ?$ |7 w
     return false5 ]! n$ W! u5 Q' R; X( L; a  r# M! N5 X" r
end
' A$ |# c' t" E4 I) N2 a
) o  P! t& u7 b+ H; f) z0 Q0 o0 X #--------------------------------------------------------------------------* k% M9 ]- [/ M# C
# ● Pressed Check
" H* D: [9 i8 { #--------------------------------------------------------------------------# P, e: X1 z& T  G
def update_pressed_check
% f! c$ F' x  w2 @+ }8 U    if pressed_button?. @3 ]9 Y7 ^0 U0 P
       $game_temp.pressed_attack = true
# o1 @5 B0 k* j$ ^- S7 G# O       $game_temp.pressed_attack = false if trigger_button?8 _( J, P  d: k3 Z+ t
    else  
% X8 ^0 d9 R0 D8 q4 J  q9 c' d+ B: P' w       $game_temp.pressed_attack = false  7 r  t6 I1 t3 e& P, z" V2 a% \
    end  
) k9 G8 v4 k4 a* n) D end  # k, R8 J& w+ D7 H
  ! f, }- T! N2 D
  #--------------------------------------------------------------------------
" F. g# x, L8 u0 A- a4 s: n  # ● Call Menu
# C4 f# X% M7 _/ l0 Y  c6 Y! J. A  #--------------------------------------------------------------------------    ! e: \( S; Q8 m! }) @+ e
  def can_call_menu?8 c8 p. |) D- G1 E
      return false if $game_temp.slow_motion > 0; b2 I9 i3 j8 M0 M; f
      return true      
7 _- j' d/ O8 a* l9 J6 L9 w  end   
) H3 \9 V2 K. h
0 Z6 e0 c. @( P5 H5 Z% bend    . {. T/ M2 T( n% Q" Z% V4 s8 y- B" o
; P  U1 S* x# q+ u
#===============================================================================$ v" i0 G% d5 I& X# C0 ^
# ■ Game_Character  b$ j% |0 K; q4 i: {$ V
#===============================================================================
9 a$ U# s0 s# wclass Game_Character  1 [( `1 r, V, Z/ P5 S8 n( V/ D
#--------------------------------------------------------------------------7 _% W5 R  V1 }6 O8 e& q
# ● Passable Hookshot$ r7 `# w! N% x  T9 P0 x5 S
#--------------------------------------------------------------------------  ( L+ W6 j& D9 @, V# ]
  def passable_hookshot?(x, y, d)
3 S6 W9 ^9 ]2 D, x6 J7 v    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)4 j& Q+ Z4 J- k; i/ b: _7 w
    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
0 U# m9 Y/ }7 z9 _    unless $game_map.valid?(new_x, new_y): B8 K& W4 [' Z4 \) Y
      return false
) K# q# v% v$ T# ?! j    end
& j) \' X$ @' j8 `/ Q( H7 ^    if @through5 d; y% v# X% A4 s. S  J' V
      return true
/ h" B, x. z0 o7 _  c- s1 Q    end( a# c) z7 f  h
    for event in $game_map.events.values
5 ~# A: M7 k8 v5 s1 d3 U# b      if event.x == new_x and event.y == new_y
2 `! x% e- m+ [, h5 l! \. W        if event.character_name == ""
& g+ W1 l) g4 }5 H5 c           return true+ i9 y7 b  l/ k/ o/ S
        end          2 {3 k! W+ ~$ j
        unless event.through $ |) d& h8 V0 _5 `" z! u! W' h8 p
          if self != $game_player. R' W* F- E6 v) ]' W- W1 ~7 O
            return false
+ |! I4 t; f' N1 L! z4 n          end
# h0 U; u6 _0 q$ ]# {          if event.character_name != ""
' A! s  I, d7 Q            return false
  s6 w8 o& X) W* R, V) N          end
1 ?' b0 P2 K5 T: t8 L        end
# w$ z6 d3 w4 [+ w  O  R4 m      end
* ~0 ~- S& D1 R    end
* ^) h/ M! ~$ |, I" Q    if $game_player.x == new_x and $game_player.y == new_y
6 H3 [, z4 S7 b5 F      unless $game_player.through# f9 ~5 g$ x* K$ f2 W
        if @character_name != ""7 ?, J' _8 A$ n3 q8 H: ]" u7 [
          return false
, g  B2 N; b- P: `" K        end5 G, J- m& M* o% ~1 h
      end
5 n5 o& P  E% v6 w# L; a    end& B* r$ h4 e5 n6 U
    return true
% W3 y# ?3 F7 x; i& e) ]) z, U  end
0 T+ W3 K4 C+ V1 P) B  9 u4 H3 n9 y- W
end  
3 K2 S4 Z# ?# V. i9 N9 L: j# c" H' i9 |0 ^9 v9 A
#===============================================================================! ?5 `' R. z. _. z9 `- b) O- ?4 R3 [
# ■ Scene_Save" U* S2 ]8 k1 j( {+ m% X
#===============================================================================/ N! {! I. Y* _! h% P
class Scene_Save) `% K8 F: H7 A  q
  + I; \2 o2 U$ y9 d4 x3 @
#--------------------------------------------------------------------------9 B9 [2 \5 _( t( A4 @
# ● update   
2 Q6 N6 g! k& S #--------------------------------------------------------------------------   
$ R- l. L3 n6 J$ ^2 x alias xas_background_on_decision on_decision2 O& Z% {' M, p- D
def on_decision(filename)
3 i. ?5 _0 [1 w/ O* ]     if $game_temp.background_effect_time > 0   
/ B; k5 Z8 O( j: f- M        $game_temp.background_effect_time = 0
" |& V( M& ]% E+ p4 m' M+ ^4 u        $game_map.panorama_name = $game_temp.pre_panorama_name
1 g. P/ S8 t0 k        $game_map.panorama_hue = $game_temp.pre_panorama_hue1 x! Q8 G, k0 n+ f2 X
      end        4 e) ?2 N1 c9 L) ~" V
      xas_background_on_decision(filename): @5 ^! W6 \' D1 f) s
end  
0 B% s6 K+ a8 ~/ ?# lend9 }6 ]6 f, h7 O" Y( P2 B

( C6 {6 N( |; s
! N: g' _$ P8 l+ w$ v6 W8 k# @7 F" `$ Z: P

$ t# d7 @' n) g* _  R. [) A/ N
# O" ?* X+ W2 X+ y$ y1 P1 m#===============================================================================9 d$ f! j0 Q9 ~0 r% {% V" d
# ■ XAS_ACTION
" H0 y5 c- L0 T) U/ _#===============================================================================0 q2 E9 e" N! Z! A
module XAS_ACTION/ C% B! r3 _! |+ K
  
- _" {, m! i: x3 ]8 H* f#===============================================================================
0 j8 Z8 s% z$ [1 l7 }+ h! A8 h1 w# ■ Battler Commands; o: N" G) v# ?# u( W- H4 Z
#===============================================================================/ N/ ^7 g( f! [
    2 _, i% u$ n) a, x
#--------------------------------------------------------------------------
' C5 t& z: y* v* U # ● Anime: W/ t* _: @, K( @, y. \" C
#--------------------------------------------------------------------------) X* M8 n) W) q+ _1 E' O
  def anime(anime_id)
9 m- r9 T# E( o      self.animation_id = anime_id   
5 H' w' O* _+ o5 L) E% ]  end
! ]) c+ s( o- {2 G3 t   
: B4 F1 @$ |3 }4 H #--------------------------------------------------------------------------
/ S$ L+ Z; t7 I6 r4 b4 w/ ~ # ● Anime D
- i( c# M' ^) q1 ], y5 N, p8 B+ o #--------------------------------------------------------------------------- k1 y$ I2 |; G8 G+ d
  def anime_d(u,d,l,r)2 P5 J1 e) f5 L2 v
      if @direction == 23 U" }( w( m0 n4 X( n7 h3 o9 E9 a
         self.animation_id = d   
+ O( z7 I- k! V8 T- c  Q# [      elsif @direction == 84 v8 u- F3 a% X2 u
         self.animation_id = u* S4 _  ^* X2 e
      elsif @direction == 47 A' f# r  Q7 W- h- N! |; Y/ D, O
         self.animation_id = l2 D9 ?6 Q. [) |: ]
      elsif @direction == 6
9 \' A' Q( L" z2 g; ?; T" r         self.animation_id = r      
4 c% r% D9 G, G) J2 h      end  
; _( s) ]) Q2 o+ ^! p  end     . k; W8 h2 ~* Q* X7 k5 j
   
. Q* ^  [1 q5 {5 M5 m #--------------------------------------------------------------------------! a1 P. V- v- E3 g) ~
# ● Invunerable
0 s  o! i. y, x #--------------------------------------------------------------------------# x; `- w. c1 M3 g
  def invunerable! B5 u2 u0 a  Y: J/ W- U
      return unless check_battler_exist?
/ u6 y! e$ X$ l' `      self.battler.no_damage = true% R4 H6 [* u$ W9 O0 R+ Q6 d8 w
  end7 F1 D/ d" G1 l; {! N# E
    - {1 P% ^/ E" ?! j: a
#--------------------------------------------------------------------------
- d* f2 {# z% U0 c' O4 Y( L6 _ # ● Vunerable
5 k% g6 C* `) \6 } #--------------------------------------------------------------------------
# q; ^; N% q- o# [8 p! i# Y& U  def vunerable
6 M# K8 J7 e: _/ p0 U      return unless check_battler_exist?5 d5 n- E% ]$ ]3 G  s" @
      self.battler.no_damage = false- N* c. g4 H' B( ]# Z
  end1 r3 [6 W  ^. U3 W( c
    ; u- X. e$ d3 o& Q) R) B
#--------------------------------------------------------------------------& A, t# C3 I8 r0 g" ~
# ● Text
( U% v  K/ f+ z- Y  o3 { #--------------------------------------------------------------------------  M) T# @! d0 g6 b( x/ L. b
  def text(tx,perc)& V) B' y  [. z% x3 _4 M' f
      return unless check_battler_exist?5 A, J. B1 u' w/ Q% W
      if rand(100) <= perc* U; a8 F8 I+ d, _; W2 O
        self.battler.damage = tx.to_s
: k$ S+ y  l0 ?8 K        self.battler.damage_pop = true4 a  q+ Y0 W% s( }6 g  P) y) G
      end5 H6 d4 i! i# B) N6 n( j1 P
  end
6 Y" l/ |& w$ P* t2 \* J   
7 {# \$ r. Z7 z  G; x* L #--------------------------------------------------------------------------, ?* t) @2 S. `& T
# ● Zoom/ V8 `9 U  W$ ^  ?
#--------------------------------------------------------------------------
: i# d4 _+ P9 T( _9 l& |) R0 {5 l5 x  def zoom(x,y)
6 C* E, @' N+ M5 A* H, g      return unless check_battler_exist?
4 a8 N1 O! h- e      self.battler.zoomx = x$ v) L* m! k0 L
      self.battler.zoomy = y
1 h# W+ G$ F+ E4 U$ ~4 e  end  
8 t' [5 U8 ~2 v* y2 Q
2 C! B& C, X4 ?) `2 U" c6 e2 u #--------------------------------------------------------------------------
* I, ~5 [* Q% l5 m' r" y # ● Zoom fast
4 h% r' D. Q7 e$ o& u6 @) q, \ #--------------------------------------------------------------------------
/ E6 L" d& ^& Z- w, s" U! a  def fastzoom(valor)* j& O: L! _. N% Y
      return unless check_battler_exist?  9 f) z0 C1 W$ e3 [4 z
      self.battler.zoom_fast = valor
$ N+ h& h& t! i6 h) {0 c  end: M  f: t, \6 f" ~
#--------------------------------------------------------------------------
# P* Y5 i/ Y! c' U9 u4 t" U # ● Self Damage
, J5 c9 _( J* ~2 M3 o: W" m #--------------------------------------------------------------------------
8 M1 f5 q$ C+ w5 M. {  def selfdamage(damage,perc)2 S0 s* m2 a& y0 _$ o
      return unless check_battler_exist?# |/ u3 J. S; p9 g
      if rand(100) <= perc! i) \1 Y. ?+ o/ q  g5 \( ?
         self.battler.damage = damage.to_i" x% ]+ X% a) x3 _0 f
         self.battler.damage_pop = true              
) E( b: g0 B/ V         self.battler.hp -= damage
  }% X$ P/ l; Y         if self.battler.hp <= 0 / p; O( A5 h' x6 @* e3 Y
            self.battler.gain_exp_act = false   1 ?3 z6 F3 C2 ~8 C6 J, V
         end+ e# Y: r9 u( t# }, Z( G
      end8 c6 H$ s& d: u& _- t3 J, X  v0 w/ X
  end
7 g& N3 c3 a3 ]4 w* g   
; j& X- e. D' B% u$ [1 P& W. w #--------------------------------------------------------------------------
+ f- Q/ s  ~: X8 j # ● Add State
0 G+ b/ Q1 Y) ]8 o* E9 T #--------------------------------------------------------------------------2 i) ]5 R8 ^$ N; r
  def addstate(states_id,perc)
+ s/ y& m8 |$ y" B2 ]. W! L' Q      return unless check_battler_exist?. J' p7 Y, a) A- c, I' _$ I  R
      if rand(100) <= perc
" N8 J  a" W: A' G( v9 Q! y$ X% I         self.battler.add_state(states_id)9 @1 q5 Q% Q& {, S& ?% }
      end
* d+ n" `! _5 ?+ b  end  4 j9 Q; X3 V2 h1 o- c
   
# B& C  b2 f9 t) K1 } #--------------------------------------------------------------------------
1 U& ?( [2 @# o2 P) r # ● Counter ON. {3 |! {* J2 U; K- v
#--------------------------------------------------------------------------* B& A3 `% R2 m9 Y2 m& P+ g4 n
  def counter_on3 u) ^1 d7 ?) U' Z/ s1 H% A
      return unless check_battler_exist?
4 Z0 z' {: O- r% w$ B      self.battler.counter_on = true- C4 H% x  K, Z/ l# K
  end/ \$ z' R# g! Q, v9 [
    / c5 @9 X5 j8 ~( @# B& Y
#--------------------------------------------------------------------------
8 J8 C$ |4 {  A7 q0 |4 I& R # ● Counter Off
# j; C+ s7 |& J* T+ k! a #--------------------------------------------------------------------------
0 ~9 H& A  D5 P3 w  def counter_off" Q" {/ E( Y0 g- k2 {3 P4 c# x
      return unless check_battler_exist?6 p5 T3 c( U8 |9 o! Z$ q" h& ?4 n0 C
      self.battler.counter_on = false
! L3 @; [- J5 z8 a  end  
3 n. e' D" ]6 L) j$ B    " [; l  i, n( n0 E$ G( ^/ d
#--------------------------------------------------------------------------
) ~8 [+ S) B* v6 S6 ^) h # ● LowHP Add State
' C% q' s: [3 d+ c0 |- j0 F #--------------------------------------------------------------------------) m; G& @8 A! [. H
  def lowhp_addstate(states_id,perc)
# j; P+ U6 H" m      return unless check_battler_exist?
) f! [$ @& Q: D2 }8 @      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
+ F  B# K1 |% ~; s5 k      if rand(100) <= perc: d! O. E% h- d. j6 w7 p; X. w3 r
         if self.battler.hp <= lowhp
8 c& w7 i% L' N5 p/ ?6 K            self.battler.add_state(states_id)
3 {6 ~! |4 a' [         end9 `- |4 J- x; n% d
      end
% G8 @8 f0 D7 T* v1 a; i  end
. |  F& \. j- x% j    3 S7 d) o5 p& L, A: [- U
#--------------------------------------------------------------------------
) z6 ~5 C$ x3 u: \7 e: c9 | # ● LowHP Remove State
% n: v+ L  k: @ #--------------------------------------------------------------------------
9 G8 }; D# a! Q2 k6 y/ P  def lowhp_removestate(states_id,perc): i" B! T, K6 G# M
      return unless check_battler_exist?
. s- Y1 s  R+ x' _1 L% k% _      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
# ]( e0 Y0 Y8 W2 ]9 l      if rand(100) <= perc
7 Q2 l% I3 _$ k" Z  Y         if self.battler.hp <= lowhp
; Y. V$ X+ b+ a/ m            self.battler.remove_state(states_id): V+ s# j9 F, {; j1 H: ]/ D
         end* ~: r6 R( x7 I* {8 i
      end
) K: r7 q( W5 v  end  
' m6 G6 O; d' h- H% p    3 ]$ Z  [% q0 Q# s. L, L( x1 u! O
#--------------------------------------------------------------------------! G/ }' w* Z" N, V
# ● Remove State9 t6 q0 P+ L5 S  h% Z
#--------------------------------------------------------------------------1 ~* }' [! |2 r& I# l1 e
  def removestate(states_id,perc)  j4 N* i' T- t. y5 O
      return unless check_battler_exist?
$ v! `  b! Z3 m* K; T" }, c' T      if rand(100) <= perc! V! ^5 f& r1 P" S; t
        self.battler.remove_state(states_id)
# h' d+ `* H: k6 x) }- N/ b      end
- ]. R, w3 v* ^5 Y4 i9 X: D4 y  end    ' \3 E. m& r1 x7 v0 L4 U9 y
   
$ r( v2 T9 Z( L7 ^3 _ #--------------------------------------------------------------------------
9 X% k0 H* @: d4 C2 q # ● Recover All
: v8 r8 ^( ?7 m- p #--------------------------------------------------------------------------. V& c! d6 y/ q/ u
  def recoverall(per)
7 U1 w2 u# c2 [( C3 \$ N7 O      return unless check_battler_exist?8 ]' p- W+ [- R/ P" c  @) l4 ?% E
      self.battler.damage = "Recover"1 a8 Y5 b2 M% K6 ]
      self.battler.damage_pop = true
0 }6 l, C9 d# U$ r' E! i9 \      self.battler.recover_all& h: v4 v& [$ w1 ~3 [
  end! |4 [1 h- b8 j5 ?. X
    9 u1 a% l: V8 ^8 v% ^1 T+ Q
#--------------------------------------------------------------------------( h% j$ [8 m5 S) G( Z
# ● LowHP Recover All3 S( m  `5 j  r! @
#--------------------------------------------------------------------------
% n' c. d& }6 o/ G3 a def lowhp_recoverall(per)
; Z5 G0 n0 k1 `" o0 N5 S    return unless check_battler_exist?
2 S8 v0 `! B4 n  i. v2 {- P' L! u6 m    lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
; b* y8 ]' j; s2 k/ m/ A0 p    if self.battler.hp <= lowhp
- Q+ m3 h8 R! s7 k. @) D4 r( @) |! I        self.battler.damage = "Recover"
5 H' {" I7 R" n: B! }, `        self.battler.damage_pop = true3 x8 x7 }; @1 t9 S7 ~' x8 c
        self.battler.recover_all
2 C& K( ]- t1 k4 I    end  n- H# A/ N! G* X/ X
  end   
7 M- i2 W( c* c7 D. c    5 B/ a) y3 M" |" S: N! M2 t
#--------------------------------------------------------------------------. z# A  b/ E6 M. V1 ]9 J
# ● Low HP Anime, Q8 U6 h* T6 \2 c( z& n  \& p
#--------------------------------------------------------------------------
& ?' ?1 N( k9 z* e1 g' s  def lowhp_anime(anime_id)
7 y' I7 R) ~9 I% m      return unless check_battler_exist?
: ]$ {7 h! K/ a" {  D$ H! u      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 1008 J  c9 }3 C6 Q* C
      if self.battler.hp <= lowhp  
& ?8 k% A0 Y! ]         self.animation_id = anime_id         
( V1 u7 _, u6 h: m1 H      end/ c% M( v; b  y9 S- W) j
  end  7 X5 V* m! o2 r  f. l
    , Y" g- W! T! i* s! P7 X
#--------------------------------------------------------------------------! q/ R. G3 T2 u7 l$ P
# ● HP Anime
" ^" O0 i7 ?9 U( ~; ?( x' q1 y #--------------------------------------------------------------------------" ?, d* ^$ y0 {* U+ ^, ~9 m( x
  def hp_anime(anime_id1,anime_id2)+ R  h! L# L+ |( j" U
      return unless check_battler_exist?
( x( `  \# n; _8 y7 S2 }      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
& y# P  X; |; G( D& H, D% A      if self.battler.hp > lowhp. Z; {: S% U+ w' o
          self.animation_id = anime_id1. A, B$ c1 ?( v1 z
      else
$ |. M1 h' z% z& V          self.animation_id = anime_id2     
9 v( |# }3 ?: x) |0 I      end
$ e! V) u. S. I  e; W  end  " V/ s9 Z$ \$ x2 H  ^( k4 e7 _4 N
   
$ }, V" Z/ y1 h& O2 g( | #--------------------------------------------------------------------------" T: L- m6 u* p/ v1 ?, `5 O
# ● Speed
5 o, x5 x/ Z4 J* `$ Q( M #--------------------------------------------------------------------------
- K0 P0 ?; \8 N1 y9 T2 F; y  def speed(x)3 l$ B) M* Y! b% u2 [1 l4 N' r
      @base_move_speed = x
0 m5 C. N8 ?) m) a+ V7 Z4 E  end ' u2 x$ \' l* B+ d& c, |( F
    5 O. J- C. i$ X9 u
#--------------------------------------------------------------------------, T4 H: G0 O! W, X
# ● Freq6 y/ I+ U* {8 ]( j
#--------------------------------------------------------------------------  
* n- f  ^$ h4 s5 `5 K3 U- ?7 I  def freq(x)
+ O: B0 i6 s+ e! V, w      @move_frequency = x$ P/ d) [0 p% @, k* P9 b
  end
& L2 f) q  h/ H" g% Q" n7 j #--------------------------------------------------------------------------
* c2 P7 ~1 g. {6 ` # ● LowHP Speed  K& V( [  D+ Y
#--------------------------------------------------------------------------9 r8 g, v; u, M+ N3 ?! E3 W+ D4 j
  def lowhp_speed(x)
5 B2 K3 f! F8 u, \) y      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100. s  H$ h$ I5 S' F1 C7 W5 a
      if self.battler.hp <= lowhp% x% j' B9 p- k! C4 _+ I% ^% e
         @move_speed = x5 _8 g" K) ?$ c  g
      end
, L" c0 B% f$ @6 R' X: O, f  end9 n3 D) s' Q/ f$ B3 K
   
/ r! J. w1 h5 H" f #--------------------------------------------------------------------------
* n- b4 E7 V1 e* B4 H" C2 O8 S # ● HP Speed
$ d6 a2 p* N' D1 M- ^5 Z #--------------------------------------------------------------------------, b  u7 ~! y, T! }7 M8 a% Q* B' B
  def hp_speed(x1,x2)
% a7 W* g  a2 S1 Z8 P- k6 g      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
1 G2 }, c/ \7 E! P  A0 h      if self.battler.hp > lowhp     2 u1 l3 F% X' |' D) f0 l
         @move_speed = x1     * K; S/ X7 @. ~+ J8 q
      else
2 ~3 l) K4 e/ o3 r% ~. C' _7 v         @move_speed = x2 0 N7 |/ B% m2 i0 L9 d9 N8 |) s& q
      end/ B  j; n+ Q9 a' R
  end    " d7 \; S! n+ Z
   
# ?" f' D8 O: q; y% }; q) ]( c  Y #--------------------------------------------------------------------------
( a9 D7 k0 \; p1 d$ B  L" n5 \ # ● LowHP Switch
8 t" T: j3 x, @) W( D3 z) y #--------------------------------------------------------------------------
" E/ E9 R0 }3 c. s) o1 `+ _; M' ]( m- W  def lowhp_switch(x,on)
2 x1 Q/ W0 m1 u# Y! g- A    return unless check_battler_exist?
( E+ B. }* U3 p$ K: f    lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100# N1 B. w1 S+ L" |7 _
    if self.battler.hp <= lowhp1 t+ N( _# p: v
      $game_switches[x] = on
1 @3 K3 L  S. L! j+ d! T      $game_map.need_refresh = true if $game_map.need_refresh == false: Z$ X( M. ?3 w
      self.refresh
3 G5 E9 l3 W1 G0 ?    end, v$ g/ b2 O! ?+ g+ h7 N
  end    1 n# p/ |/ G( v8 V
    . h$ Y& a8 J0 }/ l8 d5 }
#--------------------------------------------------------------------------
- }0 O5 [9 h- z& R# R  E) r6 G# F # ● Hero LowHP Switch0 k5 Q3 Z. Q0 J2 _0 a
#--------------------------------------------------------------------------) z$ b* S4 ~8 N3 F# I. i' L
  def hero_lowhp_switch(x,on)( Z, q5 G) M9 D
      actor = $game_party.actors[0]  K$ a% r; {6 v) k0 X$ a
      lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 100
" d; `5 ?& X  k) X      if actor.hp <= lowhp     
3 g) b9 W5 o9 }. H) D, i% U          $game_switches[x] = on 8 R# P) [/ R  ^: @6 l; r+ s
          $game_map.need_refresh = true if $game_map.need_refresh == false
  X. T  X  _  ~: d          self.refresh
/ G, \( t2 ~( _1 z3 A0 G      end. n7 }3 g7 v; j1 R
  end   M& q4 q( D) }) X) c
      l- R/ @" n. y6 n- ]
#--------------------------------------------------------------------------
) G' R' O( ^  ^. [ # ● Dual Switch
4 f0 E5 h3 |. }' Y! L; W" l6 | #--------------------------------------------------------------------------: o, T- b! @! ~1 }6 |+ _/ ]
  def dual_switch(a,b,perc)
( y, J1 A& _9 ~+ _5 ?1 c& j# O/ B     if rand(100) <= perc
! s& M* t$ `+ V, M       if $game_switches[a] == true% h2 H# {. J; {$ y- J; N8 n3 W
          $game_switches[a] = false( \8 N3 Z+ y' e; F; ^( z
          $game_switches = true
: E+ R3 m) g+ J, T& P       else
; _; z# K9 Z1 ]( @( z0 M          $game_switches[a] = true
: o+ q- S( @, a' h# {$ [8 S0 [          $game_switches = false
, M2 O% A4 i' D9 v3 V       end8 l# B. {' a: J" e, j* {: K
     end8 o; V2 p" i8 u; _# q
     self.refresh
  [- e' e9 I0 P# @1 C+ \2 w: I! U     $game_map.need_refresh = true if $game_map.need_refresh == false
3 X! O% U3 O9 [* _9 }/ Z  end     , `4 j: |! M6 V
    : a. l% V$ H. z/ W, n
#--------------------------------------------------------------------------* u0 |6 h9 _: F7 y1 r
# ● Hero Level Switch! L* a* B$ j- m% @* y
#--------------------------------------------------------------------------
  l8 {" y: t8 y. n1 H; c  def hero_level_switch(x,level,on)
' n- r5 c- K' f1 J* \# c$ J) {      actor = $game_party.actors[0]5 N* T4 Y  c. N: b  k" c9 g$ X
      if actor.level >= level
# f3 h6 K/ q2 q  \* Q  ~* u" C: z          $game_switches[x] = on7 X( F/ P% r0 [  t; I$ V6 D0 s
          $game_map.need_refresh = true if $game_map.need_refresh == false# H0 h" n5 [' j. U* d& r
      end, i8 @" H1 [- o5 _
  end   " F: `' X0 ]* C
    ( h$ V. h' o! z1 b& n6 @
#--------------------------------------------------------------------------6 \5 w4 L# v% m; k) e6 b4 j, W
# ● Hero HP Anime
% g8 Z6 y$ y. G" b8 L0 h7 O #--------------------------------------------------------------------------6 ^7 Q- L0 F1 D, O
  def hero_hp_anime(anime_id1,anime_id2)2 M6 y. D( o1 }
      actor = $game_party.actors[0]
# ?; ~8 o0 c+ a* ^4 @2 f6 w      lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 100
- ~6 P* m- `- o* @4 g& m      if actor.hp > lowhp  
* a0 K6 z2 ]; }+ a         self.animation_id = anime_id1    , M1 t5 Z9 R9 p
      else8 E( F- ]3 F& `
         self.animation_id = anime_id2      
+ z& d, B$ }9 u2 f$ b+ P* J, v      end  u5 T! ^1 c/ L
  end     : m/ j. r; l& C9 x& r- q: ^3 |
   
2 |+ j$ T! Q9 Y! h5 _5 m7 S% | #--------------------------------------------------------------------------2 P: k1 ]5 W" W; T- ]) ?  ]* q
# ● Hero Level Anime
) s8 x1 g; J! N5 D' J #--------------------------------------------------------------------------0 _( \* k# [! C3 l; y
  def hero_level_anime(anime_id1,anime_id2,level)9 f+ D8 N& t& }% r: o
      actor = $game_party.actors[0]7 f+ S% D& F' `7 A* ?8 J
      if actor.level >= level     
, W  h6 a, C3 e8 y8 i8 P0 J         self.animation_id = anime_id1    * t. J8 y$ a- c- o2 f0 l4 R3 R* h$ e
      else) G" [9 a4 `2 a) V5 v8 j5 i' f  s
         self.animation_id = anime_id2      8 v+ {- c" b% z8 J+ O
      end6 }- k% L% s* _* a! A6 j+ f
  end      ; I: T# j, G+ S; {. N, U) ?
    4 M; ~0 x2 G5 h
#--------------------------------------------------------------------------7 s9 j3 E! y  p2 h& G
# ● Hero Level Speed. l8 P& J" h( M; c+ U0 |
#--------------------------------------------------------------------------
. z$ C( ^& p. ~  def hero_level_speed(x1,x2,level)# J0 G6 c7 Z( k' r  y, d% `5 A
      actor = $game_party.actors[0]
( s# t5 K( r+ {: o5 h2 n  i( }4 [4 J: o      if actor.level >= level      / S4 y. U. q: u, \& H+ `; g: d
         @move_speed = x1     
  R. }' ^8 C! J' \/ h# v+ V# q, {      else
- V4 M& _. i0 \* P3 \7 [         @move_speed = x2 4 u4 ?0 x. J# d/ K9 }* f
      end         6 o! e& e6 |" s# C1 ?
  end
1 C# K4 w% w! [   
2 V) L! d; m, E #--------------------------------------------------------------------------
5 L6 @; |& m& @$ w/ l$ \ # ● Hero HP Switch& z* ?2 f, T% |3 b/ N
#--------------------------------------------------------------------------
' s6 B, a# G0 X9 i& i  def hero_hp_switch(x,on)
0 R9 w7 {* L9 W9 H      actor = $game_party.actors[0]0 ~& _: P5 H, F# w( d0 l
      lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 100: _( ]: X0 D% @; D3 [* j
      if actor.hp > lowhp   
% v9 m% `1 r0 ^  @, J& {          $game_switches[x] = on   
4 Y+ c: N5 Y! @: O3 z          $game_map.need_refresh = true
. A, e3 s0 ~+ T# Z. U      else
: N/ ?( F4 N- C) H         if on == true5 g' _7 d1 H2 B  Y$ G
          $game_switches[x] = false 0 g" {6 t9 H3 L5 m2 C# H
         else  8 a! V2 y+ P) R+ A0 u  T( p
          $game_switches[x] = true* N/ S" F+ h! k
         end  
& B& g. J. _7 [; X6 b" G         $game_map.need_refresh = true if $game_map.need_refresh == false1 @, h! K3 P( V6 g" O% E4 H
      end
5 K- \  F$ h( _2 p) q. Q    end         ' m0 }" F) J# G+ ^) X1 @
    9 r4 c6 T$ M, y4 d* B7 D5 K
#--------------------------------------------------------------------------
/ H4 D# ?. Z% B; |4 x # ● Hero Level Shoot
/ B' F/ ]. _, r" P/ j4 p( P7 [ #--------------------------------------------------------------------------" L" w7 }( a; Q% x2 X
  def hero_level_shoot(x1,x2,level,perc)
! K! |7 P# U4 t  V4 A) W      if rand(100) <= perc9 ~! X0 j2 W! [7 Y
        actor = $game_party.actors[0]7 X7 {$ k5 F/ `2 {
        if  actor.level >= level   
6 \9 n, l% ^6 q7 |- h: V           shoot(x1)# k' M% C, p; h2 j0 }
        else
5 i% I3 b$ `( p! p' O           shoot(x2)
/ e0 x, c. T0 O' B, G        end5 D8 j9 b+ g/ q6 l' G1 W
      end . K7 v- }' E1 T2 f3 ?) m; g
end        
9 |) |5 `' U5 \/ B9 {) l    2 ^7 E& s; ~1 s  |8 u: O
#--------------------------------------------------------------------------, Q& q: r8 r& Z* a; S
# ● Hero Level Escape
1 b( i) l- t0 N9 K; a #--------------------------------------------------------------------------+ l, @5 O7 b7 b
  def hero_level_escape(level,perc)  q8 v, Z" u4 \: D, S$ o6 u
      return unless check_battler_exist?
. H  y- [# e4 p$ z3 ~0 r      if rand(100) <= perc
+ }" Y4 l8 i& y: a2 r, v        actor = $game_party.actors[0]
4 y6 L0 n1 B9 C6 m- r9 ]- U        if actor.level >= level1 B# U/ H$ G+ `
            self.battler.no_damage = true
+ A9 s) U) N: b7 n& X            self.battler.damage = "Escape"6 @: A* X. B+ f+ S4 G1 Y
            self.battler.damage_pop = true
5 H# A3 u  E+ h4 q1 w  j            self.collapse_done = true
! I( t+ \: h) Z9 w* V+ G& F            $game_system.se_play($data_system.escape_se)
. Q8 b. b# I+ Y( h        end
6 q# l; c2 @6 w% D+ t# ]      end
* I6 |. g) a1 B" }5 ]    end     6 N. i  x. d9 V2 Q# d* m) o3 h7 Z
   
8 T" Y9 v5 F- i  X #--------------------------------------------------------------------------
; D" U! }2 [# V' p) t% q( h5 R# Y # ● HP Switch
( l+ e- N$ w6 {: t #--------------------------------------------------------------------------
9 Y: J! s' t% p* u4 L7 r  def hp_switch(x,on)' a; M$ `2 `! {2 A4 M
      return unless check_battler_exist?; k4 M: v5 ?# |! M5 [! u! K
      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
! T( w, _& i) `: B, o% y3 z8 E      if self.battler.hp > lowhp    + M" E  V( ]; a
          $game_switches[x] = on   
( ~9 c/ B5 z& x$ `2 m  T/ J) y. B          $game_map.need_refresh = true
! W6 C/ T% I! `      else
! i9 Z* _/ F% x+ @) f* d         if on == true1 w. ]5 P5 p7 b1 e2 a) H
          $game_switches[x] = false
2 j' U4 a! R& c" `1 k% X0 X8 Y! z         else  
6 U- H- O; F( u, a          $game_switches[x] = true
3 K; j( a, H, D3 h; l6 ?8 f7 g         end  
) Z7 r% B9 _1 X+ W         $game_map.need_refresh = true if $game_map.need_refresh == false" Y6 t4 j6 j/ f% i0 W# j1 d
      end
! C7 q/ V2 r# r" @+ T  end   
, S! B5 N* {5 C* h9 {1 l, {' Z# k    4 k6 r+ c. r; v& k
#--------------------------------------------------------------------------. Z* F4 G0 x" J, R" a, ~. U5 {- f
# ● Escape
: {# q) v5 y. n+ ^$ J #--------------------------------------------------------------------------, ^8 r) ~. L7 }; R
  def escape(perc). I* b8 o/ m( a/ f
      return unless check_battler_exist?7 ]( c& e* c! K$ Q5 b
      if rand(100) <= perc
( i) r7 f7 j- I. Q; S0 u         self.battler.damage = XAS_ABS_SETUP::ESCAPE_TEXT* k$ c* I7 H8 I9 ?- n) A3 v
         self.battler.damage_pop = true
+ I9 \# Q+ K6 o9 \& F6 m/ i1 Z! ^7 M) N         self.collapse_done = true
$ d. {- Z$ l, @  ?* {9 ?% a         $game_system.se_play($data_system.escape_se)2 N7 _6 G$ [2 ^& b, a+ L
         self.erase! n+ G$ M6 N& U% i
      end
0 o; m& L' u" O4 E# @$ F  end   
9 ]1 p0 P" K. Y+ o$ O   
5 Y2 V! l8 I% O: i* j #--------------------------------------------------------------------------
  C+ q8 E: M9 n& z' D # ● LowHP Escape3 k$ y8 n. H7 ~0 P5 d
#--------------------------------------------------------------------------
" {8 P3 }: _, z3 n! ]5 ~( ~! c  def lowhp_escape(perc)$ k( H2 X5 C& }2 S( ?* p4 g2 o' ?
      return unless check_battler_exist? 0 Z! i9 B: u. I- K
      if rand(100) <= perc5 u1 o% Z8 w% V. D
        lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100, u/ X1 A+ W: q  X
        if self.battler.hp <= lowhp     * J: A' I& C) L
            self.battler.damage = XAS_ABS_SETUP::ESCAPE_TEXT
- ]1 i% x  S9 d$ p% Z            self.battler.damage_pop = true
' k5 o8 R% w4 p3 f. H            self.collapse_done = true5 B* o7 Y7 x% l  T
            $game_system.se_play($data_system.escape_se)) @2 i& P4 _8 q& c0 D: Z: e* t2 o
        end! ~2 [" ?; D# p+ _+ s; G) k2 v& v. L+ L
      end
8 f+ z4 m$ G7 a  end       1 t  T7 H7 W! y! {
    * V# E6 M- V" y4 n, x: V- R
#--------------------------------------------------------------------------
; {+ `  Q& q1 a9 u # ● Shoot Chance
8 r. [/ F/ @5 L7 s" ?# g. U* U9 [6 } #--------------------------------------------------------------------------
6 n) t7 s: d5 C) Z  def shoot_chance(action_id,perc); e+ p% R0 w" I+ A& K
      if rand(100) <= perc
& R2 I; V% s- ]8 p9 h6 Y6 }8 x$ q         shoot(action_id)
, a( z/ |. s3 z1 ~5 Z2 S4 N      end5 e% P' J, b+ M# p% d
end  
# M. h  x  V6 U* _9 J, v    ; w3 g# ^0 g" o/ C; u+ H  K% z
#--------------------------------------------------------------------------
& [( P8 _' m2 n* r4 d& Q # ● Jump Org: u& m, {7 x6 q9 s' w
#--------------------------------------------------------------------------+ V( N2 H+ w- ~$ w
  def jump_org
. C7 M1 w* A  |$ V$ y+ b7 r1 i& {      range_x = org_x - self.x
- `/ b7 H. K* w0 U: C3 |      range_y = org_y - self.y
2 G8 H# j7 c5 f' V* T! d      jump(range_x,range_y)
6 I4 b. H" ]3 R! J  end      
# V' v7 _8 S% @   
( n$ d' ]0 `" ~. \3 ^ #--------------------------------------------------------------------------
' a  o' O$ I5 K # ● Org Here
2 x. H6 i. |/ K; v3 s  C #--------------------------------------------------------------------------. ~* ]6 T# e- [
  def org_here
. {" Y* l) b5 i1 z      self.org_x = self.x
3 k, \. g. U% a      self.org_y = self.y
9 J- }' S7 G! h1 o( j3 V1 r: r  end      
, Q3 H/ f6 j8 g: P+ E  
, r  ]# U# p$ F3 [" r #--------------------------------------------------------------------------
' ?# M! }6 R6 n* h) v2 d  e # ● Jump Near
0 ^7 h, x; K8 [$ ~ #--------------------------------------------------------------------------
. J, l3 r! F8 ^1 T  def jump_near& R+ ^5 I5 @% O) j1 x. o' `
      if $game_player.x > self.x and$ T5 h! T- }1 g9 A, Z. l9 K
         $game_player.y > self.y3 \/ |# B7 B% i& H5 {) F
         range_x = $game_player.x - self.x   
8 W4 D$ w( E: m  x         range_y = -1 + $game_player.y - self.y " }# R& z9 D0 ~. g0 h+ r0 R- c% `: J
      elsif $game_player.x < self.x and
0 R0 [7 @! U& A         $game_player.y < self.y5 s) r% Z/ P1 l  `" y
         range_x = $game_player.x - self.x   
! k8 i9 ?4 l; I2 b         range_y = 1 + $game_player.y - self.y         
% N1 [' j3 \+ K! f& j      elsif $game_player.x > self.x and
/ a( c4 C; D0 W$ |6 g) d         $game_player.y < self.y
1 f& s% F4 t( g: B* m' H' B         range_x = $game_player.x - self.x   
. u: e. l1 x& j" {         range_y = 1 + $game_player.y - self.y            7 j/ [8 O" a% c6 M0 m9 N+ z; Q
      elsif $game_player.x < self.x and% D6 p) W8 h$ i
         $game_player.y > self.y! C! U2 V% n. m. s  P# g
         range_x = $game_player.x - self.x   3 h! v0 z- m. r* F, Z- @+ L
         range_y = -1 + $game_player.y - self.y   , G" a( [; z# H# s
      elsif $game_player.x < self.x and& `" i; U% j' F0 \" x' r
         $game_player.y == self.y
4 Z" G6 ^$ T3 |# x* @         range_x = 1 + $game_player.x - self.x   9 |4 r( t' j( Q
         range_y = $game_player.y - self.y            
: l0 B0 k1 ^0 g; p' U; S) F      elsif $game_player.x > self.x and8 x; K+ I8 n8 k* H0 [
         $game_player.y == self.y4 s+ V& n. i' U. Z7 R1 q0 v: d
         range_x = -1 + $game_player.x - self.x     l- G, ]& f9 o" i$ _- o" |
         range_y = $game_player.y - self.y     6 B- A; t4 a( X, o; h6 o$ T. c
      elsif $game_player.x == self.x and
! T5 f# w9 ^- \7 C3 j         $game_player.y > self.y5 h; S, o' K$ p2 r' d
         range_x = $game_player.x - self.x   
* `7 Q7 |! @% ^/ W7 P% z         range_y = -1 + $game_player.y - self.y            / W9 b0 J% H! z! B" _/ `+ `1 Z
      elsif $game_player.x == self.x and
! y7 p, S: \" _         $game_player.y < self.y* |# Y9 ]$ K* M2 V6 {
         range_x = $game_player.x - self.x   4 X% q7 O6 o8 Y% w
         range_y = 1 + $game_player.y - self.y             ; u  c0 y& o* k! e
     else % ]9 U3 [1 K) ^( l, x# V$ P
         range_x = 0
8 M( V( B& P% f9 Y         range_y = 0     
: N7 b6 E& W5 ?  H         
5 e9 a  W" }) Q; C$ F      end  o& a, C& X9 b! L/ T. G* M% e
         jump(range_x,range_y) unless range_y == 0 and range_x == 0      2 t  a8 h0 Q: z' i% D" ]/ a
  end  3 p& y9 a7 `8 I7 e( r- p
      
* z$ [, E6 J* b; s- v #--------------------------------------------------------------------------
- w% ]3 ~/ F8 y4 a) }+ J4 c # ● Lowhp Shoot
; B% M4 O: m  k #--------------------------------------------------------------------------
. ?% K: ~1 ~: @3 G  P  def lowhp_shoot(action_id,perc)! j- q+ h. q* a* S$ o# i
      return unless check_battler_exist?) Z; K0 o  c! q* ]" }! ?
      if rand(100) <= perc+ R% X9 g6 x" y; g6 u. f  ~6 S) C
        lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100( L% N7 L% F! q; m) @; o! w
        if self.battler.hp <= lowhp
) X; {/ e8 B* P% D, d          shoot(action_id)
! V# T( _+ T" u        end
5 C3 l9 Z' U: d, {& H# T: u      end    ; u9 V2 m- \+ p0 e  `! H
  end      ) S$ ]: V- R- M; j1 E; ^- N$ f
  
# U1 [  V, v7 R6 R #--------------------------------------------------------------------------
5 {3 r7 |: @2 D* B* Q1 g5 o4 Y, z # ● Fatal Shoot
- J! A7 H! u$ [1 s, N #--------------------------------------------------------------------------
# w. N% B7 q% M: U$ ^  def fatal_shoot(action_id,perc)1 Y6 @# V- e- \: F( l, g
      return unless check_battler_exist?
+ E4 t) y4 v! C, J      if rand(100) <= perc( v6 j4 L. {5 k2 o/ t
          shoot(action_id)+ t* x$ }4 f: t  j  {
          self.battler.damage = self.battler.hp1 T" c  C) G: H: c1 }8 {! l
          self.battler.damage_pop = true
$ {- [9 l; B  [$ q& `. g- P+ ]          self.battler.gain_exp_act = false- j6 |! W  _6 M! {
          self.battler.hp -= self.battler.hp3 e" d5 o( Y4 W2 A& X. G5 S2 R; ?
      end% I1 P: k# Y! v0 D6 H
  end  ) T6 b" G6 m0 p- F$ r2 ^
      H( M" V5 s, ?8 @: L- K
#--------------------------------------------------------------------------
& z2 [" n( q4 T" L8 h7 F" f) { # ● Lowhp Fatal Shoot
) J" y; |( `1 w6 g) M! S% B$ p% L #--------------------------------------------------------------------------& q: `7 P9 W) }2 E# [, H3 F
  def lowhp_fatal_shoot(action_id,perc)
2 E0 K+ G9 T* J1 {9 o" c0 }      return unless check_battler_exist?
8 L, ^% k, u9 L- }( k6 [) c      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
) B0 M2 o$ o2 F0 k$ b" e      if self.battler.hp <= lowhp     ! e8 X6 O' m0 v# R8 ]
          if rand(100) <= perc
7 D4 L! ~* r+ {" L) ^' d0 F            shoot(action_id)
( u+ q( K: r, V9 S5 m& q5 ^" P            self.battler.damage = self.battler.hp
/ n" M( Y" i; W; l2 h/ F2 M' i            self.battler.damage_pop = true
3 {$ k; e* V2 S, X8 y# q            self.battler.gain_exp_act = false
! f( y1 \2 L# |2 F' L7 ?            self.battler.hp -= self.battler.hp4 m  A1 F& R. r' t8 g  g8 v
          end
& U$ {& q2 H) W" g9 W6 ?      end8 S% P; C* F3 k# T8 p# K3 K8 u) A6 s  t
  end    # u+ S# w) B2 Z, S
  * I4 r* m' k* Y: w
#--------------------------------------------------------------------------( y. w( w: n! r( [
# ● HP Shoot
5 @9 Q: Y( h8 Y+ L, `& Z- j  i+ K #--------------------------------------------------------------------------. }$ o2 @# B% I* o5 g% `5 z0 J
  def hp_shoot(hp_high,hp_low,perc)
4 ?2 f1 p1 A+ v6 J    return unless check_battler_exist?
5 Z2 S  H5 g  `3 H, e    if rand(100) <= perc
! Q# n$ s" u# g4 I' l4 r, I9 J: \      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
" h' P9 ^# J2 \" X      if self.battler.hp >= lowhp+ l- x* W8 G7 q* ~
        shoot(hp_high)
2 E5 o7 _$ [$ l  ]# o0 R0 |! q      else
' e& A& \+ \, F0 `+ z        shoot(hp_low)7 n5 X' M/ B3 T6 Z4 j" O7 F, y; x
      end
$ z+ ?. i/ b; R3 [; O  Z* W! d    end# K* l( [8 q* u7 ]/ F' ]4 i5 n# g( g
  end# @  P: L; j6 g1 n- T7 {, _
  ' V4 e" T6 ?% V8 Y
#--------------------------------------------------------------------------: p- U  @: K& G2 I
# ● Hero LOWHP Shoot
6 }  N' G1 q5 d4 D# i0 H #--------------------------------------------------------------------------" ?2 ?  f  K2 n
  def hero_lowhp_shoot(x,perc)
2 ?! I0 u- N! |! U0 }  K8 g" Y, @. x      actor = $game_party.actors[0]
5 j" u5 ?! B9 d1 ^" H      if rand(100) <= perc
$ D& _8 f) q  z4 t* n, x$ f$ c        lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 1008 [) r# X- @( A9 h8 A9 A
        if actor.hp <= lowhp
3 {3 V+ B% C/ F& S0 `           shoot(x)      
5 o0 D* J& F$ E! q        end
" q( w* S& ^( L4 {* R      end' d: r$ w+ w4 T# N: w
  end
- q/ M6 x$ S& _. B  
4 p, [  g4 c+ S2 A. B- a #--------------------------------------------------------------------------5 I! A+ E; ?+ N* q
# ● Hero HP Shoot
; @( l1 y5 I! p1 X" c4 y3 y #--------------------------------------------------------------------------
6 e% D' d- z- M  def hero_hp_shoot(hp_high,hp_low,perc)2 g5 C+ x8 x7 {# {( F$ p; }$ I
    actor = $game_party.actors[0]
1 ~! x3 Q  X1 P% O: \2 _( I8 q    if rand(100) <= perc
' Y2 I$ n3 r4 q& p, i       lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 100$ F" H& G+ t2 h8 S. [+ X
       if actor.hp > lowhp % x; k) B. Q- J- l: E
          shoot(hp_high)  
1 Z2 C/ t# q" p       else     B1 m2 d* ?' J4 n
          shoot(hp_low)         % ?0 I8 ?- `+ ?8 T8 G7 D
       end
4 t1 M: j8 h3 F9 A2 n8 q" F    end
; E: v2 @4 c( P+ A6 _  end  0 @  ~5 F2 z8 l3 U6 N; w
  
9 ^2 ?2 k0 Z) @* Q, J/ T #--------------------------------------------------------------------------
: b/ @) W6 H: C. U6 K1 o # ● Lowhp Rand Shoot; i- S$ u) ~- b1 r' z8 t2 }
#--------------------------------------------------------------------------
. F. G* p$ j- U4 f, h8 |  def lowhp_rand_shoot(a,b,c,d,e)   / h+ K9 ~3 k+ q2 ]# K+ |! a4 x
      attack_off9 _' \& A8 i. m! V' q  b( Q) X
      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
- q) I; J- j7 K/ G* k. W, K      if self.battler.hp <= lowhp & y5 `, {; ~* A7 H. B, `3 [/ G
      case rand(5)7 S" ]$ q* P6 ]1 o
         when 0
4 P: v  _' ?- }' i1 L% u' I1 x, r           if a == 0
: j8 ^# S6 |: h. E$ S  f           attack_on5 G* Q( W3 P! |
           else
  @, L0 A; l, Q* P) c$ I% N: v3 Z           shoot(a)5 D' _8 k: _, r9 ?" a- |
           end
7 F6 L& }% d7 u* I. \& M$ q         when 1      
7 f. D* w8 }- p0 }" z+ n% r           if b == 0& ^7 u$ d4 G2 @  o8 k
           attack_on
' \" A. V$ A% A$ L8 S9 q           else
4 K$ i# I4 t: C           shoot(b)3 E, m  Y2 d& F* ]
           end   
. g6 ~5 f9 H4 [! T         when 2
4 ^# H5 _/ G( ]           if c == 0  k1 l/ T( {$ F& ^  g
           attack_on
$ K1 ^5 X3 h! J& u; {3 Z3 h! @           else8 z1 z# U3 W" Z% L+ ?: j; _
           shoot(c)) ?1 n6 {. D9 R3 C  k# |  Y9 w6 o
           end
, T" r  n% }5 c# w9 i/ i* S! t         when 3      
- _" y: [# [& B) U2 ]  s           if d == 0
5 o0 N9 a5 t4 Z/ M           attack_on8 }) e4 V7 i& m7 y! N
           else; h) @/ G- }4 L/ L
           shoot(d)
- I2 q6 q8 u9 o, A) Z           end    f, o- K! X$ E, B9 g
         when 4      
: }* f, Q) e: n  }: {           if e == 0
+ S- i  {1 o5 F9 H6 n2 T- N" E2 l           attack_on
5 N' P& j' p9 U( m4 g           else
( y( G& s# c$ j- E           shoot(e)2 K4 f& U* Z5 Q  T, n
           end             ) V: A  Z& A4 b$ r5 @: T5 A
         end   
. Q5 w, ?" }5 @2 f" A6 |4 n- x      end
% s: D+ I* R  W* R( H7 d  end  % P9 h% t0 F1 n! }# s9 U: c: W- E
    ' V* z; i. a, V
#--------------------------------------------------------------------------
8 ]1 |4 V; r, B # ● Rand Shoot
# }) S5 ?5 W9 X4 ?6 B, y8 j #--------------------------------------------------------------------------
* E7 i0 G9 }  M6 R! S  x  def rand_shoot(a,b,c,d,e)   
6 [- {) \& s2 }: Q- c7 ~7 F) ~      attack_off
7 ?* I. j' @! _, ~      case rand(5)
& b" \  o) X4 p  `: c         when 0
" A" C) d6 T! ?           if a == 08 J; V6 B1 V% ]4 H# v/ ~$ k" @
           attack_on
4 N6 }3 M- u+ r9 i% h+ ~: z           else0 b% Z$ e: V& O
           shoot(a)1 C: Q# f* M$ s7 O1 _: D+ e
           end
2 X  {. l% G# t7 }# Z4 L, n         when 1      
4 f1 X4 a" B! G- u4 u, s           if b == 02 Q! }4 t  K) s' j; j0 y' h8 X
           attack_on( m2 f$ w9 T* _8 B  h# c, O2 w
           else
% V$ ]4 e# E( [; K" R2 d9 U2 o! B           shoot(b)
5 k# m% O5 ?6 ]* i7 W           end   
9 i$ W0 V5 s* f' ~  h4 c- w; y         when 2+ K0 F. L, w6 j& j8 ~) g4 D
           if c == 01 H& Y) j, j' G6 |
           attack_on4 G' n& ]! B, {3 C# p: B
           else
; W8 k  `" }: c' p9 k2 x; H. f           shoot(c)
* f1 j6 x' N, j* O6 k+ z           end
* d% |  y& |! m+ J         when 3      8 A  U! S, ^% B7 x
           if d == 0
( Q9 R3 X5 ]3 S8 J5 E5 Y           attack_on/ y3 ~  O4 l1 I" N! D# I+ W9 \
           else" j7 E9 J. ^# R* ]* U
           shoot(d)
  G2 u& W& a/ U) z$ ]           end  7 h; I2 j) C# ~* t" _, e! v/ m  d# x) X  y
         when 4      2 V; U: H7 h" q) r2 H
           if e == 0
4 S+ E3 J# b4 o' [3 K# J$ G! ]           attack_on) K" w, d" F% V: r3 F
           else
7 \& t/ w5 X+ Y% n* R           shoot(e)
: E1 p. r" n! I$ A( }7 d           end             2 U7 R' [( u1 ~& O) ?
       end   
/ N; t) k) ^" o# `' s8 W6 k6 V  end  
6 d( W6 Q- G- H- b) o" I7 O  
; r/ S6 T7 @+ Tend  : B- u& m( O) U

3 [3 C/ q  t0 V4 F5 s* q2 I
5 T; `& v& J- B' R0 e( A( N- w6 V9 p+ V/ L
1 \& B" M; g0 J2 l& T  X

, I" T; r* D( g1 g1 n# W- l
: o& k9 x3 r5 h6 H7 B4 y#===============================================================================: Y; |0 \1 T" T7 T# V
# ■ Game_Enemy
3 E) {' B( |7 }0 v5 _% H' K#===============================================================================, F' s( s% o. `2 J3 a! U
class Game_Battler2 E: P* g2 d% S! K8 i+ {
* |: L- t# m( Z' U$ w
    attr_accessor :e_object               
, P8 E- I" U9 M9 Q) i    attr_accessor :e_item
, J: F& q, y5 `* a& ]    attr_accessor :e_ignore_hero_shield4 m! I8 `3 l* [. Q. D
    attr_accessor :e_knockback_disable
3 [, @3 K7 X* R9 y( |" Z    attr_accessor :e_jump_hit_disable" o4 Q% Q0 x, P  J
    attr_accessor :e_breath_effect
! r# D/ c$ m9 g7 t1 ]% w    attr_accessor :e_zoom_in_effect% X: }: X& H1 q+ I- K' {
    attr_accessor :e_zoom_out_effect3 _) A7 b: ?0 \! {
    attr_accessor :e_only_blow3 b1 t( M& |3 p7 @& ?
    attr_accessor :e_passive
4 R* G' O( E2 z  G    attr_accessor :e_drain0 z* r& b1 M, ?" C; [
    attr_accessor :e_sp_damage
4 o6 j8 K. j9 w#--------------------------------------------------------------------------: b& G6 Q3 p) e3 Z) ?* j3 f" U# k
# ● Initialize
8 S9 y9 E; |: e# T' {3 t#--------------------------------------------------------------------------
2 S! L( M0 e% @9 c9 [7 ~ alias xas_enemy_parameter_initialize initialize # N9 A# \8 `8 t
def initialize* s6 L/ `" b0 H8 a
     xas_enemy_parameter_initialize: p" T6 t7 [' @* o4 l7 m
     @e_object = false                . g2 }; W2 R& n. x
     @e_item = false           
. D  L) S- X0 B' P' e2 B' z     @e_ignore_hero_shield = false           ' e3 j# E' k/ |2 y; ?! v2 @( H/ M
     @e_knockback_disable = false           
; x9 q2 f* W; ]$ ?: i6 o7 Y7 ]* W     @e_jump_hit_disable = false           
( j. B8 C' }4 {7 k# Z3 D     @e_breath_effect = false           
4 s9 k, M: H  z, j     @e_zoom_in_effect = false           + S, W9 X% ^, J* u* S
     @e_zoom_out_effect = false    . w0 V7 `1 p6 j" o- I- K
     @e_only_blow = false
6 C4 [7 }* g9 r; m1 ]     @e_passive = false
: I$ t. X8 g# V% _6 g6 s     @e_drain = false. z/ ?& p# d' b% S  p1 j
     @e_sp_damage = false    7 B5 P! o, c3 P' B) w7 ~; c* F
end
$ o+ Q; U2 ~- n. `  V8 Mend
$ H- A& L! m% u: q  |! Q2 S0 e
8 A$ m* v. g* ~) o4 ?#===============================================================================1 X, Z8 E# w# A# K
# ■ Game_Enemy" h& V! K1 V7 ^- J# d; o# [* X
#===============================================================================
$ C+ W) Q" r- N; [2 m' @class Game_Enemy < Game_Battler
# J* A0 }! f+ g' o' V
+ D* V- F. N3 _6 X#--------------------------------------------------------------------------
" L. F. ]* A4 T# ● Initialize $ @6 F/ \+ ~; x
#--------------------------------------------------------------------------
0 u0 j8 W8 A" Y$ Y alias xas_enemy_initialize initialize
: q+ B6 c! [$ G0 c8 j8 o def initialize(troop_id, member_index)
% l$ f' `; f+ f) `     xas_enemy_initialize(troop_id, member_index)
/ |* @+ \; ?- T9 z1 a4 S     for i in 1...$data_system.elements.size: O+ g2 Y" t6 W1 y  X' }2 V% v
       if $data_enemies[@enemy_id].element_ranks != 3           
# L( X5 I5 u6 F# I% T' K8 t; Q       @e_object = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_OBJECT)
' a4 }1 |. u) q( K8 X. y0 K$ Y5 L       @e_item = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_ITEM)               
; l$ }. o# f, B2 L4 R+ X, h7 V- H% F       @e_ignore_hero_shield = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_IGNORE_HERO_SHIELD)                4 ~: c+ P1 D$ m! c# @/ W% F, C
       @e_knockback_disable = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_KNOCKBACK_DISABLE)                  
' ~+ C- x3 s4 c  [; `       @e_jump_hit_disable = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_JUMP_HIT_DISABLE)            
$ K/ L1 Q& Q( \9 Y  L8 }- N& Y       @e_breath_effect = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_BREATH_EFFECT)                : k" v9 {$ i: K0 E3 A* Q. b$ i
       @e_zoom_in_effect = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_ZOOM_IN_EFFECT)               8 z! {* x5 W* e$ z
       @e_zoom_out_effect = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_ZOOM_OUT_EFFECT)                 
- Z) \6 O! M. [* I& R8 V' M       @e_zoom_out_effect = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_ONLY_BLOW_TOUCH)                 
. t5 ^" W5 o; V! E6 T       @e_passive = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_PASSIVE)                 3 Q8 w! E9 t: ^% U- P
       @e_drain = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_DRAIN)                 - N' N1 R" ~2 j# T) G3 N
       @e_sp_damage = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_SP_DAMAGE)                 / x; m) l% c) h" P' L
       end
0 M7 A3 ]. N0 p; [. ~  z     end
( i- B  N# v5 o# X. z3 R5 S: Q     self.gain_exp_act = true     
' U; z# A- E/ u! N' R( ^ end  - R% f* i1 H! T) p1 u" l
end  
6 Z/ ?+ `- X- {5 @( S# B: W9 O: }$ }& i  _
#===============================================================================. e0 G% v- i6 K- |
# Game_Player
! c9 N* z, [( X* x, r0 ~1 F#===============================================================================
( d; h2 P- H5 w7 A6 e9 [! iclass Game_Player < Game_Character: I" h( |8 {9 |( l2 l
  include XRXS_BattlerAttachment
' Z% t+ K" A5 Z6 u  
: i1 a5 M1 c# k  b% J5 g! B #--------------------------------------------------------------------------  a5 i, i# u% d
# ● Battler
8 K& w/ A( Z& t #--------------------------------------------------------------------------
) b- k# [1 Q4 H8 Q* l& N6 `; u  def battler& x$ R. L) N4 J/ ]9 |" E
    return $game_party.actors[0]
% S  s$ Q. I5 Y3 n" @1 {/ T  end
3 O* k8 T2 E0 i, w2 _" a  
, ~8 E% }$ L; x0 ~6 C# D8 S #--------------------------------------------------------------------------; k9 }0 C: ^. z; }
# ● Defeat Process/ C7 w, Y& {8 z$ S
#--------------------------------------------------------------------------
' U( ~% Z& P: s  def defeat_process) M% c1 s2 e- @2 C" y' c, `2 T$ q
    super  
# C6 Q1 e  F0 j9 ]1 x    if RPG_FileTest.character_exist?(@actor.character_name + "_HIT") " m: U3 W  y/ \* b9 D. J
       @character_name = @actor.character_name + "_HIT"
+ }! ?* l+ X4 ^; f9 X    end      
( J1 O- W) ~5 U8 c    if XAS_BA::AUTOGAMEOVER == true, z& |# n# l" `4 [
      if self.collapse_done         
, q8 d. P$ q( X9 C! J/ i         $scene = Scene_Gameover.new rescue nil& w: \( {% k2 W0 ~/ c
      end
9 v, O( D$ n$ _0 l( o7 L    else    * ~! _$ n% Y% S/ j3 Y0 p2 r' t
      $game_switches[XAS_BA::GAMEOVER_SWITCH_ID] = true
/ y- e1 A% c; X5 x% B6 h0 `      $game_map.refresh! S8 b" o. [7 U
    end
1 `! p( d( O, p  end
5 q; J4 |% z7 v, Y$ Eend
3 [' j# y3 i4 H$ ]+ g$ i
0 X( Z' j8 D+ k; L9 k' R#===============================================================================
8 T, c5 D; R, B4 G* t. q1 w# ■ Game Event" f; R7 y4 s9 l& }
#===============================================================================
# {  `9 A+ h( @! K( zclass Game_Event < Game_Character
. S4 H: d; I" k  include XRXS_BattlerAttachment# e: i2 o) l$ f+ R# g4 L5 Y3 V  t

8 T: d# i* Q$ x+ E, f; |& L #--------------------------------------------------------------------------- [# G3 l6 N8 }6 S! ^$ r
# ● Battler: G0 s& ?( c8 w' _% A
#--------------------------------------------------------------------------
5 p5 h" a/ A" ~6 c8 I& Z; S  def battler
$ _9 H' B: r- Y) ?7 }; Q    return @battler
" W' X! U! h  J1 n* }  end
7 i3 S9 R# M6 M$ |  # j9 k: M7 U8 q& L* n" A, B# N% _
#--------------------------------------------------------------------------
! j5 ?2 h# E% ^) B% Q  j, d # ● Refresh" ?1 J  G2 b/ x! I. H6 U; {9 O6 T
#--------------------------------------------------------------------------
# I2 |1 N' i% Z7 {# h+ o& m! s  alias xrxs64c_refresh refresh- T6 a, d$ M  u  W
  def refresh
: R2 O# o8 F2 Y7 E  w% d% N' x/ I    xrxs64c_refresh
( `. O# O# _( o7 Z0 J4 d: f    self.battler_recheck3 A( i1 W7 }; r5 _$ n6 `
  end2 d5 D& e  t3 v6 b/ ~
  
6 [, j% L3 C" P% F* K #--------------------------------------------------------------------------
1 i- q% b5 I# ~$ A! l: F # ● Battler Recheck
' o7 j4 c* M! k3 | #--------------------------------------------------------------------------
1 X6 d7 M6 }4 W( z  T  def battler_recheck
# m* w8 b& N- n4 k# b5 k    return if @battler != nil
9 i+ ?) ?: @. i3 d# E    if @page == nil
6 ~& l1 ]0 z2 I: O      return3 h# U* y+ |( @8 \& \, b; {
    end
6 m0 Y1 q8 `, ]6 O$ a5 @    if self.event_name =~ /<Actor>/       2 o7 K2 s; ?! T# N
       actor = $game_party.actors[0]; U, \4 r; s7 @3 d* Z3 f+ @/ L$ L
       @battler = Game_Actor.new(actor.id)
; l7 p- e# l/ w1 z' p       return
0 m0 `+ M) O8 M! ~8 V9 e    else
' F6 U/ z- a6 i7 h. I; ?' W       @enemy_id = 0
- ]  a* a) {  ~, K- |       if self.event_name =~ /<Enemy(\d+)>/i
9 K, l+ e# t5 w) N          @enemy_id = $1.to_i    . y: M# U6 D& r. ~" x
       end   
- Z6 n+ g- W2 E! J       if @enemy_id == 0! \( t* o2 T) c6 r! K% [, W
          return# i+ [$ `3 O6 N- ^; _
       end/ U; q/ T' t3 n. i% l) R1 D( L
    end  
2 ^$ A4 [3 K5 e7 N8 M5 A$ O+ K; ~    troop_id     = -14 }/ H8 i2 o9 _- u7 z+ g
    member_index = -1, N2 \5 Z5 N+ ^
    for troop in $data_troops) F' D6 E1 o) e8 ?# \' T9 @, t
      next if troop == nil! p2 z) q- ?% e' O/ R  v, M
      for enemy in troop.members
/ {/ b9 s$ O, g9 @# o7 s        if enemy.enemy_id == @enemy_id
4 i# a3 g2 B: ]- J% e          troop_id     = $data_troops.index(troop)0 Y2 o2 ]) R5 S) I
          member_index = troop.members.index(enemy)) L2 [# }! T$ D/ i$ x% t5 N2 F
          break! T+ ?1 U4 G9 y
        end5 c% W  ^' M$ m
      end
: l+ ?  d" n2 y  O# r    end
+ r; q% Y& m, W+ H. }    if troop_id != -1 and member_index != -1
$ ]- J3 [+ x7 U8 ]. J       @battler = Game_Enemy.new(troop_id, member_index)
' s9 G+ z; G! @    end
& ]' G% R/ G% K1 Z, m  end( l- {. C( W/ G: n
  
' @( O4 `  k3 r& B2 J #--------------------------------------------------------------------------
$ ^  q- S* P' Q& p# L: j7 @9 |& W # ● Enemy Id- D& W' k5 F4 Z$ k2 Q( ?8 [
#--------------------------------------------------------------------------& v! _) j2 ], o
  def enemy_id8 _/ s7 b+ j' {! f- f$ R
    self.battler- P, t1 x0 F3 p- H
    return @enemy_id. Y' K& e! \$ y# F$ d2 A
  end: n/ B4 ^! g, H9 P( Q
  4 @* S+ [* @$ N+ s  O
#--------------------------------------------------------------------------7 v! e" x& v7 A+ o% Y
# ● update_gained_exp_gold
- ?! a3 z2 M8 u #--------------------------------------------------------------------------   
' v& z4 r7 S# T/ E! s+ K6 A def update_defeated6 A' N' g0 O% N
     return if self.battler == nil
9 c( n2 H3 E- ?2 D$ E8 ?; X     if self.battler.dead? and self.battler.defeated == false
& S- @, W* Q5 ^1 w7 c        self.battler.defeated = true
* ~/ C9 ?/ h' \* P        defeated_effect      . I) i& u& t9 y5 o" J! O/ I
     end  # B& [, P; q% \$ c8 E% Q
end  " |4 p: `' {5 A3 d! _

2 {. k# c9 ?3 s) T4 B #--------------------------------------------------------------------------
# P; m. u; S' ~, ]0 {1 u3 E # ● Defeated Effect  
! T  v# E& D3 a) P1 l1 W #--------------------------------------------------------------------------  
5 Z& g: l8 m$ {: E8 D. x def defeated_effect  : D  Q- k: H3 }) n2 E
     self.through = true  ]  d2 ^/ X9 P0 Z  e7 c9 R
     last_attack = XAS_BA_ENEMY::ENEMY_FINAL_ATTACK[self.battler.id]9 k& k' E' l: t2 O! W8 \
     self.battler.last_attack_time = 15 if last_attack != nil  
% j0 w# [9 ^3 {; G     unless self.tool_id > 0 or self.battler.e_item
9 I7 u9 r; ]: J         @actor.exp += self.battler.exp% n2 a- N/ {4 k; x4 f. c
         $game_party.gain_gold(self.battler.gold)
* Y3 [# c* w# ^/ ]) P9 w# q     end
) x; @& i9 ]- R1 n3 b     id = XAS_BA::DEFEAT_NUMBER_ID
/ [4 x2 @9 L* s$ F/ \     $game_variables[id] += 1 if id != 0
: n7 l' \' Q0 o5 S; ~: u) Z     jumpa(0,0,20) if XAS_BA_ENEMY::COLLAPSE_JUMP == true       R6 ^5 I- A$ P# }3 P
     switch_id = XAS_BA_ENEMY::DEFEAT_SWITCH_IDS[self.battler.id]1 c- f% P' n( Q# g- v! z6 N0 z2 y$ }
     if switch_id != nil5 p" e* G; u* p$ D# T' `# \
        $game_switches[switch_id] = true7 g5 f) W* ~% P2 i1 X
        $game_map.refresh- R( X/ u  f: _, _! N
      end- \" I* E) U% g3 z
end   5 ?5 J  ]- ]! z2 I/ k7 k
    a* |( @4 {0 @3 a) V
  + ]8 U0 ]" n9 V7 \0 U
  
# Y- ]; U" p& r' } #--------------------------------------------------------------------------
% Y1 r) r+ {! q8 L # ● Treasure Dispose% W4 i8 S) a$ v9 U
#--------------------------------------------------------------------------! a1 R: @% s- _
def treasure_dispose' u: R: q1 N/ \3 ^5 v: b
     if self.battler == nil and self.is_a?(Game_Event)
, x+ e( C4 X% |: ?# L        if self.treasure_time > 0 and 7 Y+ g! |# Z4 V7 i% M! Q
           self.treasure_time -= 1
9 `  q) O, c1 g6 i           if self.alwaly_on_target_id != 0
- n2 `$ m& O  _' _, `              self.zoom_x = 1.00- _& r; h, `4 p$ o7 u+ L
           elsif self.treasure_time < 100
1 E& Y, g/ W8 M, _% C/ j1 }8 l' y              self.zoom_x -= 0.01 if self.zoom_x > 0.01 1 s5 K& F% {# w) m
              $game_map.remove_token(self) if self.treasure_time == 02 `1 {/ a/ d5 R" @
           end" S8 ?1 H! _! ?# M4 y* s0 L9 @
        end * \! M( x5 s) O; v' S! L
     end  
+ F. j; v) k0 W8 m8 q7 A end 4 t9 J5 s. E+ i$ G

7 C4 s7 h; L9 h #--------------------------------------------------------------------------& k- m- `; R8 z) m: ]
# ● Hit Reaction ON
# b6 @9 M8 x$ \% U9 s! b- Q0 U: } #--------------------------------------------------------------------------
( x6 H) {6 X; s9 N5 L, I: `$ ^, h  def hit_reaction_on" S5 V) Y" p% `7 o5 ?6 C# Y
      return unless check_battler_exist?   ( `; _# F$ e0 y+ a
      self.hit_reaction = true
  K4 {# ?9 A# r  U; n: S, J  o  end  0 q7 R1 `6 [% |3 b
   
: x; V' w1 h6 u  h' y3 D #--------------------------------------------------------------------------
# E/ T$ w9 h; o5 H8 i1 K4 b+ T # ● Hit Reaction Off) p3 {; d% a* P% {& q- c
#--------------------------------------------------------------------------0 S" V! k, y* a
  def hit_reaction_off: E2 J/ O# T8 {. j
      return unless check_battler_exist?   0 u# @9 L) N% K7 p5 b) N/ p
      self.hit_reaction = false
/ ~( S5 P9 _2 ^5 H  end  
7 e' P4 |$ s: q4 Q   
( O8 N" J. n8 t3 N# B #--------------------------------------------------------------------------/ C8 Q6 R& `0 S1 m% h1 x
# ● Hp Hit Reaction
/ ^6 v- T3 ^' N4 D2 B #--------------------------------------------------------------------------
2 B- e- ^. G- ]6 ~4 V- c* x  def hp_hit_reaction(on)3 g3 J( {5 \  u( X$ u
      return unless check_battler_exist?   
0 ~8 E6 O& \# a  o5 z; j$ ^      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100% b  D3 Q7 w9 R2 ^
      if self.battler.hp > lowhp    / e: e1 E& x/ n
      self.hit_reaction = on
' X9 N* V7 j3 ~, j- B, H% l$ K      else
5 F( k* A4 R- I      if on == true
  ~9 D  u& i5 J      self.hit_reaction = false
$ L" L8 N1 M' O      else
. {! y6 P* u. H8 z      self.hit_reaction = true
1 x, z3 J5 ]+ d7 a* n: [      end
2 ]# {" c3 ]0 E( o      end  3 h8 E; {( F9 ], v
  end        
; l* v- O. a  |) d7 ?2 v1 G" e. t  6 L2 z5 h, B9 M" R2 @
#--------------------------------------------------------------------------: p5 h2 ]( h: r  H, g
# ● Hero Level Hit Reaction+ {. }  h& U1 P& N- t6 r* V
#--------------------------------------------------------------------------6 i: e! W: O" m  a" M
  def hero_level_hit_reaction(level,on)
: t" g8 k( ]9 i      return unless check_battler_exist?   " p" X& I* Q. g
      actor = $game_party.actors[0]6 s. p1 z- i0 q7 n( U3 Y; {
      if  actor.level >= level    " u+ l: X/ K% W0 s2 n" D( p
      self.hit_reaction = on
( O7 S5 p6 m9 Z0 g+ V; Z* q5 E: p+ a      else- [: S) `( Q. F
      if on == true
# R& d* S& N# t0 G      self.hit_reaction = false% n" P: c9 R( k$ Q5 t% u0 d# |
      else
* g8 i; j* n" t2 s: u      self.hit_reaction = true. h) U  \+ N. O/ f2 k
      end
* T$ b/ _  H! Y2 K8 Z8 e% @      end  
! d3 C8 P& R) B1 F  end            
3 C4 F- a9 |( G! ^, r9 ?6 P+ r+ X- s  
& l9 d; A5 r  l6 o #--------------------------------------------------------------------------; n) I7 y* c' ]( D  `1 G, k0 r
# ● Shield Enable! 3 m4 J5 P# n4 B  O
#--------------------------------------------------------------------------' m' b' y- X" j* @: n
  def shield_enable!
8 h. u) _$ r% \: F6 s+ d      return unless check_battler_exist?    5 V) R1 h* v2 e; j9 _
      @shield_disable = nil. {2 p) m. s' c+ [  v( x6 N* ^
      self.battler.shield_active = true3 f& c1 f  ]5 y0 @  K5 C0 z. q$ ?
  end
  U2 c, ]0 U( {% g  
) j/ r( W! R  C9 O- E #--------------------------------------------------------------------------
* ~9 H$ R4 h: f4 u1 y # ● Shield Disable! 7 p8 _$ L, j, ]) O% I0 k
#--------------------------------------------------------------------------
2 t4 Q8 z1 U% z* R& Q# }  def shield_disable!
- h6 y. K$ \& ]" S  m8 Z% i      return unless check_battler_exist?   
) I0 X  o6 c" h2 P) A' r      @shield_disable = true2 Q, u; j- X6 U  `9 n
      self.battler.shield_active = false
5 P$ N* z% R+ x  D8 g0 e3 z/ w  I) U  end  
' @0 A2 s  N7 O+ K' U) z" I$ a  
, S; B( ]3 K; {: ?' I #--------------------------------------------------------------------------
, `( d) W$ a! L" s( z # ● LowHP Shield   P8 L  {; v. D# o4 x* [
#--------------------------------------------------------------------------: T0 v3 f; Q! Y$ z( s- n
  def lowhp_shield(on)
  v0 s8 f5 Z, ^: _      return unless check_battler_exist?   
% W" ^' p; t. v, V6 I5 D: ~; @  Q) w      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100" e1 Y" O" A; a3 M# \
      if on == true
: r: k8 O; r$ _! \) X: j- W      @shield_disable = true
( k1 C" N# J& w  Y" y0 ]) N5 h      elsif on == false6 q" u$ M; e6 Y3 F4 X' y* m' A
      @shield_disable = nil) l) Z: v9 T  ?" _6 ^5 i
      end
5 F* s& }# d0 x7 k4 g6 z4 |- X  end      4 F1 M$ g' Q5 V: H( N
  
2 l* t; G/ W/ @" f) T! o% \ #--------------------------------------------------------------------------+ A$ H# G- v' j1 ^# `
# ● Hero HP Shield , z" L2 x1 N5 V3 f% H# `# I% \
#--------------------------------------------------------------------------3 y4 f( y8 H* z% y
  def hp_shield(on): P! `+ {; u5 Q& U1 G. y3 r
      return unless check_battler_exist?   
( {6 i1 A/ Y; v0 [, ?; b      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 1000 s% A- q0 x/ T4 ?) ?
      if self.battler.hp > lowhp
6 e) r: A9 u* i. {. n) F        if on == true' R& k% g3 M) l" C( K  _
        @shield_disable = nil
6 a/ P6 u& P  ?& v  {        else/ J" A, `+ y1 ^# v" T3 o: E* n, R/ }# D
        @shield_disable = true; L5 [1 K! a; o
        end
( B1 w0 ~( S  y7 Y) y      else
9 `6 Z: c+ l, {) N        if on == true8 |% J( X# V7 |3 Y
        @shield_disable = true
; `/ b  J  Z# S( T6 R2 c5 a8 e6 e        else1 J+ |$ E) o3 L% P' K
        @shield_disable = nil: Q4 c" ]) A9 O3 Q; O
        end           
6 r- v( g# H2 H2 F; e) h( r      end, [, X6 u/ z: @: e! \4 l0 V
  end    $ K" L4 q# B, R; x
  5 H9 F1 F! u+ q0 k
#--------------------------------------------------------------------------
; _$ V$ s; }8 z  a  W- T # ● Hero Level Shield ) n# Q0 X( @0 c; p+ v2 `
#--------------------------------------------------------------------------' M9 z6 F- V3 Y5 m
  def hero_level_shield(level,on)$ P9 Q' A: B5 o$ H/ T. K
      return unless check_battler_exist?   7 d0 T1 u' A; v- c  A& ]  H* g. U2 o
      actor = $game_party.actors[0]
9 u. @5 c) f' s' |( E  C+ [. T      if  actor.level >= level        6 ^' c! d3 T- v) }4 r9 o
        if on == true
( s( R- g* [) d: D* p        @shield_disable = nil
5 g- J" ]) K! N, S% Y* |$ `& S        else/ o/ g& R5 K( }8 _% |2 H
        @shield_disable = true9 g8 f8 i, p3 n+ V5 }  ?
        end         
4 Z  H7 I& Z$ a  _      else
0 z, r( k8 E! g/ N" |& d        if on == true( M6 ]4 n  u( l4 O" A
        @shield_disable = true1 u0 Y7 o0 p4 z4 U( e$ G
        else& l! T' b' G2 H8 m7 m; D3 {7 A
        @shield_disable = nil
; M$ y/ `2 l' f2 g: n        end        " c+ L2 e. @" G" v1 @0 B4 A, j
      end0 q: A  ?1 A6 u9 d+ u
  end   ( D+ G/ a. U. p- I& ?5 S
  7 ]3 P- b4 S, I8 V  B6 P) B
#--------------------------------------------------------------------------
9 r# P8 s: Q9 W$ o2 U # ● Shield Directions ( M5 r0 k9 r& j1 F$ O
#--------------------------------------------------------------------------
% i; j. U. j' G/ J& ?9 o1 Z  def shield_directions
; x- r; Q1 [! H% F) V      if self.battler.auto_action, s" C& r" N- V3 o- c* N
         set = @shield_disable ? [] : [2,4,6,8]' A* Z' y6 _6 h, L0 ~9 v
      else
. \4 w" d9 L8 K" \- O         set = @shield_disable ? [] : XAS_BA_ENEMY::SHILED_DIRECTIONS[self.enemy_id]4 H) G8 x  [; h0 p7 t: A
      end  7 }* b! o. `7 W9 i. G$ u* n; Z
      set = [] if set == nil
3 L. Y# g* i2 T; q3 [: L! ~5 f, ~- h      return set' a6 f( E* I& _. ~6 j; Q! \
  end
" {+ \  n, ~# @: f% V+ c( y; j  
$ g- p1 W& m, |! D4 c #--------------------------------------------------------------------------  Q5 }+ n6 Y3 f7 }  `1 C8 E
# ● Shield Actions ) g( l  h+ ?+ P
#--------------------------------------------------------------------------
5 q* D0 b& t0 D( S3 u: o% Q# |  def shield_actions
1 {# G' J! u1 k' G% u) |: p      set = XAS_BA_ENEMY::SHILED_ACTIONS[self.enemy_id]9 E; f) H' o0 R- U
      set = [] if set == nil
  r! B2 @5 F! w  P( O4 ^      return set
' p1 t' [+ g% w  end
# H% b) h3 }( {- b! L: Y. x  # t% Z# O& j7 \4 `$ [, U% z
#--------------------------------------------------------------------------1 I. i# K6 A, d& R! U2 {+ Q
# ● Knock Back Disable6 D! [* n4 J3 X! ]7 b& k2 E* l. b
#--------------------------------------------------------------------------( G+ `# o; m# A; J  C* y' w4 I' `  }
  def knock_back_disable
% {- s% t; R" H; x    return self.battler.e_knockback_disable
) w; y) \, E0 M! @$ u' F: W  j  end
; Q, {9 }# a7 t' k. f# S. L8 ]  
9 S7 U- X+ K3 \1 }. z #--------------------------------------------------------------------------2 ~$ G4 O0 b" o6 z: R) O3 |
# ● Body Size
" }" Z0 `8 |1 `# T: i3 K, g( ~2 z #--------------------------------------------------------------------------8 z5 ]3 G. b/ t8 F3 n
  def body_size
0 _0 \$ H: W  t8 ^    return XAS_BA_ENEMY::BODY_SQUARE[self.enemy_id].to_i: t, F; m9 ]% i7 g  x7 @0 m
  end
+ `! g, L+ N& B4 Q7 A, w4 m  
6 R7 h$ h( b8 t9 Q" D( ] #--------------------------------------------------------------------------4 f' E8 r- ]0 E+ m) @5 N( z
# ● Defeat Process+ I5 V. [$ s) U9 C: e* J! O4 F
#--------------------------------------------------------------------------
! q% M1 c7 Y1 Y$ Z$ h3 ?) z  def defeat_process
9 A: I6 ]9 |1 j/ Y0 @3 p4 t    super# _% @, P3 l  c5 f6 a" Q
    enemy_defeat_process(self.battler)
' j) d/ }9 e6 F6 }  end( {6 w+ P' K* g2 a6 y
end
1 V- \/ T% \9 h+ |5 `. E! n( t5 @9 \5 a  s2 g
#===============================================================================
: ]! S( |2 `$ p: P* _# u$ b# ■ Game Event
. r; c3 u, x/ X2 o9 |$ ~  L/ e1 v7 O#===============================================================================1 U. k  D" q# y4 {3 [; S. y
class Game_Event < Game_Character/ \( E+ ~: W, S0 X
  attr_reader   :collision_attack  9 v. P$ _. w6 ~% Z

% S+ i( h" w4 x #--------------------------------------------------------------------------
( ]) r2 ~1 j4 k  L # ● Attack ON9 C, Z/ m7 K: D
#--------------------------------------------------------------------------
3 M& s* o$ Y$ j" V; j  def attack_on! q, P0 C8 A, Q6 `( s) g# i; d0 J
      return unless check_battler_exist?    : H2 ~8 e8 t0 ~, n, M. z  V: B" [
      if seal_state?(1)
5 X; D9 B8 n  z( e. I; ]5 O$ p8 e! \         seal_text3 G9 z) n# g3 ~0 `! D! m1 \
         @collision_attack = false
9 }& g' I  h; j6 |$ x& n& |1 ]         return 1 L% A5 G1 w) j/ Z# s  T
       end9 u- j8 \" u! z' {& j
       @collision_attack = true
+ D/ n$ C, `* a% S) a' b, b. K. S       self.animation_id = self.battler.animation1_id
/ E# o* Y- z9 M; z, ~$ \0 j       name = @page.graphic.character_name  + "_ACT"
: W0 j$ L8 m7 B. p$ e$ J4 ^" S& F       if RPG_FileTest.character_exist?(name)
5 x2 P# |# ]  n% _# k% T( u! K          @character_name = name" Q( E) a0 a# o3 j, }" \
       end0 v2 d; I, K7 c4 A4 B
       self.refresh
) _5 _8 V1 J/ r1 g* D3 a  end
! h7 f6 r- Q+ L! F , S6 k& P( W6 F+ M* C, x+ k
#--------------------------------------------------------------------------
) \4 M- `* |! h6 c- f # ● Attack Off% L. c+ i- ?$ o3 \3 `# t) C* m
#--------------------------------------------------------------------------' g* g' D' y# g; z. B7 K
  def attack_off6 u3 D9 r' i9 y: O
      return unless check_battler_exist?   
8 p! z9 T" w3 `( _  s      @collision_attack = false   0 F% N& Y+ R( t7 _7 B( Q" d
      return if @page == nil
' l% r3 I6 M3 {9 O' d0 I      @character_name = @page.graphic.character_name
6 b/ P: j( c& M1 O0 E! r8 H      self.refresh9 S. w0 V4 q( `, `& E) c. O
  end7 T9 E& O7 z3 s8 l/ w5 k$ d
end$ w$ l/ I% z# Y
" W8 D, U. U) f# C% Z5 h3 B4 T

" \$ @; H% U0 G! d& m3 s#===============================================================================
% G* k: y0 |) }) f# ■ Game_Player- N/ h* V, d  `9 }
#===============================================================================- R1 k2 j2 Y2 @( C/ j8 V! V8 d- E
class Game_Player < Game_Character
5 ]& r5 o5 T+ I. e7 t& r: J  # K; z2 H; }1 u9 [7 Q% t. j  w
#--------------------------------------------------------------------------
2 ]; w3 t- f7 {1 R% ~1 f # ● Can Touch Damage
5 e7 a7 C6 H0 d% U; m #--------------------------------------------------------------------------  ; o# @3 ^7 l# |5 C
def can_touch_damage?(event)! b% v' @6 T) {2 q1 E
     return false if event.erased. A0 s8 D( z0 l
     return false if event.battler.dead?8 l& W3 z4 h, N3 p, N* R
     return false if event.knockbacking? " Q$ s+ ?2 e' G! B) \) k* H. @
     return false if event.battler.stop* [6 K* a* E) j% l: c, `
     return false if event.battler.state_sleep   1 R9 a, f/ a7 r1 x5 c% e' f
     return true4 O* y3 i) O2 e
end
. o' a9 S( G8 s& j/ I& r; l  " c5 O+ I: m& q- B3 e
#--------------------------------------------------------------------------
- x6 D% K) q. _  B # ● Check Event Trigger Touch
/ T0 R2 r* F* t) g2 T #--------------------------------------------------------------------------
& n% v) h7 B; ^4 E4 Q/ X8 r  alias xrxs64c_check_event_trigger_touch check_event_trigger_touch/ d' X- l. ?4 s& [$ r, m
  def check_event_trigger_touch(x, y)0 `/ p. b$ k' U$ F2 B' m; I
    xrxs64c_check_event_trigger_touch(x, y)2 X- P1 I: s: J* `
    if $game_system.map_interpreter.running?
: p- a0 i; p- k) i5 w      return
/ N* I  m' P! I" b, f    end* Y0 r; U  d# t0 \1 i7 A9 @
    for event in $game_map.events.values8 ?5 {7 Y' S- f* c8 W9 Z2 `
      next unless event.collision_attack . j9 x7 \1 y0 _. N& b: L
      unless [1,2].include?(event.trigger)
% ?$ g- q& [0 C# j: \. M8 o5 b" \3 H. o        if event.battler != nil and event.x == x and event.y == y and0 P1 q6 k$ H4 W% K3 i
           can_touch_damage?(event)' Z- z; T- @, T% L5 }  a
           $game_player.attack_effect(event)
1 n# r5 g$ S* [8 q        end
5 f5 |  O) @6 a: x/ W+ M2 n0 ~      end' N: T* }( }- i7 P+ W
    end; O% i9 i/ T+ l, A: F% C5 R% B5 z
  end
" Q5 h' D- o0 F5 |/ h* {end& c" g9 z1 C# b8 n# i7 h- ~

! U" V* r1 o' E( @' k; O/ ?#===============================================================================
( X9 x3 j# j3 j2 u# Q# ■ Game_Event
7 i  @# l. X- P0 i. h+ b#===============================================================================: `0 J. `% o4 y* H! k; \
class Game_Event < Game_Character
& C4 v4 k6 o$ k  ! E& s% l. S% N/ w5 D
#--------------------------------------------------------------------------& D1 p2 f9 l, |4 v* ^
# ● Check Event Trigger Touch6 x; g% N5 x+ {7 m
#--------------------------------------------------------------------------
2 D( V( g5 U& a6 }$ K  alias xrxs64c_check_event_trigger_touch check_event_trigger_touch
; o: C% s2 L2 |. a7 R# J8 D! F" C  def check_event_trigger_touch(x, y)
0 s0 ^& ?! Z" _. g( D  C    xrxs64c_check_event_trigger_touch(x, y). o# _8 o1 c$ b9 P
    if $game_system.map_interpreter.running?/ |5 i9 T: D/ e# h( ]8 V# B' ~
      return
4 S9 D1 e! o* T' @  B6 G! L    end
. ]2 o% r5 X) K+ r& m$ ^+ d4 H    return unless self.collision_attack8 E: V( u3 q5 e8 ~3 `7 Z2 r
    if self.battler != nil and x == $game_player.x and y == $game_player.y
' w- d9 J+ r. \' ^/ A& e      $game_player.attack_effect(self)/ G; L: A- M+ D, v  q* X/ s
    end1 E2 F& a( O6 h4 q. d6 B9 a  }
  end
) {4 Z7 T. m5 [3 C9 ?end1 y4 N3 d( Q0 z+ K
9 C: R) ]! X+ l! I( i& o
#===============================================================================
4 `* [8 _6 l" T$ R  O' j, C4 k" V; h3 t# ■ XAS_BA_BATTLEEVENT_NONPREEMPT
  K# P& @" _/ H! A#===============================================================================) b3 k! t6 u9 _( h. r. y* s
module XAS_BA_BATTLEEVENT_NONPREEMPT& n% o  m% E! l8 u
  
% a5 Q8 ?9 v7 ]) x3 r4 v #--------------------------------------------------------------------------
7 P+ B: @3 u0 X# n/ m  ~+ o0 w # Update" c, Y* W, |# ]3 F- X& _
#--------------------------------------------------------------------------0 p6 D  B: b* V; Q
  def update
/ ]0 Z$ Z: U" |+ j- a3 z# Z, c    return if self.battler != nil and $game_system.map_interpreter.running?' v8 q  @. U8 r$ f( s
    super
! l  g) }" V/ t1 Q% r! o) }' G# P  end  7 `3 s2 Z, m9 B2 y  z1 |  N- _
end1 p/ a7 {4 z# J2 C4 z

+ d+ _  ^& U( B, p#===============================================================================% y6 y7 _8 a, }, E' }
# ■ Game_Event
' d3 G; t1 R' P/ i! {; T; Y* }4 Q#===============================================================================# b6 e! X# L2 P! g
class Game_Event < Game_Character
* w' A5 k( P0 A9 t2 \  include XAS_BA_BATTLEEVENT_NONPREEMPT3 I0 C( `* J- J, s# ?" r4 n
end
( i  B6 j) E/ v# n6 D1 d6 w6 C9 E* k% r0 {, |

8 y# K) p7 Y" I" Q7 D2 C: q6 {
, n9 Y+ N9 {: W# ~% o$ R, y
* ^9 `5 J& n2 E! J& [& `
" y3 m6 h5 H- b- K$ O" P( j
; r2 |; t" u. v+ i3 m#===============================================================================
  P9 F1 }4 X, a. H! p5 C) \# ■ Game_Character
7 @- E/ U5 f) _) r. o& p  ?* i#===============================================================================) o- T, ^! |7 i  p% H0 h
class Game_Character% M1 f! n8 ~, ^# [
  4 ^% J, U& M( w, t# Q  D
#--------------------------------------------------------------------------2 o! P; t* v3 m- \+ U* _
# ● Blow
4 d0 M7 _8 D9 Q. e( J; ?% o #--------------------------------------------------------------------------2 a* h! G% J+ }# c+ [
def blow(d, power = 1)
5 C% t4 N2 l. c. ?# \- F; D4 W0 p    if self.move_route_forcing and $game_system.map_interpreter.running?  j  Q/ \9 ^# m
       return 3 `: r1 `; l2 ^! h
    end   * Q4 G$ w9 Y) W! u$ o2 K* u  T* m' U
    @need_refresh_pose = true( T+ r, n, m' E9 \9 t
    @pose_type_old = " X "   , a0 h' S) \+ ?6 [; O0 u6 |. d
    @knock_back_prespeed = @move_speed if @knock_back_prespeed == nil
/ O2 t/ |9 X, [' u7 ~  B    return if self.knock_back_disable" ^7 N6 r. f$ g% y2 j
    reset_pickup if self.battler.is_a?(Game_Actor)
* A+ Q. E+ C8 q; g$ C    power.times do7 t& b& q5 n, Q( h* v+ b
      if passable?(self.x, self.y, d)9 P! v% q# t4 \8 Q
         @x += ([3,6,9].include?(d) ? 1 : [1,4,7].include?(d) ? -1 : 0)2 |( k9 Q9 o5 Z% n: U7 W
         @y += ([1,2,3].include?(d) ? 1 : [7,8,9].include?(d) ? -1 : 0)
! \, R# G) n  ?- a/ I; F# A: `      end
4 I/ H0 C7 v& j2 |4 p) `    end
4 J0 O1 r$ B# s: ~, C6 x    if self.battler.is_a?(Game_Enemy)    + E/ z, N, I' `4 F3 e  W* a6 u
       enemy_knock_duration = XAS_BA_ENEMY::INVICIBLE_DURATION_ENEMY[enemy_id]
! W1 J! x/ I& Q" v" S/ z, G       if enemy_knock_duration != nil9 K; _9 t2 r+ y! j  }2 a: K9 E% f
          @knock_back_duration = enemy_knock_duration
3 N! @' F/ j2 R, o# h       else
2 }; ]) q- f2 L* v/ Z& l! e          @knock_back_duration = XAS_BA_ENEMY::DEFAULT_INVICIBLE_DURATION_ENEMY   
$ D5 Y: c/ F, s3 k  j7 V       end      - ?& A' R( ]+ T3 j) j
    else: N4 h2 u( f/ _6 ?; j
       @knock_back_duration = XAS_BA::KNOCK_BACK_DURATION_HERO
( Q0 e3 a+ ~8 o' A* v: p       jump(0,0) if XAS_BA::JUMP_HIT_HERO and self.action == nil6 x, A4 \9 u) C. X2 x3 ?: N. }
    end   
9 f$ j; \6 J7 `4 t    @move_speed = XAS_BA::KNOCK_BACK_SPEED
/ S3 Z% w4 i" T4 B, c$ r7 V, x end  
* D( Y- D6 S, I( P   
/ }3 G* s$ I: s4 D5 Q) v) W #--------------------------------------------------------------------------
7 R8 w0 t, q. |' Y( ~4 ?8 Y$ J6 r # ● knockbacking?
9 f$ |4 Q/ g. S1 E  S. F #--------------------------------------------------------------------------
( q6 }$ v* g% r1 o! U# z# ], g def knockbacking?( Q. {9 G% D5 t! n
   return @knock_back_duration != nil
9 E( s: G' V$ Z+ B1 D) n end
/ Z2 L5 I" R$ H0 B  
+ r3 T( G  O( S, {! f #--------------------------------------------------------------------------
/ v8 l/ Z  \/ E/ \2 c1 b, F # ● Collapsing?
; F# v' S8 Z+ e1 F2 U( i #--------------------------------------------------------------------------
; X8 J2 ^9 }$ B0 ? def collapsing?, o- j9 m! `( K  r$ q1 D6 b
   return self.collapse_duration.to_i > 0  H9 ^( b8 v! E9 ?# U  x) D
end
( G& z+ n0 ?& C% C" n6 J, V/ T$ I5 `; j+ d
#--------------------------------------------------------------------------
2 L$ G! Q; X9 Y+ D # ● update_text_popup ! |- c! ?  E( g! d0 a
#--------------------------------------------------------------------------      % W: _% A, A2 X
def update_after_text_popup 1 ]7 d$ R% m. b! C! s
     return if self.battler.after_damage_pop_time == 0$ X  `7 ^( q1 a% l9 \) |0 h  t5 J* e
     self.battler.after_damage_pop_time -= 1& W2 S8 T- v- Q1 A5 }8 D
     display_damage(self.battler.after_damage_pop) if self.battler.after_damage_pop_time == 09 M7 b+ M" c5 Y5 w
end
+ g4 r) Y' }6 S 5 X6 r# K9 E& U5 u! i, r
#--------------------------------------------------------------------------& b7 b' E. }+ j
# ● update after animation
$ a+ ]. i# W0 c6 s+ N! Q #--------------------------------------------------------------------------      
8 i0 a3 d6 m2 T; ~ def update_after_animation- T" n/ W& Z8 m1 P
     return if self.battler.after_animation_time == 0* z' f, e  P4 A7 K' k. C
     self.battler.after_animation_time -= 14 [$ i5 z- `- ^$ u# u
     self.animation_id = self.battler.after_animation_id if self.battler.after_animation_time == 0
- s1 R/ m- H& Q end  
! [$ o, K6 i5 C/ g8 l7 x ' M. H# H& P, D) G' |0 ^
#--------------------------------------------------------------------------
# K' `1 O2 K; H+ a # ● update knockbacking
; U+ J* N3 {9 M/ e! J #--------------------------------------------------------------------------       ; p. ?6 f! u5 B9 X5 ^2 o
def update_knockbacking
( M9 S# i! R" R! X* B2 P     @knock_back_duration = 5 if self.battler.state_sleep
# s2 A; w6 q* {4 E& j% Y( E2 \     return unless self.knockbacking?& }3 T& L1 v4 f1 a
     return if self.battler.stop
: i: F  {. s2 N' h  t! L     @pattern = 0 unless @direction_fix- e. Y, U4 b1 t- M
     @knock_back_duration -= 1 unless self.throw_active - d3 [$ Q* Y8 f: v; |! l
     update_knockbacksprite
/ |2 H5 N/ X3 A( U, g3 |4 N" q     if @knock_back_duration <= 02 n9 _' A  Q1 X) I9 L; A
        @knock_back_duration = nil4 B! S. |( Y2 p, F1 u& S
        @knock_back_prespeed = nil
$ b; G- i  q" e3 o; L" M0 ~$ }        if self.is_a?(Game_Event)
6 ?* t. J; J" S3 Q: {           @pose_type = "" " m! j; A* }2 C
           @pose_type_old = @pose_type* y* G  Z8 b/ ]; i6 k& p' c) A7 v
           @character_name = @page.graphic.character_name' `* k% }. O" b
           self.refresh. h3 J( q& D! }9 c, O+ p! j- n' @4 {
        end
8 ^/ A* ^2 |* t     end% a  J4 I' g9 C. Q* e0 f7 |0 J$ P
end! i* g6 M' b! b" T0 k, u
  
! ]' Z$ E) K' K8 r #--------------------------------------------------------------------------
8 b$ U0 |& E& |1 [ # ● Update Knockback Sprite
: C+ C+ S$ Q4 [ #--------------------------------------------------------------------------   
, n/ k2 M) @! M def update_knockbacksprite
+ \. U5 T* S8 c" Z     return if @pose_type == "Refresh"2 j% w5 E; @& \* ~
     return if self.is_a?(Game_Player)
* w; d- g# X9 c! w- s/ a' t4 e1 Y     @pose_type = "Refresh"
* ^: {$ |! U& ^, {     name = @page.graphic.character_name  + "_HIT"
4 E+ r( f# o$ R, V% T/ @/ k     if RPG_FileTest.character_exist?(name)) F* Q8 s, ~! w0 _9 L
        @character_name = name
/ L4 a& f9 J  G1 t, k        self.refresh5 g  v4 s+ n) w' J" A
     end      7 w  t: H2 t# a6 G
end # |: W( b9 K1 E0 {$ p
9 ^8 m- W2 m. w& J3 x  n. H. y* s
#--------------------------------------------------------------------------
9 ^) C- I' G- t, L* v # ● Seal State
' y5 q! G9 _& M. {5 a' W: {+ V' | #--------------------------------------------------------------------------   $ V% |" M2 ^. T: T( K
def seal_state?(type)4 C" b( i% z1 V, N. V+ j
     case type . E% M; D7 L, Q9 L
     when 0 #Mute ( Y; p( g! x( t8 Y; T4 x9 d: I
        return true if self.battler.state_mute& N* G6 e" {, z4 }6 J
     when 1 #Seal Attack
" D, K+ [& ]3 D        return true if self.battler.state_mute
- W* N8 i2 K9 Q9 Q; q2 c2 m, q* P6 `1 e# {        return true if self.battler.state_seal_attack/ u8 |; J- c; B
     when 2 #Seal Skill
! s. O% x) X& E! @6 J. X3 m( U        return true if self.battler.state_mute 4 Q0 ^4 @# E* E5 Y# }
        return true if self.battler.state_berserk        ' s& d7 u; H' c  s! c6 k
        return true if self.battler.state_seal_skill
) `/ m. L! g$ z% |/ w" g  r' \     when 3 #Seal Item   D3 l5 G3 [( M- w; t  H% I/ g
        return true if self.battler.state_mute4 v6 x+ y4 q! ]/ K3 d( M
        return true if self.battler.state_berserk        
% p5 W0 L: L; v8 `        return true if self.battler.state_seal_item
+ T8 X- [+ o! D9 i& ~; v     end/ m* ~0 k, m8 t7 O- F
     return false; _2 y; E( O5 c% h: Y; x, E: {" o
end   ( l* m& x! o) g# n" t( m: Z
  & w6 ?' Y, L+ ^7 l0 f9 w
#--------------------------------------------------------------------------
; J- }; N( ]$ h: t4 B  M # ● Seal Text
! _7 P/ c6 O# d# \5 n. p  z #--------------------------------------------------------------------------
/ z. V  f3 i( D5 @* K  def seal_text6 g6 B7 I3 x* y& p) p8 F% U" C
      self.battler.damage = XAS::SEALED_TEXT
- V8 J2 w$ ]; h      self.battler.damage_pop = true   
% A' D2 h7 k$ o& I/ r      $game_system.se_play(XAS::SEALED_SE)3 d8 \3 a* `" W
      $game_temp.clear_setting2 if self.battler.is_a?(Game_Actor)9 i( s- g5 E0 p* z6 g! d: {) F
  end
0 c9 {) A) I5 t3 k  9 c: \; o+ z+ V8 ]/ J; [7 x. b
end1 @: x5 x) p5 k5 a
#===============================================================================( W6 \* w. d* i1 `( H! R' }
# ■ XAS_DamageStop" l2 |' q/ b( \" C- m/ s
#===============================================================================
! W- h2 R, ]) Y! J9 L# U% Rmodule XAS_DamageStop
. w$ ?2 A9 }- ~9 j  
1 M! I% C, r- w* G. ]: O  #--------------------------------------------------------------------------2 F4 D" d- ?3 Z$ L
  # ● Actiong?
% \) B0 S% k8 |" S$ d$ ?2 m: k  #--------------------------------------------------------------------------
$ {/ \- [. U& J7 R( u0 y  def acting?$ k" z* m, c5 P/ e  b
    return (super or self.knockbacking? or self.collapsing?)" X8 o! d4 e9 ^% x! K$ o
  end+ D: P; U. r6 f" R
end
' `6 K: T2 a/ q6 ?+ G- J4 l2 `8 l3 L# ?" @  V( M  @  N1 H% f
#===============================================================================
" }# _- D! l: e# ■ Game_Player
" G# _5 n) r" N  L5 U* I+ s' }#===============================================================================
4 D# B# ]7 O& A5 M4 Y) gclass Game_Player < Game_Character* ?) M9 T* B, v) U4 |4 d) e) j  }5 x0 h5 N
  include XAS_DamageStop* q* n- Q) H; X- a+ Y- k# r
end
2 T5 O# P  S9 J) x4 e
9 b/ l5 k4 W  d8 |; q7 B6 `#===============================================================================* o$ v" ^5 V( n$ F  ~
# ■ Game_Event' }3 f# h7 y2 g% e: D
#===============================================================================
) q: C8 t( Q# u1 q9 d7 Yclass Game_Event < Game_Character
2 U% v  ^) ^. `5 D! q3 z% m+ R  include XAS_DamageStop
# f; j5 t' ]* z3 N. ^6 a7 c0 s  Hend. W- o0 l4 O7 T3 S/ D
" Z; N/ X% w. A2 M. L
#===============================================================================. e; M0 ]6 f5 P8 M) @/ r0 L  x, }
# ■ Game_Map( {' M% E: v: p  J
#===============================================================================
! `/ Q8 k4 F) Y, q7 u& Y' h$ gclass Game_Map* r( k2 m# w. [" O/ i; g
  
0 K4 ~1 f; `( r! S% X8 z0 \  #--------------------------------------------------------------------------
3 D4 F3 J; j4 v  # ● Starting?
0 S2 Y& a7 p& V) p1 k. E  #--------------------------------------------------------------------------
4 q0 D9 E/ e; K) k$ O  def starting?% z0 f# J" b! S" [
    if $game_system.map_interpreter.running?% I" r$ e) Z; ^- G% H, B1 y
      return true
7 _# G3 {, U8 {6 A: j    end
0 p; j; W) @: o4 b" w$ i3 {) @    for event in $game_map.events.values
& J0 y, Z) m% M; d      return true if event.starting6 D% D$ b' O4 d3 J; Q, k
    end
- F# `9 r$ q, y  c+ ]    return false
8 {. q# p! Z5 w5 O5 ]  end% P( |  y$ r# Q- }2 x
end. {& _1 d# w7 m6 U$ ~$ T

3 k4 S% z; v$ ~2 p# b#===============================================================================: p6 P% }) _5 a/ x
# ■ Interpreter# d% m" E4 i7 `' r8 b
#===============================================================================, v- p0 D! q! h$ A/ ?
module XAS_ACTION( k8 Y0 t. j5 w
  " S) L6 }- }/ z, O9 }
  #--------------------------------------------------------------------------/ n2 g! y7 ~* X
  # ● Xas Z Shoot Bullet
1 G+ Y0 C" b8 j* H  #--------------------------------------------------------------------------0 O6 F! j& g8 q% v) O( d* f( j
  alias xas_z_shoot_bullet shoot_bullet+ \+ w/ v* W. s: B: _
  def shoot_bullet(action_id)4 v2 ^; Q1 @5 U( L; z, R5 |
    bullet_token = xas_z_shoot_bullet(action_id)
/ }& h6 r0 Q3 V; p7 l    return bullet_token0 F$ U7 K, A, {3 L! X1 S0 C
  end; h' J/ [; ~$ r
end/ x1 w0 ~5 \$ c

0 b& {  L' \8 k6 T) [#===============================================================================
: F. t1 L( T2 `# t: y# ■ Sprite_Battler Fix
3 Z! `6 i4 R/ i) U" F" B! }#===============================================================================; J: t& e+ [+ ?  ?- F
class Sprite_Battler < RPG::Sprite. I( t& ]/ p& v( E
alias xas_damage_update update% @7 C7 ]; G8 i" a' C6 e6 U
& C  n9 O+ z1 ]/ o6 p. T! _8 p
#--------------------------------------------------------------------------
- D* j% z6 {$ }) w2 X5 D # ● Update, M5 p/ h6 r, Q0 K( Z4 Y
#--------------------------------------------------------------------------( \, P; E2 O! e
   def update* a7 E8 n2 K" g7 a8 p
    super % e4 O1 T$ W$ F" X" s5 {1 }
    if @battler_visible7 v5 R* j8 J' F* C, y5 `
       if @battler.damage_pop
0 j: B- B' c9 A0 X. I        damage(@battler.damage, @battler.critical,@battler.state,@battler.item)
# c; B: ~; Z: f- ~" _        @battler.damage = nil! @4 P+ N+ B* Z2 b$ p1 z! Q
        @battler.critical = false
2 ~/ S2 v% V/ F. ?        @battler.damage_pop = false3 }) }/ X5 O3 f$ q9 U0 w
      end
4 k1 V- s2 |7 G6 O6 ?2 C# V4 {    end  
$ U* T& n: j7 e5 T% n    xas_damage_update$ c$ U& X# f8 K1 i  S1 u' A: v
   end" n/ K( B# ?7 d* Z* `2 A/ A
end
  P% m3 t8 K8 U( z3 E[/pre]/ z" W  f  J( ^6 ^
应该没有问题的才对,替换XAS - Battler 1试下吧,0 _9 C; p* U3 S/ V& A  r
我这里完全是正常的。
往事简直不堪回首,稍微做点想做的事吧
回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 2012-4-15 19:19:10 | 显示全部楼层
本帖最后由 hys111111 于 2012-4-15 19:19 编辑
9 {# J1 W7 ?7 _% }- o- }; v% @9 V4 D6 y  P0 N4 Z  n$ \0 D
我试验过,全键盘和XAS脚本无冲突,为什么不直接放全键盘脚本进去就行了?

点评

UI怎么办呢,实现是次要的,视觉才是重点。  发表于 2012-4-15 19:42
回复

使用道具 举报

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
回帖
228
 楼主| 发表于 2012-4-15 20:48:06 | 显示全部楼层
本帖最后由 timmyyayaya 于 2012-4-15 20:48 编辑
, R% U" a% z" T1 A; }/ u  h. f3 a) T+ K+ L( _6 T! U; i9 y
401行
  1.       for i in [email]0...@actor.skills.size[/email]
复制代码
發生SyntaxError

点评

论坛问题。改为:for i in 0...@actor.skills.size  发表于 2012-4-15 21:08
回复

使用道具 举报

梦石
0
星屑
672
在线时间
2184 小时
注册时间
2009-12-6
回帖
571

开拓者

发表于 2012-4-15 21:09:47 | 显示全部楼层
看到email我就疼了,DZ这论坛系统真心奇葩
; U3 L5 O2 }# ?; V" N) O4 h0...@actor.skills.size
' \* B3 u+ P( n8 W" {这行改回
  1. for i in 0...@actor.skills.size
复制代码
就行了
往事简直不堪回首,稍微做点想做的事吧
回复

使用道具 举报

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
回帖
228
 楼主| 发表于 2012-4-15 21:17:21 | 显示全部楼层
感谢您细心的修正,目前好像没有问题了,. ~1 q$ t& w) T9 B3 u
若有其他问题再询问,我试着改按键看看,超感谢!/ x! X0 b5 I, Z" U  ]
) v- O" z# @' X; Y! e
回复

使用道具 举报

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本发帖返回顶部