108 lines
3.6 KiB
TypeScript
108 lines
3.6 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';
|
|
import { CCFloat } from 'cc';
|
|
import { GameDefine } from '../config/GameDefine';
|
|
const { ccclass, property } = _decorator;
|
|
|
|
@ccclass('UserDataSaver')
|
|
export class UserDataSaver extends Component {
|
|
@property(CCFloat) check;
|
|
|
|
heroDataInfo: HeroDataInfo = null;
|
|
|
|
public hero_level: number;
|
|
private level_key = "hero_level";
|
|
|
|
public expInLevel: number;
|
|
private expInlevel_key = "expInlevel";
|
|
|
|
public expAllTime: number;
|
|
private expAllTime_key = "expAllTime";
|
|
|
|
public gold: number;
|
|
private gold_key = "gold"
|
|
|
|
public activeSkillCollected: {};
|
|
private skill_collected_key = "skill_collected";
|
|
|
|
public leader_board: number[] = new Array();
|
|
private leader_board_key = "leader_board";
|
|
|
|
getKeySaver(key: string)
|
|
{
|
|
return "UserDataSaver_" + key;
|
|
}
|
|
|
|
public loadData()
|
|
{
|
|
this.gold = UmStorageManager.instance.getNumberByKey(this.getKeySaver(this.gold_key), 0);
|
|
this.getLeaderBoardSaved();
|
|
// this.level = UmStorageManager.instance.getNumberByKey(this.getKeySaver(this.level_key), 1);
|
|
// this.expInLevel = UmStorageManager.instance.getNumberByKey(this.getKeySaver(this.expInlevel_key), 0);
|
|
// this.expAllTime = UmStorageManager.instance.getNumberByKey(this.getKeySaver(this.expAllTime_key), 0);
|
|
// this.skill_collected = JSON.parse(UmStorageManager.instance.getStringByKey(this.getKeySaver(this.skill_collected_key), this.skillCollectedDefault()));
|
|
}
|
|
|
|
public saveData()
|
|
{
|
|
UmStorageManager.instance.setNumberByKey(this.getKeySaver(this.gold_key), this.gold);
|
|
this.saveLeaderBoard();
|
|
// UmStorageManager.instance.setNumberByKey(this.getKeySaver(this.level_key), this.level);
|
|
// UmStorageManager.instance.setNumberByKey(this.getKeySaver(this.expInlevel_key), this.expInLevel);
|
|
// UmStorageManager.instance.setNumberByKey(this.getKeySaver(this.expAllTime_key), this.expAllTime);
|
|
// UmStorageManager.instance.setStringByKey(this.getKeySaver(this.skill_collected_key), JSON.stringify(this.skill_collected));
|
|
}
|
|
|
|
resetData()
|
|
{
|
|
this.hero_level = 1;
|
|
this.expInLevel = 0;
|
|
this.expAllTime = 0;
|
|
this.activeSkillCollected = this.skillCollectedDefault();
|
|
this.loadData();
|
|
}
|
|
|
|
skillCollectedDefault()
|
|
{
|
|
var results = {};
|
|
var listKeys = GameDefine.ACTIVE_SKILL_KEY;
|
|
for (var i = 0; i < listKeys.length; i++)
|
|
{
|
|
results[listKeys[i]] = 1;
|
|
}
|
|
return results;
|
|
}
|
|
|
|
collectSkill(skillId: string, plusLevel: number)
|
|
{
|
|
var skillLevel = 0;
|
|
if (this.activeSkillCollected.hasOwnProperty((skillId)))
|
|
skillLevel = this.activeSkillCollected[skillId];
|
|
|
|
skillLevel += plusLevel;
|
|
skillLevel = Math.min(skillLevel, 20);
|
|
this.activeSkillCollected[skillId] = skillLevel;
|
|
this.saveData();
|
|
}
|
|
|
|
public updateLeaderBoard(newPoint: number)
|
|
{
|
|
this.getLeaderBoardSaved();
|
|
this.leader_board.push(newPoint);
|
|
this.saveLeaderBoard();
|
|
}
|
|
|
|
private getLeaderBoardSaved()
|
|
{
|
|
this.leader_board = JSON.parse(UmStorageManager.instance.getStringByKey(this.getKeySaver(this.leader_board_key), "[]"));
|
|
return this.leader_board;
|
|
}
|
|
|
|
private saveLeaderBoard()
|
|
{
|
|
UmStorageManager.instance.setStringByKey(this.getKeySaver(this.leader_board_key), JSON.stringify(this.leader_board));
|
|
}
|
|
}
|