Slash-The-Hordes/assets/Scripts/Game/Unit/Player/Magnet.ts
2022-12-23 11:36:12 +01:00

34 lines
910 B
TypeScript

import { _decorator, Component, Node, Collider2D, CircleCollider2D } from "cc";
import { GameTimer } from "../../../Services/GameTimer";
const { ccclass, property } = _decorator;
@ccclass("Magnet")
export class Magnet extends Component {
@property(CircleCollider2D) private collider: CircleCollider2D;
private timer: GameTimer;
private duration: number;
public get Collider(): Collider2D {
return this.collider;
}
public init(duration: number): void {
this.duration = duration;
this.node.active = false;
}
public activate(): void {
this.timer = new GameTimer(this.duration);
this.node.active = true;
}
public gameTick(deltaTime: number): void {
if (!this.node.active) return;
this.timer.gameTick(deltaTime);
if (this.timer.tryFinishPeriod()) {
this.node.active = false;
}
}
}