楼主: timmyyayaya

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

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

点评

感谢您!  发表于 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 编辑 ) r# |9 ], v1 \, K9 u: W
class Game_Player < Game_Character - G) `+ D4 @) K/ s
#--------------------------------------------------------------------------
2 X( S' I" l0 ~( Y6 i3 X% z # ● Update Command3 j  _- e1 J6 b# f7 @9 G: I
#--------------------------------------------------------------------------  
+ U8 ~. k: t) C+ g0 _ def update_command
# {) |$ d- s5 V0 @3 ?: W* j
在XAS - Battler 1的140行左右找到这一段吧,: m8 e/ U( Z5 m; t, n+ L5 e
在def update_command上方加俩个
  1.     @hothey_skill = (Input.trigger?(XAS_COMMAND::SKILL_ACTION) or $command_skill != 0)  u5 c, M7 C3 t7 J" U2 B
  2.   @hothey_item = (Input.trigger?(XAS_COMMAND::ITEM_ACTION) or $command_item != 0)
    * e' ~) S& e, K. M

  3. ! e* m& v( X2 J/ [3 G
复制代码
然后替换elsif的条件,附近差不多改成这个样子:
  1. class Game_Player < Game_Character # C3 a% i2 ^6 r9 V8 |! x
  2.   % k4 j/ {! w6 f! Y
  3.     @hothey_skill = (Input.trigger?(XAS_COMMAND::SKILL_ACTION) or $command_skill != 0)9 o. d+ i0 n" m7 g8 i8 V0 s
  4.   @hothey_item = (Input.trigger?(XAS_COMMAND::ITEM_ACTION) or $command_item != 0)
    9 k  d$ z4 H, g' H* w% ^1 Z

  5. 6 b3 s2 y' c5 r
  6.   
    7 a$ Q, x5 I) E/ i1 L. P
  7. #--------------------------------------------------------------------------. U' f7 {9 j8 K& y6 V: v
  8. # ● Update Command
    , ~! f& o% Y' k5 O7 @% h) S- ?
  9. #--------------------------------------------------------------------------  
    ' t6 [- P8 ]. I6 n3 D
  10. def update_command
    2 W/ {8 t1 R% |5 s4 I" X7 c
  11.      if Input.trigger?(XAS_COMMAND::ATTACK_ACTION1)   - n2 q/ C( G# {& H& U! E
  12.         active_attack #ATTACK    ) ~8 O; e7 _0 E. \  M- B
  13.      elsif @hothey_skill  D) K" |4 L! o* K% _% d- h$ H7 O! V
  14.         active_skill  #SKILL
    6 y$ E6 l3 C# G7 `' @
  15.      elsif Input.trigger?(XAS_COMMAND::ATTACK_ACTION2)9 t: S7 G) Q+ t% K9 a! Y# t1 |9 s: E
  16.         active_shield #SHIELD
    3 ~# e, T2 I. v8 v
  17.      elsif @hothey_item) R0 _, f& Y- _  ^: s( L0 u
  18.         active_item   #ITEM: T. f1 e4 }; z: v8 _
  19.      elsif Input.trigger?(XAS_COMMAND::DASH_BUTTON)  
    6 k5 C  n6 u$ e( Z, g* e# b
  20.         active_dodge  #DODGE
    " O# b9 L8 F  S: w" s/ f) ^
  21.      elsif Input.trigger?(XAS_COMMAND::SKILL_CHANGE)
    / B; I6 {) g6 r" W3 {. t7 H; J
  22.         if $game_system.quick_menu and can_call_menu? #Quik Menu Skill   
      P' y6 z- D5 C4 m9 T) J/ `. S
  23.            $scene = Quick_Menu_Skill.new
    7 {5 {. h0 _2 i+ d
复制代码
再试一下。3.91的这种结构对我这种脚本风实在苦手……
往事简直不堪回首,稍微做点想做的事吧
回复

使用道具 举报

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
回帖
228
 楼主| 发表于 2012-4-15 17:05:36 | 显示全部楼层
本帖最后由 timmyyayaya 于 2012-4-15 17:32 编辑
2 S) Q6 P& p: S' u' U+ O; c; s9 j2 D* v/ w
所以目前XAS - Battler 1是修正成这样,游戏中不会向后跳了,8 j7 V" G* n9 A# i" ~' h
不过热键装上去后,发不出技能?
  n+ p/ l/ p; J" |! X+ T! O* F是因为我原本15楼的修正拿掉的关系吗? & d! [! [& k! J! |5 c! q0 c$ _( x
还是15楼的脚本已经不需要?
回复

使用道具 举报

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

开拓者

发表于 2012-4-15 17:13:28 | 显示全部楼层
= =理论派吃亏了……
/ q4 n8 |$ a% ^4 ?& x$ t
: }" H% f' q$ v" Q7 G6 G& a0 zLZ你看这样行不,只复制个Data里的Scripts.rxdata文件给我,
3 U4 Q* h* _0 g我想这样直接些,一点点看着改的话要浪费很多时间。

点评

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 编辑 4 X$ [. G8 l/ T+ ^
) H, ]* x1 Y3 A
好的

点评

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

使用道具 举报

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

开拓者

发表于 2012-4-15 18:26:59 | 显示全部楼层
[pre lang="ruby"]
5 J! {1 O, P% s# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
4 i' e* f8 s5 j) \, m9 U3 w#===============================================================================& [' x# l/ S6 ^1 Z* K
# BATTLER / SENSOR RANGE / PLAYER COMMANDS / ENEMY COMMANDS/ L2 V) k$ s% i1 S3 u
#===============================================================================) r& ^7 ?9 W& n/ a/ a" O
# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■9 X& t- V/ X# P
( e7 y+ z4 m' L0 R
9 B1 H" Z" C9 i! d- K. w/ R
/ I; G! R& U: J* V+ ~
  h4 ?+ _* P! g! ^3 M$ L4 X
#===============================================================================! W! [/ Q5 M/ \1 f
# ■ SENSOR  - {4 R* |0 a7 f6 Q! I
#===============================================================================
5 {+ I8 p5 j: m& P$ }$ c6 V1 ^# wmodule XRXS_EnemySensor
" ]* I' q1 {( B) ~) g5 @" `5 q  
' c, \, x$ A1 o: e5 a& o #--------------------------------------------------------------------------
& @$ H6 ~+ i8 i6 k; {+ m7 V # ● Update Sensor# X$ q* k/ |$ {4 Q7 k+ \: Q: S
#--------------------------------------------------------------------------1 G# g( S" {5 q
def update_sensor/ j  Q. v! G; L  ], q
     return if self.dead? or self.erased or self.tool_id > 0
# N7 C% I$ x, ]$ w0 F) Y     if self.battler.is_a?(Game_Actor)
. l: t3 g% k0 h+ o  D5 G0 Z        enemy_sensor = 4* f; V* _- Q2 L. S4 b) S( u( s6 ~
     else& m" z: `8 ?# s3 j0 Y
        enemy_sensor =  XAS_BA_ENEMY::ENEMY_SENSOR[self.battler.id]
; w5 _- ^  x) N' t     end  ' C8 W) J3 w9 L
     if self.battler != nil and self.battler.sensor_range > 0  
2 H- H( D+ H- P. S        @sensor_range = enemy_sensor  * G  D' u) Z* |
     else  4 t: X0 N9 y2 Y$ _# u) D8 Z6 [
       @sensor_range = $game_variables[XAS_BA_ENEMY::DEFAULT_ENEMY_SENSOR_VARIABLE_ID]  Y  |; }9 c% ^# p9 Z3 j
     end     0 Q, s" [/ u" g
    @sensor_range = -1 if self.battler != nil and cancel_sensor?    $ j  H/ q" D: |8 K* A9 L( {
    distance = ($game_player.x - self.x).abs + ($game_player.y - self.y).abs# y% C8 o$ U) j6 I/ K  y
    enable   = (distance <= @sensor_range)' Z- ?( P; w5 R" U, t
    key = [$game_map.map_id, self.id, XAS_BA::SENSOR_SELF_SWITCH]
) S' W5 O0 T8 R# W" m$ J, r    last_enable = $game_self_switches[key]
5 d$ n& w+ P% n    last_enable = false if last_enable == nil- V" l- t1 J' k3 ~1 S% L
    if enable, C3 x) ]2 o# a2 c/ {3 L; f
       self.range_type = 0
( ^4 W9 c7 |) r: ~    else  
6 ^$ r. D9 B, Y: [$ n# I* N       self.range_type = 12 a* ^1 E& [( d$ L; \7 {
    end       8 W5 E! E3 k6 m) ^
    if enable != last_enable
- Y$ L4 s. u/ a+ m       self.action_times = 0+ E5 R  U; i& U% k% S$ a! }' o
       $game_self_switches[key] = enable
! ]$ e6 G6 V5 L. B5 G, y) y8 R       attack_off if self.battler != nil3 l9 C' C# b" [
       self.refresh
: E, M+ k. z0 Q5 {$ C  h5 D* ^- m    end6 ?( O% ]- N6 \- h$ A
  end1 h; x2 }" Z# G; N9 p. v9 h
  : j2 O; G6 P) m& D1 [
#--------------------------------------------------------------------------
9 _% L4 w! n% x" j! s* J  J # ● Cancel Sensor
) _) x/ A  ^; O #--------------------------------------------------------------------------3 c4 A/ e. f) [9 ^
def cancel_sensor?) x2 E* u$ Y. U* q: v; s, o8 @
     return true if @actor == nil 5 i  y  o  [4 H3 @
     return true if self.knockbacking?
0 D% i8 P. j* p9 t     return true if self.throw_active
0 B9 b0 M6 H4 ~! a     return true if self.battler.e_passive
# Z. ~; [  \# a' c2 Z% f8 w     return true if self.battler.stop2 A! F0 M0 `9 {  |
     return true if self.battler.state_sleep
' h4 v% \0 W: W& J     if self.battler.sensor_range < 15) {8 [  z7 m6 B
        return true if self.battler.state_cancel_sensor# H! {+ k# }& Z9 {7 e
        return true if $game_player.battler.state_cancel_sensor9 ~7 r0 X7 E) K9 L! H
     end
