first commit
This commit is contained in:
commit
946e000073
29
.gitignore
vendored
Normal file
29
.gitignore
vendored
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
# Code Only
|
||||||
|
*.ttf
|
||||||
|
*.jpg
|
||||||
|
*.png
|
||||||
|
*.ogg
|
||||||
|
|
||||||
|
# Ren'Py
|
||||||
|
saves/
|
||||||
|
tmp/
|
||||||
|
|
||||||
|
# Compiled source
|
||||||
|
*.pyc
|
||||||
|
*.rpyb
|
||||||
|
*.rpyc
|
||||||
|
*.rpymc
|
||||||
|
__pycache__/
|
||||||
|
cache/
|
||||||
|
|
||||||
|
# Log files
|
||||||
|
errors.txt
|
||||||
|
files.txt
|
||||||
|
log.txt
|
||||||
|
traceback.txt
|
||||||
|
|
||||||
|
# Generated by MacOS
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# Vim
|
||||||
|
*.swp
|
8
.vscode/settings.json
vendored
Normal file
8
.vscode/settings.json
vendored
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"files.exclude": {
|
||||||
|
"**/*.rpyc": true,
|
||||||
|
"**/*.rpa": true,
|
||||||
|
"**/*.rpymc": true,
|
||||||
|
"**/cache/": true
|
||||||
|
}
|
||||||
|
}
|
135
game/.vscode/settings.json
vendored
Normal file
135
game/.vscode/settings.json
vendored
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
{
|
||||||
|
"files.exclude": {
|
||||||
|
"**/*.rpyc": true,
|
||||||
|
"**/*.rpa": true,
|
||||||
|
"**/*.rpymc": true,
|
||||||
|
"**/cache/": true
|
||||||
|
},
|
||||||
|
"editor.tokenColorCustomizations": {
|
||||||
|
"textMateRules": [
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.plain",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.i",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "italic"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.b",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "bold"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": [
|
||||||
|
"renpy.meta.u",
|
||||||
|
"renpy.meta.a"
|
||||||
|
],
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "underline"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.s",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "strikethrough"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.i renpy.meta.b",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "italic bold"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.i renpy.meta.u",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "italic underline"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.i renpy.meta.s",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "italic strikethrough"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.b renpy.meta.u",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "bold underline"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.b renpy.meta.s",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "bold strikethrough"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.u renpy.meta.s",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "underline strikethrough"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.i renpy.meta.b renpy.meta.u",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "italic bold underline"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.i renpy.meta.b renpy.meta.s",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "italic bold strikethrough"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.i renpy.meta.u renpy.meta.s",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "italic underline strikethrough"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.b renpy.meta.u renpy.meta.s",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "bold underline strikethrough"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.i renpy.meta.b renpy.meta.u renpy.meta.s",
|
||||||
|
"settings": {
|
||||||
|
"fontStyle": "italic bold underline strikethrough"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.color.text",
|
||||||
|
"settings": {
|
||||||
|
"foreground": "#ffffff"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.color.#fff",
|
||||||
|
"settings": {
|
||||||
|
"foreground": "#fff"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.color.#fcc",
|
||||||
|
"settings": {
|
||||||
|
"foreground": "#fcc"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scope": "renpy.meta.color.#cfc",
|
||||||
|
"settings": {
|
||||||
|
"foreground": "#cfc"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
480
game/gui.rpy
Normal file
480
game/gui.rpy
Normal file
|
@ -0,0 +1,480 @@
|
||||||
|
################################################################################
|
||||||
|
## Initialization
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
## The init offset statement causes the initialization statements in this file
|
||||||
|
## to run before init statements in any other file.
|
||||||
|
init offset = -2
|
||||||
|
|
||||||
|
## Calling gui.init resets the styles to sensible default values, and sets the
|
||||||
|
## width and height of the game.
|
||||||
|
init python:
|
||||||
|
gui.init(1920, 1080)
|
||||||
|
|
||||||
|
## Enable checks for invalid or unstable properties in screens or transforms
|
||||||
|
define config.check_conflicting_properties = True
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## GUI Configuration Variables
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
## Colors ######################################################################
|
||||||
|
##
|
||||||
|
## The colors of text in the interface.
|
||||||
|
|
||||||
|
## An accent color used throughout the interface to label and highlight text.
|
||||||
|
define gui.accent_color = '#0099cc'
|
||||||
|
|
||||||
|
## The color used for a text button when it is neither selected nor hovered.
|
||||||
|
define gui.idle_color = '#888888'
|
||||||
|
|
||||||
|
## The small color is used for small text, which needs to be brighter/darker to
|
||||||
|
## achieve the same effect.
|
||||||
|
define gui.idle_small_color = '#aaaaaa'
|
||||||
|
|
||||||
|
## The color that is used for buttons and bars that are hovered.
|
||||||
|
define gui.hover_color = '#66c1e0'
|
||||||
|
|
||||||
|
## The color used for a text button when it is selected but not focused. A
|
||||||
|
## button is selected if it is the current screen or preference value.
|
||||||
|
define gui.selected_color = '#ffffff'
|
||||||
|
|
||||||
|
## The color used for a text button when it cannot be selected.
|
||||||
|
define gui.insensitive_color = '#8888887f'
|
||||||
|
|
||||||
|
## Colors used for the portions of bars that are not filled in. These are not
|
||||||
|
## used directly, but are used when re-generating bar image files.
|
||||||
|
define gui.muted_color = '#003d51'
|
||||||
|
define gui.hover_muted_color = '#005b7a'
|
||||||
|
|
||||||
|
## The colors used for dialogue and menu choice text.
|
||||||
|
define gui.text_color = '#ffffff'
|
||||||
|
define gui.interface_text_color = '#ffffff'
|
||||||
|
|
||||||
|
|
||||||
|
## Fonts and Font Sizes ########################################################
|
||||||
|
|
||||||
|
## The font used for in-game text.
|
||||||
|
define gui.text_font = "sarasa-mono-sc-regular.ttf"
|
||||||
|
|
||||||
|
## The font used for character names.
|
||||||
|
define gui.name_text_font = "sarasa-mono-sc-regular.ttf"
|
||||||
|
|
||||||
|
## The font used for out-of-game text.
|
||||||
|
define gui.interface_text_font = "sarasa-mono-sc-regular.ttf"
|
||||||
|
|
||||||
|
## The size of normal dialogue text.
|
||||||
|
define gui.text_size = 33
|
||||||
|
|
||||||
|
## The size of character names.
|
||||||
|
define gui.name_text_size = 45
|
||||||
|
|
||||||
|
## The size of text in the game's user interface.
|
||||||
|
define gui.interface_text_size = 33
|
||||||
|
|
||||||
|
## The size of labels in the game's user interface.
|
||||||
|
define gui.label_text_size = 36
|
||||||
|
|
||||||
|
## The size of text on the notify screen.
|
||||||
|
define gui.notify_text_size = 24
|
||||||
|
|
||||||
|
## The size of the game's title.
|
||||||
|
define gui.title_text_size = 75
|
||||||
|
|
||||||
|
|
||||||
|
## Main and Game Menus #########################################################
|
||||||
|
|
||||||
|
## The images used for the main and game menus.
|
||||||
|
define gui.main_menu_background = "gui/main_menu.png"
|
||||||
|
define gui.game_menu_background = "gui/game_menu.png"
|
||||||
|
|
||||||
|
|
||||||
|
## Dialogue ####################################################################
|
||||||
|
##
|
||||||
|
## These variables control how dialogue is displayed on the screen one line at a
|
||||||
|
## time.
|
||||||
|
|
||||||
|
## The height of the textbox containing dialogue.
|
||||||
|
define gui.textbox_height = 278
|
||||||
|
|
||||||
|
## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is
|
||||||
|
## center, and 1.0 is the bottom.
|
||||||
|
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 = 360
|
||||||
|
define gui.name_ypos = 0
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
## The width, height, and borders of the box containing the character's name, or
|
||||||
|
## None to automatically size it.
|
||||||
|
define gui.namebox_width = None
|
||||||
|
define gui.namebox_height = None
|
||||||
|
|
||||||
|
## The borders of the box containing the character's name, in left, top, right,
|
||||||
|
## bottom order.
|
||||||
|
define gui.namebox_borders = Borders(5, 5, 5, 5)
|
||||||
|
|
||||||
|
## If True, the background of the namebox will be tiled, if False, the
|
||||||
|
## 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.
|
||||||
|
define gui.dialogue_xpos = 402
|
||||||
|
define gui.dialogue_ypos = 75
|
||||||
|
|
||||||
|
## The maximum width of dialogue text, in pixels.
|
||||||
|
define gui.dialogue_width = 1116
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
|
||||||
|
## Buttons #####################################################################
|
||||||
|
##
|
||||||
|
## These variables, along with the image files in gui/button, control aspects of
|
||||||
|
## how buttons are displayed.
|
||||||
|
|
||||||
|
## The width and height of a button, in pixels. If None, Ren'Py computes a size.
|
||||||
|
define gui.button_width = None
|
||||||
|
define gui.button_height = None
|
||||||
|
|
||||||
|
## The borders on each side of the button, in left, top, right, bottom order.
|
||||||
|
define gui.button_borders = Borders(6, 6, 6, 6)
|
||||||
|
|
||||||
|
## If True, the background image will be tiled. If False, the background image
|
||||||
|
## will be linearly scaled.
|
||||||
|
define gui.button_tile = False
|
||||||
|
|
||||||
|
## The font used by the button.
|
||||||
|
define gui.button_text_font = gui.interface_text_font
|
||||||
|
|
||||||
|
## The size of the text used by the button.
|
||||||
|
define gui.button_text_size = gui.interface_text_size
|
||||||
|
|
||||||
|
## The color of button text in various states.
|
||||||
|
define gui.button_text_idle_color = gui.idle_color
|
||||||
|
define gui.button_text_hover_color = gui.hover_color
|
||||||
|
define gui.button_text_selected_color = gui.selected_color
|
||||||
|
define gui.button_text_insensitive_color = gui.insensitive_color
|
||||||
|
|
||||||
|
## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0
|
||||||
|
## is right).
|
||||||
|
define gui.button_text_xalign = 0.0
|
||||||
|
|
||||||
|
|
||||||
|
## These variables override settings for different kinds of buttons. Please see
|
||||||
|
## the gui documentation for the kinds of buttons available, and what each is
|
||||||
|
## used for.
|
||||||
|
##
|
||||||
|
## These customizations are used by the default interface:
|
||||||
|
|
||||||
|
define gui.radio_button_borders = Borders(27, 6, 6, 6)
|
||||||
|
|
||||||
|
define gui.check_button_borders = Borders(27, 6, 6, 6)
|
||||||
|
|
||||||
|
define gui.confirm_button_text_xalign = 0.5
|
||||||
|
|
||||||
|
define gui.page_button_borders = Borders(15, 6, 15, 6)
|
||||||
|
|
||||||
|
define gui.quick_button_borders = Borders(15, 6, 15, 0)
|
||||||
|
define gui.quick_button_text_size = 21
|
||||||
|
define gui.quick_button_text_idle_color = gui.idle_small_color
|
||||||
|
define gui.quick_button_text_selected_color = gui.accent_color
|
||||||
|
|
||||||
|
## You can also add your own customizations, by adding properly-named variables.
|
||||||
|
## For example, you can uncomment the following line to set the width of a
|
||||||
|
## navigation button.
|
||||||
|
|
||||||
|
# define gui.navigation_button_width = 250
|
||||||
|
|
||||||
|
|
||||||
|
## Choice Buttons ##############################################################
|
||||||
|
##
|
||||||
|
## Choice buttons are used in the in-game menus.
|
||||||
|
|
||||||
|
define gui.choice_button_width = 1185
|
||||||
|
define gui.choice_button_height = None
|
||||||
|
define gui.choice_button_tile = False
|
||||||
|
define gui.choice_button_borders = Borders(150, 8, 150, 8)
|
||||||
|
define gui.choice_button_text_font = gui.text_font
|
||||||
|
define gui.choice_button_text_size = gui.text_size
|
||||||
|
define gui.choice_button_text_xalign = 0.5
|
||||||
|
define gui.choice_button_text_idle_color = '#888888'
|
||||||
|
define gui.choice_button_text_hover_color = "#ffffff"
|
||||||
|
define gui.choice_button_text_insensitive_color = '#8888887f'
|
||||||
|
|
||||||
|
|
||||||
|
## File Slot Buttons ###########################################################
|
||||||
|
##
|
||||||
|
## A file slot button is a special kind of button. It contains a thumbnail
|
||||||
|
## image, and text describing the contents of the save slot. A save slot uses
|
||||||
|
## image files in gui/button, like the other kinds of buttons.
|
||||||
|
|
||||||
|
## The save slot button.
|
||||||
|
define gui.slot_button_width = 414
|
||||||
|
define gui.slot_button_height = 309
|
||||||
|
define gui.slot_button_borders = Borders(15, 15, 15, 15)
|
||||||
|
define gui.slot_button_text_size = 21
|
||||||
|
define gui.slot_button_text_xalign = 0.5
|
||||||
|
define gui.slot_button_text_idle_color = gui.idle_small_color
|
||||||
|
define gui.slot_button_text_selected_idle_color = gui.selected_color
|
||||||
|
define gui.slot_button_text_selected_hover_color = gui.hover_color
|
||||||
|
|
||||||
|
## The width and height of thumbnails used by the save slots.
|
||||||
|
define config.thumbnail_width = 384
|
||||||
|
define config.thumbnail_height = 216
|
||||||
|
|
||||||
|
## The number of columns and rows in the grid of save slots.
|
||||||
|
define gui.file_slot_cols = 3
|
||||||
|
define gui.file_slot_rows = 2
|
||||||
|
|
||||||
|
|
||||||
|
## Positioning and Spacing #####################################################
|
||||||
|
##
|
||||||
|
## These variables control the positioning and spacing of various user interface
|
||||||
|
## elements.
|
||||||
|
|
||||||
|
## The position of the left side of the navigation buttons, relative to the left
|
||||||
|
## side of the screen.
|
||||||
|
define gui.navigation_xpos = 60
|
||||||
|
|
||||||
|
## The vertical position of the skip indicator.
|
||||||
|
define gui.skip_ypos = 15
|
||||||
|
|
||||||
|
## The vertical position of the notify screen.
|
||||||
|
define gui.notify_ypos = 68
|
||||||
|
|
||||||
|
## The spacing between menu choices.
|
||||||
|
define gui.choice_spacing = 33
|
||||||
|
|
||||||
|
## Buttons in the navigation section of the main and game menus.
|
||||||
|
define gui.navigation_spacing = 6
|
||||||
|
|
||||||
|
## Controls the amount of spacing between preferences.
|
||||||
|
define gui.pref_spacing = 15
|
||||||
|
|
||||||
|
## Controls the amount of spacing between preference buttons.
|
||||||
|
define gui.pref_button_spacing = 0
|
||||||
|
|
||||||
|
## The spacing between file page buttons.
|
||||||
|
define gui.page_spacing = 0
|
||||||
|
|
||||||
|
## The spacing between file slots.
|
||||||
|
define gui.slot_spacing = 15
|
||||||
|
|
||||||
|
## The position of the main menu text.
|
||||||
|
define gui.main_menu_text_xalign = 1.0
|
||||||
|
|
||||||
|
|
||||||
|
## Frames ######################################################################
|
||||||
|
##
|
||||||
|
## These variables control the look of frames that can contain user interface
|
||||||
|
## components when an overlay or window is not present.
|
||||||
|
|
||||||
|
## Generic frames.
|
||||||
|
define gui.frame_borders = Borders(6, 6, 6, 6)
|
||||||
|
|
||||||
|
## The frame that is used as part of the confirm screen.
|
||||||
|
define gui.confirm_frame_borders = Borders(60, 60, 60, 60)
|
||||||
|
|
||||||
|
## The frame that is used as part of the skip screen.
|
||||||
|
define gui.skip_frame_borders = Borders(24, 8, 75, 8)
|
||||||
|
|
||||||
|
## The frame that is used as part of the notify screen.
|
||||||
|
define gui.notify_frame_borders = Borders(24, 8, 60, 8)
|
||||||
|
|
||||||
|
## Should frame backgrounds be tiled?
|
||||||
|
define gui.frame_tile = False
|
||||||
|
|
||||||
|
|
||||||
|
## Bars, Scrollbars, and Sliders ###############################################
|
||||||
|
##
|
||||||
|
## These control the look and size of bars, scrollbars, and sliders.
|
||||||
|
##
|
||||||
|
## The default GUI only uses sliders and vertical scrollbars. All of the other
|
||||||
|
## bars are only used in creator-written screens.
|
||||||
|
|
||||||
|
## The height of horizontal bars, scrollbars, and sliders. The width of vertical
|
||||||
|
## bars, scrollbars, and sliders.
|
||||||
|
define gui.bar_size = 38
|
||||||
|
define gui.scrollbar_size = 18
|
||||||
|
define gui.slider_size = 38
|
||||||
|
|
||||||
|
## True if bar images should be tiled. False if they should be linearly scaled.
|
||||||
|
define gui.bar_tile = False
|
||||||
|
define gui.scrollbar_tile = False
|
||||||
|
define gui.slider_tile = False
|
||||||
|
|
||||||
|
## Horizontal borders.
|
||||||
|
define gui.bar_borders = Borders(6, 6, 6, 6)
|
||||||
|
define gui.scrollbar_borders = Borders(6, 6, 6, 6)
|
||||||
|
define gui.slider_borders = Borders(6, 6, 6, 6)
|
||||||
|
|
||||||
|
## Vertical borders.
|
||||||
|
define gui.vbar_borders = Borders(6, 6, 6, 6)
|
||||||
|
define gui.vscrollbar_borders = Borders(6, 6, 6, 6)
|
||||||
|
define gui.vslider_borders = Borders(6, 6, 6, 6)
|
||||||
|
|
||||||
|
## What to do with unscrollable scrollbars in the gui. "hide" hides them, while
|
||||||
|
## None shows them.
|
||||||
|
define gui.unscrollable = "hide"
|
||||||
|
|
||||||
|
|
||||||
|
## History #####################################################################
|
||||||
|
##
|
||||||
|
## The history screen displays dialogue that the player has already dismissed.
|
||||||
|
|
||||||
|
## The number of blocks of dialogue history Ren'Py will keep.
|
||||||
|
define config.history_length = 250
|
||||||
|
|
||||||
|
## The height of a history screen entry, or None to make the height variable at
|
||||||
|
## the cost of performance.
|
||||||
|
define gui.history_height = 210
|
||||||
|
|
||||||
|
## Additional space to add between history screen entries.
|
||||||
|
define gui.history_spacing = 0
|
||||||
|
|
||||||
|
## The position, width, and alignment of the label giving the name of the
|
||||||
|
## speaking character.
|
||||||
|
define gui.history_name_xpos = 233
|
||||||
|
define gui.history_name_ypos = 0
|
||||||
|
define gui.history_name_width = 233
|
||||||
|
define gui.history_name_xalign = 1.0
|
||||||
|
|
||||||
|
## The position, width, and alignment of the dialogue text.
|
||||||
|
define gui.history_text_xpos = 255
|
||||||
|
define gui.history_text_ypos = 3
|
||||||
|
define gui.history_text_width = 1110
|
||||||
|
define gui.history_text_xalign = 0.0
|
||||||
|
|
||||||
|
|
||||||
|
## NVL-Mode ####################################################################
|
||||||
|
##
|
||||||
|
## The NVL-mode screen displays the dialogue spoken by NVL-mode characters.
|
||||||
|
|
||||||
|
## The borders of the background of the NVL-mode background window.
|
||||||
|
define gui.nvl_borders = Borders(0, 15, 0, 30)
|
||||||
|
|
||||||
|
## The maximum number of NVL-mode entries Ren'Py will display. When more entries
|
||||||
|
## than this are to be show, the oldest entry will be removed.
|
||||||
|
define gui.nvl_list_length = 6
|
||||||
|
|
||||||
|
## The height of an NVL-mode entry. Set this to None to have the entries
|
||||||
|
## dynamically adjust height.
|
||||||
|
define gui.nvl_height = 173
|
||||||
|
|
||||||
|
## The spacing between NVL-mode entries when gui.nvl_height is None, and between
|
||||||
|
## NVL-mode entries and an NVL-mode menu.
|
||||||
|
define gui.nvl_spacing = 15
|
||||||
|
|
||||||
|
## The position, width, and alignment of the label giving the name of the
|
||||||
|
## speaking character.
|
||||||
|
define gui.nvl_name_xpos = 645
|
||||||
|
define gui.nvl_name_ypos = 0
|
||||||
|
define gui.nvl_name_width = 225
|
||||||
|
define gui.nvl_name_xalign = 1.0
|
||||||
|
|
||||||
|
## The position, width, and alignment of the dialogue text.
|
||||||
|
define gui.nvl_text_xpos = 675
|
||||||
|
define gui.nvl_text_ypos = 12
|
||||||
|
define gui.nvl_text_width = 885
|
||||||
|
define gui.nvl_text_xalign = 0.0
|
||||||
|
|
||||||
|
## The position, width, and alignment of nvl_thought text (the text said by the
|
||||||
|
## nvl_narrator character.)
|
||||||
|
define gui.nvl_thought_xpos = 360
|
||||||
|
define gui.nvl_thought_ypos = 0
|
||||||
|
define gui.nvl_thought_width = 1170
|
||||||
|
define gui.nvl_thought_xalign = 0.0
|
||||||
|
|
||||||
|
## The position of nvl menu_buttons.
|
||||||
|
define gui.nvl_button_xpos = 675
|
||||||
|
define gui.nvl_button_xalign = 0.0
|
||||||
|
|
||||||
|
|
||||||
|
## Localization ################################################################
|
||||||
|
|
||||||
|
## This controls where a line break is permitted. The default is suitable
|
||||||
|
## for most languages. A list of available values can be found at https://
|
||||||
|
## www.renpy.org/doc/html/style_properties.html#style-property-language
|
||||||
|
|
||||||
|
define gui.language = "unicode"
|
||||||
|
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
## Mobile devices
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
init python:
|
||||||
|
|
||||||
|
## This increases the size of the quick buttons to make them easier to touch
|
||||||
|
## on tablets and phones.
|
||||||
|
@gui.variant
|
||||||
|
def touch():
|
||||||
|
|
||||||
|
gui.quick_button_borders = Borders(60, 21, 60, 0)
|
||||||
|
|
||||||
|
## This changes the size and spacing of various GUI elements to ensure they
|
||||||
|
## are easily visible on phones.
|
||||||
|
@gui.variant
|
||||||
|
def small():
|
||||||
|
|
||||||
|
## Font sizes.
|
||||||
|
gui.text_size = 45
|
||||||
|
gui.name_text_size = 54
|
||||||
|
gui.notify_text_size = 38
|
||||||
|
gui.interface_text_size = 45
|
||||||
|
gui.button_text_size = 45
|
||||||
|
gui.label_text_size = 51
|
||||||
|
|
||||||
|
## Adjust the location of the textbox.
|
||||||
|
gui.textbox_height = 360
|
||||||
|
gui.name_xpos = 120
|
||||||
|
gui.dialogue_xpos = 135
|
||||||
|
gui.dialogue_width = 1650
|
||||||
|
|
||||||
|
## Change the size and spacing of various things.
|
||||||
|
gui.slider_size = 54
|
||||||
|
|
||||||
|
gui.choice_button_width = 1860
|
||||||
|
gui.choice_button_text_size = 45
|
||||||
|
|
||||||
|
gui.navigation_spacing = 30
|
||||||
|
gui.pref_button_spacing = 15
|
||||||
|
|
||||||
|
gui.history_height = 285
|
||||||
|
gui.history_text_width = 1035
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
gui.nvl_name_width = 458
|
||||||
|
gui.nvl_name_xpos = 488
|
||||||
|
|
||||||
|
gui.nvl_text_width = 1373
|
||||||
|
gui.nvl_text_xpos = 518
|
||||||
|
gui.nvl_text_ypos = 8
|
||||||
|
|
||||||
|
gui.nvl_thought_width = 1860
|
||||||
|
gui.nvl_thought_xpos = 30
|
||||||
|
|
||||||
|
gui.nvl_button_width = 1860
|
||||||
|
gui.nvl_button_xpos = 30
|
209
game/options.rpy
Normal file
209
game/options.rpy
Normal file
|
@ -0,0 +1,209 @@
|
||||||
|
## This file contains options that can be changed to customize your game.
|
||||||
|
##
|
||||||
|
## Lines beginning with two '#' marks are comments, and you shouldn't uncomment
|
||||||
|
## them. Lines beginning with a single '#' mark are commented-out code, and you
|
||||||
|
## may want to uncomment them when appropriate.
|
||||||
|
|
||||||
|
|
||||||
|
## Basics ######################################################################
|
||||||
|
|
||||||
|
## A human-readable name of the game. This is used to set the default window
|
||||||
|
## title, and shows up in the interface and error reports.
|
||||||
|
##
|
||||||
|
## The _() surrounding the string marks it as eligible for translation.
|
||||||
|
|
||||||
|
define config.name = _("我用Galgame摆烂了你的面试过程")
|
||||||
|
|
||||||
|
|
||||||
|
## Determines if the title given above is shown on the main menu screen. Set
|
||||||
|
## this to False to hide the title.
|
||||||
|
|
||||||
|
define gui.show_name = True
|
||||||
|
|
||||||
|
|
||||||
|
## The version of the game.
|
||||||
|
|
||||||
|
define config.version = "1.0"
|
||||||
|
|
||||||
|
|
||||||
|
## Text that is placed on the game's about screen. Place the text between the
|
||||||
|
## triple-quotes, and leave a blank line between paragraphs.
|
||||||
|
|
||||||
|
define gui.about = _p("""
|
||||||
|
""")
|
||||||
|
|
||||||
|
|
||||||
|
## A short name for the game used for executables and directories in the built
|
||||||
|
## distribution. This must be ASCII-only, and must not contain spaces, colons,
|
||||||
|
## or semicolons.
|
||||||
|
|
||||||
|
define build.name = "PineappleInterview"
|
||||||
|
|
||||||
|
|
||||||
|
## Sounds and music ############################################################
|
||||||
|
|
||||||
|
## These three variables control, among other things, which mixers are shown
|
||||||
|
## to the player by default. Setting one of these to False will hide the
|
||||||
|
## appropriate mixer.
|
||||||
|
|
||||||
|
define config.has_sound = True
|
||||||
|
define config.has_music = True
|
||||||
|
define config.has_voice = True
|
||||||
|
|
||||||
|
|
||||||
|
## To allow the user to play a test sound on the sound or voice channel,
|
||||||
|
## uncomment a line below and use it to set a sample sound to play.
|
||||||
|
|
||||||
|
# define config.sample_sound = "sample-sound.ogg"
|
||||||
|
# define config.sample_voice = "sample-voice.ogg"
|
||||||
|
|
||||||
|
|
||||||
|
## Uncomment the following line to set an audio file that will be played while
|
||||||
|
## the player is at the main menu. This file will continue playing into the
|
||||||
|
## game, until it is stopped or another file is played.
|
||||||
|
|
||||||
|
# define config.main_menu_music = "main-menu-theme.ogg"
|
||||||
|
|
||||||
|
|
||||||
|
## Transitions #################################################################
|
||||||
|
##
|
||||||
|
## These variables set transitions that are used when certain events occur.
|
||||||
|
## Each variable should be set to a transition, or None to indicate that no
|
||||||
|
## transition should be used.
|
||||||
|
|
||||||
|
## Entering or exiting the game menu.
|
||||||
|
|
||||||
|
define config.enter_transition = dissolve
|
||||||
|
define config.exit_transition = dissolve
|
||||||
|
|
||||||
|
|
||||||
|
## Between screens of the game menu.
|
||||||
|
|
||||||
|
define config.intra_transition = dissolve
|
||||||
|
|
||||||
|
|
||||||
|
## A transition that is used after a game has been loaded.
|
||||||
|
|
||||||
|
define config.after_load_transition = None
|
||||||
|
|
||||||
|
|
||||||
|
## Used when entering the main menu after the game has ended.
|
||||||
|
|
||||||
|
define config.end_game_transition = None
|
||||||
|
|
||||||
|
|
||||||
|
## A variable to set the transition used when the game starts does not exist.
|
||||||
|
## Instead, use a with statement after showing the initial scene.
|
||||||
|
|
||||||
|
|
||||||
|
## Window management ###########################################################
|
||||||
|
##
|
||||||
|
## This controls when the dialogue window is displayed. If "show", it is always
|
||||||
|
## displayed. If "hide", it is only displayed when dialogue is present. If
|
||||||
|
## "auto", the window is hidden before scene statements and shown again once
|
||||||
|
## dialogue is displayed.
|
||||||
|
##
|
||||||
|
## After the game has started, this can be changed with the "window show",
|
||||||
|
## "window hide", and "window auto" statements.
|
||||||
|
|
||||||
|
define config.window = "auto"
|
||||||
|
|
||||||
|
|
||||||
|
## Transitions used to show and hide the dialogue window
|
||||||
|
|
||||||
|
define config.window_show_transition = Dissolve(.2)
|
||||||
|
define config.window_hide_transition = Dissolve(.2)
|
||||||
|
|
||||||
|
|
||||||
|
## Preference defaults #########################################################
|
||||||
|
|
||||||
|
## Controls the default text speed. The default, 0, is infinite, while any other
|
||||||
|
## number is the number of characters per second to type out.
|
||||||
|
|
||||||
|
default preferences.text_cps = 0
|
||||||
|
|
||||||
|
|
||||||
|
## The default auto-forward delay. Larger numbers lead to longer waits, with 0
|
||||||
|
## to 30 being the valid range.
|
||||||
|
|
||||||
|
default preferences.afm_time = 15
|
||||||
|
|
||||||
|
|
||||||
|
## Save directory ##############################################################
|
||||||
|
##
|
||||||
|
## Controls the platform-specific place Ren'Py will place the save files for
|
||||||
|
## this game. The save files will be placed in:
|
||||||
|
##
|
||||||
|
## Windows: %APPDATA\RenPy\<config.save_directory>
|
||||||
|
##
|
||||||
|
## Macintosh: $HOME/Library/RenPy/<config.save_directory>
|
||||||
|
##
|
||||||
|
## Linux: $HOME/.renpy/<config.save_directory>
|
||||||
|
##
|
||||||
|
## This generally should not be changed, and if it is, should always be a
|
||||||
|
## literal string, not an expression.
|
||||||
|
|
||||||
|
define config.save_directory = "PineappleInterview-1724679674"
|
||||||
|
|
||||||
|
|
||||||
|
## Icon ########################################################################
|
||||||
|
##
|
||||||
|
## The icon displayed on the taskbar or dock.
|
||||||
|
|
||||||
|
define config.window_icon = "gui/window_icon.png"
|
||||||
|
|
||||||
|
|
||||||
|
## Build configuration #########################################################
|
||||||
|
##
|
||||||
|
## This section controls how Ren'Py turns your project into distribution files.
|
||||||
|
|
||||||
|
init python:
|
||||||
|
|
||||||
|
## The following functions take file patterns. File patterns are case-
|
||||||
|
## insensitive, and matched against the path relative to the base directory,
|
||||||
|
## with and without a leading /. If multiple patterns match, the first is
|
||||||
|
## used.
|
||||||
|
##
|
||||||
|
## In a pattern:
|
||||||
|
##
|
||||||
|
## / is the directory separator.
|
||||||
|
##
|
||||||
|
## * matches all characters, except the directory separator.
|
||||||
|
##
|
||||||
|
## ** matches all characters, including the directory separator.
|
||||||
|
##
|
||||||
|
## For example, "*.txt" matches txt files in the base directory, "game/
|
||||||
|
## **.ogg" matches ogg files in the game directory or any of its
|
||||||
|
## subdirectories, and "**.psd" matches psd files anywhere in the project.
|
||||||
|
|
||||||
|
## Classify files as None to exclude them from the built distributions.
|
||||||
|
|
||||||
|
build.classify('**~', None)
|
||||||
|
build.classify('**.bak', None)
|
||||||
|
build.classify('**/.**', None)
|
||||||
|
build.classify('**/#**', None)
|
||||||
|
build.classify('**/thumbs.db', None)
|
||||||
|
|
||||||
|
## To archive files, classify them as 'archive'.
|
||||||
|
|
||||||
|
# build.classify('game/**.png', 'archive')
|
||||||
|
# build.classify('game/**.jpg', 'archive')
|
||||||
|
|
||||||
|
## Files matching documentation patterns are duplicated in a mac app build,
|
||||||
|
## so they appear in both the app and the zip file.
|
||||||
|
|
||||||
|
build.documentation('*.html')
|
||||||
|
build.documentation('*.txt')
|
||||||
|
|
||||||
|
|
||||||
|
## A Google Play license key is required to perform in-app purchases. It can be
|
||||||
|
## found in the Google Play developer console, under "Monetize" > "Monetization
|
||||||
|
## Setup" > "Licensing".
|
||||||
|
|
||||||
|
# define build.google_play_key = "..."
|
||||||
|
|
||||||
|
|
||||||
|
## The username and project name associated with an itch.io project, separated
|
||||||
|
## by a slash.
|
||||||
|
|
||||||
|
# define build.itch_project = "renpytom/test-project"
|
1612
game/screens.rpy
Normal file
1612
game/screens.rpy
Normal file
File diff suppressed because it is too large
Load Diff
311
game/script.rpy
Normal file
311
game/script.rpy
Normal file
|
@ -0,0 +1,311 @@
|
||||||
|
define bl = Character('菠萝', color="#fffec8")
|
||||||
|
define w = Character('我', color="#c8c8ff")
|
||||||
|
define zz = Character('竹子', color="#c8ffc8")
|
||||||
|
define rm2 = Character('舍友2', color="#ffc8c8")
|
||||||
|
define rm3 = Character('舍友3', color="#ffc8c8")
|
||||||
|
define rm4 = Character('舍友4', color="#ffc8c8")
|
||||||
|
define rm5 = Character('舍友5', color="#ffc8c8")
|
||||||
|
define rm6 = Character('舍友6', color="#ffc8c8")
|
||||||
|
|
||||||
|
label start:
|
||||||
|
|
||||||
|
label chapter_1_1:
|
||||||
|
|
||||||
|
#play music main
|
||||||
|
scene bg classroom
|
||||||
|
with fade
|
||||||
|
#play effect after_class_ring
|
||||||
|
|
||||||
|
rm4 "哦噫。还在玩啊?已经下课了都。"
|
||||||
|
|
||||||
|
"""
|
||||||
|
舍友[rm4.name]朝着我这边走来。很随意地站在走道里问道。
|
||||||
|
|
||||||
|
教室里只有寥寥数十人,大四的课程就是这样。
|
||||||
|
|
||||||
|
大家都在忙自己的事情,大四的课程对于实际的毕业影响也不大,因此翘课是常事。
|
||||||
|
|
||||||
|
老师也对此睁一只眼闭一只眼,这样你好我好大家好的奇妙默契在大学里稀疏平常。
|
||||||
|
|
||||||
|
也拜此所赐,我在这样的课上玩手机也是没问题的。
|
||||||
|
"""
|
||||||
|
|
||||||
|
w "我这局游戏还没打完,我打完再走。我待会还得去趟超市,你们先回吧。"
|
||||||
|
"我向它甩了甩我的手机,意思是给它看看。"
|
||||||
|
rm4 "行吧,那我们先回了。"
|
||||||
|
# play effect walk
|
||||||
|
|
||||||
|
"""
|
||||||
|
[rm4.name]和其它舍友一起先回宿舍了。
|
||||||
|
|
||||||
|
其实我根本没有在打游戏。只是单纯的找个借口想把舍友支走罢了。
|
||||||
|
|
||||||
|
手机屏幕上摆着的也只不过是一个普通的聊天界面罢了。
|
||||||
|
|
||||||
|
上课的时候我实际上也没有在玩手机。虽然玩手机老师也不会介意的。
|
||||||
|
|
||||||
|
我事实上是在对着手机屏幕发呆而已。心里一直在思考些事情,但这会又完全记不起我思考了些什么。
|
||||||
|
"""
|
||||||
|
|
||||||
|
w "想去校园里走走。。。"
|
||||||
|
|
||||||
|
"""
|
||||||
|
不经意间,我突然嘀咕出这么一句话来。
|
||||||
|
|
||||||
|
还记得四年前刚来这个大学的时候,为了熟悉校园,我花了一整个下午逛完了校园。
|
||||||
|
|
||||||
|
现在要离开这个承载了我四年回忆的地方,果然还是想再看最后一眼啊。
|
||||||
|
"""
|
||||||
|
|
||||||
|
# play effect walk
|
||||||
|
"说罢,我动了动身子,起身离开教室"
|
||||||
|
|
||||||
|
scene bg fountain
|
||||||
|
with fade
|
||||||
|
|
||||||
|
"""
|
||||||
|
为了避免和舍友撞个正着,我刻意走的很慢,选择了一条平时不会有很多学生经过的道路。
|
||||||
|
|
||||||
|
走到了一处喷泉前。喷泉建在学校内的湖边上,平常从未见过它开启,也许只有重要的时候才会开吧。
|
||||||
|
|
||||||
|
我站在喷泉旁对着夕阳发呆。
|
||||||
|
|
||||||
|
今年的冬天格外地寒冷,现在都已经四月了,天气还不算很热。
|
||||||
|
|
||||||
|
更准确地说,是大地刚从寒冷中缓过劲来。
|
||||||
|
|
||||||
|
春天是万物复苏的季节,但我却不怎么喜欢春天。
|
||||||
|
|
||||||
|
因为春天令我烦躁。相比而言我更喜欢秋天,丝丝寒意,肃杀,凋零,这是才是我喜欢的季节。
|
||||||
|
|
||||||
|
站在夕阳下,春天的温度慢慢沁满身心,我也有些烦躁起来。
|
||||||
|
|
||||||
|
我的大学生活已经接近尾声。回想起这四年的大学生活,感慨良多。
|
||||||
|
|
||||||
|
我没有像网上的帖子说的那样,被分到一个氛围不好的寝室。
|
||||||
|
|
||||||
|
相反,我的舍友都很好。
|
||||||
|
|
||||||
|
从刚分到一个宿舍开始时的生疏,到现在的什么都和舍友分享,甚至开一些稍微过分的玩笑。
|
||||||
|
|
||||||
|
我是真心觉得能进入这个学校,分到这个宿舍,是我一生的缘分。
|
||||||
|
|
||||||
|
但是现在到了该分别的时候了。我需要决定我的去向了。是工作,还是考研二战,又或者是家里蹲?
|
||||||
|
|
||||||
|
舍友们都已经找到了自己的归宿。
|
||||||
|
|
||||||
|
[rm4.name]去年就已经接到公司的Offer了。
|
||||||
|
|
||||||
|
[rm5.name]和[rm2.name]已经过了考研初试。
|
||||||
|
[rm3.name]在准备考研二战。
|
||||||
|
|
||||||
|
至于[rm6.name],他坐在寝室里悠闲度日,准备回家接手家里的大矿山。
|
||||||
|
|
||||||
|
去年我考研因为贪于玩乐,没有好好复习,导致最终有两个科目完全达不到线,以悲剧收场。
|
||||||
|
|
||||||
|
我认定我这自由散漫的种性格是不适合考研复习的,考研二战是没有什么可能了。
|
||||||
|
|
||||||
|
家里的基业又不像那位有矿山的舍友那样宏伟。
|
||||||
|
|
||||||
|
看来找工作是唯一的出路了。
|
||||||
|
"""
|
||||||
|
|
||||||
|
w "唉。。。"
|
||||||
|
|
||||||
|
"我长叹了一口气"
|
||||||
|
|
||||||
|
w "看来只能先找一份工作了。"
|
||||||
|
w "像大家一样。"
|
||||||
|
|
||||||
|
label chapter_1_2:
|
||||||
|
|
||||||
|
scene bg dorm
|
||||||
|
with fade
|
||||||
|
|
||||||
|
"""
|
||||||
|
回到寝室后,我开始准备我的简历。
|
||||||
|
|
||||||
|
打开空白的Word文档,我才意识到,我连简历怎么写都不知道。
|
||||||
|
|
||||||
|
还是问问已经找到工作的[rm4.name]吧。
|
||||||
|
"""
|
||||||
|
|
||||||
|
w "[rm4.name],你的简历模板有没有,能不能借我一份。"
|
||||||
|
rm4 "简历模板啊,等等,我找一找。"
|
||||||
|
rm4 "啊,找到了。"
|
||||||
|
rm4 "我发给你。"
|
||||||
|
w "OK,我收到了。"
|
||||||
|
w "这里面这些东西一般怎么填啊,有没有啥技巧。"
|
||||||
|
"我指着我刚打开的发送过来的模板说道"
|
||||||
|
rm4 "呣。。。"
|
||||||
|
rm4 "上面的个人信息你就按你的真实情况填就行了。"
|
||||||
|
rm4 "下面最重要的也就项目经历,得奖记录,个人追求什么的。"
|
||||||
|
rm4 "你按你的想法直接填就行。没有什么技巧的。"
|
||||||
|
rm4 "我们这也没多少东西能写上去。"
|
||||||
|
rm4 "你就把你能写的都写上去就行了。"
|
||||||
|
w "OK,我知道了,到时候有问题我再问你。"
|
||||||
|
rm4 "OK。"
|
||||||
|
"[rm4.name]说完就转过头去,继续玩他的游戏了。"
|
||||||
|
|
||||||
|
"""
|
||||||
|
唔。。。项目经历,得奖记录,个人追求是吗。。。
|
||||||
|
|
||||||
|
我先熟练地填写了我的个人信息。大学四年间已经不记得填写了多少份与之类似的身份信息表了。
|
||||||
|
"""
|
||||||
|
|
||||||
|
w "唔呣,接下来就该写项目经历了。"
|
||||||
|
|
||||||
|
"""
|
||||||
|
说实在的,大学生能有多少项目经历呢?
|
||||||
|
|
||||||
|
只不过是硬撑内容罢了。
|
||||||
|
|
||||||
|
但。。。该写的还是要写的。不可能在简历上留空白的。
|
||||||
|
|
||||||
|
俗话不是说:不会做,写个“解”字也比空在那好吗。
|
||||||
|
"""
|
||||||
|
|
||||||
|
w "项目经历到底写些什么好呢?"
|
||||||
|
|
||||||
|
menu choice_cv_1:
|
||||||
|
|
||||||
|
"写嵌入式系统课设":
|
||||||
|
w "还是写大学里做的课设保险一点吧。"
|
||||||
|
w "毕竟大家都是那么写的。"
|
||||||
|
|
||||||
|
"""
|
||||||
|
我的大学生活没有什么新鲜事。
|
||||||
|
|
||||||
|
大多时间都是在教室,食堂,寝室之间三线奔波。
|
||||||
|
|
||||||
|
我只是兢兢业业地完成老师布置的作业,课设要求的设计内容。
|
||||||
|
|
||||||
|
可能课设也就是我唯一能写在简历里的内容了。
|
||||||
|
"""
|
||||||
|
|
||||||
|
"写一些我的开源拙作":
|
||||||
|
w "虽然大家都在写自己的课设。"
|
||||||
|
w "但我还是想写有我自己风格的内容。"
|
||||||
|
|
||||||
|
"""
|
||||||
|
我的大学生活多数时候是比较平淡的,但在某些时候我还是很享受它的。
|
||||||
|
|
||||||
|
许多人都是在教室,食堂,寝室之间三线奔波。只是单纯地完成老师布置的作业,课设要求的设计内容。
|
||||||
|
|
||||||
|
但我对于每一个课设都热情十足。因为我对自由软件情有独钟。
|
||||||
|
|
||||||
|
我经常喜欢在课设中跳脱教师给定的操作说明,使用一些我知道的自由软件替换标准操作中的非自由软件。
|
||||||
|
|
||||||
|
比如别人都在用MATLAB计算和画图,我却用GNU Octave。别人都在用Adobe Premiere剪辑视频,我则使用Kdenlive。
|
||||||
|
|
||||||
|
这些开源替代对于大学课设来说已经足够替代那些非自由软件了。
|
||||||
|
|
||||||
|
我也乐在其中。
|
||||||
|
|
||||||
|
也正因为如此,我为了某些课设的特殊需求,也写了几个小的开源项目发布在了GitHub上。
|
||||||
|
|
||||||
|
这是我大学生活中唯一感到快乐的事情。
|
||||||
|
|
||||||
|
虽然这个快乐我并不能和我的朋友们分享,因为他们并不了解开源软件。
|
||||||
|
"""
|
||||||
|
|
||||||
|
label after_choice_cv_1:
|
||||||
|
|
||||||
|
#play effect writing
|
||||||
|
w "OK,项目经历就先这样。。。"
|
||||||
|
|
||||||
|
rm5 "[rm2.name]!你抢到了吗?"
|
||||||
|
rm2 "还没呢,你那里刷出来了吗?"
|
||||||
|
"""
|
||||||
|
旁边传来吵闹的声音。
|
||||||
|
|
||||||
|
看起来似乎是[rm2.name]和[rm5.name]在抢补录名额。
|
||||||
|
|
||||||
|
它们俩人过了初试,但是复试没有通过,因此现在双双在抢补录名额。
|
||||||
|
"""
|
||||||
|
rm2 "我抢到了!你那呢?"
|
||||||
|
rm5 "还没呢,我这网页没动静啊?"
|
||||||
|
rm2 "看片看多了电脑卡了吧。"
|
||||||
|
"[rm2.name]略带调侃意味地说道。然后挪了挪椅子站了起来,倚在[rm5.name]床铺旁看他操作。"
|
||||||
|
rm5 "哦哦哦,终于抢到了!棒!"
|
||||||
|
"[rm2.name]没呆多久,看起来[rm5.name]也已经抢到了补录名额。"
|
||||||
|
|
||||||
|
"""
|
||||||
|
不过这一切都和我无关。因为我连考研的初试都没过。
|
||||||
|
|
||||||
|
也就没有资格参与所谓的补录。
|
||||||
|
|
||||||
|
眼下还是完成这份简历更重要。
|
||||||
|
"""
|
||||||
|
|
||||||
|
w "好了,接下来就该得奖记录了。"
|
||||||
|
|
||||||
|
"""
|
||||||
|
我并没有获得什么值得写出来的奖项。
|
||||||
|
|
||||||
|
或者说我从小到大,都从来没有为了奖项而主动去努力过。
|
||||||
|
|
||||||
|
上了大学后也获得过一些奖项,但那些奖项都是类似参与奖那样的,不知名的小奖。
|
||||||
|
|
||||||
|
里面唯一能看的是所谓蓝桥杯,但那也是仗着大牛舍友,附带出来的签到奖罢了。
|
||||||
|
|
||||||
|
我真不知道哪些奖项可以写上去。
|
||||||
|
"""
|
||||||
|
|
||||||
|
w "得奖记录到底写些什么好呢?"
|
||||||
|
|
||||||
|
menu choice_cv_2:
|
||||||
|
|
||||||
|
"只有蓝桥杯能写了":
|
||||||
|
w "那只能写蓝桥杯了。"
|
||||||
|
|
||||||
|
"""
|
||||||
|
带着不情愿的心情,我只能把蓝桥杯签到奖的内容写了上去。
|
||||||
|
|
||||||
|
这是我唯一能写的奖项了。
|
||||||
|
"""
|
||||||
|
|
||||||
|
"也许不一定要是世俗定义的奖项":
|
||||||
|
w "也许我可以写一些别的。"
|
||||||
|
w "比如我在GitHub上的工程。"
|
||||||
|
|
||||||
|
"""
|
||||||
|
我经常在GitHub开源我写的各种代码。
|
||||||
|
|
||||||
|
它们有些是课设需要,有些则是我一时兴起开发着玩的。
|
||||||
|
|
||||||
|
巧合的是,其中有那么一款,服务于某个特定领域的软件,被那个领域里的人广泛所知。
|
||||||
|
|
||||||
|
如果我完整地陈述缘由,并附上与之相关的褒奖的文章,也不是不可以。
|
||||||
|
"""
|
||||||
|
|
||||||
|
w "我想可以写它"
|
||||||
|
|
||||||
|
"""
|
||||||
|
没错。开源软件是我的梦想,也是我大学生活中唯一的快乐。
|
||||||
|
|
||||||
|
虽然有被对面拒绝的风险,但我还是想真实地表达出我的追求。
|
||||||
|
|
||||||
|
这个世界需要更多的开源软件。让更多人意识到开源软件的替代,而不是无脑地去选择那些付费商业私有软件是我的追求。
|
||||||
|
"""
|
||||||
|
|
||||||
|
label after_choice_cv_2:
|
||||||
|
|
||||||
|
#play effect writing
|
||||||
|
w "好了,简历应该就先这样了。"
|
||||||
|
|
||||||
|
"""
|
||||||
|
环顾四周,[rm2.name]和[rm5.name]沉浸在补录通过的快乐中。
|
||||||
|
|
||||||
|
[rm4.name]在打着游戏。
|
||||||
|
|
||||||
|
[rm3.name]在那里安静地戴着耳塞看书备战。
|
||||||
|
|
||||||
|
[rm6.name]则不知去向,也许是出去快乐去了。
|
||||||
|
|
||||||
|
虽然大家现在还都在一个寝室里,但我觉得我已经和他们隔了一道可悲的厚障壁了。
|
||||||
|
"""
|
||||||
|
|
||||||
|
".:. Good 结局。"
|
||||||
|
|
||||||
|
return
|
1515
game/tl/None/common.rpym
Normal file
1515
game/tl/None/common.rpym
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user