Beispiel #1
0
        public override List <IEntity> Exit()
        {
            // Ensure collected Items are not cleared off the screen
            foreach (IItem i in Items)
            {
                if (i.Collected == true)
                {
                    Removables.Remove(i as IEntity);
                }
            }

            return(Removables);
        }
Beispiel #2
0
        public override void Initialise()
        {
            if (firstRun == true)
            {
                createdEntity = EntityManager.getInstance.newEntity <SolidGround>("Block");
                SceneManager.getInstance.newEntity(createdEntity, -100, 400);
                Removables.Add(createdEntity);

                createdEntity = EntityManager.getInstance.newEntity <SolidGround>("Block");
                SceneManager.getInstance.newEntity(createdEntity, 700, 330);
                Removables.Add(createdEntity);

                firstRun = false;
            }
        }
Beispiel #3
0
        public override void Initialise()
        {
            if (firstRun == true)
            {
                //Martha
                createdEntity = EntityManager.getInstance.newEntity <HighLevelAI>("Enemy/Martha/");
                SceneManager.getInstance.newEntity(createdEntity, 40, 350);
                var asInstance = createdEntity as IAI;
                asInstance.setVars(true, "Idle");
                Removables.Add(createdEntity);

                createdEntity = EntityManager.getInstance.newEntity <SolidGround>("Block");
                SceneManager.getInstance.newEntity(createdEntity, -100, 400);
                Removables.Add(createdEntity);

                createdEntity = EntityManager.getInstance.newEntity <SolidGround>("Block");
                SceneManager.getInstance.newEntity(createdEntity, 700, 330);
                Removables.Add(createdEntity);

                firstRun = false;
            }
        }
Beispiel #4
0
        public override void Initialise()
        {
            if (firstRun == true)
            {
                // Table
                for (int i = 0; i < Tablepos.Length; i++)
                {
                    createdEntity = EntityManager.getInstance.newEntity <SolidObject>("Table");
                    SceneManager.getInstance.newEntity(createdEntity, Tablepos[i], (ScreenHeight / 2) - 30);
                    Removables.Add(createdEntity);
                    createdEntity = EntityManager.getInstance.newEntity <SolidObject>("Table");
                    SceneManager.getInstance.newEntity(createdEntity, Tablepos[i], (ScreenHeight / 2) - 15);
                    Removables.Add(createdEntity);
                    createdEntity = EntityManager.getInstance.newEntity <SolidObject>("Table");
                    SceneManager.getInstance.newEntity(createdEntity, Tablepos[i], (ScreenHeight / 2));
                    Removables.Add(createdEntity);
                    createdEntity = EntityManager.getInstance.newEntity <SolidObject>("Table");
                    SceneManager.getInstance.newEntity(createdEntity, Tablepos[i], (ScreenHeight / 2) + 15);
                    Removables.Add(createdEntity);
                    createdEntity = EntityManager.getInstance.newEntity <SolidObject>("Table");
                    SceneManager.getInstance.newEntity(createdEntity, Tablepos[i], (ScreenHeight / 2) + 30);
                    Removables.Add(createdEntity);
                }

                // Door - south hallway
                createdEntity = EntityManager.getInstance.newEntity <Door>();
                SceneManager.getInstance.newEntity(createdEntity, 575, ScreenHeight / 2);
                createdEntity.setVars("L4", new Vector2(100, 150));
                Removables.Add(createdEntity);

                //// Walls
                ////Left
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(190, 125), new Vector2(10, 235));
                //Walls.Add(wall);
                ////right
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(610, 125), new Vector2(10, 235));
                //Walls.Add(wall);
                ////top
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(190, 125), new Vector2(420, 10));
                //Walls.Add(wall);
                ////bottom
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(190, 360), new Vector2(420, 10));
                //Walls.Add(wall);

                ////fireplace
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(360, 135), new Vector2(75, 10));
                //Walls.Add(wall);

                firstRun = false;
            }
            else
            {
                foreach (IEntity e in EntityManager.getInstance.Entities)
                {
                    foreach (IEntity r in Removables)
                    {
                        if (e.UID == r.UID)
                        {
                            SceneManager.getInstance.newEntity(r, (int)r.DefaultPos.X, (int)r.DefaultPos.Y);
                            r.sub();
                        }
                    }
                }
                foreach (IWall w in Walls)
                {
                    w.Sub();
                }
            }
        }
