public void initialize()
        {
            MediaHandler.playBGM(FSCMStrikesBackLogic.Properties.Resources.Five_Armies, "Five_Armies");

            background.model = ModelFactory.loadModel("SuperBattleCave");
            background.Scale = 3.0f;

            TurnList.Add(StateHandler.GetPC(0));
            TurnList.Add(StateHandler.GetPC(1));
            TurnList.Add(StateHandler.GetPC(2));
            for (int i = 0; i < MonsterList.Length; i++)
            {
                TurnList.Add(MonsterList[i]);
            }

            current = StateHandler.GetPC(0);

            cameraTarget = PCBuilder.getPC(0);

            strategy = 0;

            x = 75;
            y = 50;
            z = 10;
        }
Exemple #2
0
        internal static PC getPC(string name)
        {
            foreach (PC pc in pcList)
            {
                if (pc.Name == name)
                {
                    return(pc);
                }
            }

            PC temp = new PC();

            temp.Z = -22;
            temp.setLevel(1);
            temp.MaxHealth = 100;
            temp.Health    = temp.MaxHealth;
            temp.setAttack(10);
            temp.setMagic(10);
            temp.setDefense(10);
            temp.setMagicDefense(10);
            temp.Scale = 1.0f;

            if (name == "Jane")
            {
                temp.Name = "Jane";
                temp.setTitle("The Honey Badger Woman");
                temp.model = ModelFactory.loadModel("bodyArcher");
                temp.setCombatLoc(40, 15, 15);
            }
            else if (name == "Bob")
            {
                temp.Name = "Bob";
                temp.setTitle("The Robert");
                temp.model = ModelFactory.loadModel("warior5");
                temp.setCombatLoc(5, 15, 20);
            }
            else if (name == "John")
            {
                temp.Name = "John";
                temp.setTitle("The Intern");
                temp.model = ModelFactory.loadModel("wizzard6");
                temp.setCombatLoc(30, 15, 10);
            }
            else
            {
                return(getPC("John"));
            }


            pcList.Add(temp);

            return(temp);
        }
        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);
        }
        private static Monster generateMonster(string name, int level, int element, int specials, bool boss)
        {
            Monster monster = new Monster();

            monster.Quality = specials;

            switch (name)
            {
            case "Eyeball":
                monster.model     = ModelFactory.loadModel("Eyeball");
                monster.Name      = "Eyeball";
                monster.MaxHealth = 100 * level;
                monster.Health    = monster.MaxHealth;
                monster.Element   = Globals.ELEMENT_FIRE;
                monster.setLevel(level);
                monster.setAttack(level * 2);
                monster.setDefense(level * 2);
                monster.setMagic(level * 2);
                monster.setMagicDefense(level * 2);
                monster.Type = Globals.MONSTER_EYEBALL;
                monster.SetBehavior(new BehaviorBasicFire());
                break;

            case "MutatedCroc":
            case "Mutated Croc":
            case "MutatedCrocodile":
            case "Mutated Crocodile":
                monster.model     = ModelFactory.loadModel("MutatedCrocodile");
                monster.Name      = "Mutated Crocodile";
                monster.MaxHealth = 100 * level;
                monster.Health    = monster.MaxHealth;
                monster.Element   = Globals.ELEMENT_WATER;
                monster.setLevel(level);
                monster.setAttack(level * 2);
                monster.setDefense(level * 2);
                monster.setMagic(level * 2);
                monster.setMagicDefense(level * 2);
                monster.Type = Globals.MONSTER_MUTATED_CROCODILE;
                monster.SetBehavior(new BehaviorBasicWater());
                break;

            case "MutatedRat":
            case "Mutated Rat":
                monster.Name      = "Daisy";
                monster.model     = ModelFactory.loadModel("mutantRat34blend");
                monster.MaxHealth = 100 * level;
                monster.Health    = monster.MaxHealth;
                monster.Element   = Globals.ELEMENT_NATURE;
                monster.setLevel(level);
                monster.setAttack(level * 2);
                monster.setDefense(level * 2);
                monster.setMagic(level * 2);
                monster.setMagicDefense(level * 2);
                monster.Type = Globals.MONSTER_MUTATED_RAT;
                monster.SetBehavior(new BehaviorBasicNature());
                break;

            case "MutatedTurtle":
            case "Mutated Turtle":
                monster.model     = ModelFactory.loadModel("MutatedTurtle");
                monster.Name      = "Mutated Turtle";
                monster.MaxHealth = 100 * level;
                monster.Health    = monster.MaxHealth;
                monster.Element   = Globals.ELEMENT_WATER;
                monster.setLevel(level);
                monster.setAttack(level * 2);
                monster.setDefense(level * 2);
                monster.setMagic(level * 2);
                monster.setMagicDefense(level * 2);
                monster.Type = Globals.MONSTER_MUTATED_TURTLE;
                monster.SetBehavior(new BehaviorBasicWater());
                break;

            case "Drone":
            case "SecurityDrone":
                monster.model     = ModelFactory.loadModel("securityDrone");
                monster.Name      = "Security Drone";
                monster.MaxHealth = 100 * level;
                monster.Health    = monster.MaxHealth;
                monster.Element   = Globals.ELEMENT_PHYSICAL;
                monster.setLevel(level);
                monster.setAttack(level * 2);
                monster.setDefense(level * 2);
                monster.setMagic(level * 2);
                monster.setMagicDefense(level * 2);
                monster.Type = Globals.MONSTER_SECURITY_DRONE;
                monster.SetBehavior(new BehaviorAttack());
                break;

            case "SlimeMonster":
            case "MonsterSlime":
            default:
                monster.model     = ModelFactory.loadModel("MonsterSlime");
                monster.Name      = "Slime Monster";
                monster.MaxHealth = 100 * level;
                monster.Health    = monster.MaxHealth;
                monster.Element   = Globals.ELEMENT_WATER;
                monster.setLevel(level);
                monster.setAttack(level * 2);
                monster.setDefense(level * 2);
                monster.setMagic(level * 2);
                monster.setMagicDefense(level * 2);
                monster.Type = Globals.MONSTER_SLIMEMONSTER;
                monster.SetBehavior(new BehaviorBasicWater());
                break;
            }

            monster.Quality = specials;

            switch (specials)
            {
            case Globals.MOB_WEAK:
                monster.Scale    *= 0.75f;
                monster.MaxHealth = monster.MaxHealth / 2;
                monster.Health    = monster.MaxHealth;
                monster.setAttack(monster.getAttack() / 2);
                monster.setDefense(monster.getDefense() / 2);
                monster.setMagic(monster.getMagic() / 2);
                monster.setMagicDefense(monster.getMagicDefense() / 2);
                break;

            case Globals.MOB_NORMAL:
                monster.Scale *= 1.25f;
                break;

            case Globals.MOB_HARD:
                monster.Scale    *= 1.5f;
                monster.MaxHealth = monster.MaxHealth * 2;
                monster.Health    = monster.MaxHealth;
                monster.setAttack(monster.getAttack() * 2);
                monster.setDefense(monster.getDefense() * 2);
                monster.setMagic(monster.getMagic() * 2);
                monster.setMagicDefense(monster.getMagicDefense() * 2);
                break;

            case Globals.MOB_INSANE:
                monster.Scale    *= 2.5f;
                monster.MaxHealth = monster.MaxHealth * 3;
                monster.Health    = monster.MaxHealth;
                monster.setAttack(monster.getAttack() * 3);
                monster.setDefense(monster.getDefense() * 3);
                monster.setMagic(monster.getMagic() * 3);
                monster.setMagicDefense(monster.getMagicDefense() * 3);
                break;

            case Globals.MOB_BOSS:
                monster.Scale    *= 4.0f;
                monster.MaxHealth = monster.MaxHealth * 10;
                monster.Health    = monster.MaxHealth;
                monster.setAttack(monster.getAttack() * 3);
                monster.setDefense(monster.getDefense() * 3);
                monster.setMagic(monster.getMagic() * 3);
                monster.setMagicDefense(monster.getMagicDefense() * 3);
                break;

            case Globals.MOB_SPECIAL:
                monster.Name      = "The Stumonster";
                monster.Scale    *= 6.0f;
                monster.MaxHealth = monster.MaxHealth * 20;
                monster.Health    = monster.MaxHealth;
                monster.setAttack(monster.getAttack() * 4);
                monster.setDefense(monster.getDefense() * 4);
                monster.setMagic(monster.getMagic() * 4);
                monster.setMagicDefense(monster.getMagicDefense() * 4);
                break;
            }

            switch (StateHandler.Difficulty)
            {
            case Globals.DIFFICULTY_VERY_EASY:
                monster.Scale    *= 0.75f;
                monster.MaxHealth = monster.MaxHealth / 2;
                monster.Health    = monster.MaxHealth;
                monster.setAttack(monster.getAttack() / 2);
                monster.setDefense(monster.getDefense() / 2);
                monster.setMagic(monster.getMagic() / 2);
                monster.setMagicDefense(monster.getMagicDefense() / 2);
                break;

            case Globals.DIFFICULTY_EASY:
                monster.Scale    *= 0.85f;
                monster.MaxHealth = monster.MaxHealth * 3 / 4;
                monster.Health    = monster.MaxHealth;
                monster.setAttack(monster.getAttack() * 3 / 4);
                monster.setDefense(monster.getDefense() * 3 / 4);
                monster.setMagic(monster.getMagic() * 3 / 4);
                monster.setMagicDefense(monster.getMagicDefense() * 3 / 4);
                break;

            case Globals.DIFFICULTY_NORMAL:
                break;

            case Globals.DIFFICULTY_HARD:
                monster.Scale    *= 1.15f;
                monster.MaxHealth = monster.MaxHealth * 5 / 4;
                monster.Health    = monster.MaxHealth;
                monster.setAttack(monster.getAttack() * 5 / 4);
                monster.setDefense(monster.getDefense() * 5 / 4);
                monster.setMagic(monster.getMagic() * 5 / 4);
                monster.setMagicDefense(monster.getMagicDefense() * 5 / 4);
                break;

            case Globals.DIFFICULTY_VERY_HARD:
                monster.Scale    *= 1.25f;
                monster.MaxHealth = monster.MaxHealth * 3 / 2;
                monster.Health    = monster.MaxHealth;
                monster.setAttack(monster.getAttack() * 3 / 2);
                monster.setDefense(monster.getDefense() * 3 / 2);
                monster.setMagic(monster.getMagic() * 3 / 2);
                monster.setMagicDefense(monster.getMagicDefense() * 3 / 2);
                break;

            case Globals.DIFFICULTY_INSANE:
                monster.Scale    *= 1.5f;
                monster.MaxHealth = monster.MaxHealth * 2;
                monster.Health    = monster.MaxHealth;
                monster.setAttack(monster.getAttack() * 2);
                monster.setDefense(monster.getDefense() * 2);
                monster.setMagic(monster.getMagic() * 2);
                monster.setMagicDefense(monster.getMagicDefense() * 2);
                break;
            }

            if (boss)
            {
                monster.Boss      = true;
                monster.Scale    *= 1.5f;
                monster.MaxHealth = monster.MaxHealth * 2;
                monster.Health    = monster.MaxHealth;
                monster.setAttack(monster.getAttack() * 2);
                monster.setDefense(monster.getDefense() * 2);
                monster.setMagic(monster.getMagic() * 2);
                monster.setMagicDefense(monster.getMagicDefense() * 2);
            }

            return(monster);
        }