void CreateItem(Collectible.Type type, int x, int y) { var newItem = new Collectible(atlas, type); newItem.MoveTo(x, y); items.Add(newItem); }
void CreateObstacle(Collectible.Type type, int x, int y) { var newObstacle = new Interractable(atlas, type); newObstacle.MoveTo(x, y); obstacles.Add(newObstacle); }
void CreateItem(Collectible.Type type, GridPosition pos) { var newItem = new Collectible(gameAtlas, type); newItem.MoveTo(pos); Target.Add(newItem); }
void CreateObstacle(Collectible.Type type, GridPosition pos) { var newObstacle = new Interractable(gameAtlas, type); newObstacle.MoveTo(pos); Target.Add(newObstacle); }
public override GameObject Load(BinaryReader reader) { MeshObject meshObject = MeshObject.Load(reader); Collectible.Type type = (Collectible.Type)reader.ReadInt32(); int roomX = reader.ReadInt32(); int roomY = reader.ReadInt32(); return(new Collectible(meshObject, type, roomX, roomY)); }
public void SaveCollectibleTaken(int chap, int lvl, Collectible.Type type, int index) { if (CurrentChapter != -1) { if (type == Collectible.Type.Light) { saves[currentSave].Chapters[chap].GetLevels()[lvl].LightCollectibles[index] = true; } else if (type == Collectible.Type.Shadow) { saves[currentSave].Chapters[chap].GetLevels()[lvl].ShadowCollectibles[index] = true; } } }
public void Add(Collectible item) { Collectible.Type type = item.type; int oldTotal = 0; if (_inventory.TryGetValue(type, out oldTotal)) { _inventory[type] = oldTotal + 1; } else { _inventory.Add(type, 1); } _inventoryDisplay.OnChangeInventory(_inventory); }
/// <summary> /// /// Si le collectible passé en paramètre n'est pas déjà stocké dans la liste de Restart de gros checkpoint, le stocke dedans /// stock le collectible dans la liste de Restart de petit checkpoint en fonction de son type /// /// </summary> /// <param name="typeOfCollectible"></param> /// <param name="collectible"></param> private void Collectible_OnCollected(Collectible.Type typeOfCollectible, GameObject collectible) { if (CollectiblesOnBigCP.IndexOf(collectible) <= -1) { CollectiblesOnBigCP.Add(collectible); } switch (typeOfCollectible) { case Collectible.Type.Artefact: ArtefactsCollected++; CollectiblesOnSmallCP.Add(collectible); //AlreadyCollectedArtefacts.Add(collectible); UpdateArtefacts?.Invoke(ArtefactsCollected, collectible); //Debug.Log(ArtefactsCollected); CameraShake.Instance.ScreenShake(0.2f, 8f); if (LevelManager.CurrentLevelIndex == 1 && IsAllArtefactsCollect) { //Debug.Log("all artefacts + triggr"); //CutSceneTrigger.SendAllArtefactTrigger(); Invoke(nameof(callTriggerAll), 1.6f); } break; case Collectible.Type.Life: break; case Collectible.Type.Score: CollectiblesOnSmallCP.Add(collectible); break; default: break; } }
private void GenerateRooms(Scene scene, Zone[,] zones) { // Generating geometry and colliders for (int x = 0; x < size; x++) { for (int y = 0; y < size; y++) { if (accessible[x, y]) { float left = x * tileSize - size * tileSize / 2; float right = left + tileSize; float bottom = y * tileSize - size * tileSize / 2; float top = bottom + tileSize; zones[x, y] = new Zone(new RectangleF(left, bottom, tileSize, tileSize)); scene.AddZone(zones[x, y]); float[] roomCorridors = Enumerable.Range(0, 4).Select(t => corridorWidths[x, y, t]).ToArray(); // Walls List <Vector2[]> walls = SceneGenUtils.MakeRoomWalls(tileSize, tileSize, roomCorridors, 2f); Vector2 roomCenter = new Vector2((left + right) / 2, (top + bottom) / 2); List <Triangle> wallTriangles = new List <Triangle>(); foreach (Vector2[] wall in walls) { wallTriangles.AddRange(SceneGenUtils.MakeWall(wall, -4f, 4f, WallTexture)); scene.AddObstacle(wall[0] + roomCenter, wall[1] + roomCenter, ObstacleLayer.Wall); } MeshObject wallObject = new MeshObject(wallTriangles, new Vector3(roomCenter.X, 0f, roomCenter.Y), 0f); zones[x, y].AddMesh(wallObject); bool flagIsSpecial = (x == exitRoom.X && y == exitRoom.Y) || (x == size / 2 && y == size / 2); PopulateSchemeFlags flags = new PopulateSchemeFlags { IsSpecial = flagIsSpecial, ClearCenter = scene.Collectibles[x, y] == null && !flagIsSpecial, NotJoint = true, ClearPerimeter = true, ClearFloor = scene.Collectibles[x, y] == null && !flagIsSpecial }; for (int t = 0; t < 4; t++) { if (corridorLayout[x, y, t] && corridorWidths[x, y, t] > 15f) { flags.NotJoint = false; } } if (scene.Collectibles[x, y] != null) { Collectible.Type type = scene.Collectibles[x, y].Value; AsciiTexture texture = null; switch (type) { case Collectible.Type.Armor: texture = Assets.barrelGreenTexture; break; case Collectible.Type.Health: texture = Assets.barrelRedTexture; break; case Collectible.Type.Skill: texture = Assets.barrelBlueTexture; break; } MeshObject barrel = new MeshObject(Assets.barrelModel, texture, new Vector3(roomCenter.X, -3f, roomCenter.Y)); scene.AddGameObject(new Collectible(barrel, type, x, y)); } if (x == exitRoom.X && y == exitRoom.Y) { flags.ClearCenter = false; flags.ClearPerimeter = false; flags.ClearFloor = false; MeshObject exit = new MeshObject(Assets.exitModel, Assets.exitTexture, new Vector3(roomCenter.X, -3.25f, roomCenter.Y)); zones[x, y].AddMesh(exit); game.PlayerStats.exitPosition = new Vector2(roomCenter.X, roomCenter.Y); } PopulateRoomResults results = PopulateRoom(scene, zones[x, y], x, y, flags); if (results.GenerateFloor) { zones[x, y].AddMesh(SceneGenUtils.MakeFloor(left, right, bottom, top, -4f, FloorTexture, true)); zones[x, y].AddMesh(SceneGenUtils.MakeFloor(left, right, bottom, top, 4f, FloorTexture, false)); } } } } }
public Interractable(SpriteSheet sheet, Collectible.Type _key) : base(sheet, (int)_key) { key = _key; }
public virtual bool TryUnlocking(Collectible.Type _key) { return(key == _key); }