コード例 #1
0
        public FollowCamera(int windowX, int windowY, int windowWidth, int windowHeight, MapGameObject pMap = null) : base(windowX, windowY,
                                                                                                                           windowWidth, windowHeight)
        {
            _map = pMap;

            CoroutineManager.StartCoroutine(WaitForMapSet(), this);
        }
コード例 #2
0
        public AirplanesManager(Level pLevel, EnemiesSoundManager pEnemiesSoundManager) : base(false)
        {
            _level = pLevel;
            _enemiesSoundManager = pEnemiesSoundManager;

            _map = _level.Map;

            _airplanesPool = new Airplane[20];

            for (int i = 0; i < _airplanesPool.Length; i++)
            {
                var airplane = new Airplane();

                airplane.OnUpdateListeners =
                    airplane.OnUpdateListeners.Concat(new IOnUpdateListener[] { _enemiesSoundManager }).ToArray();

                _level.AddChild(airplane);

                _firstAirplaneIndex = airplane.Index;

                airplane.SetActive(false);

                _airplanesPool[i] = airplane;
            }

            _airplanesMap = new Dictionary <Airplane, TiledObject>();
        }
コード例 #3
0
        public StorkManager(Stork pStork, Level pLevel) : base(false)
        {
            _stork = pStork;
            _level = pLevel;
            _map   = _level.Map;
            _stork.ColliderListener = this;

            _lastMarker = _level.GetChildren(false).Where(o => o is DeliveryPoint).LastOrDefault();
        }
コード例 #4
0
        public FollowCamera(int windowX, int windowY, int windowWidth, int windowHeight, MapGameObject pMap = null) :
            base(windowX, windowY,
                 windowWidth, windowHeight)
        {
            _map = pMap;

            CoroutineManager.StartCoroutine(WaitForMapAssign(), game);

            Enabled = false;
        }
コード例 #5
0
        private BaseLevel _level; //the level

        public DarkHallManager(MapGameObject pMap, BaseLevel pLevel) : base(false)
        {
            _darkTriggersMap = new Dictionary <string, DarkHall>();
            _map             = pMap;
            _level           = pLevel;

            //Load doors objects from Map
            var darkTriggersData = _map.ObjectGroups.SelectMany(og => og.Objects)
                                   .Where(tileObj => tileObj?.Type.ToLower() == "dark");

            //Creates DoorTrigger Game Objects in scene, IGNORE if doesn't exist a door with the same name "NameofTheDoor Trigger"
            foreach (var memData in darkTriggersData)
            {
                AddDarkHall(memData.Name, memData.X, memData.Y, memData.rotation, memData.Width, memData.Height);
            }
        }
コード例 #6
0
        public FlashBackTriggersManager(MapGameObject pMap, BaseLevel pLevel) : base(false)
        {
            Instance          = this;
            _flashTriggersMap = new Dictionary <string, FlashBackTrigger>();
            _level            = pLevel;
            _map = pMap;

            var flashesData = _map.ObjectGroups.SelectMany(og => og.Objects)
                              .Where(tileObj => tileObj?.Type.ToLower() == "flashback");

            foreach (var flash in flashesData)
            {
                var flashTrigger = AddFlashbackTriggerToLevel(flash);
                _flashTriggersMap.Add(flashTrigger.name.ToLower(), flashTrigger);
            }
        }
コード例 #7
0
        public HistoryPickupsManager(MapGameObject pMap, BaseLevel pLevel) : base(false)
        {
            _pickupsMap = new Dictionary <string, HistoryPickUp>();
            _level      = pLevel;
            _map        = pMap;

            var historicData = _map.ObjectGroups.SelectMany(og => og.Objects)
                               .Where(tileObj => tileObj?.Type.ToLower() == "history");

            foreach (var memData in historicData)
            {
                string historyImageFileName = memData.GetStringProperty("history_image", "data/No Image.png");

                AddHistoryPickupToLevel(memData.Name, historyImageFileName, memData.X, memData.Y, memData.rotation, memData.Width, memData.Height);
            }
            CoroutineManager.StartCoroutine(Start(), this);
        }
