diff options
Diffstat (limited to 'src/bossFuzzyBear.cpp')
-rw-r--r-- | src/bossFuzzyBear.cpp | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/src/bossFuzzyBear.cpp b/src/bossFuzzyBear.cpp index 9c91662..8d106ca 100644 --- a/src/bossFuzzyBear.cpp +++ b/src/bossFuzzyBear.cpp @@ -105,29 +105,35 @@ bool daFuzzyBear_c::collisionCat2_IceBall_15_YoshiIce(ActivePhysics *apThis, Act void daFuzzyBear_c::collisionCat9_RollingObject(ActivePhysics *apThis, ActivePhysics *apOther) { OSReport("Hit Rolling Object"); - if (this->isInvulnerable == 1) { return; } - - - this->timer = 0; - this->damage = this->damage + 5; - dActor_c *block = apOther->owner; dEn_c *blah = (dEn_c*)block; - - this->pos.x += blah->speed.x; blah->speed.x = -blah->speed.x; blah->pos.x += blah->speed.x; - - if (blah->direction == 0) { blah->direction = 1; this->roly = 0; } - else { blah->direction = 0; this->roly = 1; } - + if (blah->speed.y < 0) { blah->speed.y = -blah->speed.y; } doSpriteMovement(blah); doSpriteMovement(blah); + if (this->isInvulnerable == 1) { + + if (blah->direction == 0) { blah->direction = 1; } + else { blah->direction = 0; } + + return; + } + + if (blah->direction == 0) { blah->direction = 1; this->roly = 0; } + else { blah->direction = 0; this->roly = 1; } + + this->pos.x += blah->speed.x; + + this->timer = 0; + this->damage = this->damage + 5; + + PlaySound(this, SE_EMY_BLOW_PAKKUN_DOWN); CreateEffect(&blah->pos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 161); @@ -141,7 +147,7 @@ void daFuzzyBear_c::collisionCat13_Hammer(ActivePhysics *apThis, ActivePhysics * PlaySound(this, SE_EMY_BIG_PAKKUN_DAMAGE_1); OSReport("Hit Hammer"); this->timer = 0; - this->damage += 3; + this->damage += 5; CreateEffect(&apOther->owner->pos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 162); @@ -155,6 +161,10 @@ void daFuzzyBear_c::dieBigFall_Execute() { if (this->dying == 1) { return; } + this->rot.x = 0; // X is vertical axis + this->rot.y = 0; // Y is horizontal axis + this->rot.z = 0; // Z is ... an axis >.> + if (this->scale.x > 0.1) { PlaySound(this, SE_BOSS_CMN_DAMAGE_LAST); @@ -356,13 +366,13 @@ void daFuzzyBear_c::executeState_Bounce() { if (BigBossFuzzyBear == 0) { wallDistance = 32.0; - scaleDown = 12.0; + scaleDown = 24.0; scaleUp = 10.0; scaleBase = 2.5; } else { wallDistance = 38.0; - scaleDown = 16.0; + scaleDown = 32.0; scaleUp = 12.0; scaleBase = 3.0; } @@ -622,7 +632,7 @@ void daFuzzyBear_c::executeState_RolyPoly() { Vec tempPos = (Vec){this->pos.x, this->pos.y - 34.0, 5500.0}; - if (this->timer && 0x20) { CreateEffect(&tempPos, &(S16Vec){0,0,0}, &(Vec){0.7, 0.7, 0.7}, 242); } + if (this->timer & 0x1) { CreateEffect(&tempPos, &(S16Vec){0,0,0}, &(Vec){0.4, 0.4, 0.4}, 242); } } if (this->direction == 0) { // is even |