Exemplo n.º 1
0
    // Token: 0x060008C8 RID: 2248 RVA: 0x000B4D5C File Offset: 0x000B2F5C
    public static bool sendInitBattleEx()
    {
        if (!GUIManager.Instance.ShowUILock(EUILock.Battle))
        {
            return(false);
        }
        MessagePacket messagePacket = new MessagePacket(1024);

        messagePacket.AddSeqId();
        messagePacket.Protocol = Protocol._MSG_REQUEST_EX_BATTLEINIT_NPC;
        ushort num = BattleNetwork.battlePointID;

        if (!BattleNetwork.bReplay)
        {
            num = DataManager.StageDataController.currentPointID;
            BattleNetwork.battlePointID = num;
        }
        StageMode stageMode = DataManager.StageDataController.StageDareMode(BattleNetwork.battlePointID);

        messagePacket.Add((stageMode != StageMode.Full) ? 2 : 1);
        if (stageMode == StageMode.Lean)
        {
            num /= 3;
        }
        messagePacket.Add(num);
        for (int i = 0; i < 5; i++)
        {
            messagePacket.Add(DataManager.Instance.heroBattleData[i].HeroID);
        }
        byte currentNodus = DataManager.StageDataController.currentNodus;

        messagePacket.Add(currentNodus);
        if (!messagePacket.Send(false))
        {
            GUIManager.Instance.HideUILock(EUILock.Battle);
            return(false);
        }
        StageManager stageDataController = DataManager.StageDataController;
        DataManager  instance            = DataManager.Instance;

        if (stageDataController.StageDareMode(num) == StageMode.Lean)
        {
            LevelEX levelEXBycurrentPointID = stageDataController.GetLevelEXBycurrentPointID(0);
            if (currentNodus == 1)
            {
                instance.BattleConditionKey = levelEXBycurrentPointID.NodusOneID;
            }
            else if (currentNodus == 2)
            {
                instance.BattleConditionKey = levelEXBycurrentPointID.NodusTwoID;
            }
            else if (currentNodus == 3)
            {
                instance.BattleConditionKey = levelEXBycurrentPointID.NodusThrID;
            }
        }
        else
        {
            instance.BattleConditionKey = stageDataController.GetLevelEXBycurrentPointID(0).NodusTwoID;
        }
        return(true);
    }
Exemplo n.º 2
0
    // Token: 0x06000582 RID: 1410 RVA: 0x00077088 File Offset: 0x00075288
    public int Compare(uint x, uint y)
    {
        bool               flag  = false;
        bool               flag2 = false;
        LevelEX            levelEXBycurrentPointID = DataManager.StageDataController.GetLevelEXBycurrentPointID(0);
        StageConditionData recordByKey;

        if (DataManager.StageDataController.StageDareMode(DataManager.StageDataController.currentPointID) == StageMode.Lean)
        {
            recordByKey = DataManager.StageDataController.StageConditionDataTable.GetRecordByKey(levelEXBycurrentPointID.NodusOneID + (ushort)DataManager.StageDataController.currentNodus - 1);
        }
        else
        {
            recordByKey = DataManager.StageDataController.StageConditionDataTable.GetRecordByKey(levelEXBycurrentPointID.NodusTwoID);
        }
        for (int i = 0; i < recordByKey.ConditionArray.Length; i++)
        {
            if (recordByKey.ConditionArray[i].ConditionID == 3)
            {
                if ((uint)recordByKey.ConditionArray[i].FactorA == x)
                {
                    flag = true;
                }
                if ((uint)recordByKey.ConditionArray[i].FactorA == y)
                {
                    flag2 = true;
                }
            }
        }
        int result;

        if (flag)
        {
            if (flag2)
            {
                if (x > y)
                {
                    result = -1;
                }
                else
                {
                    result = 1;
                }
            }
            else
            {
                result = -1;
            }
        }
        else if (flag2)
        {
            result = 1;
        }
        else
        {
            byte b  = 0;
            byte b2 = 0;
            byte b3 = 0;
            for (int j = 0; j < recordByKey.ConditionArray.Length; j++)
            {
                if (recordByKey.ConditionArray[j].ConditionID == 1)
                {
                    if ((recordByKey.ConditionArray[j].FactorA == 0 && !ArenaManager.Instance.CheckHeroAstrology((ushort)x, recordByKey.ConditionArray[j].FactorB)) || (recordByKey.ConditionArray[j].FactorA == 1 && ArenaManager.Instance.CheckHeroAstrology((ushort)x, recordByKey.ConditionArray[j].FactorB)))
                    {
                        b += 1;
                    }
                    if ((recordByKey.ConditionArray[j].FactorA == 0 && !ArenaManager.Instance.CheckHeroAstrology((ushort)y, recordByKey.ConditionArray[j].FactorB)) || (recordByKey.ConditionArray[j].FactorA == 1 && ArenaManager.Instance.CheckHeroAstrology((ushort)y, recordByKey.ConditionArray[j].FactorB)))
                    {
                        b2 += 1;
                    }
                    b3 += 1;
                }
            }
            if (b3 != 0)
            {
                if (b3 == b)
                {
                    if (b3 == b2)
                    {
                        if (x > y)
                        {
                            result = -1;
                        }
                        else
                        {
                            result = 1;
                        }
                    }
                    else
                    {
                        result = -1;
                    }
                }
                else if (b3 == b2)
                {
                    result = 1;
                }
                else if (x > y)
                {
                    result = -1;
                }
                else
                {
                    result = 1;
                }
            }
            else if (x > y)
            {
                result = -1;
            }
            else
            {
                result = 1;
            }
        }
        return(result);
    }