From: Stephen Groundwater Date: Tue, 14 Feb 2006 16:42:29 +0000 (+0000) Subject: added Christoph's sleepy spiky, created a plant badguy using Grumbel's plant.xcf... X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=cbbcc7dfbaca831dc4cbf714ff54b246135f7625;p=supertux.git added Christoph's sleepy spiky, created a plant badguy using Grumbel's plant.xcf -still wip, added a sound for Mr.Tree -still WIP, changed the castle door level some, added Christoph to the credits SVN-Revision: 3060 --- diff --git a/AUTHORS b/AUTHORS index c41f2df45..c6ef81b36 100644 --- a/AUTHORS +++ b/AUTHORS @@ -64,6 +64,9 @@ Graphics Settra settra@free.fr + Stephen Groundwater + slacker@gluebox.com + Level Design ------------ diff --git a/data/Jamfile b/data/Jamfile index 366b94d59..07bbf5c84 100644 --- a/data/Jamfile +++ b/data/Jamfile @@ -66,6 +66,8 @@ IMAGEPATHS = images/creatures/mr_rocket images/creatures/bouncing_snowball images/creatures/dummyguy + images/creatures/plant + images/creatures/sspiky ; for p in $(IMAGEPATHS) { diff --git a/data/credits.txt b/data/credits.txt index e30a52a80..6ad9a2ca7 100644 --- a/data/credits.txt +++ b/data/credits.txt @@ -41,6 +41,7 @@ Richard Smith + Christoph Sommer -Graphics diff --git a/data/images/background/castledoor.jpg b/data/images/background/castledoor.jpg index 7612ff9e3..dba23b677 100644 Binary files a/data/images/background/castledoor.jpg and b/data/images/background/castledoor.jpg differ diff --git a/data/images/creatures/mr_tree/small-left-0.png b/data/images/creatures/mr_tree/small-left-0.png index 954161a8e..38cb7069f 100644 Binary files a/data/images/creatures/mr_tree/small-left-0.png and b/data/images/creatures/mr_tree/small-left-0.png differ diff --git a/data/images/creatures/mr_tree/small-left-1.png b/data/images/creatures/mr_tree/small-left-1.png index 0b350cc4e..f4219a101 100644 Binary files a/data/images/creatures/mr_tree/small-left-1.png and b/data/images/creatures/mr_tree/small-left-1.png differ diff --git a/data/images/creatures/mr_tree/small-left-2.png b/data/images/creatures/mr_tree/small-left-2.png index b4ccfb3d2..cc1fe368e 100644 Binary files a/data/images/creatures/mr_tree/small-left-2.png and b/data/images/creatures/mr_tree/small-left-2.png differ diff --git a/data/images/creatures/mr_tree/small-left-3.png b/data/images/creatures/mr_tree/small-left-3.png index 37f13cff7..013526397 100644 Binary files a/data/images/creatures/mr_tree/small-left-3.png and b/data/images/creatures/mr_tree/small-left-3.png differ diff --git a/data/images/creatures/mr_tree/small-left-4.png b/data/images/creatures/mr_tree/small-left-4.png index c15939ad2..bfed3fb51 100644 Binary files a/data/images/creatures/mr_tree/small-left-4.png and b/data/images/creatures/mr_tree/small-left-4.png differ diff --git a/data/images/creatures/mr_tree/small-left-5.png b/data/images/creatures/mr_tree/small-left-5.png index a823178a7..412740c45 100644 Binary files a/data/images/creatures/mr_tree/small-left-5.png and b/data/images/creatures/mr_tree/small-left-5.png differ diff --git a/data/images/creatures/nolok/jump-0.png b/data/images/creatures/nolok/jump-0.png index efcdbde31..1598b6b97 100644 Binary files a/data/images/creatures/nolok/jump-0.png and b/data/images/creatures/nolok/jump-0.png differ diff --git a/data/images/creatures/nolok/jump-1.png b/data/images/creatures/nolok/jump-1.png index 43432a4bf..5369c1a41 100644 Binary files a/data/images/creatures/nolok/jump-1.png and b/data/images/creatures/nolok/jump-1.png differ diff --git a/data/images/creatures/nolok/nolok.sprite b/data/images/creatures/nolok/nolok.sprite index 0e90d6dfe..f9be99064 100644 --- a/data/images/creatures/nolok/nolok.sprite +++ b/data/images/creatures/nolok/nolok.sprite @@ -7,6 +7,7 @@ (images "walk-0.png" "walk-1.png" "walk-2.png" +"walk-3.png" ) ) diff --git a/data/images/creatures/nolok/walk-0.png b/data/images/creatures/nolok/walk-0.png index 68baa9ea8..a0371f114 100644 Binary files a/data/images/creatures/nolok/walk-0.png and b/data/images/creatures/nolok/walk-0.png differ diff --git a/data/images/creatures/nolok/walk-1.png b/data/images/creatures/nolok/walk-1.png index b97e57561..7c04f5f7e 100644 Binary files a/data/images/creatures/nolok/walk-1.png and b/data/images/creatures/nolok/walk-1.png differ diff --git a/data/images/creatures/nolok/walk-2.png b/data/images/creatures/nolok/walk-2.png index d5157d3f8..2cdef781f 100644 Binary files a/data/images/creatures/nolok/walk-2.png and b/data/images/creatures/nolok/walk-2.png differ diff --git a/data/images/creatures/nolok/walk-3.png b/data/images/creatures/nolok/walk-3.png index 46fa66db4..b3a31db54 100644 Binary files a/data/images/creatures/nolok/walk-3.png and b/data/images/creatures/nolok/walk-3.png differ diff --git a/data/images/creatures/plant/iced-left.png b/data/images/creatures/plant/iced-left.png new file mode 100644 index 000000000..92f6c5158 Binary files /dev/null and b/data/images/creatures/plant/iced-left.png differ diff --git a/data/images/creatures/plant/left-0.png b/data/images/creatures/plant/left-0.png new file mode 100644 index 000000000..0a1c00194 Binary files /dev/null and b/data/images/creatures/plant/left-0.png differ diff --git a/data/images/creatures/plant/left-1.png b/data/images/creatures/plant/left-1.png new file mode 100644 index 000000000..431963d49 Binary files /dev/null and b/data/images/creatures/plant/left-1.png differ diff --git a/data/images/creatures/plant/left-2.png b/data/images/creatures/plant/left-2.png new file mode 100644 index 000000000..5d1e88956 Binary files /dev/null and b/data/images/creatures/plant/left-2.png differ diff --git a/data/images/creatures/plant/plant-sleep.png b/data/images/creatures/plant/plant-sleep.png new file mode 100644 index 000000000..1fe7b9087 Binary files /dev/null and b/data/images/creatures/plant/plant-sleep.png differ diff --git a/data/images/creatures/plant/plant.png b/data/images/creatures/plant/plant.png new file mode 100644 index 000000000..c12c22972 Binary files /dev/null and b/data/images/creatures/plant/plant.png differ diff --git a/data/images/creatures/plant/plant.sprite b/data/images/creatures/plant/plant.sprite new file mode 100644 index 000000000..159a0a126 --- /dev/null +++ b/data/images/creatures/plant/plant.sprite @@ -0,0 +1,49 @@ +(supertux-sprite + (action + (name "left") + (x-offset 6) + (y-offset 10) + (images "left-0.png" + "left-1.png" + "left-2.png")) + (action + (name "right") + (x-offset 6) + (y-offset 10) + (mirror-action "left")) + (action + (name "iced-left") + (x-offset 6) + (y-offset 10) + (images "iced-left.png")) + (action + (name "iced-right") + (x-offset 6) + (y-offset 10) + (mirror-action "iced-left") + ) + (action + (name "sleeping-left") + (x-offset 6) + (y-offset 10) + (images "sleeping-left.png")) + (action + (name "sleeping-right") + (x-offset 6) + (y-offset 10) + (mirror-action "sleeping-left")) + (action + (name "waking-left") + (x-offset 6) + (y-offset 10) + (fps 6.0) + (images "waking-left-0.png" + "waking-left-1.png" + "waking-left-2.png")) + (action + (name "waking-right") + (fps 6.0) + (x-offset 6) + (y-offset 10) + (mirror-action "waking-left")) +) diff --git a/data/images/creatures/plant/sleeping-left.png b/data/images/creatures/plant/sleeping-left.png new file mode 100644 index 000000000..7a92a1f46 Binary files /dev/null and b/data/images/creatures/plant/sleeping-left.png differ diff --git a/data/images/creatures/plant/waking-left-0.png b/data/images/creatures/plant/waking-left-0.png new file mode 100644 index 000000000..688e99620 Binary files /dev/null and b/data/images/creatures/plant/waking-left-0.png differ diff --git a/data/images/creatures/plant/waking-left-1.png b/data/images/creatures/plant/waking-left-1.png new file mode 100644 index 000000000..794848518 Binary files /dev/null and b/data/images/creatures/plant/waking-left-1.png differ diff --git a/data/images/creatures/plant/waking-left-2.png b/data/images/creatures/plant/waking-left-2.png new file mode 100644 index 000000000..d1801ca0d Binary files /dev/null and b/data/images/creatures/plant/waking-left-2.png differ diff --git a/data/images/creatures/sspiky/iced-left.png b/data/images/creatures/sspiky/iced-left.png new file mode 100644 index 000000000..92f6c5158 Binary files /dev/null and b/data/images/creatures/sspiky/iced-left.png differ diff --git a/data/images/creatures/sspiky/left-0.png b/data/images/creatures/sspiky/left-0.png new file mode 100644 index 000000000..6715371e6 Binary files /dev/null and b/data/images/creatures/sspiky/left-0.png differ diff --git a/data/images/creatures/sspiky/left-1.png b/data/images/creatures/sspiky/left-1.png new file mode 100644 index 000000000..2ca33ab84 Binary files /dev/null and b/data/images/creatures/sspiky/left-1.png differ diff --git a/data/images/creatures/sspiky/left-2.png b/data/images/creatures/sspiky/left-2.png new file mode 100644 index 000000000..eb845fbe6 Binary files /dev/null and b/data/images/creatures/sspiky/left-2.png differ diff --git a/data/images/creatures/sspiky/sleeping-left.png b/data/images/creatures/sspiky/sleeping-left.png new file mode 100644 index 000000000..45a847b19 Binary files /dev/null and b/data/images/creatures/sspiky/sleeping-left.png differ diff --git a/data/images/creatures/sspiky/sspiky.sprite b/data/images/creatures/sspiky/sspiky.sprite new file mode 100644 index 000000000..159a0a126 --- /dev/null +++ b/data/images/creatures/sspiky/sspiky.sprite @@ -0,0 +1,49 @@ +(supertux-sprite + (action + (name "left") + (x-offset 6) + (y-offset 10) + (images "left-0.png" + "left-1.png" + "left-2.png")) + (action + (name "right") + (x-offset 6) + (y-offset 10) + (mirror-action "left")) + (action + (name "iced-left") + (x-offset 6) + (y-offset 10) + (images "iced-left.png")) + (action + (name "iced-right") + (x-offset 6) + (y-offset 10) + (mirror-action "iced-left") + ) + (action + (name "sleeping-left") + (x-offset 6) + (y-offset 10) + (images "sleeping-left.png")) + (action + (name "sleeping-right") + (x-offset 6) + (y-offset 10) + (mirror-action "sleeping-left")) + (action + (name "waking-left") + (x-offset 6) + (y-offset 10) + (fps 6.0) + (images "waking-left-0.png" + "waking-left-1.png" + "waking-left-2.png")) + (action + (name "waking-right") + (fps 6.0) + (x-offset 6) + (y-offset 10) + (mirror-action "waking-left")) +) diff --git a/data/images/creatures/sspiky/waking-left-0.png b/data/images/creatures/sspiky/waking-left-0.png new file mode 100644 index 000000000..05093259f Binary files /dev/null and b/data/images/creatures/sspiky/waking-left-0.png differ diff --git a/data/images/creatures/sspiky/waking-left-1.png b/data/images/creatures/sspiky/waking-left-1.png new file mode 100644 index 000000000..28cb484ea Binary files /dev/null and b/data/images/creatures/sspiky/waking-left-1.png differ diff --git a/data/images/creatures/sspiky/waking-left-2.png b/data/images/creatures/sspiky/waking-left-2.png new file mode 100644 index 000000000..2ca33ab84 Binary files /dev/null and b/data/images/creatures/sspiky/waking-left-2.png differ diff --git a/data/images/objects/castledoor/castledoor.png b/data/images/objects/castledoor/castledoor.png index b7ff307e0..1c017fe80 100644 Binary files a/data/images/objects/castledoor/castledoor.png and b/data/images/objects/castledoor/castledoor.png differ diff --git a/data/images/objects/castledoor/keyholes.png b/data/images/objects/castledoor/keyholes.png index fd8fa1cb5..734a5672c 100644 Binary files a/data/images/objects/castledoor/keyholes.png and b/data/images/objects/castledoor/keyholes.png differ diff --git a/data/images/objects/castledoor/torchflame.sprite b/data/images/objects/castledoor/torchflame.sprite new file mode 100644 index 000000000..c685b575f --- /dev/null +++ b/data/images/objects/castledoor/torchflame.sprite @@ -0,0 +1,25 @@ +(supertux-sprite + (action + (name "normal") + (x-offset 0) + (y-offset 0) +(fps 4) + (images + +"torchflame1.png" +"torchflame1.png" + +"torchflame2.png" +"torchflame2.png" + + +"torchflame3.png" +"torchflame3.png" + +"torchflame4.png" +"torchflame4.png" +"torchflame5.png" +"torchflame5.png" + +)) +) diff --git a/data/images/objects/castledoor/torchflame.xcf b/data/images/objects/castledoor/torchflame.xcf new file mode 100644 index 000000000..7660c2bf5 Binary files /dev/null and b/data/images/objects/castledoor/torchflame.xcf differ diff --git a/data/images/objects/castledoor/torchflame1.png b/data/images/objects/castledoor/torchflame1.png new file mode 100644 index 000000000..00768c8ee Binary files /dev/null and b/data/images/objects/castledoor/torchflame1.png differ diff --git a/data/images/objects/castledoor/torchflame2.png b/data/images/objects/castledoor/torchflame2.png new file mode 100644 index 000000000..0aa4bcf93 Binary files /dev/null and b/data/images/objects/castledoor/torchflame2.png differ diff --git a/data/images/objects/castledoor/torchflame3.png b/data/images/objects/castledoor/torchflame3.png new file mode 100644 index 000000000..cdbdd1b52 Binary files /dev/null and b/data/images/objects/castledoor/torchflame3.png differ diff --git a/data/images/objects/castledoor/torchflame4.png b/data/images/objects/castledoor/torchflame4.png new file mode 100644 index 000000000..eb2c69fc0 Binary files /dev/null and b/data/images/objects/castledoor/torchflame4.png differ diff --git a/data/images/objects/castledoor/torchflame5.png b/data/images/objects/castledoor/torchflame5.png new file mode 100644 index 000000000..40eea84a3 Binary files /dev/null and b/data/images/objects/castledoor/torchflame5.png differ diff --git a/data/images/tiles/doodads/clover.png b/data/images/tiles/doodads/clover.png index 8f024bd48..ada03757d 100644 Binary files a/data/images/tiles/doodads/clover.png and b/data/images/tiles/doodads/clover.png differ diff --git a/data/levels/test/door_beta.stl b/data/levels/test/door_beta.stl deleted file mode 100644 index 07f7148c1..000000000 --- a/data/levels/test/door_beta.stl +++ /dev/null @@ -1,147 +0,0 @@ -;; Generated by Flexlay Editor -(supertux-level - (version 2) - (name (_ "No Name")) - (author "No Author") - (sector - (name "main") - (gravity 10.000000) - (tilemap - (layer "background") - (solid #f) - (speed 1.000000) - (width 25) - (height 25) - (tiles - 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 - 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 - 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 - 131 131 131 131 131 131 131 131 131 131 131 131 131 131 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 - 1477 1477 1477 1481 1481 1481 1481 1481 1481 1481 1481 1481 1481 1481 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 - 1477 1477 1477 1481 1481 1503 1503 1503 1503 1503 1481 1481 1481 1481 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 - 1477 1477 1481 1481 1503 1503 1503 1503 1503 1503 1503 1481 1481 1481 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 - 1477 1481 1481 1503 1503 1526 1526 1526 1526 1526 1503 1503 1481 1481 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 - 1481 1481 1503 1503 1526 1526 1526 1526 1526 1526 1526 1503 1503 1481 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 1478 - 1481 1503 1503 1526 1526 1526 1526 1526 1526 1526 1526 1526 1503 1503 131 131 131 131 131 131 131 131 131 131 131 - 1481 1503 1520 1523 1523 1523 1523 1523 1523 1523 1523 1523 1529 1503 1477 1477 1477 1477 1477 1477 1477 1477 1477 1481 1481 - 1517 1503 1521 1527 1527 1527 1527 1527 1527 1527 1527 1527 1530 1503 1517 1481 1479 1480 1481 1482 1483 1484 1485 1481 1481 - 1518 1503 1522 1525 1525 1525 1525 1525 1525 1525 1525 1525 1531 1503 1518 1481 1486 1487 1488 1489 1490 1491 1492 1481 1481 - 1488 1503 1520 1523 1523 1523 1523 1523 1523 1523 1523 1523 1529 1503 1481 1481 1493 1494 1495 1496 1497 1498 1499 1485 1481 - 1495 1503 1521 1527 1527 1527 1527 1527 1527 1527 1527 1527 1530 1503 1481 1481 1500 1501 1502 1503 1504 1505 1506 1481 1481 - 1502 1503 1522 1528 1528 1528 1528 1528 1528 1528 1528 1528 1531 1503 1481 1481 1507 1508 1509 1485 1481 1481 1485 1481 1481 - 1481 1503 1526 1526 1526 1526 1526 1526 1526 1526 1526 1526 1526 1503 1481 1481 1485 1481 1481 1481 1481 1481 1481 1485 1481 - 340 340 341 341 341 341 341 341 341 341 341 341 341 342 1481 1485 1481 1485 1481 1481 1481 1481 1485 1481 1481 - 1091 1091 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 341 341 341 341 341 341 341 341 341 341 341 342 - 1091 1091 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 449 449 449 449 449 449 449 449 449 449 449 449 - 1091 1091 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 449 449 449 449 449 449 449 449 449 449 449 449 - 1091 1091 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 1014 449 449 - 1091 1091 1146 1146 1146 1146 1146 1146 1146 1146 1146 1146 1146 1146 1146 1146 1146 1146 1014 1014 1014 1014 1014 1091 1091 - 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1014 1014 1014 1014 1014 1014 1014 1091 1091 - 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1091 1146 1146 1146 1146 1146 1146 1146 1091 1091 - )) - (tilemap - (layer "interactive") - (solid #t) - (speed 1.000000) - (width 25) - (height 25) - (tiles - 1510 1510 1510 1510 1510 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 132 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 132 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 1348 0 - 61 61 61 61 61 61 61 61 61 61 61 61 61 61 0 0 0 0 0 0 0 0 0 79 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 0 0 0 0 0 0 0 0 79 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 0 0 0 0 0 0 0 79 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1349 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61 61 61 61 61 61 61 61 61 61 61 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 1519 0 0 0 1519 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 1519 0 0 0 1519 0 0 0 1519 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 28 28 28 28 29 0 0 0 0 0 27 28 28 28 28 28 28 28 28 28 28 28 28 28 28 - 0 0 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 27 28 28 28 28 28 28 28 28 28 28 28 28 28 28 29 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 47 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 28 28 28 28 28 28 28 29 - )) - (tilemap - (layer "foreground") - (solid #f) - (speed 1.000000) - (width 25) - (height 25) - (tiles - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - )) - (camera - (mode "normal") - ) - - (spawnpoint (name "main") (x 736) (y 640)) - (hatch - (x 736) (y 512) (sector "main") - (spawnpoint "main") - ) - (spidermite (x 201) (y 221)) - (spidermite (x 338) (y 334)) - (spidermite (x 86) (y 356)) - (infoblock (x 736) (y 192) - (message (_ "!images/objects/voicemail/voicemail.png -#Hey Tux, -#Some friends have -#left you voicemail -#messages with advice -#to find Penny. So -#don't forget to check -#your voicemail and -#good luck! -#The SuperTux Team")) - - ) - (poisonivy (x 112) (y 611)) - (secretarea (x 460.5625) - (y 209.5625) - (width 224.9375) - (height 89.0) - (message "Use the payphone to check your voicemail Tux.")) - (secretarea (x 365.3125) - (y 472.4375) - (width 229.625) - (height 90.5625) - (message "Nolok's vault doors can be used as transporters. Use them to explore his hidden areas.")) - ) - ) - -;; EOF ;; diff --git a/data/levels/world1/level2.stl b/data/levels/world1/level2.stl index c4b6be986..d4790d898 100644 --- a/data/levels/world1/level2.stl +++ b/data/levels/world1/level2.stl @@ -108,7 +108,7 @@ (y 100) ) (bell (x 5568) (y 286)) - (snowball (x 873) (y 407)) + (sspiky (x 873) (y 407)) (snowball (x 2338) (y 149)) (snowball (x 4655) (y 313)) (snowball (x 4790) (y 368)) diff --git a/data/levels/world2/castledoor.stl b/data/levels/world2/castledoor.stl index 3ca9e314d..713d5b026 100644 --- a/data/levels/world2/castledoor.stl +++ b/data/levels/world2/castledoor.stl @@ -5,6 +5,7 @@ (author "SuperTux Development Team") (sector (name "main") + (music "music/forest2.ogg") (gravity 10.000000) (tilemap (layer "background") @@ -55,13 +56,13 @@ 0 0 0 0 0 0 0 0 0 0 0 0 0 1072 1072 1072 1072 1072 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 1348 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 1002 0 1349 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1353 1353 0 1353 1353 1353 1353 1353 1353 1353 1353 1353 0 0 0 0 0 0 0 1353 0 0 0 0 0 0 0 1353 0 0 0 1353 1353 1353 1353 1353 0 0 0 0 0 0 0 0 0 0 0 0 0 )) (tilemap @@ -91,18 +92,18 @@ 1395 1395 1395 1405 1383 1368 1368 1368 1368 1368 1368 1368 1368 1368 1368 1368 1368 1368 1368 1368 1368 1379 1368 1369 0 0 0 0 1374 1387 1387 1387 1387 1394 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1382 1382 1382 1382 1405 1405 1372 1382 1405 1382 1372 1382 1372 1382 1372 1382 1372 1382 1372 1382 1372 1382 1406 1377 0 1282 1282 1000 1161 1162 1163 1164 1003 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1382 1382 1382 1382 1382 1372 1405 1372 1382 1372 1382 1372 1382 1372 1382 1372 1382 1372 1382 1372 1382 1406 1377 0 1242 1242 1242 1004 1006 1006 1006 1006 1007 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1377 0 0 1242 1242 1242 1012 1009 1009 1017 1017 1019 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1398 1377 0 0 1242 1242 1242 1012 1010 1009 1017 1017 1019 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1012 1009 1019 1282 1282 1282 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 337 1532 339 1282 1016 1019 1282 1282 1282 1282 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 27 28 29 1282 1016 1019 1282 1282 1282 1282 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 0 1404 1373 0 0 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 337 1532 338 1532 339 1282 1282 1282 1282 1282 1282 1282 1282 0 1404 1373 1389 1369 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 27 28 28 28 29 1282 1282 1282 1282 1282 1282 1282 1282 0 1404 1373 1389 1369 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 0 0 0 1282 1282 1282 1282 1282 1404 1373 1374 1399 0 0 1404 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1404 1373 1282 1408 1388 1389 1371 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 1002 1002 1002 1002 1002 1002 0 27 29 0 0 1278 1278 1278 1278 1278 1278 1278 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 0 1389 1371 1383 1401 1401 1401 1371 1372 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 1005 1005 1005 1005 1005 1005 0 0 27 29 0 0 0 1278 1278 1278 1278 1278 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1353 1374 1394 1372 1372 1372 1372 1372 1372 1372 1406 1376 1376 1377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 1013 1013 1013 1013 1013 1013 0 0 0 0 0 1278 0 0 0 1278 1278 1278 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 0 0 1374 1409 1409 1409 1409 1409 1409 1409 1377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 1013 1013 1013 1013 1013 1013 0 0 0 0 0 1278 1282 0 0 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 1282 1282 1282 1282 1282 1282 1282 1282 1282 0 1282 1282 1282 0 0 0 0 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1002 1002 1002 1002 1002 1003 0 27 29 0 0 1278 1278 1278 1278 1278 1278 1278 1000 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1003 1389 1371 1383 1401 1401 1401 1371 1372 1382 1382 1382 1382 1373 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1005 1005 1005 1005 1005 1007 0 0 27 29 0 0 0 1278 1278 1278 1278 0 1004 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1007 1374 1394 1372 1372 1372 1372 1372 1372 1372 1406 1376 1376 1377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1013 1013 1013 1013 1013 1011 0 0 0 0 0 1278 0 0 0 1278 1278 1278 1008 1013 1013 1013 1013 1010 1013 1013 1013 1013 1013 1013 1013 1015 0 1374 1409 1409 1409 1409 1409 1409 1409 1377 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1010 1013 1013 1013 1013 1011 0 0 0 0 0 1278 1282 0 0 1282 1282 1282 1016 1017 1017 1017 1017 1017 1017 1017 1017 1017 1017 1017 1017 1015 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1017 1017 1017 1017 1017 1019 1282 1282 1282 0 1282 1282 1282 0 0 0 0 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 1282 0 1019 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 @@ -112,15 +113,15 @@ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 133 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 0 - 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1001 1001 1001 1002 1002 1002 1001 1001 1001 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 133 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 132 1002 1002 1002 1002 1002 1002 1002 - 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1013 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 + 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 133 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1061 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1065 1066 1052 0 0 0 0 0 0 0 0 0 0 0 27 29 0 0 0 0 0 0 0 0 0 0 0 0 0 132 0 0 0 0 0 0 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1014 1070 1048 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 132 1002 1002 1002 1001 1001 1001 133 1002 1002 1001 1001 1001 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 0 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 1002 0 1002 1002 1002 1002 1002 1002 1002 + 1010 1013 1014 1006 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1005 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 1006 )) (tilemap (layer "foreground") @@ -189,7 +190,7 @@ (speed 1.000000) ) (scriptedobject - (x 184) (y 84) + (x 262) (y 128) (name "CASTLEDOOR") (sprite "images/objects/castledoor/castledoor.sprite") (layer 100) @@ -198,7 +199,7 @@ (solid #f) ) (scriptedobject - (x 222) (y 411) + (x 298) (y 440) (name "KEYHOLES") (sprite "images/objects/castledoor/keyholes.sprite") (layer 100) @@ -206,8 +207,8 @@ (physic-enabled #f) (solid #f) ) - (scriptedobject - (x 110) (y 30) + (scriptedobject + (x 174) (y 153) (name "FLAMES") (sprite "images/objects/castledoor/torchflame.sprite") (layer 100) @@ -215,8 +216,8 @@ (physic-enabled #f) (solid #f) ) - (scriptedobject - (x 575) (y 30) + (scriptedobject + (x 613) (y 153) (name "FLAMES") (sprite "images/objects/castledoor/torchflame.sprite") (layer 100) @@ -224,6 +225,23 @@ (physic-enabled #f) (solid #f) ) + (infoblock (x 128) (y 1408) + (message (_ "!images/objects/voicemail/voicemail.png +#Hey Tux, +#Some friends have +#left you voicemail +#messages with advice +#to find Penny. So +#don't forget to check +#your voicemail and +#good luck! +#The SuperTux Team")) + ) + (secretarea (x 632.0) + (y 807.0) + (width 124.0) + (height 77.0) + (message "check voicemail")) ) ) diff --git a/data/sounds/mr_tree.ogg b/data/sounds/mr_tree.ogg new file mode 100644 index 000000000..46df85aee Binary files /dev/null and b/data/sounds/mr_tree.ogg differ diff --git a/data/sounds/mr_treehit.ogg b/data/sounds/mr_treehit.ogg new file mode 100644 index 000000000..af72d880d Binary files /dev/null and b/data/sounds/mr_treehit.ogg differ diff --git a/src/badguy/mrtree.cpp b/src/badguy/mrtree.cpp index b06e5bd28..8955e1c9c 100644 --- a/src/badguy/mrtree.cpp +++ b/src/badguy/mrtree.cpp @@ -22,8 +22,8 @@ #include "mrtree.hpp" -static const float WALKSPEED = 50; -static const float WALKSPEED_SMALL = 30; +static const float WALKSPEED = 100; +static const float WALKSPEED_SMALL =120; MrTree::MrTree(const lisp::Lisp& reader) : mystate(STATE_BIG) @@ -32,7 +32,7 @@ MrTree::MrTree(const lisp::Lisp& reader) reader.get("y", start_position.y); stay_on_platform = false; reader.get("stay-on-platform", stay_on_platform); - bbox.set_size(84.8, 95.8); + bbox.set_size(99.8, 99.8); sprite = sprite_manager->create("images/creatures/mr_tree/mr_tree.sprite"); } @@ -55,6 +55,7 @@ MrTree::activate() sprite->set_action(dir == LEFT ? "left" : "right"); } else { physic.set_velocity_x(dir == LEFT ? -WALKSPEED_SMALL : WALKSPEED_SMALL); + bbox.set_size(31.8, 68.8); sprite->set_action(dir == LEFT ? "small-left" : "small-right"); } } @@ -79,11 +80,15 @@ MrTree::collision_squished(Player& player) mystate = STATE_NORMAL; activate(); - sound_manager->play("sounds/squish.wav", get_pos()); + + sound_manager->play("sounds/mr_tree.ogg", get_pos()); player.bounce(*this); } else { - sprite->set_action(dir == LEFT ? "squished-left" : "squished-right"); - kill_squished(player); +bbox.set_size(67.8, 99.8); +sprite->set_action(dir == LEFT ? "squished-left" : "squished-right"); +sound_manager->play("sounds/mr_treehit.ogg", get_pos()); +player.bounce(*this); + } return true; diff --git a/src/badguy/plant.cpp b/src/badguy/plant.cpp new file mode 100644 index 000000000..2017d9200 --- /dev/null +++ b/src/badguy/plant.cpp @@ -0,0 +1,117 @@ +// $Id: plant.cpp 2979 2006-01-10 00:00:04Z matzebraun $ +// +// SuperTux +// Copyright (C) 2005 Matthias Braun +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +// 02111-1307, USA. + +#include + +#include "plant.hpp" + +static const float WALKSPEED = 80; +static const float WAKE_TIME = .5; + +Plant::Plant(const lisp::Lisp& reader) +{ + reader.get("x", start_position.x); + reader.get("y", start_position.y); + bbox.set_size(31.8, 31.8); + sprite = sprite_manager->create("images/creatures/plant/plant.sprite"); + state = PLANT_SLEEPING; +} + +void +Plant::write(lisp::Writer& writer) +{ + writer.start_list("plant"); + + writer.write_float("x", start_position.x); + writer.write_float("y", start_position.y); + + writer.end_list("plant"); +} + +void +Plant::activate() +{ + //FIXME: turns sspiky around for debugging + dir = dir == LEFT ? RIGHT : LEFT; + + state = PLANT_SLEEPING; + physic.set_velocity_x(0); + sprite->set_action(dir == LEFT ? "sleeping-left" : "sleeping-right"); +} + +HitResponse +Plant::collision_solid(GameObject& , const CollisionHit& hit) +{ + if(fabsf(hit.normal.y) > .5) { // hit floor or roof? + physic.set_velocity_y(0); + } else { // hit right or left + dir = dir == LEFT ? RIGHT : LEFT; + sprite->set_action(dir == LEFT ? "left" : "right"); + physic.set_velocity_x(-physic.get_velocity_x()); + } + + return CONTINUE; +} + +HitResponse +Plant::collision_badguy(BadGuy& , const CollisionHit& hit) +{ + if(state != PLANT_WALKING) return CONTINUE; + + if(fabsf(hit.normal.x) > .8) { // left or right + dir = dir == LEFT ? RIGHT : LEFT; + sprite->set_action(dir == LEFT ? "left" : "right"); + physic.set_velocity_x(-physic.get_velocity_x()); + } + + return CONTINUE; +} + +void +Plant::active_update(float elapsed_time) { + BadGuy::active_update(elapsed_time); + + if(state == PLANT_SLEEPING) { + const Vector playerPos = Sector::current()->player->get_pos(); + const Vector myPos = this->get_pos(); + float dx = (playerPos.x - myPos.x); + float dy = (playerPos.y - myPos.y); + + // if we "see" the player + if ((((dir == LEFT) && (dx > -128) && (dx < 0)) || ((dir == RIGHT) && (dx > 0) && (dx < 128))) && (dy > -32) && (dy < 32)) { + // wake up + sprite->set_action(dir == LEFT ? "waking-left" : "waking-right"); + if(!timer.started()) timer.start(WAKE_TIME); + state = PLANT_WAKING; + } + } + + if(state == PLANT_WAKING) { + if(timer.check()) { + // start walking + sprite->set_action(dir == LEFT ? "left" : "right"); + physic.set_velocity_x(dir == LEFT ? -WALKSPEED : WALKSPEED); + state = PLANT_WALKING; + } + } + +} + +IMPLEMENT_FACTORY(Plant, "plant") diff --git a/src/badguy/plant.hpp b/src/badguy/plant.hpp new file mode 100644 index 000000000..311e8a7e7 --- /dev/null +++ b/src/badguy/plant.hpp @@ -0,0 +1,49 @@ +// $Id: plant.hpp 2642 2005-06-26 13:38:53Z matzebraun $ +// +// SuperTux +// Copyright (C) 2005 Matthias Braun +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +// 02111-1307, USA. + +#ifndef __PLANT_H__ +#define __PLANT_H__ + +#include "badguy.hpp" + +class Plant : public BadGuy +{ +public: + Plant(const lisp::Lisp& reader); + + void activate(); + void write(lisp::Writer& writer); + HitResponse collision_solid(GameObject& other, const CollisionHit& hit); + HitResponse collision_badguy(BadGuy& badguy, const CollisionHit& hit); + void active_update(float elapsed_time); + +protected: + Timer timer; + + enum PlantState { + PLANT_SLEEPING, + PLANT_WAKING, + PLANT_WALKING + }; + PlantState state; + +}; + +#endif diff --git a/src/badguy/sspiky.cpp b/src/badguy/sspiky.cpp new file mode 100644 index 000000000..da8db4866 --- /dev/null +++ b/src/badguy/sspiky.cpp @@ -0,0 +1,117 @@ +// $Id: sspiky.cpp 2979 2006-01-10 00:00:04Z matzebraun $ +// +// SuperTux +// Copyright (C) 2005 Matthias Braun +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +// 02111-1307, USA. + +#include + +#include "sspiky.hpp" + +static const float WALKSPEED = 80; +static const float WAKE_TIME = .5; + +SSpiky::SSpiky(const lisp::Lisp& reader) +{ + reader.get("x", start_position.x); + reader.get("y", start_position.y); + bbox.set_size(31.8, 31.8); + sprite = sprite_manager->create("images/creatures/sspiky/sspiky.sprite"); + state = SSPIKY_SLEEPING; +} + +void +SSpiky::write(lisp::Writer& writer) +{ + writer.start_list("sspiky"); + + writer.write_float("x", start_position.x); + writer.write_float("y", start_position.y); + + writer.end_list("sspiky"); +} + +void +SSpiky::activate() +{ + //FIXME: turns sspiky around for debugging + dir = dir == LEFT ? RIGHT : LEFT; + + state = SSPIKY_SLEEPING; + physic.set_velocity_x(0); + sprite->set_action(dir == LEFT ? "sleeping-left" : "sleeping-right"); +} + +HitResponse +SSpiky::collision_solid(GameObject& , const CollisionHit& hit) +{ + if(fabsf(hit.normal.y) > .5) { // hit floor or roof? + physic.set_velocity_y(0); + } else { // hit right or left + dir = dir == LEFT ? RIGHT : LEFT; + sprite->set_action(dir == LEFT ? "left" : "right"); + physic.set_velocity_x(-physic.get_velocity_x()); + } + + return CONTINUE; +} + +HitResponse +SSpiky::collision_badguy(BadGuy& , const CollisionHit& hit) +{ + if(state != SSPIKY_WALKING) return CONTINUE; + + if(fabsf(hit.normal.x) > .8) { // left or right + dir = dir == LEFT ? RIGHT : LEFT; + sprite->set_action(dir == LEFT ? "left" : "right"); + physic.set_velocity_x(-physic.get_velocity_x()); + } + + return CONTINUE; +} + +void +SSpiky::active_update(float elapsed_time) { + BadGuy::active_update(elapsed_time); + + if(state == SSPIKY_SLEEPING) { + const Vector playerPos = Sector::current()->player->get_pos(); + const Vector myPos = this->get_pos(); + float dx = (playerPos.x - myPos.x); + float dy = (playerPos.y - myPos.y); + + // if we "see" the player + if ((((dir == LEFT) && (dx > -128) && (dx < 0)) || ((dir == RIGHT) && (dx > 0) && (dx < 128))) && (dy > -32) && (dy < 32)) { + // wake up + sprite->set_action(dir == LEFT ? "waking-left" : "waking-right"); + if(!timer.started()) timer.start(WAKE_TIME); + state = SSPIKY_WAKING; + } + } + + if(state == SSPIKY_WAKING) { + if(timer.check()) { + // start walking + sprite->set_action(dir == LEFT ? "left" : "right"); + physic.set_velocity_x(dir == LEFT ? -WALKSPEED : WALKSPEED); + state = SSPIKY_WALKING; + } + } + +} + +IMPLEMENT_FACTORY(SSpiky, "sspiky") diff --git a/src/badguy/sspiky.hpp b/src/badguy/sspiky.hpp new file mode 100644 index 000000000..b3a28ecd1 --- /dev/null +++ b/src/badguy/sspiky.hpp @@ -0,0 +1,49 @@ +// $Id: sspiky.hpp 2642 2005-06-26 13:38:53Z matzebraun $ +// +// SuperTux +// Copyright (C) 2005 Matthias Braun +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +// 02111-1307, USA. + +#ifndef __SSPIKY_H__ +#define __SSPIKY_H__ + +#include "badguy.hpp" + +class SSpiky : public BadGuy +{ +public: + SSpiky(const lisp::Lisp& reader); + + void activate(); + void write(lisp::Writer& writer); + HitResponse collision_solid(GameObject& other, const CollisionHit& hit); + HitResponse collision_badguy(BadGuy& badguy, const CollisionHit& hit); + void active_update(float elapsed_time); + +protected: + Timer timer; + + enum SSpikyState { + SSPIKY_SLEEPING, + SSPIKY_WAKING, + SSPIKY_WALKING + }; + SSpikyState state; + +}; + +#endif