示例#1
0
        private void FindRoomTitlePos(List <RoomObj> roomList, GameTypes.LevelType levelType, out Vector2 pos)
        {
            var num  = 3.40282347E+38f;
            var num2 = -3.40282347E+38f;
            var num3 = 3.40282347E+38f;
            var num4 = -3.40282347E+38f;

            foreach (var current in roomList)
            {
                if (current.Name != "Boss" &&
                    (current.LevelType == levelType ||
                     (current.LevelType == GameTypes.LevelType.CASTLE &&
                      (current.Name == "Start" || current.Name == "CastleEntrance"))))
                {
                    if (current.X < num)
                    {
                        num = current.X;
                    }
                    if (current.X + current.Width > num2)
                    {
                        num2 = current.X + current.Width;
                    }
                    if (current.Y < num3)
                    {
                        num3 = current.Y;
                    }
                    if (current.Y + current.Height > num4)
                    {
                        num4 = current.Y + current.Height;
                    }
                }
            }
            pos = new Vector2((num2 + num) / 2f, (num4 + num3) / 2f);
            pos = new Vector2(pos.X / 1320f * 60f, pos.Y / 720f * 32f);
        }
示例#2
0
 public void AddLinkerRoom(GameTypes.LevelType levelType, List <RoomObj> roomList)
 {
     foreach (var current in roomList)
     {
         if (current.Name == "Linker" && current.LevelType == levelType)
         {
             AddRoom(current);
         }
     }
 }
示例#3
0
        public static string BuildDungeonName(GameTypes.LevelType levelType)
        {
            switch (levelType)
            {
            case GameTypes.LevelType.CASTLE:
                return("Castle Hamson");

            case GameTypes.LevelType.GARDEN:
                return("Forest Abkhazia");

            case GameTypes.LevelType.DUNGEON:
                return("The Land of Darkness");

            case GameTypes.LevelType.TOWER:
                return("The Maya");

            default:
                return("");
            }
        }
