MCPcopy Create free account
hub / github.com/OpenDungeons/OpenDungeons / getSpellCooldownSmooth

Method getSpellCooldownSmooth

source/game/Player.cpp:171–194  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

169}
170
171float 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
196float Player::getSpellCooldownSmoothTime(SpellType spellType) const
197{

Callers 1

Calls 1

toStringFunction · 0.70

Tested by

no test coverage detected