public void reset(){
        Random rand = new Random();
        currentMessages = new ArrayList<String>();
        currentMessageColors = new ArrayList<Color>();

        world = new World(null);
        ItemFactory itemFactory = new ItemFactory();
        CreatureFactory creatureFactory = new CreatureFactory(world, itemFactory);
        world.factory = creatureFactory;

        controller.target = creatureFactory.player();
        controller.target.personalName = input;
        world.placeInVillage(controller.target, rand);

        world.placeInVillage(creatureFactory.heroFighter(), rand);
        world.placeInVillage(creatureFactory.heroWizard(), rand);
        world.placeInVillage(creatureFactory.heroMonk(), rand);
        world.placeInVillage(creatureFactory.heroPreist(), rand);
        world.placeInVillage(creatureFactory.heroSamurai(), rand);
        world.placeInVillage(creatureFactory.heroSlayer(), rand);

        for (int i = 0; i < 30; i++){
            world.placeInVillage(creatureFactory.villager(), rand);
        }

        for (int i = 0; i < 4; i++){
            world.placeAnywhere(creatureFactory.vampire(), rand);
        }
        for (int i = 0; i < 2; i++){
            world.placeAnywhere(creatureFactory.ghost(), rand);
        }
        for (int i = 0; i < 20; i++){
            world.placeAnywhere(creatureFactory.zombie(), rand);
        }
        for (int i = 0; i < 20; i++){
            world.placeAnywhere(creatureFactory.skeleton(), rand);
        }

        for (int i = 0; i < 5; i++){
            world.placeInVillage(itemFactory.armor(), rand);
            world.placeInVillage(itemFactory.weapon(), rand);
        }
        for (int i = 0; i < 5; i++){
            world.placeAnywhere(itemFactory.armor(), rand);
            world.placeAnywhere(itemFactory.weapon(), rand);
        }
    }