public void SyncFromPlayer(Player player) { if (Object.op_Implicit(player) && player.isInitialized) { UpdatePlayerStatus(player.hp, player.buffParam.CreateSyncParam(BuffParam.BUFFTYPE.NONE), player.weaponData.eId); List <int> list = null; for (int i = 0; i < UIStatusIcon.NON_BUFF_STATUS.Length; i++) { UIStatusIcon.STATUS_TYPE sTATUS_TYPE = UIStatusIcon.NON_BUFF_STATUS[i]; if (Coop_Model_RoomSyncPlayerStatus.StatusEnabled(player, sTATUS_TYPE)) { if (!extraStatus.Contains((int)sTATUS_TYPE)) { if (list == null) { list = new List <int>(); } list.Add((int)sTATUS_TYPE); } } else if (extraStatus.Contains((int)sTATUS_TYPE) && list == null) { list = new List <int>(); } } if (list != null) { extraStatus = list; if (this.onUpdateBuff != null) { this.onUpdateBuff(); } } } }
public void SendSyncPlayerStatus(Self self, int toClientId = -1) { CoopClient coopClient = coopRoom.clients.Find((CoopClient x) => x.stageId != MonoBehaviourSingleton <CoopManager> .I.coopMyClient.stageId); if (!(coopClient == null)) { Coop_Model_RoomSyncPlayerStatus coop_Model_RoomSyncPlayerStatus = new Coop_Model_RoomSyncPlayerStatus(); coop_Model_RoomSyncPlayerStatus.id = 1001; coop_Model_RoomSyncPlayerStatus.hp = self.hp; coop_Model_RoomSyncPlayerStatus.buff = self.buffParam.CreateSyncParamIfNeeded(); coop_Model_RoomSyncPlayerStatus.wid = self.weaponData.eId; if (QuestManager.IsValidInGameExplore()) { ExplorePlayerStatus myExplorePlayerStatus = MonoBehaviourSingleton <QuestManager> .I.GetMyExplorePlayerStatus(); if (myExplorePlayerStatus != null) { coop_Model_RoomSyncPlayerStatus.SetExtraStatus(self, myExplorePlayerStatus.extraStatus); } else { coop_Model_RoomSyncPlayerStatus.SetExtraStatus(self, null); } } if (toClientId > 0) { MonoBehaviourSingleton <CoopNetworkManager> .I.SendTo(toClientId, coop_Model_RoomSyncPlayerStatus, false, null, null); } else { MonoBehaviourSingleton <CoopNetworkManager> .I.SendBroadcast(coop_Model_RoomSyncPlayerStatus, false, null, null); } } }
public void OnRecvSyncPlayerStatus(int fromClientId, Coop_Model_RoomSyncPlayerStatus model) { if (QuestManager.IsValidExplore()) { CoopClient coopClient = clients.FindByClientId(fromClientId); if (model.hp <= 0 && Object.op_Implicit(coopClient)) { ExplorePlayerStatus explorePlayerStatus = MonoBehaviourSingleton <QuestManager> .I.GetExplorePlayerStatus(coopClient.userId); if (explorePlayerStatus != null && explorePlayerStatus.hp > 0 && MonoBehaviourSingleton <UIDeadAnnounce> .IsValid()) { MonoBehaviourSingleton <UIDeadAnnounce> .I.Announce(UIDeadAnnounce.ANNOUNCE_TYPE.DEAD, coopClient.GetPlayerName()); } } MonoBehaviourSingleton <QuestManager> .I.UpdateExplorePlayerStatus(coopClient, model); } }
public void Sync(Coop_Model_RoomSyncPlayerStatus status) { UpdatePlayerStatus(status.hp, status.buff, status.wid); List <int> list = extraStatus; if (status.exst != null) { extraStatus = status.exst; } if (list == null || list.Count != extraStatus.Count) { if (this.onUpdateBuff != null) { this.onUpdateBuff(); } } else { int num = 0; while (true) { if (num >= list.Count) { return; } int item = list[num]; if (!status.exst.Contains(item)) { break; } num++; } if (this.onUpdateBuff != null) { this.onUpdateBuff(); } } }
protected override bool HandleCoopEvent(CoopPacket packet) { bool result = false; switch (packet.packetType) { case PACKET_TYPE.ROOM_SYNC_ALL_PORTAL_POINT: { Coop_Model_RoomSyncAllPortalPoint model16 = packet.GetModel <Coop_Model_RoomSyncAllPortalPoint>(); coopRoom.OnRecvSyncAllPortalPoint(model16); result = true; break; } case PACKET_TYPE.ROOM_UPDATE_PORTAL_POINT: { Coop_Model_RoomUpdatePortalPoint model15 = packet.GetModel <Coop_Model_RoomUpdatePortalPoint>(); coopRoom.OnRecvRoomUpdatePortalPoint(model15); result = true; break; } case PACKET_TYPE.ROOM_SYNC_EXPLORE_BOSS: { Coop_Model_RoomSyncExploreBoss model14 = packet.GetModel <Coop_Model_RoomSyncExploreBoss>(); coopRoom.OnRecvSyncExploreBoss(model14); result = true; break; } case PACKET_TYPE.ROOM_SYNC_EXPLORE_BOSS_MAP: { Coop_Model_RoomSyncExploreBossMap model13 = packet.GetModel <Coop_Model_RoomSyncExploreBossMap>(); coopRoom.OnRecvSyncExploreBossMap(model13); result = true; break; } case PACKET_TYPE.ROOM_EXPLORE_BOSS_DAMAGE: { Coop_Model_RoomExploreBossDamage model12 = packet.GetModel <Coop_Model_RoomExploreBossDamage>(); coopRoom.OnRecvExploreBossDamage(packet.fromClientId, model12); result = true; break; } case PACKET_TYPE.ROOM_EXPLORE_ALIVE: { Coop_Model_RoomExploreAlive model11 = packet.GetModel <Coop_Model_RoomExploreAlive>(); coopRoom.OnRecvExploreAlive(); result = true; break; } case PACKET_TYPE.ROOM_EXPLORE_ALIVE_REQUEST: { Coop_Model_RoomExploreAliveRequest model10 = packet.GetModel <Coop_Model_RoomExploreAliveRequest>(); coopRoom.OnRecvExploreAliveRequest(); result = true; break; } case PACKET_TYPE.ROOM_EXPLORE_BOSS_DEAD: { Coop_Model_RoomExploreBossDead model9 = packet.GetModel <Coop_Model_RoomExploreBossDead>(); result = coopRoom.OnRecvExploreBossDead(model9); break; } case PACKET_TYPE.ROOM_NOTIFY_ENCOUNTER_BOSS: { Coop_Model_RoomNotifyEncounterBoss model8 = packet.GetModel <Coop_Model_RoomNotifyEncounterBoss>(); coopRoom.OnRecvNotifyEncounterBoss(packet.fromClientId, model8); result = true; break; } case PACKET_TYPE.ROOM_SYNC_PLAYER_STATUS: { Coop_Model_RoomSyncPlayerStatus model7 = packet.GetModel <Coop_Model_RoomSyncPlayerStatus>(); coopRoom.OnRecvSyncPlayerStatus(packet.fromClientId, model7); result = true; break; } case PACKET_TYPE.ROOM_CHAT_STAMP: { Coop_Model_RoomChatStamp model6 = packet.GetModel <Coop_Model_RoomChatStamp>(); coopRoom.OnRecvChatStamp(packet.fromClientId, model6); result = true; break; } case PACKET_TYPE.ROOM_MOVE_FIELD: { Coop_Model_RoomMoveField model5 = packet.GetModel <Coop_Model_RoomMoveField>(); coopRoom.OnRecvMoveField(model5); result = true; break; } case PACKET_TYPE.ROOM_RUSH_REQUEST: { Coop_Model_RushRequest model4 = packet.GetModel <Coop_Model_RushRequest>(); coopRoom.OnRecvRushRequest(packet.fromClientId, model4); result = true; break; } case PACKET_TYPE.ROOM_RUSH_REQUESTED: { Coop_Model_RushRequested model3 = packet.GetModel <Coop_Model_RushRequested>(); coopRoom.OnRecvRushRequested(model3); result = true; break; } case PACKET_TYPE.ROOM_SYNC_DEFENSE_BATTLE: { Coop_Model_RoomSyncDefenseBattle model2 = packet.GetModel <Coop_Model_RoomSyncDefenseBattle>(); coopRoom.OnRecvSyncDefenseBattle(model2); result = true; break; } case PACKET_TYPE.ROOM_NOTIFY_TRACE_BOSS: { Coop_Model_RoomNotifyTraceBoss model = packet.GetModel <Coop_Model_RoomNotifyTraceBoss>(); coopRoom.OnRecvNotifyTraceBoss(packet.fromClientId, model); result = true; break; } } return(result); }
public void UpdatePlayerStatus(CoopClient coopClient, Coop_Model_RoomSyncPlayerStatus status) { GetPlayerStatus(coopClient)?.Sync(status); }