migrate from perforce

This commit is contained in:
2026-04-19 01:16:27 +02:00
commit d161a20915
1810 changed files with 1156171 additions and 0 deletions

2
dist/Simulation/Actions/ISimAction.js vendored Normal file
View File

@@ -0,0 +1,2 @@
export {};
//# sourceMappingURL=ISimAction.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ISimAction.js","sourceRoot":"","sources":["../../../src/Simulation/Actions/ISimAction.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,11 @@
export class SimActionFireTowers {
execute(simMain) {
const level = simMain.currentLevel;
level.simCells.forEach((simCell) => {
if (simCell.simTower != null) {
simCell.simTower.fireIfAble();
}
});
}
}
//# sourceMappingURL=SimActionFireTowers.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"SimActionFireTowers.js","sourceRoot":"","sources":["../../../src/Simulation/Actions/SimActionFireTowers.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAmB;IACrB,OAAO,CAAC,OAAgB;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC;QACnC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAgB,EAAE,EAAE;YACxC,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;gBAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YAClC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}

View File

@@ -0,0 +1,33 @@
import { Hex, Vector2 } from "../../Util/index.js";
export class SimActionMoveEnemies {
execute(simMain) {
const simLevel = simMain.currentLevel;
const deadEnemies = [];
simLevel.simEnemies.forEach((simEnemy, idx) => {
if (simEnemy.dead)
deadEnemies.push(idx);
});
for (const idx of deadEnemies) {
simLevel.simEnemies.splice(idx, 1);
}
for (const simEnemy of simLevel.simEnemies) {
const duration = simEnemy.speed / simMain.gdRoot.simulation.stepsPerSecond;
const t = (simLevel.currentStep - simEnemy.currentPathStep) * duration;
const path2 = simLevel.simCells[simEnemy.path[simEnemy.currentPathIndex + 1]];
if (!path2) {
simEnemy.dead = true;
return;
}
const hex2 = path2.hex;
const pos1 = simEnemy.currentPathPosition;
const pos2 = Hex.toWorld(hex2);
simEnemy.position = Vector2.lerp(pos1, pos2, t);
if (t >= 1) {
simEnemy.currentPathIndex += 1;
simEnemy.currentPathStep = simLevel.currentStep;
simEnemy.onPathUpdated();
}
}
}
}
//# sourceMappingURL=SimActionMoveEnemies.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"SimActionMoveEnemies.js","sourceRoot":"","sources":["../../../src/Simulation/Actions/SimActionMoveEnemies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,OAAO,oBAAoB;IACtB,OAAO,CAAC,OAAgB;QAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC;QACtC,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAkB,EAAE,GAAW,EAAE,EAAE;YAC5D,IAAI,QAAQ,CAAC,IAAI;gBACb,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC5B,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC;YAC3E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC;YACvE,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;gBACrB,OAAO;YACX,CAAC;YAED,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC;YACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,mBAAmB,CAAC;YAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACT,QAAQ,CAAC,gBAAgB,IAAI,CAAC,CAAC;gBAC/B,QAAQ,CAAC,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC;gBAChD,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC7B,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}

View 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

View File

@@ -0,0 +1 @@
{"version":3,"file":"SimActionMoveProjectiles.js","sourceRoot":"","sources":["../../../src/Simulation/Actions/SimActionMoveProjectiles.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,wBAAwB;IAC1B,OAAO,CAAC,OAAgB;QAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAwB,CAAC;QAClD,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,aAA4B,EAAE,GAAW,EAAE,EAAE;YAC1E,IAAI,aAAa,CAAC,IAAI;gBAClB,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YAChC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,aAA4B,EAAE,EAAE;YAC7D,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YACjE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBACzB,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC1B,OAAO;YACX,CAAC;YAED,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;YAC5B,IAAI,QAAQ,GAAG,aAAa,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC;YAC9E,IAAI,GAAG,GAAG,QAAQ,EAAE,CAAC;gBACjB,QAAQ,GAAG,GAAG,CAAC;gBACf,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;YACD,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}

View File

@@ -0,0 +1,31 @@
import { EEnemySize } from "../../GameData/index.js";
import { SimCommandStartNextWave, SimEnemy } from "../index.js";
export class SimActionSpawnEnemies {
execute(simMain) {
const simLevel = simMain.currentLevel;
const gdLevel = simLevel.gdLevel;
const step = simLevel.currentStep;
const wave = gdLevel.waves[simLevel.currentWave];
let spawnDelay = simMain.gdRoot.simulation.spawnDelay;
switch (wave.size) {
case EEnemySize.Huge:
spawnDelay *= 2;
break;
case EEnemySize.Tiny:
spawnDelay *= 0.5;
break;
}
if (simLevel.enemiesLeftToSpawn > 0 && simLevel.lastEnemySpawnStep + spawnDelay * simMain.gdRoot.simulation.stepsPerSecond <= simLevel.currentStep) {
simLevel.enemiesLeftToSpawn -= 1;
simLevel.lastEnemySpawnStep = step;
const route = Math.floor(Math.random() * gdLevel.enemyRoutes.length);
const enemy = new SimEnemy(simMain.gdRoot, wave, route, simLevel);
enemy.onPathUpdated();
simLevel.simEnemies.push(enemy);
}
if (simLevel.nextWaveStep == step && !!gdLevel.waves[simLevel.currentWave + 1]) {
simMain.addCommand(new SimCommandStartNextWave(simMain.gdRoot, simLevel));
}
}
}
//# sourceMappingURL=SimActionSpawnEnemies.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"SimActionSpawnEnemies.js","sourceRoot":"","sources":["../../../src/Simulation/Actions/SimActionSpawnEnemies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAc,uBAAuB,EAAE,QAAQ,EAAqB,MAAM,aAAa,CAAC;AAE/F,MAAM,OAAO,qBAAqB;IACvB,OAAO,CAAC,OAAgB;QAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAwB,CAAC;QAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;QACtD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,UAAU,CAAC,IAAI;gBAChB,UAAU,IAAI,CAAC,CAAC;gBAChB,MAAM;YACV,KAAK,UAAU,CAAC,IAAI;gBAChB,UAAU,IAAI,GAAG,CAAC;gBAClB,MAAM;QACd,CAAC;QAED,IAAI,QAAQ,CAAC,kBAAkB,GAAG,CAAC,IAAI,QAAQ,CAAC,kBAAkB,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YACjJ,QAAQ,CAAC,kBAAkB,IAAI,CAAC,CAAC;YACjC,QAAQ,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACrE,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAClE,KAAK,CAAC,aAAa,EAAE,CAAC;YACtB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,QAAQ,CAAC,YAAY,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7E,OAAO,CAAC,UAAU,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9E,CAAC;IACL,CAAC;CACJ"}