Пример #1
0
        public static string MakeFrom(RoomParser roomParser,
                                      WillyStartParser willyStartParser,
                                      TravelatorParser travelatorParser,
                                      ExitParser exitParser,
                                      KeyParser keyParser,
                                      HorizontalBaddiesParser horizontal,
                                      AirParser airParser)
        {
            var file = new MMMapFile
            {
                rooms = new MMRoom[20]
            };

            for (int i = 0; i < 20; i++)
            {
                file.rooms[i] = new MMRoom
                {
                    blocks       = roomParser.RoomData[i],
                    name         = roomParser.RoomNames[i],
                    exitPosition = exitParser.Exits[i],
                    keys         = keyParser.Keys[i],
                    travelator   = travelatorParser.Travelators[i],
                    willyStart   = willyStartParser.WillyStart[i],
                    horizEnemies = horizontal.Baddies[i],
                    airCount     = airParser.AirCount[i]
                };
            }

            return(JsonConvert.SerializeObject(file));
        }
Пример #2
0
        public override void Enter(params object[] args)
        {
            _roomId = (int)args[0];
            var loadMapFile = (bool)args[1];

            var lives = DEFAULT_LIVES;

            if (args.Length > 2)
            {
                _score   = (int)args[2];
                _hiScore = (int)args[3];
                lives    = (int)args[4];
            }

            if (loadMapFile)
            {
                _mapFile          = StateManager.Game.ContentManager.LoadJson <MMMapFile>("manicminer.json");
                _font.Text        = _mapFile.rooms[_roomId].name;
                _lives.Lives      = lives;
                _airMeter.AirLeft = _mapFile.rooms[_roomId].airCount;
                _currentRoom      = _mapFile.rooms[_roomId].Copy();

                _roomRenderer.SetRoom(_currentRoom, _roomId);
                _baddieRenderer.SetRoom(_currentRoom);
                _willy.SetRoom(_currentRoom, _roomId, ChangeState);
                _exit.SetRoom(_currentRoom, _roomId);
                _scoreRenderer.UpdateScore(_score, _hiScore);
            }

            _livesAnimationTween = StateManager.Game.Tweens.AddClamp(0.2f, 0, 3, frame => _lives.Frame = frame);
            _keyAnimationTween   = StateManager.Game.Tweens.AddClamp(0.2f, 0, 3, frame => _roomRenderer.KeyAnimFrame = frame);
            _airMeterTween       = StateManager.Game.Tweens.Add(1, () => _airMeter.AirLeft--);

            _pauseables.Add(_livesAnimationTween);
            _pauseables.Add(_keyAnimationTween);
            _pauseables.Add(_airMeterTween);

            // Force all paused items to become unpaused. This is for when
            // the level changes
            _pauseables.ForEach(p => p.Paused = false);

            AddImage(_roomRenderer, Layer.Background);
            AddImage(_air, Layer.UI, 0, 16 * 8);

            AddImage(_airMeter, Layer.UI, 28, 10 + (16 * 8));
            AddImage(_font, Layer.UI, 0, 16 * 8);
            AddImage(_lives, Layer.UI, 0, 168);

            AddImage(_scoreRenderer, Layer.UI, 0, 19 * 8);
            AddImage(_baddieRenderer, Layer.Sprite);
            AddImage(_willy, Layer.Sprite);
            AddImage(_exit, Layer.Sprite);
            AddImage(_quitGameRenderer, Layer.UI);
        }
Пример #3
0
 /// <summary>
 /// Load the map data from resources
 /// </summary>
 void Awake()
 {
     _mapFile = JsonUtility.FromJson <MMMapFile>(_jsonMapFile.text);
     _isReady = true;
 }