From 751e0914509a96f007da7197f837e9dfe8f7bbbd Mon Sep 17 00:00:00 2001 From: Black Ram <67595890+BlackRam-oss@users.noreply.github.com> Date: Mon, 29 Jan 2024 10:34:11 +0100 Subject: [PATCH 1/7] fix --- game/nqtr_screens/screens_nqtr_component.rpy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game/nqtr_screens/screens_nqtr_component.rpy b/game/nqtr_screens/screens_nqtr_component.rpy index fe2db22..3f98407 100644 --- a/game/nqtr_screens/screens_nqtr_component.rpy +++ b/game/nqtr_screens/screens_nqtr_component.rpy @@ -172,7 +172,7 @@ screen room_button_list(rooms, commitments_in_cur_location): $ there_are_ch = True # If the Locations where I am is the same as the Locations where the room is located - if (room.location_id == cur_location.id and room.is_button != None and not room.is_hidden(flags)): + if (room.location_id == cur_location.id and room.is_button and not room.is_hidden(flags)): $ key_room += 1 use room_button(room, cur_room, key_room, there_are_ch) From 33a73bc8d1b9cc18736bd436394f9fddab7c7d2d Mon Sep 17 00:00:00 2001 From: Black Ram <67595890+BlackRam-oss@users.noreply.github.com> Date: Mon, 29 Jan 2024 10:36:40 +0100 Subject: [PATCH 2/7] Refactor button action picture transform --- game/nqtr_screens/screens_nqtr_component.rpy | 2 +- game/screens_style | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/game/nqtr_screens/screens_nqtr_component.rpy b/game/nqtr_screens/screens_nqtr_component.rpy index 3f98407..72f73a8 100644 --- a/game/nqtr_screens/screens_nqtr_component.rpy +++ b/game/nqtr_screens/screens_nqtr_component.rpy @@ -63,7 +63,7 @@ screen action_picture_in_background(act): if renpy.variant("pc"): tooltip act.name if act.picture_in_background_selected == act.picture_in_background: - at nqtr_button_action_picture_transform + at nqtr_button_picture_transform screen action_talk_button(conversation, background): python: diff --git a/game/screens_style b/game/screens_style index 5dca4f1..7e0c1a5 160000 --- a/game/screens_style +++ b/game/screens_style @@ -1 +1 @@ -Subproject commit 5dca4f1cc876122188e221f10b3d736f476a8b27 +Subproject commit 7e0c1a500181291aed063c0be921298c3abed1c4 From 57d3cb83914ddb559c1b89381c8cc390be5bfb97 Mon Sep 17 00:00:00 2001 From: Black Ram <67595890+BlackRam-oss@users.noreply.github.com> Date: Mon, 29 Jan 2024 10:37:02 +0100 Subject: [PATCH 3/7] Add room_picture_in_background screen and update room_navigation screen --- game/nqtr_screens/screens_nqtr.rpy | 4 +++- game/nqtr_screens/screens_nqtr_component.rpy | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/game/nqtr_screens/screens_nqtr.rpy b/game/nqtr_screens/screens_nqtr.rpy index 46127d2..79b0885 100644 --- a/game/nqtr_screens/screens_nqtr.rpy +++ b/game/nqtr_screens/screens_nqtr.rpy @@ -17,8 +17,10 @@ screen room_navigation(): use location_button(location) else: - # Action wich Picture in background + # Action and Room with Picture in background for room in rooms: + if rooms.is_picture_in_background and not room.is_hidden(flags = flags): + use room_picture_in_background(room) # Adds the button list of possible actions in that room if (cur_room and room.id == cur_room.id and not room.id in closed_rooms): for act in current_picture_in_background_actions(actions= actions | df_actions, room = room, now_hour = tm.hour , current_day = tm.day, tm = tm, flags = flags): diff --git a/game/nqtr_screens/screens_nqtr_component.rpy b/game/nqtr_screens/screens_nqtr_component.rpy index 72f73a8..febd536 100644 --- a/game/nqtr_screens/screens_nqtr_component.rpy +++ b/game/nqtr_screens/screens_nqtr_component.rpy @@ -223,3 +223,19 @@ screen room_button(room, cur_room, key_room, find_ch = False): key str(key_room) action room_action elif key_room == 10: key str(0) action room_action + +screen room_picture_in_background(room): + imagebutton: + align (room.xalign, room.yalign) + idle room.picture_in_background + hover room.picture_in_background_selected + focus_mask True + action [ + SetVariable('prev_room', cur_room), + SetVariable('cur_room', room), + Call("after_return_from_room_navigation", label_name_to_call = "change_room"), + ] + if renpy.variant("pc"): + tooltip room.name + if room.picture_in_background_selected == room.picture_in_background: + at nqtr_button_picture_transform From c56483c55efc6a5e46c59efc6ad22f16d0a2a758 Mon Sep 17 00:00:00 2001 From: Black Ram <67595890+BlackRam-oss@users.noreply.github.com> Date: Mon, 29 Jan 2024 10:48:55 +0100 Subject: [PATCH 4/7] wiki --- wiki | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wiki b/wiki index d34de92..b7798bb 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit d34de92ec2ac4a227d9d6043c72beb2e8a352ac5 +Subproject commit b7798bb8ff784bd0c3f6cdaa45918642a342d986 From 7947b77ef8c1014a5edf3b63109c496503e14ef2 Mon Sep 17 00:00:00 2001 From: Black Ram <67595890+BlackRam-oss@users.noreply.github.com> Date: Mon, 29 Jan 2024 10:51:02 +0100 Subject: [PATCH 5/7] Fix import statement in conversation.py and locals.py --- pythonpackages/nqtr/conversation.py | 2 +- pythonpackages/nqtr/locals.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pythonpackages/nqtr/conversation.py b/pythonpackages/nqtr/conversation.py index a9ccecb..565f953 100644 --- a/pythonpackages/nqtr/conversation.py +++ b/pythonpackages/nqtr/conversation.py @@ -53,7 +53,7 @@ def __init__( if len(characters) == 0: log_error( f"Conversation {self.name} has no characters. This not work.", - filename_line="pythonpackages/nqtr/action_talk.py:Conversation.__init__", + filename_line="pythonpackages/nqtr/conversation.py:Conversation.__init__", ) self.characters = characters self.conversation_background = conversation_background diff --git a/pythonpackages/nqtr/locals.py b/pythonpackages/nqtr/locals.py index f645544..377cc79 100644 --- a/pythonpackages/nqtr/locals.py +++ b/pythonpackages/nqtr/locals.py @@ -23,7 +23,7 @@ "Act", "clear_expired_actions", "current_actions", - # action_talk + # conversation "Conversation", # button "Button", From d0a3ebfce1e87856b1385234e82d048651f3294e Mon Sep 17 00:00:00 2001 From: Black Ram <67595890+BlackRam-oss@users.noreply.github.com> Date: Mon, 29 Jan 2024 10:59:51 +0100 Subject: [PATCH 6/7] fix --- game/nqtr_screens/screens_nqtr.rpy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/game/nqtr_screens/screens_nqtr.rpy b/game/nqtr_screens/screens_nqtr.rpy index 79b0885..74dcd2c 100644 --- a/game/nqtr_screens/screens_nqtr.rpy +++ b/game/nqtr_screens/screens_nqtr.rpy @@ -19,7 +19,7 @@ screen room_navigation(): else: # Action and Room with Picture in background for room in rooms: - if rooms.is_picture_in_background and not room.is_hidden(flags = flags): + if room.is_picture_in_background and not room.is_hidden(flags = flags): use room_picture_in_background(room) # Adds the button list of possible actions in that room if (cur_room and room.id == cur_room.id and not room.id in closed_rooms): From 87d94b48a0ec6553c1c59c792f9a10dfd56d1fcc Mon Sep 17 00:00:00 2001 From: Black Ram <67595890+BlackRam-oss@users.noreply.github.com> Date: Mon, 29 Jan 2024 11:10:48 +0100 Subject: [PATCH 7/7] Add conversation functionality to room navigation --- game/nqtr_screens/screens_nqtr.rpy | 13 ++--- game/nqtr_screens/screens_nqtr_component.rpy | 55 ++++++++++---------- pythonpackages/nqtr/conversation_fun.py | 38 ++++++++++++++ 3 files changed, 73 insertions(+), 33 deletions(-) create mode 100644 pythonpackages/nqtr/conversation_fun.py diff --git a/game/nqtr_screens/screens_nqtr.rpy b/game/nqtr_screens/screens_nqtr.rpy index 74dcd2c..56d7259 100644 --- a/game/nqtr_screens/screens_nqtr.rpy +++ b/game/nqtr_screens/screens_nqtr.rpy @@ -2,6 +2,7 @@ init python: from pythonpackages.nqtr.navigation import is_closed_room from pythonpackages.nqtr.routine import commitment_background from pythonpackages.nqtr.action import current_button_actions, current_picture_in_background_actions + from pythonpackages.nqtr.conversation_fun import current_button_conversations, current_picture_in_background_conversations screen room_navigation(): modal True @@ -25,6 +26,10 @@ screen room_navigation(): if (cur_room and room.id == cur_room.id and not room.id in closed_rooms): for act in current_picture_in_background_actions(actions= actions | df_actions, room = room, now_hour = tm.hour , current_day = tm.day, tm = tm, flags = flags): use action_picture_in_background(act) + # Talk + # Adds a talk for each ch (NPC) and at the talk interval adds the icon for each secondary ch + for conversation, comm in current_picture_in_background_conversations(commitments_in_cur_location, room, cur_room): + use conversation_picture_in_background(conversation, comm.conversation_background(conversation.character)) # Rooms use room_button_list(rooms, commitments_in_cur_location) @@ -42,12 +47,8 @@ screen room_navigation(): # Talk # Adds a talk for each ch (NPC) and at the talk interval adds the icon for each secondary ch - for comm in commitments_in_cur_location.values(): - if (cur_room and comm and room.id == comm.room_id and room.id == cur_room.id): - # Insert in talk for every ch, main in that room - for conversation in comm.conversations: - if (conversation): - use action_talk_button(conversation, comm.conversation_background(conversation.character)) + for conversation, comm in current_button_conversations(commitments_in_cur_location, room, cur_room): + use conversation_button(conversation, comm.conversation_background(conversation.character)) # Fixed button to wait use wait_button() diff --git a/game/nqtr_screens/screens_nqtr_component.rpy b/game/nqtr_screens/screens_nqtr_component.rpy index febd536..e2376e9 100644 --- a/game/nqtr_screens/screens_nqtr_component.rpy +++ b/game/nqtr_screens/screens_nqtr_component.rpy @@ -39,6 +39,18 @@ screen time_text(tm, show_wait_button = False): # Fixed button to wait use wait_button(small = True) +screen button_picture_in_background(button, my_actions = []): + imagebutton: + align (button.xalign, button.yalign) + idle button.picture_in_background + hover button.picture_in_background_selected + focus_mask True + action my_actions + if renpy.variant("pc"): + tooltip button.name + if button.picture_in_background_selected == button.picture_in_background: + at nqtr_button_picture_transform + screen action_button(act): imagebutton: idle act.button_icon @@ -52,20 +64,11 @@ screen action_button(act): at nqtr_button_action_transform screen action_picture_in_background(act): - imagebutton: - align (act.xalign, act.yalign) - idle act.picture_in_background - hover act.picture_in_background_selected - focus_mask True - action [ - Call("after_return_from_room_navigation", label_name_to_call = act.label_name), - ] - if renpy.variant("pc"): - tooltip act.name - if act.picture_in_background_selected == act.picture_in_background: - at nqtr_button_picture_transform + use button_picture_in_background(act, [ + Call("after_return_from_room_navigation", label_name_to_call = act.label_name), + ]) -screen action_talk_button(conversation, background): +screen conversation_button(conversation, background): python: my_action = [ SetVariable('current_conversation_character', conversation.character), @@ -92,6 +95,13 @@ screen action_talk_button(conversation, background): use character_icon_screen(conversation.character_icon, my_action) +screen conversation_picture_in_background(conversation): + use button_picture_in_background(conversation, [ + SetVariable('current_conversation_character', conversation.character), + SetVariable('conversation_image', background), + Call("after_return_from_room_navigation", label_name_to_call = conversation.label_name), + ]) + screen location_button(location): if (location.map_id == cur_map_id and not location.is_hidden(flags = flags)): vbox: @@ -225,17 +235,8 @@ screen room_button(room, cur_room, key_room, find_ch = False): key str(0) action room_action screen room_picture_in_background(room): - imagebutton: - align (room.xalign, room.yalign) - idle room.picture_in_background - hover room.picture_in_background_selected - focus_mask True - action [ - SetVariable('prev_room', cur_room), - SetVariable('cur_room', room), - Call("after_return_from_room_navigation", label_name_to_call = "change_room"), - ] - if renpy.variant("pc"): - tooltip room.name - if room.picture_in_background_selected == room.picture_in_background: - at nqtr_button_picture_transform + use button_picture_in_background(room, [ + SetVariable('prev_room', cur_room), + SetVariable('cur_room', room), + Call("after_return_from_room_navigation", label_name_to_call = "change_room"), + ]) diff --git a/pythonpackages/nqtr/conversation_fun.py b/pythonpackages/nqtr/conversation_fun.py new file mode 100644 index 0000000..b7e8759 --- /dev/null +++ b/pythonpackages/nqtr/conversation_fun.py @@ -0,0 +1,38 @@ +from pythonpackages.nqtr.conversation import Conversation +from pythonpackages.nqtr.navigation import Room +from pythonpackages.nqtr.routine import Commitment +from pythonpackages.renpy_utility.renpy_custom_log import * +from pythonpackages.renpy_utility.utility import * +import renpy.character as character + + +def current_button_conversations( + commitments_in_cur_location: dict[character.ADVCharacter, Commitment], + room: Room, + cur_room: Room, +) -> list[tuple[Conversation, Commitment]]: + """Return a list of conversation buttons for the current room and available for the current time""" + conversations: list[tuple[Conversation, Commitment]] = [] + for comm in commitments_in_cur_location.values(): + if cur_room and comm and room.id == comm.room_id and room.id == cur_room.id: + # Insert in talk for every ch, main in that room + for conversation in comm.conversations: + if conversation: + conversations.append((conversation, comm)) + return conversations + + +def current_picture_in_background_conversations( + commitments_in_cur_location: dict[character.ADVCharacter, Commitment], + room: Room, + cur_room: Room, +) -> list[tuple[Conversation, Commitment]]: + """Return a list of conversation picture in background for the current room and available for the current time""" + conversations: list[tuple[Conversation, Commitment]] = [] + for comm in commitments_in_cur_location.values(): + if cur_room and comm and room.id == comm.room_id and room.id == cur_room.id: + # Insert in talk for every ch, main in that room + for conversation in comm.conversations: + if conversation and conversation.is_picture_in_background: + conversations.append((conversation, comm)) + return conversations