From 0b41d84ead7e11407e71e417d862f69a09d71cc1 Mon Sep 17 00:00:00 2001 From: Frank Tovar Date: Sat, 17 May 2025 15:54:25 +0200 Subject: [PATCH] ported game data --- src/app/components/game/data/GdEnemy.ts | 3 +++ src/app/components/game/data/GdLevel.ts | 12 ++++++++++++ src/app/components/game/data/GdProjectileEffect.ts | 7 +++++++ src/app/components/game/data/GdRoot.ts | 11 +++++++++++ src/app/components/game/data/GdSimulation.ts | 5 +++++ src/app/components/game/data/GdTower.ts | 12 ++++++++++++ src/app/components/game/data/GdWave.ts | 9 +++++++++ 7 files changed, 59 insertions(+) create mode 100644 src/app/components/game/data/GdEnemy.ts create mode 100644 src/app/components/game/data/GdLevel.ts create mode 100644 src/app/components/game/data/GdProjectileEffect.ts create mode 100644 src/app/components/game/data/GdRoot.ts create mode 100644 src/app/components/game/data/GdSimulation.ts create mode 100644 src/app/components/game/data/GdTower.ts create mode 100644 src/app/components/game/data/GdWave.ts diff --git a/src/app/components/game/data/GdEnemy.ts b/src/app/components/game/data/GdEnemy.ts new file mode 100644 index 0000000..0f25e24 --- /dev/null +++ b/src/app/components/game/data/GdEnemy.ts @@ -0,0 +1,3 @@ +export interface GdEnemy { + speed: number; +} \ No newline at end of file diff --git a/src/app/components/game/data/GdLevel.ts b/src/app/components/game/data/GdLevel.ts new file mode 100644 index 0000000..7cc52b6 --- /dev/null +++ b/src/app/components/game/data/GdLevel.ts @@ -0,0 +1,12 @@ +import { Hex } from "../util/Hex"; +import { GdWave } from "./GdWave"; + +export interface GdLevel { + radius: number; + currency: number; + walls: Hex[]; + enemySpawns: Hex[]; + enemyTargets: Hex[]; + enemyRoutes: number[][]; + waves: GdWave[]; +} \ No newline at end of file diff --git a/src/app/components/game/data/GdProjectileEffect.ts b/src/app/components/game/data/GdProjectileEffect.ts new file mode 100644 index 0000000..e8acb4c --- /dev/null +++ b/src/app/components/game/data/GdProjectileEffect.ts @@ -0,0 +1,7 @@ +import { EProjectileEffectType } from "./EProjectileEffectType"; + +export interface GdProjectileEffect { + type: EProjectileEffectType; + amount: number; + speed: number; +} diff --git a/src/app/components/game/data/GdRoot.ts b/src/app/components/game/data/GdRoot.ts new file mode 100644 index 0000000..a6b26aa --- /dev/null +++ b/src/app/components/game/data/GdRoot.ts @@ -0,0 +1,11 @@ +import { GdEnemy } from "./GdEnemy"; +import { GdLevel } from "./GdLevel"; +import { GdSimulation } from "./GdSimulation"; +import { GdTower } from "./GdTower"; + +export interface GdRoot { + enemies: GdEnemy[]; + towers: GdTower[]; + levels: GdLevel[]; + simulation: GdSimulation; +} diff --git a/src/app/components/game/data/GdSimulation.ts b/src/app/components/game/data/GdSimulation.ts new file mode 100644 index 0000000..2ddb526 --- /dev/null +++ b/src/app/components/game/data/GdSimulation.ts @@ -0,0 +1,5 @@ +export interface GdSimulation { + stepsPerSecond: number; + waveDuration: number; + spawnDelay: number; +} diff --git a/src/app/components/game/data/GdTower.ts b/src/app/components/game/data/GdTower.ts new file mode 100644 index 0000000..f059134 --- /dev/null +++ b/src/app/components/game/data/GdTower.ts @@ -0,0 +1,12 @@ +import { GdProjectileEffect } from "./GdProjectileEffect"; + +export interface GdTower { + cost: number; + projectileEffect: GdProjectileEffect | null; + projectileRange: number; + projectileRate: number; + projectileSize: number; + aoeEffect: GdProjectileEffect | null; + aoeRange: number; + aoeRate: number; +} \ No newline at end of file diff --git a/src/app/components/game/data/GdWave.ts b/src/app/components/game/data/GdWave.ts new file mode 100644 index 0000000..4b62c11 --- /dev/null +++ b/src/app/components/game/data/GdWave.ts @@ -0,0 +1,9 @@ +import { EEnemySize } from "./EEnemySize"; + +export interface GdWave { + enemy: number; + size: EEnemySize; + amount: number; + gain: number; + hitpoints: number; +} \ No newline at end of file