Beispiel #1
0
        public override void Load()
        {
            base.Load();
            LoadFromFile("Content/Map/Level1.tmx");

            Objects.Player playerObject = GetObjectsByClass <Assets.Objects.Player>()[0];
            if (playerObject == null)
            {
                throw new ApplicationException("something went wrong");
            }
            Graphics.ViewManager.Instance.PlayerTransform = playerObject.transform;

            foreach (Core.GameObject o in objects)
            {
                if (o is Objects.BaseAlien)
                {
                    (o as Objects.BaseAlien).aiAttack.target = playerObject;
                    (o as Objects.BaseAlien).navigation.LoadNavigation();
                    (o as Objects.BaseAlien).navigation.target = playerObject;
                }
                else if (o is Objects.FloorExit)
                {
                    (o as Objects.FloorExit).GetComponent <Gameplay.ChangeLevel>().nextLevel = "level2";
                }
            }

            Gameplay.DoorTerminal dt = interactibles[0].GetComponent <Gameplay.DoorTerminal>();
            dt.doors.Add(doors[0]);
            dt.doors.Add(doors[1]);

            MediaPlayer.Play(Audio.SoundContainer.Instance.GetSong("01"));

            Physics.PhysicsManager.player = playerObject.GetComponent <Physics.Collider.Collider>();
        }
Beispiel #2
0
        // Convert "server" player (with times) into a "client" player that displays things
        public Trivia.Objects.Player GetDepartedPlayerForClient()
        {
            Trivia.Objects.Player client = new Objects.Player();
            client.Name = this.Name;
            client.Location = this.Location;
            client.RecentlyDeparted = true;
            client.RecentlyJoined = false;

            TimeSpan disconnectedDuration = DateTime.Now - this.DisconnectedTimestamp;
            client.DurationForSorting = disconnectedDuration;

            if ((int)disconnectedDuration.TotalMinutes < 1)
            {
                client.DurationPhrase = "<1 minute ago";
            }
            else if ((int)disconnectedDuration.TotalMinutes == 1)
            {
                client.DurationPhrase = "1 minute ago";
            }
            else if ((int)disconnectedDuration.TotalMinutes <= 10)
            {
                client.DurationPhrase = string.Format("{0} minutes ago", (int)disconnectedDuration.TotalMinutes);
            }

            return client;
        }
Beispiel #3
0
        void OnTriggerEnter(Collider collision)
        {
            if (collision.gameObject.tag == "FootHead")
            {
                Objects.Player playerObj = collision.gameObject.GetComponentInParent <Objects.Player>();
                playerObj.ResetJumps();
                this.Damage(1);
            }

            else if (collision.gameObject.tag == "Sides")
            {
                Classes.Player player = collision.gameObject.GetComponentInParent <Classes.Player>();
                player.Damage(1);

                // Give the player 1 second of invincibility after being damaged.
                Spells.Spell sp = player.GetSpell("NP_Invulnerability");

                if (sp == null)
                {
                    Debug.Log("Unable to get Invulnerability spell");
                }
                Spells.Invulnerability inv = (Spells.Invulnerability)sp;
                inv.SetDuration(1);
                player.ReceiveBuff(inv);
                inv.Cast();
            }

            else if (collision.gameObject.tag == "Projectile")
            {
                this.Damage(1);
            }
        }
Beispiel #4
0
        public override void Load()
        {
            base.Load();
            LoadFromFile("Content/Map/Level9.tmx");

            Objects.Player playerObject = GetObjectsByClass <Assets.Objects.Player>()[0];
            if (playerObject == null)
            {
                throw new ApplicationException("something went wrong");
            }
            Graphics.ViewManager.Instance.PlayerTransform = playerObject.transform;

            foreach (Core.GameObject o in objects)
            {
                if (o is Objects.BaseAlien)
                {
                    (o as Objects.BaseAlien).aiAttack.target = playerObject;
                    (o as Objects.BaseAlien).navigation.LoadNavigation();
                    (o as Objects.BaseAlien).navigation.target = playerObject;
                }
                else if (o is Objects.FloorExit)
                {
                    (o as Objects.FloorExit).GetComponent <Gameplay.ChangeLevel>().nextLevel = "ending";
                }
            }

            Gameplay.DoorTerminal dt = interactibles[0].GetComponent <Gameplay.DoorTerminal>();
            dt.doors.Add(doors[6]);
            dt.doors.Add(doors[7]);

            dt = interactibles[1].GetComponent <Gameplay.DoorTerminal>();
            dt.doors.Add(doors[0]);
            dt.doors.Add(doors[1]);
            dt.doors.Add(doors[3]);
            dt.doors.Add(doors[5]);

            dt = interactibles[2].GetComponent <Gameplay.DoorTerminal>();
            dt.doors.Add(doors[2]);
            dt.doors.Add(doors[4]);
            dt.doors.Add(doors[3]);
            dt.doors.Add(doors[5]);

            dt = interactibles[3].GetComponent <Gameplay.DoorTerminal>();
            dt.doors.Add(doors[2]);
            dt.doors.Add(doors[4]);

            doors[8].GetComponent <Graphics.Sprite>().rect = (doors[2] as Objects.Door).open03;
            doors[8].GetComponent <Graphics.StackAnimator>().SetAnimation("Close");
            doors[9].GetComponent <Graphics.Sprite>().rect = (doors[3] as Objects.Door).open03;
            doors[9].GetComponent <Graphics.StackAnimator>().SetAnimation("Close");

            MediaPlayer.Play(Audio.SoundContainer.Instance.GetSong("05_02"));

            Graphics.ViewManager.Instance.activeEffects.Add(Graphics.EffectContainer.Instance.GetEffect("LightOff"));

            Physics.PhysicsManager.player = playerObject.GetComponent <Physics.Collider.Collider>();
        }
