mirror of
https://github.com/MartinKral/Slash-The-Hordes
synced 2025-10-09 00:26:04 +00:00
Added sounds
This commit is contained in:
@@ -3,12 +3,13 @@ import { ISignal } from "../../../../Services/EventSystem/ISignal";
|
||||
import { roundToOneDecimal } from "../../../../Services/Utils/MathUtils";
|
||||
import { HaloLauncherSettings } from "../../../Data/GameSettings";
|
||||
import { ProjectileCollision } from "../../../Projectile/ProjectileCollision";
|
||||
import { IProjectileCollisionSignaler } from "../../../Projectile/IProjectileCollisionSignaler";
|
||||
import { IProjectileLauncherSignaler } from "../../../Projectile/IProjectileLauncherSignaler";
|
||||
import { ProjectileLauncher } from "./ProjectileLauncher";
|
||||
import { ProjectileData } from "./ProjectileData";
|
||||
import { GameTimer } from "../../../../Services/GameTimer";
|
||||
import { Empty } from "../../../../Menu/ModalWindows/Upgrades/UpgradesModalWindow";
|
||||
|
||||
export class HaloProjectileLauncher implements IProjectileCollisionSignaler {
|
||||
export class HaloProjectileLauncher implements IProjectileLauncherSignaler {
|
||||
private currentUpgrade = 0;
|
||||
private defaultCooldown = 0;
|
||||
private cooldownDivisorPerUpgrade = 0;
|
||||
@@ -39,6 +40,10 @@ export class HaloProjectileLauncher implements IProjectileCollisionSignaler {
|
||||
return this.launcher.ProjectileCollisionEvent;
|
||||
}
|
||||
|
||||
public get ProjectileLaunchedEvent(): ISignal {
|
||||
return this.launcher.ProjectileLaunchedEvent;
|
||||
}
|
||||
|
||||
public gameTick(deltaTime: number): void {
|
||||
if (this.currentUpgrade == 0) return;
|
||||
|
||||
|
@@ -1,17 +1,19 @@
|
||||
import { _decorator, Component, Prefab, Vec2, Vec3 } from "cc";
|
||||
import { Empty } from "../../../../Menu/ModalWindows/Upgrades/UpgradesModalWindow";
|
||||
import { ISignal } from "../../../../Services/EventSystem/ISignal";
|
||||
import { Signal } from "../../../../Services/EventSystem/Signal";
|
||||
import { ObjectPool } from "../../../../Services/ObjectPool";
|
||||
import { getDegreeAngleFromDirection } from "../../../../Services/Utils/MathUtils";
|
||||
import { IProjectileCollisionSignaler } from "../../../Projectile/IProjectileCollisionSignaler";
|
||||
import { IProjectileLauncherSignaler } from "../../../Projectile/IProjectileLauncherSignaler";
|
||||
import { Projectile } from "../../../Projectile/Projectile";
|
||||
import { ProjectileCollision } from "../../../Projectile/ProjectileCollision";
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass("ProjectileLauncher")
|
||||
export class ProjectileLauncher extends Component implements IProjectileCollisionSignaler {
|
||||
export class ProjectileLauncher extends Component implements IProjectileLauncherSignaler {
|
||||
@property(Prefab) private projectilePrefab: Prefab;
|
||||
private projectileCollisionEvent: Signal<ProjectileCollision> = new Signal<ProjectileCollision>();
|
||||
private projectileCollisionEvent = new Signal<ProjectileCollision>();
|
||||
private projectileLauncehdEvent = new Signal();
|
||||
|
||||
private projectileDamage: number;
|
||||
private projectilePierces: number;
|
||||
@@ -29,6 +31,10 @@ export class ProjectileLauncher extends Component implements IProjectileCollisio
|
||||
return this.projectileCollisionEvent;
|
||||
}
|
||||
|
||||
public get ProjectileLaunchedEvent(): ISignal {
|
||||
return this.projectileLauncehdEvent;
|
||||
}
|
||||
|
||||
public init(projectileLifetime: number, projectileSpeed: number, projectileDamage: number, projectilePierces: number): void {
|
||||
this.projectileLifetime = projectileLifetime;
|
||||
this.projectileSpeed = projectileSpeed;
|
||||
@@ -62,6 +68,8 @@ export class ProjectileLauncher extends Component implements IProjectileCollisio
|
||||
this.projectiles.push(projectile);
|
||||
this.directions.push(direction);
|
||||
this.expireTimes.push(this.currentTime + this.projectileLifetime);
|
||||
|
||||
this.projectileLauncehdEvent.trigger({});
|
||||
}
|
||||
|
||||
private tryRemoveExpiredProjectiles(): void {
|
||||
|
@@ -1,14 +1,15 @@
|
||||
import { Node, Vec2 } from "cc";
|
||||
import { Empty } from "../../../../Menu/ModalWindows/Upgrades/UpgradesModalWindow";
|
||||
import { ISignal } from "../../../../Services/EventSystem/ISignal";
|
||||
import { GameTimer } from "../../../../Services/GameTimer";
|
||||
import { delay } from "../../../../Services/Utils/AsyncUtils";
|
||||
import { WaveLauncherSettings } from "../../../Data/GameSettings";
|
||||
import { IProjectileCollisionSignaler } from "../../../Projectile/IProjectileCollisionSignaler";
|
||||
import { IProjectileLauncherSignaler } from "../../../Projectile/IProjectileLauncherSignaler";
|
||||
import { ProjectileCollision } from "../../../Projectile/ProjectileCollision";
|
||||
import { ProjectileLauncher } from "./ProjectileLauncher";
|
||||
import { ProjectileData } from "./ProjectileData";
|
||||
import { ProjectileLauncher } from "./ProjectileLauncher";
|
||||
|
||||
export class WaveProjectileLauncher implements IProjectileCollisionSignaler {
|
||||
export class WaveProjectileLauncher implements IProjectileLauncherSignaler {
|
||||
private currentUpgrade = 0;
|
||||
private wavesToShootPerUpgrade = 0;
|
||||
private fireTimer: GameTimer;
|
||||
@@ -35,6 +36,10 @@ export class WaveProjectileLauncher implements IProjectileCollisionSignaler {
|
||||
return this.launcher.ProjectileCollisionEvent;
|
||||
}
|
||||
|
||||
public get ProjectileLaunchedEvent(): ISignal {
|
||||
return this.launcher.ProjectileLaunchedEvent;
|
||||
}
|
||||
|
||||
public gameTick(deltaTime: number): void {
|
||||
if (this.currentUpgrade == 0) return;
|
||||
|
||||
|
Reference in New Issue
Block a user