mirror of
https://github.com/MartinKral/Slash-The-Hordes
synced 2025-10-09 00:26:04 +00:00
Added magnet functionality
This commit is contained in:
33
assets/Scripts/Game/Unit/Player/Magnet.ts
Normal file
33
assets/Scripts/Game/Unit/Player/Magnet.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user