silphius/resources/combat/projectile/diffuse.js
2024-11-04 11:28:37 -06:00

12 lines
353 B
JavaScript

import Ticker from '@/lib/ticker.js';
export default function *({Controlled, Direction, Speed}, duration, speed) {
let accumulated = 0;
while (accumulated <= duration) {
Controlled.stop();
Controlled.directionMove(Direction.direction);
accumulated += yield Ticker.wait();
Speed.speed = speed * (1 - (accumulated / duration));
}
}