コード例 #8
0
        public FlashbackPickupsManager(MapGameObject pMap, BaseLevel pLevel) : base(false)
        {
            Instance = this;

            _flashPickupsMap = new Dictionary <string, FlashbackPickup>();
            _level           = pLevel;
            _map             = pMap;

            var flashesData = _map.ObjectGroups.SelectMany(og => og.Objects)
                              .Where(tileObj => tileObj?.Type.ToLower() == "flashbackpickup");

            //Get from settings to skip some flashbacks
            _flashesPickupsToSkip = new List <string>();
            if (Settings.Flashback_Pickups_Collected != "0")
            {
                var flashesStr = Settings.Flashback_Pickups_Collected.Trim().Split(' ');
                for (int i = 0; i < flashesStr.Length; i++)
                {
                    string valStr = flashesStr[i].Trim();
                    if (int.TryParse(valStr, out var val))
                    {
                        _flashesPickupsToSkip.Add($"Flashback {val}".ToLower());
                    }
                }
            }

            foreach (var flashData in flashesData)
            {
                var flashPickup = AddFlashbackPickupToLevel(flashData);
                _flashPickupsMap.Add(flashData.Name.ToLower(), flashPickup);
            }

            //Final trigger flashback
            var finalFlashData = _map.ObjectGroups
                                 .SelectMany(og => og.Objects)
                                 .FirstOrDefault(tileObj => tileObj?.Type.ToLower() == "finalflashbackpickup");

            if (finalFlashData != null)
            {
                _finalPickup = AddFlashbackPickupToLevel(finalFlashData);
            }
        }
コード例 #9
0
        private BaseLevel _level; //the level

        public DoorsManager(MapGameObject pMap, BaseLevel pLevel) : base(false)
        {
            _doorsMap         = new Dictionary <string, Door>();
            _doorsTriggersMap = new Dictionary <string, DoorTrigger>();
            _map   = pMap;
            _level = pLevel;

            //Load doors objects from Map

            var doorsData         = _map.ObjectGroups.SelectMany(og => og.Objects).Where(tileObj => !string.IsNullOrWhiteSpace(tileObj.Name) && !string.IsNullOrWhiteSpace(tileObj.Type) && (tileObj.Type?.ToLower() == "door" || tileObj.Type?.ToLower() == "dooronesided"));
            var doorsTriggersData = _map.ObjectGroups.SelectMany(og => og.Objects).Where(tileObj => !string.IsNullOrWhiteSpace(tileObj.Name) && !string.IsNullOrWhiteSpace(tileObj.Type) && tileObj.Type?.ToLower() == "doortrigger").ToDictionary(k => k.Name.Trim().ToLower().Replace(" trigger", ""), v => v);

            //Creates Door Game Objects in scene
            //Converts names to lowercase to prevent incorrect camelcase input in Tiled object names
            foreach (var doorData in doorsData)
            {
                doorData.Name = doorData.Name.ToLower();

                bool isOpenForever  = doorData.GetBoolProperty("open forever", true);
                bool isOneSidedDoor = doorData.Type.Trim().ToLower() == "dooronesided";

                AddDoor(doorData.Name, isOpenForever, isOneSidedDoor, doorData.X, doorData.Y, doorData.rotation, doorData.Width, doorData.Height);
            }

            //Creates DoorTrigger Game Objects in scene, IGNORE if doesn't exist a door with the same name "NameofTheDoor Trigger"
            foreach (var kv in doorsTriggersData)
            {
                var doorTData = kv.Value;
                doorTData.Name = doorTData.Name.ToLower();

                bool isDarkTrigger = doorTData.GetBoolProperty("dark_trigger", false);

                if (_doorsMap.TryGetValue(kv.Key, out var door))
                {
                    AddDoorTrigger(kv.Key, isDarkTrigger, door, doorTData.X, doorTData.Y, doorTData.rotation, doorTData.Width, doorTData.Height);
                }
            }

            CoroutineManager.StartCoroutine(Start(), this);
        }
