ALL THE POLISH
43
index.html
|
@ -79,7 +79,7 @@
|
|||
<div class="mini-icon" pic="gear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="about" style="display:none">
|
||||
<div id="huh" style="display:none">
|
||||
<div class="icon">
|
||||
<div class="mini-icon" pic="about"></div>
|
||||
</div>
|
||||
|
@ -108,9 +108,9 @@
|
|||
<i style="color:#ff4040">Adventures With Anxiety</i> is about, well, anxiety.
|
||||
</p>
|
||||
<p>
|
||||
But I've made this story <i>for</i> folks with anxiety disorder, like myself.
|
||||
I hope it can help you see how anxiety works, with humor,
|
||||
to reduce the fear of fear itself.
|
||||
But I've made this <i>for</i> folks with anxiety disorder, like myself.
|
||||
I hope it can help you see – with humor – how anxiety works & what it wants.
|
||||
And maybe, reduce the fear of fear itself.
|
||||
</p>
|
||||
<p>
|
||||
There's also badly-drawn stick figures and a hyperactive wolf.
|
||||
|
@ -132,39 +132,8 @@
|
|||
<!-- ABOUT -->
|
||||
<div id="about">
|
||||
<div id="about_words">
|
||||
<span id="end_words1">
|
||||
Augh games take so long to make!
|
||||
This one will be done August 2019, and released for <i>free</i>.
|
||||
</span>
|
||||
<span id="end_words2">
|
||||
This is a demo for my upcoming story-game,
|
||||
which will be released for <i>free</i> in August 2019.
|
||||
</span>
|
||||
Get notified via my (once-a-month) newsletter!
|
||||
<div>
|
||||
<form id="the_newsletter" method="POST" accept-charset="utf-8" target="_blank">
|
||||
<input type="text" name="name" id="name" style="display:none"/>
|
||||
<input type="email" name="email" id="email" placeholder="your@email.com" required/>
|
||||
<div id="email_info">
|
||||
<input type="checkbox" name="gdpr" id="gdpr"/>
|
||||
<div id="consent">
|
||||
I consent to 1 ✉️ a month, that's it
|
||||
</div>
|
||||
<input type="submit" name="submit" id="submit" disabled/>
|
||||
</div>
|
||||
|
||||
<!-- Hidden -->
|
||||
<input type="hidden" name="list" value="57rMxgfbvr08aemz763COHwg"/>
|
||||
<input type="hidden" name="subform" value="yes"/>
|
||||
|
||||
<!-- Hey bots, fill this one up. -->
|
||||
<div style="display:none;">
|
||||
<label for="hp">HP</label><br/>
|
||||
<input type="text" name="hp" id="hp"/>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
Blah blah blah
|
||||
|
||||
<div class="about_padding">
|
||||
Help me keep making free games?
|
||||
|
|
173
scenes/act1.md
|
@ -1,6 +1,8 @@
|
|||
# act1
|
||||
|
||||
`SceneSetup.act1();`
|
||||
```
|
||||
SceneSetup.act1();
|
||||
```
|
||||
|
||||
(...300)
|
||||
|
||||
|
@ -8,6 +10,129 @@ n: AND THIS IS THE HUMAN'S ANXIETY
|
|||
|
||||
n: _YOU_ ARE THE ANXIETY
|
||||
|
||||
{{if window.localStorage.continueChapter=="replay"}}
|
||||
(#act1_replay)
|
||||
{{/if}}
|
||||
|
||||
{{if window.localStorage.continueChapter!="replay"}}
|
||||
(#act1_normal)
|
||||
{{/if}}
|
||||
|
||||
|
||||
|
||||
# act1_replay
|
||||
|
||||
h: Oh hey! We're back here again?
|
||||
|
||||
`hong({eyes:"0_neutral"})`
|
||||
|
||||
n: YOUR JOB IS TO PROTECT YOUR HUMAN FROM *DANGER*
|
||||
|
||||
`bb({eyes:"look", mouth:"small_lock"})`
|
||||
|
||||
n: IN FACT, REPLAYING THIS GAME IS PUTTING THEM IN *DANGER* RIGHT NOW
|
||||
|
||||
n: QUICK, WARN THEM!
|
||||
|
||||
`bb({eyes:"fear", mouth:"normal"})`
|
||||
|
||||
b: Human! Listen, we're in danger! The danger is...
|
||||
|
||||
[The player's gonna torture us again!](#act1_replay_torture)
|
||||
|
||||
[The player won't find an alternate ending!](#act1_replay_alternate)
|
||||
|
||||
[The player will get ludonarrative dissonance!](#act1_replay_dissonance)
|
||||
|
||||
# act1_replay_torture
|
||||
|
||||
```
|
||||
window.HACK_REPLAY = JSON.parse(localStorage.act4);
|
||||
```
|
||||
|
||||
{{if window.HACK_REPLAY.act1_ending=="fight"}}
|
||||
b: They'll make us curl up into a ball and cry!
|
||||
{{/if}}
|
||||
|
||||
{{if window.HACK_REPLAY.act1_ending=="flight"}}
|
||||
b: They'll make us kill your phone for giving you a panic attack!
|
||||
{{/if}}
|
||||
|
||||
{{if window.HACK_REPLAY.a2_ending=="fight"}}
|
||||
b: They'll make us *NOT* punch the party host!
|
||||
{{/if}}
|
||||
|
||||
{{if window.HACK_REPLAY.a2_ending=="flight"}}
|
||||
b: They'll make us punch the sympathetic-villain party host!
|
||||
{{/if}}
|
||||
|
||||
{{if window.HACK_REPLAY.a3_ending=="jump"}}
|
||||
h: Well at least we might not jump off the roof this ti--
|
||||
{{/if}}
|
||||
|
||||
{{if window.HACK_REPLAY.a3_ending=="walkaway"}}
|
||||
b: THEY'LL MAKE US JUMP OFF THE ROOF.
|
||||
{{/if}}
|
||||
|
||||
b: ALL THESE NEW TERRIBLE THINGS WILL HAPPEN TO US, AND THEN WE'LL--
|
||||
|
||||
(#act1_replay_end)
|
||||
|
||||
|
||||
#act1_replay_alternate
|
||||
|
||||
h: Sure, the story as a *whole* is the same, but each chapter has two possible endings, plus all the branching dialogue opti--
|
||||
|
||||
b: The player will be disappointed, close this browser tab, delete our software, and then we'll--
|
||||
|
||||
(#act1_replay_end)
|
||||
|
||||
|
||||
# act1_replay_dissonance
|
||||
|
||||
h: A lewd-what now?
|
||||
|
||||
b: The story arc was about how you can *CHOOSE* to build a healthy collaboration with your fear,
|
||||
|
||||
b: But replaying the game will give the same story, implying your *CHOICES* don't matter,
|
||||
|
||||
b: Thus showing a contradiction between the game's message and mechanics,
|
||||
|
||||
b: Thus unraveling the fabric of this narrative universe,
|
||||
|
||||
b: And then we'll--
|
||||
|
||||
(#act1_replay_end)
|
||||
|
||||
|
||||
# act1_replay_end
|
||||
|
||||
`bb({body:"panic"})`
|
||||
|
||||
b: DIEEEEEEEEEEEEEEEEEEE
|
||||
|
||||
```
|
||||
Game.clearText();
|
||||
```
|
||||
|
||||
(...1001)
|
||||
|
||||
b: hahaha
|
||||
|
||||
h: Okay let's get back into character.
|
||||
|
||||
```
|
||||
Game.clearText();
|
||||
```
|
||||
|
||||
n4: (LET _YOUR_ ANXIETY BLAH BLAH BLAH MOST SIMILAR TO WHAT _YOUR_ FEAR BLAH BLAH YOU KNOW THE DRILL)
|
||||
|
||||
(#act1_normal_choice)
|
||||
|
||||
|
||||
|
||||
# act1_normal
|
||||
|
||||
`hong({mouth:"0_neutral", eyes:"0_annoyed"})`
|
||||
|
||||
h: Oh good, my wolf's back. Faaaaantastic.
|
||||
|
@ -22,23 +147,33 @@ n: IN FACT, THAT SANDWICH IS PUTTING THEM IN *DANGER* RIGHT NOW
|
|||
|
||||
n: QUICK, WARN THEM!
|
||||
|
||||
`bb({eyes:"fear", mouth:"normal"})`
|
||||
|
||||
`Game.OVERRIDE_TEXT_SPEED = 1.25;`
|
||||
```
|
||||
bb({body:"squeeze_talk"});
|
||||
hong({body:"0_squeeze"});
|
||||
```
|
||||
|
||||
b: Human! Listen, we're in danger! The danger is...
|
||||
|
||||
`bb({body:"squeeze"})`
|
||||
|
||||
n4: (LET _YOUR_ ANXIETY COME OUT TO PLAY! PICK WHAT'S MOST SIMILAR TO WHAT _YOUR_ FEAR TELLS YOU)
|
||||
|
||||
[We're eating alone for lunch! Again!](#act1a_alone)
|
||||
(#act1_normal_choice)
|
||||
|
||||
[We're not productive while eating!](#act1a_productive)
|
||||
# act1_normal_choice
|
||||
|
||||
[That white bread's bad for us!](#act1a_bread)
|
||||
[We're eating alone for lunch! Again!](#act1a_alone) `bb({body:"squeeze_talk"})`
|
||||
|
||||
[We're not productive while eating!](#act1a_productive) `bb({body:"squeeze_talk"})`
|
||||
|
||||
[That white bread's bad for us!](#act1a_bread) `bb({body:"squeeze_talk"})`
|
||||
|
||||
# act1a_alone
|
||||
|
||||
`bb({mouth:"small", eyes:"narrow"})`
|
||||
```
|
||||
bb({body:"normal", mouth:"small", eyes:"narrow"});
|
||||
hong({body:"0_sammich"});
|
||||
```
|
||||
|
||||
b: Don't you know loneliness is associated with premature death as much as smoking 15 cigarettes a day?-
|
||||
|
||||
|
@ -79,7 +214,10 @@ n: YOU USED *FEAR OF BEING UNLOVED*
|
|||
|
||||
# act1a_productive
|
||||
|
||||
`bb({mouth:"small", eyes:"normal"});`
|
||||
```
|
||||
bb({body:"normal", mouth:"small", eyes:"normal"});
|
||||
hong({body:"0_sammich"});
|
||||
```
|
||||
|
||||
b: Whip out your laptop and do some work right now!
|
||||
|
||||
|
@ -120,7 +258,10 @@ n: YOU USED *FEAR OF BEING A BAD PERSON*
|
|||
|
||||
# act1a_bread
|
||||
|
||||
`hong({eyes:"0_annoyed"})`
|
||||
```
|
||||
bb({body:"normal", mouth:"normal", eyes:"fear"});
|
||||
hong({body:"0_sammich", eyes:"0_annoyed"});
|
||||
```
|
||||
|
||||
h: Have those studies been replicat--
|
||||
|
||||
|
@ -158,10 +299,12 @@ n: IT'S SUPER EFFECTIVE
|
|||
|
||||
b: See, human? I am your loyal guard-wolf!
|
||||
|
||||
`bb({body:"point_heart", eyes:"pretty"});`
|
||||
`bb({body:"pride_talk"});`
|
||||
|
||||
b: Trust your gut! Your feelings are always valid!
|
||||
|
||||
`bb({body:"pride"});`
|
||||
|
||||
n: GET YOUR HUMAN'S ENERGY BAR TO ZERO
|
||||
|
||||
n: TO PROTECT THEIR PHYSICAL + SOCIAL + MORAL NEEDS, YOU CAN USE:
|
||||
|
@ -225,7 +368,7 @@ b: Doesn't that weirdo throw a party *every* weekend?
|
|||
|
||||
`bb({eyes:"uncertain_right"});`
|
||||
|
||||
b: What inner void are they trying to fill? They must be deeply messed up on the inside!
|
||||
b: What inner void are they trying to fill? They must be deeply messed up inside!
|
||||
|
||||
`hong({eyes:"surprise"});`
|
||||
|
||||
|
@ -825,7 +968,7 @@ attack("10p", "bad");
|
|||
(...2500)
|
||||
|
||||
```
|
||||
hong({mouth:"anger", eyes:"fear"});
|
||||
hong({mouth:"anger", eyes:"anger"});
|
||||
Game.OVERRIDE_TEXT_SPEED = 1.5;
|
||||
_.factcheck = true;
|
||||
```
|
||||
|
@ -981,9 +1124,9 @@ b: DANGER DANGER DANGER DANGER DANGER DANGER
|
|||
|
||||
`bb({body:"point_crotch", eyes:"normal", mouth:"normal"})`
|
||||
|
||||
b: Random hookups may be able to fill the hole down there
|
||||
b: Random hookups may be able to fill the hole down there,
|
||||
|
||||
b: but they can never fill the hole
|
||||
b: but they can never fill the hole...
|
||||
|
||||
`bb({body:"point_heart", eyes:"pretty", mouth:"small"})`
|
||||
|
||||
|
|
|
@ -297,7 +297,7 @@ music(null, {fade:1});
|
|||
```
|
||||
music('battle', {volume:0.5});
|
||||
publish("hp_show");
|
||||
bb({mouth:"normal", eyes:"normal"});
|
||||
bb({body:"normal", mouth:"normal", eyes:"normal"});
|
||||
```
|
||||
|
||||
n: ROUND TWO: *FIGHT!*
|
||||
|
@ -405,6 +405,8 @@ b: ...
|
|||
|
||||
b: *GASP*
|
||||
|
||||
`bb({mouth:"small_talk"})`
|
||||
|
||||
b: I MUST WARN YOU ABOUT...
|
||||
|
||||
[*More* of the same danger!](#act2b_louder)
|
||||
|
@ -1051,9 +1053,9 @@ b: ...
|
|||
|
||||
[Jeez, human. That's really hurtful.](#act2e_hurtful)
|
||||
|
||||
[Because... "your feelings are valid"?](#act2e_valid)
|
||||
[I'm a feeling. Feelings are valid.](#act2e_valid)
|
||||
|
||||
[Human, we're *both* "just chemicals".](#act2e_rational)
|
||||
[Human, we're *both* "just chemicals."](#act2e_rational)
|
||||
|
||||
# act2e_hurtful
|
||||
|
||||
|
@ -1384,7 +1386,7 @@ bb({body:"frazzled", mouth:"frazzled", eyes:"frazzled"});
|
|||
|
||||
h: Mmm, what an exquisite palette!
|
||||
|
||||
h: A full-bodied flavor of "shut your mind up", with a subtle aftertaste of "never feel anything ever again"!
|
||||
h: A full-bodied flavor of "shut your mind up," with a subtle aftertaste of "never feel anything ever again"!
|
||||
|
||||
b: This is bad, human. This is really, really bad.
|
||||
|
||||
|
@ -1481,6 +1483,7 @@ sfx("hadouken");
|
|||
# act2i
|
||||
|
||||
```
|
||||
publish("hide_tabs");
|
||||
publish("show_special_attack");
|
||||
Game.FORCE_CANT_SKIP = true;
|
||||
music(null);
|
||||
|
@ -1490,6 +1493,7 @@ stopAllSounds();
|
|||
(...5000)
|
||||
|
||||
```
|
||||
publish("show_tabs");
|
||||
hong({ body:"final", mouth:"final" });
|
||||
bb({ body:"normal", mouth:"normal", eyes:"sad" });
|
||||
attack("100p", _.SPECIAL_ATTACK);
|
||||
|
|
|
@ -46,6 +46,10 @@ publish("act3",["roofhong",5]);
|
|||
|
||||
r: You remind me of myself when I was younger. Back when I was tormented by the animal in my head.
|
||||
|
||||
`publish("act3",["roofhunter",9]);`
|
||||
|
||||
r: I'm so grateful I can pay it forward, and help you kill the beast the way I killed mine.
|
||||
|
||||
```
|
||||
publish("act3",["roofhunter",2]);
|
||||
publish("act3",["roofhong",2]);
|
||||
|
@ -127,7 +131,7 @@ r: But that's exactly why we need death-defying thrills! Party hard! Carpe diem!
|
|||
publish("act3",["roofhunter",10]);
|
||||
```
|
||||
|
||||
r: Let's show that animal we don't give two *^dick^s* about its ^bitch^ing! Jump in.
|
||||
r: Show that animal we don't give two *^dick^s* about its ^bitch^ing! Jump in.
|
||||
|
||||
```
|
||||
publish("act3",["roofhunter",11]);
|
||||
|
@ -1143,51 +1147,52 @@ Game.WORDS_HEIGHT_BOTTOM = -1;
|
|||
Game.FORCE_TEXT_Y = -1;
|
||||
Game.clearText();
|
||||
publish("act4-injury-show");
|
||||
publish("hide_tabs");
|
||||
```
|
||||
|
||||
(...2000)
|
||||
|
||||
```
|
||||
/*sfx("hospital1");*/
|
||||
sfx("hospital1");
|
||||
publish("act4-injury", [1]);
|
||||
```
|
||||
|
||||
(...4000)
|
||||
|
||||
```
|
||||
/*stopAllSounds();*/
|
||||
stopAllSounds();
|
||||
publish("act4-injury", [0]);
|
||||
```
|
||||
|
||||
(...2000)
|
||||
|
||||
```
|
||||
/*sfx("hospital2");*/
|
||||
sfx("hospital2");
|
||||
publish("act4-injury", [2]);
|
||||
```
|
||||
|
||||
(...4000)
|
||||
|
||||
```
|
||||
/*stopAllSounds();*/
|
||||
stopAllSounds();
|
||||
publish("act4-injury", [0]);
|
||||
```
|
||||
|
||||
(...2000)
|
||||
|
||||
```
|
||||
/*sfx("hospital3");*/
|
||||
sfx("hospital3");
|
||||
publish("act4-injury", [3]);
|
||||
```
|
||||
|
||||
(...6000)
|
||||
(...8000)
|
||||
|
||||
```
|
||||
/*stopAllSounds();*/
|
||||
stopAllSounds();
|
||||
publish("act4-injury", [0]);
|
||||
```
|
||||
|
||||
(...5000)
|
||||
(...5500)
|
||||
|
||||
`_.INJURED = true;`
|
||||
|
||||
|
|
|
@ -8,6 +8,21 @@ Game.FORCE_CANT_SKIP = true;
|
|||
|
||||
(...5001)
|
||||
|
||||
```
|
||||
publish("set_how_many_prompts", [1]);
|
||||
Game.FORCE_CANT_SKIP = false;
|
||||
Game.CLICK_TO_ADVANCE = true;
|
||||
```
|
||||
|
||||
n3: (game auto-saved)
|
||||
|
||||
```
|
||||
Game.clearText();
|
||||
Game.FORCE_CANT_SKIP = true;
|
||||
```
|
||||
|
||||
(...1001)
|
||||
|
||||
```
|
||||
var hong_frame = _.INJURED ? 9 : 0;
|
||||
publish("act4", ["hong_walks_in",hong_frame]);
|
||||
|
@ -374,7 +389,7 @@ b: I'm a battered shelter dog.
|
|||
|
||||
`bb({eyes:"sad"})`
|
||||
|
||||
b: We've been through rough stuff, possibly trauma, so that's why sometimes I over-react and go--
|
||||
b: We've been through rough stuff. Maybe trauma or neglect. That's why I sometimes over-react and go:
|
||||
|
||||
```
|
||||
sfx("yaps", {volume:0.6});
|
||||
|
@ -882,7 +897,7 @@ h: Could also learn to get more comfortable with rejection.
|
|||
|
||||
`hong({ eyes:"normal" });`
|
||||
|
||||
h: Or learn to know when people *aren't* rejecting us, they're just tired or have Resting Bitch Face.
|
||||
h: Or learn to know when people *aren't* rejecting us, they're just tired or have Resting ^Bitch^ Face.
|
||||
|
||||
```
|
||||
hong({ body:"normal" });
|
||||
|
@ -1038,16 +1053,21 @@ h: When dogs want to show love and trust, they make themselves vulnerable by exp
|
|||
|
||||
`hong({body:"one_up"})`
|
||||
|
||||
h: Right now we're not *yet* secure enough to be too vulnerable, but with enough training,
|
||||
h: Maybe we're not *yet* secure enough to be too vulnerable, but with enough training,
|
||||
|
||||
`hong({body:"normal", eyes:"surprise"})`
|
||||
|
||||
h: One day we can show people the real us – all messed-up, all human.
|
||||
|
||||
`hong({eyes:"normal"})`
|
||||
```
|
||||
hong({eyes:"normal"});
|
||||
bb({ eyes:"super_sad", mouth:"smile", body:"chest" });
|
||||
```
|
||||
|
||||
b: I'll roll over if you give me a treat.
|
||||
|
||||
`bb({ eyes:"normal", mouth:"normal" });`
|
||||
|
||||
h: No.
|
||||
|
||||
(#act4_something_else)
|
||||
|
@ -1802,7 +1822,7 @@ b: I want to be a good guard-dog. Just like how hunger & thirst are alarms for y
|
|||
|
||||
`publish("act4", ["bb_closer", 8]);`
|
||||
|
||||
b: I want to be the alarm for your emotional needs – your needs for safety, belonging, goodness.
|
||||
b: I want to be the alarm for your *psychological* needs – your needs for safety, belonging, goodness.
|
||||
|
||||
`publish("act4", ["bb_closer", 1]);`
|
||||
|
||||
|
@ -1810,9 +1830,9 @@ b: But... I suck at my job, so I need you to train me.
|
|||
|
||||
`publish("act4", ["bb_closer", 4]);`
|
||||
|
||||
b: I'm not "always valid", nor "always irrational". I'm just... trying my best. So, please,
|
||||
b: I'm not "always valid," nor "always irrational." I'm just... trying my best. So, please,
|
||||
|
||||
`publish("act4", ["bb_closer", 8]);`
|
||||
`publish("act4", ["bb_closer", 30]);`
|
||||
|
||||
b: Help me help you!
|
||||
|
||||
|
@ -1848,11 +1868,11 @@ b: Maybe you can tame this wolf.
|
|||
|
||||
`Game.OVERRIDE_CHOICE_SPEAKER = "h"`
|
||||
|
||||
[Good dog.](#act4f-pat-bb) `Game.OVERRIDE_CHOICE_SPEAKER = "h"; publish("act4", ["hong_closer", 2]);`
|
||||
[Good dog.](#act4f-pat-bb) `Game.OVERRIDE_CHOICE_SPEAKER = "h"; publish("act4", ["hong_closer", 2]); publish("hide_tabs");`
|
||||
|
||||
`Game.OVERRIDE_CHOICE_SPEAKER = "b"`
|
||||
|
||||
[Good human.](#act4f-pat-hong) `Game.OVERRIDE_CHOICE_SPEAKER = "b"; publish("act4", ["bb_closer", 8]);`
|
||||
[Good human.](#act4f-pat-hong) `Game.OVERRIDE_CHOICE_SPEAKER = "b"; publish("act4", ["bb_closer", 8]); publish("hide_tabs");`
|
||||
|
||||
# act4f-pat-hong
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ _.PLAYED_BEFORE = !!window.localStorage.continueChapter;
|
|||
|
||||
`clearText()`
|
||||
|
||||
n3: Welcome! This is less of a "game", more of an interactive story. Hope you like reading, sucka!
|
||||
n3: Welcome! This is less of a "game," more of an interactive story. Hope you like reading, sucka!
|
||||
|
||||
n3: So before we start, how would *you* like to read?
|
||||
|
||||
|
|
|
@ -70,7 +70,12 @@ function Act1_Beebee(){
|
|||
"mouth_shut",
|
||||
"eyes_anger",
|
||||
|
||||
"body_meta*"
|
||||
"body_meta*",
|
||||
"body_laugh*",
|
||||
"body_pride_talk*",
|
||||
"body_pride*",
|
||||
"body_squeeze_talk*",
|
||||
"body_squeeze*",
|
||||
|
||||
],
|
||||
x: 270-7.5,
|
||||
|
@ -117,6 +122,14 @@ function Act1_Beebee(){
|
|||
ticker += 1/60;
|
||||
self.characterSquash = 1 + Math.sin(ticker*Math.TAU*7)*0.01; // seven vibes per second
|
||||
|
||||
// TOTAL HACK
|
||||
var b = self.layers.body.currentFrameName;
|
||||
if(b=="body_squeeze_talk*" || b=="body_squeeze*"){// || b=="body_pride_talk*" || b=="body_pride*"){
|
||||
self.characterSquash = 1; // TOTAL HACK
|
||||
self.bounce = 1;
|
||||
self.bounceVel = 0;
|
||||
}
|
||||
|
||||
// Old Draw
|
||||
_oldDraw.apply(self, arguments);
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ function Act1_Hong(){
|
|||
|
||||
"body_0_sammich_no_outline",
|
||||
"body_0_sammich",
|
||||
"body_0_squeeze*",
|
||||
"eyes_0_neutral",
|
||||
"eyes_0_lookaway",
|
||||
"eyes_0_annoyed",
|
||||
|
@ -65,7 +66,9 @@ function Act1_Hong(){
|
|||
"body_3_defeated1*",
|
||||
"body_3_defeated2*",
|
||||
"body_3_defeated3*",
|
||||
"body_3_defeated3_no_outline*"
|
||||
"body_3_defeated3_no_outline*",
|
||||
|
||||
"body_laugh*",
|
||||
|
||||
],
|
||||
x: 65,
|
||||
|
|
|
@ -8,10 +8,14 @@ SceneSetup.act1 = function(){
|
|||
|
||||
Game.resetScene();
|
||||
|
||||
// HI TABS
|
||||
publish("show_tabs");
|
||||
|
||||
// RESET HP
|
||||
HP.reset();
|
||||
|
||||
// ATTACKS
|
||||
Game.start(); /* RESET THE GLOBAL VAR _ */
|
||||
_.CHAPTER = 1;
|
||||
_.attack_harm_ch1 = 0;
|
||||
_.attack_alone_ch1 = 0;
|
||||
|
|
|
@ -30,7 +30,7 @@ function Act2_Beebee(){
|
|||
"body_one_up",
|
||||
"body_scream_a_1*",
|
||||
"body_scream_a_2*",
|
||||
"mouth_shocked",
|
||||
"body_shocked*",
|
||||
"mouth_small",
|
||||
"mouth_small_talk",
|
||||
|
||||
|
@ -153,8 +153,8 @@ function Act2_Beebee(){
|
|||
|
||||
// Go To Frames!
|
||||
self.gotoFrames({
|
||||
body: "normal",
|
||||
mouth: "shocked",
|
||||
body: "shocked",
|
||||
mouth: "blank",
|
||||
eyes: "blank",
|
||||
});
|
||||
var _subscriptions = [];
|
||||
|
|
|
@ -4,6 +4,9 @@ Loader.addSounds([
|
|||
|
||||
SceneSetup.act2 = function(){
|
||||
|
||||
// HI TABS
|
||||
publish("show_tabs");
|
||||
|
||||
Game.resetScene();
|
||||
|
||||
// RESET HP
|
||||
|
|
|
@ -17,9 +17,9 @@ Loader.addSounds([
|
|||
{ id:"quack", src:"sounds/sfx/quack.mp3" },
|
||||
{ id:"bottle_toss", src:"sounds/sfx/bottle_toss.mp3" },
|
||||
{ id:"bottle_slip", src:"sounds/sfx/bottle_slip.mp3" },
|
||||
/*{ id:"hospital1", src:"sounds/sfx/hospital1.mp3" },
|
||||
{ id:"hospital1", src:"sounds/sfx/hospital1.mp3" },
|
||||
{ id:"hospital2", src:"sounds/sfx/hospital2.mp3" },
|
||||
{ id:"hospital3", src:"sounds/sfx/hospital3.mp3" },*/
|
||||
{ id:"hospital3", src:"sounds/sfx/hospital3.mp3" },
|
||||
{ id:"door", src:"sounds/sfx/door.mp3" },
|
||||
|
||||
]);
|
||||
|
@ -290,6 +290,7 @@ function BG_Rooftop(){
|
|||
|
||||
};
|
||||
|
||||
var vibrateTicker = 0;
|
||||
self.draw = function(ctx){
|
||||
|
||||
ctx.save();
|
||||
|
@ -307,6 +308,12 @@ function BG_Rooftop(){
|
|||
|
||||
}else{
|
||||
|
||||
if(self.hospitalSprite.currentFrame==2){ // ambulance
|
||||
vibrateTicker += 1/60;
|
||||
self.hospitalSprite.y = Math.sin(vibrateTicker*10*Math.TAU)*5;
|
||||
}else{
|
||||
self.hospitalSprite.y = 0;
|
||||
}
|
||||
self.hospitalSprite.draw(ctx);
|
||||
|
||||
}
|
||||
|
|
|
@ -6,6 +6,9 @@ Loader.addSounds([
|
|||
|
||||
SceneSetup.act3 = function(){
|
||||
|
||||
// HI TABS
|
||||
publish("show_tabs");
|
||||
|
||||
Game.resetScene();
|
||||
|
||||
// RESET HP
|
||||
|
|
|
@ -4,6 +4,9 @@ Loader.addSounds([
|
|||
|
||||
SceneSetup.act4 = function(){
|
||||
|
||||
// HI TABS
|
||||
publish("show_tabs");
|
||||
|
||||
Game.resetScene();
|
||||
|
||||
// RESET HP
|
||||
|
|
|
@ -64,7 +64,7 @@ function BG_Credits(){
|
|||
// END MESSAGE
|
||||
var endMsg = {
|
||||
image: Library.images.credits_end_message,
|
||||
grid:{ width:3, height:2 },
|
||||
grid:{ width:4, height:1 },
|
||||
frame:{ width:720, height:1200 },
|
||||
anchor:{ x:0, y:0 },
|
||||
x:0, y:17
|
||||
|
@ -75,7 +75,7 @@ function BG_Credits(){
|
|||
{from:53.8333,to:54.4667},
|
||||
{from:57.8333,to:58.4667}].forEach(function(period, i){
|
||||
var msg = new Sprite(endMsg);
|
||||
msg.gotoFrame(i+1);
|
||||
msg.gotoFrame(i);
|
||||
msg._PERIOD = period;
|
||||
self.endMessages.push(msg);
|
||||
});
|
||||
|
|
|
@ -4,6 +4,9 @@ Loader.addSounds([
|
|||
|
||||
SceneSetup.credits = function(){
|
||||
|
||||
// BYE TABS
|
||||
publish("hide_tabs");
|
||||
|
||||
Game.resetScene();
|
||||
Game.clearText();
|
||||
|
||||
|
|
|
@ -6,21 +6,10 @@ Loader.addSounds([
|
|||
|
||||
(function(){
|
||||
|
||||
// Newsletter stuff
|
||||
var gdpr = $("#gdpr");
|
||||
var submit = $("#submit");
|
||||
gdpr.onchange = function(){
|
||||
var isChecked = gdpr.checked;
|
||||
submit.disabled = !isChecked;
|
||||
submit.value = isChecked ? "Subscribe! →" : "← plz consent";
|
||||
};
|
||||
gdpr.onchange();
|
||||
$("#the_newsletter").setAttribute("action", "https://sendy.ncase.me/subscribe");
|
||||
|
||||
// The About Button
|
||||
var aboutDOM = $("#about");
|
||||
|
||||
$("#about").onclick = function(){
|
||||
$("#huh").onclick = function(){
|
||||
aboutDOM.setAttribute("about","yes");
|
||||
aboutDOM.style.top = "40px";
|
||||
|
||||
|
@ -42,7 +31,7 @@ Loader.addSounds([
|
|||
};
|
||||
|
||||
// SHOW END
|
||||
subscribe("END_OF_DEMO", function(){
|
||||
subscribe("THE_END", function(){
|
||||
|
||||
// Hi
|
||||
About.showing = true;
|
||||
|
|
|
@ -67,12 +67,6 @@ function Character(spriteConfig, animLoops){
|
|||
};
|
||||
self.gotoFrames = function(args, bounce){
|
||||
|
||||
// Bounce?
|
||||
if(bounce===undefined) bounce=0.03; // a LITTLE bit, by default
|
||||
if(bounce!==undefined){
|
||||
self.bounce += bounce;
|
||||
}
|
||||
|
||||
// Gimme those args
|
||||
if(args.body){
|
||||
if(!self.layers.body.doesFrameNameExist("body_"+args.body)) args.body+="*"; // add * if missing
|
||||
|
@ -81,22 +75,37 @@ function Character(spriteConfig, animLoops){
|
|||
if(args.mouth) self.characterFrames.mouth = args.mouth;
|
||||
if(args.eyes) self.characterFrames.eyes = args.eyes;
|
||||
|
||||
// DID ANY PART CHANGE?
|
||||
var ANY_PART_CHANGED = false;
|
||||
|
||||
if(args.body){
|
||||
var bodyName = "body_"+args.body;
|
||||
if(self.layers.body.currentFrameName!=bodyName) ANY_PART_CHANGED=true;
|
||||
self.layers.body.gotoFrameByName(bodyName);
|
||||
self.characterFrames.body = args.body;
|
||||
}
|
||||
|
||||
if(args.mouth){
|
||||
var mouthName = "mouth_"+args.mouth;
|
||||
if(self.layers.mouth.currentFrameName!=mouthName) ANY_PART_CHANGED=true;
|
||||
self.layers.mouth.gotoFrameByName(mouthName);
|
||||
}
|
||||
|
||||
if(args.eyes){
|
||||
var eyesName = "eyes_"+args.eyes;
|
||||
if(self.layers.eyes.currentFrameName!=eyesName) ANY_PART_CHANGED=true;
|
||||
self.layers.eyes.gotoFrameByName(eyesName);
|
||||
}
|
||||
|
||||
// If NO CHANGE, then BOUNCE=0
|
||||
if(!ANY_PART_CHANGED) bounce=0;
|
||||
|
||||
// Bounce?
|
||||
if(bounce===undefined) bounce=0.03; // a LITTLE bit, by default
|
||||
if(bounce!==undefined){
|
||||
self.bounce += bounce;
|
||||
}
|
||||
|
||||
// Go go go
|
||||
var l = self.layers;
|
||||
var c = self.characterFrames;
|
||||
|
|
|
@ -228,11 +228,20 @@ Loader.addSounds([
|
|||
Game.goto("intro-start-2");
|
||||
|
||||
// Double total hack
|
||||
$("#gear").style.display = "block";
|
||||
$("#about").style.display = "block";
|
||||
publish("show_tabs");
|
||||
|
||||
});
|
||||
|
||||
subscribe("hide_tabs", function(){
|
||||
$("#gear").style.display = "none";
|
||||
$("#huh").style.display = "none";
|
||||
});
|
||||
subscribe("show_tabs", function(){
|
||||
$("#gear").style.display = "block";
|
||||
$("#huh").style.display = "block";
|
||||
});
|
||||
|
||||
|
||||
subscribe("show_options", function(){
|
||||
|
||||
ALREADY_DID_INTRO = true;
|
||||
|
|
|
@ -25,11 +25,16 @@ function BG_Intro(){
|
|||
var self = this;
|
||||
|
||||
// Sprites!
|
||||
self.logoSprite = new Sprite({
|
||||
var LOGO_SPRITE = {
|
||||
image: Library.images.intro_logo,
|
||||
grid:{ width:1, height:1 },
|
||||
grid:{ width:2, height:1 },
|
||||
frame:{ width:720, height:900 },
|
||||
});
|
||||
};
|
||||
self.logoSprite = new Sprite(LOGO_SPRITE);
|
||||
self.infoSprite = new Sprite(LOGO_SPRITE);
|
||||
self.infoSprite.gotoFrame(1);
|
||||
self.infoSprite.alpha = 0;
|
||||
|
||||
var spriteConfig = {
|
||||
image: Library.images.intro_bg,
|
||||
grid:{ width:2, height:3 },
|
||||
|
@ -101,6 +106,7 @@ function BG_Intro(){
|
|||
var parallaxTicker = 0;
|
||||
var SHOWN_PLAY_BUTTON = false;
|
||||
var SHOWN_LOGO = false;
|
||||
var tickerSinceShown = 0;
|
||||
var thePreviousFrame;
|
||||
self.draw = function(ctx){
|
||||
|
||||
|
@ -162,6 +168,13 @@ function BG_Intro(){
|
|||
}
|
||||
if(GAME_TRANSITION==0 && SHOWN_LOGO){
|
||||
self.logoSprite.draw(ctx);
|
||||
self.infoSprite.draw(ctx);
|
||||
}
|
||||
if(SHOWN_LOGO){
|
||||
tickerSinceShown += 1/60;
|
||||
if(tickerSinceShown>1.5){
|
||||
self.infoSprite.alpha = Math.min(1, tickerSinceShown-1.5);
|
||||
}
|
||||
}
|
||||
|
||||
// Show Play Button
|
||||
|
|
|
@ -15,8 +15,7 @@ SceneSetup.intro = function(){
|
|||
Game.scene.children.push(bg);
|
||||
|
||||
// TOTAL HACK
|
||||
$("#gear").style.display = "none";
|
||||
$("#about").style.display = "none";
|
||||
publish("hide_tabs");
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -31,9 +31,6 @@ subscribe("START_GAME", function(){
|
|||
$("#loading").style.display = "none";
|
||||
Game.start();
|
||||
|
||||
$("#gear").style.display = "block";
|
||||
$("#about").style.display = "block";
|
||||
|
||||
// Intro
|
||||
Game.goto("intro");
|
||||
|
||||
|
|
Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 365 KiB |
Before Width: | Height: | Size: 563 KiB After Width: | Height: | Size: 593 KiB |
Before Width: | Height: | Size: 211 KiB After Width: | Height: | Size: 240 KiB |
Before Width: | Height: | Size: 741 KiB After Width: | Height: | Size: 745 KiB |
Before Width: | Height: | Size: 352 KiB After Width: | Height: | Size: 950 KiB |
Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 301 KiB |
Before Width: | Height: | Size: 217 KiB After Width: | Height: | Size: 234 KiB |
Before Width: | Height: | Size: 252 KiB After Width: | Height: | Size: 251 KiB |
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 188 KiB |
Before Width: | Height: | Size: 176 KiB After Width: | Height: | Size: 179 KiB |
Before Width: | Height: | Size: 242 KiB After Width: | Height: | Size: 261 KiB |
|
@ -82,7 +82,7 @@ BOTTOM TABS
|
|||
|
||||
******************************************************************************************************/
|
||||
|
||||
#gear, #about{
|
||||
#gear, #huh{
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
background: #191919;
|
||||
|
@ -90,10 +90,10 @@ BOTTOM TABS
|
|||
height: 35px;
|
||||
cursor: pointer;
|
||||
}
|
||||
#gear:hover, #about:hover{
|
||||
#gear:hover, #huh:hover{
|
||||
background: #575757;
|
||||
}
|
||||
#gear > .icon, #about > .icon{
|
||||
#gear > .icon, #huh > .icon{
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
|
@ -107,11 +107,11 @@ BOTTOM TABS
|
|||
#gear > .icon{
|
||||
left: 4px;
|
||||
}
|
||||
#about{
|
||||
#huh{
|
||||
right: 0;
|
||||
border-top-left-radius: 50px;
|
||||
}
|
||||
#about > .icon{
|
||||
#huh > .icon{
|
||||
color: rgba(255,255,255,0.4);
|
||||
font-weight: bold;
|
||||
right: 19px;
|
||||
|
@ -194,6 +194,7 @@ PAUSED & LOADING
|
|||
background-size: 100%;
|
||||
}
|
||||
#loading{
|
||||
cursor: default;
|
||||
display:block;
|
||||
background:#282828;
|
||||
}
|
||||
|
|