| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285 |
- import { RewardItem, RewardData } from './RewardData';
- export class RewardDataManager {
- private static _instance: RewardDataManager;
- private rewardData: RewardData;
- private constructor() {
- this.rewardData = new RewardData();
- this.initRewards();
- }
- public static get instance(): RewardDataManager {
- if (!this._instance) {
- this._instance = new RewardDataManager();
- }
- return this._instance;
- }
- public getAllRewards(): RewardItem[] {
- return this.rewardData.getAllRewards();
- }
- public unlockReward(id: string): boolean {
- return this.rewardData.unlockReward(id);
- }
- public getRewardById(id: string): RewardItem | undefined {
- return this.rewardData.getRewardById(id);
- }
- // 加载/保存功能
- public loadRewards() {
- // 从本地存储加载解锁状态
- const savedData = localStorage.getItem('rewardData');
- if (savedData) {
- const parsed = JSON.parse(savedData);
- parsed.forEach((item: any) => {
- const reward = this.getRewardById(item.id);
- if (reward) {
- reward.unlocked = item.unlocked;
- }
- });
- }
- }
- public saveRewards() {
- // 保存解锁状态到本地存储
- const rewards = this.getAllRewards();
- const saveData = rewards.map(reward => ({
- id: reward.id,
- unlocked: reward.unlocked
- }));
- localStorage.setItem('rewardData', JSON.stringify(saveData));
- }
-
- private initRewards() {
- // 这里定义所有奖励的初始数据
- const rewardItems: RewardItem[] = [
- {
- id: "0",
- name: "蓝柑橘",
- spriteFrame: null,
- unlocked: false
- },
- {
- id: "1",
- name: "紫晶之吻",
- spriteFrame: null,
- unlocked: false
- },
- {
- id: "2",
- name: "星芒幻境",
- spriteFrame: null,
- unlocked: false
- },
- {
- id: "3",
- name: "琥珀气泡",
- spriteFrame: null,
- unlocked: false
- },
- {
- id: "4",
- name: "樱桃琉璃",
- spriteFrame: null,
- unlocked: false
- },
- {
- id: "5",
- name: "青柠蜜语",
- spriteFrame: null,
- unlocked: false
- },
- {
- id: "6",
- name: "霓虹之夏",
- spriteFrame: null,
- unlocked: false
- },
- {
- id: "7",
- name: "落日熔金",
- spriteFrame: null,
- unlocked: false
- },
- {
- id: "8",
- name: "彩虹冰摇",
- spriteFrame: null,
- unlocked: false
- },
- {
- id: "9",
- name: "莓果青柠",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "10",
- name: "星穹之泪",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "11",
- name: "碧海琉璃",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "12",
- name: "莓屿霞光",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "13",
- name: "琥珀凝脂",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "14",
- name: "焦糖幻境",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "15",
- name: "紫雾轻语",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "16",
- name: "蜜柚晨风",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "17",
- name: "绯色",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "18",
- name: "青柠谜语",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "19",
- name: "橄榄玉露",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "20",
- name: "粉晶迷迭",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "21",
- name: "莓柚星芒",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "22",
- name: "樱桃绯雪",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "23",
- name: "蜜桃幻境",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "24",
- name: "紫荆之环",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "25",
- name: "红梅夜曲",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "26",
- name: "炽焰",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "27",
- name: "青柠马天尼",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "28",
- name: "草莓马天尼",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "29",
- name: "莓果青柠",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "30",
- name: "紫葡星坠",
- spriteFrame: null,
- unlocked: false
- }
- ,
- {
- id: "31",
- name: "草莓绯梦",
- spriteFrame: null,
- unlocked: false
- }
-
-
-
- ];
-
- rewardItems.forEach(reward => {
- this.rewardData.addReward(reward);
- });
- }
- }
|