Test values

This commit is contained in:
Martin 2022-12-19 12:00:55 +01:00
parent 83c0be7961
commit e8fc5a1ec9
6 changed files with 54 additions and 7 deletions

View File

@ -195,6 +195,8 @@
},
"_enabled": true,
"__prefab": null,
"startTime": 500,
"startXP": 10,
"maxHpLevel": 0,
"bonusDamageLevel": 0,
"projectilePiercingLevel": 0,

View File

@ -78,20 +78,24 @@ export class GeneralEnemySpawnerSettings {
public cooldown = 0;
}
export class WaveEnemySpawnerSettings {
export class WaveEnemySpawnerSettings implements ISpawner {
public common = new GeneralEnemySpawnerSettings();
public enemiesToSpawn = 0;
}
export class CircularEnemySpawnerSettings {
export class CircularEnemySpawnerSettings implements ISpawner {
public common = new GeneralEnemySpawnerSettings();
public enemiesToSpawn = 0;
}
export class IndividualEnemySpawnerSettings {
export class IndividualEnemySpawnerSettings implements ISpawner {
public common = new GeneralEnemySpawnerSettings();
}
export interface ISpawner {
common: GeneralEnemySpawnerSettings;
}
export class EnemySettings {
public id = "";
public moveType = "";

View File

@ -1,4 +1,5 @@
import { Camera, Component, JsonAsset, KeyCode, Vec2, _decorator } from "cc";
import { runInThisContext } from "vm";
import { ModalWindowManager } from "../Services/ModalWindowSystem/ModalWindowManager";
import { delay } from "../Services/Utils/AsyncUtils";
import { Background } from "./Background/Background";
@ -13,6 +14,7 @@ import { MultiInput } from "./Input/MultiInput";
import { VirtualJoystic } from "./Input/VirtualJoystic";
import { GameModalLauncher } from "./ModalWIndows/GameModalLauncher";
import { Pauser } from "./Pauser";
import { TestValues } from "./TestGameRunner";
import { GameUI } from "./UI/GameUI";
import { EnemyManager } from "./Unit/Enemy/EnemyManager";
import { MetaUpgrades } from "./Unit/MetaUpgrades/MetaUpgrades";
@ -57,7 +59,12 @@ export class Game extends Component {
this.gamePauser.pause();
}
public async playGame(userData: UserData, settings: GameSettings, translationData: TranslationData): Promise<GameResult> {
public async playGame(
userData: UserData,
settings: GameSettings,
translationData: TranslationData,
testValues?: TestValues
): Promise<GameResult> {
const metaUpgrades = new MetaUpgrades(userData.game.metaUpgrades, settings.metaUpgrades);
this.virtualJoystic.init();
@ -113,6 +120,12 @@ export class Game extends Component {
this.gameUI.init(this.player);
this.background.init(this.player.node);
if (testValues) {
this.timeAlive += testValues.startTime;
this.player.Level.addXp(testValues.startXP);
}
this.gamePauser.resume();
// while not dead

View File

@ -1,13 +1,17 @@
import { approx, CCInteger, Component, _decorator } from "cc";
import { CCInteger, Component, _decorator } from "cc";
import { AppRoot } from "../AppRoot/AppRoot";
import { GameRunner } from "../Menu/GameRunner";
import { delay } from "../Services/Utils/AsyncUtils";
import { GameSettings, ISpawner } from "./Data/GameSettings";
import { UserData } from "./Data/UserData";
import { Game } from "./Game";
const { ccclass, property } = _decorator;
@ccclass("TestGameRunner")
export class TestGameRunner extends Component {
@property(CCInteger) private startTime = 0;
@property(CCInteger) private startXP = 0;
@property(CCInteger) private maxHpLevel = 0;
@property(CCInteger) private bonusDamageLevel = 0;
@property(CCInteger) private projectilePiercingLevel = 0;
@ -30,6 +34,28 @@ export class TestGameRunner extends Component {
testUserData.game.metaUpgrades.movementSpeedLevel = this.movementSpeedLevel;
testUserData.game.metaUpgrades.xpGathererLevel = this.xpGathererLevel;
testUserData.game.metaUpgrades.goldGathererLevel = this.goldGathererLevel;
Game.Instance.playGame(testUserData, AppRoot.Instance.Settings, AppRoot.Instance.TranslationData);
const settings = this.getTimeModifiedSettings(AppRoot.Instance.Settings);
Game.Instance.playGame(testUserData, settings, AppRoot.Instance.TranslationData, { startTime: this.startTime, startXP: this.startXP });
}
private getTimeModifiedSettings(settings: GameSettings): GameSettings {
const spawners: ISpawner[] = [
...settings.enemyManager.circularEnemySpawners,
...settings.enemyManager.individualEnemySpawners,
...settings.enemyManager.waveEnemySpawners
];
for (const spawner of spawners) {
spawner.common.startDelay -= this.startTime;
spawner.common.stopDelay -= this.startTime;
}
return settings;
}
}
export class TestValues {
public startTime = 0;
public startXP = 0;
}

View File

@ -1,5 +1,5 @@
import { Component, _decorator } from "cc";
import { UnitHealth } from "../UnitHealth";
import { UnitHealth } from "../../UnitHealth";
import { PlayerHealthUI } from "./PlayerHealthUI";
const { ccclass, property } = _decorator;

View File

@ -40,5 +40,7 @@ export class UnitLevel {
this.currentLevel++;
this.levelUpEvent.trigger(this.currentLevel);
this.tryLevelUp();
}
}