Ejemplo n.º 1
0
 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);
            }
        }
    }
Ejemplo n.º 3
0
    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);
        }
    }
Ejemplo n.º 4
0
    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);
    }
Ejemplo n.º 6
0
 public void UpdatePlayerStatus(CoopClient coopClient, Coop_Model_RoomSyncPlayerStatus status)
 {
     GetPlayerStatus(coopClient)?.Sync(status);
 }