LP_Bot/src/utils/setRPCData.ts

235 lines
7.9 KiB
TypeScript
Raw Normal View History

2023-11-23 16:33:21 +08:00
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);
}