# h# W6 K7 \# q  c, d8 U     return false 0 l3 `; U8 q0 K
end5 {) w( |  D4 \; O1 W
end   
6 N8 e+ X  r* |. j4 I4 o. Y" `( U3 |! S
#===============================================================================
3 s- t9 N: b  n- b# ■ Game_Event
  p- {% g; K7 k4 ?+ m+ v& U#===============================================================================. \! c: y+ q  |5 X
class Game_Event < Game_Character6 I, k* f; k0 L
  include XRXS_EnemySensor
' g3 [7 r2 W+ K: y5 |3 ]end$ e4 ]$ W; e! h# y0 q( w
# u3 E! C, |/ M
; Y$ z2 a- X$ M" \# d# A  K; }9 M" {+ @
1 i% _$ p4 v  M4 g# j

0 M& |4 U* @5 Y9 p$ _
% M: D! R* H( j* S6 |#===============================================================================
/ b/ }. k6 T+ ~" ~; b# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■6 k' y/ ~) l. @! g) c9 n
# CT METER
; e9 O! |' X0 v( b# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
& X( X# B$ c7 s$ M5 M( j" a#===============================================================================( n  u+ h! ~! N! K# g, o

  B6 ]; C) i) o+ {% H#===============================================================================
3 M8 O. I' m8 Q2 `" [# H- a: D# ■ GAME_PLAYER1 F' b( d; }0 m) A  o4 N
#===============================================================================
# W/ b7 j0 c) h, P# t, @4 ?class Game_Player < Game_Character
' H$ |2 F! M/ {0 e% W
: P( _6 [( @" k #--------------------------------------------------------------------------
# c) N8 I+ o% j0 L: H7 m7 z) V # ● Update CT Meter Speed/ U% {2 D+ T* Q% X' J7 r" C
#--------------------------------------------------------------------------6 P7 q' B6 N4 O  G
  def update_ct_meter_speed
2 L& M1 V2 p$ t/ W0 I0 C' g8 j      return if $game_switches[XAS::CT_DISABLE_SWITCH]
4 R2 J3 W. w& i& l9 c, n. f      if self.battler.state_ctdown
/ H2 z( B" M  V7 }" K$ P* T         ct_meter_limit = XAS::CT_METER_SPEED * XAS::CT_POWER  
5 f8 ~4 n* ~& W      else
( J/ R# L( B, e$ M4 R8 j  m  m         ct_meter_limit = XAS::CT_METER_SPEED      
9 D7 r/ W1 |5 X# Z      end   
, Y; T' M2 [" \) V) A2 C      $game_system.action_meter_refresh += 1* D/ p3 F/ L: o% ~3 e* n
      $game_system.action_meter_refresh = 0 if $game_system.action_meter_refresh > ct_meter_limit   6 C" W' j) K3 b4 S' ]' A/ L
      if self.battler.state_ctup4 [8 P; w$ S8 n* E7 ?
         ct_speed_down = 1
2 U! ~, Y8 s2 _         ct_speed_up = XAS::CT_POWER
0 H# ]+ L3 i1 k7 Q: e- B9 o         ct_speed_up = 0 if $game_temp.xas_charge_time > 5
4 T  f/ L9 y! y1 i9 C' o  F      elsif self.battler.state_ctdown
* _5 v4 t2 K5 L+ J8 X         ct_speed_down = XAS::CT_POWER# k8 U) B  k0 Y# W& B
         ct_speed_up = 1       7 Y5 {. E7 z/ r1 ]  @/ H& c
         ct_speed_up = 0 if $game_temp.xas_charge_time > 55 l: q: B3 w9 n/ c- ?- c
      else . H( c; S3 Z: q3 F8 c+ s! K* o6 d
         ct_speed_down = 1
+ \" @" k# z6 A( w% _         ct_speed_up = 1
7 r% y2 }9 q6 F4 t* Y. V6 a         ct_speed_up = 0 if $game_temp.xas_charge_time > 5" u5 i+ Q6 g0 n
       end         
' \: y, U/ K4 Y% D) d/ T       if Input.press?(XAS_COMMAND::DASH_BUTTON) or can_shield?(0)           - u" ^2 C* J& l  l: ]+ o
           if $game_system.action_meter_refresh == 01 s$ k/ Z2 T+ `9 L/ {
              $game_system.action_meter -= ct_speed_down if $game_player.action == nil
6 x/ y% `: T7 I! j* \1 y% Q           end
* a7 d6 |; }( A& S! ?% t7 l6 T       else   * e& I, ?$ r, S( b0 O
           if $game_system.action_meter_refresh == 0 and not can_shield?(1) + g' k/ }/ I( o4 f
              $game_system.action_meter += ct_speed_up6 _6 f% u& q& n' B, C6 M, Z
           end
  F. e0 O1 Z# ?! w( o       end
, i+ W7 @( t3 ?5 O# K; a+ U. ?3 Q4 c0 q  end   
! W. N/ t* {0 S5 p2 \0 k0 H- r     ( X) i" V; U* d, g2 }' T# X/ S
end    / S4 i; x8 S. S+ l8 Z
  g. B6 d/ `" b& @5 S# Z7 B( u1 w6 P1 _
+ k0 u; V- n9 ?3 ?7 S6 C
; I9 A1 F* H; N% T/ {

$ K3 W- g7 {2 \
4 r8 Z) p- o$ ~: E
& S1 [( }/ P- x) w, _6 |7 U: F8 i% ^0 B9 c9 Q2 E' e
# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■7 E5 X+ \" C" x: b& v- v
#===============================================================================
! M8 e# S4 f  @/ N" t# COMMAND" |- i+ R# t: u8 H3 |
#===============================================================================
( k$ o2 q! R& y. b% M, b0 o# ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
1 v& m; `" t  h( C+ U% i2 U( F' L5 ^, s1 R3 i" Z, l* A& i
class Game_Player < Game_Character ) i! \( e0 P+ N+ o) a5 ^+ W% G
#--------------------------------------------------------------------------* k  P; ]2 M$ }  d& E
# ● Update Command. [9 J  V3 ]. N3 Y, \+ q
#--------------------------------------------------------------------------  9 y7 z/ L+ g, P" \
def update_command: U  T( F: t; M$ j( a& N; E
     if Input.trigger?(XAS_COMMAND::ATTACK_ACTION1)   # P' |1 g0 ]% L6 `" Y, a" w
        active_attack #ATTACK   
$ F- `. e4 P' U  ^( e) z' \     elsif Input.trigger?(XAS_COMMAND::SKILL_ACTION) or $command_skill != 0" P* W/ m! T( p2 ^2 |
        active_skill  #SKILL
, g  }2 C# O/ t6 U. `$ a3 }     elsif Input.trigger?(XAS_COMMAND::ATTACK_ACTION2)9 N3 h2 e. c; y. X
        active_shield #SHIELD
9 k" b* D) T% J: I5 F# ~     elsif Input.trigger?(XAS_COMMAND::ITEM_ACTION) or $command_item != 0! F9 k  ^7 `( c0 c
        active_item   #ITEM
8 T4 \4 |( P& {8 i     elsif Input.trigger?(XAS_COMMAND::DASH_BUTTON)  $ k$ ?7 U* l: M" w* M# E; x
        active_dodge  #DODGE
4 y) l7 @) n/ Y( `  Z- x/ U     elsif Input.trigger?(XAS_COMMAND::SKILL_CHANGE)$ t0 Y6 q& j% e) M3 r: s" |
        if $game_system.quick_menu and can_call_menu? #Quik Menu Skill   
6 H7 y' }1 W5 C4 j; U           $scene = Quick_Menu_Skill.new8 W) x. k+ E+ F1 N& B  H9 g6 e
        else
" {( m/ Z" Z. }: a           active_change_skill #Change Skill   
: M( Y$ u# J: d* y. h0 ^' F        end  
2 R% W% y/ F. x1 r3 g0 N1 X     elsif Input.trigger?(XAS_COMMAND::ITEM_CHANGE) 6 r) C! W1 q6 C2 C8 P+ ^
        if $game_system.quick_menu and can_call_menu?   
' E7 h  b& q/ A' G+ g           $scene = Quick_Menu_Item.new #Quik Menu Item     % c6 a1 ]2 G* a# _7 X/ ^$ {
        else# {3 p1 F" c6 c. F  b: ~
           active_change_item  #Change Item   
) Z) b% |8 S5 x% s$ Z* W7 ]" [& z        end  ) Q7 d9 `+ a& Q3 _$ A
     end        
3 P1 v% ^5 c5 A  M' c! ? end    4 Z0 @) e  Z. E( Y: l
  
: D" W6 h+ {# ?& w #--------------------------------------------------------------------------
1 Q# N" M! ~: m/ w# W # ● Can Action . D( U# {9 p3 I8 q9 ?
#--------------------------------------------------------------------------
# B7 p, z. J9 z  def can_action?
3 k, R9 Q2 u. ~: Q4 y2 [( B     return false if self.action != nil* d9 y8 i3 v9 K+ ]) o( `
     return false if self.knockbacking?  R2 f) K# g. n* r$ r4 K. m
     return false if $game_temp.xas_charge_time >= 10/ H: u8 O7 }, B8 Z) _2 b
     return false if $game_temp.cast_time > 0 , l6 _" @# P4 y, ]  {
     return false if jumping?
7 m' r& Y  {' [: {0 p     return false if $game_switches[XAS_COMMAND::COMMAND_DISABLE_SWITCH] == true. c' w# D) L$ C* ]9 V; `( ]' k$ R' Z4 u
     return false if $game_temp.lock_command # D- K! R7 r4 Z5 Z: L. c
     return false if $game_system.fly
/ P* c$ i. y& D  D2 [, G( Y     return false if @swimming
, W* z9 p7 k% D3 z6 J& k& O     return false if @pickup_lock
/ G* ]) c! x9 [# v# Q, ~; d8 k     return false if @pickup_lock_time > 0      2 c' n/ ?4 W( U0 l0 R% g8 e
     return false if terrain_tag == XAS::FALL_TERRAIN and @fall_safe_time == 03 n9 z+ ^6 t5 \" o' i6 X4 M% h4 g- k
     return false if terrain_tag == XAS::SLIP_TERRAIN      " g6 Z' R8 |: [" V( [1 B
     return false unless $game_temp.hook_x == 0 and $game_temp.hook_y == 0     $ S6 o/ G: }  R+ Q$ e
     return true, i- g+ a) ]7 S% ~: Z$ k
  end , l! ^/ G9 n- j) ^; y/ W

: S6 b/ D. a: Z. Z1 f) K#--------------------------------------------------------------------------
. j+ i% k$ J5 H5 [7 k# \# ● Check Combo# Q, I: Y6 @2 C8 M
#--------------------------------------------------------------------------
9 H* D: P. Q% F8 i7 C- ]: g  def check_combo(action_id,type)3 Y4 n: j3 Y% b
      combo_id = Database_Bullet::LINK_ACTION_ID[action_id]       : b" s3 F, h: x' G
      return false if combo_id == 0
. a( r7 @3 `0 h$ t* q7 R8 s      combo_time = Database_Bullet::SUFLAGS[action_id] + XAS_SKILL::COMBO_TIME   
4 X9 ?* T( O5 H  d      case type ) D( _- d" A* s( ]
         when 1 #Attack) q) C: G# [' }  w8 f
              $game_temp.xas_combo_attack_id = combo_id
3 s2 E1 @5 Q5 K              $game_temp.xas_combo_attack_time = combo_time
3 d* a+ Y8 d4 G! \$ ~/ g              $game_temp.xas_combo_skill_id = 0
7 V: C, M/ Z- I$ A              $game_temp.xas_combo_skill_time = 0
; o5 V9 Z8 Z" J2 c& A" i              $game_temp.xas_combo_item_id = 0
$ k# b" ^/ Q& V% O' g% f3 G2 L$ J/ b              $game_temp.xas_combo_item_time = 0        / I8 `% G7 r9 o. |' [
         when 2 #Skill
% K% ~4 g  \" }+ u/ i  E" A& r% G+ Z              $game_temp.xas_combo_attack_id = 0, _- q3 \' X! L( b4 C
              $game_temp.xas_combo_attack_time = 0: Q5 N, \3 O6 `7 s0 k3 z1 @
              $game_temp.xas_combo_skill_id = combo_id
" e; }( ^3 |$ Y/ X) n              $game_temp.xas_combo_skill_time = combo_time# Q2 h) T8 l: _( ?4 x, e
              $game_temp.xas_combo_item_id = 0/ C( X- ~$ D$ ?
              $game_temp.xas_combo_item_time = 0            
1 o. U! o4 l% h" Q4 c: y" e$ a         when 3 #Item
7 n6 `" L" {% G4 p/ u% L7 h2 O              $game_temp.xas_combo_attack_id = 0
% n$ Y6 Y+ A& G+ f0 P% z4 Z! X              $game_temp.xas_combo_attack_time = 07 t, G9 L, s/ V$ p
              $game_temp.xas_combo_skill_id = 0
2 \: I2 q( @/ w: J9 H              $game_temp.xas_combo_skill_time = 01 B6 E$ C6 O6 q3 r4 l0 R3 k  C1 ^! }
              $game_temp.xas_combo_item_id = combo_id   l/ b4 ]) A( t! P+ q  i
              $game_temp.xas_combo_item_time = combo_time           $ r: H& o( }/ H- F" x5 x% m, E
      end         
$ L& S5 t/ k" r' |8 o- j) p  end   # j6 U: K; v+ y+ @2 o
  ) Q& O9 I( }9 ~6 M3 v4 R) h, S9 ^7 K
#--------------------------------------------------------------------------7 }; U7 V% M5 O. p
# ● Cast Action ?
9 I; F& K/ e) }; f#--------------------------------------------------------------------------
  ~, s% ~3 @6 ?+ p  A2 h  def cast_action?(action_id,type)
" q' g+ C: ?8 u      cast_time = Database_Bullet::PLAYER_CAST_TIME[action_id]
0 x0 @! |6 [1 z      return false if cast_time <= 0
' ~2 o7 x+ e7 x      return false if $game_temp.cast_skill_id != 0" z1 f7 k' T# L, |+ e2 r( |/ j3 v  \
      return false if $game_temp.force_action_now_id != 0 or $game_temp.force_action_id != 0  U$ ^0 z( F; k5 K: [* [
      $game_temp.cast_type = type
2 U9 Q+ e& z6 K" D, d      skill_id = action_id
$ B0 j$ r$ K" a- s% ~      skill    = skill_id == nil ? nil : $data_skills[skill_id]
$ k* I0 z7 J7 j      sp_cost  = skill.sp_cost         
  U, v7 j. ]$ z0 I/ U      if @actor.sp >= skill.sp_cost6 A' b- N; ~7 b3 x
         $game_player.animation_id = XAS_SKILL::DEFAULT_CAST_ANIMATION_ID         
$ D0 J; @1 v3 F9 C' E  |      end " }: P- s6 G& \) r; w7 `4 q  }$ I
      $game_temp.cast_skill_id = action_id
/ {9 ~. h4 d/ Y1 V; l. I      $game_temp.cast_time = 10 * cast_time
, R" X* S/ g4 A  x7 s( _0 B3 j      return true      
' g9 m* m) p) o3 A% N$ z8 I  end
  i1 k; `! M' s
  p4 G7 L, w3 r& E2 s4 b#--------------------------------------------------------------------------
0 @- y2 z& x, V# ● Can Target?
, _! l2 s6 k, k#--------------------------------------------------------------------------
9 G; n! f+ n' v* G+ ~$ M5 i% S- R- N def update_shoot_on_target
1 W  T& U* m) s     return if $game_temp.xas_target_time == 0
* e. I: I: w; d1 N. |     return if $game_temp.xas_target_shoot_id == 0
- Y; V8 z: H* Q     return if $game_temp.xas_target_x == 0 and $game_temp.xas_target_y == 0   
9 ~1 A  R% }, u! H* I6 @     $game_temp.xas_target_time -= 18 J; A9 C  I1 Z6 ]( ]% `4 u; f
     if $game_temp.xas_target_time == 0
2 w; G' w# `/ s7 v! @' E        self.shoot($game_temp.xas_target_shoot_id) ( R1 x) C/ G3 b; W& a: s
        $game_temp.xas_target_shoot_id = 08 Z* |0 Z9 [5 `" k+ P
     end   ! N- F, l" T7 p# ^) m4 q
end
$ |) O- H9 R; \$ u* Y! J4 i 1 A7 n# R2 J* V* H: k  E( H- o' g" f
#--------------------------------------------------------------------------
: v- L8 V; K% C- i$ J$ J! h! R# ● XAS - Button SKILL0 T! F4 {+ I$ O1 }0 R2 x( N3 A' L
#--------------------------------------------------------------------------; V6 p$ {! k  u1 n
  def active_skill
: ^8 a2 K2 \, ]0 J( B0 [6 I+ F3 G$ P      type = 2
" r' ^" o& r$ w7 u+ g      if seal_state?(type)   
* J% J, Y, Y4 Y2 L; S         seal_text
" k5 @3 L' u) a. {# i: S# N( d         return
, J0 c& g) Y- ?* c  m+ |      end
. R) D& K( [! c  F4 @  K2 N: B      if $game_temp.xas_combo_skill_time > 0
. j9 h& x$ t: V' I  t1 g% O; @         action_id = $game_temp.xas_combo_skill_id# x1 h; P5 J. `5 B# e, n2 m
       else/ N; y3 ^+ l. e) X* G2 j
         if $command_skill != 09 ~8 Y; f! B6 `9 B; n8 w+ {
         action_id = $command_skill;$command_skill = 0, J6 H+ S; l: ]+ y2 ^7 O* {& _+ S
         else: g5 F# |9 L  ]8 t* a8 \
         action_id = $game_system.xas_skill_id
* J( i9 _  h4 [; v) ^+ |2 M         end9 Q/ D! J4 N& E- }+ R
       end7 D: e0 J# K$ u& A& l( V

2 w) E# c5 X5 I( n; ?# U$ R      return false unless check_action_exist?(action_id)      8 h6 C7 R/ j3 t  ^3 x
      check_combo(action_id,type)
; U5 ^6 Y0 t, |9 P6 _7 s* e      return if cast_action?(action_id,type)  
; \; o0 D# n% E4 Y0 j; B6 ?* ~      self.shoot(action_id)
$ E9 V& t4 Y3 F" ^0 E  end  
0 R+ C* {7 w% N. X+ k/ [4 A
8 M! q6 l7 N* M4 G3 d! P% a" N#--------------------------------------------------------------------------  ^3 D0 _' r' q3 O( u* l1 f
# ● XAS - Button Attack
' e* ^. a; V! B+ |3 Z3 H#--------------------------------------------------------------------------
( U* u& f+ P; R2 B  def active_attack
/ ~' I2 V' ?8 d      type = 1
' m7 g$ ]9 m: f& Q% `3 d( b      if seal_state?(type)   9 S7 c  \3 k5 c$ J+ w
         seal_text! w- P8 h# T( N( U
         return
: C, K5 z" F; q/ s3 k/ p+ Z9 {: l      end      
$ J% j2 ^' @( M# p# g1 B+ j      if $game_temp.xas_combo_attack_time > 0 - c# g5 h) i. I6 y* |
         action_id = $game_temp.xas_combo_attack_id4 F8 [; V: m1 y. F1 K
      else
) A9 u- p9 D$ T( r" d: l         action_id = $game_system.xas_action_slash_id
" E( n; \( V4 {% y  g       end
+ g3 u; r: @( y6 N: \7 v5 n: X6 b      return false unless check_action_exist?(action_id)      
4 b* B! |4 T7 m2 Q      check_combo(action_id,type)
* Q. y( G8 B( t" I5 L( Q% D9 J, z      return if cast_action?(action_id,type)  
/ @/ N+ d# R9 b! X" Y      self.shoot(action_id)   
9 D) K& T* E" M7 Y( T. X  end  
& K/ \8 U$ m5 x; E& f6 o- G' d7 \- H0 [
#--------------------------------------------------------------------------$ z3 D6 Z5 h. R, Y& X8 |
# ● XAS - Button Shield, p" N, R9 G2 I
#--------------------------------------------------------------------------
. |4 N% _/ }/ ^) W% ]# M: n! W  def active_shield
  M/ i. A# h  h' J      type = 1
0 [" B: m3 r9 Q      if seal_state?(type)   
- d( O% G) ^& L         seal_text
+ j% ?6 `' D" x6 K# r0 l- l         return
8 s, ~0 D# m; l+ M( ^/ U, O      end            
7 v% ]1 |+ L# B4 P* H% x. x* h# e      action_id = $game_system.xas_action_slash_id2# q# ~/ q2 X( y+ {! s
      return false unless check_action_exist?(action_id)     
1 `" d. d2 T7 z+ W3 ?      return if cast_action?(action_id,type)      3 @, s; m& O; C
      self.shoot(action_id)      
1 ^( M1 t! G' T7 `% H4 V      $game_temp.clear_setting3  G! z: d% L+ L
  end 7 r$ k  _, f! `% R. K$ U
8 ]0 U+ K( [/ X1 K; \0 `/ M: I
#--------------------------------------------------------------------------7 I( i& I. A# ], t7 l
# ● XAS - Button Item
' E6 [! N8 V2 n0 J% T9 R2 k3 b# T#--------------------------------------------------------------------------* i7 p( e6 c& c0 B, e9 T  w. z7 a# u
  def active_item
7 \" Q0 I8 |$ |9 w      type = 3( }7 q) G2 V/ j  v$ N
      return if ($mog_rgss_xas_extra_skill != nil and Input.press?(Input::L))
6 w6 v6 }( {6 N5 ]5 }; l      if seal_state?(type)   9 }: E4 {; s9 K+ N1 s! `4 ~
         seal_text0 h9 z. I* y& y. B2 A
         return( H/ X: o4 `$ x
      end          + @- T/ Q- u( u
      if $game_temp.xas_combo_item_time > 0 ; d/ y; l% F3 `7 l: Z! l
          action_id = $game_temp.xas_combo_item_id0 W2 j9 Q+ o3 q, X8 ^3 D
        else
! v! r  e8 q) f9 k# E; B          if $command_item != 0
( s$ \+ |6 T9 z% ?# Z            action_id = $command_item;$command_item = 0# K8 o% e0 R' N0 _( U
          else5 t2 l! O/ v& l/ Y" I
            action_id = item_tool_id = XAS::XASITEM_ID[$game_system.xas_item_id]            : D+ r  [# N& u. l
          end  g, d7 U2 I0 ^
        end
7 _" ?) T! W, G* X- m* H      return false unless check_action_exist?(action_id)     4 z4 H/ I8 z- \8 F: {) n/ Q
      check_combo(action_id,type) - V! [. A7 j( l; Z- m
      return if cast_action?(action_id,type)    ' |' U5 S0 }+ E* T' U1 I( q
      self.shoot(action_id) * v( \  [3 H0 U& c1 [
  end  + u) A- S' b) X8 R0 M* t  o: D

# b' \' t; z! z# H1 ^ #--------------------------------------------------------------------------3 ]  ], q3 T; X+ B
# ● XAS - Dodge Efect
2 B2 @4 |+ h' [- I2 i* ~% C #------------------------------------------------ --------------------------' r* d4 s9 o; j5 {* V% c
def dodge_effect ; ?$ z9 [9 F. U2 e$ i
     jump(0,0)) ~$ T& ?9 H- F$ [
     @need_refresh_pose = true
% Q! O1 I' ]4 z2 G     $game_temp.dodge_time_real = 15. |# t2 S0 H: `( m4 `, p, n, J! I
     $game_temp.lock_command = true: t" `8 m+ L, R" e; ]' v2 e) N3 a9 y
     $game_system.se_play(XAS::SE_DODGE)& E" R0 L: W2 I  K+ Z! k# W) z7 }* H
     $game_system.action_meter -= XAS::DODGE_COST
0 n7 |1 c' b4 [& P  C     $game_player.animation_id = XAS::DODGE_ANIMATION_ID     6 i" p- @' b7 e% d" R, y3 Q& M
     power = XAS::DODGE_RANGE      % o; T1 Y( H- H) k. M+ @( x
     power.times do% b' S2 z" [" D' I
         move_backward7 c+ T. z! t( A" B9 v5 V. w  C
     end
& R. ~3 A# V* u0 A. z8 [+ z/ c6 f end  1 f7 I8 a. z. Q' p8 r6 v

9 o& h  q3 \+ I9 Q #--------------------------------------------------------------------------. l. X! _2 S8 H
# ● XAS - DODGE
" f; p5 T1 K" h2 a8 @- c. w #--------------------------------------------------------------------------! v' ~/ W$ V' ?# h
def active_dodge   2 b. o' I" ~( @( b% G; ?' h
     return if XAS::DODGE_SYSTEM == false 4 B4 C2 @7 H' ^/ U
     return if $game_switches[XAS::CT_DISABLE_SWITCH]
- Y9 f$ m% G" C  d/ f     if $game_temp.dodge_time > 0
1 b# n8 s" r* }* u+ V        if $game_system.action_meter > XAS::DASH_ACTIVE_PERC      1 i" y2 o+ I: r& N8 e
           dodge_effect  7 C+ D5 J2 C5 Q2 E
        else
% K# |7 y& t; a9 v2 v% t( U           $game_system.se_play($data_system.buzzer_se)      
" ~1 @6 J, S! J* e$ I: L8 O        end
$ V9 |4 \" k4 Z5 C        $game_temp.clear_setting2          : e  i  E# n8 k& O5 \$ ]7 t
     else  , p4 G1 _' a7 Z1 P
        $game_temp.dodge_time = 15
- i; m3 ]$ G/ R) E% x) Z        $game_temp.dodge = true          / V) G: _3 E3 f% h9 S! `
     end  ! F" d( X: y- ]4 O
end
  y8 r9 L+ p& d7 u5 W% X+ D     
7 a6 `0 L$ I: q! |* u  I, v#--------------------------------------------------------------------------, g* o2 a4 s- r1 L! r7 J5 z
# ● XAS - CAST TIME* P5 o1 n$ @; g
#--------------------------------------------------------------------------$ i: |% l" i5 X% w. o6 f
def update_release_cast_action2 r  _& O1 F, F. \
    if $game_temp.cast_time == 0 and $game_temp.cast_skill_id != 0
3 h- i* V8 \; S+ `7 j  M& u. O" s( Y       if seal_state?($game_temp.cast_type)   
. r7 U( J0 H7 d& O          seal_text
0 j' t% G0 E  m6 J+ H          return" w" e0 T2 ?/ M+ ~6 p( ^6 O
       end            
! U: O3 D0 H, d       action_id = $game_temp.cast_skill_id
( u, x! O) n7 }, R       force_move = Database_Bullet::FORCE_MOVE[action_id]    ' a2 J' q4 N8 U( b
       @actor.hit_it = 1 if force_move != nil
% b9 G% z' @! h$ F       self.shoot(action_id) ; B8 Y3 a$ t. t- c. |4 S8 T( f
       ) q5 i/ D  K$ e
       $game_temp.clear_setting2   
6 ~% ~2 B' M6 M8 K* J: m     end  % _& E+ G( m# L+ n% m
end  
, u$ h5 q# X5 ?) \( v
$ V! A/ C& m2 R( Q7 {#--------------------------------------------------------------------------( V2 p% J- @2 b/ C
# ● XAS - Change Skill
1 j9 Q2 c% B; {5 {! P  ^5 z: e#--------------------------------------------------------------------------0 p+ j9 e7 O& l
  def active_change_skill
( H; `$ q* ?, g4 i0 i- x      @data = []         
  e+ O. i  b, S, v- G      for i in 0...@actor.skills.size
- u' }6 H! l5 _! G5 L" c% l8 A8 r         skill = $data_skills[@actor.skills], `( M2 x" O: c3 ^
         if skill != nil. }! m( b2 s% o6 S7 u" }& Y, k6 e
            @data.push(skill)
, u$ b, Z7 J9 e* e; r: Z         end
9 H* d4 p* ^! J* d. G: n      end
4 z- Q  u" C' N1 T  ^: c2 A      if skill == nil5 x" v1 {4 G) A- a' F
         $game_system.se_play($data_system.buzzer_se)  % F  L2 t/ Z* E! i
         return  & I6 O' c$ F  K
      end
6 f1 X* ~- \! s  P0 |  ]; L      $game_system.xas_skill_index += 1
# _" [8 j* T% j, X9 H      if $game_system.xas_skill_index == @data.size   s7 C% l$ _+ W) q3 n, \' ?+ i; H/ I
         $game_system.xas_skill_index = 0  
- b$ }  F( }4 u9 N* t7 ]3 n8 g      end' y- ~3 f+ Z& p  s3 S5 I
      skill = @data[$game_system.xas_skill_index]  ^: t# l, C9 R1 W* b2 ~; ?
      skill_action = skill.id% e0 N3 J5 q( k9 l* C+ ~
      $game_system.xas_skill_id = skill.id
+ j1 F( b+ \( M4 O8 @2 [      $game_system.se_play($data_system.cursor_se)
0 H( H" x$ q; _7 W9 ~  Q* P  end; u% |- C8 k: u& ~+ k9 D6 n0 p- z
  * e4 r5 `3 e1 q% u9 y
#--------------------------------------------------------------------------
$ A( J) c$ O' u1 L# ● XAS - Change Item
6 K. ], B7 Y) R" r7 @! g#--------------------------------------------------------------------------  * E5 u0 o2 L- K; Z
  def active_change_item$ u. Y9 A; t; S7 a$ i
      @data2 = []9 x3 {- a1 W$ e2 \
      for i in 1...$data_items.size: k* C, I" N4 ]- n) K
          if $game_party.item_number(i) > 0 and $game_party.item_can_use?(i)% E/ ~: j  ]' B$ V5 O/ K  d( p
             @data2.push($data_items)( \5 C+ |9 Y0 W2 _
          end
1 @1 a/ Y2 O2 I; Z2 c      end          % I, }: E, y" C  w2 X
      item = @data2[$game_system.xas_item_index]! |" g8 y( ~8 F; [. A
      if item == nil3 K# E% S) a! {% k% h& ~5 `
         $game_system.se_play($data_system.buzzer_se)  * O1 r4 F1 o' B4 f1 G4 j) c6 g& M1 S
         return  
; b# ~) N) D6 J, A8 G) }: Y  c      end9 L& }3 o2 I* B- x9 h# j+ r, I
      $game_system.xas_item_index += 1& x6 F" @* [, T5 z, Q1 G  G
      if $game_system.xas_item_index == @data2.size
5 l( Y( B7 z9 [; A) V         $game_system.xas_item_index = 0  ! f) a9 v4 P. e: f9 t& U$ o/ c6 l  n0 a
      end+ U; G- i1 T( X6 P! U8 N# s
      item = @data2[$game_system.xas_item_index]0 r% Y0 l( Z/ P! N$ f% L" ]
      item_action = item.id
2 C9 U# L. L' \0 H5 v      $game_system.xas_item_id = item.id
. Z0 j/ e0 F7 `0 K      $game_system.se_play($data_system.cursor_se). Y! @$ r" s3 e; ?+ C
  end
/ D" R6 G& u4 z
& w) Z, W9 _! b6 q/ n- u$ h2 I#--------------------------------------------------------------------------
4 |) C9 |/ {. ]+ ]: `# ● XAS - Force_Action_Now
8 g9 D, s  I% n; x' |* V3 V) W( R#--------------------------------------------------------------------------0 d1 O" x- O: i4 {7 G- B8 n
def update_force_action5 l0 _3 w# N" U' s1 r8 Y. Q
    if $game_temp.force_action_now_id != 0 and not
, B* s7 b2 Q6 |8 _5 C' X7 g4 i       (self.knockbacking? or @actor.state_sleep or @actor.stop)  
- C3 D( n& `5 o' S  q       if seal_state?(0)  0 t8 D+ V6 Q/ w' C& Z: h1 ~
          seal_text. N: d7 Y6 W1 [( ^" I& T) F% }9 x
          return false
& s! m; H  o4 m0 x6 v' y# i       end    ' @8 X* `; S, p6 E9 c0 K
       action_id = $game_temp.force_action_now_id
% b: \" L: _9 W2 F: w4 v2 W+ F       self.shoot(action_id) 8 y1 |0 u2 s3 g# c/ Y4 k
     elsif self.action == nil and $game_temp.force_action_id != 0  and not, ~- o6 ^8 P$ [/ g/ z
       (self.knockbacking? or @actor.state_sleep or @actor.stop)  
4 u, X" X- Y8 r8 Z& ]& f' K       if seal_state?(0)  7 v( A2 A5 p+ x; i; d& B' m, Z
          seal_text
' o3 c$ I- {: I8 y. |5 ?          return false
! y' l3 T4 ~' k1 H       end  
( l" T, T1 |+ l) u* l8 r. U2 V       action_id = $game_temp.force_action_id
% r, ]% U0 d1 o8 Z/ p( J/ x       self.shoot(action_id)
8 z6 `' U+ n/ Z4 c1 C9 X    end   7 }4 L: v. M3 X5 ]) I
end  
3 T5 {& U9 R2 z0 @, n, t1 H( p! R% q" N. n
#--------------------------------------------------------------------------0 p8 G% @" J; u4 j  w% l) a
# ● Can Charge?
+ r. X3 V. |2 K0 @" N) ?#--------------------------------------------------------------------------
1 F7 Y! E" k6 Q4 }7 |7 ndef can_charge?2 u! f7 y  k4 f$ G2 R
    return false if $game_temp.cast_time > 0
! _1 h0 O& ^; D, J8 v* `    return false if seal_state?(0)   ' {- c8 P  O7 r# N) m/ b
    return false if $game_switches[XAS_COMMAND::COMMAND_DISABLE_SWITCH]
3 O. @; F' }' M  B9 A) m    return false if @wp_tool_id == nil
* S: r7 Q/ W7 B    return false if @pickup_lock
# b- e, [" y" o( L6 j/ l, _    return false if @swimming     
: K# c/ x9 V3 J* z+ V& {$ Q) L    return true' D* g$ N8 `; Z3 |
end
3 h0 R. m" z/ Q: D% a- u; y/ B3 x# v* l# `# l
#--------------------------------------------------------------------------% ?6 }. `) N% u
# ● XAS - CHARGE + d- u" z  Z9 B9 y6 X
#--------------------------------------------------------------------------
0 a, E0 |- F9 T7 \/ u" ddef update_charge_button
6 N% q) U; y, P1 }2 G  unless self.action != nil or self.knockbacking?           9 L$ ?3 w" N5 ?5 j4 n
  if Input.press?(XAS_COMMAND::SKILL_CHARGE) and can_charge?     
7 k5 z: }1 X7 b/ G     if $game_temp.xas_charge_time > 10
- Z5 |8 |4 R! e9 U        if MOG::FIXED_DIRECTION_SKILL.include?(@wp_tool_id)% n- I0 H$ e, u# n
           @direction_fix = true  0 n/ J7 O# c" Q- }# @- I) A
           @action_move_speed = -1
3 H! k/ m! v/ ?! [% p        else
1 r) }4 S; q" E           @action_move_speed = 0! _5 Z, D' ?" V8 U$ M
        end         
8 `; T% D2 J' Z3 J1 X  _     end
, n  W$ B* W6 E" j( p     @wp_tool_time = WEP_CHARGE_TIME[@wp_id] : f4 M% V' l  {4 w$ {
     if @wp_tool_time != nil
( O) V2 w6 V5 }+ B9 k6 {& a        $game_temp.xas_charge_time += @wp_tool_time if $game_temp.xas_charge_time < 100
$ l% Z; H( p& k  \' A3 ?. e        $game_temp.xas_anime_loop += @wp_tool_time
1 ]8 r% `  F. \8 o) K! K        $game_temp.xas_anime_loop2 += @wp_tool_time
; S. p+ M, v. }2 Y) }4 E$ ?        loop = 40 * @wp_tool_time" V4 `  Q# X+ f" ~/ ?! Y: E
     else$ i0 ?) W' Z5 ]
        $game_temp.xas_charge_time += DEFAULT_CHARGE_TIME if $game_temp.xas_charge_time < 100   
) W0 W$ O3 @2 m& ]6 ?- |        $game_temp.xas_anime_loop += DEFAULT_CHARGE_TIME  % {  b9 E/ u0 P0 F& j7 A2 _
        $game_temp.xas_anime_loop2 += DEFAULT_CHARGE_TIME  , K* @3 q$ ~7 H$ @; q
        loop = 40 * DEFAULT_CHARGE_TIME 0 w( J. S2 H& ?" v- Q3 N! y5 p
     end  
; N& l: b- v$ \% k/ ?; O. {     if $game_temp.xas_anime_loop > loop5 p+ X1 K) G6 p3 A" e  K% C
        if $game_temp.xas_anime_loop2 >= 100
* W0 T% C, M5 G& G           $game_player.animation_id = XAS_FULL_ANIME
* |3 J# O" x& z4 c        else! I* m, U  u7 |7 X
           $game_player.animation_id = XAS_CHARGE_ANIME 3 O/ |6 E. t- z- e, \- f
        end
3 {$ Q2 v6 ^/ D7 T4 F% [        $game_temp.xas_anime_loop = 06 F7 T. r1 }! U/ Y4 R1 S- o
     end   
0 a% @2 C+ s6 v1 R6 E7 E. n. b0 n  else# Q7 C/ b. d$ o/ B$ @
     reset_charge_mode(true)
; _, x( a$ @3 q+ u! X; K3 c  end         % t/ U7 @: b* f* y
end" l4 G5 e, x$ ]7 X! Z* q
end1 \9 X- M$ r% N/ Y7 F1 m, T& a) v
0 U. R  u; I" x
#--------------------------------------------------------------------------
" A9 N- W$ m& H' K, w, h$ l- `# ● Release Charge Update  O7 r! U, g& |' g* g& O9 r
#--------------------------------------------------------------------------1 v# g: U, E- w8 G4 w) r9 j, X
  def update_release_charge  
6 b* Z( m5 z* ]5 i! r    if $game_temp.xas_charge_time >= 100 and not Input.press?(XAS_COMMAND::SKILL_CHARGE)  {$ _( G4 e& X2 E4 t- K
       unless self.action != nil or self.knockbacking?9 e1 ?& G) X9 J6 G
         action_id = @wp_tool_id if @wp_tool_id != nil 9 Y5 V3 m$ v! Z+ O" d8 j
         return if action_id == nil or action_id == 0  
9 D7 P& {% ^8 B  k+ g         if seal_state?(1) # ^/ V3 }; I& Q& g
            seal_text
. ^* u# {* Z, ~5 X7 x1 M" \. w            reset_charge_mode
: {, P8 c7 c$ h3 [/ o            return
9 Q5 o9 a0 @  G! |& n4 {- F         end   
* l9 ?! r3 M3 m! Q/ k         self.shoot(action_id) if action_id != nil  7 G3 ?# n: _" m/ X9 w" v
       end
& k1 k6 X% p4 m% z% F       $game_temp.clear_setting2, e' y# L* {- \/ K7 I6 |2 `' w
       reset_charge_mode1 ^! L4 L- h5 {# g9 v9 K. ~
    end
1 h2 |# {; K. ]# V+ }1 v/ K* B" P( S  end
" [; N( s. i* J( f
0 L9 d' ^" O6 E# E#--------------------------------------------------------------------------
7 \3 d; ^1 z+ Q+ ^; ^6 k4 a( D, b# ● Reset Charge Mode) f" S5 x9 B7 h
#--------------------------------------------------------------------------
' \, _9 Y3 B, c% Z  def reset_charge_mode(max = false)  D* }' s5 O/ k7 D# Q0 `
      return if $game_temp.xas_charge_time == 0$ v! ]! O3 T9 Z
      if max
; ?% Q6 r  w, j5 w6 P         $game_temp.xas_charge_time = 0 if $game_temp.xas_charge_time < 100
, T6 q. R, z) M( N9 l' o, i      else
) p# x: H, @7 `5 h* v4 A$ P         $game_temp.xas_charge_time = 00 r4 p; L, a: _, P* K" h" B
      end
$ b$ k; L" S3 v      $game_temp.xas_anime_loop2 = 0! i4 t. H* s8 V/ f. x, K! v. y! H
      $game_temp.xas_anime_loop = 0
0 c! y0 x6 ~0 m* A5 p# c) G5 R      @action_move_speed = 0" p# t# q% k$ A/ t
      @direction_fix = false2 M4 @3 x! b+ w. {4 \  X6 m
      @need_refresh_pose = true if @pose_type == "Charge"     
$ B; I4 `6 G( e& b" R6 ~0 _2 |  end
: Y4 C% l7 K, V7 t/ O! Z
- I4 P6 N( Q0 Z0 S1 @0 s     
/ U9 ]8 O) l  H5 ^9 B' _: ], r #--------------------------------------------------------------------------$ _) u5 I3 a* M+ c( g0 b
# ● Shield Direction
* I1 }" @5 }/ d2 k' G# z: H. J8 x #--------------------------------------------------------------------------  & y; ^6 ?6 y1 v" i* o5 t
def update_shield_direction
" C+ Y$ S2 u2 a" c" r3 k     if $data_skills[self.action.id].element_set.include?($data_system.elements.index(XAS_ELEMENT::SHIELD_EFFECT))        9 `* ?- N. X2 j! i% o$ _1 V; H
        if self.battler.state_confuse6 I* G1 w% g# K6 t" O
            turn_reverse_direction     ! E# l' ^0 T$ T- R$ i+ x( g  m
        else
9 f# I8 P: I& w4 a0 f. |! J            turn_normal_direction       * i/ c2 ]6 L+ J, a8 H
        end
+ e4 i' r- O* }; Y" W3 k3 m     end     ) C6 S- ?$ l, F0 O! Z1 K
end  
0 B! i3 k( q) j# X# ^) e: S 9 ?4 u/ t0 G9 v2 A% C6 ^
#--------------------------------------------------------------------------' S' O* M1 P1 E6 G. b0 H* W0 s$ ~/ \
# ● Turn_normal_direction
, L8 C- f' A* l( e4 ` #--------------------------------------------------------------------------   
, z" K2 z3 L: M9 A def turn_normal_direction1 @( l9 N' }! X  C: P1 q' ^
     if Input.press?(Input::UP)
( m5 ?- M$ i' z; g0 ]8 [# m        turn_up
3 d4 t6 {& P4 B; ]* [0 }5 W% p     elsif Input.press?(Input::DOWN)
2 _* I8 @& X' \+ |        turn_down
. ~8 g3 v% I- s& z7 |# z     elsif Input.press?(Input::RIGHT)
. w3 y9 l; E+ x; B5 l6 N% C        turn_right
: T  c( x( M7 @9 r2 f9 ]' v' T     elsif Input.press?(Input::LEFT)6 `( h, q: m2 f, h! r: r2 y
        turn_left
1 B9 o4 H1 }: y  F     end   
. u- ~( r5 m+ E0 b% H& s5 J0 n end
8 O1 c& S- V- e& ]- O" Z6 Z
! h; P" [5 j9 H0 d7 p0 i #--------------------------------------------------------------------------
# J1 V* R! g: Y2 r7 Z, x. l  M # ● Turn_reverse_direction
  ^  c! {  _/ ` #-------------------------------------------------------------------------- * |$ x: z+ o- A7 [3 }
def turn_reverse_direction
- g7 z2 E3 H) \7 u- R* f; B     if Input.press?(Input::UP)* J- a2 J7 r  Q1 }' n) Z
        turn_down
$ K% z+ E% Y- @1 [! e     elsif Input.press?(Input::DOWN)$ J9 h) Q2 g' A+ d7 z
        turn_up+ e/ B7 T+ [& }, E8 m- V
     elsif Input.press?(Input::RIGHT)) U% \# `7 X8 z' w: @- G
        turn_left- z4 s! r7 |- G0 Q0 x
     elsif Input.press?(Input::LEFT)
* f6 q/ j# U. C: y* W1 t' w, f        turn_right  m3 c' s) Q8 x' i
     end
  f- F( T( B$ L( k% D* R5 x end) G9 R* w, o) B3 E2 Q6 I6 w2 q$ ]
     5 c6 N0 `- d1 z8 F5 E* ~% B/ _
#--------------------------------------------------------------------------
% d. O6 J7 g3 l! c$ H1 d6 p3 t # ● Direction Fix Update 2 C' S2 Q9 V- `0 u/ y1 J9 Y
#--------------------------------------------------------------------------; P6 W* w% V& E  i: `1 r: h) V, f
  def update_direction_fix* L8 R7 _0 l7 c/ }/ ~7 l; Y
      if $game_temp.xas_combo_attack_time > 15 or2 u, T7 \& ?+ N" d: [: W1 X
         $game_temp.xas_combo_skill_time > 15 or
+ b+ o, D% W) t2 w         $game_temp.xas_combo_item_time > 15 or
2 N( M9 v+ Y/ w: W         $game_temp.xas_charge_time > 10 and MOG::FIXED_DIRECTION_SKILL.include?(@wp_tool_id)
/ G3 t! A( x& b         @direction_fix = true
- ~$ Z6 q8 `; u' X      else  
" ?& y2 Y, T, _7 S- ^1 S         @direction_fix = false, I' N6 F* ?' P6 S
      end  1 l( `! S2 C0 ~/ j( h
  end  
0 d1 a7 t0 c# [% n, h% F( b  / ?+ C! I5 b! s
#--------------------------------------------------------------------------# j9 h* g8 ^+ |8 |1 ~9 A# K5 P* s
# ● Check Equipment ID% }, h: |$ N9 _- K  l
#--------------------------------------------------------------------------# U" B, f- G* m" z! E& t
  def update_check_equipment_id4 a$ o6 V9 G; p
      if @wp_id != @actor.weapon_id  
% [) s" |1 f4 [9 U2 c         @wp_id = @actor.weapon_id- I0 r: x; U) d5 j# g2 P- n
         @wp_tool_id = WEP_CHARGE_ID[@wp_id]; d4 c  ]7 z" a8 p4 j
         @wp_tool_time = WEP_CHARGE_TIME[@wp_id]    . {$ w, t5 k0 L- H; j+ N! R* `
         @weapon_tool_id = XAS_SKILL::WEAPON_ID_TOOL[@wp_id]
. Z% n. L! u: h, T) _         $game_system.xas_action_slash_id = @weapon_tool_id & c' ?0 l: L- `% A4 D, O% K+ g( D
      end# N. ]  J1 r3 k6 E
      if @armor_id != @actor.armor1_id  
$ `1 y& ^' S8 ?3 x         @armor_id = @actor.armor1_id3 Y( J6 R+ ~, r$ L5 K1 _" l
         @armor_tool_id = XAS_SKILL::SHIELD_ID_TOOL[@armor_id]
* u9 X7 R; J; i) c7 @" }- ?5 v0 H         $game_system.xas_action_slash_id2 = @armor_tool_id        
# N% u! w( p' m9 x7 t$ U      end
8 y* X3 P, m$ x  end" e1 x( Z/ j$ L0 G8 _* R7 }% r
  ! o, l+ s( G8 o( {0 F$ c# u
#--------------------------------------------------------------------------
8 u( N6 L) T& D  s% `) P # ● Pressed Button7 a. d9 N9 p8 b% c+ i
#--------------------------------------------------------------------------  6 Y1 I! p; ^5 o' E! @, W0 l
def pressed_button?3 Z" B$ |4 ?$ g( H2 K9 r# a
     return false if self.knockbacking?8 F# v+ X/ H8 V# z7 x
     return false if $game_system.map_interpreter.running? $ |5 }, ^# |4 f: u  ~5 u* N2 P
     return false if @pickup_lock  U2 N  f8 y! i$ @% _$ W7 U/ v! v
     return true if Input.press?(XAS_COMMAND::ATTACK_ACTION1)* V/ ~4 k2 q6 b3 q4 ^0 ]
     return true if Input.press?(XAS_COMMAND::ATTACK_ACTION2)
7 f/ v6 {% @; ^- t" @     return true if Input.press?(XAS_COMMAND::ITEM_ACTION)
- }3 h5 S4 B" l# F. f3 [% [9 u( ]     return true if Input.press?(XAS_COMMAND::SKILL_ACTION)9 Y8 k0 U3 S% T7 n: z
     return true if Input.press?(XAS_COMMAND::DASH_BUTTON)
* k7 `. h$ [; q  I( E/ D/ s     return false+ c' `( A) D8 a! R3 S" v
end) M: r& w5 F/ I+ R' ^
# s7 S& ~# T/ v/ L
#--------------------------------------------------------------------------
- C1 t  S9 J6 h7 t1 \ # ● Trigger Button# V6 }! ^* ^, N  H( H9 T! l3 B
#--------------------------------------------------------------------------  
0 V3 F# R$ z, `  J2 C; T def trigger_button?
3 ~) X' M' s' Z0 u! o     return true if Input.trigger?(XAS_COMMAND::ATTACK_ACTION1)
5 X: q. R3 \# F     return true if Input.trigger?(XAS_COMMAND::ATTACK_ACTION2)
% _; h& w2 ~+ _) O! D! ]     return true if Input.trigger?(XAS_COMMAND::ITEM_ACTION)* M' b( d% {7 P/ B/ h
     return true if Input.trigger?(XAS_COMMAND::SKILL_ACTION)8 N7 T" z4 C* J
     return true if Input.trigger?(XAS_COMMAND::DASH_BUTTON)6 a3 S  L/ @4 _2 i1 _. U
     return false
6 l- b; s1 C& V" E: U$ j end
; `! a% h1 |* [9 v8 S
' X, u+ U/ s9 U% R #--------------------------------------------------------------------------
) D4 V6 a; O) e2 S # ● Pressed Check
8 t( t/ t6 g+ j9 L3 j4 ~3 O6 n: j #--------------------------------------------------------------------------
" ~3 v8 r3 q" l0 m. L0 N: r3 } def update_pressed_check ( ?  M2 s9 p. `- N% u3 s2 B
    if pressed_button?2 f3 j, f3 r# S" B! T
       $game_temp.pressed_attack = true
& k8 N6 e. g* E4 ]4 M1 |       $game_temp.pressed_attack = false if trigger_button?
4 P8 c& L# m" }6 C4 D8 {    else  5 L3 }5 O# O7 ~9 p* l5 \% n
       $game_temp.pressed_attack = false  
+ }: `0 G! ]! O5 Q3 \) A$ p    end  
' g; _6 [  X$ a  M end  
. X) _1 [: P1 l" W! n  
: o6 [" ?: D5 X. X1 c6 _" M  #--------------------------------------------------------------------------
* k: `+ C8 p6 \  # ● Call Menu& E  l4 |: X. N( V2 G
  #--------------------------------------------------------------------------    2 s( j; ?( ]7 @+ ?  Q
  def can_call_menu?
; X3 s; s) J, N3 @8 x      return false if $game_temp.slow_motion > 0
5 k% b2 E, \6 R! ~$ o      return true      
) U! n5 E% G" `& G; ~$ z  end   : @8 C5 z4 K! v# V. e- V4 B+ Z

- ^. e6 Q, Y  D& L- \! _# e1 ?end   
: C9 ^" H( f+ r5 i+ q2 V
. L8 F) q3 N' t+ F. Y# O/ C% A#===============================================================================
- A/ l* n/ D4 M% l7 g* _# ■ Game_Character
- Y1 l7 |! u7 z9 Y& ^; ]+ K5 k' W#===============================================================================! F5 Y7 o; ?3 n3 ?
class Game_Character  
# M/ |+ ]$ g* I1 k. I #--------------------------------------------------------------------------" \; ^0 ^4 K$ S. g$ q
# ● Passable Hookshot
9 Z! N) s- Y; v6 [6 B( x$ P #--------------------------------------------------------------------------  
/ G* ]: w7 V3 d' G0 m; C8 m5 W" P  def passable_hookshot?(x, y, d)4 N, S- v: n4 w) K) E; Y
    new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)" H( K; O, D# D! e2 @: L
    new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0): m: |; W# U& ?' z& j
    unless $game_map.valid?(new_x, new_y)
6 E! R. `: H; p) t      return false
0 b- X) N# C5 ~$ e, [    end
+ _3 f3 @& s& n5 D7 `    if @through; b( E/ U  |& \
      return true+ t1 q2 P) {  p" J# ]( F# p
    end1 @5 u# N7 X! u
    for event in $game_map.events.values
7 D1 ~. ?6 c  C  t7 ]      if event.x == new_x and event.y == new_y 4 V& N3 Q& z+ g
        if event.character_name == "") H) I% k7 P' Q" M( {6 r
           return true, Q+ i( k" J' Q
        end         
* Y& i& W. P/ \7 ]6 H$ z- |/ D        unless event.through
  j; q9 F, h+ ]6 t' k! l- b          if self != $game_player9 t/ f& u7 a  Y; d" d
            return false' t: |3 a* W3 h  W" \
          end
( p1 {  p# X3 S* M* @  G          if event.character_name != ""
7 r2 x5 S$ p( w            return false
" G# L4 l/ x$ x, D' ~6 J          end. z9 {# N8 [. I: G1 @$ C' D
        end
) g& I; H" C9 S4 o8 m      end
' G: Q6 x+ T, s    end
4 X& U2 l2 v$ L9 T% t  o    if $game_player.x == new_x and $game_player.y == new_y
' j% A! O" y7 e' S/ O      unless $game_player.through2 t% J" ?: d, }) J9 \+ p
        if @character_name != ""5 m3 s. e, K" c7 s" Y/ \
          return false
5 M/ v% U* o) I4 }" e2 a        end. n/ f" s- W3 t9 T+ U! ?1 E! l
      end
; c  U) ^. w7 V) u6 [    end8 Y8 x4 i" _) P3 n
    return true7 t- f9 g( ^) B$ j% p2 x; I8 ?
  end
$ y$ G# \/ W* E# l3 w  
' U/ {9 u% Y3 u; r0 fend  * c, e# v+ `( g: r$ x6 k

% m( l( {/ t! K7 Z( ?" I* o' [#===============================================================================
9 R: Q0 e- @' I6 i, J8 ^# ■ Scene_Save
. t4 O: Z- g% {4 {#===============================================================================, G2 D' b) R/ Q3 d* y) _3 j. v
class Scene_Save1 X, A; Y' d2 i3 x5 L# s
  
: j" [  @0 _+ ?; s& |6 E& b) W #--------------------------------------------------------------------------
3 a* h1 O1 \2 J# t( E' [ # ● update    / v; z2 X  Y/ |( n1 S9 e. g1 i& \
#--------------------------------------------------------------------------    . b- W$ g1 j) F) U" G& G* G( G" K
alias xas_background_on_decision on_decision
/ d, o1 [/ Q/ C1 l def on_decision(filename)+ r1 d$ V$ i! w( I8 W5 g
     if $game_temp.background_effect_time > 0   
! c3 i: V% ~7 R) o: _  l7 {" c% E        $game_temp.background_effect_time = 01 m% I/ l/ g5 z0 w. ^$ Y
        $game_map.panorama_name = $game_temp.pre_panorama_name  `  q$ S/ U3 c5 y! u% A
        $game_map.panorama_hue = $game_temp.pre_panorama_hue
$ }- m5 W; {0 r6 S      end        
0 |/ m" h0 u& t$ O7 E2 r      xas_background_on_decision(filename)
& |3 n" K* l# j2 B  W0 e end  ( [- K1 Z' @: t. Z* ]% R" q: h0 |, ~
end
$ E& x4 d7 }1 O0 r5 R# W+ V" n$ `
" A- L+ u$ t8 N5 x9 R% Y5 @$ q' M
% N. h7 m* n- f* y6 w2 {( R' ~& _
6 k7 L* p. t2 ^) `  I( T1 \

+ O- x' A" F3 D4 Q#===============================================================================
/ W2 c% J6 b# |% U  Z/ X6 B; Y$ B# ■ XAS_ACTION
! q  K0 B9 F% w8 V# z! g#===============================================================================4 n1 l( @5 j; V! o  D/ P
module XAS_ACTION
3 W1 o2 C) ], C  
. Y8 Y" C. X- }7 o2 y: R& e#===============================================================================+ a+ `' ^3 d% u7 x
# ■ Battler Commands
- Y" `+ {3 C" d# J+ K#===============================================================================
8 p5 Y/ T; |5 v3 u$ N; T% M4 a   
/ Y3 u4 y& K8 W. ]$ I #--------------------------------------------------------------------------4 E. C) z8 A; f3 k' d9 l
# ● Anime$ \. ]  y9 T' X
#--------------------------------------------------------------------------
6 ~) b8 Y+ S+ y3 `, {  def anime(anime_id)# u. }6 }3 z1 U$ v7 R& P
      self.animation_id = anime_id    9 ?, Q/ F. h3 n4 b
  end
+ j+ V5 M2 W: u7 |( A   
4 t2 H. o+ n8 m" |( g8 m #--------------------------------------------------------------------------. `5 R/ d2 s' n* c, z6 i
# ● Anime D8 ?- K8 x' _& e
#--------------------------------------------------------------------------1 |1 T. x$ r* Q  \' X
  def anime_d(u,d,l,r)
- }5 w( i; z6 G      if @direction == 29 p/ `0 M4 [' @  R& D* t8 n
         self.animation_id = d    5 |6 D: Q6 z0 b% Y$ ^( c9 l. s
      elsif @direction == 8' I9 J* R' r6 w9 Z' F$ h2 X
         self.animation_id = u
+ X& S3 U) ^, z      elsif @direction == 4! m5 [1 g' T* d0 R. g
         self.animation_id = l6 _2 U, @9 m  Z
      elsif @direction == 6
( d( O, e1 i5 V$ ?# K         self.animation_id = r      
# H) ~8 \' n, k, I      end  
& v1 q) _1 d' z6 R  end     , Q8 ]* t. i/ w; H: |) \2 m& T* R
    2 ?4 k$ Q! F4 z( x
#--------------------------------------------------------------------------, S0 z- [3 {$ k  `1 c! V( _
# ● Invunerable( G) ?& [/ D5 p5 c: ?
#--------------------------------------------------------------------------* P* D) k! O! w. u
  def invunerable
7 U2 e! b3 o+ b0 v( s      return unless check_battler_exist?( j, Z  y9 Q7 h  a% I" m
      self.battler.no_damage = true
" H  a! ~4 w, D* L, {) F# e. T% m  end
1 ]+ H) Q* g( ^. ~# O1 d   
, m! [4 p$ c* v+ x0 u( m #--------------------------------------------------------------------------1 J1 z. {& y8 V$ a0 y: h0 v
# ● Vunerable( Y9 k$ M2 ~% v7 X5 L
#--------------------------------------------------------------------------
* x# s8 w: T9 z: q/ t  def vunerable
, y/ \( q( O  k7 M$ G1 t+ Q      return unless check_battler_exist?  m% e0 m. U  t; Y2 `2 C
      self.battler.no_damage = false, K7 d( E9 e5 Q& T* P
  end$ R' ^+ |: `( M  x2 {
    4 X0 ^* i! k% E8 @" W7 g% ?
#--------------------------------------------------------------------------0 q. Q( ^) D& A9 x, G8 G2 w( l# u
# ● Text
$ k4 N$ u$ U  R' R* o% \1 V! Q% ]/ T #--------------------------------------------------------------------------
5 ?9 P/ F' _/ N- z- y! v9 M  def text(tx,perc)+ o# E2 Y1 D# z. D2 r3 K) f
      return unless check_battler_exist?6 u2 [& M5 l6 `0 o* P
      if rand(100) <= perc! e" F9 ~1 ]8 H' _  n7 p7 m
        self.battler.damage = tx.to_s7 n  b! d* T9 y1 R) w
        self.battler.damage_pop = true1 E; _  h; }2 [% G, ^( `0 f2 A! Y
      end8 F/ U2 |5 i! x
  end
# y/ m9 c2 E: T/ V4 E   
. O4 G$ {6 `$ |3 V# D! x2 w& @ #--------------------------------------------------------------------------
( v% B  @5 y! h' c; b9 `2 f/ s # ● Zoom
' w1 b- X: ~2 F  b. Q, R* \1 C #--------------------------------------------------------------------------; _6 `6 y- `5 p! O1 p/ s' U
  def zoom(x,y)
1 D8 U7 _$ l" Z  |      return unless check_battler_exist?
! d; e7 {2 [# E      self.battler.zoomx = x
3 m. X3 t. o- j- F( _& }8 N& q2 o8 ]      self.battler.zoomy = y/ ~2 t5 ]2 U7 F& h
  end  , q6 |) f$ B5 w$ m

- ]  Y8 ?" }. _1 O/ K8 F5 i; s #--------------------------------------------------------------------------. Z+ @* N! l) o" _( ~( B
# ● Zoom fast
3 j% Q6 j8 l6 Y- v #--------------------------------------------------------------------------! d; ~& z9 t+ S5 w. f3 H
  def fastzoom(valor)
) Z0 I- I$ o" T/ n+ W      return unless check_battler_exist?  
( }& `2 Y* R/ f7 ~1 J      self.battler.zoom_fast = valor
( s" J9 u$ L2 k, M+ \6 W  end
) u0 f: u7 E" t9 F, W2 E" ] #--------------------------------------------------------------------------6 W) B$ A7 i4 \; Q6 L
# ● Self Damage8 N3 Z6 d7 K+ J; P9 G0 S0 I
#--------------------------------------------------------------------------
+ R6 w8 g: x- b6 q0 o  def selfdamage(damage,perc)6 ?4 R6 p; d$ x) _( F) `# K6 Z
      return unless check_battler_exist?  k: T0 ^8 o7 f4 X8 V7 v4 Q
      if rand(100) <= perc
  X/ ~; g  j4 T, \6 Z- b         self.battler.damage = damage.to_i; z& g9 I. {4 }- T" E
         self.battler.damage_pop = true              6 q7 h4 e4 G6 S( J  P* ?
         self.battler.hp -= damage
5 _. [) c- w. U* f         if self.battler.hp <= 0 ' Q. d. s( F  l, E* s
            self.battler.gain_exp_act = false   
- F+ c3 F7 S; c2 A3 W. C2 R         end
: O* E, {: M7 E      end. ?1 N; W1 B1 c2 C( J* {
  end
# b. q+ L$ W  ~4 h! Z   
! f. m1 g5 B2 W0 r0 I+ i) L8 P #--------------------------------------------------------------------------
8 }, v" u: o# a9 N# t # ● Add State5 L4 p2 E8 }7 D; Q$ C  b* D
#--------------------------------------------------------------------------
" y6 k3 c0 R; s( m; h0 W  v  def addstate(states_id,perc)
( i" k& |3 ~6 c" p8 c      return unless check_battler_exist?
) S1 i6 E' W1 i# z6 ~+ E+ [0 {      if rand(100) <= perc( t8 H) J, E9 K9 z$ q, k% b, ^
         self.battler.add_state(states_id)
" l- g1 X% `/ K- w      end
0 E+ l, l' g/ m& ?! I2 ]) L, W& d  end  
( C4 ?4 a5 \: e# k    # M2 G# o. r9 i+ [* ?9 j
#--------------------------------------------------------------------------
! e- v& T4 J. \, o. A # ● Counter ON
0 T1 C7 r; e& Q$ w- v #--------------------------------------------------------------------------6 A& e0 D8 x2 \+ j& f% h/ U4 y
  def counter_on
! c0 N) L  O3 E& |" [5 w: `      return unless check_battler_exist?* F8 t7 m/ n5 d  U
      self.battler.counter_on = true" r+ r2 m1 Q. I* u# @7 L
  end
& Y  F: o# Q; m; o" v    * i- M5 ?: X& S' f8 h* k7 B
#--------------------------------------------------------------------------
0 O# t; n5 M; o6 P0 b6 V- Y # ● Counter Off
- R) G, ]. Y& P: S  {1 Z% W, _ #--------------------------------------------------------------------------
* G! T4 z4 J0 t" V/ V5 f. Z9 b& C  def counter_off
0 p4 i0 S2 D4 e      return unless check_battler_exist?$ {& w. N! m; R0 i0 g5 s
      self.battler.counter_on = false
2 b% v* ]3 B" |) F# a7 A1 u  end  0 K6 l0 o. _6 {( l- k5 y4 F' K; Q
   
. ]* K: ~0 z3 j3 x #--------------------------------------------------------------------------# }+ D8 n7 f+ I2 z$ \
# ● LowHP Add State
, Y. e' E! [; ~& W2 }& f #--------------------------------------------------------------------------
; h4 q5 |0 h% A- ?8 o& |$ N1 K  def lowhp_addstate(states_id,perc)
. a2 i+ f) s. v* ?4 O      return unless check_battler_exist?& j: u  [0 g3 I' G0 A% R
      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
9 }& P) t+ g& O, _: m      if rand(100) <= perc
% `6 F2 n  I% \3 O2 B/ y& ^         if self.battler.hp <= lowhp* X5 E" {+ J; U: Z
            self.battler.add_state(states_id) - L' B  c9 m  s& A1 j, q: X
         end- T4 K! ~0 n; T+ {% ~
      end
+ H- P* t: {; n4 m3 G* f3 A  end( }7 [7 |; Z( g" E
   
2 B% {+ Q+ x! [  l5 E #--------------------------------------------------------------------------
; g, y2 ?, e( g) q: t' g # ● LowHP Remove State
+ E. @* r  |) \4 ?) _2 S5 g #--------------------------------------------------------------------------0 Z* O- @4 I+ G$ c: \
  def lowhp_removestate(states_id,perc)
4 r7 R' v( M! O) F* T$ N      return unless check_battler_exist?6 V/ N5 M0 I% w7 \- u. \
      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
! m2 h- F% f1 C, L. i      if rand(100) <= perc. C; ?& N; w% Z: ?0 m* Z
         if self.battler.hp <= lowhp
. R. E, Y- @$ C$ J8 i+ K            self.battler.remove_state(states_id)2 e, ]0 v. l# N. C! _) s5 r
         end+ c( c# @- v" w' w1 X3 M. {% ~
      end# G, j. W+ s- w; I
  end  $ M8 G' f! ~- n- W! i
    8 x% m( y. x; V: v4 j* I; Y
#--------------------------------------------------------------------------7 C5 u9 {( h, Y1 s
# ● Remove State* v; v: U* q9 B- w2 W; w, T
#--------------------------------------------------------------------------9 D& \# R$ v% P2 H2 g6 r0 ]' c% _
  def removestate(states_id,perc)7 s" W$ }- R1 Y4 L
      return unless check_battler_exist?
9 T9 r; g" m1 E9 H. p      if rand(100) <= perc
" |* ?, w+ f( T& U! I7 [        self.battler.remove_state(states_id)
8 ]; z5 Q3 [- y; w& d. N( j      end
9 t$ w. g2 \$ F8 _1 K) S  end   
3 C! T) \4 N" h   
6 D3 t2 B( u. {. U2 y3 u4 s8 j  p #--------------------------------------------------------------------------* S7 V. w2 p1 ~% |
# ● Recover All" Z9 G8 w% i5 v" E  j
#--------------------------------------------------------------------------
7 v4 \0 _; @& q/ H  def recoverall(per)% v% l. v( U) [, R& J4 t1 b
      return unless check_battler_exist?) i& `- J! v) B( o& F0 `
      self.battler.damage = "Recover"
0 l/ @+ }3 U5 w* @: ^* w      self.battler.damage_pop = true
3 c+ W7 }3 p1 w  q( J. J; a8 b3 p      self.battler.recover_all
5 D% l, e* h) M1 `' {% Z  z  end3 v0 ?# Z( Q# ~$ W# a
   
4 z  g1 E. ~( Q #--------------------------------------------------------------------------
; X" D) z# p' M' o( D& l2 R9 S; r7 ]* c7 \ # ● LowHP Recover All
2 c3 s9 s; c+ r  ?" C #--------------------------------------------------------------------------. U$ @) l( t& Z! _
def lowhp_recoverall(per)
$ o' I" B4 E% j# n' X    return unless check_battler_exist?
: J. c" }& ^' R, U6 ]/ ?    lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
9 ]$ ]; o( V8 \' X7 k    if self.battler.hp <= lowhp  H: @" |" ^- E8 s# ]
        self.battler.damage = "Recover"
: x8 ?& ]+ s: U: _- Z* s        self.battler.damage_pop = true& z' G% h9 v2 }- k
        self.battler.recover_all
% C7 e# e$ T% i* V    end* g& [' R- t* S0 _' j
  end   
8 G; n' h+ B. D" B1 N; D( ]    9 }5 k) A& |5 \! s
#--------------------------------------------------------------------------
, x4 _& F  d& X# s # ● Low HP Anime
" |& D$ T9 x. M- u# l #--------------------------------------------------------------------------
5 A% d6 d+ P3 d% S5 \  def lowhp_anime(anime_id)! N% [$ C; G: L" ~
      return unless check_battler_exist?# x# F2 b  M5 r( ~1 t
      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 1001 ]( [* F; e. l2 w( _! `0 A+ X) u( c
      if self.battler.hp <= lowhp  
0 Y( F; R4 o" J  ^         self.animation_id = anime_id         
6 ~$ a4 V  V7 D7 P% `      end8 r/ ]9 t" B5 L2 g9 K5 S
  end  " c/ Z% g: g, C, s2 H
    " k9 w- V+ v+ A/ A
#--------------------------------------------------------------------------9 s0 U3 B, a6 x
# ● HP Anime
1 p" `8 i% P0 ]' \ #--------------------------------------------------------------------------
2 B6 p2 S- r, M* w; n  def hp_anime(anime_id1,anime_id2)
$ K# N$ ~. |- X3 Z      return unless check_battler_exist?: M4 |- ?- O6 C7 {! W9 f  h
      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100' \; x$ e+ @* R+ y) F! U
      if self.battler.hp > lowhp
4 ~/ h. w- }! F, ?9 F/ E4 G          self.animation_id = anime_id1
/ {, o5 }% Q' d; O4 u      else9 Z) s8 `: i0 I& t
          self.animation_id = anime_id2     % @! g6 r+ O3 X! J; |$ v! k
      end5 e  @5 X  u  u' G, C- w& ?
  end  
! b8 }$ k  l: _7 v, o4 c, U   
3 A% T$ Y, U5 _, F* r' _5 N# q #--------------------------------------------------------------------------
+ U& U' `0 B: d # ● Speed( h' n, L: _; ^0 f8 P, i0 m
#--------------------------------------------------------------------------
! L1 Z/ H2 H# z; J. W! g6 w  def speed(x)
* ^. q7 d7 g& V& Y      @base_move_speed = x! F/ U, }. Q! w% H1 I( a6 H% D
  end
( F; c6 H- V$ a% f   
, h7 }9 }' [# U: Y- S* n! {  m #--------------------------------------------------------------------------$ @: ?1 n& x$ k6 f1 L
# ● Freq
; W* Z- m' z* F( R" t* z/ K' v/ ^' o #--------------------------------------------------------------------------  8 D$ k4 M, ~+ u7 B7 s- `/ t7 Q7 c
  def freq(x)2 M% x) q3 N4 s9 x
      @move_frequency = x: P8 u- {# |6 p+ S/ V
  end
( t* m" {* [2 g: F, @. l #--------------------------------------------------------------------------
8 y$ U) c/ I8 `4 B& T6 v # ● LowHP Speed+ a/ t6 ^# d. ^6 k  Z8 c' ~/ Z. i
#--------------------------------------------------------------------------* X4 _; r( K( ^3 r- e
  def lowhp_speed(x): s9 O0 {8 J$ o
      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
! T# T' _- ^$ l$ u# P, X      if self.battler.hp <= lowhp
- n9 `8 S# X3 S7 y/ Y! _         @move_speed = x
  q2 a: J8 X) W      end
" N. Z/ S/ |) A, X0 v' S  end
8 f# I9 l: D8 ~3 m; \. n4 v   
: l/ a0 {. ^1 T. S, I$ l0 \ #--------------------------------------------------------------------------  \- f3 x  m% z" @
# ● HP Speed+ _$ G- A) R: ^6 z) C9 d
#--------------------------------------------------------------------------
8 F8 X  l0 b- u$ p, B( K  def hp_speed(x1,x2)! c1 L- M0 s8 m. K% j# U! [
      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100$ h5 o* Z9 o) Q% Z6 P, |- S/ x
      if self.battler.hp > lowhp     
$ w! X7 F) m" Q5 Z0 O         @move_speed = x1     - v$ i' K9 l/ }6 F
      else$ v3 t0 P( s# R5 V9 U) @
         @move_speed = x2 2 u& T- f3 G: h% @3 u+ ]/ \0 m. W; m
      end) t) b3 R$ |& Q
  end    7 [+ h0 f- t( c
    + y2 P2 A8 |8 `7 p
#--------------------------------------------------------------------------$ Y" F* N, a  q
# ● LowHP Switch/ F1 D3 z" Q# `: M% [3 @
#--------------------------------------------------------------------------/ Y6 ~6 l" T2 y, j- \. L
  def lowhp_switch(x,on)) C! u, J: M$ X% L$ M" E
    return unless check_battler_exist?
5 t. y6 T6 R' ]    lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
! O! N. l* q+ v    if self.battler.hp <= lowhp8 `* \% O4 ]# `  y) [5 ?. ?
      $game_switches[x] = on
/ W# ~& E4 _( N+ F; Z5 F/ `& ?      $game_map.need_refresh = true if $game_map.need_refresh == false9 O) Z- s: J) I/ f
      self.refresh
3 T1 a% ~- z4 N' _6 h4 J    end
$ V% X  i( j) U/ S7 |  end    & V4 h* x1 \( w$ {" Y+ n
   
( b2 C5 u: B- G) P6 b) s #--------------------------------------------------------------------------  ?% t) ^6 c2 j# t
# ● Hero LowHP Switch  K7 n9 F0 F' J7 i& k) S
#--------------------------------------------------------------------------
& ^$ t3 J, b+ F0 D4 Q6 [  def hero_lowhp_switch(x,on)
# }" z7 O- P+ X( u      actor = $game_party.actors[0]
7 b7 J* p8 o' {' {5 s      lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 100; E( T& f/ A/ g
      if actor.hp <= lowhp     , D8 F6 t1 m* V
          $game_switches[x] = on
# p& E! b5 ?# f8 y+ a          $game_map.need_refresh = true if $game_map.need_refresh == false1 q9 O# r" T& u, K
          self.refresh, W7 s& k% b  A1 @, {9 R9 }0 z
      end8 ~  s" G2 _6 k6 N' {
  end 7 x* \* y8 `" m
   
& c3 a( [, x0 I' ^7 v #--------------------------------------------------------------------------
: E: ^8 G1 _- p$ [0 B9 F # ● Dual Switch! ^' w& B2 \5 E0 Y7 I! q% s7 k
#--------------------------------------------------------------------------  I6 q/ [+ Y: }% U* G2 d" g5 M
  def dual_switch(a,b,perc)
3 z1 H0 b* _8 D! i  [% _     if rand(100) <= perc7 ~# j1 Y8 V0 U, I7 |6 d
       if $game_switches[a] == true
' `  c3 Y+ E, G# u7 T! _6 p) a          $game_switches[a] = false
8 F7 h3 g2 r) s& l5 r' G          $game_switches = true' F9 }. L! l& ]3 \  Y$ Y, p) I  a# i
       else
# f# ?! S4 l2 {$ X          $game_switches[a] = true# B5 X8 r1 v# }7 D8 N
          $game_switches = false
' `6 l' ~( j; z6 ~/ i       end! W+ X# K% a. d, F- v4 k: m
     end
8 m7 y/ U* V& ^7 Y$ t     self.refresh+ ~/ S5 D! S3 {/ ]$ N/ A
     $game_map.need_refresh = true if $game_map.need_refresh == false4 E/ O3 n/ ~) A5 z/ V# `) d
  end     
* \1 J" N$ b- j5 ~4 z   
8 e8 j3 H5 S, ?( a, o, m. d #--------------------------------------------------------------------------$ Q6 H( D: A, }: W! |
# ● Hero Level Switch
& R" `/ y; q7 z& }4 j8 V #--------------------------------------------------------------------------( K8 t4 D+ `- _
  def hero_level_switch(x,level,on)& m4 X+ Q! A/ P- K7 G; z; T/ @
      actor = $game_party.actors[0]
* X, [8 i( h' J      if actor.level >= level) w& a3 f0 @& v9 ]
          $game_switches[x] = on6 D3 s' c- E3 q* O8 x. H3 n' b
          $game_map.need_refresh = true if $game_map.need_refresh == false$ y5 e7 g& }" B2 f% ~; V
      end' K1 v* r0 G2 f! Y$ s
  end   * `$ S4 }" `" y9 r8 i6 n! _* u
   
& R% c7 Y! F5 U #--------------------------------------------------------------------------# S7 p+ r% {( f$ M- S! z" L
# ● Hero HP Anime
# y( D* s4 o- T7 ^- n& O #--------------------------------------------------------------------------
8 x0 _1 ?3 T# n  def hero_hp_anime(anime_id1,anime_id2)
& ^1 d8 N" k9 l  d; n" s4 E      actor = $game_party.actors[0]* m( U1 Q' z% F, |
      lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 1002 n& r! p; `+ w2 R1 F1 p. ^# E
      if actor.hp > lowhp  $ l2 S+ }4 H, k2 E( }4 m
         self.animation_id = anime_id1    ) U6 m: `. h. i. ]8 y6 R
      else- m" [7 f5 w# J7 E; g1 \
         self.animation_id = anime_id2      
4 @$ I# `4 f0 M2 V& U+ G      end- y# ?" W9 Y+ r, S4 J: L6 e8 z
  end     
) n' E" ?+ O8 [: t    3 ~# Z% Y& n, @0 ^
#--------------------------------------------------------------------------
, Q: y( {7 F4 }* E # ● Hero Level Anime5 \% u: q2 B; t1 {
#--------------------------------------------------------------------------
: S; i8 Q# C4 t$ `5 ^7 T3 T. Q9 S  def hero_level_anime(anime_id1,anime_id2,level)# r" V& T8 R) a; T
      actor = $game_party.actors[0]
+ Y5 b; q1 H8 |3 s5 \8 H      if actor.level >= level     0 t8 [, d& I' P1 N
         self.animation_id = anime_id1    & k* L3 B6 D# K0 L& L: u0 X1 O
      else7 t2 B" B8 s% `
         self.animation_id = anime_id2      
  K, p( n7 y( \; _+ l/ Q1 I      end. e% W/ O( f8 `
  end        P6 a+ \5 V6 j5 H" q  [
    5 O4 ]/ Y+ P3 c' N5 w$ Q% o
#--------------------------------------------------------------------------6 l, Y7 f. @8 l6 j- X
# ● Hero Level Speed( O4 K$ u8 w+ t" ^( j% b
#--------------------------------------------------------------------------0 y) Q5 {& f3 }; x
  def hero_level_speed(x1,x2,level)
4 h( T8 v$ N, x5 ~0 C      actor = $game_party.actors[0]
) R: L* {! B  \, h  r& i9 g4 ?- O      if actor.level >= level      
, ~$ D) C& [* W( v         @move_speed = x1     , X- y) i( }1 V8 @; b9 Y% @
      else
& a: M7 O% b0 Q& _' V         @move_speed = x2 . A1 e% I1 L1 Y; _* G
      end         : Y0 d* S! ~7 r" |3 W* {
  end
' x0 o8 r, n( m: z4 e   
9 q6 S1 X1 L0 | #--------------------------------------------------------------------------
/ H3 a$ }6 ~% S5 n; D1 I; l # ● Hero HP Switch4 r! Y% r1 X* p4 E( _6 ]
#--------------------------------------------------------------------------8 a& f: ?: g' E) K
  def hero_hp_switch(x,on)
2 j3 {% @9 _# [" t# W( m0 S      actor = $game_party.actors[0]* a: |2 M2 z6 X& c% \1 R% j: z
      lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 1001 U5 q6 T4 o9 ~4 y3 `: z) o
      if actor.hp > lowhp   
: U; N% }% l/ I, v9 @4 _          $game_switches[x] = on   3 @5 P% s+ \; a
          $game_map.need_refresh = true
! I$ P% X  E, V/ j6 B      else3 q" m! n0 K" g0 v9 T, ~9 ~$ Z
         if on == true
( v# O. P  C( P: D: }          $game_switches[x] = false - e8 T- w# I( a. V/ {0 \, {
         else  1 N- p+ V- Q& |- z) A
          $game_switches[x] = true
) k' }9 \3 ^4 I7 h$ z, l         end  1 D9 }* ^3 i; [5 j( M
         $game_map.need_refresh = true if $game_map.need_refresh == false
4 a2 a' ~: n4 g      end) @* k; @5 U+ x0 d9 h7 P
    end         + |7 d& \9 P2 Y; Y
   
+ `7 |8 ^' S4 t$ [, R/ Z #--------------------------------------------------------------------------; P/ X2 i* {4 T; n
# ● Hero Level Shoot
9 S$ n; }) p  m8 i3 y; D) E$ L #--------------------------------------------------------------------------( s' E/ B. G/ F  P( M5 w) l
  def hero_level_shoot(x1,x2,level,perc)/ q' I, t" [, f5 k7 b9 K5 {
      if rand(100) <= perc
& A2 W# w9 }7 N+ c        actor = $game_party.actors[0]
' e# t# T( D: U" G        if  actor.level >= level    - q; {9 d% [; k0 p5 N( f
           shoot(x1)
0 [. ]: `# T1 }        else
5 _( s8 @4 t% N8 K& L; s/ {           shoot(x2)" w8 ~5 a1 O" P0 x; w  _
        end
$ |/ Z9 p9 S) m% [      end
- k! P% Y  e8 f& X. y, ^ end        
) \& Y! u% N! D5 f0 r    & U+ `; m( n8 I* a; D
#--------------------------------------------------------------------------
5 C' w2 A4 }9 E1 \' p7 t: [ # ● Hero Level Escape
3 I+ E5 S1 l6 Y2 M$ Q: B* |& Z #--------------------------------------------------------------------------
+ Y- J. f% ?2 R7 k2 `  def hero_level_escape(level,perc)( f6 a. u- n5 G( l# l
      return unless check_battler_exist?
9 {, W  O6 X; x: x      if rand(100) <= perc" x; b2 u# c) t; k
        actor = $game_party.actors[0]3 ]1 x7 L; ~8 d+ H* {5 B  i
        if actor.level >= level( ]3 m8 ~5 T$ E% m0 q
            self.battler.no_damage = true
7 b4 o# c! b$ j8 G2 k            self.battler.damage = "Escape"
# u; Q$ C" @- b4 j! |. I. P) g            self.battler.damage_pop = true % ?7 f. U; X: W* l5 Q/ M
            self.collapse_done = true
4 T! m+ r6 ?& W, f# U& T            $game_system.se_play($data_system.escape_se)1 @  O0 F* W7 U' V8 m+ T2 O
        end
3 T6 z8 ]1 c+ [# a* X      end   b  r& Q0 E8 H- u2 r) Y
    end     
, J9 T/ m2 O; G0 x" R% i. h    + C9 x: y5 c% w; Q2 q
#--------------------------------------------------------------------------
9 S8 i. q0 m1 L, q! r # ● HP Switch7 i" {  P. r, R- C- @' v  K- X
#--------------------------------------------------------------------------
- s* z1 k' i, O/ |  def hp_switch(x,on)$ Z1 M6 y$ A' Y6 `0 W
      return unless check_battler_exist?
& _' Y* H( }9 s* D! t      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
7 l( v5 o6 ~! B% \      if self.battler.hp > lowhp   
- ^1 L* W' I4 b6 w, f  Z          $game_switches[x] = on   6 ]6 C$ E* e8 y$ G& _
          $game_map.need_refresh = true
( C; k% d/ W) z      else
6 u3 m  u' |. J* e5 Y$ c/ j         if on == true
$ u- Z, ?# N) V: R& _1 l+ G/ x          $game_switches[x] = false
. ]3 o: C6 }2 f         else  5 L; B8 b4 o1 l, b! Z
          $game_switches[x] = true
+ f7 B& K# ]6 U' N         end  " m5 [3 V, F+ ~3 y* s4 Y2 c
         $game_map.need_refresh = true if $game_map.need_refresh == false) M) [  B! s) W
      end7 J6 D. f: U$ R  W# `) `
  end   
  S9 F; S3 N! w' n3 w   
8 w6 u* A$ Z& R) d0 T- ` #--------------------------------------------------------------------------8 p. B, z1 g8 ~8 u* M
# ● Escape8 _  b# }$ J( o, j, Z$ u
#--------------------------------------------------------------------------/ N  F- Y6 k& _4 Z
  def escape(perc)" X4 g1 Q$ [; c5 U( u; ^2 `
      return unless check_battler_exist?0 w. d8 }* x: F$ K  y
      if rand(100) <= perc
# R% u( C/ ~' U% g! U6 R         self.battler.damage = XAS_ABS_SETUP::ESCAPE_TEXT; l5 T! `; L4 T
         self.battler.damage_pop = true8 u6 E5 @2 F2 V1 d8 P
         self.collapse_done = true
3 P- c7 x/ O1 t6 d         $game_system.se_play($data_system.escape_se)
' _6 }0 j1 i% h/ Q         self.erase
( r4 h5 ?8 ~, K5 x      end
. {) y6 N& O  O8 u/ @5 Z  end   
  a: ?$ X! N7 S/ P    5 V+ c3 L4 B% M" }  i. r( p
#--------------------------------------------------------------------------
" F8 ?4 F% _+ d # ● LowHP Escape! h! a  M( I1 d: ]# @' z% P
#--------------------------------------------------------------------------/ b2 l0 v( N( W2 H, H2 F' ~$ f3 I
  def lowhp_escape(perc)
7 @9 S- D+ P7 y4 z/ e      return unless check_battler_exist? ! D  A. G) V# o/ ^4 l
      if rand(100) <= perc9 @" R+ n% t6 }$ N$ [) V
        lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
! ^. l% O/ q$ h/ ?! p        if self.battler.hp <= lowhp     1 [  \% o2 d( f2 I4 H* i8 ^
            self.battler.damage = XAS_ABS_SETUP::ESCAPE_TEXT7 a% E! p4 {: N2 h) b2 }/ N
            self.battler.damage_pop = true& o# W0 f1 r9 m+ l4 ?+ S
            self.collapse_done = true) D, s' ?& _/ H: U1 y) P
            $game_system.se_play($data_system.escape_se)
0 Q9 p& Q2 V% @3 N6 R, }, L% M2 |        end
2 G. X) Q2 Q" A/ J8 z. E      end, F6 |; P/ w9 a: a" {* {
  end       6 w( x3 a! ^) W2 a4 N" \+ U1 Y
    6 L8 v$ l- F& V* J
#--------------------------------------------------------------------------
8 w' r4 d) V' h* v4 W" R; H # ● Shoot Chance
6 H9 V, ], [* h! e! ]& r #--------------------------------------------------------------------------/ ^4 L7 V- W& ^$ T+ ^7 G5 ?
  def shoot_chance(action_id,perc). ~3 o" @% g" g
      if rand(100) <= perc# Y" P3 y* `  i9 i/ g9 N0 M+ H
         shoot(action_id)
& u& u7 ?$ Q) ?      end1 Q2 [" ?( y. V! m+ d
end  
( q# ^( |0 ]  Y2 q' I- G6 j3 i( m   
$ W; g1 W1 {& |. D #--------------------------------------------------------------------------
  w+ c7 F, h% j7 \& I # ● Jump Org1 z) q+ Q% s& `7 V( L6 Y" I
#--------------------------------------------------------------------------
$ z# h' e2 n! f8 h5 V! r  def jump_org
% O) e: v  y' W) J5 E4 T0 p5 I5 y      range_x = org_x - self.x
* J; e: `. c6 @      range_y = org_y - self.y
& X/ ~% M; y. w! _      jump(range_x,range_y)% k  v. G8 e+ ?3 L& P+ t
  end      
  N9 y# X& ~/ C3 x3 f. a   
. R) `7 Q$ G) h- t$ C! ~+ b# }0 a #--------------------------------------------------------------------------: V" R: v% K0 d# R+ I9 e+ d
# ● Org Here
2 c% x4 y6 |7 z4 Q- @- a #--------------------------------------------------------------------------9 U7 K6 r  u. _$ p$ ?
  def org_here
' ~5 Y# u; m& j5 X- v* b      self.org_x = self.x
% p; h( K% d5 m+ y+ {& R, b6 D      self.org_y = self.y
1 w! j: ^! ~& L$ N2 T! }  end      
, v1 `2 N& Y) _' H4 \3 ]  0 K3 o1 x! h# O1 r. }" J% u3 B
#--------------------------------------------------------------------------+ D- ~: A  P8 a
# ● Jump Near- \# r# a( z* J% a. V& u: y
#--------------------------------------------------------------------------* ]2 i" ]& Q5 \/ i, j
  def jump_near
/ q) z. K, @) T      if $game_player.x > self.x and" S, \3 S  l9 ^1 U9 E$ k* H- i1 `
         $game_player.y > self.y. w+ G2 X6 |# \
         range_x = $game_player.x - self.x   
0 z. R' }6 n. v2 V6 Q- v         range_y = -1 + $game_player.y - self.y
1 P( f( e6 t1 r      elsif $game_player.x < self.x and) w" s  L$ _6 \9 C6 y& g
         $game_player.y < self.y* c. I( ^9 P% {9 ^
         range_x = $game_player.x - self.x   4 k) L/ z9 R5 t, s. }1 W. |
         range_y = 1 + $game_player.y - self.y         
# x+ f1 q1 J9 E1 w# o1 X" Q7 m# ?      elsif $game_player.x > self.x and) f, e- c7 Z- q& [$ l5 G: h  Y
         $game_player.y < self.y
% z. x+ D2 l" @; R; X3 {  @" X" H         range_x = $game_player.x - self.x   
& z( ~( c% Q8 K         range_y = 1 + $game_player.y - self.y            " ?; y2 n0 b- ?" A- u* r0 V# H
      elsif $game_player.x < self.x and* f% ?; [. k# Y& T) c$ r
         $game_player.y > self.y: T3 H( Y, |) B1 ?: q
         range_x = $game_player.x - self.x   . _  o8 t) c  y
         range_y = -1 + $game_player.y - self.y   
' X8 K+ Z1 F5 m: E      elsif $game_player.x < self.x and% n4 Z; E/ a* Y1 N4 K  K
         $game_player.y == self.y
: R0 f$ X- l/ `3 X         range_x = 1 + $game_player.x - self.x   ; _, x$ Q# h7 e
         range_y = $game_player.y - self.y            
6 z! a$ r) O* E. g$ i. K& X2 w      elsif $game_player.x > self.x and
% \; d& v4 x6 \" x0 i/ p& J. F/ S         $game_player.y == self.y
9 z2 H0 ]+ }. W( P         range_x = -1 + $game_player.x - self.x   
7 }# P' \+ G( @1 m( N$ P$ }         range_y = $game_player.y - self.y     9 b4 v1 {7 A1 Y" b
      elsif $game_player.x == self.x and
; n0 N: o7 g' w; b0 [- L         $game_player.y > self.y* L3 t7 ]9 K- h- C' W8 y
         range_x = $game_player.x - self.x   
8 A. O( F2 y" J0 Q0 U         range_y = -1 + $game_player.y - self.y            
5 U: \/ y, [+ h  I      elsif $game_player.x == self.x and* `! l$ o: v1 f# f1 n
         $game_player.y < self.y2 u5 c1 e# n" W
         range_x = $game_player.x - self.x   
5 [1 f# c8 J# \5 Y$ w4 L         range_y = 1 + $game_player.y - self.y             # P. n" q+ F$ X: y' n! G
     else
/ P+ B5 b/ x5 U! `. }         range_x = 0% K/ H1 i6 p" F/ L0 w3 ]- }
         range_y = 0     + S  f9 c7 g: S0 }" P- r
         " l$ C6 ?( t+ @2 x) W
      end. v* E2 A3 ~8 }6 s5 s' W
         jump(range_x,range_y) unless range_y == 0 and range_x == 0      
: m8 Y7 I) k# Z1 M  end  ' {) S3 q1 d' U0 V# V0 g
      
2 v5 u) _* f+ f4 `0 l, w2 ^! v* ` #--------------------------------------------------------------------------& N: a! W) r$ o! U4 T* Z, c  m7 ?7 N: b
# ● Lowhp Shoot, s2 U8 I0 \! ]5 W# B3 P$ x$ N# k% l
#--------------------------------------------------------------------------) I% j& W/ m$ S' X7 t# [
  def lowhp_shoot(action_id,perc), G9 \1 |$ j6 g& z6 ?" K
      return unless check_battler_exist?
; f# a' h; }$ G9 D. S. E" [4 E      if rand(100) <= perc" G! M5 N! l4 Q: q/ b
        lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
" x( C7 F# V* }: V4 C0 v) S        if self.battler.hp <= lowhp
1 Z9 F0 {( Q+ K' ^# A; Y          shoot(action_id)9 J8 @1 \) o2 }+ H% i  e* Q
        end8 K) n1 t+ H) w: @* w& Q. r/ V
      end    0 R( M1 R! g1 g+ }1 w
  end      " E7 R0 r5 Y' B( _) R
  
# W( _0 f! z. g( ]* F #--------------------------------------------------------------------------2 t( r% l7 p) }# f5 Q
# ● Fatal Shoot
# l3 y  E; L# j' Q' I" n, c #--------------------------------------------------------------------------$ c, e7 J8 T& f" G9 T& ~. H
  def fatal_shoot(action_id,perc)0 N- t8 T+ s% f6 E1 h) U4 ^
      return unless check_battler_exist?5 s4 @  I& M# |" m8 I
      if rand(100) <= perc
. h: {0 D- f# Q          shoot(action_id)0 ^' f" e' m* ?' X9 t3 i* i
          self.battler.damage = self.battler.hp, v6 ~& N. N3 h" P% o0 q  F
          self.battler.damage_pop = true ( V$ h% ]- P9 ^' K/ Z* `
          self.battler.gain_exp_act = false
) F' w  e, M+ ?0 b* i6 H          self.battler.hp -= self.battler.hp
, h- S3 a/ I! n+ v6 |2 W  L      end. a, \5 D8 P; k7 O
  end  - B9 F6 k) J  J0 G- Q
    4 c9 ?3 ~6 D) z9 `/ ^$ @& }
#--------------------------------------------------------------------------/ X4 m) ?0 a2 x6 J, G/ l( ]7 S
# ● Lowhp Fatal Shoot
2 i, r, ]: j& A7 n; w #--------------------------------------------------------------------------
* R' Y; O% |/ s9 p: r  def lowhp_fatal_shoot(action_id,perc)
" ~! u9 r" h/ c7 ]9 X      return unless check_battler_exist?
" T( H1 {* Q* S4 r      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 1004 |7 k  a) V9 D- }: x
      if self.battler.hp <= lowhp     
6 C% B# ]' Q( I          if rand(100) <= perc
8 ~, f5 j5 Z5 k/ _' D8 a            shoot(action_id)4 `3 r. F+ q+ [! d1 v
            self.battler.damage = self.battler.hp  v! V5 E% g* Q  ^- M6 R
            self.battler.damage_pop = true
+ T7 e; L3 ^; x! l" ]  n            self.battler.gain_exp_act = false
  E: U4 U2 {7 }            self.battler.hp -= self.battler.hp
9 f/ u% L) r1 _, t. \          end
) Q' s3 w6 P% b8 K- L# |7 i      end
! u2 ~0 Q2 D- n% _# J  end    ; K) |0 O' E0 ]7 k) d+ K8 {5 |
  7 P2 Q- R0 a+ B; z
#--------------------------------------------------------------------------1 n' L. X1 k, A- [0 T  M) @
# ● HP Shoot
* ^* V& o# _# U( g/ d #--------------------------------------------------------------------------2 @, u- ~- C- D3 d" V( ]2 }& l9 J
  def hp_shoot(hp_high,hp_low,perc)$ e$ r9 k; w# y; e' Y  |/ L
    return unless check_battler_exist?
- ^  n; e8 U% R  P0 D    if rand(100) <= perc
* n* X% T1 n" s# [      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
5 J' ?  G7 B/ q& y, g: z) u      if self.battler.hp >= lowhp
& a7 N+ i, G$ I0 ]( U        shoot(hp_high)
' Y' P& B" A8 o5 }& Q; x      else
4 {2 o$ O: g, c# C8 g% H        shoot(hp_low)! D) i, X% H5 n* y$ M; r& d$ i9 H
      end
& `7 c4 k$ [% i' Y8 ?& E! F    end( A8 c+ `( F2 _& T: U
  end8 R( K( A" ]* t7 D7 k; f
  
* u2 `% y1 U% g$ F/ d  H1 x/ r7 \+ h #--------------------------------------------------------------------------
4 I9 C" r2 c* L' I% E- {3 O # ● Hero LOWHP Shoot
; j" Z5 @* O( |- Q- H: c+ F% V #--------------------------------------------------------------------------, n# l6 V7 D+ I# _
  def hero_lowhp_shoot(x,perc)
) X5 ?1 p5 ~* Y+ Q      actor = $game_party.actors[0]1 D* Z! D) J/ X& d5 ~$ Q- V
      if rand(100) <= perc
1 |) c! ^/ H$ h$ I        lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 100
6 U/ U0 N) B3 ^, n        if actor.hp <= lowhp
0 r" e: M! u3 W$ ^% a8 J, [           shoot(x)      " l" B8 k. K" X  ^; Q
        end
' b5 D5 l6 y- E: Q      end: C+ |% K; B7 q/ ^
  end2 w% F4 \  d% g  E" o
  
: h/ J& R0 o' D' b& _0 s) g) e: z #--------------------------------------------------------------------------/ c+ K4 w5 q7 ]( r
# ● Hero HP Shoot( N/ u# }! L4 V
#--------------------------------------------------------------------------
1 Q! n( a. {3 @0 d  def hero_hp_shoot(hp_high,hp_low,perc)* x- u* O+ z5 y
    actor = $game_party.actors[0]
7 d* x) o' a: W    if rand(100) <= perc9 U: j, J! E) b2 \/ S
       lowhp = actor.maxhp * XAS_BA_ENEMY::LOWHP / 100
, [: p( ?6 t1 c       if actor.hp > lowhp
0 r* F$ j8 w1 I9 a1 s6 M+ y          shoot(hp_high)  7 X2 @% J3 r6 t1 t
       else   
2 r: W, y3 o! I9 G8 j! L; W( _: Y* c6 f          shoot(hp_low)         
1 @2 P" Q4 d7 \3 j$ ]       end
8 ]' y6 g5 R  S8 Z& B" M$ [    end8 @+ c( L/ h. J: l4 A; h8 s- V' }: n
  end  8 ?' U1 z0 [7 }% K  W/ X8 ^% D* m
  
* M, i# U* h9 X+ I& v5 Q #--------------------------------------------------------------------------
2 ?( ^. A4 K& _% z # ● Lowhp Rand Shoot
; ~4 U4 ~. [" I! J' D #--------------------------------------------------------------------------
6 P* ?. y3 h0 ?% S. A* z( O1 [  def lowhp_rand_shoot(a,b,c,d,e)   
5 Z, Z% p/ ]0 `% y  U      attack_off! E* Q1 c% b. _- Q/ U( f3 G$ B6 a
      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 1008 Z. w7 P. i+ q! f! Y
      if self.battler.hp <= lowhp ; t$ R# {. O- g) ?$ @* U7 D" X5 `
      case rand(5)/ a2 `: o4 r: z) r* @# ?: g  K5 U
         when 0
5 t, c/ T' r5 F' K6 \% x           if a == 0
3 T' C, ]7 k5 A, a4 \/ p           attack_on$ D6 n3 l% }! o6 }1 S
           else
$ i# f$ d% t% F  r           shoot(a)
3 F# W% v' t  N# c           end
$ T6 b% l7 @6 t, ]7 W         when 1      . Z) G( S6 Z$ ]& y3 i% @  y
           if b == 0( a9 @2 R+ `/ ]7 [# d# A+ M% ~
           attack_on4 }6 @0 a$ Z: o  a
           else$ N& K. ^& l) Y
           shoot(b)
: G: f0 `. W/ F( X, J1 l) b           end   - K9 @7 ^) u1 y: s* ^
         when 2
. K, o) G1 @+ U) Z( q7 e. `, b% r/ b           if c == 0+ Q. l, p: Y* u! Y. W; l
           attack_on
) v. g& V: O' Y' V- o5 L( r, u           else" j# w) l: q9 C) S* L$ \9 r
           shoot(c)% E: u' `/ p: `7 I2 z( ~0 N
           end: W0 b. v. C7 R  }0 g- [
         when 3      
/ y' ^" `0 L& u0 d: `           if d == 0
( k" _& x7 ?6 \5 u           attack_on
% S( v. ~# b# n' n* E/ }1 e           else
6 h- O) e. f9 J. o           shoot(d)
/ h- i. V3 J' ~7 ^* Z/ x/ v  \           end  / z- B* L+ G' C8 |+ `9 W6 v
         when 4      
" A+ G: p3 t+ z7 I, i, N! q           if e == 0& q7 X/ k( n0 p0 b5 ~
           attack_on
: A. y9 Z  j0 b$ E% z           else
2 Z! n+ V& t$ J% |8 ?           shoot(e)
& D0 t2 ?* k0 v" o1 Q           end            
7 X4 k3 @$ `- p         end   
: U* B7 {2 `) o. b4 P9 b8 ?, P      end
& N5 y! Q) I! X) q  end  - m/ q: W  ~' D4 c- [2 y6 d
   
1 J: K" m( C1 G7 n& [ #--------------------------------------------------------------------------1 E; Z# `0 ^# k/ t% Y- \2 f/ W/ F) }
# ● Rand Shoot3 h4 j1 u5 I" g1 J$ h0 r4 u. X
#--------------------------------------------------------------------------- `- p9 l$ F' Z% f$ n: u' R; |
  def rand_shoot(a,b,c,d,e)   
, B, Z! M; D+ S+ K4 j      attack_off
5 `6 ~" h1 s' a4 N      case rand(5); w5 g) q. g( J, N. W2 V
         when 04 ^, y: Q& }  k* p! ?' p9 i
           if a == 0/ ^6 E3 Q8 f4 q& V  L
           attack_on! i8 X+ |6 ^! b: i/ }6 ?
           else9 z  {% ^- a: m: r
           shoot(a)/ @  X6 R! w3 D1 p/ u6 A/ \
           end
  }% @  l: W7 N$ i$ S         when 1      
$ \( h3 u3 k% L5 a" q4 O; O           if b == 0) @, W: W( f' ?5 a$ W
           attack_on$ [8 {; E3 I* g( \& {1 h
           else
" c& {3 D4 Q) Z8 V4 X           shoot(b)
. l9 @  H  Z) s% @* O: }% y6 F           end   # w) t  A! s* `+ B* n5 u  ?
         when 2
; {+ H  z+ k6 f1 H; l% K           if c == 0) C5 |# p: F/ R) x8 V
           attack_on" m" r; |4 D9 p" R8 h: }
           else
9 v& z0 m! G2 y2 N+ \$ v           shoot(c)3 A! B9 F0 \: b. i
           end. g8 o7 Q5 x, D- t& S# e. n
         when 3      
9 q8 X+ N2 s0 D: ]3 Q# C2 q           if d == 0
  Y$ U) H$ t4 n  ^) ^8 m( Y1 L           attack_on
/ E3 G: s* M: i, I, ]7 e           else
  ]0 K+ g- X0 t           shoot(d)
" r6 C: |* Q% v( b. @           end  
; Z4 A) |1 I. n% x  G, O         when 4      
# S7 \5 G$ }: P( c, m           if e == 0
& l: E. o( k3 N% y, O           attack_on
5 h' ], |; q; J8 g0 e+ K$ L' g2 a' D# W           else) B( T1 T2 j9 v) P0 E1 i) s5 ]
           shoot(e)
" J+ C4 Z5 G5 ~3 e           end             7 \4 O% a) U1 e
       end   
) T) d( o6 ], p. H( E  _  end  
( Y4 _9 i: D. q* M% J  9 X$ H- k( U7 r, y
end  
& I+ z' M/ b5 S& ]* _: E) X6 W5 ~! z9 e; S$ v9 ?! T# f5 A& V

8 L8 p: \* Z+ ]0 q( V7 N" w) A1 j9 i0 _( K( _! H% y. C, `+ |) A; I! [; S2 T: B, g
' k. \+ A8 L* t, K0 d* M) ]$ `# V

0 K, c7 `0 y# p2 D" X) ]; H
8 ~; F$ `; h. R#===============================================================================
, M+ f# v0 R1 l) d& d% a$ i# ■ Game_Enemy5 _! O' g% l6 A' C
#===============================================================================
( U& r1 f0 O: p+ i$ fclass Game_Battler
$ a+ P9 ~: O4 _+ ]. x
3 U7 Z  ~0 _! F/ ]    attr_accessor :e_object               
, {. j4 ]9 E5 d, D% ~5 H    attr_accessor :e_item
) Q3 W/ z% ^" a" d+ F4 [" ~    attr_accessor :e_ignore_hero_shield: _: J) B0 o/ \: i  o: Z1 e0 P# ?
    attr_accessor :e_knockback_disable  k% ?/ i+ H' K) D' Y- G
    attr_accessor :e_jump_hit_disable8 H9 ^8 \+ N7 {  o
    attr_accessor :e_breath_effect
8 M) e3 C6 C7 {4 R0 @, H/ @    attr_accessor :e_zoom_in_effect+ e5 S6 Q. T# j- s
    attr_accessor :e_zoom_out_effect
: e1 w- W, T2 D+ m* W$ {    attr_accessor :e_only_blow0 ~0 N! F, y, {9 ~( w7 D
    attr_accessor :e_passive5 r- J- Q# }' @# {' `5 G% [
    attr_accessor :e_drain0 [& b3 n6 w! J) m& `# G3 u8 c
    attr_accessor :e_sp_damage
! y/ h8 I7 {: D! A. A7 L8 M; X7 u#--------------------------------------------------------------------------
/ B- j) Q1 g  V# ● Initialize
: ]5 M% f7 {4 A#--------------------------------------------------------------------------
8 Y4 x" ?7 E$ s# v0 @6 E0 p alias xas_enemy_parameter_initialize initialize 9 L+ P) W2 M! y: A3 w. {8 ]
def initialize; E% m" P* I2 b9 D+ {
     xas_enemy_parameter_initialize
. f1 K+ `' F( l9 _     @e_object = false               
6 R$ t/ W& P/ e" h     @e_item = false           
' z6 b1 X0 N/ ^  P* s+ F% E, t     @e_ignore_hero_shield = false           & O$ d  a0 D  }- Z
     @e_knockback_disable = false           
9 m$ B6 V; Q3 [0 F     @e_jump_hit_disable = false           0 W+ D- I' D8 }2 W
     @e_breath_effect = false           
9 J- [" {' Y1 {5 E     @e_zoom_in_effect = false           
4 p( P# R  a0 k* j3 ]2 \9 Y     @e_zoom_out_effect = false    + o5 ~7 c' B$ \3 S; V/ k
     @e_only_blow = false4 t. J+ ]- U! N$ ^! n' ^
     @e_passive = false& J# C1 n, L5 t9 s- c& j  M
     @e_drain = false
, \% H9 }5 P1 q' m6 X/ z, P     @e_sp_damage = false   
- d6 j7 }5 e' q" G: E' l end
1 \) m7 `* W, E/ fend
% f1 t# P; V# a, P" v$ l1 A# h' R4 o- Z. }7 o  ^
#===============================================================================. Q$ \+ [( I* _7 m' q
# ■ Game_Enemy* R  y; |) o% v. o+ w
#===============================================================================* I% m7 q8 F' n
class Game_Enemy < Game_Battler
! ~4 ?! i  s2 G2 b% }& J. }
. P; |* \, w. B#--------------------------------------------------------------------------8 [$ ?& c5 @& `5 B
# ● Initialize 6 A: M6 Z7 g9 N* y, v  n& R
#--------------------------------------------------------------------------
, p+ _9 Y6 A: }* g alias xas_enemy_initialize initialize + k# |" L- }9 C5 _5 b
def initialize(troop_id, member_index)6 ~) _& w7 w: l1 d" z
     xas_enemy_initialize(troop_id, member_index)
: X% {) ?8 X0 o8 D     for i in 1...$data_system.elements.size
; \+ J* h# M2 r7 Q7 e" R! j# r       if $data_enemies[@enemy_id].element_ranks != 3           3 W  {9 @, I: D% R/ U5 L/ l
       @e_object = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_OBJECT)% G5 X' ~. X8 u. n# }" t# ?
       @e_item = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_ITEM)               # p; e& _4 X% i6 w( @5 |2 s
       @e_ignore_hero_shield = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_IGNORE_HERO_SHIELD)               
# j6 G. \* J9 s9 F       @e_knockback_disable = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_KNOCKBACK_DISABLE)                  
7 S& F$ q8 ^# _/ K  ^$ I% g       @e_jump_hit_disable = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_JUMP_HIT_DISABLE)            
- u# s- R! K0 M7 X+ l& W       @e_breath_effect = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_BREATH_EFFECT)               
8 E, u+ \4 c! C       @e_zoom_in_effect = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_ZOOM_IN_EFFECT)               $ S9 u9 J* j* H2 ]7 o, p9 Z3 i5 B
       @e_zoom_out_effect = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_ZOOM_OUT_EFFECT)                 ) `' f& X) y7 ^* Y
       @e_zoom_out_effect = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_ONLY_BLOW_TOUCH)                 ( E. |! ~2 v3 a' q
       @e_passive = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_PASSIVE)                 ! R: i, S# D* N8 O& d
       @e_drain = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_DRAIN)                 
- [  S. `; L6 B& Q9 y( h       @e_sp_damage = true if $data_system.elements.index(ENEMY_ELEMENT::ENEMY_SP_DAMAGE)                 . d9 k8 e  S9 t; g8 M; j7 w  G
       end
0 h8 g+ b  T$ n; {: I! M3 b7 u: p     end
3 t- f' @5 S( A. C7 u7 M4 A     self.gain_exp_act = true     
& y6 ?3 [/ l$ t6 Y, z end  
7 d( Q- P4 l* eend  
+ D( W" q8 t6 P0 n8 r4 f: a
8 o2 x" H& E* u/ r5 f. P; ^; X9 Z0 Y& p#===============================================================================
# l# M/ y; C+ S. z- V  P" r# Game_Player1 a+ z. h4 X7 W& {
#===============================================================================
* O* V: I8 S5 o7 X- ]class Game_Player < Game_Character; g. R0 i0 k* j: `: Q% b) V
  include XRXS_BattlerAttachment" L! f1 U3 g5 ]
  
" X" R$ m! |. f5 h9 i: T" w #--------------------------------------------------------------------------
) O, k% r+ S9 s/ ?1 r" x" Y2 ` # ● Battler
  N  f; t  D+ x# v+ ` #--------------------------------------------------------------------------
2 v1 p! U! H  x+ j; K' K. @( u8 E# O  def battler
9 E$ I  `; h0 `! n. q    return $game_party.actors[0]- g7 t% p; |3 B2 F2 }* x
  end* H$ q( Z0 g( X7 P( R, q. G
  9 g9 }6 n4 [; f0 c
#--------------------------------------------------------------------------
) @' ~6 R1 \! d, k" c9 Q; D # ● Defeat Process/ E; S+ j( B2 x' X  V
#--------------------------------------------------------------------------: O8 R- ]  H6 T* O
  def defeat_process
9 Z& W+ {5 p- k5 z6 y" g7 h, k    super  ! \8 n; Z6 C. q1 P3 s# M. R
    if RPG_FileTest.character_exist?(@actor.character_name + "_HIT")
. e' c/ ~7 a# v  V       @character_name = @actor.character_name + "_HIT"
$ ]4 d4 T  M6 l& g    end      
. O/ }4 Y, o2 }3 C% h9 F4 G5 C, ]) o: x. A    if XAS_BA::AUTOGAMEOVER == true( ]* h2 b+ G; q% Q8 h, J
      if self.collapse_done         ! h# y8 Q: R7 z( \/ t! r
         $scene = Scene_Gameover.new rescue nil3 Q) `$ J7 H7 X: u& U  m( m
      end
" l& m4 _. [0 t. X9 v, F# Y. m    else   
+ t$ h7 A- }1 v3 |      $game_switches[XAS_BA::GAMEOVER_SWITCH_ID] = true+ K( u! i8 b9 I5 t) ~$ f  d0 X
      $game_map.refresh
  J* P% k$ v/ B: {- l7 V( ~# w6 D    end. S0 H! q' S2 x5 t0 m+ e
  end
! j5 C1 T5 X% q, s+ Mend
" A8 A( h; v! Y- v- S: \1 E& F$ Q+ g# W+ T" [7 a, A
#===============================================================================
: F3 o7 O& `* {# ■ Game Event3 {8 q7 S( F' s* R# s
#===============================================================================& N( O8 \# U9 M1 k
class Game_Event < Game_Character
5 H6 A% x% A* b; L, m  include XRXS_BattlerAttachment
1 z% _; _; b3 p' z- c' ]& H2 [6 T7 v8 j' e' o3 |/ z2 R
#--------------------------------------------------------------------------5 e( @! M. ]5 ]- ?; p: P
# ● Battler  A# {0 `# o9 ^0 }" k
#--------------------------------------------------------------------------
7 t& ^1 y2 @: F; H6 A# \* _" M  def battler
+ w) A- I2 {. n% [0 Y    return @battler
" [$ o& `% D' N* ?/ k5 j) S  end
2 D) r  H0 f7 M  
8 Y/ Y! _" q1 `2 | #--------------------------------------------------------------------------
# `( m7 I" \6 S( x% K # ● Refresh* ?) k+ g: Y' X, L( G
#--------------------------------------------------------------------------1 s6 [$ W( S/ V1 j0 k! L5 W
  alias xrxs64c_refresh refresh% R4 Y' N  C0 ^% K1 k
  def refresh9 Z1 A9 R* h6 B  ~
    xrxs64c_refresh5 ]# X* ]" n3 v" }" g2 g% l
    self.battler_recheck) P; k5 `" F* X, x" ^* x
  end
, N5 Q1 z' j3 y2 Y& P9 y  
/ P1 ~  p9 u' Y5 n/ o& |  n: c #--------------------------------------------------------------------------: g& o( @0 S7 m8 w$ @2 Q
# ● Battler Recheck
5 X* x8 m( w8 ^ #--------------------------------------------------------------------------9 \+ {: }2 n, T+ P, D# v
  def battler_recheck
$ u' f( m" n2 p9 X) Q" y    return if @battler != nil7 t# {2 Y9 Y5 X1 }+ Q4 H( ~. \! C
    if @page == nil
9 |! j% c3 P8 A( D- [# m9 H      return' G. Y+ V4 {: I* A  p& G% Z7 K3 F( u
    end
. T' n. a# f8 t: n7 y, e% H  G    if self.event_name =~ /<Actor>/      
. I3 g+ ?) N9 @       actor = $game_party.actors[0]
. \% z/ P7 n4 \- A* g       @battler = Game_Actor.new(actor.id)% z( d0 ^( a" N. w: ]
       return
7 g, m5 c& N8 L8 \    else
. n& G4 ?/ u% f2 u7 q2 x+ `       @enemy_id = 06 w* }, L2 {7 p4 X3 o. ^
       if self.event_name =~ /<Enemy(\d+)>/i
/ [3 F/ q# |5 @          @enemy_id = $1.to_i   
( m/ C2 n& G9 i       end   
; c9 e$ Q5 e6 j; N; O0 @$ s' V       if @enemy_id == 0
7 M  h% I9 t% O' [3 l' d          return5 p2 A+ ]! z1 `, T" b3 y
       end. c9 K1 k/ `" z. P- q" N
    end  
8 Q/ P5 v9 [# N: V4 E- ~    troop_id     = -1* J# }, P' _2 r4 l; g. |% m8 u
    member_index = -16 j" d) f& x7 d1 R7 K) w7 J  v0 N/ |# w
    for troop in $data_troops1 y+ r$ m  \- T, b8 R, r
      next if troop == nil+ J& A: r  ]  o9 l$ b9 P" ?
      for enemy in troop.members
' o# G1 z% W; y        if enemy.enemy_id == @enemy_id0 E: e) `" ~" k& X' S# @7 \
          troop_id     = $data_troops.index(troop)
: k6 C3 t6 k1 t' i3 s- z9 K          member_index = troop.members.index(enemy)
, x) c1 a' {: S# q( v          break
1 \$ T  }( K& y9 Q: b2 r        end* q7 M1 s* w# L/ p0 X8 T5 p
      end) V- _0 }  t2 e- a
    end
! X& a1 s$ P. m1 @# [    if troop_id != -1 and member_index != -16 f& `8 E8 B; O; F* |) o
       @battler = Game_Enemy.new(troop_id, member_index): q% v! R% _1 @9 G
    end: K& M1 Y- z7 e+ }
  end
3 l$ y( k3 m' E4 K( U2 ^, ?1 d; g  
0 o0 Q, E; \8 D7 G4 Q #--------------------------------------------------------------------------
5 {: t+ W/ N3 ` # ● Enemy Id
* i3 O3 ]8 ^+ S% g! {9 u #--------------------------------------------------------------------------
2 m+ P8 d1 w4 g+ {  def enemy_id" G. F' X& q9 S; {8 H) u9 M
    self.battler3 o2 t* R0 @  }! S3 _5 X
    return @enemy_id
/ a; `3 Q! @1 r& c1 ]1 k  end
7 I, F& W& n* u2 L: P  3 p$ \7 g3 S' s  x. H
#--------------------------------------------------------------------------4 P' S  v% d% x
# ● update_gained_exp_gold7 v5 G3 {8 G+ f: A8 l: O) o
#--------------------------------------------------------------------------    / H, ~3 M! {3 ~! s. H
def update_defeated/ R6 n; [. _2 L! ~# J4 r2 g4 A5 b
     return if self.battler == nil7 O: I- n  _. ~
     if self.battler.dead? and self.battler.defeated == false
0 p& T8 G( b2 ?& {4 w8 c        self.battler.defeated = true 4 r$ k  y0 L4 l" w; ~
        defeated_effect      
4 H; U7 ]2 S1 b, }     end  . q9 K7 A; H+ P3 ]4 }7 U7 `1 K) [
end  
% z( |/ }1 m3 N) g: [/ G6 ?9 @
0 m8 m# m: v; v4 g: X6 \ #--------------------------------------------------------------------------
7 @# ?; {: I8 k* | # ● Defeated Effect  # K; y' f; u, v3 t- E1 c7 k8 R
#--------------------------------------------------------------------------  
2 \) ]1 u3 _  Y6 N8 S! Q def defeated_effect  $ V$ Q8 y4 X& L# t; V* ]  `7 A3 P
     self.through = true: G5 B) B  A: V# f* v
     last_attack = XAS_BA_ENEMY::ENEMY_FINAL_ATTACK[self.battler.id]
) Q2 V& b2 E  t+ q     self.battler.last_attack_time = 15 if last_attack != nil  
* }/ h, h# f2 ]     unless self.tool_id > 0 or self.battler.e_item
1 g$ X: \3 F, O& n$ w* y+ g5 G         @actor.exp += self.battler.exp; a+ Z" V  U: R- |9 M0 g
         $game_party.gain_gold(self.battler.gold)   j; V  Q' F6 i0 z, B5 h
     end
( z# U6 m; ^! X: J$ P! H( W% \. W     id = XAS_BA::DEFEAT_NUMBER_ID( J  ?' e* y6 @* ]
     $game_variables[id] += 1 if id != 0
- ]4 n2 K% n8 f4 e  \- f     jumpa(0,0,20) if XAS_BA_ENEMY::COLLAPSE_JUMP == true     : g5 Q( `! H  o2 P9 M! ^
     switch_id = XAS_BA_ENEMY::DEFEAT_SWITCH_IDS[self.battler.id]7 A. \# |  X) w. ~2 j* Y$ h3 m
     if switch_id != nil( a: o7 F; \/ T1 X
        $game_switches[switch_id] = true
$ K2 x7 ?# h6 j. z/ ~" p  g        $game_map.refresh
, q& u2 ~8 o6 O      end
- v' |+ G: Z. G end   , i6 S. F5 T5 j6 m, y
  
% z8 ^$ x+ S* ?( p, i3 [2 G( t+ G  
+ f9 [2 r# v: |% v/ E1 p  
0 Q, H$ z5 {* }2 u% ~* d+ k! w #--------------------------------------------------------------------------
7 A# y' e# j2 X' l' D # ● Treasure Dispose( O, A( \7 G' [- v4 l* _/ y& {
#--------------------------------------------------------------------------
' e6 r9 @3 ?" J2 U2 V1 O4 O7 ?* E5 g+ H def treasure_dispose
* }; R% ~3 f$ z0 b% }     if self.battler == nil and self.is_a?(Game_Event)" \, E( T! ]" C& @+ q3 D
        if self.treasure_time > 0 and
8 C: k0 b" D' m  t5 [           self.treasure_time -= 1
1 Y* C8 i9 K! y* ~# b, `. m           if self.alwaly_on_target_id != 0
9 r5 z0 H8 e' T" p# k' C6 C, A2 R              self.zoom_x = 1.00
: W2 Y$ r  g. F' a2 L2 B4 J% t. }1 m, t           elsif self.treasure_time < 100
; f& k# q" A8 ?6 t9 g              self.zoom_x -= 0.01 if self.zoom_x > 0.01 5 n# r- V* P" a' n: P+ |! I" _
              $game_map.remove_token(self) if self.treasure_time == 0" g0 Y, N7 b4 K) x+ j
           end/ R8 x" s' r& {) [6 R5 n% N' t0 C: D
        end ! T! U) x' e2 l% s
     end  
+ A/ \  X2 J& R2 D, V1 J end 1 z; \0 P. T/ _. e

- w% v9 T7 A6 t- n0 X7 O$ ?( j #--------------------------------------------------------------------------
' e- x  r: d. h6 R! q # ● Hit Reaction ON6 f0 ]* I- h5 ^" N
#--------------------------------------------------------------------------" t( R- p$ I7 _
  def hit_reaction_on
7 G3 h2 B  s( b      return unless check_battler_exist?   4 s1 Q; e; s: U2 t. d5 V
      self.hit_reaction = true
, x6 V5 m( P1 T% T9 t0 j0 |  end  : T$ s5 O$ v" g- V% n5 _& O
   " k% H5 y8 M: H7 Z- s' {) U
#--------------------------------------------------------------------------
$ @% W+ Y/ d/ x3 V+ Z # ● Hit Reaction Off# |! C0 l2 i8 e0 v! j
#--------------------------------------------------------------------------
& H5 A2 O8 G: p1 j6 ~9 v" U1 W  def hit_reaction_off2 D' G  z% s: L6 k
      return unless check_battler_exist?   9 `  [" u, g& u* v
      self.hit_reaction = false
7 o6 D$ i2 n$ X( D; g. R. A* c  end  & U0 l1 G7 ?* Y$ U
    1 e  y3 ^( t3 K
#--------------------------------------------------------------------------8 s$ {* g  C6 H! {
# ● Hp Hit Reaction
. O9 [4 v+ y* |8 `1 A #--------------------------------------------------------------------------, I* N! B5 v5 p
  def hp_hit_reaction(on)
8 W3 e5 D3 }. r2 Q( c3 f. C      return unless check_battler_exist?   
: K. L) E& c  `/ u' R0 E+ m      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100
! n. O1 r1 U: q+ j9 d; d8 `      if self.battler.hp > lowhp    : i/ G- f( Q& K
      self.hit_reaction = on
" v* o+ z; C% s, t8 q7 X      else
# Z% f( P) I) g0 t: A- U9 o      if on == true* k' z: n9 F) C6 |, C  O9 c
      self.hit_reaction = false% U$ f9 i$ Y, H) e) \9 j- O
      else
+ F3 v& f7 Q6 X6 b      self.hit_reaction = true
5 e8 a: q# f; i) R5 M      end2 P. A+ s, N" C# [: _
      end  
/ S* j+ `; [( ?. r) P; K  end        
. p# Q/ X% z8 e0 H  ; ?% `" e5 q( w1 x2 Z/ G0 w
#--------------------------------------------------------------------------
* f" {. O# b" E; O1 \3 ?. g, | # ● Hero Level Hit Reaction9 m" u1 ~4 F2 G- W, r! `
#--------------------------------------------------------------------------% |8 F1 j. |/ X# X7 _* L
  def hero_level_hit_reaction(level,on)" W! [4 W6 c& F! W$ j
      return unless check_battler_exist?   2 u8 J3 x$ x- x6 n, e) T3 j- w
      actor = $game_party.actors[0]8 }% T8 ]& b, k% R" O9 v! k. \  R1 p
      if  actor.level >= level    1 [8 a9 J1 ]9 ^- l9 H
      self.hit_reaction = on
2 S, N/ T2 e# w& a5 S4 `# |      else
  D* w. W7 v* ?  l3 S      if on == true5 b3 }* c6 w' m' F- G# i, ^
      self.hit_reaction = false
$ S* F# r, k; V6 x9 A6 `1 O      else
" G& Q- x( H1 p4 d0 I      self.hit_reaction = true
# w3 h* n4 l1 J8 x9 D# M/ }6 W      end0 |; P' m) Y  b  Q
      end  
! A" V/ ^* u6 G/ f  end             8 A0 I1 u5 ^/ w# J1 Z
  
* D' i% A$ `! x& M5 y0 c #--------------------------------------------------------------------------2 v# }0 W3 @7 |/ ?& A
# ● Shield Enable!
" O) ?) L5 E' v, R0 |- G #--------------------------------------------------------------------------
, }' s, F; k$ r, f  def shield_enable!
9 `: t6 _+ u3 h, K      return unless check_battler_exist?   
* \3 d% G3 S, s4 v      @shield_disable = nil; v# \8 `) c7 p0 \
      self.battler.shield_active = true" Z0 Z& o: g, s* t5 ?
  end