Beispiel #5
0
        public override void Initialise()
        {
            if (firstRun == true)
            {
                //Martha
                createdEntity = EntityManager.getInstance.newEntity <HighLevelAI>("Enemy/Martha/");
                SceneManager.getInstance.newEntity(createdEntity, 550, ScreenHeight / 2);
                var asInstance = createdEntity as IAI;
                asInstance.setVars(true, "Wait");
                Removables.Add(createdEntity);

                // Chair
                createdEntity = EntityManager.getInstance.newEntity <SolidObject>("DeskChairSide");
                SceneManager.getInstance.newEntity(createdEntity, 275, (ScreenHeight / 2) + 5);
                Removables.Add(createdEntity);
                // Desk
                createdEntity = EntityManager.getInstance.newEntity <SolidObject>("Desk");
                SceneManager.getInstance.newEntity(createdEntity, 300, ScreenHeight / 2);
                Removables.Add(createdEntity);

                // Cupboard
                createdEntity = EntityManager.getInstance.newEntity <HidingPlace>("Game Items/Wardrope");
                SceneManager.getInstance.newEntity(createdEntity, 500, 125);
                createdEntity.setVars("/Content/Dialogue/A.I.AndSerena.txt", true);
                Removables.Add(createdEntity);

                // Door
                createdEntity = EntityManager.getInstance.newEntity <Door>();
                SceneManager.getInstance.newEntity(createdEntity, 590, ScreenHeight / 2);
                createdEntity.setVars("L2", new Vector2(320, 300));
                Removables.Add(createdEntity);


                //// Walls
                ////Left
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(200, 125), new Vector2(10, 275));
                //Walls.Add(wall);
                ////right
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(620, 125), new Vector2(10, 275));
                //Walls.Add(wall);
                ////top
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(200, 125), new Vector2(420, 10));
                //Walls.Add(wall);
                ////bottom
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(200, 400), new Vector2(420, 10));
                //Walls.Add(wall);

                firstRun = false;
            }
            else
            {
                foreach (IEntity e in EntityManager.getInstance.Entities)
                {
                    foreach (IEntity r in Removables)
                    {
                        if (e.UID == r.UID)
                        {
                            SceneManager.getInstance.newEntity(r, (int)r.DefaultPos.X, (int)r.DefaultPos.Y);
                            r.sub();
                        }
                    }
                }

                foreach (IWall w in Walls)
                {
                    w.Sub();
                }
            }
        }
Beispiel #6
0
        public override void Initialise()
        {
            if (firstRun == true)
            {
                // Old Man
                createdEntity = EntityManager.getInstance.newEntity <FriendlyAI>("NPC/OldMan/");
                SceneManager.getInstance.newEntity(createdEntity, (ScreenWidth / 2) + 145, 160);
                Removables.Add(createdEntity);

                // Hiding Place
                for (int i = 0; i < BedPositions.Length; i++)
                {
                    createdEntity = EntityManager.getInstance.newEntity <HidingPlace>("Game Items/AdultsBedLong");
                    SceneManager.getInstance.newEntity(createdEntity, BedPositions[i], 150);
                    Removables.Add(createdEntity);
                }
                //Jumpscare dude
                createdEntity = EntityManager.getInstance.newEntity <JumpScare>("Enemy/JumpScare/");
                SceneManager.getInstance.newEntity(createdEntity, 160, 150);
                Removables.Add(createdEntity);

                // Door
                createdEntity = EntityManager.getInstance.newEntity <Door>();
                SceneManager.getInstance.newEntity(createdEntity, 450, 285);
                createdEntity.setVars("L2", new Vector2((ScreenWidth / 2) - 18, 110));
                Removables.Add(createdEntity);


                //// Walls
                ////Left
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(150, 150), new Vector2(10, 520));
                //Walls.Add(wall);
                ////right
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(670, 150), new Vector2(10, 520));
                //Walls.Add(wall);
                ////top
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(150, 150), new Vector2(510, 10));
                //Walls.Add(wall);
                ////bottom
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(150, 315), new Vector2(510, 10));
                //Walls.Add(wall);
                firstRun = false;
            }
            else
            {
                // Check each loaded entity, if it's an entity from this level then respawn it
                foreach (IEntity e in EntityManager.getInstance.Entities)
                {
                    foreach (IEntity r in Removables)
                    {
                        if (e.UID == r.UID)
                        {
                            SceneManager.getInstance.newEntity(r, (int)r.DefaultPos.X, (int)r.DefaultPos.Y);
                            r.sub();
                        }
                    }
                }

                foreach (IWall w in Walls)
                {
                    w.Sub();
                }
            }
        }
