78 lines
2.2 KiB
TypeScript
78 lines
2.2 KiB
TypeScript
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
|
|
{
|
|
return { hp: 100, weapon: 1, shooting: { AtkRange: 5, AtkCoolDown: 500, AtkSpeed: 3, Damage: 4, AoERange: 1 }, manaRecoveryTime: 10, skillSpecial: [1, 2] };
|
|
}
|
|
|
|
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));
|
|
}
|
|
}
|