public async Task LoadAsync(IGame game) { _game = game; IGameFactory factory = game.Factory; _panel = await factory.UI.GetPanelAsync(_panelId, "../../Assets/Gui/DialogBox/options.bmp", 160f, 100f); _panel.Anchor = new AGS.API.PointF(0.5f, 0.5f); _panel.Visible = false; _panel.AddComponent <IModalWindowComponent>(); AGSLoadImageConfig loadConfig = new AGSLoadImageConfig(new AGS.API.Point(0, 0)); ISlider volumeSlider = await factory.UI.GetSliderAsync("Volume Slider", _sliderFolder + "slider.bmp", _sliderFolder + "handle.bmp", 0.5f, 0f, 1f, loadConfig : loadConfig); volumeSlider.X = 120f; volumeSlider.Y = 10f; volumeSlider.HandleGraphics.Anchor = new AGS.API.PointF(0.5f, 0.5f); volumeSlider.TreeNode.SetParent(_panel.TreeNode); volumeSlider.OnValueChanged(onVolumeChanged, _game); ILabel volumeLabel = factory.UI.GetLabel("Volume Label", "Volume", 50f, 30f, 120f, 85f, _textConfig); volumeLabel.Anchor = new AGS.API.PointF(0.5f, 0f); volumeLabel.TreeNode.SetParent(_panel.TreeNode); ISlider speedSlider = await factory.UI.GetSliderAsync("Speed Slider", _sliderFolder + "slider.bmp", _sliderFolder + "handle.bmp", 100f, 1f, 200f, loadConfig : loadConfig); speedSlider.X = 180f; speedSlider.Y = 10f; speedSlider.HandleGraphics.Anchor = new AGS.API.PointF(0.5f, 0.5f); speedSlider.TreeNode.SetParent(_panel.TreeNode); speedSlider.OnValueChanged(onSpeedChanged, _game); ILabel speedLabel = factory.UI.GetLabel("Speed Label", "Speed", 50f, 30f, 180f, 85f, _textConfig); speedLabel.Anchor = new AGS.API.PointF(0.5f, 0f); speedLabel.TreeNode.SetParent(_panel.TreeNode); _game.Events.OnSavedGameLoad.Subscribe((sender, args) => findPanel()); #if __IOS__ const int top = 85; const int step = 25; #else const int top = 95; const int step = 20; #endif await loadButton("Resume", top, Hide); await loadButton("Restart", top - step, restart); await loadButton("Load", top - step * 2, load); await loadButton("Save", top - step * 3, save); #if !__IOS__ //IOS does not allow for a quit button in its guidelines await loadButton("Quit", top - step * 4, quit); #endif }
public async Task LoadAsync(IGame game) { _game = game; IGameFactory factory = game.Factory; _panel = await factory.UI.GetPanelAsync(_panelId, "Gui/DialogBox/options.bmp", 160f, 100f); _panel.Pivot = (0.5f, 0.5f); _panel.Visible = false; _panel.AddComponent <IModalWindowComponent>(); AGSLoadImageConfig loadConfig = new AGSLoadImageConfig(new AGS.API.Point(0, 0)); ISlider volumeSlider = await factory.UI.GetSliderAsync("Volume Slider", _sliderFolder + "slider.bmp", _sliderFolder + "handle.bmp", 0.5f, 0f, 1f, _panel, loadConfig : loadConfig); volumeSlider.Position = (120f, 10f); volumeSlider.HandleGraphics.Pivot = (0.5f, 0.5f); volumeSlider.OnValueChanged(onVolumeChanged, _game); ILabel volumeLabel = factory.UI.GetLabel("Volume Label", "Volume", 50f, 30f, 120f, 85f, _panel, _textConfig); volumeLabel.Pivot = (0.5f, 0f); ISlider speedSlider = await factory.UI.GetSliderAsync("Speed Slider", _sliderFolder + "slider.bmp", _sliderFolder + "handle.bmp", 100f, 1f, 200f, _panel, loadConfig : loadConfig); speedSlider.Position = (180f, 10f); speedSlider.HandleGraphics.Pivot = (0.5f, 0.5f); speedSlider.OnValueChanged(onSpeedChanged, _game); ILabel speedLabel = factory.UI.GetLabel("Speed Label", "Speed", 50f, 30f, 180f, 85f, _panel, _textConfig); speedLabel.Pivot = (0.5f, 0f); _game.Events.OnSavedGameLoad.Subscribe(findPanel); #if __IOS__ const int top = 85; const int step = -25; #else const int top = 95; const int step = -20; #endif _buttonsPanel = factory.UI.GetPanel(_buttonsPanelId, (IImage)null, 15f, top, _panel); _buttonsPanel.AddComponent <IBoundingBoxWithChildrenComponent>(); var layout = _buttonsPanel.AddComponent <IStackLayoutComponent>(); layout.RelativeSpacing = 0f; layout.AbsoluteSpacing = step; layout.StartLayout(); await loadButton("Resume", hide); await loadButton("Restart", restart); await loadButton("Load", load); await loadButton("Save", save); #if !__IOS__ //IOS does not allow for a quit button in its guidelines await loadButton("Quit", quit); #endif }
public async Task <ICharacter> LoadAsync(IGame game) { AGSLoadImageConfig loadConfig = new AGSLoadImageConfig(new Point(0, 0)); var footstep = await game.Factory.Sound.LoadAudioClipAsync("Sounds/151238__owlstorm__hard-female-footstep-2.wav"); ISoundEmitter emitter = new AGSSoundEmitter(game); emitter.AudioClip = footstep; IOutfit outfit = await game.Factory.Outfit.LoadOutfitFromFoldersAsync(_baseFolder, walkLeftFolder : "Walk/left", walkDownFolder : "Walk/front", idleLeftFolder : "Idle/left", idleDownFolder : "Idle/front", speakLeftFolder : "Talk", loadConfig : loadConfig); _character = game.Factory.Object.GetCharacter("Cris", outfit).Remember(game, c => _character = c); _character.SpeechConfig.TextConfig = AGSTextConfig.ChangeColor(_character.SpeechConfig.TextConfig, Colors.OrangeRed, Colors.Black, 1f); var approach = _character.AddComponent <IApproachComponent>(); approach.ApproachStyle.ApproachWhenVerb["Talk"] = ApproachHotspots.WalkIfHaveWalkPoint; emitter.Object = _character; _character.AddComponent <ISaturationEffectComponent>(); var movement = _character.AddComponent <KeyboardMovement>(); movement.AddArrows(); movement.AddWASD(); //Uncomment for portrait /* * var portrait = game.Factory.Object.GetObject("CrisPortrait"); * portrait.StartAnimation(game.Factory.Graphics.LoadAnimationFromFolder(_baseFolder + "Talk")); * portrait.Border = game.Factory.Graphics.Borders.SolidColor(Colors.AliceBlue, 3f, true); * portrait.Visible = false; * portrait.RenderLayer = AGSLayers.Speech; * portrait.IgnoreViewport = true; * portrait.IgnoreScalingArea = true; * game.State.UI.Add(portrait); * _character.SpeechConfig.PortraitConfig = new AGSPortraitConfig { Portrait = portrait, Positioning = PortraitPositioning.Alternating }; */ var speakAnimation = _character.Outfit[AGSOutfit.Speak]; Characters.RandomAnimationDelay(speakAnimation.Left); Characters.RandomAnimationDelay(speakAnimation.Right); emitter.Assign(_character.Outfit[AGSOutfit.Walk], 1, 5); _character.StartAnimation(_character.Outfit[AGSOutfit.Idle].Down); _character.DisplayName = "Cris"; _character.IsPixelPerfect = true; Characters.Cris = _character; return(_character); }
public async Task LoadAsync(IGameFactory factory) { AGSLoadImageConfig loadConfig = new AGSLoadImageConfig(new AGS.API.Point(0, 0)); Bottle = await factory.Inventory.GetInventoryItemAsync("Bottle", "../../Assets/Rooms/EmptyStreet/bottle.bmp", null, loadConfig); VoodooDoll = await factory.Inventory.GetInventoryItemAsync("Voodoo Doll", _baseFolder + "voodooDoll.bmp", null, loadConfig, true); Poster = await factory.Inventory.GetInventoryItemAsync("Poster", _baseFolder + "poster.bmp", playerStartsWithItem : true); Manual = await factory.Inventory.GetInventoryItemAsync("Manual", _baseFolder + "manual.bmp", null, loadConfig, true); }
public async Task <ICharacter> LoadAsync(IGame game) { _game = game; IGameFactory factory = game.Factory; AGSLoadImageConfig loadConfig = new AGSLoadImageConfig(new Point(0, 0)); IOutfit outfit = await factory.Outfit.LoadOutfitFromFoldersAsync(_baseFolder, walkLeftFolder : "Walk/left", walkDownFolder : "Walk/down", walkRightFolder : "Walk/right", walkUpFolder : "Walk/up", idleLeftFolder : "Idle/left", idleDownFolder : "Idle/down", idleRightFolder : "Idle/right", idleUpFolder : "Idle/up", speakLeftFolder : "Talk/left", speakDownFolder : "Talk/down", speakRightFolder : "Talk/right", speakUpFolder : "Talk/up", loadConfig : loadConfig); _character = factory.Object.GetCharacter("Beman", outfit).Remember(_game, character => { _character = character; subscribeEvents(); }); _character.SpeechConfig.TextConfig = AGSTextConfig.ChangeColor(_character.SpeechConfig.TextConfig, Colors.CornflowerBlue, Colors.Black, 1f); _character.SpeechConfig.TextOffset = (0f, -10f); //Uncomment for portrait /* * var portrait = game.Factory.Object.GetObject("BemanPortrait"); * portrait.StartAnimation(game.Factory.Graphics.LoadAnimationFromFolder(_baseFolder + "Talk/down")); * portrait.Border = game.Factory.Graphics.Borders.SolidColor(Colors.AliceBlue, 3f, true); * portrait.Visible = false; * portrait.RenderLayer = AGSLayers.Speech; * portrait.IgnoreViewport = true; * portrait.IgnoreScalingArea = true; * game.State.UI.Add(portrait); * _character.SpeechConfig.PortraitConfig = new AGSPortraitConfig { Portrait = portrait, Positioning = PortraitPositioning.Alternating }; */ var speakAnimation = _character.Outfit[AGSOutfit.Speak]; Characters.RandomAnimationDelay(speakAnimation.Left); Characters.RandomAnimationDelay(speakAnimation.Right); Characters.RandomAnimationDelay(speakAnimation.Down); Characters.RandomAnimationDelay(speakAnimation.Up); _character.StartAnimation(_character.Outfit[AGSOutfit.Idle].Down); _character.DisplayName = "Beman"; _character.IsPixelPerfect = true; Characters.Beman = _character; _dialogs.Load(game); return(_character); }
public async Task LoadAsync(IGameFactory factory) { AGSLoadImageConfig loadConfig = new AGSLoadImageConfig(new Point(0, 0)); Bottle = await factory.Inventory.GetInventoryItemAsync("Bottle", "Rooms/EmptyStreet/bottle.bmp", null, loadConfig); VoodooDoll = await factory.Inventory.GetInventoryItemAsync("Voodoo Doll", _baseFolder + "voodooDoll.bmp", null, loadConfig, true); Poster = await factory.Inventory.GetInventoryItemAsync("Poster", _baseFolder + "poster.bmp", playerStartsWithItem : true); Manual = await factory.Inventory.GetInventoryItemAsync("Manual", _baseFolder + "manual.bmp", null, loadConfig, true); Poster.OnCombination(Manual).SubscribeToAsync(onPutPosterInManual); }
public async Task <IRoom> LoadAsync(IGame game) { _game = game; IGameFactory factory = game.Factory; _bottleEffectClip = await factory.Sound.LoadAudioClipAsync("../../Assets/Sounds/254818__kwahmah-02__rattling-glass-bottles-impact.wav"); ILoadImageConfig loadConfig = new AGSLoadImageConfig(new AGS.API.Point(0, 0)); _room = factory.Room.GetRoom(_roomId, 20f, 310f, 190f, 10f); _room.MusicOnLoad = await factory.Sound.LoadAudioClipAsync("../../Assets/Sounds/AMemoryAway.ogg"); _game.Events.OnSavedGameLoad.Subscribe((sender, e) => onSavedGameLoaded()); IObject bg = factory.Object.GetObject("Empty Street BG"); bg.Image = await factory.Graphics.LoadImageAsync(_baseFolder + "bg.png"); _room.Background = bg; var device = AGSGame.Device; AGSMaskLoader maskLoader = new AGSMaskLoader(factory, new ResourceLoader(device.FileSystem, device.Assemblies), device.BitmapLoader); _room.Areas.Add(AGSWalkableArea.Create("EmptyStreetWalkable1", await maskLoader.LoadAsync(_baseFolder + "walkable1.png"))); _room.Areas.Add(AGSWalkableArea.Create("EmptyStreetWalkable2", await maskLoader.LoadAsync(_baseFolder + "walkable2.png"))); AGSScalingArea.Create(_room.Areas[0], 0.50f, 0.75f); AGSScalingArea.Create(_room.Areas[1], 0.75f, 0.90f); IObject bottleHotspot = await factory.Object.GetHotspotAsync(_baseFolder + "BottleHotspot.png", "Bottle"); bottleHotspot.WalkPoint = new AGS.API.PointF(140f, 50f); _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "CurbHotspot.png", "Curb")); _room.Objects.Add(bottleHotspot); _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "GapHotspot.png", "Gap", new[] { "It's a gap!", "I wonder what's in there!" })); _bottle = factory.Object.GetObject(_bottleId); _bottle.Image = await factory.Graphics.LoadImageAsync(_baseFolder + "bottle.bmp", loadConfig : loadConfig); _bottle.WalkPoint = bottleHotspot.WalkPoint; _bottle.X = 185f; _bottle.Y = 85f; _bottle.Hotspot = "Bottle"; _room.Objects.Add(_bottle); subscribeEvents(); return(_room); }
public async Task <IRoom> LoadAsync(IGame game) { _game = game; IGameFactory factory = game.Factory; _bottleEffectClip = await factory.Sound.LoadAudioClipAsync("../../Assets/Sounds/254818__kwahmah-02__rattling-glass-bottles-impact.wav"); ILoadImageConfig loadConfig = new AGSLoadImageConfig(new Point(0, 0)); _room = factory.Room.GetRoom(_roomId, 20f, 310f, 190f, 10f); _room.MusicOnLoad = await factory.Sound.LoadAudioClipAsync("../../Assets/Sounds/AMemoryAway.ogg"); _game.Events.OnSavedGameLoad.Subscribe(onSavedGameLoaded); IObject bg = factory.Object.GetObject("Empty Street BG"); bg.Image = await factory.Graphics.LoadImageAsync(_baseFolder + "bg.png"); _room.Background = bg; var device = AGSGame.Device; _room.Areas.Add(await factory.Room.GetAreaAsync(_baseFolder + "walkable1.png", isWalkable: true)); _room.Areas.Add(await factory.Room.GetAreaAsync(_baseFolder + "walkable2.png", isWalkable: true)); factory.Room.CreateScaleArea(_room.Areas[0], 0.50f, 0.75f); factory.Room.CreateScaleArea(_room.Areas[1], 0.75f, 0.90f); IObject bottleHotspot = await factory.Object.GetHotspotAsync(_baseFolder + "BottleHotspot.png", "Bottle"); bottleHotspot.GetComponent <IHotspotComponent>().WalkPoint = new PointF(140f, 50f); _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "CurbHotspot.png", "Curb")); _room.Objects.Add(bottleHotspot); _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "GapHotspot.png", "Gap", new[] { "It's a gap!", "I wonder what's in there!" })); _bottle = factory.Object.GetAdventureObject(_bottleId); _bottle.Image = await factory.Graphics.LoadImageAsync(_baseFolder + "bottle.bmp", loadConfig : loadConfig); _bottle.GetComponent <IHotspotComponent>().WalkPoint = bottleHotspot.GetComponent <IHotspotComponent>().WalkPoint; _bottle.X = 185f; _bottle.Y = 85f; _bottle.DisplayName = "Bottle"; _room.Objects.Add(_bottle); subscribeEvents(); return(_room); }
public async Task <IRoom> LoadAsync(IGame game) { _game = game; IGameFactory factory = game.Factory; _bottleEffectClip = await factory.Sound.LoadAudioClipAsync("Sounds/254818__kwahmah-02__rattling-glass-bottles-impact.wav"); ILoadImageConfig loadConfig = new AGSLoadImageConfig(new Point(0, 0)); _room = factory.Room.GetRoom(_roomId, 20f, 310f, 190f, 10f); _room.MusicOnLoad = await factory.Sound.LoadAudioClipAsync("Sounds/AMemoryAway.ogg"); _game.Events.OnSavedGameLoad.Subscribe(onSavedGameLoaded); IObject bg = factory.Object.GetObject("Empty Street BG"); bg.Image = await factory.Graphics.LoadImageAsync(_baseFolder + "bg.png"); _room.Background = bg; await factory.Room.GetAreaAsync(_baseFolder + "walkable1.png", _room, isWalkable : true); await factory.Room.GetAreaAsync(_baseFolder + "walkable2.png", _room, isWalkable : true); factory.Room.CreateScaleArea(_room.Areas[0], 0.50f, 0.75f); factory.Room.CreateScaleArea(_room.Areas[1], 0.75f, 0.90f); IObject bottleHotspot = await factory.Object.GetHotspotAsync(_baseFolder + "BottleHotspot.png", "Bottle", _room); bottleHotspot.GetComponent <IHotspotComponent>().WalkPoint = (140f, 50f); await factory.Object.GetHotspotAsync(_baseFolder + "CurbHotspot.png", "Curb", _room, new[] { "I have something long and very important to say about this curb, and about how much this curb means to me!" }); await factory.Object.GetHotspotAsync(_baseFolder + "GapHotspot.png", "Gap", _room, new[] { "It's a gap!", "I wonder what's in there!" }); _bottle = factory.Object.GetAdventureObject(_bottleId, _room); _bottle.Image = await factory.Graphics.LoadImageAsync(_baseFolder + "bottle.bmp", loadConfig : loadConfig); _bottle.GetComponent <IHotspotComponent>().WalkPoint = bottleHotspot.GetComponent <IHotspotComponent>().WalkPoint; _bottle.Position = (185f, 85f); _bottle.DisplayName = "Bottle"; subscribeEvents(); return(_room); }
public MouseCursors() { _loadConfig = new AGSLoadImageConfig(new AGS.API.Point(0, 12)); }