shiny-cuty-excel-chiffon/data/e-02.ks
2024-10-22 14:54:09 -05:00

702 lines
31 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

*scene_e-02|
[image page=back layer=0 storage="_black" visible=true]
[UpDate time=1]
[iscript]
f.HP = [f.maxHP, f.maxHP];
f.MP = [f.maxMP, f.maxMP];
f.cosState = [(sf.adjEvilCosMode)?4:0, (sf.adjEvilCosMode)?4:0];
[endscript]
[loadstage storage='stage0e_01.ssd']
*stageEx|ステージEx『夜の市街アリーナ』
[eval exp="f.chaptertitle=''"]
[record]
[runstage]
[waitstage]
[playbgm storage="stage07"]
[freeimage page=back layer=0]
[UpDate canskip=false]
*stageE-01
[playerstate enablemove=false]
[enemystate enablemove=false]
[setSkipTarget target='*stageE-01Start']
;ドット絵演出
[WindowOn]
[Face storage="f_f001"]
【Combatant】[CR]
「[i]Come on, violate them! Kill the men and violate the women![r]Take their energy completely![/i]」[KeyWait]
[FaceOff]
[Face storage="f_a205"]
[Voice storage="a4012" buf=2]
【Excel Chiffon】[CR]
「[v]As expected...[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b206"]
[Voice storage="b4011" buf=2]
【Excel Chocolat】[CR]
「[v]The Ergonia Empire... what are they plotting this time!?[/v]」[KeyWait]
[FaceOff]
[eval exp="tf.e1.inverseMode=true"][wait time=70]
[eval exp="tf.e0.inverseMode=true"][wait time=100]
[eval exp="tf.e2.inverseMode=true"]
[Face storage="f_f001"]
【Combatant 1】[CR]
「[i]What? A new woman? --No, it's you guys![/i]」[KeyWait]
[FaceOff]
[Face storage="f_f002"]
【Combatant 2】[CR]
「[i]Heh, you've come... do you want to be violated too? Fine,[r]I'll let you experience the ultimate pleasure.[/i]」[KeyWait]
[FaceOff]
[Face storage="f_a206"]
[Voice storage="a4013" buf=2]
【Excel Chiffon】[CR]
「[v]You're always the worst! No matter what you're thinking or[r]planning, we will never lose![/v]」[KeyWait]
[FaceOff]
[Face storage="f_b206"]
[Voice storage="b4012" buf=2]
【Excel Chocolat】[CR]
「[v]Just like Chiffon said! We will definitely protect everyone[r]from you![/v]」[KeyWait]
[FaceOff]
[Face storage="f_a229"]
[Voice storage="a4014" buf=2]
【Excel Chiffon】[CR]
「[v]Let's go![/v]」[KeyWait]
[FaceOff]
;アクションステージ開始
;シーン終了
*stageE-01Start
[eval exp="sf.routeE = 2" cond="sf.routeE<2"]
[setSkipEnableFlag]
[call target=`*init]
[SetSsdAtSkipNext storage=stage0e_01.ssd target=*skipped bgm=stage07 cond="!bao.enabled || bao.conductor.curStorage!='stage0e_01.ssd'"]
[if exp="tf.skipNextFlag"]
[eval exp="tf.e1.inverseMode=true"]
[eval exp="tf.e0.inverseMode=true"]
[eval exp="tf.e2.inverseMode=true"]
[endif]
[WindowOff]
[ClearHistory]
[eval exp="bao.informLayer.show()"]
[playerstate enablemove=true]
[enemystate enablemove=true]
[runstage]
*stageE-01ActionStage
;※この辺の記述はssd側の[retkag3][pause]とちゃんと対応させる必要があるので注意。
[waitstage]
[wait time=1500]
[eval exp="bao.informLayer.hide()"]
[playerstate enablemove=false]
[enemystate enablemove=false]
[iscript]
{
var t = '[load id=stForwardJump][wait frame=3][state nogravity=true shadow=false][move path=(300,0,400) haccel=-1 frame=10 spritestay=true]';
for(var i=0; i<bao.players.count; i++){
var p = bao.players[i];
p.movableRect.right = 2000;
p.turnToRight();
p.addQueue(t);
}
}
[endscript]
[image page=back layer=0 storage="_black" visible=true]
[UpDate canskip=false]
[iscript]
f.selectCharacter = bao.nowSelectingPlayerId;
storePlayerState();
bao.resetStage();
[endscript]
*stageE-02Start
; 公園へ
[eval exp="sf.routeE = 3" cond="sf.routeE<3"]
[loadstage storage='stage0e_02.ssd']
[runstage]
[waitstage]
[iscript]
p0.altitude = 30;
p0.rootX -= 30;
p0.addQueue("[move path=(30,0,-30) haccel=1]");
p1.altitude = 30;
p1.rootX -= 30;
p1.addQueue("[move path=(30,0,-30) haccel=1]");
[endscript]
[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]
*stageE-02ActionStage
[waitstage]
[wait time=1500]
[fadeoutbgm time=500]
[image page=back layer=0 storage="_black" visible=true]
[UpDate canskip=false]
[iscript]
f.selectCharacter = bao.nowSelectingPlayerId;
storePlayerState();
bao.resetStage();
bao.selectIndicator.layer.type = ltAlpha;
[endscript]
[loadstage storage='stage0e_03.ssd']
[runstage]
[waitstage]
*stageE-03
; アリーナ内リング
[if exp="bao.nowSelectingPlayerId != f.selectCharacter"]
[eval exp="bao.exchangePlayer()"]
[endif]
[playerstate enablemove=false]
[enemystate enablemove=false]
;[waitstable]
[eval exp="bao.informLayer.hideSoon()"]
;[freeimage page=back layer=0]
;[UpDate canskip=false]
;[ClearHistory]
[eval exp="sf.stage=3.9" cond="sf.stage<3.9"]
[setSkipTarget target='*StageExBossStart']
[playbgm storage="boss1"]
[eval exp="sf.routeE = 4" cond="sf.routeE<4"]
;■#E-
[image page=back layer=1 storage="bg230" visible=true]
;[Update]
[ChrSet0 storage="bg230"]
[ChrSet2 storage="b_a203"]
[ChrSet1 storage="b_b202"]
[Update]
[WindowOn]
[Face storage="f_a230"]
[Voice storage="a4015" buf=2]
【Excel Chiffon】[CR]
「[v]Where is this...?[/v]」[KeyWait]
[FaceOff]
[Face storage="f_b229"]
[Voice storage="b4013" buf=2]
【Excel Chocolat】[CR]
「[v]Isn't that... a ring like the ones in pro wrestling?[/v]」[KeyWait]
[FaceOff]
[Face storage="f_a205"]
[Voice storage="a4016" buf=2]
【Excel Chiffon】[CR]
「[v]Yeah. But why is there a ring here? And there are so many[r]combatants around... what is this...?[/v]」[KeyWait]
[FaceOff]
[Face storage="f_u003"]
【???】[CR]
「[i][???]: Of course—[/i]」[KeyWait]
[FaceOff]
[Face storage="f_v003"]
【???】[CR]
「[i][???]: It's prepared to make a bloodbath out of you![/i]」[KeyWait]
[FaceOff]
[iscript]
p0.altitude = 30;
p0.rootX -= 30;
p0.addQueue("[move path=(30,0,-30) haccel=1]");
p1.altitude = 30;
p1.rootX -= 30;
p1.addQueue("[move path=(30,0,-30) haccel=1]");
[endscript]
;怪人二体出現
[ChrReset0]
[ChrReset1]
[ChrReset2]
[UpDate]
[eval exp="f.stageProgress=4"]
[Face storage="f_b229"]
[Voice storage="b4014" buf=2]
【Excel Chocolat】[CR]
「[v]Huh? You are... Devil Orc...!?[/v]」[KeyWait]
[FaceOff]
[Face storage="f_a230"]
[Voice storage="a4017" buf=2]
【Excel Chiffon】[CR]
「[v]We should have defeated you before... and there are two of[r]you...?[/v]」[KeyWait]
[FaceOff]
[Face storage="f_u001"]
【Death Orc】[CR]
「[i]No, we're not Devil Orcs! I'm Death Orc!![/i]」[KeyWait]
[FaceOff]
[Face storage="f_v001"]
【Hell Orc】[CR]
「[i]And I'm Hell Orc![/i]」[KeyWait]
[FaceOff]
[Face storage="f_a230"]
[Voice storage="a4018" buf=2]
【Excel Chiffon】[CR]
「[v]Death Orc and Hell Orc...[/v]」[KeyWait]
[FaceOff]
[Face storage="f_u001"]
【Death Orc】[CR]
「[i]It seems our brother was quite indebted to you![/i]」[KeyWait]
[FaceOff]
[Face storage="f_v001"]
【Hell Orc】[CR]
「[i]We'll repay that debt in full![/i]」[KeyWait]
[FaceOff]
[Face storage="f_b229"]
[Voice storage="b4015" buf=2]
【Excel Chocolat】[CR]
「[v]Brother... so you're Devil Orc's siblings.[/v]」[KeyWait]
[FaceOff]
[Face storage="f_a230"]
[Voice storage="a4019" buf=2]
【Excel Chiffon】[CR]
「[v]And what's with all the 'buhis'... I don't think Devil Orc[r]was like that...[/v]」[KeyWait]
[FaceOff]
[Face storage="f_u001"]
【Death Orc】[CR]
「[i]Adding 'buhis' is the pride of the Orc clan! Our brother,[r]who discarded it because he thought it was uncool, is a[r]disgrace to the Orc clan![/i]」[KeyWait]
[FaceOff]
[Face storage="f_v001"]
【Hell Orc】[CR]
「[i]Even so, he's still our brother—so we must repay the debt he[r]owes![/i]」[KeyWait]
[FaceOff]
[Face storage="f_u001"]
【Death Orc】[CR]
「[i]That's why we prepared this ring! Isn't this the arena of[r]this world? It's perfect![/i]」[KeyWait]
[FaceOff]
[Face storage="f_v001"]
【Hell Orc】[CR]
「[i]In front of the audience, we'll make a bloodbath out of you![/i]」[KeyWait]
[FaceOff]
[Face storage="f_b229"]
[Voice storage="b4016" buf=2]
【Excel Chocolat】[CR]
「[v]I see... so that's what it is. But...[/v]」[KeyWait]
[FaceOff]
[Face storage="f_a206"]
[Voice storage="a4020" buf=2]
【Excel Chiffon】[CR]
「[v]Yeah, no matter what you're thinking, we will never lose![/v]」[KeyWait]
[FaceOff]
[Face storage="f_v001"]
【Hell Orc】[CR]
「[i]Is that so?[/i]」[KeyWait]
[FaceOff]
[Face storage="f_b206"]
[Voice storage="b4017" buf=2]
【Excel Chocolat】[CR]
「[v]Chiffon![/v]」[KeyWait]
[FaceOff]
[Face storage="f_a229"]
[Voice storage="a4021" buf=2]
【Excel Chiffon】[CR]
「[v]Yeah... Chocolat, let's take them down together![/v]」[KeyWait]
[FaceOff]
;戦闘開始
*StageExBossStart
[setSkipEnableFlag]
[if exp="f.stageProgress<4"]
[freeimage page=back layer=0]
[freeimage page=back layer=1]
[freeimage page=back layer=2]
[UpDate time=200]
[endif]
[WindowOff]
[ClearHistory]
[eval exp="bao.informLayer.show()"]
[playerstate enablemove=true]
[enemystate enablemove=true]
[runstage]
*stageE-03b
[waitstage cond="bao.returnState!='clear'"]
[jump target=*clear]
*missed
[playerstate enablemove=false]
[enemystate enablemove=false]
[ClearHistory]
[iscript]
{
var flag = (sf.adjSinglePlayMode || (bao.players[0].HP <= 0 && bao.players[1].HP <= 0));
tf.deadBoss = "";
if(flag && tf.deathorc !== void && isvalid tf.deathorc && tf.deathorc.HP < 0){
tf.deadBoss = "デスオーク";
tf.deathorc.HP = tf.deathorc.maxHP / 4;
if(tf.deathorc.lastSpriteId==stThrown2 || tf.deathorc.lastSpriteId==stThrown4){
tf.deathorc.loadSprite(stStandUp2);
}else{
tf.deathorc.loadSprite(stStandUp);
}
tf.deathorc.isBoss = true;
}
if(flag && tf.hellorc !== void && isvalid tf.hellorc && tf.hellorc.HP < 0){
tf.deadBoss = "ヘルオーク";
tf.hellorc.HP = tf.hellorc.maxHP / 4;
if(tf.hellorc.lastSpriteId==stThrown2 || tf.hellorc.lastSpriteId==stThrown4){
tf.hellorc.loadSprite(stStandUp2);
}else{
tf.hellorc.loadSprite(stStandUp);
}
tf.hellorc.isBoss = true;
}
}
[endscript]
[eval exp="sf.gamePoint+=3"]
[call storage="defeatedHScene.ks"]
[jump target=*clear cond="tf.doubleKO"]
[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
[wait time=1000]
[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]
[iscript]
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;
// bao.players[i].lookTo(bao.enemies[0]);
}
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(f.defeatedCountInThisStage == 0){
p.addQueue('[wait frame=15][load id=stWinning]');
}
}
[endscript]
[call storage=resultScreen.ks]
;[if exp="(f.sexCount[0]+f.sexCount[1])==0 && f.cosBroken==false && !sf.mission['ステージ1']"]
; [eval exp="sf.mission['ステージ1']=1"]
; [eval exp="toast(getMissionClearText('ステージ1'))"]
; [eval exp="checkMissionAllClear()"]
;[endif]
[iscript]
// キメポーズから直る
for(var i=0; i<bao.players.count; i++){
bao.players[i].layer.trigger('end');
}
[endscript]
*stageE-03c
[ClearHistory]
[eval exp="sf.routeE = 5" cond="sf.routeE<5"]
[ljump storage="e-03b.ks" cond="f.defeatedCountInThisStage > 0"]
[ljump storage="e-03a.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=e-04.ks target='*scene_e-04end']
[lcall storage="e-04.ks" cond="sf.R18"]
[setSkipEnableFlag label='*scene_e-04end']
[SoundAllOut]
;コンティニューするかどうか
;(コンティニュー回数制限は削除)
[scenarioend]
[WindowOff]
[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:
case 1:
tf.storage = 'stage0e_01.ssd';
tf.target = '*stageE-01ActionStage';
break;
case 2:
case 3:
tf.storage = 'stage0e_02.ssd';
tf.target = '*stageE-02ActionStage';
break;
case 4:
tf.storage = 'stage0e_03.ssd';
tf.target = '*stageE-03';
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 = 2000-456;
bao.conductor.goToLabel('*point1');
break;
case 2:
bao.stageLayer.dispLeft = 0;
bao.conductor.goToLabel('*point0');
// tf.noFadeIn = true;
break;
case 3:
bao.stageLayer.dispLeft = 3700-456;
bao.conductor.goToLabel('*point1');
break;
case 4:
bao.stageLayer.dispLeft = (1000-456) / 2;
bao.conductor.goToLabel('*stage0e-03a');
tf.noFadeIn = true;
break;
}
[endscript]
[playbgm storage="stage07"]
[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|ステージEx『夜の市街アリーナ』
[iscript]
f.chaptertitle='';
f.stage = 3.8;
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];
[endscript]
[return]