100 lines
3.0 KiB
TypeScript
Raw Normal View History

2022-11-24 13:17:05 +01:00
export class GameSettings {
2022-11-28 11:49:16 +01:00
public player: PlayerSettings = new PlayerSettings();
public upgrades: UpgradeSettings = new UpgradeSettings();
2022-12-13 11:58:40 +01:00
public metaUpgrades: MetaUpgradeSettings = new MetaUpgradeSettings();
2022-12-06 10:00:18 +01:00
public enemyManager: EnemyManagerSettings = new EnemyManagerSettings();
2022-11-24 13:17:05 +01:00
}
export class PlayerSettings {
public defaultHP = 0;
public requiredXP: number[] = [];
2022-12-13 15:56:13 +01:00
public speed = 0;
2022-11-28 14:34:34 +01:00
public regenerationDelay = 0;
2022-11-24 13:17:05 +01:00
public collisionDelay = 0;
2022-11-29 15:55:47 +01:00
public weapon: WeaponSettings = new WeaponSettings();
public haloLauncher: HaloLauncherSettings = new HaloLauncherSettings();
2022-12-01 12:16:52 +01:00
public horizontalLauncher: WaveLauncherSettings = new WaveLauncherSettings();
public diagonalLauncher: WaveLauncherSettings = new WaveLauncherSettings();
2022-11-24 13:17:05 +01:00
}
export class WeaponSettings {
public strikeDelay = 0;
2022-11-28 11:49:16 +01:00
public damage = 0;
}
2022-11-30 11:44:20 +01:00
export class WaveLauncherSettings {
public wavesToShootPerUpgrade = 0;
public launcher = new ProjectileLauncherSettings();
}
2022-11-29 15:55:47 +01:00
export class HaloLauncherSettings {
2022-11-30 09:37:09 +01:00
public projectilesToSpawn = 0;
2022-11-30 11:44:20 +01:00
public cooldownDivisorPerUpgrade = 0;
2022-11-30 09:37:09 +01:00
public launcher = new ProjectileLauncherSettings();
}
export class ProjectileLauncherSettings {
2022-11-29 15:55:47 +01:00
public projectileLifetime = 0;
public projectileSpeed = 0;
2022-11-30 09:37:09 +01:00
public wavesToShoot = 0;
public wavesDelayMs = 0;
2022-11-29 15:55:47 +01:00
public cooldown = 0;
}
2022-11-28 11:49:16 +01:00
export class UpgradeSettings {
public maxWeaponLengthUpgrades = 0;
public maxWeaponDamageUpgrades = 0;
public maxHorizontalProjectileUpgrades = 0;
2022-12-01 12:16:52 +01:00
public maxDiagonalProjectileUpgrades = 0;
2022-11-29 15:55:47 +01:00
public maxHaloProjectileUpgrades = 0;
2022-11-28 11:49:16 +01:00
public maxRegenerationUpgrades = 0;
2022-11-24 13:17:05 +01:00
}
2022-12-06 10:00:18 +01:00
2022-12-13 11:58:40 +01:00
export class MetaUpgradeSettings {
public healthPointsPerLevel = 0;
public bonusDamagePerLevel = 0;
public projectilePiercingPerLevel = 0;
public movementSpeedPerLevel = 0;
public xpBonusPerLevel = 0;
public goldBonusPerLevel = 0;
}
2022-12-06 10:00:18 +01:00
export class EnemyManagerSettings {
2022-12-12 12:46:17 +01:00
public enemies: EnemySettings[] = [new EnemySettings()];
2022-12-12 14:26:53 +01:00
public individualEnemySpawners: IndividualEnemySpawnerSettings[] = [new IndividualEnemySpawnerSettings()];
public circularEnemySpawners: CircularEnemySpawnerSettings[] = [new CircularEnemySpawnerSettings()];
2022-12-12 12:46:17 +01:00
public waveEnemySpawners: WaveEnemySpawnerSettings[] = [new WaveEnemySpawnerSettings()];
2022-12-06 10:00:18 +01:00
}
2022-12-12 14:26:53 +01:00
export class GeneralEnemySpawnerSettings {
public enemyId = "";
2022-12-12 13:12:07 +01:00
public startDelay = 0;
public stopDelay = 0;
2022-12-06 10:00:18 +01:00
public cooldown = 0;
2022-12-12 14:26:53 +01:00
}
export class WaveEnemySpawnerSettings {
public common = new GeneralEnemySpawnerSettings();
public enemiesToSpawn = 0;
}
export class CircularEnemySpawnerSettings {
public common = new GeneralEnemySpawnerSettings();
public enemiesToSpawn = 0;
}
export class IndividualEnemySpawnerSettings {
public common = new GeneralEnemySpawnerSettings();
2022-12-12 12:46:17 +01:00
}
export class EnemySettings {
public id = "";
public moveType = "";
public health = 0;
public damage = 0;
public speed = 0;
2022-12-13 18:56:00 +01:00
public lifetime = 0;
public xpReward = 0;
public goldReward = 0;
2022-12-06 10:00:18 +01:00
}