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: { AtkRange: 200, AtkCoolDown: 1000, AtkSpeed: 4, Damage: 8, AoERange: 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())); } }