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

78 lines
2.2 KiB
TypeScript
Raw Permalink Normal View History

2024-04-19 03:49:41 -07:00
import { _decorator, Component, Node } from 'cc';
import { UmStorageManager } from '../../../cc-common/cc-util/UmStorageManager';
import { HeroDataInfo } from '../global/GameInterface';
import { UmLog } from '../../../cc-common/cc-util/UmLog';
const { ccclass, property } = _decorator;
@ccclass('HeroData')
export class HeroData extends Component {
heroDataInfo: HeroDataInfo = null;
public loadData()
{
this.getHeroData();
this.addMoreDefaultData();
}
addMoreDefaultData()
{
if (!this.heroDataInfo?.skillSpecial?.length)
{
this.heroDataInfo.skillSpecial = new Array();
this.heroDataInfo.skillSpecial = [1, 2];
this.setHeroDara(this.heroDataInfo);
UmLog.log("Add more data", JSON.stringify(this.heroDataInfo));
}
if (!this.heroDataInfo?.manaRecoveryTime)
{
this.heroDataInfo.manaRecoveryTime = 10;
this.setHeroDara(this.heroDataInfo);
UmLog.log("Add more data", JSON.stringify(this.heroDataInfo));
}
}
public getHeroData(): HeroDataInfo
{
if (!this.heroDataInfo)
{
var data = this.getDataFromStorage();
if (data?.length)
{
this.heroDataInfo = JSON.parse(data);
return this.heroDataInfo;
}
else {
this.heroDataInfo = this.defaultData();
return this.heroDataInfo;
}
}
return this.heroDataInfo;
}
public setHeroDara(dataInfo)
{
this.heroDataInfo = dataInfo;
this.saveDataToStroge();
}
defaultData(): HeroDataInfo
{
2024-04-22 01:32:16 -07:00
return { hp: 100, weapon: 1, shooting: { AtkRange: 5, AtkCoolDown: 500, AtkSpeed: 3, Damage: 4, AoERange: 1 }, manaRecoveryTime: 10, skillSpecial: [1, 2] };
2024-04-19 03:49:41 -07:00
}
private getDataFromStorage(): string
{
var result = UmStorageManager.instance.getStringByKey("hero_data_info", "");
UmLog.log("getDataFromStorage => ", result);
return result;
}
private saveDataToStroge()
{
UmStorageManager.instance.setStringByKey("hero_data_info", JSON.stringify(this.heroDataInfo));
}
}