From 1a09e1c77643890897faccd856d4d84bbb37b354 Mon Sep 17 00:00:00 2001 From: Nio Date: Sat, 17 Jul 2021 16:37:32 +1000 Subject: [PATCH] colors muted --- game/gui.rpy | 68 ++- game/gui/gallery/unlocked_cg_button_cover.png | Bin 0 -> 23860 bytes game/screens.rpy | 555 ++++++------------ game/script.rpy | 61 +- game/script/2.fourth-day-of-school.rpy | 4 +- game/src/cg_gallery.rpy | 100 ++++ 6 files changed, 367 insertions(+), 421 deletions(-) create mode 100644 game/gui/gallery/unlocked_cg_button_cover.png create mode 100644 game/src/cg_gallery.rpy diff --git a/game/gui.rpy b/game/gui.rpy index 82cd8e6..4e06c17 100644 --- a/game/gui.rpy +++ b/game/gui.rpy @@ -23,10 +23,10 @@ init python: ## The colors of text in the interface. ## An accent color used throughout the interface to label and highlight text. -define gui.accent_color = '#a2029f' +define gui.accent_color = '#A2029F' ## The color used for a text button when it is neither selected nor hovered. -define gui.idle_color = '#d5d507' +define gui.idle_color = '#D5D507' ## The small color is used for small text, which needs to be brighter/darker to ## achieve the same effect. @@ -47,10 +47,19 @@ define gui.insensitive_color = '#8888887f' define gui.muted_color = '#3d1466' define gui.hover_muted_color = '#5b1e99' -## The colors used for dialogue and menu choice text. +## The colors used for dialogue and menu choice text define gui.text_color = '#ffffff' +#define gui.text_color_outline = '#00000000' + define gui.interface_text_color = '#ffffff' +## Default font outline color +define gui.default_outline = '#000' + +## Namebox outline color +define gui.name_outline = '#000000dd' + +define gui.main_menu_color = '#FFF' ## Fonts and Font Sizes ######################################################## @@ -64,23 +73,30 @@ define gui.name_text_font = "gui/FallingSky.otf" define gui.interface_text_font = "gui/FallingSky.otf" ## The size of normal dialogue text. -define gui.text_size = 40 +define gui.text_size = 42 +#define gui.text_outlines = [ (absolute(0.5), gui.text_color_outline, 0, 0) ] ## The size of character names. define gui.name_text_size = 45 +define gui.name_text_outlines = [ (absolute(1.5), gui.name_outline, 0, 0) ] ## The size of text in the game's user interface. define gui.interface_text_size = 33 +define gui.interface_text_outlines = [ (1, gui.default_outline, 0, 0) ] ## The size of labels in the game's user interface. define gui.label_text_size = 36 +define gui.label_text_outlines = [ (2, gui.default_outline, 0, 0) ] ## The size of text on the notify screen. define gui.notify_text_size = 24 +#define gui.notify_text_outlines = [ (2, gui.default_outline, 0, 0) ] ## The size of the game's title. define gui.title_text_size = 75 +#define gui.title_text_outlines = [ (2, gui.default_outline, 0, 0) ] +define gui.main_menu_text_size = 60 ## Main and Game Menus ######################################################### @@ -105,12 +121,14 @@ define gui.textbox_yalign = 1.0 ## The placement of the speaking character's name, relative to the textbox. ## These can be a whole number of pixels from the left or top, or 0.5 to center. -define gui.name_xpos = 285 -define gui.name_ypos = -90 +define gui.name_xpos = 350 +define gui.name_ypos = -85 + +define gui.name_large_xpos = 395 ## The horizontal alignment of the character's name. This can be 0.0 for left- ## aligned, 0.5 for centered, and 1.0 for right-aligned. -define gui.name_xalign = 0.0 +define gui.name_xalign = 0.5 ## The width, height, and borders of the box containing the character's name, or ## None to automatically size it. @@ -125,21 +143,21 @@ define gui.namebox_borders = Borders(5, 5, 5, 5) ## background of the namebox will be scaled. define gui.namebox_tile = False - ## The placement of dialogue relative to the textbox. These can be a whole ## number of pixels relative to the left or top side of the textbox, or 0.5 to ## center. #To make the text with the characters align to the normal text, I set this to match up and make it "just werk". It is a horrible, hacky fix, but werks none the less. I hope this fix is so bad that I never get to write gui code ever again. -define gui.dialogue_xpos = 365 -define gui.dialogue_ypos = 47 - -## The maximum width of dialogue text, in pixels. -define gui.dialogue_width = 1116 +#It's still bad but it could be legitmately worse +define gui.dialogue_ypos = 20 +define gui.dialogue_xpos = 220 +define gui.dialogue_width = 1460 ## The horizontal alignment of the dialogue text. This can be 0.0 for left- ## aligned, 0.5 for centered, and 1.0 for right-aligned. define gui.dialogue_text_xalign = 0.0 +define gui.window_yoffset = 0 +define gui.input_yoffset = 0 ## Buttons ##################################################################### ## @@ -428,18 +446,23 @@ init python: if renpy.variant("small"): ## Font sizes. - gui.text_size = 45 - gui.name_text_size = 54 + gui.text_size = 44 + gui.name_text_size = 48 gui.notify_text_size = 38 gui.interface_text_size = 45 gui.button_text_size = 45 gui.label_text_size = 51 + ## Namebox + gui.name_xpos = 345 + gui.name_ypos = -85 + ## Adjust the location of the textbox. - gui.textbox_height = 360 - gui.name_xpos = 120 - gui.text_xpos = 135 - gui.text_width = 1650 + gui.dialogue_ypos = 20 + gui.dialogue_xpos = 240 + gui.dialogue_width = 1460 + gui.window_yoffset = -75 + ## Change the size and spacing of various things. gui.slider_size = 54 @@ -453,10 +476,6 @@ init python: gui.quick_button_text_size = 30 - ## File button layout. - gui.file_slot_cols = 2 - gui.file_slot_rows = 2 - ## NVL-mode. gui.nvl_height = 255 @@ -474,4 +493,7 @@ init python: gui.nvl_button_xpos = 30 + ## Input, OSK, very specific + if renpy.variant("small") or renpy.variant("touch"): + gui.input_yoffset = -625 diff --git a/game/gui/gallery/unlocked_cg_button_cover.png b/game/gui/gallery/unlocked_cg_button_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..97815194b506bf0bfc64e300bc5d7e3ae9e16a5a GIT binary patch literal 23860 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