super-hero/assets/cc-game/scripts/game_data/EnemyData.ts

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()));
}
}