7 c) u% e+ S9 y  & Q7 R; }# R( w' F: ~3 F! W
#--------------------------------------------------------------------------
/ n7 z8 Y) r5 o9 Z; w # ● Shield Disable!
, e; N, _0 b6 L' ^( q #--------------------------------------------------------------------------! O7 {9 G+ E: I% u
  def shield_disable!. e  Q. ?; u. u9 r8 i
      return unless check_battler_exist?   / M$ V* R$ X2 i
      @shield_disable = true
1 }# g1 |) d+ v4 r, S- Z; c      self.battler.shield_active = false) G# }& }3 C' p, q) b
  end  
4 S) V! w" A1 ]+ g+ C! ^& K  
0 |5 }+ }4 W/ x7 T! b #--------------------------------------------------------------------------
; |0 ^9 |, V( K # ● LowHP Shield
3 R6 c: ?5 L2 ]' `' f3 D #--------------------------------------------------------------------------
4 V8 }3 ^1 T# `1 n/ E  def lowhp_shield(on)
1 B+ f0 T2 V3 D1 [) K      return unless check_battler_exist?   
/ M5 b+ W' T+ _! J; @; [      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 100( [- `: z- ?+ d* p( }2 _
      if on == true
# K; ~5 ?) a4 I! X8 p4 r      @shield_disable = true
3 ^9 G0 q" Z$ @; s; P      elsif on == false& z' j7 Y" H+ U
      @shield_disable = nil3 q3 ^& I7 s* \" G  Y9 O
      end8 K- q- r: `7 z4 G$ o4 u$ T
  end      6 D- C+ p3 p% R% h4 Q/ F5 W
  ( ~/ {& ]+ N* N
#--------------------------------------------------------------------------
' |! O$ a. N2 M" H4 S- |2 O" ~ # ● Hero HP Shield / O, K0 v# j. S
#--------------------------------------------------------------------------2 l0 L8 O/ l. `" Y3 c3 s
  def hp_shield(on)
