public FollowCamera(int windowX, int windowY, int windowWidth, int windowHeight, MapGameObject pMap = null) : base(windowX, windowY, windowWidth, windowHeight) { _map = pMap; CoroutineManager.StartCoroutine(WaitForMapSet(), this); }
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>(); }
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(); }
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; }
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); } }
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); } }
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); }
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); } }
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); }
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); }
public CloudsManager(MapGameObject pMap, Level pLevel) : base(false) { _map = pMap; _level = pLevel; _clouds = new List <CloudGameObject>(); }