咸鱼的反击
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
xianyudefanji/assets/Scripts/Manager/InterfaceManager.ts

693 lines
25 KiB

import User from "../../FrameWork/User/User";
import Common5 from "../../Platform/th/Common5";
import DustbinManager from "./DustbinManager";
import ProbabilityManager from "./ProbabilityManager";
import ShouLieManager from "./ShouLieManager";
import TaoFenManager from "./TaoFenManager";
import PrefabManage, { GameType } from "../PrefabManager/PrefabManage";
import BagManager, { BagGoodsConfig, GoodsLocalProperty } from "./BagManager";
import DiaoYuConfigManage from "../diaoyu/DiaoYuConfigManage";
import TaskManager, {MainTaskIdEnum } from "../JuQingChat/TaskManager";
import GMManager from "./GMManager";
import AppPlatform from "../../FrameWork/Util/AppPlatform";
import CommonDefine from "../../Platform/th/CommonDefine";
import UserManager from "./UserManager";
import QinWangLingManager from "./QinWangLingManager";
import TanWeiManager from "./TanWeiManager";
import ShipuManager from "./ShipuManager";
import MiShuManager from "./MiShuManager";
import ChaChangManager from "./ChaChangManager";
import XiuXianNongZhuangManager from "./XiuXianNongZhuangManager";
import BaiCaoJiManager from "./BaiCaoJiManager";
export default class InterfaceManager{
static isChange504 = false;
public static initManager(){
TanWeiManager.initManager()
ShipuManager.initManager()
MiShuManager.initManager()
InterfaceManager.loadAllJson()
}
public static loadAllJson(){
let DiaoYuConfigCallFunc = (callFunc)=>{
DiaoYuConfigManage.loadAllJson(callFunc);
}
let DustbinConfigCallFunc = (callFunc)=>{
DustbinManager.initManager(callFunc)
}
let ShouLieConfigCallFunc = (callFunc)=>{
ShouLieManager.initManager(callFunc)
}
let TaoFenConfigCallFunc = (callFunc)=>{
TaoFenManager.initManager(callFunc)
}
let QinWangLingConfigCallFunc = (callFunc)=>{
QinWangLingManager.initManager(callFunc)
}
let ChaChangConfigCallFunc = (callFunc)=>{
ChaChangManager.initManager(callFunc)
}
let XiuXianNongChangConfigCallFunc = (callFunc)=>{
XiuXianNongZhuangManager.initManager(callFunc)
}
let baicaijiConfigCallFunc = (callFunc)=>{
BaiCaoJiManager.initManager(callFunc)
}
//这里用递归的方式加载json,处理同时加载多个json情况
let loadJsonArr = [
DiaoYuConfigCallFunc,DustbinConfigCallFunc,ShouLieConfigCallFunc,TaoFenConfigCallFunc,QinWangLingConfigCallFunc,ChaChangConfigCallFunc,XiuXianNongChangConfigCallFunc,
baicaijiConfigCallFunc
]
let loadIndex = 0
let loadCallFunc = (index) => {
if (index >= loadJsonArr.length) {
return
}
console.log('mainScene页loadAllJson_',index)
let callFunc = ()=>{
console.log('mainScene页单个json加载完毕,加载下一个')
loadCallFunc(++loadIndex)
}
loadJsonArr[index](callFunc)
}
loadCallFunc(loadIndex)
}
public static getAllEarnMoneyInterface(){
return 100
}
public static getHaveKaiye(gameType){
let list = User.getCanInterGameList()
for(let i = 0; i<list.length;i++){
if(gameType == list[i]){
return true
}
}
let Gm = GMManager.getToggleStatus_AllGameOpen()
if(Gm){
return true
}
let num = UserManager.getDisTaskNumByGameType(gameType)
if(num<0){
return true
}
return false
}
// public static canInterGameList = []
public static getDaoyeTaskList(){
//任务倒爷
let subTaskInfo:any = TaskManager.getCurUnLockSubTaskInfo()
let mainTaskInfo:any = TaskManager.getCurUnLockMainTaskInfo()
let mainId = mainTaskInfo.Id
let daohuoList = []
console.log(subTaskInfo.Id , 'subTaskInfo.Id ++++====')
return daohuoList
}
public static setDaoyeList(gameType){
User.setDaoyeListName(gameType)
let daohuoList = []
for(let i=0;i<BagGoodsConfig.length;i++){
if(gameType == BagGoodsConfig[i].gameType){
let obj = {
goodId:BagGoodsConfig[i].goodId,
buyNum:BagGoodsConfig[i].buyNum,
buyPercent:10,
gameType:BagGoodsConfig[i].gameType
}
daohuoList.push(obj)
}
}
User.setDaoyeGoodList(daohuoList)
}
public static getDaoyeList(){
return User.getDaoyeGoodList()
}
public static getGoodInGameE(goodsId){
if(goodsId>= 1000 && goodsId<=1099){
return 'NiFengKuaidi'
}else if(goodsId>= 1200 && goodsId<=1299){
return 'ShouLie'
}else if(goodsId>= 1300 && goodsId<=1399){
return 'Diaoyu'
}else if(goodsId>= 1400 && goodsId<=1499){
return 'XiaoMaibu'
}else if(goodsId>= 1500 && goodsId<=1599){
return 'IceWorld'
}else if(goodsId>= 1100 && goodsId<=1199){
return 'Dustbin'
}else if(goodsId>= 1600 && goodsId<=1699){
return 'TaoFen'
}else if(goodsId == 1711){
return 'Diaoyu'
}
}
public static DiTanSaleGoods(price){
//let num = 1
User.setDitanSaleGoodsIndex(price)
}
public static changeList(gameType, goodArray ,isCanchangeList,isAD){
// let config = BagManager.getJuQingGoodConfig()
//保底生效,出GM物品
if(isCanchangeList){
let goodIdTemp = 0
let gameTypeCompare = '-999'
let mainTaskInfo:any = TaskManager.getCurUnLockMainTaskInfo()
let mainId = mainTaskInfo.Id
let configData = null
//优先任务Gm
let isHaveTaskGm = false
if(mainId != MainTaskIdEnum.MainTask_None && mainId){
configData = TaskManager.getTaskConfigById(mainId)
//console.log(configData, 'config++++++++++++==')
if(configData.GMGoodIdArray && (configData.GMGameType == gameType)){
isHaveTaskGm = true
// goodIdTemp = configData.GMGoodIdArray[0]
for(let i=0;i<configData.GMGoodIdArray.length;i++){
let goodId = configData.GMGoodIdArray[i]
if(BagManager.getBagGoodNums(goodId) <= 0 ){
goodIdTemp = goodId
break
}
}
//goodIdTemp = configData.GMGoodIdArray[0]
gameTypeCompare = configData.GMGameType
}
}
if(!isHaveTaskGm){
let daoYeList = InterfaceManager.getDaoyeList()
if(daoYeList.length > 0){
// goodIdTemp = daoYeList[0].goodId
let config = BagManager.getJuQingGoodConfig(daoYeList[0].goodId)
gameTypeCompare = config.GMGameType
for(let i=0;i<daoYeList.length;i++){
let goodId = daoYeList[i].goodId
if(BagManager.getBagGoodNums(goodId) <= 0 ){
goodIdTemp = goodId
break
}
}
}
}
console.log(goodIdTemp, gameTypeCompare, 'gameTypeCompare+++++++++++=====')
if(gameTypeCompare == gameType){
console.log('正是这个玩法')
let goodId = goodIdTemp
let goodsNum = BagManager.getBagGoodNums(goodId)
if(goodsNum<=0){
let isHave = false
for(let i = 0; i<goodArray.length;i++){
if(goodArray[i].goodId == goodIdTemp || goodIdTemp == 0){
isHave = true
break
}
}
if(isHave){
console.log('列表有任务物品不需要变换')
return goodArray
}else{
//商人收购单某些物品不能免费刷出只能广告刷出
let juQingGoodConfig = BagManager.getJuQingGoodConfig(goodId)
let isCanOut = true
if(!isAD ){
if(juQingGoodConfig && !juQingGoodConfig.isCanFreeOut){
isCanOut = false
}
}
if(isCanOut){
for(let i = 0; i<goodArray.length;i++){
goodArray[i].goodId = goodId
break
}
}
console.log('商人收购单某些物品不能免费刷出只能广告刷出',goodId,isCanOut)
console.log('背包没有任务物品变换完成')
return goodArray
}
}else{
console.log('背包有任务物品不需要变换')
return goodArray
}
}else if(gameTypeCompare=='-999'){
console.log('不是这个玩法')
let daoyeGoodList = User.getDaoyeGoodList()
//判断倒爷的道具是这个玩法的并且数量不足的情况
//console.log(daoyeGoodList, 'daoyeGoodList+++判断倒爷的道具是这个玩法的并且数量不足的情况++++++++=====')
let daoyeJiaohuo = User.getDaoyeJiaoHuo()
if(daoyeJiaohuo){
//
console.log(goodArray,'倒爷已经提交货单了')
return goodArray
}else{
let tempList = []
for(let i=0;i<daoyeGoodList.length;i++){
let gameTypeGet = this.getGoodInGameE(daoyeGoodList[i].goodId)
if(gameTypeGet == gameType){
tempList[tempList.length] = BagManager.getGoodsProperty(daoyeGoodList[i].goodId)
}
}
if(tempList.length == 0){
//console.log(goodArray,'提货单没有这个玩法的道具')
return goodArray
}else{
let goodIdTemp = 0
for(let i=0;i<tempList.length;i++){
let buyNum = tempList[i].buyNum || 0
let haveNum = BagManager.getBagGoodNums(tempList[i].goodId)
if(haveNum<buyNum){
goodIdTemp = tempList[i].goodId
break
}
}
console.log(goodIdTemp, '替换这个道具')
// 开始改变list
let isHave = false
for(let i = 0; i<goodArray.length;i++){
if(goodArray[i].goodId == goodIdTemp || goodIdTemp==0){
isHave = true
break
}
}
if(isHave){
console.log(goodIdTemp, '正准备给了这个道具')
return goodArray
}else{
if(goodIdTemp == 0){
console.log(goodArray, '没有匹配的goodId')
return goodArray
}else{
for(let i = 0; i<goodArray.length;i++){
goodArray[i].goodId = goodIdTemp
break
}
console.log(goodIdTemp, '切换道具')
return goodArray
}
}
}
}
}else{
//
console.log('不需要变换')
return goodArray
}
}else{
return goodArray
}
}
public static getMangheGoodsListByType(gameType, goodsNum=1, isAD = false, probabilityType='common'){
//根据游戏类型和是否广告获取配置的概率
let pro = ProbabilityManager.getMangHeProbability(gameType, goodsNum,isAD,probabilityType)
console.log(pro, 'pro+++++++++===')
let mainTaskInfo:any = TaskManager.getCurUnLockMainTaskInfo()
let mainId = mainTaskInfo.Id
console.log('getMangheGoodsListByType==',gameType, goodsNum,isAD,probabilityType)
//根据保底逻辑判断是否GM保底生效
let isCanchangeList = ProbabilityManager.getCanChangeList(gameType)
if(gameType == 'Dustbin'){
let goodArray = []
let list_ = DustbinManager.getCurGoodList()
for(let i = 0; i<goodsNum; i++){
let index_ = Common5.getProbabilityResultIndex(pro)
console.log(index_,'goodIndex+++++++')
let goods = list_[index_]
let data_ = {goodId:0, goodNum:1, goodIndex:0}
data_.goodId = goods.goodId
data_.goodIndex = index_
let isHaveData = false
for(let value of goodArray){
if(value.goodId == data_.goodId&& value.goodIndex == data_.goodIndex){
isHaveData = true
value.goodNum++
break
}
}
if(!isHaveData){
goodArray.push(data_)
}
}
// console.log(goodArray, 'goodArray111++')
let goodArrayNew = this.changeList(gameType, goodArray ,isCanchangeList,isAD)
return goodArrayNew
}else if(gameType == 'Diaoyu'){
let goodArray = []
let list_ = DiaoYuConfigManage.getCurGoodList()
for(let i = 0; i<goodsNum; i++){
let index_ = Common5.getProbabilityResultIndex(pro)
console.log(index_,'goodIndex+++++++')
let goods = list_[index_]
let data_ = {goodId:0, goodNum:1, goodIndex:0}
data_.goodId = goods.goodId
data_.goodIndex = index_
let isHaveData = false
// if(mainId == MainTaskIdEnum.MainTask_506){
// let tempId = 1706
// if(BagManager.getBagGoodNums(tempId) <= 0){
// data_.goodId = tempId
// }
// }
for(let value of goodArray){
if(value.goodId == data_.goodId&& value.goodIndex == data_.goodIndex){
isHaveData = true
value.goodNum++
break
}
}
if(!isHaveData){
goodArray.push(data_)
}
}
// console.log(goodArray, 'goodArray111++')
let goodArrayNew = this.changeList(gameType, goodArray ,isCanchangeList,isAD)
return goodArrayNew
}else if(gameType == 'IceWorld'){
}else if(gameType == 'NiFengKuaidi'){
}else if(gameType == 'ShouLie'){
let goodArray = []
let list_ = ShouLieManager.getCurGoodList()
//console.log('狩猎list=====',list_)
//console.log(list_, 'list_+++++++++++++++==')
for(let i = 0; i<goodsNum; i++){
let index_ = Common5.getProbabilityResultIndex(pro)
let goods = list_[index_]
console.log(index_, 'index_+++++++')
let data_ = {goodId:0, goodNum:1, goodIndex:0}
data_.goodId = goods.goodId
data_.goodIndex = index_
let isHaveData = false
for(let value of goodArray){
if(value.goodId == data_.goodId && value.goodIndex == data_.goodIndex){
isHaveData = true
value.goodNum++
break
}
}
if(!isHaveData){
goodArray.push(data_)
}
}
let goodArrayNew = this.changeList(gameType, goodArray ,isCanchangeList,isAD)
return goodArrayNew
}else if(gameType == 'TaoFen'){
let goodArray = []
let list_ = TaoFenManager.getCurGoodList()
for(let i = 0; i<goodsNum; i++){
let index_ = Common5.getProbabilityResultIndex(pro)
let goods = list_[index_]
console.log(index_, 'index_+++++++')
let data_ = {goodId:0, goodNum:1, goodIndex:0}
data_.goodId = goods.goodId
data_.goodIndex = index_
let isHaveData = false
for(let value of goodArray){
if(value.goodId == data_.goodId && value.goodIndex == data_.goodIndex){
isHaveData = true
value.goodNum++
break
}
}
if(!isHaveData){
goodArray.push(data_)
}
}
let goodArrayNew = this.changeList(gameType, goodArray ,isCanchangeList,isAD)
return goodArrayNew
}else if(gameType == 'MoTuoChe'){
}else if(gameType == 'ChaoFanLin'){
let goodArray = []
let list_ = QinWangLingManager.getCurGoodList()
for(let i = 0; i<goodsNum; i++){
let index_ = Common5.getProbabilityResultIndex(pro)
let goods = list_[index_]
console.log(index_, 'index_+++++++')
let data_ = {goodId:0, goodNum:1, goodIndex:0}
data_.goodId = goods.goodId
data_.goodIndex = index_
let isHaveData = false
for(let value of goodArray){
if(value.goodId == data_.goodId && value.goodIndex == data_.goodIndex){
isHaveData = true
value.goodNum++
break
}
}
if(!isHaveData){
goodArray.push(data_)
}
}
let goodArrayNew = this.changeList(gameType, goodArray ,isCanchangeList,isAD)
return goodArrayNew
}else if(gameType == 'ChaChang'){
let list_ = ChaChangManager.getCurGoodList()
let goodArray = []
let goodIndex = []
while(goodArray.length<goodsNum){
let index_ = Common5.getProbabilityResultIndex(pro)
let goods = list_[index_]
if(goodIndex.indexOf(index_)>=0){
}else{
goodIndex[goodIndex.length] = index_
let objData = {
goodId: goods.goodId,
goodNum:1
}
goodArray[goodArray.length] = objData
}
}
console.log(goodArray,'茶场goodArray++++=====')
let goodArrayNew = this.changeList(gameType, goodArray ,isCanchangeList,isAD)
return goodArrayNew
}else if(gameType == 'XiuXianNongZhuang'){
let list_ = XiuXianNongZhuangManager.getCurGoodList()
let goodArray = []
let goodIndex = []
while(goodArray.length<goodsNum){
let index_ = Common5.getProbabilityResultIndex(pro)
let goods = list_[index_]
if(goodIndex.indexOf(index_)>=0){
}else{
goodIndex[goodIndex.length] = index_
let objData = {
goodId: goods.goodId,
goodNum:1
}
goodArray[goodArray.length] = objData
}
}
console.log(goodArray,'休闲农庄goodArray++++=====')
let goodArrayNew = this.changeList(gameType, goodArray ,isCanchangeList,isAD)
return goodArrayNew
}else if(gameType == 'BaiCaoJi'){
let list_ = BaiCaoJiManager.getCurGoodList()
let goodArray = []
let goodIndex = []
while(goodArray.length<goodsNum){
let index_ = Common5.getProbabilityResultIndex(pro)
let goods = list_[index_]
if(goodIndex.indexOf(index_)>=0){
}else{
goodIndex[goodIndex.length] = index_
let objData = {
goodId: goods.goodId,
goodNum:1
}
goodArray[goodArray.length] = objData
}
}
console.log(goodArray,'佰草集goodArray++++=====')
let goodArrayNew = this.changeList(gameType, goodArray ,isCanchangeList,isAD)
return goodArrayNew
}else if(gameType == 'GuShu'){
let list_ = BaiCaoJiManager.getGuShuCurGoodList()
let goodArray = []
let goodIndex = []
while(goodArray.length<goodsNum){
let index_ = Common5.getProbabilityResultIndex(pro)
let goods = list_[index_]
if(goodIndex.indexOf(index_)>=0){
}else{
goodIndex[goodIndex.length] = index_
let objData = {
goodId: goods.goodId,
goodNum:1
}
goodArray[goodArray.length] = objData
}
}
console.log(goodArray,'古树goodArray++++=====')
let goodArrayNew = this.changeList(gameType, goodArray ,isCanchangeList,isAD)
return goodArrayNew
}else if(gameType == 'BaiCaoJi'){
}else if(gameType == 'GuShu'){
}
}
// public static saveData(isShow=false){
// if(!AppPlatform.is_TT_GAME_custom()){
// if(Common5.saveTime == 0){
// Common5.saveTime = 30
// console.log('保存数据')
// let sendData = UserManager.sendDataToUrl()
// if(isShow){
// PrefabManage.showTextTips('保存数据成功')
// }
// }else{
// console.log('保存数据过于频繁请稍后再试')
// if(isShow){
// PrefabManage.showTextTips('保存数据过于频繁')
// }
// }
// }else{
// if(Common5.saveTime == 0){
// let sendData = UserManager.sendDataToUrl()
// Common5.saveTime = 30
// CommonDefine.setServerData(sendData, ()=>{
// console.log('保存数据成功')
// if(isShow){
// PrefabManage.showTextTips('保存数据成功')
// }
// }, ()=>{
// console.log('保存数据失败')
// })
// }else{
// //PrefabManage.showTextTips('保存数据过于频繁请稍后再试')
// console.log('保存数据过于频繁')
// }
// }
// }
public static taskTipBox(goodArray, taskDesc, success?, cancle?){
let isHave = BagManager.isHaveAllGood(goodArray)
if(isHave){
setTimeout(() => {
PrefabManage.loadPrefabByType(GameType.BoxTanChuang, null, (prefab)=>{
prefab.getComponent('BoxTanChuang').setViewData(2, taskDesc, ()=>{
success()
})
prefab.getComponent('BoxTanChuang').setTitle(2)
})
}, 500);
}
}
public static taskTipBox2(taskDesc, success?, cancle?){
let isHave = true
if(isHave){
setTimeout(() => {
PrefabManage.loadPrefabByType(GameType.BoxTanChuang, null, (prefab)=>{
prefab.getComponent('BoxTanChuang').setViewData(2, taskDesc, ()=>{
success()
})
prefab.getComponent('BoxTanChuang').setTitle(2)
})
}, 500);
}
}
}