Пример #1
0
        public SerializableLevelData(ILevelData levelData)
        {
            id     = levelData.id;
            name   = levelData.name;
            owner  = levelData.owner;
            width  = levelData.width;
            height = levelData.height;

            floorTiles       = new int[width * height];
            itemTiles        = new int[width * height];
            itemOrientations = new int[width * height];
            for (int x = 0; x < width; x++)
            {
                for (int y = 0; y < height; y++)
                {
                    floorTiles[y * width + x] = levelData.GetFloor(x, y);

                    Vector2Int itemData = levelData.GetItem(x, y);
                    itemTiles[y * width + x]        = itemData[0];
                    itemOrientations[y * width + x] = itemData[1];
                }
            }

            wallTiles = new int[(width + 1) * (height + 1) * 2];
            for (int x = 0; x < width + 1; x++)
            {
                for (int y = 0; y < height + 1; y++)
                {
                    for (int z = 0; z < 2; z++)
                    {
                        wallTiles[(z * (width + 1) * (height + 1)) + (y * (width + 1)) + x] = levelData.GetWall(x, y, z);
                    }
                }
            }
        }
Пример #2
0
        void ILevelSerializer.SaveLevel(ILevelData levelData)
        {
            SerializableLevelData webLevelData = new SerializableLevelData(levelData);

            PersistentAPI.SaveRoom(webLevelData);
            Debug.Log("Saving room");
        }
Пример #3
0
 public PlayerModel(ILevelData levelData, IStage stage)
 {
     this.levelData       = levelData;
     this.stage           = stage;
     originalBulletObject = levelData.PlayerBullet;
     moveVelocity         = levelData.PlayerMoveVelocity;
     position.Value       = new Vector2(0, -2.3f);
 }
Пример #4
0
        public BulletModel(IAttackable attackable, ILevelData levelData)
        {
            position  = new ReactiveProperty <Vector2>(attackable.Position.Value);
            onDestroy = new Subject <Unit>();

            this.attacker = attackable;

            velocity  = levelData.PlayerBulletVelocity;
            direction = attackable.Direction;
        }
Пример #5
0
        ILevelData ILevelSerializer.LoadLevel(string levelName)
        {
            if (forceCreateNewLevelOnLoad)
            {
                ILevelData newLevelData = new LevelData(10, 10, levelName);
                newLevelData.owner = "1";
                newLevelData.id    = 1;
                return(newLevelData);
            }

            string jsonResponse = PersistentAPI.GetRoom(levelName);

            SerializableLevelData webLevelData = JsonUtility.FromJson <SerializableLevelData>(jsonResponse);
            ILevelData            levelData    = webLevelData.ToLevelData();

            return(levelData);
        }
Пример #6
0
        public IMoveContainer GetPossibleMoves(ILevelData levelData)
        {
            IMoveContainer possibleMoves = new MoveContainer();

            List <Checker> myCheckers    = levelData.GetNorthPlayerCheckers();
            List <Checker> theirCheckers = levelData.GetSouthPlayerCheckers();

            if (levelData.GetCurrentTurn() == 'N')
            {
                myCheckers    = levelData.GetNorthPlayerCheckers();
                theirCheckers = levelData.GetSouthPlayerCheckers();
            }
            else
            {
                myCheckers    = levelData.GetSouthPlayerCheckers();
                theirCheckers = levelData.GetNorthPlayerCheckers();
            }

            foreach (Checker myChecker in myCheckers)
            {
                int myX = myChecker.GetLocation().GetX();
                int myY = myChecker.GetLocation().GetY();
                foreach (Checker theirChecker in theirCheckers)
                {
                    int theirX = theirChecker.GetLocation().GetX();
                    int theirY = theirChecker.GetLocation().GetY();
                    if (myY == (theirY - 1) && myX == (theirX - 1))
                    {
                    }

                    if (myY == (theirY - 1) && myX == (theirX + 1))
                    {
                    }

                    if (myY == (theirY + 1) && myX == (theirX - 1))
                    {
                    }

                    if (myY == (theirY + 1) && myX == (theirX + 1))
                    {
                    }
                }
            }
            return(possibleMoves);
        }
Пример #7
0
        void ILevelSerializer.SaveLevel(ILevelData levelData)
        {
            Debug.Log("Saving level " + levelData.name + "...");

            SerializableLevelData serializableData = new SerializableLevelData(levelData);

            if (!Directory.Exists(basePath))
            {
                Directory.CreateDirectory(basePath);
                Debug.Log("Creating saving directory...");
            }

            FileStream      saveFile  = File.Create(FullSavePath(levelData.name));
            BinaryFormatter formatter = new BinaryFormatter();

            formatter.Serialize(saveFile, serializableData);
            saveFile.Close();
        }
Пример #8
0
 public TiledJsonLevelData(ILevelData modified, TiledJsonLevelData original)
 {
     throw new System.NotImplementedException("Tiled Json Data can't merge levels yet.");
 }
Пример #9
0
 public void DrawGameLevel(ILevelData levelData)
 {
     throw new NotImplementedException();
 }
Пример #10
0
 public TestStage(ILevelData levelData)
 {
     this.levelData = levelData;
 }
Пример #11
0
 public void SaveLevel(ILevelData levelData)
 {
     Debug.LogWarning("Saving data on a NullRoomSerializer won't do anything.");
 }
Пример #12
0
 public BulletFactory(BulletPresenter originalBulletObject, ILevelData levelData)
 {
     this.originalBulletObject = originalBulletObject;
     this.levelData            = levelData;
 }
Пример #13
0
 public void SaveLevel(ILevelData levelData)
 {
     throw new System.NotImplementedException("Tiled Serializer does not support saving yet.");
 }