Beispiel #5
0
        public GameScene()
        {
            bgLayer = new asd.Layer2D();
            layer   = new asd.Layer2D();
            uiLayer = new asd.Layer2D();

            camera = new asd.CameraObject2D
            {
                Src = new asd.RectI(200, 0, 400, 600),
                Dst = new asd.RectI(200, 0, 400, 600)
            };
            player = new Objects.Player();
        }
Beispiel #6
0
 private void UpdateStatus()
 {
     Objects.Player p = Read.GetPlayerInfo();
     //updateClients();
     this.Dispatcher.Invoke(delegate {
         this.Title              = Read.getMyName();
         XpDisplay.Content       = "Xp: " + Read.XpNextLevel() + " / " + Read.Exp();
         HpDisplay.Content       = "Hp: " + p.Hp + " / " + Read.MaxHp();
         MpDisplay.Content       = "Mp: " + p.Mp + " / " + Read.MaxMp();
         Level.Content           = "Level: " + Read.Level();
         LastUsedDisplay.Content = "Last Used: " + Read.LastUsed();
         Util.Hotkeys            = Read.getHotkeys();
     });
 }
Beispiel #7
0
        private void ResetJumps()
        {
            Objects.Player player = this.caster.GetComponent <Objects.Player>();
            Rigidbody      rb     = this.caster.GetComponent <Rigidbody>();

            if (rb != null)
            {
                rb.velocity = Vector3.zero;
            }

            if (player != null)
            {
                player.ResetJumps();
            }
        }
Beispiel #8
0
        void Start()
        {
            this.biped  = GetComponent <Objects.Player>();
            this.player = GetComponent <Classes.Player>();

            // XXX Set this in Unity Input manager.

            this.fixedQueue = new Queue <System.Action>();
            this.controller = new Internal.InputController();

            this.controller.RegisterMouse(1, this.BlinkAction);
            this.controller.RegisterMouse(0, this.LaserAction);

            this.controller.RegisterKey(KeyCode.Space, this.JumpAction);
        }
Beispiel #9
0
        // Convert "server" player (with times) into a "client" player that displays things
        public Trivia.Objects.Player GetConnectedPlayerForClient()
        {
            Trivia.Objects.Player client = new Objects.Player();
            client.Name = this.Name;
            client.Location = this.Location;
            client.IsActivelyPlaying = this.LastActivityTimestamp.AddMinutes(TriviaServer.ActivePlayerTimeCutoffInMinutes) >= DateTime.Now;
            client.RecentlyDeparted = false;
            client.RecentlyJoined = false;

            TimeSpan connectedDuration = DateTime.Now - this.FirstConnectedTimestamp;
            client.DurationForSorting = connectedDuration;

            if ((int)connectedDuration.TotalMinutes < 1)
            {
                client.DurationPhrase = "<1 minute";
            }
            else if ((int)connectedDuration.TotalMinutes == 1)
            {
                client.DurationPhrase = "1 minute";
            }
            else if ((int)connectedDuration.TotalMinutes <= 10)
            {
                client.DurationPhrase = string.Format("{0} minutes", (int)connectedDuration.TotalMinutes);
            }
            else if ((int)connectedDuration.TotalMinutes < 60)
            {
                // Round down to the 5 minutes
                int roundedDown = ((int)connectedDuration.TotalMinutes / 5) * 5;
                client.DurationPhrase = string.Format("{0} minutes", roundedDown);
            }
            else
            {
                client.DurationPhrase = string.Format("{0} hour{1}", (int)connectedDuration.TotalHours, connectedDuration.TotalHours > 1 ? "s", "");
            }

            // Special
            if (!(client.IsActivelyPlaying))
            {
                client.DurationPhrase = string.Format("idle {0}", client.DurationPhrase);
            }

            return client;
        }