Beispiel #7
0
        public override void Initialise()
        {
            if (firstRun == true)
            {
                //Martha
                createdEntity = EntityManager.getInstance.newEntity <HighLevelAI>("Enemy/Martha/");
                SceneManager.getInstance.newEntity(createdEntity, 450, 120);
                var asInstance = createdEntity as IAI;
                asInstance.setVars(true, "Idle");
                Removables.Add(createdEntity);
                MarthaID = createdEntity.UID;

                // Door - Rushout Room
                createdEntity = EntityManager.getInstance.newEntity <Door>();
                SceneManager.getInstance.newEntity(createdEntity, (ScreenWidth / 2) - 18, 75);
                createdEntity.setVars("L1", new Vector2(450, 250));
                Removables.Add(createdEntity);

                // Door - Matrons office
                createdEntity = EntityManager.getInstance.newEntity <Door>();
                SceneManager.getInstance.newEntity(createdEntity, 290, 285);
                createdEntity.setVars("L3", new Vector2(560, ScreenHeight / 2));
                Removables.Add(createdEntity);

                // Door - south hall
                createdEntity = EntityManager.getInstance.newEntity <Door>();
                SceneManager.getInstance.newEntity(createdEntity, (ScreenWidth / 2) - 18, 400);
                createdEntity.setVars("L4", new Vector2((ScreenWidth / 4) - 10, 90));
                Removables.Add(createdEntity);

                Script.getInstance.BeginDialogue(lines);
                firstRun = false;

                //// Walls
                ////left
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(280, 75), new Vector2(10, 460));
                //Walls.Add(wall);
                ////right
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(505, 75), new Vector2(10, 460));
                //Walls.Add(wall);
                ////top left
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(250, 75), new Vector2(80, 10));
                //Walls.Add(wall);
                ////top right
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(360, 75), new Vector2(80, 10));
                //Walls.Add(wall);
                ////bottom
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(280, 435), new Vector2(195, 10));
                //Walls.Add(wall);

                firstRun = false;
            }
            else
            {
                foreach (IEntity e in EntityManager.getInstance.Entities)
                {
                    foreach (IEntity r in Removables)
                    {
                        if (e.UID == r.UID)
                        {
                            SceneManager.getInstance.newEntity(r, (int)r.DefaultPos.X, (int)r.DefaultPos.Y);
                            r.sub();
                        }
                    }
                }
                foreach (IWall w in Walls)
                {
                    w.Sub();
                }
            }
        }
Beispiel #8
0
        public override void Initialise()
        {
            if (firstRun == true)
            {
                // Beds
                for (int i = 0; i < BedPositions.Length; i++)
                {
                    createdEntity = EntityManager.getInstance.newEntity <HidingPlace>("Game Items/AdultsBedSideL");
                    SceneManager.getInstance.newEntity(createdEntity, 40, BedPositions[i]);
                    Removables.Add(createdEntity);
                    createdEntity = EntityManager.getInstance.newEntity <HidingPlace>("Game Items/AdultsBedSideR");
                    SceneManager.getInstance.newEntity(createdEntity, 675, BedPositions[i]);
                    Removables.Add(createdEntity);
                }
                // Neutral AI
                createdEntity = EntityManager.getInstance.newEntity <NeutralAI>("NPC/PatientZelda/");
                SceneManager.getInstance.newEntity(createdEntity, 250, 100);
                Removables.Add(createdEntity);

                // Door - South Hallway
                createdEntity = EntityManager.getInstance.newEntity <Door>();
                SceneManager.getInstance.newEntity(createdEntity, (ScreenWidth / 2) - 5, 90);
                createdEntity.setVars("L4", new Vector2((ScreenWidth / 4) - 10, 330));
                Removables.Add(createdEntity);

                // Item
                createdEntity = EntityManager.getInstance.newEntity <Item>("Game Items/TestTubeBottle");
                SceneManager.getInstance.newEntity(createdEntity, 200, 380);
                ItemUID = createdEntity.UID;
                Removables.Add(createdEntity);

                //// Walls
                ////Left
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(25, 75), new Vector2(10, 365));
                //Walls.Add(wall);
                ////right
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(740, 75), new Vector2(10, 365));
                //Walls.Add(wall);
                ////top left
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(25, 75), new Vector2(370, 10));
                //Walls.Add(wall);
                ////top right
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(420, 75), new Vector2(370, 10));
                //Walls.Add(wall);
                ////bottom
                //wall = new InvisibleWall();
                //wall.setVars(new Vector2(25, 440), new Vector2(715, 10));
                //Walls.Add(wall);

                firstRun = false;
            }
            else
            {
                foreach (IEntity e in EntityManager.getInstance.Entities)
                {
                    foreach (IEntity r in Removables)
                    {
                        if (e.UID == r.UID)
                        {
                            // Check if the current entity is the Item, only spawn it if it's not been collected
                            if (r.UID == ItemUID)
                            {
                                var asInterface = r as IItem;
                                if (asInterface.Collected == false)
                                {
                                    SceneManager.getInstance.newEntity(r, (int)r.DefaultPos.X, (int)r.DefaultPos.Y);
                                    r.sub();
                                }
                                else
                                {
                                    break;
                                }
                            }
                            SceneManager.getInstance.newEntity(r, (int)r.DefaultPos.X, (int)r.DefaultPos.Y);
                            r.sub();
                        }
                    }
                }
                foreach (IWall w in Walls)
                {
                    w.Sub();
                }
            }
        }