8 D9 ^: W- o' \( w& c      return unless check_battler_exist?   * |  S$ t3 |/ O# f9 V# ^
      lowhp = self.battler.maxhp * XAS_BA_ENEMY::LOWHP / 1005 e3 [. e, a% E9 d
      if self.battler.hp > lowhp
4 t% L2 f: {" I  @, d        if on == true% K. _9 @3 g' f. P
        @shield_disable = nil
. L9 J! X8 O+ V5 E) _# _; R        else
/ ]  m1 `' ~% j& J2 X3 `        @shield_disable = true. W/ w; H5 ]3 D: A% h1 G0 B* {0 O
        end
# O0 l2 f6 z8 s+ F; Q, C3 _      else$ [- I# ~" }  r" [
        if on == true% `: x/ X) i9 ?( f: U
        @shield_disable = true% }" U3 O( E" N- H! i; _8 `2 m* i
        else
( f: Y9 E1 X. e9 Z3 R3 M- ~2 K) Q3 w        @shield_disable = nil1 |3 V# l& b! S! m
        end           
3 Z7 o! l5 K' \' n6 E      end. f4 {; @& w' N2 f+ l# y! a& V" t6 J' I$ h
  end   
2 _* d' x- R& K! T! b# o  
' H9 E  t6 k& A( g# q: g$ m #--------------------------------------------------------------------------" E* v. \% J7 w, Z, c5 M
# ● Hero Level Shield
0 m/ O  `5 p: ?  @ #--------------------------------------------------------------------------7 G: R9 A& A/ i" k
  def hero_level_shield(level,on)
3 N. @$ u- p% R0 F0 G8 h      return unless check_battler_exist?   
9 y6 B1 r8 A; h      actor = $game_party.actors[0]
* Z6 L4 u* w$ f" @* p; D- e* N      if  actor.level >= level        6 J; `0 C" O& g) P
        if on == true
& v  r; T' S# r9 h7 V        @shield_disable = nil( w0 [6 n4 L3 D, q, e
        else1 B* h. h/ l5 p- c7 y& ?1 k; R' M( N
        @shield_disable = true
. b( q! H9 C" a+ I1 x! e/ |. {: i, j        end          ' l2 P: D2 W: G( e  J  Z  j; W
      else
6 r$ j0 b+ M; x6 G3 X: P        if on == true8 r, `8 E" U' O2 b
        @shield_disable = true$ v$ V" P$ A5 Q3 n; Y# k( G
        else0 L4 T9 u% x( {" |" e# [
        @shield_disable = nil
' z) v8 T7 O6 ]5 a! k6 S        end        
/ r' A0 b% T2 B4 \7 f      end
9 x# A  s; [  D7 V$ `$ X# `9 P  end   
5 z; f, j, p8 A/ K! T9 J  ' G& C* ^2 i6 h8 V/ s6 }
#--------------------------------------------------------------------------* o  w* F6 O" f, F4 j3 f2 m
# ● Shield Directions
( F! ]0 {( b4 a% S: ]" ?. \: `+ p #--------------------------------------------------------------------------
5 S2 K" i" Q8 L. Y1 W( J. a  def shield_directions) d- v* K! u' D  k6 [) w! N
      if self.battler.auto_action; O2 n+ R! G8 E, z' o
         set = @shield_disable ? [] : [2,4,6,8]
" B- ~5 f4 J9 t$ r( q1 B3 ~& J' g      else0 f  E' i. d$ W4 Z4 S/ I
         set = @shield_disable ? [] : XAS_BA_ENEMY::SHILED_DIRECTIONS[self.enemy_id]
% ^0 O" O: i) H; s3 B+ @7 }1 f. m      end  , l! h! q( Q! Q. Z! t  f2 p$ a
      set = [] if set == nil
3 ]. C  a" R9 ^7 N      return set
. V  C" q8 n& T3 Z) I  end3 z( V3 A$ M' B
  
# G6 R1 P8 n, R& ?  D8 R #--------------------------------------------------------------------------
7 T; Q: v9 B. L+ G& o # ● Shield Actions
) e" `  a4 G# s #--------------------------------------------------------------------------" _0 H7 M' ?  E
  def shield_actions & Q: ~. c8 n2 M6 |
      set = XAS_BA_ENEMY::SHILED_ACTIONS[self.enemy_id]- X9 |$ _' e9 b5 L) K
      set = [] if set == nil* D/ G" n$ r- c& X  o
      return set
4 e$ y4 w. X) v7 c! k* b' z9 r- ~  end
2 m4 ?" s+ z% ]  J  - T+ w/ F  W. a' x1 [1 s
#--------------------------------------------------------------------------$ Y! L) t1 M* j) X3 R! F  ?: T
# ● Knock Back Disable/ `9 w0 l: Y$ V
#--------------------------------------------------------------------------
! S- ?7 {( T4 J  def knock_back_disable
8 F: b1 I' }1 o    return self.battler.e_knockback_disable
" {) o3 Q; ~' d4 @+ ~  end* o4 W* r$ U# o3 d
  5 t; u7 g, [: F, J  V) [
#--------------------------------------------------------------------------& t$ y# T2 M+ W# k! w
# ● Body Size: V' F/ U% X, g2 J0 j# ?$ }) C
#--------------------------------------------------------------------------
. [3 k, o, @6 y  def body_size# s( r5 `$ c0 |( @, {4 R8 I5 R
    return XAS_BA_ENEMY::BODY_SQUARE[self.enemy_id].to_i
9 M( q$ |: q+ {9 o  end2 h# N5 H+ F5 j" l1 P6 `
  * r" C% r* {2 p3 g8 V% N8 _
#--------------------------------------------------------------------------7 ]  f$ O0 E' I* G/ H
# ● Defeat Process
8 L! @% W4 p- N7 q( N #--------------------------------------------------------------------------
. a) x) X: L- \" [) S  W+ A  def defeat_process6 c" g4 L" t# W+ B: b
    super
! C. p; W  G' c. ]$ F    enemy_defeat_process(self.battler)$ M' X; F- z6 q" ^# C- r
  end/ r- l! K* A) ?1 j) e0 [$ \
end
) A& h4 m; M* E* O+ y
# T) i6 ~3 _3 `) G. u/ g#===============================================================================
3 \: ?4 \) R1 \. a9 ^; H" D; b1 ?% h# ■ Game Event
0 R4 ?8 [  t6 _% ~) ]#===============================================================================/ p! K; \# x* e( |9 q. Y
class Game_Event < Game_Character
% V7 }6 Y" @" q) ~' L7 R  attr_reader   :collision_attack  
, Z9 D# \* P* P. B9 D4 @1 ]. G: f' n" t3 P) D! a
#--------------------------------------------------------------------------3 s$ J% e/ |5 G1 g( W. p8 E
# ● Attack ON
: V. ]" x; i, u$ T- x8 W #--------------------------------------------------------------------------
1 a! @- g& b* z# Y- ^7 s, f% f% i4 f  def attack_on
" H! t, F* C6 I) I) ?      return unless check_battler_exist?   
  B! u( J; |, c# n+ T      if seal_state?(1)
( I: E- M/ M5 K" L         seal_text, E8 j% L6 j" ~8 v0 R$ b" {
         @collision_attack = false: H( [3 A6 b# P
         return * T( p3 X7 Q! U, K
       end, w- F0 S' u( D
       @collision_attack = true
5 n% Z$ w. \, X' o6 J% I  X       self.animation_id = self.battler.animation1_id
( I) a0 H! A) a6 `" j4 C       name = @page.graphic.character_name  + "_ACT"
! R2 V9 ], O0 N: D8 O+ n$ I       if RPG_FileTest.character_exist?(name), m( T& \, J( q0 x* h
          @character_name = name' y& e" ]. n) ]
       end$ t3 Y5 w2 [, J! L- J: A7 u
       self.refresh + f2 Z) H- X/ D! C2 t2 r' B  E" F
  end
( j+ z- R1 X9 A" e" } 4 K. S# c. K5 g: Z/ C5 [  H1 R
#--------------------------------------------------------------------------: _, ?/ \" K3 b: ?& J) k, x: I
# ● Attack Off  G" h1 I6 W3 N- d  h
#--------------------------------------------------------------------------
0 s9 h) T2 o& N1 M% O- l* O  def attack_off! R# x( [# s! w. W4 u# o2 q7 T
      return unless check_battler_exist?   
/ a" X  r) e8 @      @collision_attack = false   : [+ e/ k9 E/ l$ p; F$ a% j* z6 [! ^
      return if @page == nil- T' y1 F/ b+ i; m2 Y. ^1 _* z* x
      @character_name = @page.graphic.character_name6 }/ R' Q! F5 L  E
      self.refresh8 j. `3 J5 V: O+ Q9 o! _( {
  end
  T6 T/ V4 z0 l8 v3 Fend
: W& u8 _5 H& T7 u& L2 [+ j- U* ]) z
% K1 b* t! f) f& `7 m, J% H! L3 Z( J/ K6 C6 v
#===============================================================================( W! J" v2 d+ H6 t' ]
# ■ Game_Player# n. U- F. }. A  J& a
#===============================================================================0 @7 L- D% l: D8 b
class Game_Player < Game_Character
, v  x+ k, n* z0 I! m  + s% B& W7 H' x/ Q
#--------------------------------------------------------------------------
2 Z- ^  X& W! E # ● Can Touch Damage$ W5 Y; `/ M% }3 K( X6 e
#--------------------------------------------------------------------------  
) V1 ^/ W4 D( |$ L' F def can_touch_damage?(event)& K( Q( J6 X4 Q+ x% j
     return false if event.erased% M1 W6 ?) d4 [! c; M
     return false if event.battler.dead?3 e& e4 w' a0 |" _5 G
     return false if event.knockbacking? * b% v0 O+ M7 p) K) a' F) j
     return false if event.battler.stop
2 a6 w: ?. r6 l* Q     return false if event.battler.state_sleep   
% T( s6 S9 j! B; r& m  b. N# I, T     return true0 ^+ H" [8 I, x1 n1 W& c4 u
end + I* _1 O! w& G
  6 o% e9 [  ^# p# H0 w; S
#--------------------------------------------------------------------------
& U) A* y4 t  p% B6 { # ● Check Event Trigger Touch$ L' v  O+ @0 g$ k
#--------------------------------------------------------------------------2 y6 v$ w# M0 J/ M6 ]7 q2 s0 D
  alias xrxs64c_check_event_trigger_touch check_event_trigger_touch
- `$ D5 f, ?4 D+ D  def check_event_trigger_touch(x, y)
+ e6 u& e) ^) t3 t$ h3 H0 {    xrxs64c_check_event_trigger_touch(x, y)( Y2 i7 f0 U' Y2 V/ }
    if $game_system.map_interpreter.running?5 q9 D& [2 l5 {2 [( v5 X
      return/ Y6 I6 b5 \/ [: `! E) q+ z
    end
1 H, e- k+ F: z# n1 @0 t' \    for event in $game_map.events.values
& r# p& t2 A$ T$ N      next unless event.collision_attack * z9 G* Q9 K, q2 g5 @$ Z
      unless [1,2].include?(event.trigger)
9 _, ?" O' N/ R* ^( |  R        if event.battler != nil and event.x == x and event.y == y and
3 v8 Q( G; q. n6 x, h           can_touch_damage?(event): |% c! L$ O% Y0 X/ ~) s, f
           $game_player.attack_effect(event)6 [/ r8 g. ^! {$ q
        end
+ R4 M9 n" ?5 B5 Y4 {  e: Z0 l3 s0 d) O      end# P' M5 a- v) g0 r9 k  ~' a
    end
# r) t: i; ?- U. H% ]  end
. n3 h- s" ?& ?end
8 w9 y* }# ^/ f  Q9 u5 {: \
4 s6 J) M/ p$ ^& ]#===============================================================================
1 _7 [* i+ I& H# q8 v  i3 b' |# ■ Game_Event; b$ u2 L2 N# E2 J, V- `& W
#===============================================================================8 u8 U% e/ d/ s1 x
class Game_Event < Game_Character
9 \; G. c5 ?7 N3 l7 k  + B- d; F; a0 y+ Z0 r
#--------------------------------------------------------------------------
2 B" ?7 ]# B" }/ J# Q, L8 m1 M# ~ # ● Check Event Trigger Touch+ w+ R% a4 B$ f: F! q/ D& r$ C1 t  y+ c
#--------------------------------------------------------------------------6 e0 U/ {1 H7 k+ @  r# f* S
  alias xrxs64c_check_event_trigger_touch check_event_trigger_touch
# k) }" y0 M" {+ G. x' X3 K  g  def check_event_trigger_touch(x, y)$ R  B3 s! X) ?
    xrxs64c_check_event_trigger_touch(x, y)) |9 @8 r' P* L2 t
    if $game_system.map_interpreter.running?
) M4 d) O7 h( |5 e( m3 C      return
2 h$ u. F, J# q0 ~    end
% j" Z2 G4 }& |    return unless self.collision_attack2 ]- ^% c- R5 O$ s# I6 R; x
    if self.battler != nil and x == $game_player.x and y == $game_player.y2 j+ t$ v5 H+ B3 V1 p' Y9 Q, R
      $game_player.attack_effect(self)
. n" j5 U! d5 D7 S9 Q- f3 W9 n    end- R( B* I  Z) h
  end' y3 d& `" G- g
end
$ @) H" D4 V" Q( u" }& N
' p8 }, t7 H4 B; J: F#===============================================================================
- W" P0 F$ u# C# ■ XAS_BA_BATTLEEVENT_NONPREEMPT7 D+ P$ g( ~5 i
#===============================================================================5 a  J. V  {6 @0 {! L& Q, h2 n
module XAS_BA_BATTLEEVENT_NONPREEMPT/ o' @. b6 n- M7 c) p4 m
  
' m: N2 i2 ^* h. w* d9 } #--------------------------------------------------------------------------
" V9 k' l7 |* Z  s) b # Update
% n: i4 ~3 u# n! ~  U8 k/ j #--------------------------------------------------------------------------
# t+ C9 G7 |5 ^% K; k) h9 `  def update2 [. s4 B5 g4 {* {
    return if self.battler != nil and $game_system.map_interpreter.running?! m7 {8 h/ t2 [; ~( E3 |
    super
2 B& l+ {3 P4 z& E4 a  end  
; n) \) ~( `8 K8 ~5 H1 X# oend
7 G, y" g% ]- U1 h' z, n5 q, L* R( c
#===============================================================================
7 c, \4 a; Q4 g+ u9 l3 ?; R# ■ Game_Event8 Q# [. p; k; M- c0 b
#===============================================================================! `( f( @& f! r6 H) m
class Game_Event < Game_Character2 _. ?- T& N  i4 ^
  include XAS_BA_BATTLEEVENT_NONPREEMPT# e0 {+ R0 r* v0 ?( \5 a- R5 j' d( I
end8 F9 U1 s# E) @( B
; V% w- |) X, [9 \- b( z5 N

3 R* `) j4 L0 v3 W
' K' ?; D  H4 W2 X3 F+ d8 j( n1 W# X- V4 [1 U5 A0 P/ L) I) W
- p$ H* O$ m! W

$ i0 w/ a0 H1 d" M, s, c& x#===============================================================================; d0 n6 G, e) {& x/ R5 t
# ■ Game_Character6 U+ L( B( K/ A- b: _0 i6 W
#===============================================================================; j" s0 k# }) A
class Game_Character
7 O& C3 `  s+ c5 o( h/ y. a  2 C% y% |" I4 @9 H0 U) x; [
#--------------------------------------------------------------------------
4 O' w( v  s, v, ^/ v: R # ● Blow" [7 s# L: E0 e! V
#--------------------------------------------------------------------------
) \2 v4 f+ L9 L def blow(d, power = 1)1 F, q; c7 l: r7 n8 o8 N0 R
    if self.move_route_forcing and $game_system.map_interpreter.running?
& R7 U: ^! ?# r( c! f- t3 L; J$ \9 C       return
. B, b% D- w7 ?1 ^2 m2 I. I7 D  H# [    end   2 I+ I  ]: C0 K1 {% L* b, _& q
    @need_refresh_pose = true' p1 S! U& @8 `9 j8 c! i
    @pose_type_old = " X "   
& z# e; }' Q4 M- ~) b. ]    @knock_back_prespeed = @move_speed if @knock_back_prespeed == nil6 t4 ?  I7 v4 P2 B5 Z+ i
    return if self.knock_back_disable
8 E  V9 Z, a9 M0 u% t5 \8 P& |. T" N    reset_pickup if self.battler.is_a?(Game_Actor)1 P6 T- b& n' \! y
    power.times do
8 P! s) O1 P6 p' z      if passable?(self.x, self.y, d)) ^6 z- h, R- b/ b- o
         @x += ([3,6,9].include?(d) ? 1 : [1,4,7].include?(d) ? -1 : 0)
/ k; Q0 g0 d, r% L- p4 O+ L         @y += ([1,2,3].include?(d) ? 1 : [7,8,9].include?(d) ? -1 : 0)
. {1 K) Q) J8 n/ o! t8 q      end8 _8 n  z& g9 A  {3 h1 J" e( v
    end9 n" ^* |9 Z5 b) V2 Q
    if self.battler.is_a?(Game_Enemy)    8 }2 v5 F7 {5 u) m
       enemy_knock_duration = XAS_BA_ENEMY::INVICIBLE_DURATION_ENEMY[enemy_id]# S: Z4 b: i, h% |; v$ Q0 N" W; q
       if enemy_knock_duration != nil; o1 @$ Q) }+ j: S
          @knock_back_duration = enemy_knock_duration
6 g/ i; [1 g$ p4 k3 V+ G# Z8 Q7 a       else' ?- X1 t6 R2 L
          @knock_back_duration = XAS_BA_ENEMY::DEFAULT_INVICIBLE_DURATION_ENEMY    ; e$ E! U" E- B+ Y
       end      5 T  Z7 V0 W$ N! V& l7 A" E7 P, h5 `
    else
3 u- G$ s0 s) i$ n7 ^. o       @knock_back_duration = XAS_BA::KNOCK_BACK_DURATION_HERO
) p) R! k* v* k5 D. d- [       jump(0,0) if XAS_BA::JUMP_HIT_HERO and self.action == nil
( Z( w" ^; ]' r- N    end   
4 i7 q8 B0 N# s4 |    @move_speed = XAS_BA::KNOCK_BACK_SPEED
6 l1 Q3 t9 `$ s( C- C' j0 C end  # S9 A% d+ d: A) _( D4 z
   
1 R; m0 |7 F# e7 i #--------------------------------------------------------------------------( U0 m/ {% Y& S0 w$ E
# ● knockbacking?
9 C, H8 i- a" {  e6 S #--------------------------------------------------------------------------* q+ X" Z$ u( f& R
def knockbacking?
4 L! B; q3 H9 E# \0 H2 @. R4 j   return @knock_back_duration != nil
! b9 |) ?9 M' C/ P# l end8 F; ?1 F$ |, c% Q" P) ~
  
" H$ S' o+ I! b6 \/ v1 E$ e: K #--------------------------------------------------------------------------" N* y# ?! `; K( N9 [
# ● Collapsing?3 {# l- c/ c- A, t3 l  o
#--------------------------------------------------------------------------) E- ?. Z* P" N- l  N
def collapsing?
( W* D" o- b) [3 i5 c$ W: T' w   return self.collapse_duration.to_i > 0$ L2 q7 `/ `' x# I0 k
end
7 w/ S" G5 P+ U% d" D! E- j
% Y/ e% e; k  M# O #--------------------------------------------------------------------------
1 U/ I5 m9 `# D& x; {3 H # ● update_text_popup ' O/ p. L: Z- L( a, |! `
#--------------------------------------------------------------------------      8 I0 m  r. x2 `+ j
def update_after_text_popup : p+ s) ]7 f) w
     return if self.battler.after_damage_pop_time == 0
$ X7 q# _$ B; N1 R, Z7 M     self.battler.after_damage_pop_time -= 12 R$ F, t# n2 ~
     display_damage(self.battler.after_damage_pop) if self.battler.after_damage_pop_time == 04 G+ P0 z5 A4 m9 U* I/ N
end
; z4 J, Z+ o8 J4 d2 v2 t * C2 q, Q) t) v1 |1 U7 o( t/ j# |
#--------------------------------------------------------------------------9 p; d. o) U0 D1 }  ?  q: T5 M
# ● update after animation
- u& Z, f" d0 l6 m #--------------------------------------------------------------------------      $ B* r* l+ E: Y# a, s: t4 D& ~/ w4 s
def update_after_animation
+ I0 V" V: T4 p) K     return if self.battler.after_animation_time == 0
- X4 D: F  P, x0 \     self.battler.after_animation_time -= 1
0 z% C7 y; b  e1 \4 q     self.animation_id = self.battler.after_animation_id if self.battler.after_animation_time == 00 _9 \1 p2 `3 z8 K" q( r2 g! J2 c
end  
6 ^: I0 A" O- d: O' I7 m$ }2 T& [
- I+ F  D7 i( w- q& d #--------------------------------------------------------------------------8 q5 O+ i. K" B4 @( }9 v# t
# ● update knockbacking
( [. M8 X! v1 J& L. {' V8 B #--------------------------------------------------------------------------       " K* ]" [3 \0 b% R$ k) _
def update_knockbacking
$ ?5 _; \0 w6 E8 A+ |3 e4 y; D3 B     @knock_back_duration = 5 if self.battler.state_sleep$ u- ]+ P7 r5 J- [
     return unless self.knockbacking?6 a) F1 |! Q4 x0 R7 n6 n( \
     return if self.battler.stop
2 ?$ L# N# j- s  T     @pattern = 0 unless @direction_fix
- z0 N! ~4 ~  N( c4 C1 X     @knock_back_duration -= 1 unless self.throw_active ' x4 \$ Y( v& O2 E7 @
     update_knockbacksprite
/ a; Y) z' `4 v* L! B2 l- y: G) n     if @knock_back_duration <= 0
" s7 @, z& h' g* X) Z& x* h" I        @knock_back_duration = nil6 W8 \3 l5 V- b
        @knock_back_prespeed = nil
* X0 r% z: q+ i: f7 T( c; P9 {        if self.is_a?(Game_Event)$ r, T* ~4 j% a) X) E$ v1 M
           @pose_type = ""
" Z! i9 w9 Q) H8 G3 C( }, Q& M5 `           @pose_type_old = @pose_type
3 c: G3 }8 M' z* K2 ?6 @           @character_name = @page.graphic.character_name
* ]* M- r- R; N$ S: b+ }           self.refresh
; L  [% ?: v+ h2 l+ e. w        end8 h; G2 A8 H9 [$ K- F6 Q
     end# ~: n5 t/ f* @- r6 |) ?4 n0 v( H
end
& k! R% Q! x+ U% h% A  ) l4 D7 C. L( P
#--------------------------------------------------------------------------# Q2 t9 A9 i' [4 N
# ● Update Knockback Sprite
- q8 i2 v8 S4 n- I( o' t6 M+ K  I #--------------------------------------------------------------------------    * j) q3 V" h& k" a
def update_knockbacksprite
- B; m6 O* ~; B" Y) U& _0 v     return if @pose_type == "Refresh"3 z3 f1 h; B4 M0 a2 l) V9 L1 _
     return if self.is_a?(Game_Player) 6 G- A: u) u, a' G% G
     @pose_type = "Refresh"   n5 N5 n8 n% x
     name = @page.graphic.character_name  + "_HIT", Y% _; j2 t0 ]' h% S( B+ ]
     if RPG_FileTest.character_exist?(name)
' L" J) h4 R- N) n7 _        @character_name = name
4 U8 Y" j* I# t- r' V# c        self.refresh0 e! O1 C; K. E0 O: p5 w2 ^" u; g- b
     end      
% t5 c' c4 Y' Q9 J& F2 N end
7 B* R: y7 a6 d3 q; M
3 s) P: H- k2 S #--------------------------------------------------------------------------2 U1 d" N# l! D7 W, c
# ● Seal State1 g- M) z5 A8 r( m
#--------------------------------------------------------------------------   2 G1 E1 z: E( N4 t% P: A8 T9 ^
def seal_state?(type)
5 b1 Q5 W, F6 w2 J) j     case type 2 |) Y" @0 p9 ], L) i
     when 0 #Mute
