HELL YEAH ACT 4 SPRITES PRETTY MUCH INTEGRATED
|
@ -267,6 +267,7 @@
|
||||||
<script src="scripts/game/Options.js"></script>
|
<script src="scripts/game/Options.js"></script>
|
||||||
<script src="scripts/game/About.js"></script>
|
<script src="scripts/game/About.js"></script>
|
||||||
|
|
||||||
|
<!-- INTRO -->
|
||||||
<script src="scripts/intro/Intro_SceneSetup.js"></script>
|
<script src="scripts/intro/Intro_SceneSetup.js"></script>
|
||||||
<script src="scripts/intro/Intro_BG.js"></script>
|
<script src="scripts/intro/Intro_BG.js"></script>
|
||||||
|
|
||||||
|
@ -291,6 +292,8 @@
|
||||||
<!-- ACT IV -->
|
<!-- ACT IV -->
|
||||||
<script src="scripts/act4/Act4_SceneSetup.js"></script>
|
<script src="scripts/act4/Act4_SceneSetup.js"></script>
|
||||||
<script src="scripts/act4/Act4_BG.js"></script>
|
<script src="scripts/act4/Act4_BG.js"></script>
|
||||||
|
<script src="scripts/act4/Act4_Hong.js"></script>
|
||||||
|
<script src="scripts/act4/Act4_Beebee.js"></script>
|
||||||
|
|
||||||
<!-- CREDITS -->
|
<!-- CREDITS -->
|
||||||
<script src="scripts/credits/Credits_SceneSetup.js"></script>
|
<script src="scripts/credits/Credits_SceneSetup.js"></script>
|
||||||
|
|
|
@ -1,256 +0,0 @@
|
||||||
# act2
|
|
||||||
|
|
||||||
`SceneSetup.act2();`
|
|
||||||
|
|
||||||
a: hack
|
|
||||||
|
|
||||||
(#act2-preamble-end)
|
|
||||||
|
|
||||||
|
|
||||||
# act2-preamble-end
|
|
||||||
|
|
||||||
```
|
|
||||||
Game.clearText();
|
|
||||||
publish("act2-out-1");
|
|
||||||
music(null, {fade:1});
|
|
||||||
```
|
|
||||||
|
|
||||||
(...3000)
|
|
||||||
|
|
||||||
```
|
|
||||||
music('battle', {volume:0.5});
|
|
||||||
publish("hp_show");
|
|
||||||
```
|
|
||||||
|
|
||||||
n: ROUND TWO: *FIGHT!*
|
|
||||||
|
|
||||||
```
|
|
||||||
bb({
|
|
||||||
body: "cry_6",
|
|
||||||
mouth: "right",
|
|
||||||
eyes: "cry_r_3"
|
|
||||||
});
|
|
||||||
hong({
|
|
||||||
body:"defeated"
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
b: I just... all I want is for you to be patient with me.
|
|
||||||
|
|
||||||
```
|
|
||||||
bb({
|
|
||||||
eyes: "cry_r_4"
|
|
||||||
});
|
|
||||||
hong({
|
|
||||||
body:"listen"
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
r: Hey.
|
|
||||||
|
|
||||||
```
|
|
||||||
Game.clearText();
|
|
||||||
publish("act2-in-2");
|
|
||||||
publish("hp_hide");
|
|
||||||
music('party1', {volume:0.4, fade:2});
|
|
||||||
```
|
|
||||||
|
|
||||||
(...1300)
|
|
||||||
|
|
||||||
r: Looks like you're caught in a fight with yourself, kid.
|
|
||||||
|
|
||||||
```
|
|
||||||
publish("act2", ["party_hunter",12]);
|
|
||||||
publish("act2", ["party_hong",24]);
|
|
||||||
```
|
|
||||||
|
|
||||||
r: Bottoms up, motherfucker.
|
|
||||||
|
|
||||||
```
|
|
||||||
hong({
|
|
||||||
body:"hold",
|
|
||||||
eyes:"blank"
|
|
||||||
});
|
|
||||||
bb({
|
|
||||||
body:"normal",
|
|
||||||
mouth:"small",
|
|
||||||
eyes:"wat"
|
|
||||||
});
|
|
||||||
Game.clearText();
|
|
||||||
publish("act2-out-3");
|
|
||||||
publish("hp_show");
|
|
||||||
```
|
|
||||||
|
|
||||||
(...3500)
|
|
||||||
|
|
||||||
b: I'm so sorry, human.
|
|
||||||
|
|
||||||
b: I'm going to have to use my SPECIAL ATTACK
|
|
||||||
|
|
||||||
```
|
|
||||||
music('battle', {volume:0.5});
|
|
||||||
bb({body:"special_a"});
|
|
||||||
```
|
|
||||||
|
|
||||||
`Game.OVERRIDE_CHOICE_SPEAKER = "fear_harm"`
|
|
||||||
|
|
||||||
[](#act2h_attack) `_.SPECIAL_ATTACK="harm"; Game.OVERRIDE_CHOICE_LINE=true`
|
|
||||||
|
|
||||||
`Game.OVERRIDE_CHOICE_SPEAKER = "fear_alone"`
|
|
||||||
|
|
||||||
[](#act2h_attack) `_.SPECIAL_ATTACK="alone"; Game.OVERRIDE_CHOICE_LINE=true`
|
|
||||||
|
|
||||||
`Game.OVERRIDE_CHOICE_SPEAKER = "fear_bad"`
|
|
||||||
|
|
||||||
[](#act2h_attack) `_.SPECIAL_ATTACK="bad"; Game.OVERRIDE_CHOICE_LINE=true`
|
|
||||||
|
|
||||||
# act2h_attack
|
|
||||||
|
|
||||||
```
|
|
||||||
bb({body:"special_b_1"});
|
|
||||||
```
|
|
||||||
|
|
||||||
h: What's this crap?
|
|
||||||
|
|
||||||
h: You're gonna yap more stupid words at me again to try t--
|
|
||||||
|
|
||||||
```
|
|
||||||
bb({body:"special_c"});
|
|
||||||
sfx("hadouken");
|
|
||||||
```
|
|
||||||
|
|
||||||
(...901)
|
|
||||||
|
|
||||||
(#act2i)
|
|
||||||
|
|
||||||
# act2i
|
|
||||||
|
|
||||||
```
|
|
||||||
publish("show_special_attack");
|
|
||||||
Game.FORCE_CANT_SKIP = true;
|
|
||||||
music(null);
|
|
||||||
stopAllSounds();
|
|
||||||
```
|
|
||||||
|
|
||||||
(...5000)
|
|
||||||
|
|
||||||
```
|
|
||||||
hong({
|
|
||||||
body:"final",
|
|
||||||
mouth:"final"
|
|
||||||
});
|
|
||||||
bb({
|
|
||||||
body:"normal",
|
|
||||||
mouth:"normal",
|
|
||||||
eyes:"sad_2"
|
|
||||||
});
|
|
||||||
attack("100p", _.SPECIAL_ATTACK);
|
|
||||||
Game.FORCE_CANT_SKIP = false;
|
|
||||||
setTimeout(function(){
|
|
||||||
publish("remove_special_attack");
|
|
||||||
},30);
|
|
||||||
```
|
|
||||||
|
|
||||||
(...2500)
|
|
||||||
|
|
||||||
h: WHAT THE HELL WAS THAT
|
|
||||||
|
|
||||||
b: PUNCH THEM PUNCH THEM PUNCH THEM PUNCH THEM PUNCH THEM PUNCH THEM PUNCH THEM PUNCH THE--
|
|
||||||
|
|
||||||
`_.a2_ending = "fight";`
|
|
||||||
|
|
||||||
(#act2k)
|
|
||||||
|
|
||||||
# act2k
|
|
||||||
|
|
||||||
```
|
|
||||||
Game.clearText();
|
|
||||||
publish("act2-in-4");
|
|
||||||
publish("hp_hide");
|
|
||||||
music('party1', {volume:0.6, fade:1.5});
|
|
||||||
```
|
|
||||||
|
|
||||||
(...2200)
|
|
||||||
|
|
||||||
r: You alright, kid?
|
|
||||||
|
|
||||||
```
|
|
||||||
publish("act2", ["party_hunter",19]);
|
|
||||||
publish("act2", ["party_hong",36]);
|
|
||||||
```
|
|
||||||
|
|
||||||
r: I like that. Come to my party next weekend, cutie.
|
|
||||||
|
|
||||||
(#act2k_end)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# act2k_end
|
|
||||||
|
|
||||||
```
|
|
||||||
Game.clearText();
|
|
||||||
publish("act2-out-5");
|
|
||||||
music("hum", {fade:2, volume:0.6});
|
|
||||||
```
|
|
||||||
|
|
||||||
(...2500)
|
|
||||||
|
|
||||||
```
|
|
||||||
sfx("whoosh");
|
|
||||||
publish("act2", ["act2_end",2]);
|
|
||||||
```
|
|
||||||
|
|
||||||
(...800)
|
|
||||||
|
|
||||||
b: Human! Are you okay?!
|
|
||||||
|
|
||||||
b: Gosh, that was *close.* We really could've--
|
|
||||||
|
|
||||||
```
|
|
||||||
Game.clearText();
|
|
||||||
publish("act2-outro", ["end3"]);
|
|
||||||
music(null);
|
|
||||||
sfx("squeak");
|
|
||||||
```
|
|
||||||
|
|
||||||
(...1500)
|
|
||||||
|
|
||||||
```
|
|
||||||
publish("act2-outro", ["end4"]);
|
|
||||||
sfx("hit");
|
|
||||||
```
|
|
||||||
|
|
||||||
(...1000)
|
|
||||||
|
|
||||||
h: I'm going to the party next weekend.
|
|
||||||
|
|
||||||
h: The next time we fight, I'm not just going to *defeat* you...
|
|
||||||
|
|
||||||
h: I'm going to fucking *kill* you.
|
|
||||||
|
|
||||||
```
|
|
||||||
Game.clearText();
|
|
||||||
publish("act2-outro", ["end5"]);
|
|
||||||
sfx("grass_step1");
|
|
||||||
````
|
|
||||||
|
|
||||||
(...901)
|
|
||||||
|
|
||||||
```
|
|
||||||
sfx("grass_step2", {volume:0.8});
|
|
||||||
publish("act2-outro", ["end6"]);
|
|
||||||
```
|
|
||||||
|
|
||||||
(...901)
|
|
||||||
|
|
||||||
`sfx("grass_step1", {volume:0.5});`
|
|
||||||
|
|
||||||
(...901)
|
|
||||||
|
|
||||||
`sfx("grass_step2", {volume:0.25});`
|
|
||||||
|
|
||||||
(...3000)
|
|
||||||
|
|
||||||
`_.INTERMISSION_STAGE = 2;`
|
|
||||||
|
|
||||||
(#intermission)
|
|
137
scenes/act4.md
|
@ -2,21 +2,142 @@
|
||||||
|
|
||||||
```
|
```
|
||||||
SceneSetup.act4();
|
SceneSetup.act4();
|
||||||
|
Game.FORCE_CANT_SKIP = true;
|
||||||
```
|
```
|
||||||
|
|
||||||
(...5001)
|
(...1001)
|
||||||
|
|
||||||
`publish("outside-hong", ["walk"])`
|
```
|
||||||
|
/* (...5001) */
|
||||||
|
var hong_frame = _.INJURED ? 9 : 0;
|
||||||
|
publish("act4", ["hong_walks_in",hong_frame]);
|
||||||
|
```
|
||||||
|
|
||||||
(...2001)
|
(...666)
|
||||||
|
|
||||||
`publish("outside-hong", ["eat"])`
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
(...2001)
|
(...666)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...666)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...666)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...1667)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...666)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...666)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...1333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...167)
|
||||||
|
|
||||||
|
`publish("act4_hong_sits");`
|
||||||
|
|
||||||
|
(...66)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...133)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...1333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...1001)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", 9]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", 10]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", 9]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", 10]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", 9]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", 10]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...1466)
|
||||||
|
|
||||||
`publish("act4-out-1");`
|
`publish("act4-out-1");`
|
||||||
|
|
||||||
(...2001)
|
(...201)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
`Game.FORCE_CANT_SKIP = false;`
|
`Game.FORCE_CANT_SKIP = false;`
|
||||||
|
|
||||||
|
@ -24,7 +145,7 @@ h: *sigh*
|
||||||
|
|
||||||
h: So what the hell was the moral of this story?
|
h: So what the hell was the moral of this story?
|
||||||
|
|
||||||
h: What did we even *learn*? I *was* being stupid, my "friends" *were* using me, and we almost fucking *died*.
|
h: What did we even *learn*? I *was* being stupid, my "friends" *were* using me, and we almost goddamn *died*.
|
||||||
|
|
||||||
{{if _.INJURED}}
|
{{if _.INJURED}}
|
||||||
[Yeah, not to mention the hospital bill.](#act4a_bill)
|
[Yeah, not to mention the hospital bill.](#act4a_bill)
|
||||||
|
@ -994,6 +1115,8 @@ b: I want to be the alarm for your emotional needs – your needs for safety, be
|
||||||
|
|
||||||
b: But... I suck at my job, so I need you to train me.
|
b: But... I suck at my job, so I need you to train me.
|
||||||
|
|
||||||
|
b: Help me help you.
|
||||||
|
|
||||||
b: Teaching an old dog new tricks *will* take a while. Maybe *years.*
|
b: Teaching an old dog new tricks *will* take a while. Maybe *years.*
|
||||||
|
|
||||||
b: And sometimes I'll relapse, I'll slip into my old habits.
|
b: And sometimes I'll relapse, I'll slip into my old habits.
|
||||||
|
|
|
@ -0,0 +1,514 @@
|
||||||
|
# act4
|
||||||
|
|
||||||
|
```
|
||||||
|
SceneSetup.act4();
|
||||||
|
Game.FORCE_CANT_SKIP = true;
|
||||||
|
```
|
||||||
|
|
||||||
|
(...1001)
|
||||||
|
|
||||||
|
```
|
||||||
|
/* (...5001) */
|
||||||
|
var hong_frame = _.INJURED ? 9 : 0;
|
||||||
|
publish("act4", ["hong_walks_in",hong_frame]);
|
||||||
|
```
|
||||||
|
|
||||||
|
(...666)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...666)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...666)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...666)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...1667)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...666)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...666)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...1333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_walks_in", "next"]);`
|
||||||
|
|
||||||
|
(...167)
|
||||||
|
|
||||||
|
`publish("act4_hong_sits");`
|
||||||
|
|
||||||
|
(...66)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...133)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...1333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...1001)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", 9]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", 10]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", 9]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", 10]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", 9]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", 10]);`
|
||||||
|
|
||||||
|
(...333)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...1466)
|
||||||
|
|
||||||
|
`publish("act4-out-1");`
|
||||||
|
|
||||||
|
(...201)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
`publish("act4", ["hong_transition", "next"]);`
|
||||||
|
|
||||||
|
(...99)
|
||||||
|
|
||||||
|
```
|
||||||
|
publish("act4-show-chars");
|
||||||
|
Game.FORCE_CANT_SKIP = false;
|
||||||
|
```
|
||||||
|
|
||||||
|
h: *sigh*
|
||||||
|
|
||||||
|
h: Maybe we don't have to fight.
|
||||||
|
|
||||||
|
```
|
||||||
|
Game.FORCE_CANT_SKIP = true;
|
||||||
|
Game.clearText();
|
||||||
|
```
|
||||||
|
|
||||||
|
(...301)
|
||||||
|
|
||||||
|
`publish("smash",[0]);`
|
||||||
|
|
||||||
|
(...2001)
|
||||||
|
|
||||||
|
```
|
||||||
|
publish("smash",[1]);
|
||||||
|
sfx("grass_step1");
|
||||||
|
```
|
||||||
|
|
||||||
|
(...2601)
|
||||||
|
|
||||||
|
`publish("smash",[2]);`
|
||||||
|
|
||||||
|
(...501)
|
||||||
|
|
||||||
|
`Game.FORCE_CANT_SKIP = false;`
|
||||||
|
|
||||||
|
(#act4b_2)
|
||||||
|
|
||||||
|
# act4b_2
|
||||||
|
|
||||||
|
`music('dontfight',{fade:5, volume:0.6})`
|
||||||
|
|
||||||
|
b: I'm not a Big Bad Wolf. But I'm not a guard-wolf either.
|
||||||
|
|
||||||
|
b: I'm a battered shelter dog.
|
||||||
|
|
||||||
|
(#act4c)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# act4c
|
||||||
|
|
||||||
|
```
|
||||||
|
Game.clearText();
|
||||||
|
music(null,{fade:3});
|
||||||
|
```
|
||||||
|
|
||||||
|
b: *Can* we really get along?
|
||||||
|
|
||||||
|
b: *Can* we work together, as a team?
|
||||||
|
|
||||||
|
h: Well,
|
||||||
|
|
||||||
|
a: E-excuse me...
|
||||||
|
|
||||||
|
```
|
||||||
|
Game.clearText();
|
||||||
|
publish("act4-in-2");
|
||||||
|
music('campus', {volume:0.5, fade:1});
|
||||||
|
```
|
||||||
|
|
||||||
|
(...2101)
|
||||||
|
|
||||||
|
(#act4d)
|
||||||
|
|
||||||
|
# act4d
|
||||||
|
|
||||||
|
`Game.WORDS_HEIGHT_BOTTOM = 221;`
|
||||||
|
|
||||||
|
a: W-wo-would you mind if I sat with you for lunch?
|
||||||
|
|
||||||
|
{{if _.TOP_FEAR=="harm"}}
|
||||||
|
s: They were sitting alone for lunch? They must be a psycho loner serial killer!
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if _.TOP_FEAR=="alone"}}
|
||||||
|
s: Ack, do you know how pathetic we sound? How desperate, how *needy*?
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if _.TOP_FEAR=="bad"}}
|
||||||
|
s: They were enjoying peace and quiet, then we interrupted them! We're such a burden!
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
a: I- I mean- it's, it's okay if not, I just...
|
||||||
|
|
||||||
|
`Game.OVERRIDE_CHOICE_SPEAKER = "h2"`
|
||||||
|
|
||||||
|
[Wait, didn't I see you at the party?](#act4d_recognition)
|
||||||
|
|
||||||
|
[Yeah, of course! Come here.](#act4d_yes)
|
||||||
|
|
||||||
|
[Sorry, I need alone time right now.](#act4d_no)
|
||||||
|
|
||||||
|
# act4d_recognition
|
||||||
|
|
||||||
|
h2: Yeah you were on the couch! At the first party I went to,
|
||||||
|
|
||||||
|
{{if _.a2_ending=="fight"}}
|
||||||
|
h2: The one where I had that panic attack and punched the host.
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if _.a2_ending=="flight"}}
|
||||||
|
h2: The one where I had that panic attack and ran out crying.
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
b: Hang on human, we might be making them uncomfortable.
|
||||||
|
|
||||||
|
h2: Ah, I don't mean to put you on the spot!
|
||||||
|
|
||||||
|
h2: Just remembering a friendly face, is all.
|
||||||
|
|
||||||
|
`publish("al-shire", ["panic"]);`
|
||||||
|
|
||||||
|
{{if _.TOP_FEAR=="harm"}}
|
||||||
|
s: AHHHHH I KNEW IT! THEY'RE A DANGEROUS CRAZY PSYCHO!
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if _.TOP_FEAR=="alone"}}
|
||||||
|
s: SEE HOW MUCH WE SUCK AT MAKING FRIENDS?! THE FIRST IMPRESSION WE MADE IS "WITNESSED MY TRAUMA". WE SUCK!
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if _.TOP_FEAR=="bad"}}
|
||||||
|
s: AAAHHH WE MADE SOMEONE REMEMBER A TRAUMATIC EVENT. OUR MERE PRESENCE HURTS OTHERS.
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
(#act4e)
|
||||||
|
|
||||||
|
# act4d_yes
|
||||||
|
|
||||||
|
b: Hang on human, they seem uncomfortable.
|
||||||
|
|
||||||
|
h2: Ah, no pressure of course!
|
||||||
|
|
||||||
|
h2: Just saying, you can sit here if you want to.
|
||||||
|
|
||||||
|
`publish("al-shire", ["panic"]);`
|
||||||
|
|
||||||
|
{{if _.TOP_FEAR=="harm"}}
|
||||||
|
s: THEY'RE BEING *TOO* FRIENDLY! LIKE TED BUNDY, THE SERIAL KILLER!
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if _.TOP_FEAR=="alone"}}
|
||||||
|
s: THEY'RE JUST ACTING NICE. NO ONE *REALLY* WANTS TO BE OUR FRIEND.
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if _.TOP_FEAR=="bad"}}
|
||||||
|
s: GAH, WE ALWAYS MAKE OTHERS FEEL UNCOMFORTABLE! WE'RE TERRIBLE!
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
(#act4e)
|
||||||
|
|
||||||
|
# act4d_no
|
||||||
|
|
||||||
|
b: Hang on human, we might be making them uncomfortable.
|
||||||
|
|
||||||
|
h2: Ah, I didn't mean to come off as rude!
|
||||||
|
|
||||||
|
{{if _.INJURED}}
|
||||||
|
h2: It's just that, well, I jumped off a roof and almost killed myself.
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if !_.INJURED}}
|
||||||
|
h2: It's just that, well, I almost jumped off a roof.
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
h2: Please don't take it as a personal rejection, I just need quiet time to process some emotions.
|
||||||
|
|
||||||
|
`publish("al-shire", ["panic"]);`
|
||||||
|
|
||||||
|
{{if _.TOP_FEAR=="harm"}}
|
||||||
|
s: HOLY COW I KNEW IT, THEY *ARE* A DANGEROUS PSYCHO!
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if _.TOP_FEAR=="alone"}}
|
||||||
|
s: WE'VE BEEN PERSONALLY REJECTED! WE'LL NEVER BE LOVED!
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if _.TOP_FEAR=="bad"}}
|
||||||
|
s: WE INTERRUPTED SOMEONE'S EMOTIONAL PROCESSING! NOW THEY'LL BE TRAUMATIZED FOREVER AND IT'S ALL OUR FAULT!
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
(#act4e)
|
||||||
|
|
||||||
|
# act4e
|
||||||
|
|
||||||
|
```
|
||||||
|
Game.WORDS_HEIGHT_BOTTOM = 195;
|
||||||
|
publish("act4", ["alshire", 6]);
|
||||||
|
```
|
||||||
|
|
||||||
|
s: RUN RUN RUN RUN RUN RUN RUN RUN RUN RUN RUN RUN RUN RUN RUN
|
||||||
|
|
||||||
|
```
|
||||||
|
Game.clearText();
|
||||||
|
publish("act4", ["alshire", 10]);
|
||||||
|
```
|
||||||
|
|
||||||
|
(...1001)
|
||||||
|
|
||||||
|
`publish("act4", ["alshire", 11]);`
|
||||||
|
|
||||||
|
(...1001)
|
||||||
|
|
||||||
|
```
|
||||||
|
publish("act4-out-3");
|
||||||
|
Game.WORDS_HEIGHT_BOTTOM = -1; /* reset */
|
||||||
|
```
|
||||||
|
|
||||||
|
(...1201)
|
||||||
|
|
||||||
|
`publish("act4-jumpcut-hong");`
|
||||||
|
|
||||||
|
h: Huh. That was weird. I wonder what was going on in their head.
|
||||||
|
|
||||||
|
h: Anyway, you were saying?
|
||||||
|
|
||||||
|
b: Uh, I forget? Something about teams and work?
|
||||||
|
|
||||||
|
h: ¯\_(ツ)_/¯
|
||||||
|
|
||||||
|
b: They say you should "make peace" with your emotions, as if your emotions are some kind of *war criminals*.
|
||||||
|
|
||||||
|
b: But I want us to make *more* than mere peace! I want us to be *allies!*
|
||||||
|
|
||||||
|
b: I want to be a good guard-dog. Just like how hunger & thirst are alarms for your physical needs,
|
||||||
|
|
||||||
|
b: I want to be the alarm for your emotional needs – your needs for safety, belonging, goodness.
|
||||||
|
|
||||||
|
b: But... I suck at my job, so I need you to train me.
|
||||||
|
|
||||||
|
b: Help me help you.
|
||||||
|
|
||||||
|
b: Teaching an old dog new tricks *will* take a while. Maybe *years.*
|
||||||
|
|
||||||
|
b: And sometimes I'll relapse, I'll slip into my old habits.
|
||||||
|
|
||||||
|
b: I'll bark at shadows. I'll scare you with words. I might even show you some intrusive images of... things.
|
||||||
|
|
||||||
|
b: I'm sorry! I'm a battered shelter dog! Battered dogs poop on your bed sometimes!
|
||||||
|
|
||||||
|
b: But if you're patient with me... and just stay and sit with me...
|
||||||
|
|
||||||
|
b: Maybe you can tame this wolf.
|
||||||
|
|
||||||
|
`Game.clearText();`
|
||||||
|
|
||||||
|
(...1000)
|
||||||
|
|
||||||
|
`Game.OVERRIDE_CHOICE_SPEAKER = "h"`
|
||||||
|
|
||||||
|
[Good dog.](#act4f-pat-bb) `Game.OVERRIDE_CHOICE_SPEAKER = "h"`
|
||||||
|
|
||||||
|
`Game.OVERRIDE_CHOICE_SPEAKER = "b"`
|
||||||
|
|
||||||
|
[Good human.](#act4f-pat-hong) `Game.OVERRIDE_CHOICE_SPEAKER = "b"`
|
||||||
|
|
||||||
|
# act4f-pat-hong
|
||||||
|
|
||||||
|
```
|
||||||
|
Game.clearText();
|
||||||
|
Game.FORCE_CANT_SKIP = true;
|
||||||
|
music(null,{fade:0.5});
|
||||||
|
sfx("youbothwin");
|
||||||
|
```
|
||||||
|
|
||||||
|
`publish("end-pat", ["pat-hong-1"])`
|
||||||
|
|
||||||
|
(...501)
|
||||||
|
|
||||||
|
`publish("end-pat", ["pat-hong-2"])`
|
||||||
|
|
||||||
|
(...501)
|
||||||
|
|
||||||
|
`publish("end-pat", ["pat-hong-1"])`
|
||||||
|
|
||||||
|
(...501)
|
||||||
|
|
||||||
|
`publish("end-pat", ["pat-hong-2"])`
|
||||||
|
|
||||||
|
(...501)
|
||||||
|
|
||||||
|
`publish("end-pat", ["pat-hong-1"])`
|
||||||
|
|
||||||
|
(...501)
|
||||||
|
|
||||||
|
`publish("end-pat", ["pat-hong-2"])`
|
||||||
|
|
||||||
|
(...6501)
|
||||||
|
|
||||||
|
`publish("end-pat", ["pat-hong-3"])`
|
||||||
|
|
||||||
|
(...1001)
|
||||||
|
|
||||||
|
(#act4f)
|
||||||
|
|
||||||
|
# act4f-pat-bb
|
||||||
|
|
||||||
|
```
|
||||||
|
Game.clearText();
|
||||||
|
Game.FORCE_CANT_SKIP = true;
|
||||||
|
music(null,{fade:0.5});
|
||||||
|
sfx("youbothwin");
|
||||||
|
```
|
||||||
|
|
||||||
|
`publish("end-pat", ["pat-bb-1"])`
|
||||||
|
|
||||||
|
(...501)
|
||||||
|
|
||||||
|
`publish("end-pat", ["pat-bb-2"])`
|
||||||
|
|
||||||
|
(...501)
|
||||||
|
|
||||||
|
`publish("end-pat", ["pat-bb-1"])`
|
||||||
|
|
||||||
|
(...501)
|
||||||
|
|
||||||
|
`publish("end-pat", ["pat-bb-2"])`
|
||||||
|
|
||||||
|
(...501)
|
||||||
|
|
||||||
|
`publish("end-pat", ["pat-bb-1"])`
|
||||||
|
|
||||||
|
(...501)
|
||||||
|
|
||||||
|
`publish("end-pat", ["pat-bb-2"])`
|
||||||
|
|
||||||
|
(...6501)
|
||||||
|
|
||||||
|
`publish("end-pat", ["pat-bb-3"])`
|
||||||
|
|
||||||
|
(...1001)
|
||||||
|
|
||||||
|
(#act4f)
|
||||||
|
|
||||||
|
# act4f
|
||||||
|
|
||||||
|
```
|
||||||
|
Game.FORCE_CANT_SKIP = false;
|
||||||
|
publish("end-pat", ["freak-out"])
|
||||||
|
```
|
||||||
|
|
||||||
|
{{if _.fifteencigs}}
|
||||||
|
b: AAAAA YOU'RE STILL EATING ALONE FIFTEEN CIGARETTES AAAAA
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if _.parasite}}
|
||||||
|
b: AAAAA YOU'RE STILL NOT PRODUCTIVE WHILE EATING WE'RE PARASITES AAAAA
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{if _.whitebread}}
|
||||||
|
b: AAAAA YOU'RE EATING MORE WHITE BREAD AAAAA
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
```
|
||||||
|
publish("act4", ["bb_closer", 18]);
|
||||||
|
sfx("yaps", {volume:0.6});
|
||||||
|
Game.FORCE_CANT_SKIP = true;
|
||||||
|
```
|
||||||
|
|
||||||
|
b: YAP YAP YAP YAP YAP
|
||||||
|
|
||||||
|
`music('credits', {NO_LOOP:true, volume:0.45});`
|
||||||
|
|
||||||
|
(...1884)
|
||||||
|
|
||||||
|
(#credits)
|
|
@ -1,9 +1,5 @@
|
||||||
# credits
|
# credits
|
||||||
|
|
||||||
`music('credits', {NO_LOOP:true, volume:0.45});`
|
|
||||||
|
|
||||||
(...1884)
|
|
||||||
|
|
||||||
`SceneSetup.credits()`
|
`SceneSetup.credits()`
|
||||||
|
|
||||||
n: *CREDITS ROLL* (and mental health resource links)
|
n: *CREDITS ROLL* (and mental health resource links)
|
|
@ -1,181 +0,0 @@
|
||||||
r: Looks like you're caught in a fight with yourself, kid.
|
|
||||||
|
|
||||||
h2: (nods)
|
|
||||||
|
|
||||||
r: You're not alone, friend. Anxiety's super common.
|
|
||||||
|
|
||||||
{{if _.act1_ending=="fight"}}
|
|
||||||
r: Heck, just yesterday, I heard someone on campus had a nervous breakdown and smashed their phone!
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{if _.act1_ending=="flight"}}
|
|
||||||
r: Heck, just yesterday, I heard someone curled up into an armadillo ball and cried in public!
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
h2: huh imagine that.
|
|
||||||
|
|
||||||
r: Listen: I know what it's like to have that animal in your head.
|
|
||||||
|
|
||||||
r: All of us here do. That's why we're here! I throw these parties every weekend so we can forget our worries, forget that animal.
|
|
||||||
|
|
||||||
h2: but my anxiety...
|
|
||||||
|
|
||||||
r: Don't worry, kid. I used to be like you. But then I discovered a little trick to make that beast shut up forever...
|
|
||||||
|
|
||||||
```
|
|
||||||
Game.clearText();
|
|
||||||
music(null, {fade:1});
|
|
||||||
```
|
|
||||||
|
|
||||||
(...2000)
|
|
||||||
|
|
||||||
```
|
|
||||||
publish("act2-party-action", ["twist3"]);
|
|
||||||
sfx("rustle");
|
|
||||||
```
|
|
||||||
|
|
||||||
(...2500)
|
|
||||||
|
|
||||||
`publish("act2-party-action", ["twist4"]);`
|
|
||||||
|
|
||||||
(...1000)
|
|
||||||
|
|
||||||
r: My own specialty blend. It's a mix of... well, everything.
|
|
||||||
|
|
||||||
r: Bottoms up, motherfucker.
|
|
||||||
|
|
||||||
|
|
||||||
# act2k
|
|
||||||
|
|
||||||
r: You alright, kid?
|
|
||||||
|
|
||||||
{{if _.a2_ending=="fight"}}
|
|
||||||
(#act2k_fight)
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{if _.a2_ending=="flight"}}
|
|
||||||
(#act2k_flight)
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
# act2k_fight
|
|
||||||
|
|
||||||
r: Y-you...
|
|
||||||
|
|
||||||
r: are *kinky*.
|
|
||||||
|
|
||||||
r: I like that. Come to my party next weekend, cutie.
|
|
||||||
|
|
||||||
h2: ok bye ciao adios
|
|
||||||
|
|
||||||
r: The animal might have won today, but come back, and I'll mix something even stronger for you!
|
|
||||||
|
|
||||||
h2: sayōnara au revoir auf wiedersehen zài jiàn
|
|
||||||
|
|
||||||
r: You and me, kid, we'll show that beast who's boss!
|
|
||||||
|
|
||||||
(#act2k_end)
|
|
||||||
|
|
||||||
# act2k_flight
|
|
||||||
|
|
||||||
h2: ok sorry i have to run
|
|
||||||
|
|
||||||
r: Damn it. The animal won today, huh?
|
|
||||||
|
|
||||||
h2: no no, just, uh, gotta run a marathon. gotta go fast.
|
|
||||||
|
|
||||||
r: Come to my party next weekend, cutie. I'll mix something even stronger for you.
|
|
||||||
|
|
||||||
`publish("act2-party-action", ["end_run"]);`
|
|
||||||
|
|
||||||
h2: ok thanks gonna run run run run run
|
|
||||||
|
|
||||||
r: You and me, kid, we'll show that beast who's boss!
|
|
||||||
|
|
||||||
(#act2k_end)
|
|
||||||
|
|
||||||
|
|
||||||
# act3
|
|
||||||
|
|
||||||
`SceneSetup.act3();`
|
|
||||||
|
|
||||||
h2: *Ah* that hits the spot.
|
|
||||||
|
|
||||||
r: You know, kid...
|
|
||||||
|
|
||||||
h2: Specifically, the spots hit are my left and right amygdala.
|
|
||||||
|
|
||||||
r: You remind me of myself when I was younger. Back when I was tormented by the animal in my head.
|
|
||||||
|
|
||||||
r: I'm proud to help you get rid of it. It's almost like a... *parental*... sort of pride.
|
|
||||||
|
|
||||||
`Game.clearText();`
|
|
||||||
|
|
||||||
r: Hey, quick question: truth or da--
|
|
||||||
|
|
||||||
h2: DARE!
|
|
||||||
|
|
||||||
r: Haha! Good.
|
|
||||||
|
|
||||||
r: Ok. You see that swimming pool down there?
|
|
||||||
|
|
||||||
h2: Yeah? Ten floors down?
|
|
||||||
|
|
||||||
r: Jump in.
|
|
||||||
|
|
||||||
h2: ...
|
|
||||||
|
|
||||||
h2: Wait, what?
|
|
||||||
|
|
||||||
r: The animal's started whining, hasn't it?
|
|
||||||
|
|
||||||
r: *Oh nooooo it's dangerous, don't do iiiiit.*
|
|
||||||
|
|
||||||
r: But that's exactly why we need to do thrilling, death-defying stunts! Party hard! Carpe diem! Snort coke off a hooker's butt, hashtag #YOLO!
|
|
||||||
|
|
||||||
r: Show that animal we don't give two *dicks* about its bitching! Jump.
|
|
||||||
|
|
||||||
h2: Uh, but sometimes, um... fear has a point...
|
|
||||||
|
|
||||||
r: ...
|
|
||||||
|
|
||||||
r: ...
|
|
||||||
|
|
||||||
r: I'm sorry, did you fall for that "mindfulness" fad bullshit that claims feeling bad is *good?*
|
|
||||||
|
|
||||||
r: Pleasure is the opposite of pain. There-fucking-fore, you can use pleasure to fight pain! How goddamn stupid are those California-Buddhists to not see that?!
|
|
||||||
|
|
||||||
r: Kid, I know that *you* know that animal *hurts* people like us. It *tortures* people like us.
|
|
||||||
|
|
||||||
r: It's not your fucking friend. It's a savage beast that needs to be tranquilized,
|
|
||||||
|
|
||||||
r: Or taken to the shed to be *shot in the back of the skull.*
|
|
||||||
|
|
||||||
r: Otherwise, you're going to let it win.
|
|
||||||
|
|
||||||
h2: ...you're wrong.
|
|
||||||
|
|
||||||
h2: I'm not going to let it win.
|
|
||||||
|
|
||||||
r: Fuck yeah! I believe in you, babe! Kill it! <3
|
|
||||||
|
|
||||||
(#act3a)
|
|
||||||
|
|
||||||
|
|
||||||
# act3_walkaway
|
|
||||||
|
|
||||||
r: Aw *come on*. After everything it put you through, you're just walking away?!
|
|
||||||
|
|
||||||
r: What's the matter, kid? You *scared?*
|
|
||||||
|
|
||||||
h2: Yes.
|
|
||||||
|
|
||||||
h2: I'm scared.
|
|
||||||
|
|
||||||
h2: And that's okay!
|
|
||||||
|
|
||||||
h2: It's okay to be scared.
|
|
||||||
|
|
||||||
r: Did they just lock the door?
|
|
||||||
|
|
||||||
|
|
||||||
(#act4)
|
|
|
@ -1,13 +1,17 @@
|
||||||
Loader.addImages([
|
Loader.addImages([
|
||||||
|
|
||||||
{ id:"placeholder_act4_bg", src:"sprites/act4/placeholder_act4_bg.png" },
|
|
||||||
{ id:"act4_callback", src:"sprites/act4/callback.png" },
|
{ id:"act4_callback", src:"sprites/act4/callback.png" },
|
||||||
{ id:"al_shire", src:"sprites/act4/al_shire.png" },
|
{ id:"a4_hong_walks_in", src:"sprites/act4/hong_walks_in.png" },
|
||||||
{ id:"outside_hong", src:"sprites/act4/hong_outside.png" },
|
{ id:"a4_hong_transition", src:"sprites/act4/hong_transition.png" },
|
||||||
|
|
||||||
{ id:"a4_talk_1", src:"sprites/act4/talk_1.png" },
|
{ id:"break_hp", src:"sprites/act4/break_hp.png" },
|
||||||
{ id:"a4_talk_2", src:"sprites/act4/talk_2.png" },
|
|
||||||
{ id:"a4_talk_smash", src:"sprites/act4/talk_smash.png" },
|
{ id:"al_shire", src:"sprites/act4/al_shire.png" },
|
||||||
|
{ id:"hong_to_alshire", src:"sprites/act4/hong_to_alshire.png" },
|
||||||
|
{ id:"bb_to_alshire", src:"sprites/act4/bb_to_alshire.png" },
|
||||||
|
|
||||||
|
{ id:"hong_closer", src:"sprites/act4/hong_closer.png" },
|
||||||
|
{ id:"bb_closer", src:"sprites/act4/bb_closer.png" }
|
||||||
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -20,157 +24,385 @@ function BG_Act4(){
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
// Sprites!
|
// BACKGROUND SPRITES
|
||||||
self.bgSprite = new Sprite({
|
var BGSpriteConfig = {
|
||||||
image: Library.images.placeholder_act4_bg,
|
image: Library.images.intro_bg,
|
||||||
grid:{ width:1, height:1 },
|
grid:{ width:2, height:3 },
|
||||||
frame:{ width:720, height:1200 },
|
frame:{ width:1200, height:1200 },
|
||||||
|
anchor:{ x:0, y:0 },
|
||||||
|
frameNames:[ "sky", "clouds", "buildings", "grass", "stump" ],
|
||||||
|
x:0, y:0
|
||||||
|
};
|
||||||
|
self.sky = new Sprite(BGSpriteConfig);
|
||||||
|
self.sky.gotoFrameByName("sky");
|
||||||
|
self.clouds = new Sprite(BGSpriteConfig);
|
||||||
|
self.clouds.gotoFrameByName("clouds");
|
||||||
|
self.buildings = new Sprite(BGSpriteConfig);
|
||||||
|
self.buildings.gotoFrameByName("buildings");
|
||||||
|
self.grass = new Sprite(BGSpriteConfig);
|
||||||
|
self.grass.gotoFrameByName("grass");
|
||||||
|
self.stump = new Sprite(BGSpriteConfig);
|
||||||
|
self.stump.gotoFrameByName("stump");
|
||||||
|
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
// EXTERNAL WORLD SPRITES ///////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Hong in
|
||||||
|
self.hong_walks_in = new Sprite({
|
||||||
|
image: Library.images.a4_hong_walks_in,
|
||||||
|
grid:{ width:8, height:3 },
|
||||||
|
frame:{ width:720, height:500 },
|
||||||
|
anchor:{ x:0, y:0 },
|
||||||
|
x:0, y:200
|
||||||
});
|
});
|
||||||
self.callbackSprite = new Sprite({
|
self.hong_walks_in.gotoFrame(19); // blank
|
||||||
|
|
||||||
|
// Callback
|
||||||
|
self.callback = new Sprite({
|
||||||
image: Library.images.act4_callback,
|
image: Library.images.act4_callback,
|
||||||
grid:{ width:2, height:1 },
|
grid:{ width:2, height:1 },
|
||||||
frame:{ width:400, height:200 },
|
frame:{ width:400, height:200 },
|
||||||
y: 347,
|
y: 347
|
||||||
frameNames:[
|
|
||||||
"phone",
|
|
||||||
"puddle"
|
|
||||||
]
|
|
||||||
});
|
});
|
||||||
self.callbackSprite.gotoFrameByName( _.act1_ending=="fight" ? "phone" : "puddle" );
|
self.callback.gotoFrame( _.act1_ending=="fight" ? 0 : 1 );
|
||||||
|
|
||||||
self.alShireSprite = new Sprite({
|
var hongSitsSprite = {
|
||||||
|
image: Library.images.a4_hong_transition,
|
||||||
|
grid:{ width:8, height:3 },
|
||||||
|
frame:{ width:720, height:500 },
|
||||||
|
anchor:{ x:0, y:0 },
|
||||||
|
x:0, y:200
|
||||||
|
};
|
||||||
|
|
||||||
|
// The crutches
|
||||||
|
self.crutches = new Sprite(hongSitsSprite);
|
||||||
|
self.crutches.gotoFrame(2);
|
||||||
|
self.crutches.visible = false;
|
||||||
|
|
||||||
|
// The legs
|
||||||
|
self.legs = new Sprite(hongSitsSprite);
|
||||||
|
self.legs.gotoFrame( _.INJURED ? 1 : 0);
|
||||||
|
self.legs.visible = false;
|
||||||
|
|
||||||
|
// Hong transition
|
||||||
|
self.hong_transition = new Sprite(hongSitsSprite);
|
||||||
|
self.hong_transition.gotoFrame(3);
|
||||||
|
self.hong_transition.visible = false;
|
||||||
|
|
||||||
|
// Hong transition Cone
|
||||||
|
self.hong_transition_cone = new Sprite(hongSitsSprite);
|
||||||
|
self.hong_transition_cone.gotoFrame(6);
|
||||||
|
self.hong_transition_cone.visible = false;
|
||||||
|
|
||||||
|
// Alshire
|
||||||
|
self.alshire = new Sprite({
|
||||||
image: Library.images.al_shire,
|
image: Library.images.al_shire,
|
||||||
grid:{ width:4, height:1 },
|
grid:{ width:8, height:3 },
|
||||||
frame:{ width:360, height:360 },
|
frame:{ width:360, height:360 },
|
||||||
y: 192,
|
y: 190
|
||||||
frameNames:[
|
|
||||||
"ask",
|
|
||||||
"panic",
|
|
||||||
"run",
|
|
||||||
"blank"
|
|
||||||
]
|
|
||||||
});
|
});
|
||||||
self.alShireSprite.gotoFrameByName("blank"); // blank
|
self.alshire.visible = false;
|
||||||
self.outsideHongSprite = new Sprite({
|
|
||||||
image: Library.images.outside_hong,
|
|
||||||
grid:{ width:4, height:3 },
|
|
||||||
frame:{ width:720, height:720 },
|
|
||||||
y: 90,
|
|
||||||
frameNames:[
|
|
||||||
"blank",
|
|
||||||
|
|
||||||
"walk",
|
// Hong alshire
|
||||||
"walk-injured",
|
self.hong_to_alshire = new Sprite({
|
||||||
"eat",
|
image: Library.images.hong_to_alshire,
|
||||||
"eat-injured",
|
grid:{ width:8, height:2 },
|
||||||
"talk",
|
frame:{ width:300, height:300 },
|
||||||
"talk-injured",
|
/*x:210,*/ y:258
|
||||||
"look-back",
|
|
||||||
"look-back-injured",
|
|
||||||
]
|
|
||||||
});
|
});
|
||||||
|
self.hong_to_alshire.visible = false;
|
||||||
|
|
||||||
|
// BB alshire
|
||||||
|
var bb_to_alshire_sprite = {
|
||||||
|
image: Library.images.bb_to_alshire,
|
||||||
|
grid:{ width:4, height:1 },
|
||||||
|
frame:{ width:200, height:300 },
|
||||||
|
/*x:261,*/ y:281
|
||||||
|
};
|
||||||
|
self.bb_to_alshire = new Sprite(bb_to_alshire_sprite);
|
||||||
|
self.bb_to_alshire.visible = false;
|
||||||
|
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
// INTERNAL WORLD SPRITES ///////////////////
|
||||||
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
// Anxiety BG... WHITE MODE
|
// Anxiety BG... WHITE MODE
|
||||||
self.anxiety = new BG_Anxiety(true);
|
self.anxiety = new BG_Anxiety(true);
|
||||||
|
|
||||||
// Talking Sprites
|
// Hong
|
||||||
self.smashSprite = new Sprite({
|
self.hong = new Act4_Hong();
|
||||||
image: Library.images.a4_talk_smash,
|
|
||||||
grid:{ width:3, height:1 },
|
// BB
|
||||||
frame:{ width:720, height:600 },
|
self.beebee = new Act4_Beebee();
|
||||||
|
|
||||||
|
// Smash Sprite
|
||||||
|
var break_hp_sprite = {
|
||||||
|
image: Library.images.break_hp,
|
||||||
|
grid:{ width:8, height:2 },
|
||||||
|
frame:{ width:720, height:1000 },
|
||||||
|
};
|
||||||
|
self.break_hp = new Sprite(break_hp_sprite);
|
||||||
|
self.break_hp.y = -70;
|
||||||
|
self.break_hp.visible = false;
|
||||||
|
self.break_hp_cone = new Sprite(break_hp_sprite);
|
||||||
|
self.break_hp_cone.visible = false;
|
||||||
|
|
||||||
|
// Hong Closer
|
||||||
|
self.hong_closer = new Sprite({
|
||||||
|
image: Library.images.hong_closer,
|
||||||
|
grid:{ width:8, height:1 },
|
||||||
|
frame:{ width:300, height:300 },
|
||||||
|
y: 270
|
||||||
|
});
|
||||||
|
self.hong_closer.visible = false;
|
||||||
|
|
||||||
|
// BB Closer
|
||||||
|
var bb_closer_sprite = {
|
||||||
|
image: Library.images.bb_closer,
|
||||||
|
grid:{ width:8, height:4 },
|
||||||
|
frame:{ width:500, height:500 },
|
||||||
y: 200
|
y: 200
|
||||||
});
|
};
|
||||||
self.smashSprite.gotoFrame(2); // blank
|
self.bb_closer = new Sprite(bb_closer_sprite);
|
||||||
self.talk1Sprite = new Sprite({
|
self.bb_closer.visible = false;
|
||||||
image: Library.images.a4_talk_1,
|
self.bb_closer_cone = new Sprite(bb_closer_sprite);
|
||||||
grid:{ width:3, height:1 },
|
self.bb_closer_cone.visible = false;
|
||||||
frame:{ width:720, height:400 },
|
self.bb_closer_cone.gotoFrame(28);
|
||||||
y: 256
|
self.bb_closer_coneb = new Sprite(bb_closer_sprite);
|
||||||
});
|
self.bb_closer_coneb.visible = false;
|
||||||
self.talk2Sprite = new Sprite({
|
self.bb_closer_coneb.gotoFrame(29);
|
||||||
image: Library.images.a4_talk_2,
|
|
||||||
grid:{ width:4, height:2 },
|
|
||||||
frame:{ width:720, height:400 },
|
|
||||||
y: 256,
|
|
||||||
frameNames:[
|
|
||||||
|
|
||||||
"talk",
|
|
||||||
|
|
||||||
"pat-bb-1",
|
|
||||||
"pat-bb-2",
|
|
||||||
"pat-bb-3",
|
|
||||||
|
|
||||||
"pat-hong-1",
|
|
||||||
"pat-hong-2",
|
|
||||||
"pat-hong-3",
|
|
||||||
|
|
||||||
"freak-out"
|
|
||||||
|
|
||||||
]
|
|
||||||
});
|
|
||||||
|
|
||||||
// LAYERS
|
// LAYERS
|
||||||
self.layers = [
|
self.layers = [
|
||||||
|
|
||||||
self.bgSprite,
|
self.sky,
|
||||||
self.callbackSprite,
|
self.clouds,
|
||||||
self.alShireSprite,
|
self.buildings,
|
||||||
self.outsideHongSprite,
|
self.grass,
|
||||||
|
|
||||||
|
self.alshire,
|
||||||
|
|
||||||
|
self.hong_walks_in,
|
||||||
|
self.callback,
|
||||||
|
|
||||||
|
self.stump,
|
||||||
|
|
||||||
|
self.crutches,
|
||||||
self.anxiety,
|
self.anxiety,
|
||||||
|
self.legs,
|
||||||
|
self.hong_transition,
|
||||||
|
self.hong_transition_cone,
|
||||||
|
|
||||||
self.smashSprite,
|
self.break_hp,
|
||||||
self.talk1Sprite,
|
self.break_hp_cone,
|
||||||
self.talk2Sprite
|
|
||||||
|
self.hong,
|
||||||
|
self.beebee,
|
||||||
|
|
||||||
|
self.hong_to_alshire,
|
||||||
|
self.bb_to_alshire,
|
||||||
|
|
||||||
|
self.hong_closer,
|
||||||
|
self.bb_closer_coneb,
|
||||||
|
self.bb_closer,
|
||||||
|
self.bb_closer_cone,
|
||||||
|
|
||||||
];
|
];
|
||||||
var PARALLAXES = [
|
var PARALLAXES = [
|
||||||
|
|
||||||
0.5, // placeholder bg
|
0, // sky
|
||||||
0.8, // callback
|
0.1, // clouds
|
||||||
0.6, // Al Shire
|
0.25, // buildings
|
||||||
1.0, // outside Hong
|
0.48, // grass
|
||||||
|
|
||||||
0.0, // anxiety bg
|
0.8, // alshire
|
||||||
|
|
||||||
1.0, // smash sprite
|
1.0, // hong_walks_in
|
||||||
1.0, // talk 1 sprite
|
1.0, // callback
|
||||||
1.0, // talk 2 sprite
|
|
||||||
|
1.0, // stump
|
||||||
|
|
||||||
|
1.0, // crutches
|
||||||
|
0.0, // anxiety
|
||||||
|
1.0, // legs
|
||||||
|
1.0, // hong_transition
|
||||||
|
1.0, // hong_transition_cone
|
||||||
|
|
||||||
|
0, // break_hp
|
||||||
|
0, // break_hp_cone
|
||||||
|
|
||||||
|
1.0, // hong
|
||||||
|
1.0, // beebee
|
||||||
|
|
||||||
|
1.0, // hong_to_alshire
|
||||||
|
1.0, // bb_to_alshire
|
||||||
|
|
||||||
|
1.0, // hong_closer,
|
||||||
|
1.0, // bb_closer_coneb
|
||||||
|
1.0, // bb_closer,
|
||||||
|
1.0, // bb_closer_cone,
|
||||||
|
|
||||||
];
|
];
|
||||||
var ALPHAS = [
|
var ALPHAS = [
|
||||||
|
|
||||||
1.0, // placeholder bg
|
1.0, // sky
|
||||||
1.0, // callback
|
1.0, // clouds
|
||||||
1.0, // callback
|
1.0, // buildings
|
||||||
1.0, // outside Hong
|
1.0, // grass
|
||||||
|
|
||||||
0.0, // anxiety bg
|
1.0, // alshire
|
||||||
|
|
||||||
1.0, // smash sprite
|
1.0, // hong_walks_in
|
||||||
0.0, // talk 1 sprite
|
1.0, // callback
|
||||||
0.0, // talk 2 sprite
|
|
||||||
|
1.0, // stump
|
||||||
|
|
||||||
|
1.0, // crutches
|
||||||
|
0.0, // anxiety
|
||||||
|
1.0, // legs
|
||||||
|
1.0, // hong_transition
|
||||||
|
1.0, // hong_transition_cone
|
||||||
|
|
||||||
|
1.0, // break_hp
|
||||||
|
1.0, // break_hp_cone
|
||||||
|
|
||||||
|
0.0, // hong
|
||||||
|
0.0, // beebee
|
||||||
|
|
||||||
|
1.0, // hong_to_alshire
|
||||||
|
1.0, // bb_to_alshire
|
||||||
|
|
||||||
|
1.0, // hong_closer,
|
||||||
|
1.0, // bb_closer_coneb
|
||||||
|
1.0, // bb_closer,
|
||||||
|
1.0, // bb_closer_cone,
|
||||||
|
|
||||||
];
|
];
|
||||||
|
var MAGIC_NUMBER_2 = 163;
|
||||||
var OFFSETS = [
|
var OFFSETS = [
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
|
|
||||||
0,
|
0, // sky
|
||||||
|
0, // clouds
|
||||||
|
0, // buildings
|
||||||
|
0, // grass
|
||||||
|
|
||||||
|
0, // alshire
|
||||||
|
|
||||||
|
0, // hong_walks_in
|
||||||
|
0, // callback
|
||||||
|
|
||||||
|
0, // stump
|
||||||
|
|
||||||
|
207, // crutches
|
||||||
|
0, // anxiety
|
||||||
|
207, // legs
|
||||||
|
207, // hong_transition
|
||||||
|
207, // hong_transition_cone
|
||||||
|
|
||||||
|
0, // break_hp
|
||||||
|
0, // break_hp_cone
|
||||||
|
|
||||||
|
0, // hong
|
||||||
|
0, // beebee
|
||||||
|
|
||||||
|
210, // hong_to_alshire
|
||||||
|
261+100, // bb_to_alshire
|
||||||
|
|
||||||
|
50 + MAGIC_NUMBER_2, // hong_closer,
|
||||||
|
96 + MAGIC_NUMBER_2, // bb_closer_coneb
|
||||||
|
96 + MAGIC_NUMBER_2, // bb_closer,
|
||||||
|
96 + MAGIC_NUMBER_2, // bb_closer_cone,
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
// ANIMATIONS... ///////////////////////////////////////////////////////
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// animation: { ticker:0, target:"sprite_name", frames:[{when:0, wait:0.1, then:4}, ...] }
|
||||||
|
self.animations = [];
|
||||||
|
self.createAnimation = function(spriteName, frames){
|
||||||
|
self.animations.push({
|
||||||
|
ticker: 0,
|
||||||
|
target: spriteName,
|
||||||
|
frames: frames
|
||||||
|
});
|
||||||
|
};
|
||||||
|
var _animSequence = function(from, to, duration, loop){
|
||||||
|
var frames = [];
|
||||||
|
for(var frame=from; frame<=to; frame++){
|
||||||
|
|
||||||
|
if(loop){
|
||||||
|
// LOOP
|
||||||
|
var next = (frame==to) ? from : frame+1;
|
||||||
|
frames.push({ when:frame, wait:duration, then:next });
|
||||||
|
}else{
|
||||||
|
// NOT LOOP: FINAL FRAME IS "TO"
|
||||||
|
var next = frame+1;
|
||||||
|
if(next<=to){
|
||||||
|
frames.push({ when:frame, wait:duration, then:next });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return frames;
|
||||||
|
};
|
||||||
|
self.executeAnimation = function(anim){
|
||||||
|
|
||||||
|
// Frame...
|
||||||
|
var sprite = self[anim.target];
|
||||||
|
var frame = anim.frames.find(function(frame){
|
||||||
|
return frame.when == sprite.currentFrame;
|
||||||
|
});
|
||||||
|
if(frame){
|
||||||
|
|
||||||
|
var frameToGoTo = frame.when;
|
||||||
|
|
||||||
|
// Next?
|
||||||
|
anim.ticker += 1/60;
|
||||||
|
if(anim.ticker >= frame.wait){
|
||||||
|
anim.ticker = 0;
|
||||||
|
frameToGoTo = frame.then;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Change sprite
|
||||||
|
sprite.gotoFrame(frameToGoTo);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// SMASH THAT
|
||||||
|
self.createAnimation("break_hp", _animSequence( 1,4, 1/12, true) );
|
||||||
|
|
||||||
|
// ALSHIRE
|
||||||
|
self.createAnimation("alshire", _animSequence( 6,9, 1/12, true) );
|
||||||
|
self.createAnimation("alshire", _animSequence( 11,22, 1/30, false) );
|
||||||
|
|
||||||
|
// BB
|
||||||
|
self.createAnimation("bb_closer", _animSequence( 18,21, 1/24, true) );
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
-210,
|
|
||||||
-210,
|
|
||||||
-210
|
|
||||||
]
|
|
||||||
|
|
||||||
var parallax = 0;
|
var parallax = 0;
|
||||||
var parallaxTicker = 0;
|
var parallaxTicker = 0;
|
||||||
var PARALLAXING = null;
|
var PARALLAXING = null;
|
||||||
var ALPHA_INDEX = 4;
|
var ANXIETY_INDEX = 9;
|
||||||
|
var ticker = 0;
|
||||||
|
var MAGIC_NUMBER = (210 + 8);
|
||||||
|
|
||||||
self.update = function(){
|
self.update = function(){
|
||||||
|
|
||||||
|
// TICKER
|
||||||
|
ticker += 1/60;
|
||||||
|
|
||||||
|
// CLOUD OFFSET
|
||||||
|
OFFSETS[1] = 80 - ticker*3;
|
||||||
|
|
||||||
// START PARALLAXING IN / OUT
|
// START PARALLAXING IN / OUT
|
||||||
if(PARALLAXING!=null){
|
if(PARALLAXING!=null){
|
||||||
|
|
||||||
|
@ -186,21 +418,23 @@ function BG_Act4(){
|
||||||
// 0 to -180 in one second, smoothed
|
// 0 to -180 in one second, smoothed
|
||||||
var t = Math.cos(parallaxTicker*Math.TAU/2); // 1 to -1
|
var t = Math.cos(parallaxTicker*Math.TAU/2); // 1 to -1
|
||||||
t = (1-t)/2; // 0 to 1
|
t = (1-t)/2; // 0 to 1
|
||||||
parallax = -t*210;
|
parallax = -t*MAGIC_NUMBER;
|
||||||
|
|
||||||
// Anxiety Alpha
|
// Anxiety Alpha
|
||||||
ALPHAS[ALPHA_INDEX] = t;
|
ALPHAS[ANXIETY_INDEX] = t;
|
||||||
|
|
||||||
// DONE
|
// DONE
|
||||||
if(t==1 || t==0){
|
if(t==1 || t==0){
|
||||||
PARALLAXING = null;
|
PARALLAXING = null;
|
||||||
|
|
||||||
if(STAGE==1){
|
// Seeing Al-Shire
|
||||||
ALPHAS[6] = 1; // Talk 1
|
if(STAGE==2){
|
||||||
}
|
self.break_hp.visible = false;
|
||||||
|
self.bb_to_alshire.visible = true;
|
||||||
if(STAGE==3){
|
if(_.INJURED){
|
||||||
ALPHAS[7] = 1; // Talk 2
|
self.bb_to_alshire.gotoFrame(2); // CONE!
|
||||||
|
}
|
||||||
|
ALPHAS[16] = 0; // BB
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -208,27 +442,69 @@ function BG_Act4(){
|
||||||
}
|
}
|
||||||
|
|
||||||
// Anxiety BG
|
// Anxiety BG
|
||||||
if(ALPHAS[ALPHA_INDEX]>0){
|
if(ALPHAS[ANXIETY_INDEX]>0){
|
||||||
self.anxiety.update(ALPHAS[ALPHA_INDEX]);
|
self.anxiety.update(ALPHAS[ANXIETY_INDEX]);
|
||||||
if(ALPHAS[ALPHA_INDEX]==1){ // if fully visible...
|
|
||||||
ALPHAS[0] = ALPHAS[1] = ALPHAS[2] = ALPHAS[3] = 0; // hide everything under
|
|
||||||
}else{
|
|
||||||
ALPHAS[0] = ALPHAS[1] = ALPHAS[2] = ALPHAS[3] = 1; // hide everything under
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BREAK_HP'S ALPHA
|
||||||
|
if(self.break_hp.visible){
|
||||||
|
self.break_hp.alpha = ALPHAS[ANXIETY_INDEX];
|
||||||
|
}
|
||||||
|
|
||||||
|
// ALL ANIMS
|
||||||
|
self.animations.forEach(self.executeAnimation);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
self.draw = function(ctx){
|
self.draw = function(ctx){
|
||||||
|
|
||||||
|
// SUPER HACK FOR CONES
|
||||||
|
|
||||||
|
// INTRO
|
||||||
|
if(_.INJURED && self.hong_transition.visible && self.hong_transition.currentFrame>=16){
|
||||||
|
self.hong_transition_cone.visible = true;
|
||||||
|
self.hong_transition_cone.gotoFrame(self.hong_transition.currentFrame+5);
|
||||||
|
}else{
|
||||||
|
self.hong_transition_cone.visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SMASHING
|
||||||
|
if(self.break_hp.visible){
|
||||||
|
self.break_hp.y = self.break_hp.y*0.8 + 0*0.2; // move in
|
||||||
|
}
|
||||||
|
if(_.INJURED && self.break_hp_cone.visible){
|
||||||
|
self.break_hp_cone.gotoFrame( self.break_hp.currentFrame+5 );
|
||||||
|
}
|
||||||
|
self.break_hp_cone.y = self.break_hp.y;
|
||||||
|
|
||||||
|
// ENDINGS YAP YAP YAP
|
||||||
|
if(self.bb_closer.currentFrame>=18 && self.bb_closer.currentFrame<=21){
|
||||||
|
self.bb_closer_coneb.gotoFrame(31); // blank
|
||||||
|
self.bb_closer_cone.gotoFrame(self.bb_closer.currentFrame + 4); // CONE
|
||||||
|
}
|
||||||
|
|
||||||
|
// BB EASES IN
|
||||||
|
if(self.bb_to_alshire.visible){
|
||||||
|
OFFSETS[18] = OFFSETS[18]*0.9 + 261*0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////
|
||||||
|
|
||||||
ctx.save();
|
ctx.save();
|
||||||
|
|
||||||
for(var i=0; i<self.layers.length; i++){
|
for(var i=0; i<self.layers.length; i++){
|
||||||
|
|
||||||
var layer = self.layers[i];
|
var layer = self.layers[i];
|
||||||
layer.x = PARALLAXES[i] * parallax - OFFSETS[i];
|
layer.x = PARALLAXES[i] * parallax + OFFSETS[i];
|
||||||
|
|
||||||
|
// DON'T DRAW ANYTHING UNDER ANXIETY_INDEX WHEN'S IT'S 1
|
||||||
|
var DONT_DRAW_BENEATH = (ALPHAS[ANXIETY_INDEX]==1);
|
||||||
if(ALPHAS[i]>0){
|
if(ALPHAS[i]>0){
|
||||||
ctx.globalAlpha = ALPHAS[i];
|
if( !(i<ANXIETY_INDEX && DONT_DRAW_BENEATH) ){
|
||||||
layer.draw(ctx);
|
ctx.globalAlpha = ALPHAS[i];
|
||||||
|
layer.draw(ctx);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -239,23 +515,94 @@ function BG_Act4(){
|
||||||
var STAGE = 0;
|
var STAGE = 0;
|
||||||
var _subscriptions = [];
|
var _subscriptions = [];
|
||||||
_subscriptions.push(
|
_subscriptions.push(
|
||||||
|
|
||||||
|
subscribe("act4", function(thing, frame){
|
||||||
|
if(typeof frame=="string"){
|
||||||
|
if(frame=="next"){
|
||||||
|
self[thing].nextFrame();
|
||||||
|
}else{
|
||||||
|
self[thing].gotoFrameByName(frame);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
self[thing].gotoFrame(frame);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
subscribe("act4_hong_sits", function(){
|
||||||
|
|
||||||
|
if(_.INJURED){
|
||||||
|
self.crutches.visible = true;
|
||||||
|
//self.hong_transition_cone.visible = true;
|
||||||
|
}
|
||||||
|
self.legs.visible = true;
|
||||||
|
self.hong_walks_in.visible = false;
|
||||||
|
self.hong_transition.visible = true;
|
||||||
|
|
||||||
|
}),
|
||||||
|
|
||||||
subscribe("act4-out-1", function(){
|
subscribe("act4-out-1", function(){
|
||||||
|
|
||||||
self.talk1Sprite.gotoFrame( _.INJURED ? 0 : 1 );
|
|
||||||
|
|
||||||
// WHOOSH
|
|
||||||
STAGE = 1;
|
STAGE = 1;
|
||||||
PARALLAXING = "out";
|
PARALLAXING = "out";
|
||||||
sfx("whoosh");
|
sfx("whoosh"); // WHOOSH
|
||||||
|
|
||||||
// IT'S WHITE IN HERE
|
// IT'S WHITE IN HERE
|
||||||
window.BLACK_CTA = true;
|
window.BLACK_CTA = true;
|
||||||
|
|
||||||
}),
|
}),
|
||||||
|
subscribe("act4-show-chars", function(){
|
||||||
|
self.hong_transition.visible = false;
|
||||||
|
ALPHAS[15] = 1; // Hong
|
||||||
|
ALPHAS[16] = 1; // Beebee
|
||||||
|
}),
|
||||||
|
|
||||||
|
|
||||||
|
subscribe("smash", function(stage){
|
||||||
|
if(stage==0){
|
||||||
|
|
||||||
|
self.break_hp.visible = true;
|
||||||
|
|
||||||
|
sfx("ui_show_choice", {volume:0.4});
|
||||||
|
|
||||||
|
hong({ body:"normal", eyes:"look_up", mouth:"blank" });
|
||||||
|
bb({ eyes:"normal_u" });
|
||||||
|
|
||||||
|
}
|
||||||
|
if(stage==1){
|
||||||
|
|
||||||
|
ALPHAS[15] = 0; // Hong
|
||||||
|
ALPHAS[16] = 0; // Beebee
|
||||||
|
|
||||||
|
self.break_hp.gotoFrame(1);
|
||||||
|
if(_.INJURED){
|
||||||
|
self.break_hp_cone.visible = true;
|
||||||
|
self.break_hp_cone.gotoFrame(1+5);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if(stage==2){
|
||||||
|
|
||||||
|
ALPHAS[15] = 1; // Hong
|
||||||
|
ALPHAS[16] = 1; // Beebee
|
||||||
|
|
||||||
|
self.break_hp.gotoFrame(5);
|
||||||
|
self.break_hp_cone.visible = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
|
||||||
subscribe("act4-in-2", function(){
|
subscribe("act4-in-2", function(){
|
||||||
|
|
||||||
// SHOW ACTION, HIDE CHARS
|
// Hide JUST HONG, parallax BB.
|
||||||
ALPHAS[6] = 0; // Bye Talk 1
|
ALPHAS[15] = 0; // Hong
|
||||||
|
self.beebee.ALLOW_PARALLAX = true;
|
||||||
|
PARALLAXES[16] = 1.0; // battle bb
|
||||||
|
OFFSETS[16] = MAGIC_NUMBER*PARALLAXES[16]; // battle bb
|
||||||
|
PARALLAXES[13] = 1.0; // break_hp
|
||||||
|
OFFSETS[13] = MAGIC_NUMBER*PARALLAXES[13]; // break_hp
|
||||||
|
|
||||||
|
// Show Alshire sprites
|
||||||
|
self.alshire.visible = true;
|
||||||
|
self.hong_to_alshire.visible = true;
|
||||||
|
|
||||||
// WHOOSH
|
// WHOOSH
|
||||||
STAGE = 2;
|
STAGE = 2;
|
||||||
|
@ -266,6 +613,7 @@ function BG_Act4(){
|
||||||
window.BLACK_CTA = false;
|
window.BLACK_CTA = false;
|
||||||
|
|
||||||
}),
|
}),
|
||||||
|
|
||||||
subscribe("act4-out-3", function(){
|
subscribe("act4-out-3", function(){
|
||||||
|
|
||||||
// WHOOSH
|
// WHOOSH
|
||||||
|
@ -273,41 +621,39 @@ function BG_Act4(){
|
||||||
PARALLAXING = "out";
|
PARALLAXING = "out";
|
||||||
sfx("whoosh");
|
sfx("whoosh");
|
||||||
|
|
||||||
|
// PARALLAX
|
||||||
|
MAGIC_NUMBER = MAGIC_NUMBER_2;
|
||||||
|
|
||||||
|
// JUMP CUT TO THE FINAL BB
|
||||||
|
self.bb_to_alshire.visible = false;
|
||||||
|
self.bb_closer.visible = true;
|
||||||
|
if(_.INJURED){
|
||||||
|
self.bb_closer_coneb.visible = true;
|
||||||
|
self.bb_closer_cone.visible = true;
|
||||||
|
}
|
||||||
|
|
||||||
// IT'S WHITE IN HERE
|
// IT'S WHITE IN HERE
|
||||||
window.BLACK_CTA = true;
|
window.BLACK_CTA = true;
|
||||||
|
|
||||||
}),
|
}),
|
||||||
|
subscribe("act4-jumpcut-hong", function(){
|
||||||
|
self.hong_to_alshire.visible = false;
|
||||||
|
self.hong_closer.visible = true;
|
||||||
|
})
|
||||||
|
|
||||||
|
/*
|
||||||
subscribe("outside-hong", function(frame){
|
subscribe("outside-hong", function(frame){
|
||||||
if(_.INJURED) frame += "-injured";
|
if(_.INJURED) frame += "-injured";
|
||||||
if(self.outsideHongSprite.doesFrameNameExist(frame)){
|
if(self.outsideHongSprite.doesFrameNameExist(frame)){
|
||||||
self.outsideHongSprite.gotoFrameByName(frame);
|
self.outsideHongSprite.gotoFrameByName(frame);
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
subscribe("smash", function(stage){
|
|
||||||
if(stage==0){
|
|
||||||
Game.clearText();
|
|
||||||
HP.show();
|
|
||||||
sfx("ui_show_choice", {volume:0.4});
|
|
||||||
}
|
|
||||||
if(stage==1){
|
|
||||||
HP.hide(true);
|
|
||||||
self.talk1Sprite.alpha = 0;
|
|
||||||
self.smashSprite.gotoFrame(0);
|
|
||||||
}
|
|
||||||
if(stage==2){
|
|
||||||
self.talk1Sprite.alpha = 1;
|
|
||||||
self.smashSprite.gotoFrame(1);
|
|
||||||
}
|
|
||||||
if(stage==3){
|
|
||||||
self.smashSprite.gotoFrame(2);
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
subscribe("al-shire", function(frame){
|
subscribe("al-shire", function(frame){
|
||||||
self.alShireSprite.gotoFrameByName(frame);
|
self.alShireSprite.gotoFrameByName(frame);
|
||||||
}),
|
}),
|
||||||
subscribe("end-pat", function(frame){
|
subscribe("end-pat", function(frame){
|
||||||
self.talk2Sprite.gotoFrameByName(frame);
|
self.talk2Sprite.gotoFrameByName(frame);
|
||||||
})
|
})*/
|
||||||
);
|
);
|
||||||
|
|
||||||
self.kill = function(){
|
self.kill = function(){
|
||||||
|
|
|
@ -0,0 +1,135 @@
|
||||||
|
Loader.addImages([
|
||||||
|
{ id:"act4_bb", src:"sprites/act4/bb_convo.png" }
|
||||||
|
]);
|
||||||
|
|
||||||
|
function Act4_Beebee(){
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
// SPRITE CONFIG!
|
||||||
|
var spriteConfig = {
|
||||||
|
image: Library.images.act4_bb,
|
||||||
|
grid:{
|
||||||
|
width: 8,
|
||||||
|
height: 8
|
||||||
|
},
|
||||||
|
frame:{
|
||||||
|
width: 500,
|
||||||
|
height: 500
|
||||||
|
},
|
||||||
|
anchor:{
|
||||||
|
x: 171,
|
||||||
|
y: 242
|
||||||
|
},
|
||||||
|
frameNames:[
|
||||||
|
|
||||||
|
"body_normal",
|
||||||
|
"body_normal_chest",
|
||||||
|
"body_normal_two_up",
|
||||||
|
"body_normal_one_up",
|
||||||
|
"body_normal_paw",
|
||||||
|
"cone_normal",
|
||||||
|
"coneb_normal",
|
||||||
|
"mouth_normal",
|
||||||
|
|
||||||
|
"mouth_normal_talk",
|
||||||
|
"mouth_narrow",
|
||||||
|
"mouth_narrow_talk",
|
||||||
|
"mouth_smile",
|
||||||
|
"mouth_smile_talk",
|
||||||
|
"mouth_scream",
|
||||||
|
"mouth_scream_talk",
|
||||||
|
"cone_scream",
|
||||||
|
|
||||||
|
"coneb_scream",
|
||||||
|
"eyes_normal",
|
||||||
|
"eyes_normal_r",
|
||||||
|
"eyes_normal_u",
|
||||||
|
"eyes_normal_d",
|
||||||
|
"eyes_look_down",
|
||||||
|
"eyes_scream",
|
||||||
|
"eyes_scream_sad",
|
||||||
|
|
||||||
|
"eyes_super_sad",
|
||||||
|
"eyes_closed",
|
||||||
|
"eyes_closed_annoyed",
|
||||||
|
"eyes_sexy",
|
||||||
|
"eyes_smile",
|
||||||
|
"eyes_smile_r",
|
||||||
|
"eyes_smile_u",
|
||||||
|
"eyes_smile_d",
|
||||||
|
|
||||||
|
"eyes_angry",
|
||||||
|
"eyes_angry_r",
|
||||||
|
"eyes_angry_u",
|
||||||
|
"eyes_angry_d",
|
||||||
|
"eyes_surprise",
|
||||||
|
"eyes_surprise_r",
|
||||||
|
"eyes_surprise_u",
|
||||||
|
"eyes_surprise_d",
|
||||||
|
|
||||||
|
"eyes_annoyed",
|
||||||
|
"eyes_annoyed_r",
|
||||||
|
"eyes_annoyed_u",
|
||||||
|
"eyes_annoyed_d",
|
||||||
|
"eyes_sad",
|
||||||
|
"eyes_sad_r",
|
||||||
|
"eyes_sad_u",
|
||||||
|
"eyes_sad_d",
|
||||||
|
|
||||||
|
"eyes_suspect",
|
||||||
|
"eyes_suspect_r",
|
||||||
|
"body_karate_1*",
|
||||||
|
"body_karate_2*",
|
||||||
|
"cone_karate",
|
||||||
|
"coneb_karate",
|
||||||
|
"body_yap_1*",
|
||||||
|
"body_yap_2*",
|
||||||
|
|
||||||
|
"body_yap_3*",
|
||||||
|
"body_yap_4*",
|
||||||
|
"cone_yap_1",
|
||||||
|
"cone_yap_2",
|
||||||
|
"cone_yap_3",
|
||||||
|
"cone_yap_4",
|
||||||
|
"eyes_blank", // BLANK
|
||||||
|
"mouth_blank", // BLANK
|
||||||
|
|
||||||
|
],
|
||||||
|
x: 110+171,
|
||||||
|
y: 200+242,
|
||||||
|
OVERRIDE_LAYER_NAMES: ["coneb", "body", "mouth", "eyes", "cone"]
|
||||||
|
};
|
||||||
|
|
||||||
|
// ANIM LOOPS
|
||||||
|
var animLoops = [];
|
||||||
|
|
||||||
|
// Inherit from Character!
|
||||||
|
Character.apply(self, [spriteConfig, animLoops]);
|
||||||
|
|
||||||
|
// Go To Frames!
|
||||||
|
self.gotoFrames({
|
||||||
|
body: "normal",
|
||||||
|
mouth: "normal",
|
||||||
|
eyes: "normal",
|
||||||
|
});
|
||||||
|
var _subscriptions = [];
|
||||||
|
_subscriptions.push( subscribe("bb", self.gotoFrames) );
|
||||||
|
_subscriptions.push( subscribe("DONE_SPEAKING", self.whenDoneSpeaking) );
|
||||||
|
|
||||||
|
// Draw!
|
||||||
|
var ticker = 0;
|
||||||
|
self.characterSpeakerID = "b";
|
||||||
|
// self.bounceHookes = 0.25;
|
||||||
|
// self.bounceDamp = 0.9;
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Kill!
|
||||||
|
self.kill = function(){
|
||||||
|
_subscriptions.forEach(unsubscribe);
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,99 @@
|
||||||
|
Loader.addImages([
|
||||||
|
{ id:"act4_hong", src:"sprites/act4/hong_convo.png" }
|
||||||
|
]);
|
||||||
|
|
||||||
|
function Act4_Hong(){
|
||||||
|
|
||||||
|
var self = this;
|
||||||
|
|
||||||
|
// SPRITE CONFIG!
|
||||||
|
var spriteConfig = {
|
||||||
|
image: Library.images.act4_hong,
|
||||||
|
grid:{
|
||||||
|
width: 8,
|
||||||
|
height: 5
|
||||||
|
},
|
||||||
|
frame:{
|
||||||
|
width: 400,
|
||||||
|
height: 400
|
||||||
|
},
|
||||||
|
anchor:{
|
||||||
|
x: 55,
|
||||||
|
y: 135
|
||||||
|
},
|
||||||
|
frameNames:[
|
||||||
|
|
||||||
|
"body_sit*",
|
||||||
|
"body_sigh_1*",
|
||||||
|
"body_sigh_2*",
|
||||||
|
"body_hold",
|
||||||
|
"body_normal",
|
||||||
|
"body_one_up",
|
||||||
|
"body_point",
|
||||||
|
"body_shrug",
|
||||||
|
|
||||||
|
"body_chin",
|
||||||
|
"body_hands_1",
|
||||||
|
"body_hands_2",
|
||||||
|
"eyes_normal",
|
||||||
|
"eyes_normal_l",
|
||||||
|
"eyes_surprise",
|
||||||
|
"eyes_surprise_l",
|
||||||
|
"eyes_annoyed",
|
||||||
|
|
||||||
|
"eyes_annoyed_l",
|
||||||
|
"eyes_angry",
|
||||||
|
"eyes_angry_l",
|
||||||
|
"eyes_suspect",
|
||||||
|
"eyes_suspect_l",
|
||||||
|
"eyes_sad",
|
||||||
|
"eyes_sad_l",
|
||||||
|
"eyes_look_up",
|
||||||
|
|
||||||
|
"mouth_normal",
|
||||||
|
"mouth_normal_talk",
|
||||||
|
"mouth_happy",
|
||||||
|
"mouth_happy_talk",
|
||||||
|
"mouth_sad",
|
||||||
|
"mouth_sad_talk",
|
||||||
|
"mouth_narrow",
|
||||||
|
"mouth_narrow_talk",
|
||||||
|
|
||||||
|
"mouth_blank", // BLANK
|
||||||
|
"eyes_blank", // BLANK
|
||||||
|
|
||||||
|
],
|
||||||
|
x: 0+55,
|
||||||
|
y: 258+135
|
||||||
|
};
|
||||||
|
|
||||||
|
// ANIM LOOPS
|
||||||
|
var animLoops = [];
|
||||||
|
|
||||||
|
// Inherit from Character!
|
||||||
|
Character.apply(self, [spriteConfig, animLoops]);
|
||||||
|
|
||||||
|
// Go To Frames!
|
||||||
|
self.gotoFrames({
|
||||||
|
body: "sit",
|
||||||
|
mouth: "blank",
|
||||||
|
eyes: "blank",
|
||||||
|
},0);
|
||||||
|
var _subscriptions = [];
|
||||||
|
_subscriptions.push( subscribe("hong", self.gotoFrames) );
|
||||||
|
_subscriptions.push( subscribe("DONE_SPEAKING", self.whenDoneSpeaking) );
|
||||||
|
//_subscriptions.push( subscribe("attack_hong", self.showAttackedIcon) );
|
||||||
|
|
||||||
|
// Draw
|
||||||
|
self.characterSpeakerID = "h";
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Kill!
|
||||||
|
self.kill = function(){
|
||||||
|
_subscriptions.forEach(unsubscribe);
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -26,8 +26,10 @@ function Character(spriteConfig, animLoops){
|
||||||
self.animLoops = animLoops || [];
|
self.animLoops = animLoops || [];
|
||||||
|
|
||||||
// Sprite!
|
// Sprite!
|
||||||
|
var THERE_IS_A_CONE = !!spriteConfig.OVERRIDE_LAYER_NAMES;
|
||||||
|
var LAYER_NAMES = spriteConfig.OVERRIDE_LAYER_NAMES || ["body","mouth","eyes"];
|
||||||
self.layers = {};
|
self.layers = {};
|
||||||
["body","mouth","eyes"].forEach(function(layerName){
|
LAYER_NAMES.forEach(function(layerName){
|
||||||
self.layers[layerName] = new Sprite(spriteConfig);
|
self.layers[layerName] = new Sprite(spriteConfig);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -102,6 +104,12 @@ function Character(spriteConfig, animLoops){
|
||||||
l.mouth.gotoFrameByName( "mouth_"+c.mouth );
|
l.mouth.gotoFrameByName( "mouth_"+c.mouth );
|
||||||
l.eyes.gotoFrameByName( "eyes_"+c.eyes );
|
l.eyes.gotoFrameByName( "eyes_"+c.eyes );
|
||||||
|
|
||||||
|
// LOCK IN THE CONE TO BODY + MOUTH, IF ANY
|
||||||
|
if(THERE_IS_A_CONE){
|
||||||
|
l.cone.gotoFrameByName( "cone_normal" );
|
||||||
|
l.coneb.gotoFrameByName( "coneb_normal" );
|
||||||
|
}
|
||||||
|
|
||||||
// MOUTH LOCK?
|
// MOUTH LOCK?
|
||||||
if(args.MOUTH_LOCK){
|
if(args.MOUTH_LOCK){
|
||||||
self.MOUTH_LOCK = l.mouth.currentFrameName;
|
self.MOUTH_LOCK = l.mouth.currentFrameName;
|
||||||
|
@ -142,10 +150,18 @@ function Character(spriteConfig, animLoops){
|
||||||
self.bounceVel *= self.bounceDamp;
|
self.bounceVel *= self.bounceDamp;
|
||||||
var totalSquash = self.characterSquash * self.bounce;
|
var totalSquash = self.characterSquash * self.bounce;
|
||||||
l.body.squash = l.mouth.squash = l.eyes.squash = totalSquash;
|
l.body.squash = l.mouth.squash = l.eyes.squash = totalSquash;
|
||||||
|
if(THERE_IS_A_CONE){
|
||||||
|
l.cone.squash = l.coneb.squash = totalSquash;
|
||||||
|
}
|
||||||
|
|
||||||
// Anim Loop rules!
|
// Anim Loop rules!
|
||||||
self.runAnimLoopRules();
|
self.runAnimLoopRules();
|
||||||
|
|
||||||
|
// SUPER HACK
|
||||||
|
if(THERE_IS_A_CONE){
|
||||||
|
l.coneb.draw(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
// Body
|
// Body
|
||||||
l.body.draw(ctx);
|
l.body.draw(ctx);
|
||||||
|
|
||||||
|
@ -177,6 +193,11 @@ function Character(spriteConfig, animLoops){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SUPER HACK
|
||||||
|
if(THERE_IS_A_CONE){
|
||||||
|
l.cone.draw(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
// Draw attacked icon
|
// Draw attacked icon
|
||||||
if(IVE_BEEN_ATTACKED){
|
if(IVE_BEEN_ATTACKED){
|
||||||
|
|
||||||
|
|
|
@ -102,7 +102,7 @@ function BG_Intro(){
|
||||||
0, // clouds
|
0, // clouds
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
20,
|
20, // stump
|
||||||
0,
|
0,
|
||||||
20
|
20
|
||||||
]
|
]
|
||||||
|
|
|
@ -4,10 +4,9 @@ Loader.addScenes([
|
||||||
"scenes/intro.md",
|
"scenes/intro.md",
|
||||||
"scenes/act1.md",
|
"scenes/act1.md",
|
||||||
"scenes/intermission.md",
|
"scenes/intermission.md",
|
||||||
//"scenes/act2_test.md",
|
|
||||||
"scenes/act2.md",
|
"scenes/act2.md",
|
||||||
"scenes/act3.md",
|
"scenes/act3.md",
|
||||||
"scenes/act4.md",
|
"scenes/act4_test.md",
|
||||||
"scenes/credits.md"
|
"scenes/credits.md"
|
||||||
|
|
||||||
]);
|
]);
|
||||||
|
@ -42,8 +41,12 @@ subscribe("START_GAME", function(){
|
||||||
//Game.goto("act2");
|
//Game.goto("act2");
|
||||||
|
|
||||||
// Act 3
|
// Act 3
|
||||||
_ = {"CHAPTER":2,"attack_harm_ch1":3,"attack_alone_ch1":2,"attack_bad_ch1":1,"whitebread":true,"partyinvite":"ignore","subtweet":true,"serialkiller":true,"act1g":"dont","badnews":true,"factcheck":false,"act1_ending":"flight","INTERMISSION_STAGE":2,"attack_harm_ch2":2,"attack_alone_ch2":1,"attack_bad_ch2":3,"a2_first_danger":"social","a2_attack_1":"alone","a2_first_choice":"ignore","a2_second_danger":"ignore","a2_attack_2":"harm","a2_attack_3":"harm","SPECIAL_ATTACK":"bad","a2_ending":"fight"};
|
//_ = {"CHAPTER":2,"attack_harm_ch1":3,"attack_alone_ch1":2,"attack_bad_ch1":1,"whitebread":true,"partyinvite":"ignore","subtweet":true,"serialkiller":true,"act1g":"dont","badnews":true,"factcheck":false,"act1_ending":"flight","INTERMISSION_STAGE":2,"attack_harm_ch2":2,"attack_alone_ch2":1,"attack_bad_ch2":3,"a2_first_danger":"social","a2_attack_1":"alone","a2_first_choice":"ignore","a2_second_danger":"ignore","a2_attack_2":"harm","a2_attack_3":"harm","SPECIAL_ATTACK":"bad","a2_ending":"fight"};
|
||||||
Game.goto("act3");
|
//Game.goto("act3");
|
||||||
|
|
||||||
|
// Act 4
|
||||||
|
_ = {"CHAPTER":3,"attack_harm_ch1":3,"attack_alone_ch1":2,"attack_bad_ch1":1,"whitebread":true,"partyinvite":"ignore","subtweet":true,"serialkiller":true,"act1g":"dont","badnews":true,"factcheck":false,"act1_ending":"fight","INTERMISSION_STAGE":2,"attack_harm_ch2":2,"attack_alone_ch2":1,"attack_bad_ch2":3,"a2_first_danger":"social","a2_attack_1":"alone","a2_first_choice":"ignore","a2_second_danger":"ignore","a2_attack_2":"harm","a2_attack_3":"harm","SPECIAL_ATTACK":"alone","a2_ending":"fight","act3_bb_body":4,"a3_ending":"walkaway","INJURED":true};
|
||||||
|
Game.goto("act4");
|
||||||
|
|
||||||
//Game.goto("intro");
|
//Game.goto("intro");
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 182 KiB |
Before Width: | Height: | Size: 219 KiB |
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 95 KiB |
Before Width: | Height: | Size: 111 KiB |
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 176 KiB |