162 lines
9 KiB
Common Lisp
162 lines
9 KiB
Common Lisp
*start
|
||
|
||
[if exp="sprite.lastSpriteId==stDamage2"]
|
||
[eval exp="mp.damageHeight = int(mp.damageHeight*0.9)"]
|
||
[else]
|
||
[eval exp="mp.damageHeight = 30"]
|
||
[endif]
|
||
[eval exp="mp.damageHeight = 12" cond="mp.damageHeight < 12"]
|
||
[eval exp="mp.path1='(-51,0,'+mp.damageHeight+')'"]
|
||
[eval exp="mp.path2='(-25,0,-'+mp.damageHeight+')'"]
|
||
|
||
|
||
[eval exp="mp.recoveryFlag = false"]
|
||
[if exp="sprite.targetPlayer.nowSpriteId==stHolding && sprite.HP > 0"]
|
||
; [load id=stRecovery]
|
||
[eval exp="mp.recoveryFlag = true"]
|
||
[endif]
|
||
|
||
[iscript]
|
||
mp.damage2++;
|
||
mp.w1 = 15 - (mp.damage2 - 1) * 10;
|
||
if(mp.w1 < 0) mp.w1 = 0;
|
||
mp.w2 = 15 - mp.w1;
|
||
[endscript]
|
||
|
||
[playdamagese]
|
||
|
||
[if exp="sprite.HP == 0 && !f.inBattleMode"]
|
||
[playse storage=se890]
|
||
[eval exp="bao.players[0].invincibleCount+=150" cond="bao.players[0].layer.opacity2==100"]
|
||
[if exp="bao.players.count>1"]
|
||
[eval exp="bao.players[1].invincibleCount+=150" cond="bao.players[1].layer.opacity2==100"]
|
||
[endif]
|
||
|
||
[if exp="bao.players[0].invincibleCount > 150"]
|
||
[eval exp="bao.players[0].invincibleCount=150"]
|
||
[endif]
|
||
[if exp="bao.players.count>1 && bao.players[1].invincibleCount > 150"]
|
||
[eval exp="bao.players[1].invincibleCount=150"]
|
||
[endif]
|
||
[else]
|
||
[eval exp="bao.players[0].invincibleCount+=5" cond="bao.players[0].layer.opacity2==100"]
|
||
[if exp="bao.players.count>1"]
|
||
[eval exp="bao.players[1].invincibleCount+=5" cond="bao.players[1].layer.opacity2==100"]
|
||
[endif]
|
||
|
||
[if exp="bao.players[0].invincibleCount > 30"]
|
||
[eval exp="bao.players[0].invincibleCount=30"]
|
||
[endif]
|
||
[if exp="bao.players.count>1 && bao.players[1].invincibleCount > 30"]
|
||
[eval exp="bao.players[1].invincibleCount=30"]
|
||
[endif]
|
||
[endif]
|
||
|
||
|
||
[image num=1]
|
||
[dispsize width=168 height=128 centerpos=84 baseline=0]
|
||
[state enablemove=false enableAttack=false]
|
||
|
||
[ontrigger name=landing target=*landing1]
|
||
|
||
[move path=&mp.path1 haccel=-1 frame=10]
|
||
[move path=&mp.path2 xaccel=-0.2 frame=5]
|
||
|
||
[disp left=0 top=0 opacity=255][hit rect="(5,5,164,117)"][wait frame=10]
|
||
|
||
[if exp="mp.recoveryFlag"]
|
||
[load id=stRecovery]
|
||
[endif]
|
||
|
||
[image num=2]
|
||
[dispsize width=196 height=64 centerpos=98 baseline=8]
|
||
|
||
[disp left=0 top=1 opacity=255][hit rect=(7,55,189,56)]
|
||
[wait frame=1]
|
||
[call target=*wait]
|
||
;[s cond="sprite.altitude>0"]
|
||
|
||
*landing1
|
||
[image num=2]
|
||
[dispsize width=196 height=64 centerpos=98 baseline=8]
|
||
[ontrigger name=landing target=*landing2]
|
||
|
||
[playse storage="se268"]
|
||
[quake frame=10 vmax=5]
|
||
|
||
[move path=(-17,0,17) haccel=-1 frame=5]
|
||
[move path=(-17,0,-17) haccel=1 frame=5]
|
||
[disp left=0 top=0 opacity=255][hit rect=(7,55,189,56)][wait frame=4]
|
||
[disp left=0 top=1 opacity=255][hit rect=(7,55,189,56)]
|
||
[wait frame=1]
|
||
[s cond="sprite.altitude>0"]
|
||
|
||
*landing2
|
||
[image num=2]
|
||
[dispsize width=196 height=64 centerpos=98 baseline=8]
|
||
[ontrigger name=landing target=*landing3]
|
||
|
||
[move path=(-4,0,5) haccel=-1 frame=5]
|
||
[move path=(-4,0,-5) haccel=1 frame=5]
|
||
[disp left=0 top=0 opacity=255]
|
||
[wait frame=1]
|
||
[s cond="sprite.altitude>0"]
|
||
|
||
*landing3
|
||
[disp left=0 top=0 opacity=255]
|
||
|
||
[if exp="sprite.HP > 0"]
|
||
[disp left=0 top=0 opacity=255][hit rect="(20,63,176,64)"][wait frame=15]
|
||
[disp left=0 top=0 opacity=255][wait frame=15]
|
||
[load id="stStandUp"]
|
||
[endif]
|
||
|
||
[eval exp="sprite.scriptQueue=[]"]
|
||
[jump target=*erase cond="f.inBattleMode"]
|
||
|
||
[wait frame=10]
|
||
|
||
[del]
|
||
[eval exp="sf.enemyKillCount++"]
|
||
|
||
[load id=stDown]
|
||
|
||
|
||
*erase
|
||
[eval exp="sprite.isBoss = false"]
|
||
[del]
|
||
|
||
[disp left=0 top=0 opacity=235][wait frame=3]
|
||
[disp left=0 top=0 opacity=215][wait frame=3]
|
||
[disp left=0 top=0 opacity=195][wait frame=3]
|
||
[disp left=0 top=0 opacity=175][wait frame=3]
|
||
[disp left=0 top=0 opacity=155][wait frame=3]
|
||
[disp left=0 top=0 opacity=135][wait frame=3]
|
||
[disp left=0 top=0 opacity=115][wait frame=3]
|
||
[disp left=0 top=0 opacity= 95][wait frame=3]
|
||
[disp left=0 top=0 opacity= 75][wait frame=3]
|
||
[disp left=0 top=0 opacity= 55][wait frame=3]
|
||
[disp left=0 top=0 opacity= 35][wait frame=3]
|
||
[disp left=0 top=0 opacity= 15][wait frame=3]
|
||
[disp left=0 top=0 opacity= 0][wait frame=3]
|
||
|
||
[s]
|
||
|
||
|
||
*wait
|
||
[eval exp="mp.i=0"]
|
||
*loop
|
||
[if exp="sprite.targetPlayer !== void"]
|
||
[if exp="sprite.HP > 0 && sprite.MP > sprite.escapeMP && intrandom(0,100)<sprite.guardRate && sprite.targetPlayer.nowSpriteId !== stHolding && sprite.targetPlayer.nowSpriteId !== stHolding2 && sprite.targetPlayer.nowSpriteId !== stSpecial2"]
|
||
[eval exp="sprite.MP -= sprite.escapeMP"]
|
||
[load id=stRecovery]
|
||
[endif]
|
||
[endif]
|
||
[eval exp="mp.i++"]
|
||
[if exp="mp.i == mp.wait"]
|
||
[return]
|
||
[endif]
|
||
|
||
[wait frame=1]
|
||
|
||
[jump target=*loop]
|