diff --git a/defs.h b/defs.h index 89dba33..509a1cb 100644 --- a/defs.h +++ b/defs.h @@ -160,6 +160,7 @@ #define SLUGINVULNTIME 50 // how long a new slug stays invulnerable for #define SHIELDTIME 600 // how long a shield lasts #define FALLSPEED 4 // terminal velocity of falling sprites +#define SMALLNETSPEED 6 // how fast the player's net moves with skull #define NETSPEED 9 // how fast the player's net moves #define BIGNETSPEED 12 // how fast the player's net moves with bignet #define ACCNETSPEED 28 // how fast the player's net moves with accordion @@ -602,6 +603,7 @@ #define PW_BADMAGNET 18 // badmagnet #define PW_JETPACK 19 // kangaroo #define PW_CAMERA 20 // camera +#define PW_SMALLNET 21 // skull // "virtual" powerup for bosses #define PW_RATSHAKE 50 // shake screen horizontally #define PW_SNAILSHAKE 51 // shake screen vertically diff --git a/rc.c b/rc.c index e1494be..41dfded 100644 --- a/rc.c +++ b/rc.c @@ -5796,6 +5796,9 @@ void drawnetting(sprite_t *s) { int ii; SDL_Color *col1,*col2; dist = (s->slamangle * (180/M_PI))/2; + if (s->powerup == PW_SMALLNET) { + dist /= 2; + } s->netxstart = s->x + cos(s->slamangle-(180*(M_PI/180)))*dist*s->dir; s->netystart = s->y + sin(s->slamangle-(180*(M_PI/180)))*dist; @@ -6448,7 +6451,7 @@ void dogravity(sprite_t *s) { s->netting++; if ((s->powerup == PW_ACCORDION) || (s->netting % 2 == 0)) { - if (s->netspeed > -NETSPEED) { + if ((s->netlen > 0) && (s->netspeed > -NETSPEED)) { s->netspeed--; } else { if (s->netlen <= 0) { @@ -6471,6 +6474,9 @@ void dogravity(sprite_t *s) { dist = (s->slamangle * (180/M_PI))/2; + if (s->powerup == PW_SMALLNET) { + dist /= 2; + } netx = s->x + cos(s->slamangle-(180*(M_PI/180)))*dist*s->dir; nety = s->y + sin(s->slamangle-(180*(M_PI/180)))*dist; if ((netx >= (640-TILEW)) || (netx <= TILEW)) { @@ -7499,9 +7505,7 @@ int dofruiteffect(sprite_t *pp, sprite_t *s) { playfx(FX_SKULL); sprintf(tempm, "Power Down!"); addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&black,&grey,POINTSDELAY, TT_NORM); - pp->netmax = 1; - pp->netsticky = B_FALSE; - pp->netbig = B_FALSE; + pp->powerup = PW_SMALLNET; return B_TRUE; } else if (s->id == P_HELP) { playfx(FX_POWERUP); @@ -9764,6 +9768,8 @@ void trytoshoot(sprite_t *pl) { adjustx(pl, F_SHOOT); if (pl->powerup == PW_ACCORDION) { pl->netspeed = ACCNETSPEED; + } else if (pl->powerup == PW_SMALLNET) { + pl->netspeed = SMALLNETSPEED; } else if (pl->netbig) { pl->netspeed = BIGNETSPEED; } else { diff --git a/shared.c b/shared.c index cc8d2bc..811b26c 100644 --- a/shared.c +++ b/shared.c @@ -3354,7 +3354,7 @@ void setfruitinfo(void) { setinfo(P_JETPACK, "Jetpack", "For the remainder of the current level, the jetpack's thrust will add to your jumping ability!", "jetpack.png"); setinfo(P_CAMERA, "Camera", "Creates a bright flash of light, blinding all enemies.", "camera.png"); setinfo(P_ZAPPOWERUP, "Bug Zapper", "Zaps nearby enemies with miniature bolts of lightning", "zapper.png"); - setinfo(P_SKULL, "Green Skull", "Avoid these at all costs! The green skull will cause you to lose all net powerups.", "skull.png"); + setinfo(P_SKULL, "Green Skull", "Avoid these at all costs! The green skull will shrink your net to miniscule proportions for the remainder of the level.", "skull.png"); setinfo(P_CLOVER, "4-Leaf Clover", "Increases your luck...", "clover.png"); setinfo(P_RANDOM, "Random", "Gives you a random effect...", "random.png"); diff --git a/website/info.html b/website/info.html index eab59d6..a76cf60 100644 --- a/website/info.html +++ b/website/info.html @@ -70,7 +70,7 @@