示例#4
0
 static LevelEV()
 {
     // Note: this type is marked as 'beforefieldinit'.
     byte[] cASTLE_ENEMY_DIFFICULTY_LIST = new byte[12];
     LevelEV.CASTLE_ENEMY_DIFFICULTY_LIST = cASTLE_ENEMY_DIFFICULTY_LIST;
     byte[] array = new byte[14];
     array[0] = 1;
     array[4] = 1;
     LevelEV.GARDEN_ENEMY_DIFFICULTY_LIST = array;
     LevelEV.TOWER_ENEMY_DIFFICULTY_LIST = new byte[]
     {
         1,
         0,
         1,
         1,
         1,
         1,
         1,
         1,
         0,
         1,
         1,
         1,
         1,
         1,
         1,
         0
     };
     LevelEV.DUNGEON_ENEMY_DIFFICULTY_LIST = new byte[]
     {
         1,
         1,
         1,
         1,
         1,
         1,
         1,
         1,
         1,
         1,
         1,
         1,
         1,
         1,
         1,
         1,
         1,
         1
     };
     LevelEV.CASTLE_ASSETSWAP_LIST = new string[]
     {
         "BreakableBarrel1_Character",
         "BreakableBarrel2_Character",
         "CastleAssetKnightStatue_Character",
         "CastleAssetWindow1_Sprite",
         "CastleAssetWindow2_Sprite",
         "CastleBGPillar_Character",
         "CastleAssetWeb1_Sprite",
         "CastleAssetWeb2_Sprite",
         "CastleAssetBackTorch_Character",
         "CastleAssetSideTorch_Character",
         "CastleAssetChandelier1_Character",
         "CastleAssetChandelier2_Character",
         "CastleAssetCandle1_Character",
         "CastleAssetCandle2_Character",
         "CastleAssetFireplace_Character",
         "CastleAssetBookcase_Sprite",
         "CastleAssetBookCase2_Sprite",
         "CastleAssetBookCase3_Sprite",
         "CastleAssetUrn1_Character",
         "CastleAssetUrn2_Character",
         "BreakableChair1_Character",
         "BreakableChair2_Character",
         "CastleAssetTable1_Character",
         "CastleAssetTable2_Character",
         "CastleDoorOpen_Sprite",
         "CastleAssetFrame_Sprite"
     };
     LevelEV.DUNGEON_ASSETSWAP_LIST = new string[]
     {
         "BreakableCrate1_Character",
         "BreakableBarrel1_Character",
         "CastleAssetDemonStatue_Character",
         "DungeonSewerGrate1_Sprite",
         "DungeonSewerGrate2_Sprite",
         "",
         "CastleAssetWeb1_Sprite",
         "CastleAssetWeb2_Sprite",
         "DungeonChainRANDOM2_Character",
         "",
         "DungeonHangingCell1_Character",
         "DungeonHangingCell2_Character",
         "DungeonTorch1_Character",
         "DungeonTorch2_Character",
         "DungeonMaidenRANDOM3_Character",
         "DungeonPrison1_Sprite",
         "DungeonPrison2_Sprite",
         "DungeonPrison3_Sprite",
         "",
         "",
         "DungeonBucket1_Character",
         "DungeonBucket2_Character",
         "DungeonTable1_Character",
         "DungeonTable2_Character",
         "DungeonDoorOpen_Sprite",
         ""
     };
     LevelEV.TOWER_ASSETSWAP_LIST = new string[]
     {
         "BreakableCrate1_Character",
         "BreakableCrate2_Character",
         "CastleAssetAngelStatue_Character",
         "TowerHoleRANDOM9_Sprite",
         "TowerHoleRANDOM9_Sprite",
         "",
         "TowerLever1_Sprite",
         "TowerLever2_Sprite",
         "CastleAssetBackTorchUnlit_Character",
         "CastleAssetSideTorchUnlit_Character",
         "DungeonChain1_Character",
         "DungeonChain2_Character",
         "TowerTorch_Character",
         "TowerPedestal2_Character",
         "CastleAssetFireplaceNoFire_Character",
         "BrokenBookcase1_Sprite",
         "BrokenBookcase2_Sprite",
         "",
         "TowerBust1_Character",
         "TowerBust2_Character",
         "TowerChair1_Character",
         "TowerChair2_Character",
         "TowerTable1_Character",
         "TowerTable2_Character",
         "TowerDoorOpen_Sprite",
         "CastleAssetFrame_Sprite"
     };
     LevelEV.GARDEN_ASSETSWAP_LIST = new string[]
     {
         "GardenUrn1_Character",
         "GardenUrn2_Character",
         "CherubStatue_Character",
         "GardenFloatingRockRANDOM5_Sprite",
         "GardenFloatingRockRANDOM5_Sprite",
         "GardenPillar_Character",
         "",
         "",
         "GardenFairy_Character",
         "",
         "GardenVine1_Character",
         "GardenVine2_Character",
         "GardenLampPost1_Character",
         "GardenLampPost2_Character",
         "GardenFountain_Character",
         "GardenBush1_Sprite",
         "GardenBush2_Sprite",
         "",
         "",
         "",
         "GardenMushroom1_Character",
         "GardenMushroom2_Character",
         "GardenTrunk1_Character",
         "GardenTrunk2_Character",
         "GardenDoorOpen_Sprite",
         ""
     };
     LevelEV.SHOW_ENEMY_RADII = false;
     LevelEV.ENABLE_PLAYER_DEBUG = false;
     LevelEV.UNLOCK_ALL_ABILITIES = false;
     LevelEV.TESTROOM_LEVELTYPE = GameTypes.LevelType.CASTLE;
     LevelEV.TESTROOM_REVERSE = false;
     LevelEV.RUN_TESTROOM = false;
     LevelEV.SHOW_DEBUG_TEXT = false;
     LevelEV.LOAD_TITLE_SCREEN = false;
     LevelEV.LOAD_SPLASH_SCREEN = true;
     LevelEV.SHOW_SAVELOAD_DEBUG_TEXT = false;
     LevelEV.DELETE_SAVEFILE = false;
     LevelEV.CLOSE_TESTROOM_DOORS = false;
     LevelEV.RUN_TUTORIAL = false;
     LevelEV.RUN_DEMO_VERSION = false;
     LevelEV.DISABLE_SAVING = false;
     LevelEV.RUN_CRASH_LOGS = false;
     LevelEV.WEAKEN_BOSSES = false;
     LevelEV.ENABLE_OFFSCREEN_CONTROL = false;
     LevelEV.ENABLE_BACKUP_SAVING = true;
     LevelEV.CREATE_RETAIL_VERSION = true;
     LevelEV.SHOW_FPS = false;
     LevelEV.SAVE_FRAMES = false;
 }
