コード例 #1
0
ファイル: GamblingManager.cs プロジェクト: gsoec/lm-source
    // Token: 0x060008DA RID: 2266 RVA: 0x000B57B0 File Offset: 0x000B39B0
    public void Recv_MSG_RESP_GAMBLE_STARTGAME(MessagePacket MP)
    {
        GUIManager.Instance.HideUILock(EUILock.UIBattleGambling);
        byte b = 0;

        if (this.GambleMode < (UIBattle_Gambling.eMode) this.m_GambleGameInfo.GambleData.Length)
        {
            b = this.m_GambleGameInfo.GambleData[(int)this.GambleMode].RemainFreePlay;
        }
        bool flag = this.IsDailyFreeScardStar(this.GambleMode);
        byte b2   = MP.ReadByte(-1);
        byte b3   = MP.ReadByte(-1);

        if ((int)b3 >= this.m_GambleGameInfo.GambleData.Length)
        {
            return;
        }
        if (b2 > 100)
        {
            return;
        }
        this.m_GambleGameInfo.GambleData[(int)b3].Stage = MP.ReadByte(-1);
        uint num = MP.ReadUInt(-1);

        GUIManager.Instance.SetRoleAttrDiamond(DataManager.Instance.RoleAttr.Diamond + num, 0, eSpentCredits.eMax);
        DataManager.Instance.RoleAttr.ScardStar = MP.ReadUInt(-1);
        this.m_GambleGameInfo.Prize             = MP.ReadUInt(-1);
        CommonItemDataType item = default(CommonItemDataType);

        item.ItemID   = MP.ReadUShort(-1);
        item.Num      = MP.ReadUShort(-1);
        item.ItemRank = MP.ReadByte(-1);
        int remainFreePlay = (int)this.m_GambleGameInfo.GambleData[(int)b3].RemainFreePlay;

        this.m_GambleGameInfo.GambleData[(int)b3].RemainFreePlay = MP.ReadByte(-1);
        if (remainFreePlay == 0 && this.m_GambleGameInfo.GambleData[(int)b3].RemainFreePlay > 0)
        {
            this.mComboMax = this.m_GambleGameInfo.GambleData[(int)b3].RemainFreePlay;
            GUIManager.Instance.UpdateUI(EGUIWindow.UI_Battle_Gambling, 22, 0);
        }
        DataManager.Instance.RoleAttr.DailyFreeScardStar = MP.ReadByte(-1);
        if (BattleController.IsGambleMode)
        {
            BattleController battleController = GameManager.ActiveGameplay as BattleController;
            if (b2 == 0)
            {
                BattleNetwork.SetBattleGambleState(EBattleGambleState.MONSTER_HIT);
            }
            else if (b2 == 1 || b2 == 4)
            {
                BattleNetwork.SetBattleGambleState(EBattleGambleState.MONSTER_DIE);
                if (b2 == 4)
                {
                    DataManager.MissionDataManager.CheckChanged(eMissionKind.Mark, 159, 1);
                }
            }
            else if (b2 == 2)
            {
                BattleNetwork.SetBattleGambleState(EBattleGambleState.SUPPORT_WORK);
                DataManager.MissionDataManager.CheckChanged(eMissionKind.Mark, 158, 1);
            }
            else if (b2 == 3)
            {
                BattleNetwork.SetBattleGambleState(EBattleGambleState.MONSTER_LEAVE);
            }
            if (b2 != 4 && item.ItemID != 0)
            {
                this.m_QueueGamebleItem.Add(item);
                battleController.AddGambleItemBox(item.ItemID, item.ItemRank);
                if (num == 0u)
                {
                    ushort curItemQuantity = DataManager.Instance.GetCurItemQuantity(item.ItemID, item.ItemRank);
                    DataManager.Instance.SetCurItemQuantity(item.ItemID, curItemQuantity + item.Num, item.ItemRank, 0L);
                }
            }
        }
        if (b2 == 1 || b2 == 2)
        {
            GUIManager.Instance.UpdateUI(EGUIWindow.UI_Battle_Gambling, 7, 0);
        }
        else if (this.m_GambleGameInfo.GambleData[(int)b3].Stage != 1)
        {
            GUIManager.Instance.UpdateUI(EGUIWindow.UI_Battle_Gambling, 6, 0);
        }
        GUIManager.Instance.UpdateUI(EGUIWindow.UI_Battle_Gambling, 0, 0);
        GUIManager.Instance.UpdateUI(EGUIWindow.UI_Battle_Gambling, 8, (int)b2);
        GUIManager.Instance.UpdateUI(EGUIWindow.UI_MonsterCrypt, 0, 0);
        GUIManager.Instance.BuildingData.UpdateBuildState(5, 255);
        GameManager.OnRefresh(NetworkNews.Refresh, null);
        if (b != 0 && this.m_GambleGameInfo.GambleData[(int)this.GambleMode].RemainFreePlay == 0 && this.m_GambleGameInfo.GambleData[(int)b3].RemainFreePlay == 0)
        {
            GUIManager.Instance.UpdateUI(EGUIWindow.UI_Battle_Gambling, 16, 0);
        }
        if (flag && !this.IsDailyFreeScardStar(this.GambleMode) && DataManager.Instance.RoleAttr.DailyFreeScardStar == 1)
        {
            GUIManager.Instance.UpdateUI(EGUIWindow.UI_Battle_Gambling, 16, 0);
        }
        if (b == 0 && this.m_GambleGameInfo.GambleData[(int)this.GambleMode].RemainFreePlay > 0)
        {
            AudioManager.Instance.PlaySFX(40029, 0f, PitchKind.NoPitch, null, null);
        }
    }