1 b# m2 o1 l2 j* I6 r        return true if self.battler.state_mute
% _, v3 F, K2 E1 g9 j# c( m     when 1 #Seal Attack
, M5 g3 P% S( S  V1 E5 j8 |        return true if self.battler.state_mute
9 i$ N8 U3 ^& w4 s        return true if self.battler.state_seal_attack5 T" G; A2 a5 X% g0 u- f
     when 2 #Seal Skill
3 L0 O" n0 O2 `& q- b        return true if self.battler.state_mute + I( e- _5 ~$ n0 j  t0 f! S  W4 k; M
        return true if self.battler.state_berserk        
  X' g3 [5 a/ e) _$ Z! Y2 A6 [8 v        return true if self.battler.state_seal_skill  D, ]6 }8 K& X' f& H: H& Z
     when 3 #Seal Item
7 V/ J: C# _9 T! ]        return true if self.battler.state_mute2 H: o0 k/ K, n5 I
        return true if self.battler.state_berserk        
) ?1 e0 @: B+ F4 R        return true if self.battler.state_seal_item+ I$ i7 _4 w7 h6 U: r! q( K+ u
     end+ o, Y/ Y& v6 N3 G4 `
     return false6 f. {7 ?1 N6 k1 g
end   . {5 I' v( |* A, l6 M' f% d: ~
  
! O; H, U: B4 Q4 p& U, _* {; h! j #--------------------------------------------------------------------------
5 {0 P2 e! i: W0 N  u. } # ● Seal Text & d- [  R3 o9 i
#--------------------------------------------------------------------------" t: [8 }: [- }0 a  q( w: t: |
  def seal_text
8 @3 _8 d8 B0 {- S. ?7 q      self.battler.damage = XAS::SEALED_TEXT
. E; y; T9 w6 ?8 c2 @9 S+ ^      self.battler.damage_pop = true   
. [5 S1 Q4 Q# p8 [4 X      $game_system.se_play(XAS::SEALED_SE)
7 g& l7 S+ T* u: d# a2 e" T      $game_temp.clear_setting2 if self.battler.is_a?(Game_Actor)
$ ~) O& @* {- ~" K2 [  end , u3 N' K& Z: @% p' Q1 q  G* ~2 y
  
% ^0 d* Z% k5 p5 t5 Mend
" w. Z! I; Y3 j) g  ~#===============================================================================9 {. M3 b4 U: s2 [0 Y3 T
# ■ XAS_DamageStop
0 e( e2 ~: Q: m; c% J& F- x. C#===============================================================================
, z' {5 e8 O. S4 j. I* qmodule XAS_DamageStop
0 \: W1 i1 I1 I  
% b+ t, x& b- A  #--------------------------------------------------------------------------* ~8 A8 V0 C) w# b) P
  # ● Actiong?# A1 X/ c1 d/ I& M, z
  #--------------------------------------------------------------------------
, S7 I. k: e9 H: I! x8 g: d6 f  def acting?& f: a, d4 T4 f5 h) t
    return (super or self.knockbacking? or self.collapsing?)
0 Y$ u' ^" i# I  end9 D# C  a% D! t! y' }8 b4 {
end
/ j- T0 m& g* _5 B1 F" ~  \: w7 a9 U/ U: D
#===============================================================================
6 O* N# g; V# ^; v5 I; d7 U# ■ Game_Player$ V( F$ a* v* A/ ~' C
#===============================================================================4 h- K: ?: s- E# q/ G: D4 A  ^* r( b
class Game_Player < Game_Character- t9 n# h+ u" D" u' ]9 S
  include XAS_DamageStop
  I8 v% ^, u( C& B% zend
7 f' |+ G/ L' W7 y/ C4 T
5 w# k+ t7 C- ~! t% w- K#===============================================================================( s9 [! a& \: L) z, l$ `
# ■ Game_Event
1 a# U0 U* a6 A+ m2 Z9 o& V: k# n#===============================================================================: G" `. g& I/ b: Q4 |& ^
class Game_Event < Game_Character
2 o+ [3 t3 w# ~$ M0 n  include XAS_DamageStop
$ V. K+ _% D9 i. T1 Y6 D5 gend
/ m6 b! w) E; t. ~2 c
$ l3 N2 `  D8 [- x1 Q8 S#===============================================================================  E5 h+ L: D/ g2 b6 q9 j( f3 f
# ■ Game_Map
$ u+ J0 |2 R$ y: u. Z' j+ u#===============================================================================
# p5 x2 E; i2 q. e: y' ^6 j! Tclass Game_Map; R: a1 @7 w- C, A- f+ c9 a
  ) a# S( o4 Z% l5 g: X0 E+ B
  #--------------------------------------------------------------------------- X9 F) z' t& Y1 B0 }
  # ● Starting?6 y! E0 t/ O& H1 I' u1 U, m$ q
  #--------------------------------------------------------------------------
+ P. ^1 v* _; s) y) b# h9 W$ G  def starting?
, L4 ~4 E+ X( n7 [8 W  K    if $game_system.map_interpreter.running?
. c& r* a( a$ V: h1 o% t7 p      return true( q! ?1 N# a" S" J% O# |! F* G
    end+ J2 z3 R2 F; S: t
    for event in $game_map.events.values
) Q9 C5 ?8 Q$ c      return true if event.starting# W1 X3 Z& @' [1 k
    end" E, p% A8 f" D0 |% T6 g6 S8 x
    return false
$ ?$ O; k& [1 l2 V, W9 z, `  end
, f1 \. Q. a, m& nend; i) t$ m, V+ ^# `5 H
# d' U( L# |3 V- }9 e
#===============================================================================
) y0 D* }3 `7 J  N  j# ■ Interpreter
6 `. G4 |. @! `6 c6 ^#===============================================================================
; {5 J4 v% k7 Fmodule XAS_ACTION$ M1 s  Y9 V! T$ `
  ; p$ i+ T& e# j6 I2 i; S
  #--------------------------------------------------------------------------
