diff --git a/index.html b/index.html
index 3db79fc..2244478 100644
--- a/index.html
+++ b/index.html
@@ -70,6 +70,9 @@
+
+
@@ -267,14 +270,13 @@
-
--->
+
diff --git a/scenes/act2.md b/scenes/act2.md
index e4f69ef..238ffe7 100644
--- a/scenes/act2.md
+++ b/scenes/act2.md
@@ -9,10 +9,18 @@ n: // callback: retweet news story, or subtweet, or Tinder serial killer (or: fa
```
Game.clearText();
publish("act2-out-1");
+```
+
+(...1000)
+
+```
+music('battle', {volume:0.5});
publish("hp_show");
```
-(#act2f)
+n: ROUND TWO: *FIGHT!*
+
+(#act2e)
[Oh god they all hate us!](#act2a_social)
@@ -356,7 +364,7 @@ b: HUMAN, WE'RE DYING. WE'RE DYING WE'RE DYING WE'RE DYI--
```
hong({body:"attacked"});
-attack("30p", _.a2_first_attack);
+attack("20p", _.a2_first_attack);
```
(...2500)
@@ -409,7 +417,7 @@ b: THEN STOP SPREADING UNSCIENTIFIC FAKE NEWS
```
hong({body:"attacked"});
-attack("10p", "bad");
+attack("20p", "bad");
```
(...2500)
@@ -428,7 +436,7 @@ b: EVERYTHING. EVERYTHING IS WRONG
```
hong({body:"attacked"});
-attack("10p", "bad");
+attack("20p", "bad");
```
(...2500)
@@ -445,7 +453,7 @@ b: STOP BEING RACIST YOU SQUINTY-EYED JERK
```
hong({body:"attacked"});
-attack("10p", "bad");
+attack("20p", "bad");
```
(...2500)
@@ -481,8 +489,9 @@ b: I'm *part* of you, you know. When you say that, you're hurting *yourself*.
b: Why are you hitting yourself, human? STOP HITTING YOURSELF.
```
+music(null);
hong({body:"attacked"});
-attack("10p", "harm");
+attack("20p", "harm");
```
(...2500)
@@ -498,8 +507,9 @@ b: And if we're both so dumb and stupid, we'll *never* figure out how to be happ
b: Oh god we're so lost! So lost so lost so los--
```
+music(null);
hong({body:"attacked"});
-attack("10p", "harm");
+attack("20p", "harm");
```
(...2500)
@@ -517,8 +527,9 @@ b: Maybe "they" are just full of crud!
b: "They" are feeding us contradictions to maintain our dependency on the Self-Help Industrial Complex!
```
+music(null);
hong({body:"attacked"});
-attack("10p", "harm");
+attack("20p", "harm");
```
(...2500)
@@ -527,7 +538,7 @@ attack("10p", "harm");
# act2f
-`hong({body:"cry"})`
+`hong({body:"cry"});`
h: ...
@@ -537,7 +548,9 @@ h: I can't appease you. I can't ignore you. I can't fight you.
h: No matter what I do, I can't seem to get rid of yo--
-`bb({body:"yell"})`
+```
+bb({body:"yell"});
+```
b: Well maybe you're NOT *SUPPOSED* TO GET RID ME.
@@ -714,11 +727,13 @@ b: I'm so sorry, human.
b: I'm going to have to use my SPECIAL ATTACK
-[harm](#act2h_attack) `_.SPECIAL_ATTACK="harm"; Game.OVERRIDE_CHOICE_LINE=true`
+`music('battle', {volume:0.5});`
-[alone](#act2h_attack) `_.SPECIAL_ATTACK="alone"; Game.OVERRIDE_CHOICE_LINE=true`
+[🗡](#act2h_attack) `_.SPECIAL_ATTACK="harm"; Game.OVERRIDE_CHOICE_LINE=true`
-[bad](#act2h_attack) `_.SPECIAL_ATTACK="bad"; Game.OVERRIDE_CHOICE_LINE=true`
+[💔](#act2h_attack) `_.SPECIAL_ATTACK="alone"; Game.OVERRIDE_CHOICE_LINE=true`
+
+[👿](#act2h_attack) `_.SPECIAL_ATTACK="bad"; Game.OVERRIDE_CHOICE_LINE=true`
# act2h_attack
@@ -737,9 +752,19 @@ h: You're gonna yap more stupid words at me again to try t--
# act2i
```
+publish("show_special_attack");
+Game.FORCE_CANT_SKIP = true;
+music(null);
+```
+
+(...5000)
+
+```
+publish("remove_special_attack");
hong({body:"defeated"});
bb({body:"sad"});
attack("100p", _.SPECIAL_ATTACK);
+Game.FORCE_CANT_SKIP = false;
```
(...2500)
@@ -793,6 +818,7 @@ Game.clearText();
publish("act2-in-4");
publish("hp_hide");
publish("act2-party-action", ["end"]);
+music(null, {fade:2});
```
(...2000)
@@ -838,9 +864,9 @@ r: I wanna see you let out that *vicious* side of you more, kid!
h2: ok sorry i have to go
-r: Ah, the voice was too strong, huh?
+r: Ah, the voice won, huh?
-r: Come to my party next weekend. I promise I'll mix something even stronger for you.
+r: Come to my party next weekend, bud. I'll mix something even stronger for ya.
`publish("act2-party-action", ["end_run"]);`
@@ -856,9 +882,10 @@ r: I wanna see you finally let loose, kid!
Game.clearText();
publish("act2-out-5");
publish("act2-outro", ["end1"]);
+music("hum", {fade:2, volume:0.6});
```
-(...3000)
+(...2500)
```
publish("act2-outro", ["end2"]);
@@ -874,6 +901,7 @@ b: God, that was *close.* We really could've--
```
Game.clearText();
publish("act2-outro", ["end3"]);
+music(null);
```
(...1000)
diff --git a/scripts/act2/Act2_BG.js b/scripts/act2/Act2_BG.js
index fca6147..5fe7f5f 100644
--- a/scripts/act2/Act2_BG.js
+++ b/scripts/act2/Act2_BG.js
@@ -4,17 +4,23 @@ TODO:
- whoosh out @done
- put hong & beebee sprites in for battle @done
- characters in @done
+- battle talk @done
+- whoosh in @done
+- party talk @done
+- whoosh out @done
+- battle talk 2 @done
+- jarring image @done
+- whoosh in @done
+- slap dat/run out @done
+- whoosh out @done
TODO:
-- battle talk
-- whoosh in
-- party talk
-- whoosh out
-- battle talk 2
-- jarring image
-- whoosh in
-- slap dat/run out
-- whoosh out
+- fight icons in bubble @done
+- music & sounds
+- put them in
+- re-use old sound effects for now
+// white noise shock sfx for bb
+- sounds: Hunter's voice, slap, white noise electic attack, party ambience, bottle slosh
****/
@@ -22,6 +28,7 @@ Loader.addImages([
{ id:"party_bg", src:"sprites/act2/party_bg.png" },
{ id:"party_action", src:"sprites/act2/party_action.png" },
{ id:"hong_bb_outro", src:"sprites/act2/hong_bb_outro.png" },
+ { id:"SPECIAL_ATTACK", src:"sprites/act2/special.png" },
]);
function BG_Party(){
@@ -223,6 +230,15 @@ function BG_Party(){
}),
subscribe("act2-outro", function(frameName){
self.outroSprite.gotoFrameByName(frameName);
+ }),
+ subscribe("show_special_attack", function(){
+ var dom = $("#special_attack");
+ dom.setAttribute("attack", _.SPECIAL_ATTACK);
+ dom.style.display = "block";
+ }),
+ subscribe("remove_special_attack", function(){
+ var dom = $("#special_attack");
+ dom.style.display = "none";
})
);
diff --git a/scripts/game/Game.js b/scripts/game/Game.js
index 5a2a413..f1d860a 100644
--- a/scripts/game/Game.js
+++ b/scripts/game/Game.js
@@ -268,7 +268,7 @@ Game.updateText = function(instant){
var gotoY = (wordsHeight<250) ? 0 : wordsHeight-250;
gotoY = 80 - gotoY;
var nextY = instant ? gotoY : currentY*0.9 + gotoY*0.1;
- Game.wordsDOM.style.top = nextY+"px";
+ Game.wordsDOM.style.top = (Math.round(nextY*10)/10)+"px";
}else{
Game.wordsDOM.style.top = Game.FORCE_TEXT_Y+"px";
}
diff --git a/sounds/music/party1.mp3 b/sounds/music/party1.mp3
new file mode 100644
index 0000000..5ecc20c
Binary files /dev/null and b/sounds/music/party1.mp3 differ
diff --git a/sounds/sfx/hit_bb.mp3 b/sounds/sfx/hit_bb.mp3
new file mode 100644
index 0000000..c7c0f62
Binary files /dev/null and b/sounds/sfx/hit_bb.mp3 differ
diff --git a/sounds/sfx/record_scratch.mp3 b/sounds/sfx/record_scratch.mp3
new file mode 100644
index 0000000..6135169
Binary files /dev/null and b/sounds/sfx/record_scratch.mp3 differ
diff --git a/styles/game.css b/styles/game.css
index c631513..f5c168d 100644
--- a/styles/game.css
+++ b/styles/game.css
@@ -50,6 +50,31 @@ div{ /*, #game_words, #game_choices, #paused, #options, #loading, #gear, #about,
pointer-events: none;
}
+#special_attack{
+
+ display: none;
+
+ position: absolute;
+ top:0; left:0;
+
+ width: 100%;
+ height: 100%;
+ background: #ff4040;
+
+ background: url(../sprites/act2/special.png);
+ background-size: auto 100%;
+
+}
+#special_attack[attack=harm]{
+ background-position: 0% 0;
+}
+#special_attack[attack=alone]{
+ background-position: -100% 0;
+}
+#special_attack[attack=bad]{
+ background-position: -200% 0;
+}
+
/******************************************************************************************************