diff --git a/cat.html b/cat.html
index fae64ca..b662ce6 100644
--- a/cat.html
+++ b/cat.html
@@ -1860,7 +1860,7 @@ console.log("lev " + lev + " newwid " + newwid + " ratio " + ratio);
3,8, 5,8 );
this.addlevelgoals("food", 25);
- this.addlevel(21, false); // oooooooooooo
+ this.addlevel(21, true);
this.addlevelallowedthings("curtain");
this.addlevelforcethings("curtain", 2);
this.addlevelgoals("curtain", 2);
@@ -4408,6 +4408,130 @@ console.log("lev " + lev + " newwid " + newwid + " ratio " + ratio);
drawtick(ctx, x, row2y, x + imgsize, row2y + imgsize, PATHLINECOLGOOD, 3);
+ } else if (curlevel == 21) {
+ var tempslashes;
+ cury = this.drawhelpsubtitle(ctx, "Curtains", cury);
+
+ ctx.textAlign = "left";
+ ctx.textBaseline = "bottom";
+ shadowtext(ctx, "Cats like climbing curtains.", HELPTEXTSIZE,helpcol, textxspace, cury);
+ cury += HELPTEXTYSPACE;
+ cury += HELPTEXTYSPACE;
+ shadowtext(ctx, "Climb across curtains to swap places with", HELPTEXTSIZE,helpcol, textxspace, cury);
+ cury += HELPTEXTYSPACE;
+ shadowtext(ctx, "anything on the other side.", HELPTEXTSIZE,helpcol, textxspace, cury);
+ cury += HELPTEXTYSPACE;
+ shadowtext(ctx, "This also causes the curtains to become damaged.", HELPTEXTSIZE,helpcol, textxspace, cury);
+ cury += HELPTEXTYSPACE;
+
+ cury += HELPTEXTYSPACE * 1.5;
+
+ // top line of curtain demo
+ x = imgsize;
+ y = cury;
+ row1y = y;
+
+ ctx.drawImage(image['cat'], x, y, imgsize, imgsize);
+ linex[0] = x + imgsize/2;
+ liney[0] = y + imgsize/2;
+ x += gridsize;
+
+ ctx.drawImage(image['curtain'], x, y, imgsize, imgsize);
+ x += gridsize;
+
+ ctx.drawImage(image['curtain'], x, y, imgsize, imgsize);
+ x += gridsize;
+
+ ctx.drawImage(image['cheese'], x, y, imgsize, imgsize);
+ linex[1] = x + imgsize/2;
+ liney[1] = y + imgsize/2;
+ x += gridsize;
+
+ // line to show path
+ drawarrow(ctx, linex[0], liney[0], linex[1], liney[1], PATHLINECOLGOOD, LINEWIDTH, PATHARROWSIZE);
+
+ // arrow to middle
+ y = row1y + imgsize/2;
+
+ x2 = x + gridsize*2;
+ y2 = row1y + imgsize/2;
+
+ drawarrow(ctx, x, y, x2, y2, "red", HELPLINEWIDTH, HELPARROWSIZE);
+
+ /////////////
+ x = x2 + 10;
+ y = y2 - imgsize/2;
+
+ ctx.drawImage(image['cheese'], x, y, imgsize, imgsize);
+ x += gridsize;
+
+ ctx.drawImage(image['curtainshred'], x, y, imgsize, imgsize);
+ x += gridsize;
+
+ ctx.drawImage(image['curtainshred'], x, y, imgsize, imgsize);
+ x += gridsize;
+
+ ctx.drawImage(image['catfull'], x, y, imgsize, imgsize);
+ x += gridsize;
+ // oooooooo swap lines
+
+ cury = y + gridsize;
+ cury += HELPTEXTYSPACE;
+ cury += HELPTEXTYSPACE;
+
+ shadowtext(ctx, "Climbing a damaged curtain will shred and destroy it!", HELPTEXTSIZE,helpcol, textxspace, cury);
+ cury += HELPTEXTYSPACE;
+ cury += HELPTEXTYSPACE;
+
+
+ // top line of curtain blow up demo
+ x = imgsize;
+ y = cury;
+ row1y = y;
+
+ ctx.drawImage(image['cat'], x, y, imgsize, imgsize);
+ linex[0] = x + imgsize/2;
+ liney[0] = y + imgsize/2;
+ x += gridsize;
+
+ ctx.drawImage(image['curtainshred'], x, y, imgsize, imgsize);
+ x += gridsize;
+
+ ctx.drawImage(image['curtainshred'], x, y, imgsize, imgsize);
+ x += gridsize;
+
+ ctx.drawImage(image['cheese'], x, y, imgsize, imgsize);
+ linex[1] = x + imgsize/2;
+ liney[1] = y + imgsize/2;
+ x += gridsize;
+
+ // line to show path
+ drawarrow(ctx, linex[0], liney[0], linex[1], liney[1], PATHLINECOLGOOD, LINEWIDTH, PATHARROWSIZE);
+
+ // arrow to middle
+ y = row1y + imgsize/2;
+
+ x2 = x + gridsize*2;
+ y2 = row1y + imgsize/2;
+
+ drawarrow(ctx, x, y, x2, y2, "red", HELPLINEWIDTH, HELPARROWSIZE);
+
+ /////////////
+ x = x2 + 10;
+ y = y2 - imgsize/2;
+
+ ctx.drawImage(image['cheese'], x, y, imgsize, imgsize);
+ x += gridsize;
+
+ ctx.drawImage(image['pow'], x, y, imgsize, imgsize);
+ x += gridsize;
+
+ ctx.drawImage(image['pow'], x, y, imgsize, imgsize);
+ x += gridsize;
+
+ ctx.drawImage(image['catfull'], x, y, imgsize, imgsize);
+ x += gridsize;
+
}
ctx.textAlign = "center";
diff --git a/todo b/todo
index fcd158b..d8f215b 100644
--- a/todo
+++ b/todo
@@ -10,8 +10,6 @@ https://www.smashingmagazine.com/2012/10/design-your-own-mobile-game/
-------------------
-*things shouldn't all if something is swapping to underneath them!.
-
new door fell down on top of new goat!!
(or the other way around ??)
check code for doors falling when off the top of the screen.
@@ -23,10 +21,6 @@ change 'thing' to have a constructor!!
curtain
- *normal chance for curtain (5%)
- *allowing climbing over to curtain from any dir
- *becomesleepy after climb
- *curtain shred explosion
help (lev21)
cats can climb across curtains in any direction.
@@ -55,7 +49,6 @@ curtain
remaining levels.
- *19/20 - more with brick patterns
22/23/24 - curtains (shred 2, 4, 6)
24/25/26 - boxes
26/27/28 - cat toys