示例#5
0
        public static void StoreSwappedObj(GameObj obj, GameTypes.LevelType levelType, RoomObj currentRoom)
        {
            string[] array;
            switch (levelType)
            {
            case GameTypes.LevelType.GARDEN:
                array = LevelEV.GARDEN_ASSETSWAP_LIST;
                break;

            case GameTypes.LevelType.DUNGEON:
                array = LevelEV.DUNGEON_ASSETSWAP_LIST;
                break;

            case GameTypes.LevelType.TOWER:
                array = LevelEV.TOWER_ASSETSWAP_LIST;
                break;

            default:
                throw new Exception("Cannot find asset swaplist for leveltype " + levelType);
            }
            var breakableObj = obj as BreakableObj;

            if (breakableObj != null && breakableObj.SpriteName.Contains("CastleAssetUrn"))
            {
                breakableObj.CollidesTop = false;
            }
            var flag           = false;
            var animateableObj = obj.Clone() as IAnimateableObj;

            if (animateableObj != null)
            {
                var i = 0;
                while (i < LevelEV.CASTLE_ASSETSWAP_LIST.Length)
                {
                    if (animateableObj.SpriteName == LevelEV.CASTLE_ASSETSWAP_LIST[i])
                    {
                        var text = array[i];
                        if (text.Contains("RANDOM"))
                        {
                            var max = int.Parse(Convert.ToString(text[text.IndexOf("RANDOM") + 6]));
                            var num = CDGMath.RandomInt(1, max);
                            text = text.Replace("RANDOM" + max, num.ToString());
                            if (text.Contains("TowerHole"))
                            {
                                (animateableObj as GameObj).X += CDGMath.RandomInt(-50, 50);
                                (animateableObj as GameObj).Y += CDGMath.RandomInt(-50, 50);
                                if (CDGMath.RandomInt(1, 100) > 70)
                                {
                                    (animateableObj as GameObj).Visible = false;
                                }
                            }
                            if (text.Contains("GardenFloatingRock"))
                            {
                                animateableObj = new HoverObj(text)
                                {
                                    Position   = (animateableObj as GameObj).Position,
                                    Amplitude  = CDGMath.RandomFloat(-50f, 50f),
                                    HoverSpeed = CDGMath.RandomFloat(-2f, 2f),
                                    Scale      = (animateableObj as GameObj).Scale,
                                    Layer      = (animateableObj as GameObj).Layer
                                };
                            }
                        }
                        if (text == "CastleAssetFrame_Sprite")
                        {
                            text = "FramePicture" + CDGMath.RandomInt(1, 16) + "_Sprite";
                        }
                        if (!(text != ""))
                        {
                            break;
                        }
                        animateableObj.ChangeSprite(text);
                        flag = true;
                        if (text.Contains("GardenFairy"))
                        {
                            (animateableObj as GameObj).X      += CDGMath.RandomInt(-25, 25);
                            (animateableObj as GameObj).Y      += CDGMath.RandomInt(-25, 25);
                            (animateableObj as GameObj).Opacity = 0.8f;
                        }
                        break;
                    }
                    i++;
                }
            }
            if (flag)
            {
                StoreObj(animateableObj as GameObj, currentRoom);
            }
        }
