| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- /** 转盘数据类 */
- import GameM from "../manager/GameM"
- import RedPointM, { RedPointType } from "../manager/RedPointM"
- import UiM from "../manager/UiM"
- import Turntable from "../ui/Turntable"
- import LogUtil from "../utils/LogUtil"
- import { CFG_SERVER, HTTP_TYPE } from "./CommonData"
- import RoleManageData from "./RoleManageData"
- export default class TurntableData {
- private static instance: TurntableData = null
- static get Instance(): TurntableData {
- if (!TurntableData.instance) {
- TurntableData.instance = new TurntableData()
- }
- return TurntableData.instance
- }
- /** 转盘配置 */
- turntableCft: any = null
- /** 宝箱刷新 */
- turntableRefreshTimes = 0
- /** 每日宝箱抽奖次数 */
- turntableTimes = 10
- /**转盘奖励提升幅度*/
- turntableUpReward: number = 0.5;
- /**转盘奖励提升随机权重*/
- turntableRewardRandom: Array<number> = [0.5, 0.5, 0.5, 0.5, 0.5, 0.5];
- /** 额外次数奖励配置 */
- turntableExtrasCfg = [[3,20006,58],[5,20006,158],[7,20006,258],[9,20006,358],[10,20006,458]]
- /** 获取一个奖励
- * @param type 抽奖类型 0 免费 1 看视频
- * @returns 随机的奖励
- */
- getTurnTable(type): any {
- let weight = 0
- let weightArr = []
- let len = this.turntableCft.length
- let data = null
- for (var i = 0; i < len; i++) {
- data = this.turntableCft[i]
- if (type == 0) {
- if (data.type == 1) {
- weight += data.weight
- weightArr[i] = weight
- }
- else {
- weightArr[i] = 0
- }
- }
- else if (type == 1) {
- weight += data.weight
- weightArr[i] = weight
- }
- }
- let ran = Math.random() * weight
- for (var i = 0; i < weightArr.length; i++) {
- if (ran <= weightArr[i]) {
- data = this.turntableCft[i]
- break
- }
- }
- return data
- }
- getTurntableCfg() {
- GameM.commonData.getSingleCfg(CFG_SERVER.TurntableCfg)
- }
- /**获取转盘配置 */
- getTurnTableCfgBack(data: string) {
- LogUtil.logV("getTurnTableCfg", data)
- let jsonObj = JSON.parse(data)
- this.turntableCft = jsonObj
- if (UiM.Instance.turntableNode) {
- UiM.Instance.turntableNode.getComponent(Turntable).init()
- }
- }
- /** 重置转盘次数
- * 每日 12点 18点 0点重置
- */
- updateResetTurntable() {
- if (this.turntableRefreshTimes < 3) {
- let hour = new Date(GameM.commonData.gameTime).getHours()
- if (hour < 12) {
- if (this.turntableRefreshTimes <= 0) {
- this.turntableRefreshTimes = 1
- this.turntableTimes = 10
- GameM.commonData.roleData.turntableUseCard = 0
- GameM.httpM.sendDatas(HTTP_TYPE.updateTurntableRefreshTimes, { 'turntableRefreshTimes': this.turntableRefreshTimes })
- GameM.httpM.sendDatas(HTTP_TYPE.updateTurntableTimes, { 'turntableTimes': this.turntableTimes })
- RoleManageData.Instance.updateRoleData("turntableUseCard", GameM.commonData.roleData.turntableUseCard)
- }
- }
- else if (hour < 18) {
- if (this.turntableRefreshTimes <= 1) {
- this.turntableRefreshTimes = 2
- this.turntableTimes = 10
- GameM.commonData.roleData.turntableUseCard = 0
- GameM.httpM.sendDatas(HTTP_TYPE.updateTurntableRefreshTimes, { 'turntableRefreshTimes': this.turntableRefreshTimes })
- GameM.httpM.sendDatas(HTTP_TYPE.updateTurntableTimes, { 'turntableTimes': this.turntableTimes })
- RoleManageData.Instance.updateRoleData("turntableUseCard", GameM.commonData.roleData.turntableUseCard)
- }
- }
- else {
- if (this.turntableRefreshTimes <= 2) {
- this.turntableRefreshTimes = 3
- this.turntableTimes = 10
- GameM.commonData.roleData.turntableUseCard = 0
- GameM.httpM.sendDatas(HTTP_TYPE.updateTurntableRefreshTimes, { 'turntableRefreshTimes': this.turntableRefreshTimes })
- GameM.httpM.sendDatas(HTTP_TYPE.updateTurntableTimes, { 'turntableTimes': this.turntableTimes })
- RoleManageData.Instance.updateRoleData("turntableUseCard", GameM.commonData.roleData.turntableUseCard)
- }
- }
- }
- }
- /** 每日抽奖次数 */
- updateTurntableTimes() {
- this.turntableTimes--
- GameM.httpM.sendDatas(HTTP_TYPE.updateTurntableTimes, { 'turntableTimes': this.turntableTimes })
- if (this.turntableTimes > 0) {
- RedPointM.instance.ActiveRedPoint(RedPointType.Turnplate, true)
- }
- else {
- RedPointM.instance.ActiveRedPoint(RedPointType.Turnplate, false)
- }
- GameM.commonData.addDailyFinishTimesDataByType(2)
- }
- /**刷新转盘次数奖励 */
- updateTurntableExtraReward(){
- let times = GameM.commonData.roleData.turntableExtrasReward
- let totalTimes = GameM.commonData.getDailyFinishTimesDataByType(2)
- // for(let entry of this.turntableExtrasCfg){
- // if(totalTimes)
- // }
- }
- }
|