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

792 lines
34 KiB
Text


[call target=*init]
;ステージスクリプトのロード
[loadstage storage='stage06_01.ssd']
[image page=back layer=0 storage="_black" visible=true]
[UpDate time=1]
*stageA_start|Aルート『敵本拠地』
[eval exp="f.chaptertitle=''"]
[record]
[runstage]
[waitstage]
[playbgm storage="stage06"]
[freeimage page=back layer=0]
[UpDate canskip=false]
*stageA-01
[playerstate enablemove=false]
[enemystate enablemove=false]
[setSkipTarget target='*stageA-01Start']
[WindowOn]
[Face storage="f_b206"]
[Voice storage="b0923" buf=2]
【Excel Chocolat】[CR]
「[v]Now then...[/v]」[KeyWait]
[FaceOff]
[Face storage="f_a206"]
[Voice storage="a1076" buf=2]
【Excel Chiffon】[CR]
「[v]Let's go!![/v]」[KeyWait]
[FaceOff]
*stageA-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]
*stageA-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]
*stageA-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]
*stageA-02ActionStage
[waitstage]
*stageA-03
[playerstate enablemove=false]
[enemystate enablemove=false]
;[waitstable]
[ClearHistory]
[fadeoutbgm time=250]
[eval exp="bao.informLayer.hide()"]
[eval exp="sf.routeA=3" cond="sf.routeA<3"]
[runstage]
[waitstage]
[playbgm storage="boss1"]
[wait time=1000 canskip=false cond="tf.beizel !== void && isvalid tf.beizel && tf.beizel.rootX > bao.internalWidth-30"]
[setSkipTarget target='*stageABossStart']
[WindowOn]
[Face storage="f_d001"]
【Bezel】[CR]
「[i]That's far enough.[/i]」[KeyWait]
[FaceOff]
[Face storage="f_b229"]
[Voice storage="b0403" buf=2]
【Excel Chocolat】[CR]
「[v]Who are you!?[/v]」[KeyWait]
[FaceOff]
;[ChrSet0 storage="bg130"]
[ChrSet1 storage="b_d001" pos=c]
[Update]
[Face storage="f_d001"]
【Bezel】[CR]
「[i]Me? 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_d001"]
【Bezel】[CR]
「[i]I'm curious how you broke the curse... I will[r]personally defeat you and analyze everything about you.[/i]」[KeyWait]
[FaceOff]
[Face storage="f_a207"]
[Voice storage="a0497" buf=2]
【Excel Chiffon】[CR]
「[v]We won't let you do that! We will never lose![/v]」[KeyWait]
[FaceOff]
[runstage]
[waitstage]
[ChrReset0]
[ChrReset1]
[Update]
[Face storage="f_d001"]
【Bezel】[CR]
「[i]...Then, prove it![/i]」[KeyWait]
[FaceOff]
*stageABossStart
[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]
*stageA-03b
[waitstage]
*stageA-04
[playerstate enablemove=false]
[enemystate enablemove=false]
[eval exp="bao.informLayer.hide()"]
;[ClearHistory]
[setSkipTarget target='*stageABoss2Start']
[WindowOn]
; 勝利
[Face storage="f_d001"]
【Bezel】[CR]
「[i]Gah... Guaaaaaa...[/i]」[KeyWait]
[FaceOff]
[Face storage="f_a229"]
[Voice storage="a0498" buf=2]
【Excel Chiffon】[CR]
「[v]Our――[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b207"]
[Voice storage="b0404" buf=2]
【Excel Chocolat】[CR]
「[v]Victory.[/v]」[KeyWait]
[FaceOff]
[eval exp="tf.beizel.layer.trigger('erase')"]
[Face storage="f_d001"]
【Bezel】[CR]
「[i]Impossible... I... this... Guaaaa! Reviella-sama...[r]I'm... sorry...[/i]」[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]
*stageA-05
; 第三階層
[playerstate enablemove=false]
[enemystate enablemove=false]
[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.routeA=4" cond="sf.routeA<4"]
[WindowOn]
[eval exp="f.stageProgress=3"]
;;6-02
;;ボス戦
[Face storage="f_c008"]
[Voice storage="c0149" buf=3]
【Reviella】[CR]
「[v]I can't believe it... Hehe, to escape from that[r]situation and even reach me... I'm honestly a bit[r]surprised.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_a206"]
[Voice storage="a1077" buf=2]
【Excel Chiffon】[CR]
「[v]We... won't lose! Absolutely not.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b206"]
[Voice storage="b0924" buf=2]
【Excel Chocolat】[CR]
「[v]That's right... We will win! Reviella... we will defeat[r]you! And we will definitely protect this world!![/v]」[KeyWait]
[FaceOff]
[Face storage="f_a206"]
[Voice storage="a1078" buf=2]
【Excel Chiffon】[CR]
「[v]Your ambitions end here![/v]」[KeyWait]
[FaceOff]
[Face storage="f_c007"]
[Voice storage="c0150" buf=3]
【Reviella】[CR]
「[v]Won't lose? Ambitions end here? Hehe... hahahaha.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b206"]
[Voice storage="b0925" buf=2]
【Excel Chocolat】[CR]
「[v]What's so funny!?[/v]」[KeyWait]
[FaceOff]
[Face storage="f_c008"]
[Voice storage="c0151" buf=3]
【Reviella】[CR]
「[v]What's funny... is that after being so thoroughly[r]violated and moaning in ecstasy... how is this not[r]ridiculous?[/v]」[KeyWait]
[FaceOff]
[Face storage="f_c008"]
[Voice storage="c0152" buf=3]
【Reviella】[CR]
「[v]A mere woman who enjoys being violated thinks she can[r]defeat me? Don't be ridiculous... well, let me teach[r]you. The reality that you're just meat dolls meant to[r]be violated and moan.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_c010"]
[Voice storage="c0153" buf=3]
【Reviella】[CR]
「[v]You can never defeat me! I'll thoroughly educate you on[r]that fact!![/v]」[KeyWait]
[FaceOff]
*stageABoss2Start
[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]
*stageABoss2Battle
[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=*stageA-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;
}
if(f.defeatedCountInThisStage == 0){
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]
*stageA-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.routeA=5" cond="sf.routeA<5"]
[eval exp="bao.conductor.goToLabel('*stage06-04a');"]
[runstage]
*stageA-06b
[waitstage]
*stageA-06c
[ClearHistory]
[setSkipEnableFlag label='*sceneA-07end' cond="sf.kaisouOpenFlag['a06']"][setSkipTarget storage=a-07.ks target='*sceneA-07end']
[playbgm storage=bgm009]
[freeimage page=back layer=0]
[UpDate canskip=false]
[WindowOn]
[Face storage="f_c003"]
[Voice storage="c0154" buf=2]
【Reviella】[CR]
「[v]Ahh... Impossible... I, to these little girls...[/v]」[KeyWait]
[FaceOff]
[Face storage="f_a207"]
[Voice storage="a1079" buf=2]
【Excel Chiffon】[CR]
「[v]It's our victory![/v]」[KeyWait]
[FaceOff]
[Face storage="f_b207"]
[Voice storage="b0926" buf=2]
【Excel Chocolat】[CR]
「[v]Reviella... it's over.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_c003"]
[Voice storage="c0155" buf=2]
【Reviella】[CR]
「[v]Ugh... No... not yet!![/v]」[KeyWait]
[FaceOff]
;なんかレヴィエラが力を使って爆発
;ホワイトアウト
;すぐに画面再開
;レヴィエラは消えている
[Sound storage=se013 buf=0]
[image page=back layer=0 storage="_white" visible=true]
[UpDate canskip=false]
[eval exp="bao.resetObjects()"]
[freeimage page=back layer=0]
[UpDate canskip=false]
[Face storage="f_a230"]
[Voice storage="a1080" buf=2]
【Excel Chiffon】[CR]
「[v]Huh? Where's Reviella!?[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b236"]
[Voice storage="b0927" buf=2]
【Excel Chocolat】[CR]
「[v]She's gone!?[/v]」[KeyWait]
[FaceOff]
[Face storage="f_c211"]
[Voice storage="c0156" buf=2]
【Reviella】[CR]
『[v]Remember this, little girls... This time, it's my loss.[r]But... but... it won't end like this. Someday...[r]definitely...[/v]』[KeyWait]
[FaceOff]
[Face storage="f_b206"]
[Voice storage="b0928" buf=2]
【Excel Chocolat】[CR]
「[v]Are you planning to escape!?[/v]」[KeyWait]
[FaceOff]
[Face storage="f_a207"]
[Voice storage="a1081" buf=2]
【Excel Chiffon】[CR]
「[v]No, we can't let her――[/v]」[KeyWait]
[FaceOff]
;爆発音
;画面揺れ
[runstage]
*stageA-06d
[waitstage]
[Face storage="f_a244"]
[Voice storage="a1082" buf=2]
【Excel Chiffon】[CR]
「[v]Huh? Ah... what!?[/v]」[KeyWait]
[FaceOff]
;爆発エフェクト発生
[eval exp="bao.setObject(%['storage'=>'stage06_explode','x'=>0,'y'=>0,'shadow'=>false])"]
[wait time=500]
[Face storage="f_b237"]
[Voice storage="b0929" buf=2]
【Excel Chocolat】[CR]
「[v]S-Self-destruct...? No way... she's going to take us[r]and this base with her!?[/v]」[KeyWait]
[FaceOff]
[Face storage="f_a244"]
[Voice storage="a1083" buf=2]
【Excel Chiffon】[CR]
「[v]This is bad! We need to escape.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b246"]
[Voice storage="b0930" buf=2]
【Excel Chocolat】[CR]
「[v]Damn... Reviella got away... But, it can't be helped.[r]Let's go, Chiffon![/v]」[KeyWait]
[FaceOff]
[Face storage="f_a229"]
[Voice storage="a1084" buf=2]
【Excel Chiffon】[CR]
「[v]Yeah![/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="a-07.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=a-08.ks target='*sceneA-08end']
[lcall storage="a-08.ks" cond="sf.R18"]
[setSkipEnableFlag label='*sceneA-08end']
[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 = '*stageA-01ActionStage';
break;
case 1:
tf.storage = 'stage0a_01.ssd';
tf.target = '*stageA-02ActionStage';
break;
case 2:
tf.storage = 'stage0a_01.ssd';
tf.target = '*stageA-02ActionStage';
break;
case 3:
tf.storage = 'stage06_03.ssd';
tf.target = '*stageA-05';
break;
}
bao.addHighScore(f.score);
f.continue++;
f.playerNum = [sf.adjPlayerNum, sf.adjPlayerNum];
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|Aルート『敵本拠地』
[iscript]
f.chaptertitle='';
f.inRouteA = 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 = [(sf.adjEvilCosMode)?4:0, (sf.adjEvilCosMode)?4:0];
f.downCount = [0, 0];
tf.killCount = [0, 0];
if(sf.routeA<2) sf.routeA = 2;
f.sexCount = [99, 99];
[endscript]
[return]