Vertical launcher

This commit is contained in:
Martin
2022-11-30 11:44:20 +01:00
parent ac9b67503d
commit ab39355a5c
16 changed files with 221 additions and 163 deletions

View File

@@ -3,10 +3,12 @@ export enum UpgradeType {
WeaponDamage,
HorizontalProjectile,
VerticalProjectile,
HaloProjectlie,
Regeneration
}
export enum MetaUpgradeType {
MaxHp,
OverallDamage
OverallDamage,
ProjectilePiercing
}

View File

@@ -1,18 +1,24 @@
import { UpgradeSettings } from "../Data/GameSettings";
import { Player } from "../Unit/Player/Player";
import { HaloProjectileLauncher } from "../Unit/Player/ProjectileLauncher/HaloProjectileLauncher";
import { VerticalProjectileLauncher } from "../Unit/Player/ProjectileLauncher/VerticalProjectileLauncher";
import { UpgradeType } from "./UpgradeType";
export class Upgrader {
private player: Player;
private typeToAction: Map<UpgradeType, () => void> = new Map<UpgradeType, () => void>();
private typeToLevel: Map<UpgradeType, number> = new Map<UpgradeType, number>();
private typeToMaxLevel: Map<UpgradeType, number> = new Map<UpgradeType, number>();
public constructor(player: Player, settings: UpgradeSettings) {
this.player = player;
public constructor(
private player: Player,
private verticalProjectileLauncher: VerticalProjectileLauncher,
private haloProjectileLauncher: HaloProjectileLauncher,
settings: UpgradeSettings
) {
this.setTypeMaps(UpgradeType.WeaponLength, this.upgradeWeaponLength.bind(this), settings.maxWeaponLengthUpgrades);
this.setTypeMaps(UpgradeType.WeaponDamage, this.upgradeWeaponDamage.bind(this), settings.maxWeaponDamageUpgrades);
this.setTypeMaps(UpgradeType.VerticalProjectile, this.upgradeVerticalProjectileLauncher.bind(this), settings.maxVerticalProjectileUpgrades);
this.setTypeMaps(UpgradeType.HaloProjectlie, this.upgradeHaloProjectileLauncher.bind(this), settings.maxHaloProjectileUpgrades);
this.setTypeMaps(UpgradeType.Regeneration, this.upgradeRegeneration.bind(this), settings.maxRegenerationUpgrades);
}
@@ -50,6 +56,14 @@ export class Upgrader {
this.player.Weapon.upgradeWeaponDamage();
}
private upgradeVerticalProjectileLauncher(): void {
this.verticalProjectileLauncher.upgrade();
}
private upgradeHaloProjectileLauncher(): void {
this.haloProjectileLauncher.upgrade();
}
private upgradeRegeneration(): void {
this.player.Regeneration.upgrade();
}