import MainControl from "@/Common/MainControl/MainControl"; import { CoroutineV2 } from "@/Engine/CatanEngine/CoroutineV2/CoroutineV2"; import { TTeamBattleData } from "@/UI/RouterPage/GameContent/GameContentUtils"; import { Cocos } from "@/assets/VueScript/Cocos"; import { CommonEventCallBack } from "@/assets/VueScript/CocosVueScript"; import GameData_Cocos from "@/assets/VueScript/share/GameData_Cocos"; import { GiftCallBack, GiftEventEnum, PanelType, UpdateOneListInfo } from "@/components/ModalContent/TxnModal/txnUtils"; import { gameObj } from "@/context/GameItemsContext"; import { LocalStorage } from "@/define"; import { EActivitySyncType, RpcActivityComSyncResponse, TActivityComSyncData, TActivitySyncData } from "@/define/Request/ActivityRequest"; import { ResponseBackpackInfo } from "@/define/Request/BackpackRequest"; import { FriendRequest } from "@/define/Request/FriendRequest"; import { ProfileRequest } from "@/define/Request/ProfileRequest"; import { TxnRequest } from "@/define/Request/TxnRequest"; import { VipRequest } from "@/define/Request/VIPRequest"; import Player from "@/modules/player"; import { State } from "@/modules/player/define/data"; import { BackpackItemData } from "@/modules/player/define/data/backpack"; import { CommonEventType } from "."; let SN: number = 0; export function profileInfo(data: ProfileRequest.InfoResponse): void { const playerData: State = Player.data.getState(); if (data.aId !== playerData.account.aId) { return; } playerData.account.name = data.name; playerData.account.message = data.msg; playerData.account.phone = data.phone; playerData.account.money = data.money; playerData.vip.level = data.vip; Player.data.setState(playerData); } export function vipInfo(data: VipRequest.InfoResponse): void { const playerData: State = Player.data.getState(); playerData.vip.level = data.level; playerData.vip.totalBet = data.bet; playerData.vip.totalCharge = data.sv; playerData.vip.rich = data.rich; playerData.vip.et = data.et; Player.data.setState(playerData); } export function friendAllowList(data: FriendRequest.ListFriendData): void { const playerData: State = Player.data.getState(); playerData.account.allowList = data; Player.data.setState(playerData); } export function friendDenyList(data: FriendRequest.ListFriendData): void { const playerData: State = Player.data.getState(); playerData.account.denyList = data; Player.data.setState(playerData); } export function activityComSync(data: RpcActivityComSyncResponse): void { const { teamBattleData, setTeamBattleData } = gameObj; for (let i = 0; i < data.length; i++) { const activityComSyncData: TActivityComSyncData = data[i]; const [id, activitySyncDatas] = activityComSyncData; // for (let j = 0; j < teamBattleData.length; j++) { // const teamBattle: TTeamBattleData = teamBattleData[j]; // const [teamBattleId, , ,] = teamBattle; // if (id === teamBattleId) { // for (let k = 0; k < activitySyncDatas.length; k++) { // const activitySyncData: TActivitySyncData = activitySyncDatas[k]; // const [type, value] = activitySyncData; // switch (type) { // case EActivitySyncType.IsOpen: { // teamBattleData[j][1] = -1; // setTeamBattleData(teamBattleData); // break; // } // case EActivitySyncType.Sync: { // teamBattleData[j][1] = value; // setTeamBattleData(teamBattleData); // break; // } // case EActivitySyncType.Task: { // break; // } // default: // break; // } // } // break; // } // } for (let j = 0; j < activitySyncDatas.length; j++) { const activitySyncData: TActivitySyncData = activitySyncDatas[j]; const [type, value] = activitySyncData; switch (type) { case EActivitySyncType.IsOpen: { // for (let k = 0; k < teamBattleData.length; k++) { // const teamBattle: TTeamBattleData = teamBattleData[k]; // const [teamBattleId, , ,] = teamBattle; // if (id === teamBattleId) { // teamBattleData[j][1] = value; // setTeamBattleData(teamBattleData); // break; // } // } break; } case EActivitySyncType.Sync: { for (let k = 0; k < teamBattleData.length; k++) { const teamBattle: TTeamBattleData = teamBattleData[k]; const [teamBattleId, , ,] = teamBattle; if (id === teamBattleId) { teamBattleData[j][1] = value; setTeamBattleData(teamBattleData); break; } } break; } case EActivitySyncType.Task: { break; } default: break; } } } CommonEventCallBack.DispatchCallback(CommonEventType.ActivityReRender, null); } export function backpackInfo(data: ResponseBackpackInfo[], isAdd: boolean = false): void { const playerData: State = Player.data.getState(); const backpackList: BackpackItemData[] = isAdd ? playerData.backpack.Copy() : []; for (let i = 0; i < data.length; i++) { const backpackServerData = data[i]; const id: number = backpackServerData[1][0]; const count: number = backpackServerData[1][1]; for (let j = 0; j < count; j++) { const backpackClientData: BackpackItemData = { SN: SN, ResourceType: backpackServerData[0], ID: id, Viewed: false, }; backpackList.push(backpackClientData); SN++; } } if (!isAdd) { const oldBackpackListStr: string = localStorage.getItem(LocalStorage.Key.Backpack); if (oldBackpackListStr) { const oldBackpackList: BackpackItemData[] = JSON.parse(oldBackpackListStr); for (let i = 0; i < backpackList.length; i++) { const backpack: BackpackItemData = backpackList[i]; for (let j = 0; j < oldBackpackList.length; j++) { const oldBackpack: BackpackItemData = oldBackpackList[j]; if (backpack.ID === oldBackpack.ID && backpack.ResourceType === oldBackpack.ResourceType) { backpackList[i].Viewed = oldBackpack.Viewed; oldBackpackList.splice(j, 1); break; } } } } } playerData.backpack = backpackList; localStorage.setItem(LocalStorage.Key.Backpack, JSON.stringify(playerData.backpack)); Player.data.setState(playerData); const totalUnreadCount: number = playerData.backpack.filter((item) => !item.Viewed).length; if (!MainControl.Instance.IsInGame) { Cocos.CocosEventListener.DispatchCallback(GameData_Cocos.CELT.SetBackpackUnreadCount, totalUnreadCount); } } export function txnNew(data: TxnRequest.TxnInfo): void { const playerData = Player.data.getState(); const centerList = playerData.txn.centerList.slice(); centerList.push(data); playerData.txn.centerList = centerList; GiftCallBack.DispatchCallback(GiftEventEnum.ReFlash, null); Cocos.CocosEventListener.DispatchCallback(GameData_Cocos.CELT.SetTxnUnreadCount, playerData.txn.centerList.length); Player.data.setState(playerData); } export function txnCenter(data: TxnRequest.TxnInfo[]): void { const playerData = Player.data.getState(); playerData.txn.centerList = data; GiftCallBack.DispatchCallback(GiftEventEnum.ReFlash, null); Cocos.CocosEventListener.DispatchCallback(GameData_Cocos.CELT.SetTxnUnreadCount, playerData.txn.centerList.length); Player.data.setState(playerData); } export function txnTrade(data: TxnRequest.TradeResponse): void { const playerData: State = Player.data.getState(); const centerList: TxnRequest.TxnInfo[] = playerData.txn.centerList; let type: number = PanelType.RecordPanel; let status: number = +data.s; if (status < 20) { type = PanelType.CenterPanel; switch (status) { case 11: case 12: case 13: { for (let i: number = 0; i < centerList.length; i++) { const centerData: TxnRequest.TxnInfo = centerList[i]; if (centerData[0] == +data.id && centerData[3][0] == playerData.account.aId) { type = PanelType.RecordPanel; break; } } break; } default: break; } } CoroutineV2.Single(UpdateOneListInfo(data.id, type)).Start(); } export function txnUserAdd(data: TxnRequest.UserAddResponse): void { const playerData: State = Player.data.getState(); playerData.txn.receiverList.push(data.u); Player.data.setState(playerData); }