summaryrefslogtreecommitdiff
path: root/src/bossFuzzyBear.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bossFuzzyBear.cpp')
-rw-r--r--src/bossFuzzyBear.cpp42
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