示例#6
0
        public void RevealSymbol(GameTypes.LevelType levelType, bool tween)
        {
            var flag = false;
            int index;

            switch (levelType)
            {
            case GameTypes.LevelType.CASTLE:
                index = 1;
                if (Game.PlayerStats.ChallengeEyeballBeaten)
                {
                    flag = true;
                }
                break;

            case GameTypes.LevelType.GARDEN:
                index = 3;
                if (Game.PlayerStats.ChallengeSkullBeaten)
                {
                    flag = true;
                }
                break;

            case GameTypes.LevelType.DUNGEON:
                index = 4;
                if (Game.PlayerStats.ChallengeBlobBeaten)
                {
                    flag = true;
                }
                break;

            case GameTypes.LevelType.TOWER:
                index = 2;
                if (Game.PlayerStats.ChallengeFireballBeaten)
                {
                    flag = true;
                }
                break;

            default:
                index = 5;
                if (Game.PlayerStats.ChallengeLastBossBeaten)
                {
                    flag = true;
                }
                break;
            }
            if (flag)
            {
                m_bossDoorSprite.GetChildAt(index).TextureColor = Color.Yellow;
            }
            else
            {
                m_bossDoorSprite.GetChildAt(index).TextureColor = Color.White;
            }
            if (tween)
            {
                m_bossDoorSprite.GetChildAt(index).Opacity = 0f;
                Tween.To(m_bossDoorSprite.GetChildAt(index), 0.5f, Quad.EaseInOut, "delay", "1.5", "Opacity", "1");
                return;
            }
            m_bossDoorSprite.GetChildAt(index).Opacity = 1f;
        }
