GameSceneUnlockTool.ts
2.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// Learn TypeScript:
// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html
// Learn Attribute:
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
import { SaveDataManager } from "../../component/SaveDataManager";
import { GlobalEvent, tMgr } from "../../Global";
import { getGlobalNode } from "../../kernel/battle/BattleConst";
import { GameSceneObjTable, TableName } from "../../kernel/table/TableDefine";
const { ccclass, property } = cc._decorator;
@ccclass
export default class GameSceneUnlockTool extends cc.Component {
private _configId: number = 0;
private _config: GameSceneObjTable = null;
get config(): GameSceneObjTable { return this._config; }
private _disableNode: cc.Node = null;
private _enableNode: cc.Node = null;
//#region LIFE-CYCLE CALLBACKS:
onLoad() {
this._disableNode = this.node.getChildByName('btn').getChildByName('disableNode');
this._enableNode = this.node.getChildByName('btn').getChildByName('enableNode');
this._disableNode.active = true;
this._enableNode.active = false;
}
start() {
}
protected onEnable(): void {
getGlobalNode().on(GlobalEvent.CHANGE_EVENT_STAR, this.refresh, this);
this.refresh();
}
protected onDisable(): void {
getGlobalNode().off(GlobalEvent.CHANGE_EVENT_STAR, this.refresh, this);
}
// update (dt) {}
//#endregion
//#region public method
setObjId(id: number) {
this._configId = id;
this._config = tMgr.getConfig(TableName.GAME_SCENE_OBJ, id) as GameSceneObjTable;
this.refresh();
}
//#endregion
//#region private method
private refresh() {
if (this._config) {
this._disableNode.active = SaveDataManager.ins.runtimeData.star < this._config.Star;
this._enableNode.active = !this._disableNode.active;
}
}
//#endregion
}