From a9755c6ff9ad74eeb8a59a7a3ba73677c8e552eb Mon Sep 17 00:00:00 2001
From: Christine Lemmer-Webber <cwebber@dustycloud.org>
Date: Sun, 26 May 2024 08:36:20 -0400
Subject: [PATCH] Add catboss-3 level

---
 Makefile                          |   1 +
 game.scm                          |   2 +
 modules/game/levels/catboss-3.tmx | 125 ++++++++++++++++++++++++++++++
 3 files changed, 128 insertions(+)
 create mode 100644 modules/game/levels/catboss-3.tmx

diff --git a/Makefile b/Makefile
index 2f05843..9d5e55d 100644
--- a/Makefile
+++ b/Makefile
@@ -47,6 +47,7 @@ levels = \
   modules/game/levels/level-4.scm \
   modules/game/levels/catboss-1.scm \
   modules/game/levels/catboss-2.scm \
+  modules/game/levels/catboss-3.scm \
   modules/game/levels/credits.scm
 
 game.wasm: game.scm $(modules) $(levels)
diff --git a/game.scm b/game.scm
index a067065..be7ce71 100644
--- a/game.scm
+++ b/game.scm
@@ -49,6 +49,7 @@
              (game levels level-4)
              (game levels catboss-1)
              (game levels catboss-2)
+             (game levels catboss-3)
              (game levels credits)
              (game scripts)
              (game tileset)
@@ -127,6 +128,7 @@
    ;; load-level-4
    load-catboss-1
    load-catboss-2
