49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
import { _decorator, Component, Node } from 'cc';
|
|
import { EnemyDataInfo } from '../global/GameInterface';
|
|
import { UmLog } from '../../../cc-common/cc-util/UmLog';
|
|
import { UmStorageManager } from '../../../cc-common/cc-util/UmStorageManager';
|
|
const { ccclass, property } = _decorator;
|
|
|
|
@ccclass('EnemyData')
|
|
export class EnemyData extends Component {
|
|
dataInfo: EnemyDataInfo = null;
|
|
|
|
public loadData() {
|
|
this.getData();
|
|
}
|
|
|
|
public getData(): EnemyDataInfo {
|
|
if (!this.dataInfo) {
|
|
var data = this.getDataFromStorage();
|
|
if (data?.length) {
|
|
this.dataInfo = JSON.parse(data);
|
|
return this.dataInfo;
|
|
}
|
|
else {
|
|
return this.defaultData();
|
|
}
|
|
}
|
|
|
|
return this.dataInfo;
|
|
}
|
|
|
|
public setDara(dataInfo) {
|
|
this.dataInfo = dataInfo;
|
|
this.saveDataToStroge();
|
|
}
|
|
|
|
defaultData(): EnemyDataInfo {
|
|
return { hp: 120, weapon: 1, shooting: { shootRange: 200, shootPending: 1000, shootSpeed: 4, damage: 8, damageRange: 1 } };
|
|
}
|
|
|
|
private getDataFromStorage(): string {
|
|
var result = UmStorageManager.instance.getStringByKey("enemy_data_info", "");
|
|
// UmLog.log("getDataFromStorage => ", result);
|
|
return result;
|
|
}
|
|
|
|
private saveDataToStroge() {
|
|
UmStorageManager.instance.setStringByKey("enemy_data_info", JSON.stringify(this.getData()));
|
|
}
|
|
}
|