Beispiel #9
0
        public override void Initialise()
        {
            if (firstRun == true)
            {
                // Cupboard
                createdEntity = EntityManager.getInstance.newEntity <HidingPlace>("Game Items/Wardrope");
                SceneManager.getInstance.newEntity(createdEntity, 375, 50);
                Removables.Add(createdEntity);

                // Desk
                createdEntity = EntityManager.getInstance.newEntity <SolidObject>("Desk");
                SceneManager.getInstance.newEntity(createdEntity, 425, 150);
                Removables.Add(createdEntity);

                // Nurse at Desk
                createdEntity = EntityManager.getInstance.newEntity <LowLevelAI>("Enemy/NurseA/");
                SceneManager.getInstance.newEntity(createdEntity, 400, 150);
                var asInstance = createdEntity as IAI;
                asInstance.setVars(false, "Stand", "Right");
                Removables.Add(createdEntity);
                // Nurse Patroling
                createdEntity = EntityManager.getInstance.newEntity <LowLevelAI>("Enemy/NurseB/");
                SceneManager.getInstance.newEntity(createdEntity, 100, ScreenHeight / 2);
                asInstance = createdEntity as IAI;
                asInstance.setVars(true, "Idle");
                Removables.Add(createdEntity);

                // Door - North Hallway
                createdEntity = EntityManager.getInstance.newEntity <Door>();
                SceneManager.getInstance.newEntity(createdEntity, (ScreenWidth / 4) - 10, 60);
                createdEntity.setVars("L2", new Vector2((ScreenWidth / 2) - 18, 250));
                Removables.Add(createdEntity);
                // Door - Boardroom
                createdEntity = EntityManager.getInstance.newEntity <Door>();
                SceneManager.getInstance.newEntity(createdEntity, 75, 150);
                createdEntity.setVars("L5", new Vector2(540, ScreenHeight / 2));
                Removables.Add(createdEntity);
                // Door - Ward
                createdEntity = EntityManager.getInstance.newEntity <Door>();
                SceneManager.getInstance.newEntity(createdEntity, (ScreenWidth / 4) - 10, 390);
                createdEntity.setVars("L6", new Vector2((ScreenWidth / 2) - 5, 120));
                Removables.Add(createdEntity);


                // Walls
                //Left
                wall = new InvisibleWall();
                wall.setVars(new Vector2(55, 50), new Vector2(10, 370));
                Walls.Add(wall);
                //right
                wall = new InvisibleWall();
                wall.setVars(new Vector2(725, 50), new Vector2(10, 195));
                Walls.Add(wall);
                //top left
                wall = new InvisibleWall();
                wall.setVars(new Vector2(55, 50), new Vector2(325, 10));
                Walls.Add(wall);
                //top right
                wall = new InvisibleWall();
                wall.setVars(new Vector2(350, 60), new Vector2(375, 10));
                Walls.Add(wall);
                //bottom
                wall = new InvisibleWall();
                wall.setVars(new Vector2(55, 420), new Vector2(325, 10));
                Walls.Add(wall);
                //L
                wall = new InvisibleWall();
                wall.setVars(new Vector2(350, 245), new Vector2(375, 175));
                Walls.Add(wall);

                firstRun = false;
            }
            else
            {
                foreach (IEntity e in EntityManager.getInstance.Entities)
                {
                    foreach (IEntity r in Removables)
                    {
                        if (e.UID == r.UID)
                        {
                            SceneManager.getInstance.newEntity(r, (int)r.DefaultPos.X, (int)r.DefaultPos.Y);
                            r.sub();
                        }
                    }
                }

                foreach (IWall w in Walls)
                {
                    w.Sub();
                }
            }
        }