From eebb7da25cfa5d89a64a13ff44821d5f3c8f1c9e Mon Sep 17 00:00:00 2001 From: florianf Date: Sun, 28 Feb 2010 09:32:24 +0000 Subject: [PATCH] Haywire: Implemented a first version of the "crazy bomb". Sprites and bode are based on Mr. Bomb, of course. Haywire behaves like Mr. Bomb until jumped upon. If jumped upon, he will run around (walk with twice the speed) for five seconds, then explode. While running around Haywire will iterate through a number of different colors. When jumped upon - even when already ticking - Haywire is stunned for half a second. This does not interrupt the explosion timer, though. git-svn-id: http://supertux.lethargik.org/svn/supertux/trunk/supertux@6443 837edb03-e0f3-0310-88ca-d4d4e8b29345 --- data/images/creatures/haywire/haywire.sprite | 43 +++++++ data/images/creatures/haywire/iced-left.png | Bin 0 -> 3978 bytes data/images/creatures/haywire/left-0.png | Bin 0 -> 3406 bytes data/images/creatures/haywire/left-1.png | Bin 0 -> 3514 bytes data/images/creatures/haywire/left-2.png | Bin 0 -> 3624 bytes data/images/creatures/haywire/ticking-0.png | Bin 0 -> 3365 bytes data/images/creatures/haywire/ticking-1.png | Bin 0 -> 3493 bytes data/images/creatures/haywire/ticking-2.png | Bin 0 -> 3577 bytes data/images/creatures/haywire/ticking-3.png | Bin 0 -> 3405 bytes data/images/creatures/haywire/ticking-4.png | Bin 0 -> 3439 bytes data/images/creatures/haywire/ticking-5.png | Bin 0 -> 3624 bytes src/badguy/haywire.cpp | 162 +++++++++++++++++++++++++++ src/badguy/haywire.hpp | 50 +++++++++ src/supertux/object_factory.cpp | 2 + 14 files changed, 257 insertions(+) create mode 100644 data/images/creatures/haywire/haywire.sprite create mode 100644 data/images/creatures/haywire/iced-left.png create mode 100644 data/images/creatures/haywire/left-0.png create mode 100644 data/images/creatures/haywire/left-1.png create mode 100644 data/images/creatures/haywire/left-2.png create mode 100644 data/images/creatures/haywire/ticking-0.png create mode 100644 data/images/creatures/haywire/ticking-1.png create mode 100644 data/images/creatures/haywire/ticking-2.png create mode 100644 data/images/creatures/haywire/ticking-3.png create mode 100644 data/images/creatures/haywire/ticking-4.png create mode 100644 data/images/creatures/haywire/ticking-5.png create mode 100644 src/badguy/haywire.cpp create mode 100644 src/badguy/haywire.hpp diff --git a/data/images/creatures/haywire/haywire.sprite b/data/images/creatures/haywire/haywire.sprite new file mode 100644 index 000000000..14ec19791 --- /dev/null +++ b/data/images/creatures/haywire/haywire.sprite @@ -0,0 +1,43 @@ +(supertux-sprite + (action + (name "left") + (fps 10.0) + (hitbox 5 8 32 32) + (images "left-0.png" + "left-1.png" + "left-2.png" + "left-1.png")) + + (action + (name "right") + (fps 10.0) + (hitbox 5 8 32 32) + (mirror-action "left")) + + (action + (name "iced-left") + (hitbox 3 12 31.8 31.8) + (images "iced-left.png")) + + (action + (name "iced-right") + (hitbox 7 12 31.8 31.8) + (mirror-action "iced-left")) + + (action + (name "ticking-left") + (fps 10.0) + (hitbox 5 8 32 32) + (images "ticking-0.png" + "ticking-1.png" + "ticking-2.png" + "ticking-3.png" + "ticking-4.png" + "ticking-5.png")) + + (action + (name "ticking-right") + (fps 10.0) + (hitbox 5 8 32 32) + (mirror-action "ticking-left")) +) diff --git a/data/images/creatures/haywire/iced-left.png b/data/images/creatures/haywire/iced-left.png new file mode 100644 index 0000000000000000000000000000000000000000..d6021baeb65eb32bddfb542c4e4579419f8f341f GIT binary patch literal 3978 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 literal 0 HcmV?d00001 diff --git a/data/images/creatures/haywire/left-0.png b/data/images/creatures/haywire/left-0.png new file mode 100644 index 0000000000000000000000000000000000000000..ca50a0167539378d46fcf1ea832efaec8809c20a GIT binary patch literal 3406 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 literal 0 HcmV?d00001 diff --git a/data/images/creatures/haywire/left-1.png b/data/images/creatures/haywire/left-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ee83bdc417a0670f8fc9ab2a58518e176ec1955c GIT binary patch literal 3514 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 literal 0 HcmV?d00001 diff --git a/data/images/creatures/haywire/ticking-1.png b/data/images/creatures/haywire/ticking-1.png new file mode 100644 index 0000000000000000000000000000000000000000..9e7912ad02f2d320c30c7f7a244431a6f69608ec GIT binary patch literal 3493 zcmV;W4O;SvP)Px#24YJ`L;xTFC;(^O3U}B5000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igK0 z2?Pv%b({_W0013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z000d9 zNklLA! zCMIUJwW+b1RK-=(bVa*r9qg(LlN3p`s2EVhN7bT;Fb_ar9?YF#=FWZo?(hDd=k$-u zjEsy(wOy;#}HhQ9WSxNZA{{$DQV#sw|xnpR6o$1$D- z-d??W^+TCVX1*A8Dt)k0i`GSmflXLB#kQ9Q87@>}TXF9ES=S=q4Rh2v-ueu}jE$}E z_ycgXXP8`RI&~Gik}VM#L!MfTzHu!iDxmwQB%5wv)7E1E2qDBt=kb>R3;pE>EA_5o zoBsBWT0MVFRG+`t(0pdQa~bb`^NS2$J)24ZDdjyYR;>6C`5(W^a3seP1=zE1nT9DDYMICedM_fQAP96|ytSQy!t zFm6K`Tc|p_gIs0+&zGdqHkVym-nax%tx*7sQWC8-W?W$vl4P@aj7T+OSMhJ|F0%7i z;PgQEF+tY{&~;c+va89A3^2wK;JY`W8zwmh7GJ+x30_)plRlP zyw?Q>`k*}-Wq&F?>NNiRb`>{_MPxKe^Oi?6aLKr(KdY@+vBL0ue`R%b^@|@1dd~_T zYH5|<|MGV(q4NAc#nnxifUpPH_=}(L#N$V} zfv#W8uG`vfzR0d!Lc;AJbO-QrJrr{#a(SP=KA%+1!wIVps**<^d5z|lDmHH|lz_xZ znfJgd{M(*hf2N2_BDx(B=|<{KM9_y{NOH8#r8ntPCqhOx?L!DNHkQ%;FVW>Q;FtQk^;7hv->(j5Tw>^17oS{?CPZJgzDjEa*07?OQXK10d|^$LkA9|0it0K| z`_AxxEs6f`ZRygbO)FQf{N5+#{>yhqYM+1Ae;Byh_NcQR_6*tl{eQIcQd?soeQ4RCI9!@aX0I}_P@|;77E=u zNvbz@Z&5GoxJ7?%MpU=7v;;F}&YV6W)Ag%aGUFWi%9ZOM!C?-S;co1aeT2mVMO)C_ zZIQMm9qsS4`B(jX?bfq+|38yF@l;`()_VC#pjvDB+z-ug$^DNJQz=BLo1oB(ogJd& zh72C_=o|3K+kmViJ!G+QVLBisGg!Zv> zF1^V#L&HTJA6(1D7bdxk&1>)21*KUviZhn`cP*px+FLI`kiyV?nBpMB)0nl22>q12 zVS>;k)G-1t!1iri+ofejJvH%i2R#Wi9_Qiev(G1P{1sC7A;S)YI7npDA*9F?1{q3z z0f9ylKNfbBsl1Nl+{H;CYdf}X*U3AdkiczAEe@V}KF6?D8Lg>2RI#O1L6{o0D7oLs2ehsutgO)~cBv?5(ItabPFf;_2kxFDd z!R9T)w6(Qy(@i&VT(yalm;!t-0QY0G zG=6D_OyJUbX2XfS>9my2m+suOSiiYjn)r!7z(;}T!z508bzn~Z0n$Qc^ zM)mabqz111#CEdujvD>c{jc))o^O)0x_JNT5W@`F_`n-H{@$OBeU|I=5L(mU8In4x z#3?~9ydkbz7e=tt;94Q6Lm{yWXjvG=PAgnXlR6Yq>`eE{R5?KW=PnoS)CTHiod>NwYcn3&3AwBLg?t}VoKu~LTfFO$)vI@>t!kB?KL$u z?Waxj-mCb0)S#`df{W&@sAbmDB~-Lti7OVMa0peNDpKIP=rBYnN#F$pC6A(AB9qI| zf8-!9JiCLPJF-llHC=!0+p9!XqMlst9nwSld1Lz^Pd{%{KY7aQ_4V~%>Fn$rKBYK2 z(f;9D=Bj}0Gv=BNfApQ}ai^@rAdW$vNSGsZhEZ-Fq9OM7jB_t1lyz5e!`f;Sf+FCX$F?pj_B0Y-A!p78P0+2q}Vuz^@<( z6ZnCF4oy%3Av8*Zk0#JQfh8!F6t3@*&*qsoPcX7WpJ7UF$U0-f_tZoK!R-rI)e%Wd zCKmZoS@LKQMhs;)gKH6~E;-PCI%sDfmbFuCbNtv zI&i6<2U0*3Fb#zvilA*=r-<(rv0a;DA;fdzC>=#c>VO)gk)XLrg5ZMF4*h`6Fr z6_>~EPw-4zJtsaZOSgkpgdhiA_X$}k1noOxyuGEoVBP||1VdI?fDLA0C@aZ32}*t? zo?k_-6u~M=tb!t+4LEpM6KI~9h|`2wf6inoO-Xj~C75&OLfs^2sDZi~sH%l{to-yZ zaLS{4Ai&E(ItN)BQu%VW=PgL(z$!{YKL#R-lyNYk{N|ayacWTrLEI#el1a9Qb=u`= zYAxrRf_-y84|8TiyaH#yYEYX&>jM2}iQa4Wvgby-IF>R74(Z%yy`!{T z9MM8(3da=aasgMz10|&>XEB=EX%d9M8d7NW@qVTRtp!p-BnlN(aA>zWC71sO=m*Rr Tji{!E00000NkvXXu0mjfwl1MQ literal 0 HcmV?d00001 diff --git a/data/images/creatures/haywire/ticking-2.png b/data/images/creatures/haywire/ticking-2.png new file mode 100644 index 0000000000000000000000000000000000000000..e61c8f43f63a6e01ff6ca5dd223857ead7eb274e GIT binary patch literal 3577 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 literal 0 HcmV?d00001 diff --git a/data/images/creatures/haywire/ticking-4.png b/data/images/creatures/haywire/ticking-4.png new file mode 100644 index 0000000000000000000000000000000000000000..a1215f9d3f8ce8b20f70fa867795f0b4b44f17e4 GIT binary patch literal 3439 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 R1=j!o002ovPDHLkV1f^0nJ@qV literal 0 HcmV?d00001 diff --git a/data/images/creatures/haywire/ticking-5.png b/data/images/creatures/haywire/ticking-5.png new file mode 100644 index 0000000000000000000000000000000000000000..ec3abc99c5a56f7654048cf1705741831f2a2b72 GIT binary patch literal 3624 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 +// Copyright (C) 2010 Florian Forster +// +// 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 3 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, see . + +#include "audio/sound_manager.hpp" +#include "badguy/bomb.hpp" +#include "badguy/haywire.hpp" +#include "object/explosion.hpp" +#include "object/player.hpp" +#include "sprite/sprite.hpp" +#include "sprite/sprite_manager.hpp" +#include "supertux/object_factory.hpp" +#include "supertux/sector.hpp" +#include "util/reader.hpp" + +#define TIME_EXPLOSION 5.0 +#define TIME_STUNNED 0.5 + +Haywire::Haywire(const Reader& reader) : + WalkingBadguy(reader, "images/creatures/haywire/haywire.sprite", "left", "right"), + is_exploding(false), + is_stunned(false) +{ + walk_speed = 80; + max_drop_height = 16; + + //Prevent stutter when Tux jumps on Mr Bomb + sound_manager->preload("sounds/explosion.wav"); + + //Check if we need another sprite + if( !reader.get( "sprite", sprite_name ) ){ + return; + } + if( sprite_name == "" ){ + sprite_name = "images/creatures/haywire/haywire.sprite"; + return; + } + //Replace sprite + sprite = sprite_manager->create( sprite_name ); +} + +/* Haywire created by a dispenser always gets default sprite atm.*/ +Haywire::Haywire(const Vector& pos, Direction d) : + WalkingBadguy(pos, d, "images/creatures/haywire/haywire.sprite", "left", "right"), + is_exploding(false), + is_stunned(false) +{ + walk_speed = 80; + max_drop_height = 16; + sound_manager->preload("sounds/explosion.wav"); +} + +HitResponse +Haywire::collision(GameObject& object, const CollisionHit& hit) +{ + return WalkingBadguy::collision(object, hit); +} + +HitResponse +Haywire::collision_player(Player& player, const CollisionHit& hit) +{ + return WalkingBadguy::collision_player(player, hit); +} + +bool +Haywire::collision_squished(GameObject& object) +{ + Player* player = dynamic_cast(&object); + if (player && player->is_invincible()) { + player->bounce (*this); + kill_fall(); + return true; + } + + if (is_stunned) { + player->bounce (*this); + return true; + } + + if (!is_exploding) { + set_action ((dir == LEFT) ? "ticking-left" : "ticking-right", /* loops = */ -1); + walk_left_action = "ticking-left"; + walk_right_action = "ticking-right"; + set_walk_speed (160); + time_until_explosion = TIME_EXPLOSION; + is_exploding = true; + } + + time_stunned = TIME_STUNNED; + is_stunned = true; + + player->bounce (*this); + return true; +} + +void +Haywire::active_update(float elapsed_time) +{ + if (is_exploding) { + if (elapsed_time >= time_until_explosion) { + kill_fall (); + return; + } + else + time_until_explosion -= elapsed_time; + } + + if (is_stunned) { + if (time_stunned > elapsed_time) { + time_stunned -= elapsed_time; + return; + } + else { /* if (time_stunned <= elapsed_time) */ + elapsed_time -= time_stunned; + time_stunned = 0.0; + is_stunned = false; + } + } + + WalkingBadguy::active_update(elapsed_time); +} + +void +Haywire::kill_fall() +{ + if(is_valid()) { + remove_me(); + Explosion* explosion = new Explosion(get_bbox().get_middle()); + Sector::current()->add_object(explosion); + } + + run_dead_script(); +} + +void +Haywire::freeze() +{ + WalkingBadguy::freeze(); + sprite->set_action(dir == LEFT ? "iced-left" : "iced-right"); +} + +bool +Haywire::is_freezable() const +{ + return true; +} + +/* vim: set sw=2 sts=2 et : */ +/* EOF */ diff --git a/src/badguy/haywire.hpp b/src/badguy/haywire.hpp new file mode 100644 index 000000000..7acb3cfe2 --- /dev/null +++ b/src/badguy/haywire.hpp @@ -0,0 +1,50 @@ +// SuperTux +// Copyright (C) 2006 Matthias Braun +// Copyright (C) 2010 Florian Forster +// +// 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 3 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, see . + +#ifndef HEADER_SUPERTUX_BADGUY_HAYWIRE_HPP +#define HEADER_SUPERTUX_BADGUY_HAYWIRE_HPP + +#include "badguy/walking_badguy.hpp" + +class Haywire : public WalkingBadguy +{ +public: + Haywire(const Reader& reader); + Haywire(const Vector& pos, Direction d); + + void kill_fall(); + HitResponse collision(GameObject& object, const CollisionHit& hit); + HitResponse collision_player(Player& player, const CollisionHit& hit); + + void active_update(float elapsed_time); + + void freeze(); + bool is_freezable() const; + +protected: + bool collision_squished(GameObject& object); + +private: + bool is_exploding; + float time_until_explosion; + bool is_stunned; + float time_stunned; +}; + +#endif /* HEADER_SUPERTUX_BADGUY_HAYWIRE_HPP */ + +/* EOF */ diff --git a/src/supertux/object_factory.cpp b/src/supertux/object_factory.cpp index 669bdf49d..5ee076e93 100644 --- a/src/supertux/object_factory.cpp +++ b/src/supertux/object_factory.cpp @@ -36,6 +36,7 @@ #include "badguy/flame.hpp" #include "badguy/flyingsnowball.hpp" #include "badguy/ghosttree.hpp" +#include "badguy/haywire.hpp" #include "badguy/igel.hpp" #include "badguy/jumpy.hpp" #include "badguy/kamikazesnowball.hpp" @@ -182,6 +183,7 @@ ObjectFactory::init_factories() add_factory("flame"); add_factory("flyingsnowball"); add_factory("ghosttree"); + add_factory("haywire"); add_factory("igel"); add_factory("jumpy"); add_factory("kamikazesnowball"); -- 2.11.0