Exemple #1
0
    void CreateItem(Collectible.Type type, int x, int y)
    {
        var newItem = new Collectible(atlas, type);

        newItem.MoveTo(x, y);
        items.Add(newItem);
    }
Exemple #2
0
    void CreateObstacle(Collectible.Type type, int x, int y)
    {
        var newObstacle = new Interractable(atlas, type);

        newObstacle.MoveTo(x, y);
        obstacles.Add(newObstacle);
    }
Exemple #3
0
    void CreateItem(Collectible.Type type, GridPosition pos)
    {
        var newItem = new Collectible(gameAtlas, type);

        newItem.MoveTo(pos);
        Target.Add(newItem);
    }
Exemple #4
0
    void CreateObstacle(Collectible.Type type, GridPosition pos)
    {
        var newObstacle = new Interractable(gameAtlas, type);

        newObstacle.MoveTo(pos);
        Target.Add(newObstacle);
    }
Exemple #5
0
        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;
         }
     }
 }
Exemple #7
0
    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));
                        }
                    }
                }
            }
        }
Exemple #10
0
 public Interractable(SpriteSheet sheet, Collectible.Type _key) : base(sheet, (int)_key)
 {
     key = _key;
 }
Exemple #11
0
 public virtual bool TryUnlocking(Collectible.Type _key)
 {
     return(key == _key);
 }