コード例 #10
0
ファイル: Level.cs プロジェクト: vlab22/Team23_GXPEngine
        public Level(FollowCamera pCam, MapGameObject pMap)
        {
            _cam = pCam;
            _map = pMap;

            var enemiesSoundManager = new EnemiesSoundManager();

            AddChild(enemiesSoundManager);

            var spawnPointObject = _map.ObjectGroup.Objects.FirstOrDefault(o => o.Name == "spawn point");

            _spawnPoint = new Vector2(spawnPointObject.X, spawnPointObject.Y);

            AddChild(_map);

            //Create delivery points
            var deliveryPointObjects = _map.ObjectGroup.Objects.Where(o => o.Name.StartsWith("delivery point"))
                                       .OrderBy(o => o.Name);

            _deliveryPoints = new DeliveryPoint[deliveryPointObjects.Count()];

            int dCounter = 0;

            foreach (var deliveryPointObj in deliveryPointObjects)
            {
                uint deliveryTimer = (uint)(deliveryPointObj.GetIntProperty("timer", 60) * 1000);

                var deliveryPoint = new DeliveryPoint(deliveryPointObj.X, deliveryPointObj.Y,
                                                      deliveryPointObj.Width, deliveryPointObj.Height, deliveryTimer);
                AddChild(deliveryPoint);

                deliveryPoint.SetActive(false);

                _deliveryPoints[dCounter] = deliveryPoint;
                dCounter++;
            }

            //Enable the first delivery point
            _deliveryPoints[0].SetActive(true);


            //Add Tornados
            _tornadoesManager = new TornadoManager(this, enemiesSoundManager);
            AddChild(_tornadoesManager);

            _tornadoesManager.SpawnTornadoes();

            float storkMaxSpeed = spawnPointObject.GetFloatProperty("speed", 200);

            _stork = new Stork(storkMaxSpeed)
            {
                x        = _spawnPoint.x,
                y        = _spawnPoint.y,
                rotation = spawnPointObject.rotation
            };

            AddChild(_stork);
            _stork.SetScaleXY(1.5f, 1.5f);

            _storkManager = new StorkManager(_stork, this);
            AddChild(_storkManager);

            _stork.IUpdater = _storkManager;

            var hunterBulletManager = new HunterBulletManager(this);

            AddChild(hunterBulletManager);

            _huntersManager = new HuntersManager(this, hunterBulletManager);
            _huntersManager.SpawnHunters();
            _huntersManager.SetHuntersTarget(_stork);

            _dronesesManager = new DronesManager(this, enemiesSoundManager);
            _dronesesManager.SpawnDrones();

            _dronesesManager.SetDronesTarget(_stork);

            for (int i = 0; i < _pizzasPool.Length; i++)
            {
                var pizza = new PizzaGameObject("data/pizza00.png");
                pizza.visible = false;
                this.AddChild(pizza);

                _pizzasPool[i] = pizza;
            }

            _airplanesManager = new AirplanesManager(this, enemiesSoundManager);
            _airplanesManager.SpawnAirplanes();

            AddChild(_airplanesManager);

            _map.DrawBorders(this, 0.5f);

            _cloudsManager = new CloudsManager(_map, this);
            AddChild(_cloudsManager);

            _cloudsManager.SpawnClouds();

            CoroutineManager.StartCoroutine(SetCamTargetRoutine(_stork), this);

            AddChild(_cam);
            _cam.Map = _map;
            _cam.SetXY(_map.MapWidthInPixels * 0.5f, _map.MapHeightInPixels * 0.5f);
            _cam.Start();

            _cam.AddChild(HudScreenFader.instance);
            HudScreenFader.instance.SetXY(-game.width * 0.5f, -game.height * 0.5f);

            _hud = new HUD(_cam, _stork);
        }
コード例 #11
0
 public CloudsManager(MapGameObject pMap, Level pLevel) : base(false)
 {
     _map    = pMap;
     _level  = pLevel;
     _clouds = new List <CloudGameObject>();
 }