示例#7
0
        static LevelEV()
        {
            // Note: this type is marked as 'beforefieldinit'.
            var cASTLE_ENEMY_DIFFICULTY_LIST = new byte[12];

            CASTLE_ENEMY_DIFFICULTY_LIST = cASTLE_ENEMY_DIFFICULTY_LIST;
            var array = new byte[14];

            array[0] = 1;
            array[4] = 1;
            GARDEN_ENEMY_DIFFICULTY_LIST = array;
            TOWER_ENEMY_DIFFICULTY_LIST  = new byte[]
            {
                1,
                0,
                1,
                1,
                1,
                1,
                1,
                1,
                0,
                1,
                1,
                1,
                1,
                1,
                1,
                0
            };
            DUNGEON_ENEMY_DIFFICULTY_LIST = new byte[]
            {
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1,
                1
            };
            CASTLE_ASSETSWAP_LIST = new[]
            {
                "BreakableBarrel1_Character",
                "BreakableBarrel2_Character",
                "CastleAssetKnightStatue_Character",
                "CastleAssetWindow1_Sprite",
                "CastleAssetWindow2_Sprite",
                "CastleBGPillar_Character",
                "CastleAssetWeb1_Sprite",
                "CastleAssetWeb2_Sprite",
                "CastleAssetBackTorch_Character",
                "CastleAssetSideTorch_Character",
                "CastleAssetChandelier1_Character",
                "CastleAssetChandelier2_Character",
                "CastleAssetCandle1_Character",
                "CastleAssetCandle2_Character",
                "CastleAssetFireplace_Character",
                "CastleAssetBookcase_Sprite",
                "CastleAssetBookCase2_Sprite",
                "CastleAssetBookCase3_Sprite",
                "CastleAssetUrn1_Character",
                "CastleAssetUrn2_Character",
                "BreakableChair1_Character",
                "BreakableChair2_Character",
                "CastleAssetTable1_Character",
                "CastleAssetTable2_Character",
                "CastleDoorOpen_Sprite",
                "CastleAssetFrame_Sprite"
            };
            DUNGEON_ASSETSWAP_LIST = new[]
            {
                "BreakableCrate1_Character",
                "BreakableBarrel1_Character",
                "CastleAssetDemonStatue_Character",
                "DungeonSewerGrate1_Sprite",
                "DungeonSewerGrate2_Sprite",
                "",
                "CastleAssetWeb1_Sprite",
                "CastleAssetWeb2_Sprite",
                "DungeonChainRANDOM2_Character",
                "",
                "DungeonHangingCell1_Character",
                "DungeonHangingCell2_Character",
                "DungeonTorch1_Character",
                "DungeonTorch2_Character",
                "DungeonMaidenRANDOM3_Character",
                "DungeonPrison1_Sprite",
                "DungeonPrison2_Sprite",
                "DungeonPrison3_Sprite",
                "",
                "",
                "DungeonBucket1_Character",
                "DungeonBucket2_Character",
                "DungeonTable1_Character",
                "DungeonTable2_Character",
                "DungeonDoorOpen_Sprite",
                ""
            };
            TOWER_ASSETSWAP_LIST = new[]
            {
                "BreakableCrate1_Character",
                "BreakableCrate2_Character",
                "CastleAssetAngelStatue_Character",
                "TowerHoleRANDOM9_Sprite",
                "TowerHoleRANDOM9_Sprite",
                "",
                "TowerLever1_Sprite",
                "TowerLever2_Sprite",
                "CastleAssetBackTorchUnlit_Character",
                "CastleAssetSideTorchUnlit_Character",
                "DungeonChain1_Character",
                "DungeonChain2_Character",
                "TowerTorch_Character",
                "TowerPedestal2_Character",
                "CastleAssetFireplaceNoFire_Character",
                "BrokenBookcase1_Sprite",
                "BrokenBookcase2_Sprite",
                "",
                "TowerBust1_Character",
                "TowerBust2_Character",
                "TowerChair1_Character",
                "TowerChair2_Character",
                "TowerTable1_Character",
                "TowerTable2_Character",
                "TowerDoorOpen_Sprite",
                "CastleAssetFrame_Sprite"
            };
            GARDEN_ASSETSWAP_LIST = new[]
            {
                "GardenUrn1_Character",
                "GardenUrn2_Character",
                "CherubStatue_Character",
                "GardenFloatingRockRANDOM5_Sprite",
                "GardenFloatingRockRANDOM5_Sprite",
                "GardenPillar_Character",
                "",
                "",
                "GardenFairy_Character",
                "",
                "GardenVine1_Character",
                "GardenVine2_Character",
                "GardenLampPost1_Character",
                "GardenLampPost2_Character",
                "GardenFountain_Character",
                "GardenBush1_Sprite",
                "GardenBush2_Sprite",
                "",
                "",
                "",
                "GardenMushroom1_Character",
                "GardenMushroom2_Character",
                "GardenTrunk1_Character",
                "GardenTrunk2_Character",
                "GardenDoorOpen_Sprite",
                ""
            };
            SHOW_ENEMY_RADII         = false;
            ENABLE_PLAYER_DEBUG      = false;
            UNLOCK_ALL_ABILITIES     = false;
            TESTROOM_LEVELTYPE       = GameTypes.LevelType.CASTLE;
            TESTROOM_REVERSE         = false;
            RUN_TESTROOM             = false;
            SHOW_DEBUG_TEXT          = false;
            LOAD_TITLE_SCREEN        = false;
            LOAD_SPLASH_SCREEN       = true;
            SHOW_SAVELOAD_DEBUG_TEXT = false;
            DELETE_SAVEFILE          = false;
            CLOSE_TESTROOM_DOORS     = false;
            RUN_TUTORIAL             = false;
            RUN_DEMO_VERSION         = false;
            DISABLE_SAVING           = false;
            RUN_CRASH_LOGS           = false;
            WEAKEN_BOSSES            = false;
            ENABLE_OFFSCREEN_CONTROL = false;
            ENABLE_BACKUP_SAVING     = true;
            CREATE_RETAIL_VERSION    = true;
            SHOW_FPS    = false;
            SAVE_FRAMES = false;
        }