Exemple #1
0
        //work here
        public virtual bool DetectCollision(Actor toDetect)
        {
            if (collisionBox.Intersects(toDetect.collisionBox))
                return true;

            return false;
        }
        private static List<Actor> generateModels()
        {
            List<Actor> actorList = null;

            if (map != null)
            {
                actorList = new List<Actor>();

                Actor temp;

                for (int i = 0; i < map.GetLength(0); i++)
                {
                    for (int j = 0; j < map.GetLength(1); j++)
                    {
                        // Tile 1 - Stone, top bottom connect
                        // Tile 3 - Stone, left right connect

                        // Tile 2 - Stone, corner
                        // Tile 4 - Stone, Top right?
                        // Tile 5 - Stone, corner, bottom right
                        // Tile 7 - Stone, corner
                        // Tile 8 - Stone, corner?

                        // Tile 6 - Unusable? No connections
                        temp = new Actor();
                        if (map[i, j] == FSCMInterfaces.Globals.TILE_UNPASSABLE)
                        {
                            temp.model = ModelFactory.loadModel("tile9");
                            temp.X = (j) * 4;
                            temp.Y = (i) * 4;
                            temp.Z = -26;
                            temp.Scale = 2.0f;
                            actorList.Add(temp);
                            temp = new Actor();
                            temp.model = ModelFactory.loadModel("TileDirt");
                        }
                        else if (map[i, j] == FSCMInterfaces.Globals.TILE_GRASS_CORNERL)
                        {
                            temp.model = ModelFactory.loadModel("grassWallCornerL");
                            temp.X = (j) * 4;
                            temp.Y = (i) * 4;
                            temp.Z = -26;
                            temp.Scale = 2.0f;
                            actorList.Add(temp);
                            temp = new Actor();
                            temp.model = ModelFactory.loadModel("TileDirt");
                        }
                        else if (map[i, j] == FSCMInterfaces.Globals.TILE_GRASS_CORNERR)
                        {
                            temp.model = ModelFactory.loadModel("grassWallCornerR");
                            temp.X = (j) * 4;
                            temp.Y = (i) * 4;
                            temp.Z = -26;
                            temp.Scale = 2.0f;
                            actorList.Add(temp);
                            temp = new Actor();
                            temp.model = ModelFactory.loadModel("TileDirt");
                        }
                        else if (map[i, j] == FSCMInterfaces.Globals.TILE_GRASS_CUBE)
                        {
                            temp.model = ModelFactory.loadModel("tile1");
                            temp.X = (j) * 4;
                            temp.Y = (i) * 4;
                            temp.Z = -26;
                            temp.Scale = 2.0f;
                            actorList.Add(temp);
                            temp = new Actor();
                            temp.model = ModelFactory.loadModel("TileDirt");
                        }
                        else if (map[i, j] == FSCMInterfaces.Globals.TILE_GRASS_ENDL)
                        {
                            temp.model = ModelFactory.loadModel("grassWallEndL");
                            temp.X = (j) * 4;
                            temp.Y = (i) * 4;
                            temp.Z = -26;
                            temp.Scale = 2.0f;
                            actorList.Add(temp);
                            temp = new Actor();
                            temp.model = ModelFactory.loadModel("TileDirt");
                        }
                        else if (map[i, j] == FSCMInterfaces.Globals.TILE_GRASS_ENDR)
                        {
                            temp.model = ModelFactory.loadModel("grassWallEndR");
                            temp.X = (j) * 4;
                            temp.Y = (i) * 4;
                            temp.Z = -26;
                            temp.Scale = 2.0f;
                            actorList.Add(temp);
                            temp = new Actor();
                            temp.model = ModelFactory.loadModel("TileDirt");
                        }
                        else if (map[i, j] == FSCMInterfaces.Globals.TILE_GRASS_WALL1)
                        {
                            temp.model = ModelFactory.loadModel("grassWall");
                            temp.X = (j) * 4;
                            temp.Y = (i) * 4;
                            temp.Z = -26;
                            temp.Scale = 2.0f;
                            actorList.Add(temp);
                            temp = new Actor();
                            temp.model = ModelFactory.loadModel("TileDirt");
                        }
                        else if (map[i, j] == FSCMInterfaces.Globals.TILE_GRASS_WALL2)
                        {
                            temp.model = ModelFactory.loadModel("grassWall2");
                            temp.X = (j) * 4;
                            temp.Y = (i) * 4;
                            temp.Z = -26;
                            temp.Scale = 2.0f;
                            actorList.Add(temp);
                            temp = new Actor();
                            temp.model = ModelFactory.loadModel("TileDirt");
                        }
                        else if (map[i, j] == FSCMInterfaces.Globals.TILE_EXIT)
                            temp.model = ModelFactory.loadModel("TileGrass");
                        else if (map[i, j] == FSCMInterfaces.Globals.TILE_PASSABLE)
                            temp.model = ModelFactory.loadModel("TileDirt");
                        else
                            temp.model = ModelFactory.loadModel("TileGrass");
                        temp.Scale = 2.0f;
                        temp.X = (j) * 4;
                        temp.Y = (i) * 4;
                        temp.Z = -30;
                        actorList.Add(temp);
                    }
                }
            }

            return actorList;
        }
        public override void Update()
        {
            if (fresh)
            {
                fresh = false;
                actorList = MapFactory.GetCurrentMaze();
                MediaHandler.playBGM(FSCMStrikesBackLogic.Properties.Resources.mazebgm, "mazebgm");
                MediaHandler.Background = "default.png";
                mainActor = PCBuilder.getPC("John");
                actorList.Add(mainActor);
                StateHandler.CameraTarget = mainActor;
                if (newGame)
                {
                    StateHandler.Level = 1;
                    StateHandler.Quest = (new QuestExplore(17, 17, null, 2));

                    PCBuilder.getPC(0).equipped[0] = ItemFactory.CreateEquip(Globals.WEARFLAG_WEAPON, Globals.ELEMENT_NATURE, 1, Globals.ITEM_QUALITY_TRASH, "");
                    PCBuilder.getPC(0).equipped[1] = ItemFactory.CreateEquip(Globals.WEARFLAG_CHEST, Globals.ELEMENT_NATURE, 1, Globals.ITEM_QUALITY_TRASH, "");
                    PCBuilder.getPC(0).equipped[2] = ItemFactory.CreateEquip(Globals.WEARFLAG_HEAD, Globals.ELEMENT_NATURE, 1, Globals.ITEM_QUALITY_TRASH, "");
                    PCBuilder.getPC(0).equipped[3] = ItemFactory.CreateEquip(Globals.WEARFLAG_LEGS + Globals.WEARFLAG_FEET, Globals.ELEMENT_NATURE, 1, Globals.ITEM_QUALITY_TRASH, "");
                    PCBuilder.getPC(0).runes[0] = ItemFactory.CreateRune(0, Globals.ELEMENT_NATURE, -1, -1, "");
                    PCBuilder.getPC(0).Health = PCBuilder.getPC(0).MaxHealth;

                    PCBuilder.getPC(1).equipped[0] = ItemFactory.CreateEquip(Globals.WEARFLAG_WEAPON, Globals.ELEMENT_FIRE, 1, Globals.ITEM_QUALITY_TRASH, "");
                    PCBuilder.getPC(1).equipped[1] = ItemFactory.CreateEquip(Globals.WEARFLAG_CHEST, Globals.ELEMENT_FIRE, 1, Globals.ITEM_QUALITY_TRASH, "");
                    PCBuilder.getPC(1).equipped[2] = ItemFactory.CreateEquip(Globals.WEARFLAG_HEAD, Globals.ELEMENT_FIRE, 1, Globals.ITEM_QUALITY_TRASH, "");
                    PCBuilder.getPC(1).equipped[3] = ItemFactory.CreateEquip(Globals.WEARFLAG_LEGS + Globals.WEARFLAG_FEET, Globals.ELEMENT_FIRE, 1, Globals.ITEM_QUALITY_TRASH, "");
                    PCBuilder.getPC(1).runes[0] = ItemFactory.CreateRune(0, Globals.ELEMENT_FIRE, -1, -1, "");
                    PCBuilder.getPC(1).Health = PCBuilder.getPC(1).MaxHealth;

                    PCBuilder.getPC(2).equipped[0] = ItemFactory.CreateEquip(Globals.WEARFLAG_WEAPON, Globals.ELEMENT_PHYSICAL, 3, Globals.ITEM_QUALITY_LEGENDARY, "The Smile");
                    PCBuilder.getPC(2).equipped[1] = ItemFactory.CreateEquip(Globals.WEARFLAG_HEAD, Globals.ELEMENT_PHYSICAL, 3, Globals.ITEM_QUALITY_LEGENDARY, "The Glasses");
                    PCBuilder.getPC(2).equipped[2] = ItemFactory.CreateEquip(0, Globals.ELEMENT_PHYSICAL, 4, Globals.ITEM_QUALITY_MYTHICAL, "The Beard");
                    PCBuilder.getPC(2).equipped[3] = ItemFactory.CreateEquip(Globals.WEARFLAG_CHEST | Globals.WEARFLAG_LEGS | Globals.WEARFLAG_FEET, Globals.ELEMENT_PHYSICAL, 3, Globals.ITEM_QUALITY_LEGENDARY, "The Trenchcoat");
                    PCBuilder.getPC(2).runes[0] = ItemFactory.CreateRune(0, Globals.ELEMENT_WATER, -1, -1, "");
                    PCBuilder.getPC(2).Health = PCBuilder.getPC(2).MaxHealth;

                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_POTION, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_POTION, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_POTION, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_POTION, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_POTION, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_POTION, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_POTION, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_POTION, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_POTION, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_POTION, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_POTION, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_POTION, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_FIRE + Globals.TYPE_CONSUMABLE_PHYSICAL, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_FIRE, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_WATER, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_NATURE, 0, 1, Globals.ITEM_QUALITY_TRASH, null));
                    ItemHandler.itemList.Add(ItemFactory.CreateConsumable(Globals.TYPE_CONSUMABLE_PHYSICAL, 0, 1, Globals.ITEM_QUALITY_TRASH, null));

                    newGame = false;
                }
            }

            if (change)
            {
                change = false;
                mainActor.X = locX;
                mainActor.Y = locY;
            }
        }