235 lines
7.9 KiB
TypeScript
235 lines
7.9 KiB
TypeScript
|
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);
|
||
|
}
|