Beispiel #10
0
        public override void Load()
        {
            base.Load();
            Vector2 alienPos = new Vector2(350f, 170f);

            GameManager.SpawnObject(new Objects.Alien01(alienPos, new Vector2(sceneScale, sceneScale), (float)(Math.PI)));

            Vector2 playerPos = new Vector2(20f, 650f);

            Objects.Player player = new Objects.Player(playerPos, new Vector2(sceneScale, sceneScale), 0f);
            GameManager.SpawnObject(player);

            Vector2 step = alienPos - playerPos;

            step /= 10f;
            for (int i = 0; i < 9; ++i)
            {
                playerPos += step;
                Core.GameObject gameObject = new Objects.Banana(playerPos, new Vector2(sceneScale, sceneScale));
                GameManager.SpawnObject(gameObject);
            }

            Graphics.ViewManager.Instance.PlayerTransform = player.transform;
        }
Beispiel #11
0
        public override void Load()
        {
            base.Load();

            //DODAWANIE PODŁOGI
            for (int x = -1; x < 11; ++x)
            {
                for (int y = 0; y < 9; ++y)
                {
                    GameManager.SpawnObject(new Objects.FloorCrate01(new Vector2(x * 32f * sceneScale, y * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0f));
                }
            }

            //DODAWANIE ŚCIAN
            for (int x = 0; x < 10; ++x)
            {
                if (x == 9)
                {
                    GameManager.SpawnObject(new Objects.WallDoor(new Vector2(x * 32f * sceneScale, 0 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
                }
                else
                {
                    GameManager.SpawnObject(new Objects.Wall(new Vector2(x * 32f * sceneScale, 0 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
                }
            }
            for (int x = 0; x < 10; ++x)
            {
                if (x == 4)
                {
                    GameManager.SpawnObject(new Objects.DoorLeft(new Vector2(x * 32f * sceneScale, 8 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0f));
                }
                else if (x == 5)
                {
                    GameManager.SpawnObject(new Objects.DoorRight(new Vector2(x * 32f * sceneScale, 8 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0f));
                }
                else
                {
                    GameManager.SpawnObject(new Objects.Wall(new Vector2(x * 32f * sceneScale, 8 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0f));
                }
            }
            GameManager.SpawnObject(new Objects.WallCorner(new Vector2(-1 * 32f * sceneScale, 0 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.WallCorner(new Vector2(10 * 32f * sceneScale, 0 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI * 0.5f)));
            for (int y = 1; y < 8; ++y)
            {
                GameManager.SpawnObject(new Objects.Wall(new Vector2(-1 * 32f * sceneScale, y * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI * 0.5f)));
            }
            for (int y = 1; y < 8; ++y)
            {
                GameManager.SpawnObject(new Objects.Wall(new Vector2(10 * 32f * sceneScale, y * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI * 0.5f)));
            }
            GameManager.SpawnObject(new Objects.WallCorner(new Vector2(-1 * 32f * sceneScale, 8 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI * 0.5f)));
            GameManager.SpawnObject(new Objects.WallCorner(new Vector2(10 * 32f * sceneScale, 8 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0f));

            //INTERAKTYWNE ELEMENY
            /*GameManager.SpawnObject(new Objects.Computer(new Vector2(12 * 32f, 2 * 32f + 8f)));*/

            //DODAWANIE POSTACI
            Objects.Player player = new Objects.Player(new Vector2(20f, 650f), new Vector2(sceneScale, sceneScale), 0f);
            GameManager.SpawnObject(player);
            Graphics.ViewManager.Instance.PlayerTransform = player.transform;

            GameManager.SpawnObject(new Objects.Alien01(new Vector2(350f, 170f), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Alien01(new Vector2(420f, 200f), new Vector2(sceneScale, sceneScale), (float)(Math.PI * 0.5f)));
            GameManager.SpawnObject(new Objects.Alien01(new Vector2(320f, 280f), new Vector2(sceneScale, sceneScale), (float)(Math.PI * 1.1f)));
            GameManager.SpawnObject(new Objects.Alien01(new Vector2(520f, 300f), new Vector2(sceneScale, sceneScale), (float)(Math.PI * 1.8f)));

            GameManager.SpawnObject(new Objects.Alien03(new Vector2(350f, 570f), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Alien03(new Vector2(450f, 600f), new Vector2(sceneScale, sceneScale), (float)(Math.PI * 0.5f)));
            GameManager.SpawnObject(new Objects.Alien03(new Vector2(320f, 680f), new Vector2(sceneScale, sceneScale), (float)(Math.PI * 1.1f)));
            GameManager.SpawnObject(new Objects.Alien03(new Vector2(520f, 700f), new Vector2(sceneScale, sceneScale), (float)(Math.PI * 1.8f)));

            GameManager.SpawnObject(new Objects.Alien02(new Vector2(650f, 570f), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Alien02(new Vector2(720f, 600f), new Vector2(sceneScale, sceneScale), (float)(Math.PI * 0.5f)));
            GameManager.SpawnObject(new Objects.Alien02(new Vector2(620f, 680f), new Vector2(sceneScale, sceneScale), (float)(Math.PI * 1.1f)));
            GameManager.SpawnObject(new Objects.Alien02(new Vector2(820f, 700f), new Vector2(sceneScale, sceneScale), (float)(Math.PI * 1.8f)));

            GameManager.SpawnObject(new Objects.Banana(new Vector2(450f, 470f), new Vector2(sceneScale, sceneScale), 0f));

            GameManager.SpawnObject(new Objects.Nut(new Vector2(490f, 490f), new Vector2(sceneScale, sceneScale), 0f));

            GameManager.SpawnObject(new Objects.AmmoRiffle(new Vector2(190f, 590f), new Vector2(sceneScale, sceneScale), 0f));
            GameManager.SpawnObject(new Objects.AmmoGun(new Vector2(290f, 590f), new Vector2(sceneScale, sceneScale), 0f));
            GameManager.SpawnObject(new Objects.AmmoLuncher(new Vector2(390f, 590f), new Vector2(sceneScale, sceneScale), 0f));

            GameManager.SpawnObject(new Objects.HalfWall(new Vector2(500f, 140f), new Vector2(sceneScale, sceneScale), 0f));
            GameManager.SpawnObject(new Objects.Column(new Vector2(590f, 140f), new Vector2(sceneScale, sceneScale), 0f));
            GameManager.SpawnObject(new Objects.Cockpit(new Vector2(690f, 32f), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Fridge(new Vector2(754f, 32f), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Armchair(new Vector2(680f, 64f), new Vector2(sceneScale, sceneScale), (float)(Math.PI * 0.15f)));

            GameManager.SpawnObject(new Objects.Case(new Vector2(442f, 16f), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.CaseCaffe(new Vector2(250f, 16f), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.CaseMicrowave(new Vector2(346f, 16f), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Table(new Vector2(346f, 110f), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));

            GameManager.SpawnObject(new Objects.NeonSign(new Vector2(442f, 1f), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));

            GameManager.SpawnObject(new Objects.Terminal(new Vector2(96f, 3f), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.ButtonWall(new Vector2(0f, 3f), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));

            // GameManager.SpawnObject(new Objects.AmmoAmount());
            //GameManager.SpawnObject(new Objects.SimpleButton());
        }
Beispiel #12
0
            private void Run()
            {
                while (true)
                {
                    try
                    {
                        this.ResetEvent.Wait();
                        if (this.WaypointExecutedBegin != null)
                        {
                            this.WaypointExecutedBegin(this.CurrentWaypoint);
                        }

                        bool success  = false,
                             firstRun = true;
                        Objects.Location currentSubNode = Objects.Location.Invalid;

                        while (!this.Cancel)
                        {
                            this.ResetEventTilesUpdated.WaitOne();

                            if (this.Cancel)
                            {
                                break;
                            }

                            Objects.Player   player    = this.Parent.Client.Player;
                            Objects.Location playerLoc = player.Location;

                            if (player.Z != this.CurrentWaypoint.Location.Z)
                            {
                                break;
                            }

                            if (firstRun)
                            {
                                firstRun = false;
                            }
                            else
                            {
                                if (this.Parent.Client.Window.StatusBar.GetText() == Enums.StatusBar.ThereIsNoWay)
                                {
                                    this.Parent.Client.Window.StatusBar.SetText(string.Empty);
                                    success = false;
                                    break;
                                }
                            }

                            bool isOnScreen     = playerLoc.IsOnScreen(this.CurrentWaypoint.Location),
                                 doBreak        = false;
                            var tilesToLocation = isOnScreen ?
                                                  playerLoc.GetTilesToLocation(this.Parent.Client,
                                                                               this.CurrentWaypoint.Location, this.CachedTiles, this.Parent.PathFinder)
                                                  .ToList <Objects.PathFinder.Node>() :
                                                  new List <Objects.PathFinder.Node>();

                            switch (this.CurrentWaypoint.Type)
                            {
                            case Waypoint.Types.Walk:
                                #region walk
                                if (playerLoc == this.CurrentWaypoint.Location)
                                {
                                    doBreak = true;
                                    success = true;
                                    break;
                                }
                                if (isOnScreen && tilesToLocation.Count == 0)
                                {
                                    doBreak = true;
                                    success = false;
                                    break;
                                }
                                if (!player.IsWalking || player.GoTo != this.CurrentWaypoint.Location)
                                {
                                    player.GoTo = this.CurrentWaypoint.Location;
                                }
                                #endregion
                                break;

                            case Waypoint.Types.Node:
                                #region node
                                if (playerLoc == this.CurrentWaypoint.Location)
                                {
                                    doBreak = true;
                                    success = true;
                                    break;
                                }
                                if (isOnScreen && tilesToLocation.Count == 0)
                                {
                                    doBreak = true;
                                    success = false;
                                    break;
                                }

                                // check if the player is already walking to a node
                                if (player.IsWalking)
                                {
                                    int range = this.Parent.CurrentSettings.NodeRadius;
                                    Objects.Location currentGoTo = player.GoTo;
                                    bool             found       = false;
                                    for (int x = -range; x <= range; x++)
                                    {
                                        for (int y = -range; y <= range; y++)
                                        {
                                            Objects.Location subNode = this.CurrentWaypoint.Location.Offset(x, y);
                                            if (currentGoTo != subNode)
                                            {
                                                continue;
                                            }
                                            // check distance to node
                                            if (isOnScreen)
                                            {
                                                var tilesToSubNode = playerLoc.GetTilesToLocation(this.Parent.Client,
                                                                                                  subNode, this.CachedTiles, this.Parent.PathFinder, true).ToArray();
                                                if (tilesToSubNode.Length <= this.Parent.CurrentSettings.NodeSkipRange)
                                                {
                                                    success = true;
                                                    doBreak = true;
                                                    break;
                                                }
                                            }
                                            found = true;
                                            break;
                                        }
                                        if (found)
                                        {
                                            break;
                                        }
                                    }
                                    if (found)
                                    {
                                        break;
                                    }
                                }
                                else if (playerLoc.DistanceTo(this.CurrentWaypoint.Location) <= this.Parent.CurrentSettings.NodeSkipRange)
                                {
                                    success = true;
                                    doBreak = true;
                                    break;
                                }

                                // find new node to walk to
                                if (isOnScreen)
                                {
                                    Map.Tile tile = this.CachedTiles.GetTile(this.CurrentWaypoint.Location);
                                    if (tile == null)
                                    {
                                        doBreak = true;
                                        success = false;
                                        break;
                                    }
                                    Map.TileCollection nearbyTiles = this.CachedTiles.GetNearbyTileCollection(tile,
                                                                                                              this.Parent.CurrentSettings.NodeRadius);
                                    Objects.Location loc = tilesToLocation.Count != 0 ?
                                                           tile.WorldLocation :
                                                           Objects.Location.Invalid;
                                    List <Map.Tile> goodTiles = new List <Map.Tile>();
                                    foreach (Map.Tile nearbyTile in nearbyTiles.GetTiles())
                                    {
                                        bool isReachable = playerLoc.CanReachLocation(this.Parent.Client,
                                                                                      nearbyTile.WorldLocation, this.CachedTiles, this.Parent.PathFinder);
                                        if (isReachable)
                                        {
                                            goodTiles.Add(nearbyTile);
                                        }
                                    }
                                    if (goodTiles.Count > 0)
                                    {
                                        loc = goodTiles[new Random().Next(goodTiles.Count)].WorldLocation;
                                    }

                                    if (loc.IsValid())
                                    {
                                        player.GoTo = loc;
                                    }
                                    else
                                    {
                                        doBreak = true;
                                        success = false;
                                        break;
                                    }
                                }
                                else if (this.Parent.CurrentSettings.UseAlternateNodeFinder)
                                {
                                    int              range = this.Parent.CurrentSettings.NodeRadius;
                                    Random           rand  = new Random();
                                    Objects.Location loc   = this.CurrentWaypoint.Location;
                                    for (int x = -range; x <= range; x++)
                                    {
                                        for (int y = -range; y <= range; y++)
                                        {
                                            Objects.Location subNode = this.CurrentWaypoint.Location.Offset(
                                                rand.Next(-range, range + 1), rand.Next(-range, range + 1));
                                            if (!this.Parent.Client.Modules.MapViewer.IsWalkable(subNode))
                                            {
                                                continue;
                                            }
                                            loc = subNode;
                                            break;
                                        }
                                        if (loc != this.CurrentWaypoint.Location)
                                        {
                                            break;
                                        }
                                    }
                                    player.GoTo = loc;
                                }
                                else     // use stored subnodes
                                {
                                    Objects.Location loc = this.CurrentWaypoint.Location;
                                    if (this.CurrentWaypoint.NodeLocations.Count > 0)
                                    {
                                        int index = -1, newIndex = new Random().Next(-1, this.CurrentWaypoint.NodeLocations.Count);
                                        if (newIndex != index)
                                        {
                                            loc = this.CurrentWaypoint.NodeLocations[newIndex];
                                        }
                                    }
                                    player.GoTo = loc;
                                }
                                #endregion
                                break;

                            case Waypoint.Types.Machete:
                            case Waypoint.Types.Pick:
                            case Waypoint.Types.Rope:
                            case Waypoint.Types.Shovel:
                                #region tools
                                // check if we're adjacent to the waypoint
                                if (playerLoc.IsAdjacentTo(this.CurrentWaypoint.Location))
                                {
                                    Objects.Item tool = null;
                                    switch (this.CurrentWaypoint.Type)
                                    {
                                    case Waypoint.Types.Machete:
                                        tool = this.Parent.Client.Inventory.GetItem(this.Parent.Client.ItemList.Tools.Machete);
                                        break;

                                    case Waypoint.Types.Pick:
                                        tool = this.Parent.Client.Inventory.GetItem(this.Parent.Client.ItemList.Tools.Pick);
                                        break;

                                    case Waypoint.Types.Rope:
                                        tool = this.Parent.Client.Inventory.GetItem(this.Parent.Client.ItemList.Tools.Rope);
                                        break;

                                    case Waypoint.Types.Shovel:
                                        tool = this.Parent.Client.Inventory.GetItem(this.Parent.Client.ItemList.Tools.Shovel);
                                        break;
                                    }
                                    if (tool == null)
                                    {
                                        doBreak = true;
                                        success = false;
                                        break;
                                    }
                                    Map.Tile tile = this.CachedTiles.GetTile(this.CurrentWaypoint.Location);
                                    if (tile == null)
                                    {
                                        success = false;
                                        doBreak = true;
                                        break;
                                    }
                                    Map.TileObject topItem = tile.GetTopUseItem(true);
                                    if (this.CurrentWaypoint.Type != Waypoint.Types.Rope)
                                    {
                                        tool.UseOnTileObject(topItem);
                                        success = true;
                                        doBreak = true;
                                    }
                                    else
                                    {
                                        if (topItem.StackIndex != 0)
                                        {
                                            // find a non-blocking adjacent tile
                                            var adjacentTiles = this.CachedTiles.GetAdjacentTileCollection(tile).GetTiles()
                                                                .ToList <Map.Tile>();
                                            Map.Tile bestTile = tile;
                                            foreach (Map.Tile t in adjacentTiles.ToArray())
                                            {
                                                if (!t.IsWalkable())
                                                {
                                                    adjacentTiles.Remove(t);
                                                }
                                            }
                                            if (adjacentTiles.Count > 0)
                                            {
                                                bestTile = adjacentTiles[new Random().Next(adjacentTiles.Count)];
                                            }
                                            topItem.Move(bestTile.ToItemLocation());
                                        }
                                        else
                                        {
                                            tool.UseOnTileObject(topItem);
                                            for (int i = 0; i < 3; i++)
                                            {
                                                Thread.Sleep(100);
                                                if (player.Z != this.CurrentWaypoint.Location.Z)
                                                {
                                                    doBreak = true;
                                                    success = true;
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                    break;
                                }
                                else if (isOnScreen)
                                {
                                    Map.Tile tile = this.CachedTiles.GetTile(this.CurrentWaypoint.Location);
                                    if (tile == null)
                                    {
                                        success = false;
                                        doBreak = true;
                                        break;
                                    }
                                    Map.TileCollection adjacentTiles = this.CachedTiles.GetAdjacentTileCollection(tile);
                                    Objects.Location   bestLoc       = Objects.Location.Invalid;
                                    int distance = int.MaxValue;
                                    foreach (Map.Tile adjTile in adjacentTiles.GetTiles())
                                    {
                                        if (!adjTile.IsWalkable())
                                        {
                                            continue;
                                        }

                                        var tilesToAdjTile = playerLoc.GetTilesToLocation(this.Parent.Client,
                                                                                          adjTile.WorldLocation, this.CachedTiles, this.Parent.PathFinder, true)
                                                             .ToArray <Objects.PathFinder.Node>();

                                        if (tilesToAdjTile.Length == 0)
                                        {
                                            continue;
                                        }
                                        if (tilesToAdjTile.Length < distance)
                                        {
                                            bestLoc  = adjTile.WorldLocation;
                                            distance = tilesToAdjTile.Length;
                                        }
                                    }
                                    if (bestLoc.IsValid())
                                    {
                                        player.GoTo = bestLoc;
                                    }
                                    else
                                    {
                                        doBreak = true;
                                        success = false;
                                        break;
                                    }
                                }
                                else if (!player.IsWalking)
                                {
                                    player.GoTo = this.CurrentWaypoint.Location;
                                }
                                #endregion
                                break;

                            case Waypoint.Types.Ladder:
                                #region ladder
                                if (player.IsWalking)
                                {
                                    break;
                                }

                                if (isOnScreen)
                                {
                                    Map.Tile tile = this.CachedTiles.GetTile(this.CurrentWaypoint.Location);
                                    if (tile == null)
                                    {
                                        doBreak = true;
                                        success = false;
                                        break;
                                    }

                                    if (playerLoc.DistanceTo(this.CurrentWaypoint.Location) < 2)
                                    {
                                        Map.TileObject topItem = tile.GetTopUseItem(false);
                                        if (topItem == null)
                                        {
                                            doBreak = true;
                                            success = false;
                                            break;
                                        }
                                        for (int i = 0; i < 3; i++)
                                        {
                                            topItem.Use();
                                            Thread.Sleep(300);
                                            if (player.Z != this.CurrentWaypoint.Location.Z)
                                            {
                                                doBreak = true;
                                                success = true;
                                                break;
                                            }
                                        }
                                        break;
                                    }
                                    // find suitable loc to walk to
                                    int distance             = int.MaxValue;
                                    Objects.Location bestLoc = Objects.Location.Invalid;
                                    foreach (Map.Tile adjTile in this.CachedTiles.GetAdjacentTileCollection(tile).GetTiles())
                                    {
                                        if (!adjTile.IsWalkable())
                                        {
                                            continue;
                                        }
                                        var tilesToAdjTile = playerLoc.GetTilesToLocation(this.Parent.Client,
                                                                                          adjTile.WorldLocation, this.CachedTiles, this.Parent.PathFinder, true)
                                                             .ToArray <Objects.PathFinder.Node>();
                                        if (tilesToAdjTile.Length == 0)
                                        {
                                            continue;
                                        }
                                        if (tilesToAdjTile.Length < distance)
                                        {
                                            distance = tilesToAdjTile.Length;
                                            bestLoc  = adjTile.WorldLocation;
                                        }
                                    }
                                    if (bestLoc.IsValid())
                                    {
                                        player.GoTo = bestLoc;
                                    }
                                    else
                                    {
                                        doBreak = true;
                                        success = false;
                                    }
                                    break;
                                }
                                else
                                {
                                    player.GoTo = this.CurrentWaypoint.Location;
                                }
                                #endregion
                                break;
                            }

                            if (doBreak)
                            {
                                break;
                            }
                        }

                        if (this.WaypointExecutedEnd != null)
                        {
                            this.WaypointExecutedEnd(this.CurrentWaypoint, success);
                        }
                        this.ResetEvent.Reset();
                    }
                    catch (Exception ex)
                    {
                        if (this.ErrorOccurred != null)
                        {
                            this.ErrorOccurred(ex);
                        }
                    }
                }
            }
Beispiel #13
0
        public override void Load()
        {
            base.Load();

            int offsetX = 0;

            //DODAWANIE POSTACI
            Objects.Player player = new Objects.Player(new Vector2(0, -50), new Vector2(sceneScale, sceneScale), 0f);
            GameManager.SpawnObject(player);
            Graphics.ViewManager.Instance.PlayerTransform = player.transform;

            GameManager.SpawnObject(new Objects.Wall(new Vector2(32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.Wall(new Vector2(32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.Wall(new Vector2(32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Wall(new Vector2(32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)((Math.PI / 2) + Math.PI)));

            GameManager.SpawnObject(new Objects.WallDoor(new Vector2(2 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.WallDoor(new Vector2(2 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.WallDoor(new Vector2(2 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.WallDoor(new Vector2(2 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.WallCorner(new Vector2(3 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.WallCorner(new Vector2(3 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.WallCorner(new Vector2(3 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.WallCorner(new Vector2(3 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.DoorLeft(new Vector2(4 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.DoorLeft(new Vector2(4 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.DoorLeft(new Vector2(4 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.DoorLeft(new Vector2(4 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.DoorRight(new Vector2(5 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.DoorRight(new Vector2(5 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.DoorRight(new Vector2(5 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.DoorRight(new Vector2(5 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.Alien01(new Vector2(6 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.Alien01(new Vector2(6 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.Alien01(new Vector2(6 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Alien01(new Vector2(6 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.Alien02(new Vector2(7 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.Alien02(new Vector2(7 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.Alien02(new Vector2(7 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Alien02(new Vector2(7 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.Alien03(new Vector2(8 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.Alien03(new Vector2(8 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.Alien03(new Vector2(8 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Alien03(new Vector2(8 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.Banana(new Vector2(9 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.Banana(new Vector2(9 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.Banana(new Vector2(9 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Banana(new Vector2(9 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.Nut(new Vector2(10 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.Nut(new Vector2(10 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.Nut(new Vector2(10 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Nut(new Vector2(10 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.AmmoRiffle(new Vector2(11 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.AmmoRiffle(new Vector2(11 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.AmmoRiffle(new Vector2(11 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.AmmoRiffle(new Vector2(11 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.AmmoGun(new Vector2(12 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.AmmoGun(new Vector2(12 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.AmmoGun(new Vector2(12 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.AmmoGun(new Vector2(12 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.AmmoLuncher(new Vector2(13 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.AmmoLuncher(new Vector2(13 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.AmmoLuncher(new Vector2(13 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.AmmoLuncher(new Vector2(13 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.HalfWall(new Vector2(14 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.HalfWall(new Vector2(14 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.HalfWall(new Vector2(14 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.HalfWall(new Vector2(14 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.Column(new Vector2(15 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.Column(new Vector2(15 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.Column(new Vector2(15 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Column(new Vector2(15 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.Cockpit(new Vector2(16 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.Cockpit(new Vector2(16 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.Cockpit(new Vector2(16 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Cockpit(new Vector2(16 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.Fridge(new Vector2(17 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.Fridge(new Vector2(17 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.Fridge(new Vector2(17 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Fridge(new Vector2(17 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.Armchair(new Vector2(18 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.Armchair(new Vector2(18 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.Armchair(new Vector2(18 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Armchair(new Vector2(18 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.Case(new Vector2(19 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.Case(new Vector2(19 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.Case(new Vector2(19 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Case(new Vector2(19 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.CaseCaffe(new Vector2(20 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.CaseCaffe(new Vector2(20 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.CaseCaffe(new Vector2(20 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.CaseCaffe(new Vector2(20 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.CaseMicrowave(new Vector2(21 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.CaseMicrowave(new Vector2(21 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.CaseMicrowave(new Vector2(21 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.CaseMicrowave(new Vector2(21 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.Table(new Vector2(22 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.Table(new Vector2(22 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.Table(new Vector2(22 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Table(new Vector2(22 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.NeonSign(new Vector2(23 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.NeonSign(new Vector2(23 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.NeonSign(new Vector2(23 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.NeonSign(new Vector2(23 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.Terminal(new Vector2(24 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.Terminal(new Vector2(24 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.Terminal(new Vector2(24 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.Terminal(new Vector2(24 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.TerminalOff(new Vector2(25 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.TerminalOff(new Vector2(25 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.TerminalOff(new Vector2(25 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.TerminalOff(new Vector2(25 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.ButtonWall(new Vector2(26 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.ButtonWall(new Vector2(26 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.ButtonWall(new Vector2(26 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.ButtonWall(new Vector2(26 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.ButtonWallClicked(new Vector2(27 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.ButtonWallClicked(new Vector2(27 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.ButtonWallClicked(new Vector2(27 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.ButtonWallClicked(new Vector2(27 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));

            GameManager.SpawnObject(new Objects.WallCornerPhillar(new Vector2(28 * 32f * sceneScale * sceneScale + offsetX, 1 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), 0));
            GameManager.SpawnObject(new Objects.WallCornerPhillar(new Vector2(28 * 32f * sceneScale * sceneScale + offsetX, 3 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI / 2)));
            GameManager.SpawnObject(new Objects.WallCornerPhillar(new Vector2(28 * 32f * sceneScale * sceneScale + offsetX, 5 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), (float)(Math.PI)));
            GameManager.SpawnObject(new Objects.WallCornerPhillar(new Vector2(28 * 32f * sceneScale * sceneScale + offsetX, 7 * 32f * sceneScale), new Vector2(sceneScale, sceneScale), -(float)(Math.PI / 2)));
        }
Beispiel #14
0
        // Add blocks to the scene to test collision detection.
        private void AddStartingBlocks()
        {
            player = new Objects.Player(this, new Vector2(0, ScreenArea.Height/2));

            new Objects.Platform(this, new Vector2(-160, 500), 11, 1);
        }