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)); }
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); }
/// <summary> /// Load the map data from resources /// </summary> void Awake() { _mapFile = JsonUtility.FromJson <MMMapFile>(_jsonMapFile.text); _isReady = true; }