games/ChaoJiJieYaGuan_MaJiang2/assets/Script/Tools/gameStorage.ts

260 lines
7.3 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 数据存储类
* 单例模式
* 作者微信:haotxp
*/
export default class gameStorage{
public static _instance:gameStorage = null
public static get Instance(){
if (null == this._instance) {
this._instance = new gameStorage();
}
return this._instance
}
public nowEnery:number = 0 //当前体力值
gameName = 'majiang2_'
/**
* 音乐
* @param t
*/
setMusic(t) {
cc.sys.localStorage.setItem(this.gameName + "music", t)
}
getMusic() {
var t = cc.sys.localStorage.getItem(this.gameName + "music");
if(t === undefined || t === null || t === '' || t === 'NaN'){
t = 1
this.setMusic(1)
return t
}
return Number(t)
}
/**
* 音效
* @param t
*/
setSound(t) {
cc.sys.localStorage.setItem(this.gameName + "sound", t)
}
getSound() {
var t = cc.sys.localStorage.getItem(this.gameName + "sound");
if(t === undefined || t === null || t === '' || t === 'NaN'){
t = 0
this.setSound(0)
return t
}
return Number(t)
}
/**
* 震动
* @param t
*/
setZhenDong(t){
cc.sys.localStorage.setItem(this.gameName + "zhendong", t)
}
getZhenDong(){
var t = cc.sys.localStorage.getItem(this.gameName + "zhendong");
if(t === undefined || t === null || t === '' || t === 'NaN'){
t = 1
this.setZhenDong(1)
return t
}
return Number(t)
}
/**
* 离线时间
*/
setoffLineTime(){
let _time = new Date().getTime()
cc.sys.localStorage.setItem(this.gameName + 'logintime', _time)
console.log('打印存储离线时间',_time)
}
getoffLineTime(){
var t = cc.sys.localStorage.getItem(this.gameName + 'logintime')
return t = t||0 ,Number(t)
}
/**
* 体力
* @param t
*/
setEnergy(t) {
this.nowEnery = t
cc.sys.localStorage.setItem(this.gameName + "tili", t)
}
getEnergy(){
var t = cc.sys.localStorage.getItem(this.gameName + "tili");
if(t === undefined || t === null || t === 'NaN' || t === ''){
t = 10
this.setEnergy(10)
}
this.nowEnery = Number(t)
return this.nowEnery
}
//当日无限体力模式
setMaxEngryVideoShu(t){
let at = JSON.stringify(t)
cc.sys.localStorage.setItem(this.gameName + "maxengry", at)
}
getMaxEngryVideoShu(){
var t = cc.sys.localStorage.getItem(this.gameName + "maxengry");
if(t === undefined || t === null || t === ''){
t = [-1,0]
}else{
t = JSON.parse(t)
if(Number(t[0]) != -1){
let shijian = Number(new Date())
console.log('打印无限体力时间', shijian - Number(t[0]), 90000000)
if((shijian - Number(t[0])) >= (25 *3600)*1000){
t = [-1, 0]
this.setEnergy(5)
this.setMaxEngryVideoShu(t)
}
}
}
return t
}
//287766647 - 204041344
//记录高分 或者关卡总是 用于排行
setHightScore(t){
cc.sys.localStorage.setItem(this.gameName + "hightscore", t)
//上传排行榜数据
//gameShareAdsVideo.Instance.setImRankData_Num(String(t))
}
getHightScore(){
var t = cc.sys.localStorage.getItem(this.gameName + "hightscore");
return t = t || 0 ,Number(t)
}
//游戏金币
setGold(t){
cc.sys.localStorage.setItem(this.gameName + "gold", t)
}
getGold(){
var t = cc.sys.localStorage.getItem(this.gameName + "gold");
return t = t || 0 ,Number(t)
}
/**
* 设置关卡数据
*/
setCheckOutData(t){
let at = JSON.stringify(t)
cc.sys.localStorage.setItem(this.gameName + "CheckOutData", at)
}
getCheckOutData(){
var t = cc.sys.localStorage.getItem(this.gameName + "CheckOutData");
if(t === undefined || t === null || t === ''){
let data = [
0, //关卡数
0, //当前进度
9, //临时解锁卡槽的位置
[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1], //临时卡槽的状态
[] //每个底座卡牌的数据
]
return data
}else{
t = JSON.parse(t)
return t
}
}
/**
* 设置升级关卡数据
* @param t
*/
setShengJiCheckOutData(t){
let at = JSON.stringify(t)
cc.sys.localStorage.setItem(this.gameName + "ShengJiCheckOutData", at)
}
getShengJiCheckOutData(){
var t = cc.sys.localStorage.getItem(this.gameName + "ShengJiCheckOutData");
if(t === undefined || t === null || t === ''){
let data = [
0, //关卡数
600, //剩余时间
[ //卡槽状态 //0未开放视频解锁 1 开放, 2合成后锁定 3:23号发牌使用
1,1,1,
1,1,1,
1,1,1,
1,1,1,
1,1,1,
1,0,1,
1,0,1,
1,1,1,
1,1,3
],
[], //每个底座卡牌的数据
[], //剩余卡组
0, //剩余需要合成的数量
0, //步数计数
]
return data
}else{
t = JSON.parse(t)
return t
}
}
resetShengJiCheckOutData(guanqia){
let data = [
guanqia, //关卡数
600, //剩余时间
[ //卡槽状态 //0未开放视频解锁 1 开放, 2合成后锁定 3:23号发牌使用
1,1,1,
1,1,1,
1,1,1,
1,1,1,
1,1,1,
1,0,1,
1,0,1,
1,1,1,
1,1,3
],
[], //每个底座卡牌的数据
[], //剩余卡组
0, //剩余需要合成的数量
0, //步数计数
]
this.setShengJiCheckOutData(data)
}
/**
* 挑战模式,关卡开放状态
*/
getChallengeCheckOpenState(){
var t = cc.sys.localStorage.getItem(this.gameName + "ChallengeCheckOpenState");
if(t === undefined || t === null || t === ''){
t = [
1,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0,
0,0,0,0,0
]
this.setChallengeCheckOpenState(t)
}else{
t = JSON.parse(t)
}
return t
}
setChallengeCheckOpenState(t){
let at = JSON.stringify(t)
cc.sys.localStorage.setItem(this.gameName + "ChallengeCheckOpenState", at)
}
}