shiny-cuty-excel-chiffon/data/b-05.ks
2024-10-27 15:37:15 -05:00

796 lines
34 KiB
Text


[call target=*init]
;ステージスクリプトのロード
[loadstage storage='stage06_01.ssd']
[image page=back layer=0 storage="_black" visible=true]
[UpDate time=1]
*stageB_start|Bルート『敵本拠地』
[eval exp="f.chaptertitle=''"]
[record]
[runstage]
[waitstage]
[playbgm storage="stage06"]
[freeimage page=back layer=0]
[UpDate canskip=false]
*stageB-01
[playerstate enablemove=false]
[enemystate enablemove=false]
[setSkipTarget target='*stageB-01Start']
[WindowOn]
[Face storage="f_a223"]
[Voice storage="a1310" buf=2]
【Excel Chiffon】[CR]
「[v]So this is their headquarters...[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b223"]
[Voice storage="b1123" buf=5]
【Excel Chocolat】[CR]
「[v]Yeah... Let's get started♪[/v]」[KeyWait]
[FaceOff]
*stageB-01Start
[setSkipEnableFlag]
[call target=*init cond="tf.skipNextFlag"]
[SetSsdAtSkipNext storage=stage06_01.ssd target=*skipped bgm=stage06 cond="!bao.enabled || bao.conductor.curStorage!='stage06_01.ssd'"]
[iscript]
f.defeatedCountInThisStage = 0;
[endscript]
[WindowOff]
[ClearHistory]
[eval exp="bao.informLayer.show()"]
[playerstate enablemove=true]
[enemystate enablemove=true]
[runstage]
*stageB-01ActionStage
[waitstage]
[wait time=1500]
[image page=back layer=0 storage="_black" visible=true]
[UpDate canskip=false]
[iscript]
f.selectCharacter = bao.nowSelectingPlayerId;
storePlayerState();
bao.resetStage();
[endscript]
*stageB-02Start
; 第二階層
[loadstage storage='stage0a_01.ssd']
[runstage]
[waitstage]
[if exp="bao.nowSelectingPlayerId != f.selectCharacter"]
[eval exp="bao.exchangePlayer()"]
[endif]
[freeimage page=back layer=0]
[UpDate canskip=false]
[eval exp="bao.informLayer.show()"]
[playerstate enablemove=true]
[enemystate enablemove=true]
[runstage]
*stageB-02ActionStage
[waitstage]
*stageB-03
[playerstate enablemove=false]
[enemystate enablemove=false]
;[waitstable]
[ClearHistory]
[fadeoutbgm time=250]
[eval exp="bao.informLayer.hide()"]
[eval exp="sf.routeB=3" cond="sf.routeB<3"]
[runstage]
[waitstage]
[playbgm storage="boss1"]
[wait time=1000 canskip=false]
[setSkipTarget target='*stageBBossStart']
[WindowOn]
[Face storage="f_d001"]
【Bezel】[CR]
「[i]That's far enough. You shall not pass beyond this[r]point.[/i]」[KeyWait]
[FaceOff]
; 人間とは違う風貌をしているので年齢を計りかねています
[Face storage="f_a223"]
[Voice storage="a1311" buf=2]
【Excel Chiffon】[CR]
「[v]Who are you, mister... or grandpa?[/v]」[KeyWait]
[FaceOff]
;[ChrSet0 storage="bg130"]
[ChrSet1 storage="b_d001" pos=c]
[Update]
[Face storage="f_d001"]
【Bezel】[CR]
「[i]My name is Bezel! I am a researcher of the great[r]Ergonia Empire and an advisor to General Reviella.[/i]」[KeyWait]
[FaceOff]
[Face storage="f_a277"]
[Voice storage="a1312" buf=2]
【Excel Chiffon】[CR]
「[v]—Sorry, but I'm not interested.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b272"]
[Voice storage="b1124" buf=5]
【Excel Chocolat】[CR]
「[v]Whatever the case, you'll just have to die.[/v]」[KeyWait]
[FaceOff]
[runstage]
[waitstage]
[ChrReset0]
[ChrReset1]
[Update]
[Face storage="f_d001"]
【Bezel】[CR]
「[i]You little brats... you'll regret this![/i]」[KeyWait]
[FaceOff]
*stageBBossStart
[setSkipEnableFlag]
[ChrReset1][Update time=1]
[if exp="tf.ctrl === void || !isvalid tf.ctrl"]
[runstage]
[waitstage]
[endif]
[WindowOff]
[ClearHistory]
[eval exp="bao.informLayer.show()"]
[playerstate enablemove=true]
[enemystate enablemove=true]
[runstage]
*stageB-03b
[waitstage]
*stageB-04
[playerstate enablemove=false]
[enemystate enablemove=false]
[eval exp="bao.informLayer.hide()"]
;[ClearHistory]
[setSkipTarget target='*stageBBoss2Start']
[WindowOn]
; 勝利
[Face storage="f_d001"]
【Bezel】[CR]
「[i]Gah... ughhh...[/i]」[KeyWait]
[FaceOff]
[eval exp="tf.beizel.layer.trigger('erase')"]
[Face storage="f_d001"]
【Bezel】[CR]
「[i]Impossible... I... I... ughhh! Reviella-sama... I'm[r]so... sorry...[/i]」[KeyWait]
[FaceOff]
[Face storage="f_a223"]
[Voice storage="a1313" buf=2]
【Excel Chiffon】[CR]
「[v]Now then—[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b223"]
[Voice storage="b1125" buf=2]
【Excel Chocolat】[CR]
「[v]It's just ahead.[/v]」[KeyWait]
[FaceOff]
[WindowOff]
[runstage]
[waitstage]
[image page=back layer=0 storage="_black" visible=true]
[UpDate canskip=false]
[iscript]
f.selectCharacter = bao.nowSelectingPlayerId;
storePlayerState();
bao.resetStage();
[endscript]
[loadstage storage='stage06_03.ssd']
[runstage]
[waitstage]
*stageB-05
; 第三階層
[playerstate enablemove=false]
[enemystate enablemove=false]
;[waitstable]
[if exp="bao.nowSelectingPlayerId != f.selectCharacter"]
[eval exp="bao.exchangePlayer()"]
[endif]
[eval exp="bao.informLayer.hideSoon()"]
[freeimage page=back layer=0]
[UpDate canskip=false]
[eval exp="sf.routeB=4" cond="sf.routeB<4"]
[WindowOn]
[eval exp="f.stageProgress=3"]
;;6-02
;;ボス戦
[Face storage="f_a224"]
[Voice storage="a1314" buf=2]
【Excel Chiffon】[CR]
「[v]Hehehe... it's been a while♪[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b266"]
[Voice storage="b1126" buf=2]
【Excel Chocolat】[CR]
「[v]We finally meet.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_c008"]
[Voice storage="c0247" buf=3]
【Reviella】[CR]
「[v]Hehehe... I'm honestly surprised. I never thought you'd[r]break my seal.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_c008"]
[Voice storage="c0248" buf=2]
【Reviella】[CR]
「[v]And you really did a number on this place... Thanks to[r]you, this headquarters is in ruins. I'll have to[r]rebuild it from scratch.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b267"]
[Voice storage="b1127" buf=2]
【Excel Chocolat】[CR]
「[v]Oh dear... I'm sorry about that.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_c008"]
[Voice storage="c0249" buf=3]
【Reviella】[CR]
「[v]Hmph... well, it's fine. This level of damage can be[r]dealt with.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_c008"]
[Voice storage="c0250" buf=3]
【Reviella】[CR]
「[v]But if you misbehave—I'll have to punish you[r]accordingly.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_a277"]
[Voice storage="a1315" buf=2]
【Excel Chiffon】[CR]
「[v]Isn't that a bit of a tantrum? That's funny♪ Well, for[r]us too—[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b267"]
[Voice storage="b1128" buf=2]
【Excel Chocolat】[CR]
「[v]You'll pay for what you've done to us... with your[r]life.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_c003"]
[Voice storage="c0251" buf=3]
【Reviella】[CR]
「[v]You little brats... fine. Come! I'll show you the[r]difference in our power!!![/v]」[KeyWait]
[FaceOff]
*stageBBoss2Start
[setSkipEnableFlag]
[SetSsdAtSkipNext storage=stage06_03.ssd target=*skipped cond="tf.skipNextFlag"]
[playbgm storage="boss2"]
[WindowOff]
[ClearHistory]
[eval exp="bao.informLayer.show()"]
[playerstate enablemove=true]
[enemystate enablemove=true]
[runstage]
*stageBBoss2Battle
[waitstage cond="tf.reviella.HP>0"]
[jump target=*clear]
*missed
[playerstate enablemove=false]
[enemystate enablemove=false]
[ClearHistory]
[eval exp="sf.gamePoint+=3"]
[call storage="defeatedHScene.ks"]
[if exp="tf.doubleKO"]
[if exp="tf.killedByKind[0]=='ベイゼル'"]
; 中ボスとダブルKOの場合の処理
[eval exp="bao.trigger('killall')"]
[jump target=*stageB-04]
[else]
[jump target=*clear]
[endif]
[endif]
[if exp="tf.toRescueMode"]
[call storage="rescueMode.ks"]
[eval exp="tf.toRescueMode = false"]
[jump target=*missed cond="bao.returnState=='miss'"]
[jump target=&f.nowLabel]
[endif]
[eval exp="f.defeatedCountInThisStage++"]
[eval exp="sf.gamePoint+=7"]
;残機0ならゲームオーバー
[jump target=*gameover cond="f.playerNum[chrChiffon] == 0 || f.playerNum[chrChocolat]==0"]
[if exp="sf.HSceneMode==2 || !sf.R18"]
[call storage=defeatedHScene.ks target=*hsceneless2]
[jump target=&f.nowLabel]
[endif]
[call storage=defeatedHScene.ks target=*revive]
[jump target=&f.nowLabel]
*clear
[iscript]
{
bao.iconLayers[0].visible = false;
bao.iconLayers[1].visible = false;
bao.fukidashi.clear();
if(sf.adjSinglePlayMode){
var x0 = bao.players[0].rootX;
var x1 = bao.players[1].rootX;
if(Math.abs(x0 - x1) < 50){
if(bao.nowSelectingPlayerId == 0){
if(x0 < bao.internalWidth / 4){
bao.players[1].rootX = bao.players[0].rootX + 60;
}else{
bao.players[1].rootX = bao.players[0].rootX - 60;
}
}else{
if(x1 < bao.internalWidth / 4){
bao.players[0].rootX = bao.players[1].rootX + 60;
}else{
bao.players[0].rootX = bao.players[1].rootX - 60;
}
}
}
}
}
[endscript]
;[enemystate exp="sprite.damage.strength=1000;sprite.damage.kind=atkBrowOut|atkInvalidGuard;sprite.damageFrom=bao.players[0];sprite.setHitMark(sprite.rootX,sprite.rootY,sprite.layer.asdHeight/2)"]
[playerstate enablemove=false]
[enemystate enablemove=false]
[eval exp="bao.players[0].invincibleCount=100"]
[eval exp="bao.players[1].invincibleCount=100"]
[eval exp="bao.timer.interval*=2"]
[fadeoutbgm time=2000]
;[image page=back layer=0 storage="_white" visible=true opacity=255]
;[UpDate canskip=false time=2000]
[eval exp="bao.timer.interval/=2"]
[iscript]
{
var p = bao.players[0];
if((tf.reviella.rootX < p.rootX && p.inverse) || (p.rootX < tf.reviella.rootX && !p.inverse)){
p.inverse = !p.inverse;
p.layer.setInverse();
}
sf.gamePoint += 12;
bao.noWaitMode = false; bao.resetTimerInterval();
// result計算用
tf.HP = 0;
tf.MP = 0;
tf.maxHP = 0;
tf.maxMP = 0;
for(var i=0; i<bao.players.count; i++){
tf.HP += bao.players[i].HP;
tf.MP += bao.players[i].MP;
tf.maxHP += bao.players[i].maxHP;
tf.maxMP += bao.players[i].maxMP;
}
tf.doubleKO = false;
}
[endscript]
[fadeoutbgm time=300]
[eval exp="bao.informLayer.hide()"]
[wait time=300]
[iscript]
// キメポーズ
for(var i=0; i<bao.players.count; i++){
var p = bao.players[i];
if(isvalid tf.reviella && p.rootX<tf.reviella.rootX){
if(!p.inverse) p.inverse = true;
}else{
if(p.inverse) p.inverse = false;
}
p.addQueue('[wait frame=15][load id=stWinning]');
}
[endscript]
[eval exp="sf.gamePoint+=100"]
[call storage=resultScreen.ks]
[iscript]
// キメポーズから直る
for(var i=0; i<bao.players.count; i++){
bao.players[i].layer.trigger('end');
}
[endscript]
*stageB-06
[playerstate enablemove=false]
[enemystate enablemove=false]
[image page=back layer=0 storage="_black" visible=true]
[UpDate canskip=false]
[eval exp="bao.informLayer.hideSoon()"]
[eval exp="sf.routeB=5" cond="sf.routeB<5"]
[eval exp="bao.conductor.goToLabel('*stage06-04a');"]
[runstage]
*stageB-06b
[waitstage]
*stageB-06c
[ClearHistory]
[setSkipEnableFlag label='*sceneB-08end' cond="sf.kaisouOpenFlag['b03']"][setSkipTarget storage=b-08.ks target='*sceneB-08end']
[playbgm storage=bgm005]
[freeimage page=back layer=0]
[UpDate canskip=false]
[WindowOn]
[Face storage="f_c003"]
[Voice storage="c0252" buf=2]
【Reviella】[CR]
「[v]No... no way... I... I, of all people... to these[r]little brats... this can't be...[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b267"]
[Voice storage="b1129" buf=2]
【Excel Chocolat】[CR]
「[v]Hehehe, we are indeed little brats. That's why we lost[r]once before.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_a223"]
[Voice storage="a1316" buf=2]
【Excel Chiffon】[CR]
「[v]But because of that, we learned the joy of living[r]freely! And so... we gained the power to defeat even[r]you![/v]」[KeyWait]
[FaceOff]
[Face storage="f_a224"]
[Voice storage="a1317" buf=2]
【Excel Chiffon】[CR]
「[v]I should thank you... thank you... Reviella♪[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b267"]
[Voice storage="b1130" buf=2]
【Excel Chocolat】[CR]
「[v]We'll give you our gratitude☆[/v]」[KeyWait]
[FaceOff]
[eval exp="tf.reviella.layer.trigger('pray2')"]
[Face storage="f_c003"]
[Voice storage="c0253" buf=2]
【Reviella】[CR]
「[v]Ugh... this can't be... this can't be... ahhh... glory[r]to... the Ergonia Empire...[/v]」[KeyWait]
[FaceOff]
;レヴィエラ消滅
[WindowOff]
[eval exp="tf.reviella.layer.trigger('dead')"]
[wait time=200 canskip=false]
;;ホワイトアウト
;;通常に戻る画面
[image page=back layer=0 storage="_white" visible=true]
[UpDate time=700 canskip=false]
[eval exp="bao.resetObjects()"]
[freeimage page=back layer=0]
[UpDate canskip=false]
[WindowOn]
[Face storage="f_b267"]
[Voice storage="b1131" buf=2]
【Excel Chocolat】[CR]
「[v]Oh dear... she's dead.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_a277"]
[Voice storage="a1318" buf=2]
【Excel Chiffon】[CR]
「[v]Hehe, I thought she'd entertain us a bit more♪[/v]」[KeyWait]
[FaceOff]
;爆発音
;画面揺れ
[runstage]
*stageB-06d
[waitstage]
[Face storage="f_a276"]
[Voice storage="a1319" buf=2]
【Excel Chiffon】[CR]
「[v]What's this... an earthquake?[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b265"]
[Voice storage="b1132" buf=2]
【Excel Chocolat】[CR]
「[v]...This base is made of something like magic. Probably[r]Reviella's power. So...[/v]」[KeyWait]
[FaceOff]
[Face storage="f_a276"]
[Voice storage="a1320" buf=2]
【Excel Chiffon】[CR]
「[v]Reviella's death means the base can't be maintained?[r]Isn't that a bit dangerous?[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b265"]
[Voice storage="b1133" buf=2]
【Excel Chocolat】[CR]
「[v]It's dangerous... so let's get out of here quickly.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_a224"]
[Voice storage="a1321" buf=2]
【Excel Chiffon】[CR]
「[v]Yeah... A free life awaits us! Come on, Chocolat...[r]let's go!![/v]」[KeyWait]
[FaceOff]
;脱出する二人
;シーン終了
[iscript]
{
bao.stageLayer.scrollLineL = -200;
for(var i=0; i<bao.players.count; i++){
var p = bao.players[i];
p.movableRect.left = -200;
p.addQueue('[eval exp="sprite.turnToLeft()"][move path=(-200,20,0) frame=20 id=stDash]');
}
}
[endscript]
[image page=back layer=0 storage="_black" visible=true]
[UpDate canskip=false]
[eval exp="bao.resetStage()"]
[eval exp="bao.hide()"]
[fadeoutbgm time=1000]
[SoundAllOut time=1000]
[text]………………………………………………[KeyWait]
[text]……………………[KeyWait]
[text]………[KeyWait]
[WindowOff]
[wait time=500]
[scenarioend]
[ljump storage="b-08.ks"]
*gameover
[BgmFadeOut time=1000]
[if exp="sf.HSceneMode==2 || !sf.R18"]
[wait time=1000]
[eval exp="bao.informLayer.hide()"]
[image page=back layer=0 storage="_black" visible=true]
[Update time=2000]
[image page=fore layer=0 storage="_black" visible=true]
[else]
[WindowOff]
[wait time=1000]
[endif]
;ステージの非表示
[eval exp="bao.resetStage()"]
[eval exp="bao.hide()"]
[eval exp="sf.gamePoint+=15"]
[ClearHistory]
[setSkipTarget storage=b-09.ks target='*sceneB-09end']
[lcall storage="b-09.ks" cond="sf.R18"]
[setSkipEnableFlag label='*sceneB-09end']
[SoundAllOut]
;コンティニューするかどうか
[eval exp="tf.result=askYesNo('コンティニューしますか?')"]
[jump target=*continue cond="tf.result==true"]
[scenarioend]
[cancelskip]
[if exp="!sf.R18"]
[BgmFadeOut time=2000]
[image page=back layer=0 storage="gameover" left=0 opacity=255 visible=true]
[update]
[wait time=2000 cond="kag.skipMode!=4"]
[else]
[wait time=1000 cond="kag.skipMode!=4"]
[endif]
[SoundAllStop]
[eval exp="kag.skipMode=0"]
[jump storage="0-01.ks"]
*continue
[BgSet storage="_black"]
[image page=back layer=0 storage="_black" visible=true]
[UpDate canskip=false]
[SoundAllStop]
[call target=*init]
[iscript]
switch(f.stageProgress){
case 0:
tf.storage = 'stage06_01.ssd';
tf.target = '*stageB-01ActionStage';
break;
case 1:
tf.storage = 'stage0a_01.ssd';
tf.target = '*stageB-02ActionStage';
break;
case 2:
tf.storage = 'stage0a_01.ssd';
tf.target = '*stageB-02ActionStage';
break;
case 3:
tf.storage = 'stage06_03.ssd';
tf.target = '*stageB-05';
break;
}
bao.addHighScore(f.score);
f.continue++;
f.score= 0 ;
tf.defeated = false;
bao.informLayer.resetFace();
[endscript]
[loadstage storage=&tf.storage target=*prepareContinue]
[runstage]
[waitstage]
[iscript]
tf.noFadeIn = false;
switch(f.stageProgress){
case 0:
bao.stageLayer.dispLeft = 0;
bao.conductor.goToLabel('*point0');
break;
case 1:
bao.stageLayer.dispLeft = 0;
bao.conductor.goToLabel('*point0');
break;
case 2:
bao.stageLayer.dispLeft = 4200;
bao.conductor.goToLabel('*point3');
break;
case 3:
tf.noFadeIn = true;
bao.conductor.goToLabel('*stage06-03');
break;
}
[endscript]
[playbgm storage="stage06"]
[if exp="!tf.noFadeIn"]
[freeimage page=back layer=0]
[UpDate canskip=false]
[endif]
[ClearHistory]
[eval exp="bao.informLayer.show()"]
[runstage]
[playerstate enablemove=true]
[jump target=&tf.target]
*init|Bルート『敵本拠地』
[iscript]
f.chaptertitle='';
f.inRouteB = true;
f.stage = 6;
if(sf.stage<f.stage) sf.stage=f.stage;
f.HP = [f.maxHP, f.maxHP];
f.MP = [f.maxMP, f.maxMP];
f.cosState = [4, 4];
f.downCount = [0, 0];
tf.killCount = [0, 0];
if(sf.routeB<2) sf.routeB = 2;
f.playerNum = [1, 1];
f.sexCount = [99, 99];
[endscript]
[return]