예제 #1
0
        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);
        }