+   load-catboss-3
    ))
 (define *level-idx* #f)
 (define *gems* #f)
diff --git a/modules/game/levels/catboss-3.tmx b/modules/game/levels/catboss-3.tmx
new file mode 100644
index 0000000..7c507a8
--- /dev/null
+++ b/modules/game/levels/catboss-3.tmx
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<map version="1.8" tiledversion="1.8.6" orientation="orthogonal" renderorder="right-down" width="20" height="15" tilewidth="16" tileheight="16" infinite="0" nextlayerid="4" nextobjectid="139">
+ <tileset firstgid="1" source="tiles.tsx"/>
+ <layer id="1" name="background" width="20" height="15">
+  <data encoding="csv">
+191,130,191,81,108,24,107,83,82,83,125,126,125,83,82,83,127,83,84,169,
+171,169,171,105,28,24,24,3,24,20,24,3,24,24,24,24,24,18,106,189,
+151,129,209,105,24,3,3,3,3,3,3,3,3,3,24,19,24,24,106,209,
+210,210,169,85,24,24,24,24,24,24,24,3,24,24,24,24,24,24,106,131,
+190,171,171,85,24,24,24,24,24,24,24,24,24,24,24,24,24,24,106,131,
+209,81,83,108,19,24,24,24,24,24,24,24,24,24,24,24,87,103,104,130,
+151,85,24,31,24,24,31,31,31,31,31,31,31,31,31,31,106,210,150,129,
+130,105,24,31,24,24,31,3,3,3,3,3,3,3,15,20,107,84,149,130,
+129,85,19,24,24,24,24,17,24,24,24,24,24,17,24,3,24,106,189,129,
+171,105,24,24,24,24,31,3,18,3,24,24,24,3,87,102,103,104,131,189,
+131,24,18,24,24,24,31,31,3,16,3,3,3,24,86,171,209,131,169,169,
+151,101,103,88,24,24,24,24,24,24,24,24,24,24,106,191,151,189,189,189,
+190,191,169,105,24,24,24,24,24,24,24,24,24,19,106,209,189,171,131,171,
+209,210,151,101,88,24,87,102,102,103,102,102,103,103,104,150,150,190,211,191,
+151,191,149,149,105,24,106,191,169,209,149,151,149,130,150,169,130,149,131,150
+</data>
+ </layer>
+ <objectgroup id="2" name="objects">
+  <object id="1" type="player-spawn" gid="1" x="176" y="192" width="16" height="16"/>
+  <object id="30" type="gem" gid="29" x="32" y="96" width="16" height="16"/>
+  <object id="106" type="brick" gid="23" x="144" y="160" width="16" height="16"/>
+  <object id="113" type="brick" gid="23" x="144" y="176" width="16" height="16"/>
+  <object id="132" type="brick" gid="23" x="32" y="112" width="16" height="16"/>
+  <object id="100" type="block" gid="4" x="128" y="64" width="16" height="16">
+   <properties>
+    <property name="kind" value="copper"/>
+   </properties>
+  </object>
+  <object id="112" type="block" gid="4" x="160" y="176" width="16" height="16">
+   <properties>
+    <property name="kind" value="copper"/>
+   </properties>
+  </object>
+  <object id="90" type="clock-emitter" gid="49" x="64" y="32" width="16" height="16">
+   <properties>
+    <property name="interval" type="int" value="5"/>
+   </properties>
+  </object>
+  <object id="131" type="clock-emitter" gid="49" x="256" y="64" width="16" height="16">
+   <properties>
+    <property name="interval" type="int" value="5"/>
+   </properties>
+  </object>
+  <object id="121" type="clock-emitter" gid="49" x="16" y="160" width="16" height="16">
+   <properties>
+    <property name="interval" type="int" value="5"/>
+   </properties>
+  </object>
+  <object id="93" type="block" gid="30" x="128" y="80" width="16" height="16">
+   <properties>
+    <property name="kind" value="crate"/>
+   </properties>
+  </object>
+  <object id="92" type="block" gid="30" x="144" y="64" width="16" height="16">
+   <properties>
+    <property name="kind" value="crate"/>
+   </properties>
+  </object>
+  <object id="134" type="block" gid="30" x="224" y="48" width="16" height="16">
+   <properties>
+    <property name="kind" value="crate"/>
+   </properties>
+  </object>
+  <object id="135" type="block" gid="30" x="224" y="64" width="16" height="16">
+   <properties>
+    <property name="kind" value="crate"/>
+   </properties>
+  </object>
+  <object id="138" type="block" gid="30" x="240" y="64" width="16" height="16">
+   <properties>
+    <property name="kind" value="crate"/>
+   </properties>
+  </object>
+  <object id="133" type="block" gid="30" x="224" y="32" width="16" height="16">
+   <properties>
+    <property name="kind" value="crate"/>
+   </properties>
+  </object>
+  <object id="136" type="block" gid="30" x="224" y="16" width="16" height="16">
+   <properties>
+    <property name="kind" value="crate"/>
+   </properties>
+  </object>
+  <object id="116" type="block" gid="30" x="128" y="48" width="16" height="16">
+   <properties>
+    <property name="kind" value="crate"/>
+   </properties>
+  </object>
+  <object id="117" type="block" gid="30" x="112" y="64" width="16" height="16">
+   <properties>
+    <property name="kind" value="crate"/>
+   </properties>
+  </object>
+  <object id="107" type="xor-gate" gid="45" x="224" y="128" width="16" height="16">
+   <properties>
+    <property name="direction" value="right"/>
+   </properties>
+  </object>
+  <object id="109" type="electric-switch" gid="7" x="256" y="128" width="16" height="16">
+   <properties>
+    <property name="target-x" type="int" value="5"/>
+    <property name="target-y" type="int" value="13"/>
+   </properties>
+  </object>
+  <object id="114" type="bomb" gid="51" x="208" y="64" width="16" height="16"/>
+  <object id="118" type="bomb" gid="51" x="256" y="32" width="16" height="16"/>
+  <object id="115" type="gate" gid="46" x="80" y="208" width="16" height="16"/>
+  <object id="123" type="switched-emitter" gid="48" x="96" y="128" width="16" height="16">
+   <properties>
+    <property name="interval" type="int" value="5"/>
+   </properties>
+  </object>
+  <object id="129" type="floor-switch" gid="25" x="80" y="128" width="16" height="16">
+   <properties>
+    <property name="target-x" type="int" value="6"/>
+    <property name="target-y" type="int" value="8"/>
+   </properties>
+  </object>
+ </objectgroup>
+</map>