diff options
-rwxr-xr-x | src/mrsun.cpp | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/src/mrsun.cpp b/src/mrsun.cpp index 5c20169..b62228e 100755 --- a/src/mrsun.cpp +++ b/src/mrsun.cpp @@ -111,12 +111,13 @@ int daMrSun_c::onCreate() { this->Baseline = this->pos.y; this->SwoopSlope = 0.0; this->SpiralLoop = 0; - this->yThreshold = 100.0; + this->yThreshold = 15.0; this->yAccel = 0.2; this->timer = 0; this->xSpiralOffset = 0.0; this->ySpiralOffset = 0.0; - + + this->pos.z = 3300.00 OSReport("Setting Mr.Sun's State"); doStateChange(&StateID_Follow); @@ -177,11 +178,13 @@ void daMrSun_c::executeState_Follow() { this->speed.x = this->speed.x + speedDelta; if (this->speed.x < 0) { this->speed.x = this->speed.x + (speedDelta / 2); } + if (this->speed.x < 10.0) { this->speed.x = this->speed.x + (speedDelta); } } else { this->speed.x = this->speed.x - speedDelta; if (this->speed.x > 0) { this->speed.x = this->speed.x - (speedDelta / 2); } + if (this->speed.x > 10.0) { this->speed.x = this->speed.x + (speedDelta); } } HandleXSpeed(this); @@ -279,8 +282,8 @@ void daMrSun_c::executeState_Spiral() { Magnitude = 11.0; // Use a period of 0.1 for the moon - if (this->settings == 0) { Period = 0.075; } // It's a sun - else { Period = 0.1; } // It's a moon + if (this->settings == 0) { Period = 0.1; } // It's a sun + else { Period = 0.125; } // It's a moon this->pos.x = this->xSpiralOffset + Magnitude*((this->SpiralLoop * cos(this->SpiralLoop))); this->pos.y = this->ySpiralOffset + Magnitude*((this->SpiralLoop * sin(this->SpiralLoop))); @@ -375,7 +378,7 @@ void daMrSun_c::executeState_Spin() { else { rotBonus = 120 - this->timer; } // this->rot.x = this->rot.x + (50 * rotBonus); - this->rot.z = this->rot.z + (50 * rotBonus); + this->rot.y = this->rot.y + (50 * rotBonus); int randomBall; randomBall = GenerateRandomNumber(6); @@ -387,29 +390,29 @@ void daMrSun_c::executeState_Spin() { float ylaunch; if (direction == 0) { - xlaunch = 7.5; + xlaunch = 5.0; ylaunch = 0.0; } else if (direction == 1) { // SE - xlaunch = 7.5; - ylaunch = 7.5; } + xlaunch = 5.0; + ylaunch = 5.0; } else if (direction == 2) { // S xlaunch = 0.0; - ylaunch = 7.5; } + ylaunch = 5.0; } else if (direction == 3) { // SW - xlaunch = -7.5; - ylaunch = 7.5; } + xlaunch = -5.0; + ylaunch = 5.0; } else if (direction == 4) { // W - xlaunch = -7.5; + xlaunch = -5.0; ylaunch = 0.0; } else if (direction == 5) { // NW - xlaunch = -7.5; - ylaunch = -7.5; } + xlaunch = -5.0; + ylaunch = -5.0; } else if (direction == 6) { // N xlaunch = 0.0; - ylaunch = -7.5; } + ylaunch = -5.0; } else if (direction == 7) { // NE - xlaunch = 7.5; - ylaunch = -7.5; } + xlaunch = 5.0; + ylaunch = -5.0; } if (this->settings == 0) { @@ -437,7 +440,8 @@ void daMrSun_c::endState_Spin() { this->rot.x = 11000; this->rot.y = 0; // this->rot.z = 11000; - + + this->speed.x = 0; } @@ -472,13 +476,14 @@ void daMrSun_c::executeState_Wait() { if (this->timer > TimerMax) { // doStateChange(&StateID_Spit); - Choice = GenerateRandomNumber(6); + Choice = GenerateRandomNumber(7); OSReport("Choice: %d", Choice); if (Choice == 0) { doStateChange(&StateID_Spit); } - else if (Choice == 1) { doStateChange(&StateID_Spin); } - else if (Choice == 2) { doStateChange(&StateID_Spiral); } + else if (Choice == 1) { doStateChange(&StateID_Spit); } + else if (Choice == 2) { doStateChange(&StateID_Spin); } + else if (Choice == 3) { doStateChange(&StateID_Spiral); } else { doStateChange(&StateID_Swoop); } } |