Exemple #1
0
    def __init__(self):
        self.map_manager = MapManager()
        self.status_manager = StatusManager(self.map_manager)
        self.output_manager = OutputManager()

        self.action_manager = ActionManager(self.status_manager, self.output_manager)
        self.dialog_manager = DialogManager(self.status_manager, self.output_manager)
        self.move_manager = MoveManager(
            self.status_manager, self.output_manager
        )
Exemple #2
0
class GameManager:
    def __init__(self):
        self.map_manager = MapManager()
        self.status_manager = StatusManager(self.map_manager)
        self.output_manager = OutputManager()

        self.action_manager = ActionManager(self.status_manager, self.output_manager)
        self.dialog_manager = DialogManager(self.status_manager, self.output_manager)
        self.move_manager = MoveManager(
            self.status_manager, self.output_manager
        )

    def intro(self):
        with open(intro_file, "r") as fp:
            intro = json.load(fp)["intro"]
        self.output_manager.print(intro)

    def start(self):
        self.intro()
        response = input()
        while response.lower() != "quit":
            self.process_response(response)
            if self.status_manager.is_dead():
                break
            response = input()

    def process_response(self, response):
        # find response mapping in dialog or action dictionaries
        if self.dialog_manager.detect_dialog(response):
            self.dialog_manager.process_response(response)
        elif self.move_manager.detect_move(response):
            self.move_manager.process_response(response)
        else:
            self.action_manager.process_response(response)
Exemple #3
0
def test_that_status_are_updated():
    status_manager = StatusManager(MapManager())

    update = {
        "place:forest.south_forest": True,
        "mental_state:happy": True,
        "mental_state:tired": False,
        "duration": 0.5
    }

    status_manager.update(update)

    assert status_manager.status["place"] == "forest.south_forest"
    assert status_manager.status["mental_state"]["happy"]
    assert not status_manager.status["mental_state"]["tired"]
    assert status_manager.status["day"] == 1.5
Exemple #4
0
def test_that_status_manager_gets_presence():
    status_manager = StatusManager(MapManager())

    assert status_manager.get_presence() == []

    status_manager.update({"presence:friend1": True, "presence:friend2": True})

    assert status_manager.get_presence() == ["friend1", "friend2"]
Exemple #5
0
def test_that_status_manager_checks_whether_player_is_dead():
    status_manager = StatusManager(MapManager())

    assert not status_manager.is_dead()

    status_manager.update({"physical_state:dead": True})

    assert status_manager.is_dead()
Exemple #6
0
def test_that_status_manager_checks_whether_player_is_alone():
    status_manager = StatusManager(MapManager())

    assert status_manager.is_alone()

    status_manager.update({"presence:friend": True})

    assert not status_manager.is_alone()
Exemple #7
0
def test_that_status_managers_detects_nested_places(place, status, expected):
    status_manager = StatusManager(MapManager())
    status_manager.status["place"] = place

    assert status_manager._is_in_place(status) == expected
Exemple #8
0
def test_that_status_manager_acts_like_status_list():
    status_manager = StatusManager(MapManager())

    assert len(status_manager) == len(status_manager.status)
    assert status_manager["place"] == status_manager.status["place"]
Exemple #9
0
def test_that_status_manager_gets_current_place():
    status_manager = StatusManager(MapManager())

    assert status_manager.get_current_place() == "forest.middle_forest"
Exemple #10
0
def test_that_status_are_checked(status, expected):
    status_manager = StatusManager(MapManager())

    assert status_manager.check_status(status) == expected
Exemple #11
0
def move_manager():
    status_manager = StatusManager(MapManager())
    output_manager = OutputManager()
    return MoveManager(status_manager, output_manager)
Exemple #12
0
def action_manager():
    status_manager = StatusManager(MapManager())
    output_manager = OutputManager()
    return ActionManager(status_manager, output_manager)
Exemple #13
0
def dialog_manager():
    status_manager = StatusManager(MapManager())
    output_manager = OutputManager()
    return DialogManager(status_manager, output_manager)