migrate from perforce
This commit is contained in:
32
dist/Simulation/Actions/SimActionMoveProjectiles.js
vendored
Normal file
32
dist/Simulation/Actions/SimActionMoveProjectiles.js
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
export class SimActionMoveProjectiles {
|
||||
execute(simMain) {
|
||||
const simLevel = simMain.currentLevel;
|
||||
const deadProjectiles = [];
|
||||
simLevel.simProjectiles.forEach((simProjectile, idx) => {
|
||||
if (simProjectile.dead)
|
||||
deadProjectiles.push(idx);
|
||||
});
|
||||
for (const idx of deadProjectiles) {
|
||||
simLevel.simProjectiles.splice(idx, 1);
|
||||
}
|
||||
simLevel.simProjectiles.forEach((simProjectile) => {
|
||||
const target = simLevel.simEnemies[simProjectile.targetEnemyIdx];
|
||||
if (!target || target.dead) {
|
||||
simProjectile.dead = true;
|
||||
return;
|
||||
}
|
||||
const pos1 = simProjectile.position;
|
||||
const pos2 = target.position;
|
||||
const dir = pos2.subtract(pos1);
|
||||
const len = dir.magnitude();
|
||||
let duration = simProjectile.speed / simMain.gdRoot.simulation.stepsPerSecond;
|
||||
if (len < duration) {
|
||||
duration = len;
|
||||
simProjectile.dead = true;
|
||||
target.suffer(simProjectile.gdEffect);
|
||||
}
|
||||
simProjectile.position = pos1.add(dir.normalized().multiplyScalar(duration));
|
||||
});
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=SimActionMoveProjectiles.js.map
|
||||
Reference in New Issue
Block a user