/ \$ A/ d; d# K* E$ ?: L& e  # ● Xas Z Shoot Bullet
  B5 j# B6 t! g- i6 E6 O5 [1 P  #--------------------------------------------------------------------------( j& _9 n, C* h: E* B
  alias xas_z_shoot_bullet shoot_bullet* x* w( s8 q, I! R0 I6 H2 L
  def shoot_bullet(action_id)
% W$ K2 s* m$ _$ D5 E: y, o    bullet_token = xas_z_shoot_bullet(action_id)
5 S" }6 A8 X9 R% o: x- w4 r. c5 ^    return bullet_token! C- @1 c2 q( G* i
  end" i  u0 k6 |- v1 }7 S6 w
end
6 J  d, @9 C& |* Y6 J# Y
' V" F$ V( e6 C' S# ^+ W#===============================================================================
  Y5 f" }0 A% M- @6 E! i# ■ Sprite_Battler Fix
- |; K5 @. p* @/ l#===============================================================================1 u) z/ a8 {( q- K  O
class Sprite_Battler < RPG::Sprite
$ {& m, Q, P2 r% o2 {. dalias xas_damage_update update
  |* k, w2 N7 w. {* L) ]
, }; C" x8 M4 C# Q$ L4 ~5 p9 R #--------------------------------------------------------------------------
0 c" A$ i4 \" R, h # ● Update# i0 S% W/ i, `$ D5 u! L
#--------------------------------------------------------------------------
  e/ l3 K/ _0 L; g. n; m3 ?   def update/ w9 E6 k& y* b
    super 6 h: V6 k0 k4 U8 R# D& \: I) |
    if @battler_visible
; Y2 N. O7 Z1 M2 P       if @battler.damage_pop( ]" o$ C' a2 C+ d7 o
        damage(@battler.damage, @battler.critical,@battler.state,@battler.item)
% o0 i4 V) l8 j& s0 c0 Q7 f        @battler.damage = nil
4 z; k. R  b3 g& M- v3 C# Y0 j        @battler.critical = false
8 f/ E9 J( z6 u8 m. P        @battler.damage_pop = false2 K$ S* q* ?* w+ \9 F/ N
      end
/ O9 I# h- B, P  o    end  
3 f  `, t. T2 s- Q8 Q- i7 h    xas_damage_update
3 w6 ~3 `: b" m" ^- R   end" C+ W' k' }' T; Y+ @+ S6 M
end$ w! a! ^: T$ }: |
[/pre]
; P8 [, ?. h7 b7 z0 \) K6 o3 ^应该没有问题的才对,替换XAS - Battler 1试下吧,
& g2 D5 o1 R) P. M我这里完全是正常的。
往事简直不堪回首,稍微做点想做的事吧
回复

使用道具 举报

双子人

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

开拓者

发表于 2012-4-15 19:19:10 | 显示全部楼层
本帖最后由 hys111111 于 2012-4-15 19:19 编辑
- J. C8 a# K5 f, C6 E
& q0 k: S8 C' C6 c) L我试验过,全键盘和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 编辑
3 O: K3 ]$ B6 e* U1 f0 f! }/ B
6 i$ ~  V: [+ O8 z/ E/ |! _' }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这论坛系统真心奇葩. R; ^0 D2 t+ m" \/ l; Z
0...@actor.skills.size  `/ Y# p6 w: g/ t
这行改回
  1. for i in 0...@actor.skills.size
复制代码
就行了
往事简直不堪回首,稍微做点想做的事吧
回复

使用道具 举报

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
回帖
228
 楼主| 发表于 2012-4-15 21:17:21 | 显示全部楼层
感谢您细心的修正,目前好像没有问题了,
7 V$ v. ]1 Y* \  r( }" t若有其他问题再询问,我试着改按键看看,超感谢!
/ B3 a9 {: O/ q7 F3 M, t* R5 |; o$ H/ o  s' I7 }
回复

使用道具 举报

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

在本发帖返回顶部