public HiddenRoomCoverManager(BaseLevel pLevel) : base(false)
        {
            Instance = this;
            _level   = pLevel;

            //Load hidden room from tmx
            var map = _level.LevelMap.MapData;

            var hiddenRoomData = map.ObjectGroups?.Where(og => og.Name == "Hidden Room Cover").FirstOrDefault()?.Objects
                                 .FirstOrDefault(ob => ob.Name == "Hidden Room Cover");

            var hiddenRoomColliderData = map.ObjectGroups?.Where(og => og.Name == "Hidden Room Cover").FirstOrDefault()
                                         ?.Objects
                                         .FirstOrDefault(ob => ob.Name == "Hidden Room Collider");

            if (hiddenRoomData == null || hiddenRoomColliderData == null)
            {
                Console.WriteLine(
                    $"ERROR: Hidden Room Cover or Collider Tmx objects not found in Hidden Room Cover object layer");
            }
            else
            {
                _hiddenRoomCover = new Sprite("data/Hidden Room Cover.png", false, false);

                _hiddenRoomCover.width  = Mathf.Round(hiddenRoomData.Width);
                _hiddenRoomCover.height = Mathf.Round(hiddenRoomData.Height);
                _hiddenRoomCover.SetOrigin(0, _hiddenRoomCover.texture.height);

                _level.AddChild(_hiddenRoomCover);
                _hiddenRoomCover.rotation = hiddenRoomData.rotation;
                _hiddenRoomCover.SetXY(hiddenRoomData.X, hiddenRoomData.Y);

                _hiddenRoomCoverCollider = new Sprite("data/White Texture.png");

                _hiddenRoomCoverCollider.width  = Mathf.Round(hiddenRoomColliderData.Width);
                _hiddenRoomCoverCollider.height = Mathf.Round(hiddenRoomColliderData.Height);
                _hiddenRoomCoverCollider.SetOrigin(0, _hiddenRoomCoverCollider.texture.height);

                _level.AddChild(_hiddenRoomCoverCollider);
                _hiddenRoomCoverCollider.rotation = hiddenRoomColliderData.rotation;
                _hiddenRoomCoverCollider.SetXY(hiddenRoomColliderData.X, hiddenRoomColliderData.Y);
                _hiddenRoomCoverCollider.visible = false;

                Console.WriteLine(
                    $"{_hiddenRoomCoverCollider}: {_hiddenRoomCoverCollider.scaleX} | {_hiddenRoomCoverCollider.scaleY}");

                CoroutineManager.StartCoroutine(Start(), this);
            }
        }
        FlashbackPickup AddFlashbackPickupToLevel(TiledObject flashData)
        {
            string objUniqueName = flashData.Name.Trim();

            flashData.Name = flashData.Name.Replace("Pickup ", "").Trim().ToLower();

            int counter = 0;

            while (_flashPickupsMap.ContainsKey(objUniqueName.ToLower()))
            {
                objUniqueName = flashData.Name.Trim().ToLower() + "_" + counter;
                counter++;
            }

            int flashNum = int.TryParse(flashData.Name.Replace("flashback ", ""), out flashNum) ? flashNum : 6;

            var flashPickup = new FlashbackPickup($"data/flashback_pick_up_{flashNum}.png", flashData, 1, 1)
            {
                name = objUniqueName
            };

            _level.AddChild(flashPickup);
            flashPickup.Enabled = false;
            flashPickup.width   = Mathf.Round(flashData.Width);
            flashPickup.height  = Mathf.Round(flashData.Height);
            flashPickup.SetOrigin(0, flashPickup.texture.height); //Tmx use origin left,bottom :/
            flashPickup.rotation = flashData.rotation;
            flashPickup.SetXY(flashData.X, flashData.Y);

            return(flashPickup);
        }
Example #3
0
        void AddHistoryPickupToLevel(string pName, string historyImageFileName, float pX, float pY, float pRotation, float pWidth, float pHeight)
        {
            string objUniqueName = pName.Trim();

            int counter = 0;

            while (_pickupsMap.ContainsKey(objUniqueName.ToLower()))
            {
                objUniqueName = pName.Trim() + "_" + counter;
                counter++;
            }

            var history = new HistoryPickUp(historyImageFileName, "data/History Pickup.png", 1, 1)
            {
                name = objUniqueName
            };


            _pickupsMap.Add(objUniqueName.ToLower(), history);

            _level.AddChild(history);
            history.width  = Mathf.Round(pWidth);
            history.height = Mathf.Round(pHeight);
            history.SetOrigin(0, history.texture.height);
            history.rotation = pRotation;
            history.SetXY(pX, pY);
        }
        FlashBackTrigger AddFlashbackTriggerToLevel(TiledObject flashData)
        {
            string objUniqueName = flashData.Name.Trim().ToLower();

            int counter = 0;

            while (_flashTriggersMap.ContainsKey(objUniqueName))
            {
                objUniqueName = flashData.Name.Trim() + "_" + counter;
                counter++;
            }

            flashData.Name = objUniqueName;

            var flashTrigger = new FlashBackTrigger("data/Flashback Pickup.png", flashData)
            {
                name = objUniqueName
            };

            _level.AddChild(flashTrigger);
            flashTrigger.width  = Mathf.Round(flashData.Width);
            flashTrigger.height = Mathf.Round(flashData.Height);
            flashTrigger.SetOrigin(0, flashTrigger.texture.height); //Tmx use origin left,bottom :/
            flashTrigger.rotation = flashData.rotation;
            flashTrigger.SetXY(flashData.X, flashData.Y);

            return(flashTrigger);
        }
Example #5
0
        private void AddDoor(string doorName, bool isOpenForever, bool isOneSided, float pX, float pY, float rot, float pWidth, float pHeight)
        {
            var door = new Door(isOneSided, "data/Door0.png", 2, 2)
            {
                name          = doorName,
                IsOpenForever = isOpenForever
            };

            _doorsMap.Add(doorName, door);

            _level.AddChild(door);
            door.width  = Mathf.Round(pWidth);
            door.height = Mathf.Round(pHeight);
            door.SetOrigin(0, door.texture.height / 2f); //2 rows
            door.rotation = rot;
            door.SetXY(pX, pY);
        }
Example #6
0
        private void AddDarkHall(string pName, float pX, float pY, float rot, float pWidth, float pHeight)
        {
            string numberString = pName.Replace("Dark Hall ", "");

            var darkHall = new DarkHall("data/darkhall" + numberString + ".png");

            _darkTriggersMap.Add(pName, darkHall);

            darkHall.width  = Mathf.Round(pWidth);
            darkHall.height = Mathf.Round(pHeight);
            darkHall.SetOrigin(0, darkHall.texture.height);

            _level.AddChild(darkHall);
            darkHall.rotation = rot;
            darkHall.SetXY(pX, pY);

            Console.WriteLine($"{darkHall}: {darkHall.scaleX} | {darkHall.scaleY}");
        }