| 671 | } |
| 672 | |
| 673 | void Player::revive(Vec2F const& footPosition) { |
| 674 | if (!isDead()) |
| 675 | return; |
| 676 | |
| 677 | m_state = State::Idle; |
| 678 | m_emoteState = HumanoidEmote::Idle; |
| 679 | |
| 680 | m_statusController->setPersistentEffects("armor", m_armor->statusEffects()); |
| 681 | m_statusController->setPersistentEffects("tools", m_tools->statusEffects()); |
| 682 | m_statusController->resetAllResources(); |
| 683 | |
| 684 | m_statusController->clearEphemeralEffects(); |
| 685 | |
| 686 | endPrimaryFire(); |
| 687 | endAltFire(); |
| 688 | endTrigger(); |
| 689 | |
| 690 | m_effectEmitter->reset(); |
| 691 | m_movementController->setPosition(footPosition - feetOffset()); |
| 692 | m_movementController->setVelocity(Vec2F()); |
| 693 | |
| 694 | m_techController->reloadTech(); |
| 695 | |
| 696 | float moneyCost = m_inventory->currency("money") * modeConfig().reviveCostPercentile; |
| 697 | m_inventory->consumeCurrency("money", min((uint64_t)round(moneyCost), m_inventory->currency("money"))); |
| 698 | } |
| 699 | |
| 700 | bool Player::shifting() const { |
| 701 | return m_shifting; |
no test coverage detected