private void OnLevelizeButtonPressed(int level)
 {
     if (this.SourceSelectionSetName.IsEmpty <char>())
     {
         MessageManager.DisplayMessage("ApplyToSelectionSet is empty!");
     }
     else if (this.TargetSelectionSetName.IsEmpty <char>())
     {
         MessageManager.DisplayMessage("NewSelectionSetName is empty!");
     }
     else
     {
         int num1 = 0;
         int num2 = 0;
         int num3 = 0;
         int num4 = 0;
         GameEntity.UpgradeLevelMask levelMask      = this.GetLevelMask(level);
         List <GameEntity>           gameEntityList = this.CollectEntitiesWithLevel();
         List <GameEntity>           gameEntities   = new List <GameEntity>();
         foreach (GameEntity gameEntity in gameEntityList)
         {
             string possiblePrefabName = this.FindPossiblePrefabName(gameEntity);
             if (possiblePrefabName.IsEmpty <char>())
             {
                 ++num1;
             }
             else
             {
                 GameEntity.UpgradeLevelMask upgradeLevelMask = gameEntity.GetUpgradeLevelMask();
                 if ((upgradeLevelMask & levelMask) != GameEntity.UpgradeLevelMask.None)
                 {
                     ++num2;
                     gameEntities.Add(gameEntity);
                 }
                 else
                 {
                     GameEntity entity = GameEntity.Instantiate(this.Scene, this.ConvertPrefabName(possiblePrefabName, levelMask), gameEntity.GetGlobalFrame());
                     if ((NativeObject)entity == (NativeObject)null)
                     {
                         ++num3;
                     }
                     else
                     {
                         ++num4;
                         GameEntity.UpgradeLevelMask mask = upgradeLevelMask & ~GameEntity.UpgradeLevelMask.Level1 & ~GameEntity.UpgradeLevelMask.Level2 & ~GameEntity.UpgradeLevelMask.Level3 | levelMask;
                         entity.SetUpgradeLevelMask(mask);
                         this.CopyScriptParameters(entity, gameEntity);
                         gameEntities.Add(entity);
                     }
                 }
             }
         }
         Debug.Print("Created Entities : " + (object)num4 + "\nAlready Visible In Desired Level : " + (object)num2 + "\nWithout Prefab For Level : " + (object)num3 + "\nWithout Prefab Info : " + (object)num1, color: Debug.DebugColor.Magenta);
         Utilities.CreateSelectionInEditor(gameEntities, this.TargetSelectionSetName);
     }
 }
        private string GetLevelSubString(GameEntity.UpgradeLevelMask levelMask)
        {
            switch (levelMask)
            {
            case GameEntity.UpgradeLevelMask.Level1:
                return("_l1");

            case GameEntity.UpgradeLevelMask.Level2:
                return("_l2");

            case GameEntity.UpgradeLevelMask.Level3:
                return("_l3");

            default:
                return("");
            }
        }
        private string ConvertPrefabName(string prefabName, GameEntity.UpgradeLevelMask newLevelMask)
        {
            string str            = prefabName;
            string levelSubString = this.GetLevelSubString(newLevelMask);

            if (newLevelMask != GameEntity.UpgradeLevelMask.Level1)
            {
                str = str.Replace(this.GetLevelSubString(GameEntity.UpgradeLevelMask.Level1), levelSubString);
            }
            if (newLevelMask != GameEntity.UpgradeLevelMask.Level2)
            {
                str = str.Replace(this.GetLevelSubString(GameEntity.UpgradeLevelMask.Level2), levelSubString);
            }
            if (newLevelMask != GameEntity.UpgradeLevelMask.Level3)
            {
                str = str.Replace(this.GetLevelSubString(GameEntity.UpgradeLevelMask.Level3), levelSubString);
            }
            return(str.Equals(prefabName) ? "" : str);
        }
 private void OnDeleteButtonPressed(int level)
 {
     if (this.SourceSelectionSetName.IsEmpty <char>())
     {
         MessageManager.DisplayMessage("ApplyToSelectionSet is empty!");
     }
     else
     {
         List <GameEntity>           gameEntityList = this.CollectEntitiesWithLevel();
         GameEntity.UpgradeLevelMask levelMask      = this.GetLevelMask(level);
         List <GameEntity>           gameEntities   = new List <GameEntity>();
         int variable1 = 0;
         int variable2 = 0;
         foreach (GameEntity gameEntity in gameEntityList)
         {
             GameEntity.UpgradeLevelMask upgradeLevelMask = gameEntity.GetUpgradeLevelMask();
             if (upgradeLevelMask == levelMask)
             {
                 gameEntities.Add(gameEntity);
                 ++variable1;
             }
             else if ((upgradeLevelMask & levelMask) != GameEntity.UpgradeLevelMask.None)
             {
                 gameEntity.SetUpgradeLevelMask(upgradeLevelMask & ~levelMask);
                 ++variable2;
             }
         }
         Utilities.DeleteEntitiesInEditorScene(gameEntities);
         TextObject textObject1 = new TextObject("{=!}Deleted entity count : {DELETED_ENTRY_COUNT}");
         TextObject textObject2 = new TextObject("{=!}Removed level mask count : {REMOVED_LEVEL_MASK}");
         textObject1.SetTextVariable("DELETED_ENTRY_COUNT", variable1);
         textObject2.SetTextVariable("REMOVED_LEVEL_MASK", variable2);
         MessageManager.DisplayMessage(textObject1.ToString());
         MessageManager.DisplayMessage(textObject2.ToString());
     }
 }