| 169 | } |
| 170 | |
| 171 | float Player::getSpellCooldownSmooth(SpellType spellType) const |
| 172 | { |
| 173 | uint32_t spellIndex = static_cast<uint32_t>(spellType); |
| 174 | if(spellIndex >= mSpellsCooldown.size()) |
| 175 | { |
| 176 | OD_LOG_ERR("seatId=" + Helper::toString(getId()) + ", spellType=" + SpellManager::getSpellNameFromSpellType(spellType)); |
| 177 | return 0; |
| 178 | } |
| 179 | |
| 180 | const PlayerSpellData& cooldown = mSpellsCooldown.at(spellIndex); |
| 181 | uint32_t cooldownTurns = cooldown.mCooldownNbTurnPending; |
| 182 | if(cooldownTurns <= 0) |
| 183 | return 0.0f; |
| 184 | |
| 185 | uint32_t maxCooldownTurns = SpellManager::getSpellCooldown(spellType); |
| 186 | if(maxCooldownTurns <= 0) |
| 187 | return 0.0f; |
| 188 | |
| 189 | float cooldownTime = static_cast<float>(cooldownTurns - 1) / ODApplication::turnsPerSecond; |
| 190 | cooldownTime += cooldown.mCooldownTimePendingTurn; |
| 191 | float maxCooldownTime = static_cast<float>(maxCooldownTurns) / ODApplication::turnsPerSecond; |
| 192 | |
| 193 | return cooldownTime / maxCooldownTime; |
| 194 | } |
| 195 | |
| 196 | float Player::getSpellCooldownSmoothTime(SpellType spellType) const |
| 197 | { |
no test coverage detected