Пример #1
0
        public async Task <IRoom> LoadAsync(IGame game)
        {
            _game = game;
            _game.Events.OnSavedGameLoad.Subscribe((sender, e) => onSavedGameLoaded());
            _player = _game.State.Player;
            IGameFactory factory = game.Factory;

            _room = factory.Room.GetRoom("Dars Street", 20f, 490f, 190f, 10f);
            IObject    bg          = factory.Object.GetObject("Dars Street BG");
            IAnimation bgAnimation = await factory.Graphics.LoadAnimationFromFolderAsync(_baseFolder + "bg");

            bgAnimation.Frames[0].MinDelay = 1;
            bgAnimation.Frames[0].MaxDelay = 120;
            bg.StartAnimation(bgAnimation);
            _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("DarsStreetWalkable1", await maskLoader.LoadAsync(_baseFolder + "walkable1.png")));
            _room.Areas.Add(AGSWalkableArea.Create("DarsStreetWalkable2", await maskLoader.LoadAsync(_baseFolder + "walkable2.png")));
            AGSScalingArea.Create(_room.Areas[0], 0.35f, 0.75f);
            AGSZoomArea.Create(_room.Areas[0], 1f, 1.2f);
            AGSScalingArea.Create(_room.Areas[1], 0.10f, 0.35f);
            AGSZoomArea.Create(_room.Areas[1], 1.2f, 1.8f);

            _room.Areas.Add(AGSWalkBehindArea.Create("DarsStreetWalkBehind1", await maskLoader.LoadAsync(_baseFolder + "walkbehind1.png")));
            _room.Areas.Add(AGSWalkBehindArea.Create("DarsStreetWalkBehind2", await maskLoader.LoadAsync(_baseFolder + "walkbehind2.png")));
            _room.Areas.Add(AGSWalkBehindArea.Create("DarsStreetWalkBehind3", await maskLoader.LoadAsync(_baseFolder + "walkbehind3.png")));

            IObject buildingHotspot = await factory.Object.GetHotspotAsync(_baseFolder + "buildingHotspot.png", "Building");

            IObject doorHotspot = await factory.Object.GetHotspotAsync(_baseFolder + "doorHotspot.png", "Door");

            IObject windowHotspot = await factory.Object.GetHotspotAsync(_baseFolder + "windowHotspot.png", "Window");

            doorHotspot.Z   = buildingHotspot.Z - 1;
            windowHotspot.Z = buildingHotspot.Z - 1;
            windowHotspot.Interactions.OnInteract(AGSInteractions.LOOK).SubscribeToAsync(lookOnWindow);

            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "aztecBuildingHotspot.png", "Aztec Building"));
            _room.Objects.Add(buildingHotspot);
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "carHotspot.png", "Car"));
            _room.Objects.Add(doorHotspot);
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "fencesHotspot.png", "Fences"));
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "neonSignHotspot.png", "Neon Sign"));
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "roadHotspot.png", "Road"));
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "sidewalkHotspot.png", "Sidewalk"));
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "skylineHotspot.png", "Skyline"));
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "trashcansHotspot.png", "Trashcans"));
            _room.Objects.Add(windowHotspot);
            await addLampPosts(factory);

            subscribeEvents();

            return(_room);
        }
Пример #2
0
        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);
        }
Пример #3
0
        public async Task <IRoom> LoadAsync(IGame game)
        {
            _game   = game;
            _player = _game.State.Player;
            _game.Events.OnSavedGameLoad.Subscribe((sender, e) => onSavedGameLoaded());
            IGameFactory factory = game.Factory;

            _room = factory.Room.GetRoom("Trashcan Street", 20f, 310f, 190f, 10f);
            IObject bg = factory.Object.GetObject("Trashcan 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("TrashcanStreetWalkable1", await maskLoader.LoadAsync(_baseFolder + "walkable.png")));
            AGSScalingArea.Create(_room.Areas[0], 0.50f, 0.90f);

            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "HoleHotspot.png", "Hole"));
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "roadHotspot.png", "Road"));
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "sidewalkHotspot.png", "Sidewalk"));
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "SignHotspot.png", "Sign"));
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "trashCansHotspot.png", "Trashcans"));

            subscribeEvents();
            return(_room);
        }
