fix game loop timer
This commit is contained in:
+29
-3
@@ -249,6 +249,35 @@ function connectWebSocket() {
|
||||
terrain.position.set(t.position.x / 100, t.position.y / 100, 0)
|
||||
}
|
||||
|
||||
if (playerId != null) {
|
||||
const player = state.entities.find((e) => e.id == playerId)
|
||||
if (player != null) {
|
||||
for (let abilityIndex = 0; abilityIndex < 4; abilityIndex++) {
|
||||
if (player.abilities[abilityIndex] != null) {
|
||||
const ability = player.abilities[abilityIndex]
|
||||
const lastCast = player.cooldowns[ability.id] ?? -99999
|
||||
const cooldownDuration = (ability.cooldown * state.tickRate) ?? 0
|
||||
const remainingCooldown = (lastCast + cooldownDuration) - state.currentTick
|
||||
let cssPercentage = '100%'
|
||||
let text = ''
|
||||
if (remainingCooldown > 0) {
|
||||
const cooldownPercentage = 1 - (remainingCooldown / cooldownDuration)
|
||||
cssPercentage = `${Math.round(100 * cooldownPercentage)}%`
|
||||
if (remainingCooldown / state.tickRate <= 5) {
|
||||
text = `${(Math.round(10 * remainingCooldown / state.tickRate) / 10).toFixed(1)}`
|
||||
}
|
||||
else {
|
||||
text = `${Math.round(remainingCooldown / state.tickRate)}`
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById(`ability-${abilityIndex}-cooldown`).style.clipPath = `polygon(0 ${cssPercentage}, 100% ${cssPercentage}, 100% 100%, 0 100%)`
|
||||
document.getElementById(`ability-${abilityIndex}-cooldown-text`).innerHTML = text
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById('state').innerHTML = JSON.stringify(state, null, 2)
|
||||
}
|
||||
}
|
||||
@@ -291,9 +320,6 @@ window.addEventListener('load', () => {
|
||||
if (event.code == 'KeyE') {
|
||||
websocket.send(JSON.stringify({ action: 'cast', slot: 3, id: playerId, x, y }))
|
||||
}
|
||||
if (event.code == 'KeyR') {
|
||||
websocket.send(JSON.stringify({ action: 'cast', slot: 4, id: playerId, x, y }))
|
||||
}
|
||||
|
||||
if (event.code == 'KeyD') {
|
||||
websocket.send(JSON.stringify({ action: 'teleport', id: playerId, x, y }))
|
||||
|
||||
Reference in New Issue
Block a user