예제 #1
0
 private static void FixBlockUnlockTable()
 {
     //For now, all custom blocks are level 1
     BlockUnlockTable.CorpBlockData[] blockList = ManLicenses.inst.GetBlockUnlockTable().m_CorpBlockList;
     foreach (CustomBlock block in CustomBlocks.Values)
     {
         BlockUnlockTable.CorpBlockData corpData = blockList[(int)block.Faction];
         BlockUnlockTable.UnlockData[]  unlocked = corpData.m_GradeList[0].m_BlockList;
         //TODO: Only resize once
         Array.Resize(ref unlocked, unlocked.Length + 1);
         unlocked[unlocked.Length - 1] = new BlockUnlockTable.UnlockData
         {
             m_BlockType           = (BlockTypes)block.BlockID,
             m_BasicBlock          = true,
             m_DontRewardOnLevelUp = true,
         };
         corpData.m_GradeList[0].m_BlockList = unlocked;
     }
 }
        internal static void FixBlockUnlockTable(CustomBlock block)
        {
            BlockUnlockTable blockList = ManLicenses.inst.GetBlockUnlockTable();

            BlockUnlockTable.CorpBlockData corpData = blockList.GetCorpBlockData((int)block.Faction);
            BlockUnlockTable.UnlockData[]  unlocked = corpData.m_GradeList[block.Grade].m_BlockList;

            Array.Resize(ref unlocked, unlocked.Length + 1);
            unlocked[unlocked.Length - 1] = new BlockUnlockTable.UnlockData
            {
                m_BlockType           = (BlockTypes)block.RuntimeID,
                m_BasicBlock          = true,
                m_DontRewardOnLevelUp = true,
                //m_HideOnLevelUpScreen = true // Could parameterize
            };

            corpData.m_GradeList[block.Grade].m_BlockList = unlocked;

            (BlockLoader.m_CorpBlockLevelLookup.GetValue(blockList) as Dictionary <int, Dictionary <BlockTypes, int> >)[(int)block.Faction].Add((BlockTypes)block.RuntimeID, block.Grade);

            ManLicenses.inst.DiscoverBlock((BlockTypes)block.RuntimeID);
        }