Пример #4
0
        public async Task <IRoom> LoadAsync(IGame game)
        {
            _game = game;
            _game.Events.OnSavedGameLoad.Subscribe((sender, e) => onSavedGameLoaded());
            _player = game.State.Player;
            IGameFactory factory = game.Factory;

            _room = factory.Room.GetRoom("Broken Curb Street", 20f, 310f, 190f, 10f);

            //todo: temporary removed loading the flac file as it crashes on windows after migrating to dotnet standard
            //_room.MusicOnLoad = await factory.Sound.LoadAudioClipAsync("../../Assets/Sounds/01_Ghosts_I.flac");

            IObject bg = factory.Object.GetObject("Broken Curb 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("BrokenCurbWalkable1", await maskLoader.LoadAsync(_baseFolder + "walkable1.png")));
            _room.Areas.Add(AGSWalkableArea.Create("BrokenCurbWalkable2", await maskLoader.LoadAsync(_baseFolder + "walkable2.png")));
            _room.Areas.Add(AGSWalkableArea.Create("BrokenCurbWalkable3", await maskLoader.LoadAsync(_baseFolder + "walkable3.png")));
            _room.Areas.Add(AGSWalkableArea.Create("BrokenCurbWalkable4", await maskLoader.LoadAsync(_baseFolder + "walkable4.png")));
            _room.Areas[1].Enabled = false;
            AGSScalingArea.Create(_room.Areas[0], 0.50f, 0.90f);
            AGSScalingArea.Create(_room.Areas[2], 0.40f, 0.50f);
            AGSScalingArea.Create(_room.Areas[3], 1.20f, 1.20f);

            _room.Areas.Add(AGSWalkBehindArea.Create("BrokenCurbWalkBehind1", maskLoader.Load(_baseFolder + "walkbehind1.png")));
            _room.Areas.Add(AGSWalkBehindArea.Create("BrokenCurbWalkBehind2", maskLoader.Load(_baseFolder + "walkbehind2.png")));

            IObject wallHotspot = await factory.Object.GetHotspotAsync(_baseFolder + "wallHotspot.png", "Wall");

            IObject graffitiHotspot = await factory.Object.GetHotspotAsync(_baseFolder + "graffitiHotspot.png", "Graffiti");

            IObject doorHotspot = await factory.Object.GetHotspotAsync(_baseFolder + "doorHotspot.png", "Door");

            doorHotspot.Z     = wallHotspot.Z - 1;
            graffitiHotspot.Z = wallHotspot.Z - 1;

            IObject manholeHotspot = await factory.Object.GetHotspotAsync(_baseFolder + "manholeHotspot.png", "Manhole");

            IObject roadHotspot = await factory.Object.GetHotspotAsync(_baseFolder + "roadHotspot.png", "Road");

            manholeHotspot.Z = roadHotspot.Z - 1;

            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "barrierHotspot.png", "Barrier"));
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "bloodySidewalkHotspot.png", "Bloody Sidewalk"));
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "brokenCurbHotspot.png", "Broken Curb"));
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "curbHotspot.png", "Curb"));
            _room.Objects.Add(doorHotspot);
            _room.Objects.Add(graffitiHotspot);
            _room.Objects.Add(manholeHotspot);
            _room.Objects.Add(roadHotspot);
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "sidewalkHotspot.png", "Sidewalk"));
            _room.Objects.Add(await factory.Object.GetHotspotAsync(_baseFolder + "slimeHotspot.png", "Slime"));
            _room.Objects.Add(wallHotspot);

            IObject panel = factory.Object.GetObject("Panel");

            panel.Hotspot = "Panel";
            IAnimation panelAnimation = await factory.Graphics.LoadAnimationFromFolderAsync(_baseFolder + "Panel");

            Characters.RandomAnimationDelay(panelAnimation);
            panel.StartAnimation(panelAnimation);
            panel.X = 195;
            panel.Y = 145;
            panel.Z = 110;
            panel.Interactions.OnInteract(AGSInteractions.INTERACT).Subscribe((sender, args) => panel.Animation.State.IsPaused = !panel.Animation.State.IsPaused);
            _room.Objects.Add(panel);

            subscribeEvents();

            return(_room);
        }