| 414 | void PlayerObject::setTouchedRing(GameObject* obj) { _touchedRingObject = obj; } |
| 415 | |
| 416 | void PlayerObject::ringJump(GameObject* obj) |
| 417 | { |
| 418 | if (_touchedRingObject && _queuedHold && m_bIsHolding) |
| 419 | { |
| 420 | GameToolbox::log("h ffsiofsfsdofs"); |
| 421 | _touchedRingObject->triggerActivated(this); |
| 422 | m_isRising = true; |
| 423 | _queuedHold = false; |
| 424 | setIsOnGround(false); |
| 425 | |
| 426 | double newYVel = m_dJumpHeight; |
| 427 | |
| 428 | switch (obj->getGameObjectType()) |
| 429 | { |
| 430 | case kGameObjectTypeDropRing: |
| 431 | switch (_currentGamemode) |
| 432 | { |
| 433 | case PlayerGamemodeUFO: |
| 434 | newYVel = -11.2 * flipMod(); |
| 435 | break; |
| 436 | case PlayerGamemodeShip: |
| 437 | case PlayerGamemodeWave: |
| 438 | newYVel = -14 * flipMod(); |
| 439 | break; |
| 440 | case PlayerGamemodeSpider: |
| 441 | newYVel = -16.5 * flipMod(); |
| 442 | break; |
| 443 | default: |
| 444 | newYVel = -15 * flipMod(); |
| 445 | break; |
| 446 | } |
| 447 | m_dYVel = newYVel; |
| 448 | activateStreak(); |
| 449 | if (_currentGamemode == PlayerGamemodeBall) m_bIsHolding = false; |
| 450 | _touchedRingObject = nullptr; |
| 451 | return; |
| 452 | case kGameObjectTypeRedJumpRing: |
| 453 | switch (_currentGamemode) |
| 454 | { |
| 455 | case PlayerGamemodeShip: |
| 456 | if (_vehicleSize != 1.0f) newYVel *= 1.4; |
| 457 | break; |
| 458 | case PlayerGamemodeUFO: |
| 459 | if (_vehicleSize == 1.0f) |
| 460 | newYVel *= 1.02; |
| 461 | else |
| 462 | newYVel *= 1.36; |
| 463 | break; |
| 464 | case PlayerGamemodeSpider: |
| 465 | case PlayerGamemodeBall: |
| 466 | newYVel *= 1.34; |
| 467 | break; |
| 468 | case PlayerGamemodeRobot: |
| 469 | newYVel *= 1.28; |
| 470 | break; |
| 471 | default: |
| 472 | newYVel *= 1.38; |
| 473 | break; |
no test coverage detected