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 level: number; private level_key = "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"; getKeySaver(key: string) { return "UserDataSaver_" + key; } public loadData() { // 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.gold = UmStorageManager.instance.getNumberByKey(this.getKeySaver(this.gold_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.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)); // UmStorageManager.instance.setNumberByKey(this.getKeySaver(this.gold_key), this.gold); } resetData() { this.level = 1; this.expInLevel = 0; this.expAllTime = 0; this.gold = 0; this.activeSkillCollected = this.skillCollectedDefault(); } 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(); } }