Merge branch 'italian_branch' of https://git.cavemanon.xyz/Cavemanon/SnootGame into italian_branch
This commit is contained in:
commit
2ee758979a
@ -1 +0,0 @@
|
||||
{"expansion": false, "heap_size": "3", "icon_name": "Snoot Game", "include_pil": false, "include_sqlite": false, "layout": null, "name": "Snoot Game", "numeric_version": 1, "orientation": "sensorLandscape", "package": "cavemanon.snootgame", "permissions": ["VIBRATE", "INTERNET"], "source": false, "store": "none", "update_always": true, "update_icons": true, "update_keystores": true, "version": "INTERNAL-BUILD"}
|
@ -1,3 +1,9 @@
|
||||
clone:
|
||||
git:
|
||||
image: woodpeckerci/plugin-git
|
||||
settings:
|
||||
depth: 1
|
||||
|
||||
steps:
|
||||
changelog:
|
||||
image: debian
|
||||
@ -11,7 +17,7 @@ steps:
|
||||
image: debian
|
||||
commands:
|
||||
- sed -i -e "s/INTERNAL-BUILD/${CI_COMMIT_TAG}/g" game/options.rpy #Change the internal build name to the tagged version
|
||||
- sed -i -e "s/INTERNAL-BUILD/${CI_COMMIT_TAG}/g" .android.json
|
||||
- sed -i -e "s/INTERNAL-BUILD/${CI_COMMIT_TAG}/g" android.json
|
||||
when:
|
||||
- event: tag
|
||||
|
||||
@ -19,20 +25,21 @@ steps:
|
||||
image: debian
|
||||
commands:
|
||||
- sed -i -e "s/INTERNAL-BUILD/${CI_COMMIT_SHA}/g" game/options.rpy #if no tag, make it the commit num
|
||||
- sed -i -e "s/INTERNAL-BUILD/${CI_COMMIT_TAG}/g" .android.json
|
||||
|
||||
- sed -i -e "s/INTERNAL-BUILD/${CI_COMMIT_SHA}/g" android.json
|
||||
when:
|
||||
- event: cron
|
||||
|
||||
build:
|
||||
image: openjdk:8
|
||||
image: openjdk:21-jdk-bookworm
|
||||
commands:
|
||||
- apt update
|
||||
- apt install libgl1 -y
|
||||
- apt install libgl1 patch -y
|
||||
- sed -i -e "s/VERSION/${RenpyVersion}/g" game/options.rpy #Change the renpy version to the woodpecker reuqested one.
|
||||
#Get Renkit
|
||||
- wget -qO- "https://github.com/kobaltcore/renkit/releases/download/v${RenkitVersion}/renkit-linux-amd64.tar.gz" | tar xz --directory=/tmp/
|
||||
- /tmp/renconstruct build -i "." -c "renconstruct.toml" -o dist/
|
||||
- wget -qO- "https://github.com/kobaltcore/renkit/releases/download/v${RenkitVersion}/renkit-x86_64-unknown-linux-gnu.tar.xz" | tar -Jax --directory=/tmp/
|
||||
- /tmp/renkit-x86_64-unknown-linux-gnu/renconstruct build "." dist/
|
||||
- mkdir "dist/android"
|
||||
- mv dist/*.apk "dist/android"
|
||||
- cd /tmp/
|
||||
|
||||
archival-sha:
|
||||
@ -76,6 +83,6 @@ steps:
|
||||
|
||||
matrix:
|
||||
RenpyVersion:
|
||||
- "8.0.3"
|
||||
- "8.3.0"
|
||||
RenkitVersion:
|
||||
- "3.3.1"
|
||||
- "4.4.0"
|
||||
|
24
android.json
Normal file
24
android.json
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"expansion": false,
|
||||
"google_play_key": null,
|
||||
"google_play_salt": null,
|
||||
"heap_size": "3",
|
||||
"icon_name": "Snoot Game",
|
||||
"include_pil": false,
|
||||
"include_sqlite": false,
|
||||
"layout": null,
|
||||
"name": "Snoot Game",
|
||||
"numeric_version": 1,
|
||||
"orientation": "sensorLandscape",
|
||||
"package": "cavemanon.snootgame",
|
||||
"permissions": [
|
||||
"VIBRATE",
|
||||
"INTERNET"
|
||||
],
|
||||
"source": false,
|
||||
"store": "none",
|
||||
"update_always": true,
|
||||
"update_icons": true,
|
||||
"update_keystores": true,
|
||||
"version": "INTERNAL-BUILD"
|
||||
}
|
BIN
android.keystore
Normal file
BIN
android.keystore
Normal file
Binary file not shown.
BIN
bundle.keystore
Normal file
BIN
bundle.keystore
Normal file
Binary file not shown.
26
game/chapter_variables.rpy
Normal file
26
game/chapter_variables.rpy
Normal file
@ -0,0 +1,26 @@
|
||||
# Store the general chapters inside an array for easy manipulation
|
||||
default chapter_list = [
|
||||
"chapter_1", "chapter_2", "chapter_3", "chapter_4", "chapter_5",
|
||||
"chapter_6", "chapter_7", "chapter_8", "chapter_9", "chapter_10", "chapter_11"
|
||||
]
|
||||
|
||||
define ending_routes = {
|
||||
4: ["chapter_11D", "chapter_12D", "chapter_12_5D", "chapter_13D", "chapter_14D"],
|
||||
3: ["chapter_11C", "chapter_12C", "chapter_12_5C", "chapter_13C", "chapter_14C"],
|
||||
2: ["chapter_11B", "chapter_12B", "chapter_13B", "chapter_14B"],
|
||||
1: ["chapter_11A", "chapter_12A", "chapter_12_5D", "chapter_13A", "chapter_14A"]
|
||||
}
|
||||
|
||||
# Anon/Fang
|
||||
default anonscore = 0
|
||||
default fangscore = 0
|
||||
default wingStory = False
|
||||
|
||||
# Chapter variables
|
||||
default chapter_list_length = get_chapter_list_length()
|
||||
default chapter_list_index = 0 # Index number for the current position of the chapter_list array
|
||||
default current_chapter = chapter_list[chapter_list_index] # Store the name of the label as a string
|
||||
|
||||
# Ending variables
|
||||
default ending_route_number = None
|
||||
default is_end_reached = False
|
Binary file not shown.
@ -133,6 +133,11 @@ default preferences.text_cps = 50
|
||||
|
||||
default preferences.afm_time = 15
|
||||
|
||||
define config.developer = "auto"
|
||||
|
||||
default persistent.enable_debug_scores = config.developer
|
||||
default persistent.enable_chapter_select = config.developer
|
||||
|
||||
##Default Audio is not ear rape
|
||||
define config.default_music_volume = 0.48
|
||||
define config.default_sfx_volume = 0.80
|
||||
@ -196,6 +201,15 @@ init python:
|
||||
build.classify('game/mods_example/**', None)
|
||||
build.classify('game/mods_example/.**', None)
|
||||
|
||||
build.classify('README.md', None)
|
||||
build.classify('renconstruct.toml', None)
|
||||
build.classify('bundle.keystore', None)
|
||||
build.classify('android.keystore', None)
|
||||
build.classify('bundle.keystore.original', None)
|
||||
|
||||
build.classify('game/dev/.**', None)
|
||||
build.classify('build_patch/*', None)
|
||||
|
||||
|
||||
## To archive files, classify them as 'archive'.
|
||||
|
||||
@ -220,6 +234,3 @@ init python:
|
||||
## by a slash.
|
||||
|
||||
# define build.itch_project = "renpytom/test-project"
|
||||
|
||||
#RenPy updating from snootgame.xyz
|
||||
define build.include_update = True
|
||||
|
@ -319,6 +319,8 @@ init python:
|
||||
config.overlay_screens.append("quick_menu")
|
||||
|
||||
default quick_menu = True
|
||||
default persistent.old_endings = None
|
||||
default persistent.endings = None
|
||||
|
||||
style quick_button is default
|
||||
style quick_button_text is button_text
|
||||
@ -356,6 +358,10 @@ screen navigation():
|
||||
textbutton _("Save") activate_sound "audio/ui/uiClick.wav" action ShowMenu("save")
|
||||
textbutton _("Load") activate_sound "audio/ui/uiClick.wav" action ShowMenu("load")
|
||||
textbutton _("Delete") activate_sound "audio/ui/uiClick.wav" action ShowMenu("delete")
|
||||
|
||||
if config.developer and persistent.enable_chapter_select:
|
||||
textbutton _("Chapter Select") activate_sound "audio/ui/uiClick.wav" action Start("chapter_select")
|
||||
|
||||
textbutton _("Options") activate_sound "audio/ui/uiClick.wav" action ShowMenu("preferences")
|
||||
#textbutton _("Extras") action ShowMenu("extras")
|
||||
textbutton _("Return") activate_sound "audio/ui/uiBack.wav" action Return()
|
||||
@ -992,6 +998,20 @@ screen preferences():
|
||||
textbutton _("After Choices") action [Function(onclick_audio, preferences.skip_after_choices), ToggleVariable("preferences.skip_after_choices", True, False)]
|
||||
textbutton _("Transitions") action [Function(onclick_audio, preferences.transitions, True), ToggleVariable("preferences.transitions", 0, 2)]
|
||||
|
||||
if config.developer:
|
||||
vbox:
|
||||
style_prefix "check"
|
||||
label _("Developer Tools")
|
||||
textbutton _("Enable Debug Scores") action ToggleVariable("persistent.enable_debug_scores", True, False)
|
||||
textbutton _("Enable Chapter Select") action ToggleVariable("persistent.enable_chapter_select", True, False)
|
||||
|
||||
if not main_menu:
|
||||
if config.developer and persistent.enable_debug_scores:
|
||||
$ debug_story_variables(False)
|
||||
$ debug_story_variables(True)
|
||||
else:
|
||||
$ debug_story_variables(False)
|
||||
|
||||
vbox:
|
||||
xsize 676
|
||||
style_prefix "check"
|
||||
@ -1265,12 +1285,13 @@ screen extrasnavigation():
|
||||
vbox:
|
||||
spacing 10
|
||||
xpos 1885
|
||||
ypos 1130
|
||||
ypos (1269 if config.developer and persistent.enable_chapter_select else 1130)
|
||||
use main_menu_buttons("gui/button/menubuttons/template_idle.png",
|
||||
[
|
||||
[ _("Help"), ShowMenu("help") ],
|
||||
[ _("About"), ShowMenu("about") ],
|
||||
[ _("Gallery"), ShowMenu("cg_gallery") ],
|
||||
*([(_("Chapter Select"), Start("chapter_select"))] if persistent.enable_chapter_select else []),
|
||||
[ _("Mods"), ShowMenu("mod_menu") ],
|
||||
[ _("Return"), ShowMenu("main_menu") ]
|
||||
] )
|
||||
|
@ -322,8 +322,9 @@ transform scloserleft:
|
||||
|
||||
|
||||
label start:
|
||||
$ fangscore = 0
|
||||
$ anonscore = 0
|
||||
$ wingStory = False
|
||||
|
||||
$ toggle_debug()
|
||||
|
||||
pause 1.0
|
||||
call storyline from _call_storyline
|
||||
|
||||
$ renpy.call(chapter_list[chapter_list_index]) # Call first element of the chapter_list array
|
||||
|
@ -3663,4 +3663,4 @@ label chapter_1:
|
||||
window auto
|
||||
pause 1.5
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -550,4 +550,4 @@ label chapter_10:
|
||||
window auto
|
||||
pause 1
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -448,8 +448,9 @@ label chapter_11:
|
||||
#THIS SECTION IS SCORE DEPENDENT
|
||||
|
||||
# Doomer ending skips this segment
|
||||
call get_ending from _call_get_ending
|
||||
if _return == 2:
|
||||
$ ending_score = get_ending()
|
||||
|
||||
if ending_score == 2:
|
||||
stop music fadeout 3
|
||||
pause 2
|
||||
jump lPromAnnouncement
|
||||
@ -585,10 +586,9 @@ label chapter_11:
|
||||
Nas "Don’t take it the wrong way, but my mind just screamed at me ‘worst case scenario’."
|
||||
pause .5
|
||||
|
||||
call get_ending from _call_get_ending_1
|
||||
if _return == 4: # Golden
|
||||
if ending_score == 4: # Golden
|
||||
jump lSortingThings
|
||||
elif _return == 3: # tradwife
|
||||
elif ending_score == 3: # tradwife
|
||||
jump lMendingThings
|
||||
else:
|
||||
jump lBreakingThings # All else fails, go to shooter.
|
||||
@ -5211,8 +5211,8 @@ label chapter_11:
|
||||
"Fang and I have been together for a month now."
|
||||
pause .5
|
||||
|
||||
call get_ending from _call_get_ending_2
|
||||
if _return == 3: # tradwife
|
||||
|
||||
if ending_score == 3: # tradwife
|
||||
|
||||
"Things are going pretty well. When we discount Trish’s weekly attempt to talk with Fang."
|
||||
|
||||
@ -5467,9 +5467,8 @@ label chapter_11:
|
||||
"{cps=*.1}...{/cps}"
|
||||
|
||||
# skip this segment if we're doing ending 1
|
||||
call get_ending from _call_get_ending_3
|
||||
if _return == 1: #shooter
|
||||
return
|
||||
if ending_score == 1: #shooter
|
||||
$ next_story_chapter()
|
||||
|
||||
# the following segment makes sense in the context of 11B+11C+11D
|
||||
window hide
|
||||
@ -5565,4 +5564,4 @@ label chapter_11:
|
||||
|
||||
A "Anyways, where were we?"
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -158,4 +158,4 @@ label chapter_11A:
|
||||
window auto
|
||||
pause .5
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
@ -173,4 +173,4 @@ label chapter_11B:
|
||||
window auto
|
||||
pause 1
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
@ -302,4 +302,4 @@ label chapter_11C:
|
||||
"{cps=*.1}...{/cps}"
|
||||
pause .5
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
@ -392,4 +392,4 @@ label chapter_11D:
|
||||
"{cps=*.1}...{/cps}"
|
||||
pause .5
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -445,4 +445,4 @@ label chapter_12_5C:
|
||||
window hide
|
||||
window auto
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -443,4 +443,4 @@ label chapter_12_5D:
|
||||
|
||||
F "Oh, Anon, you’re already here!"
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -1034,4 +1034,4 @@ label chapter_12A:
|
||||
window hide
|
||||
window auto
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -591,4 +591,4 @@ label chapter_12B:
|
||||
window auto
|
||||
pause 1
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -901,4 +901,4 @@ label chapter_12C:
|
||||
window auto
|
||||
pause 1
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -781,4 +781,4 @@ label chapter_12D:
|
||||
|
||||
"{cps=*0.1}...{/cps}"
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -1797,4 +1797,4 @@ label chapter_13A:
|
||||
window auto
|
||||
pause 1
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -1048,4 +1048,4 @@ label chapter_13B:
|
||||
window auto
|
||||
pause 1
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -4604,4 +4604,4 @@ label chapter_13C:
|
||||
|
||||
#end of new stuff
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
@ -4053,4 +4053,4 @@ label chapter_13D:
|
||||
"{cps=*.1}...{/cps}"
|
||||
pause 0.5
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -1442,4 +1442,5 @@ label chapter_14A:
|
||||
pause 5
|
||||
|
||||
$ renpy.music.set_volume(1, 0, 'ambient')
|
||||
return
|
||||
|
||||
$ next_story_chapter()
|
||||
|
@ -350,4 +350,4 @@ label chapter_14B:
|
||||
scene black with Dissolve(3)
|
||||
pause 2
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -1014,4 +1014,5 @@ label chapter_14C:
|
||||
pause 1.0
|
||||
stop music
|
||||
$ renpy.music.set_volume(1, 0, 'music')
|
||||
return
|
||||
|
||||
$ next_story_chapter()
|
||||
|
@ -898,4 +898,5 @@ label chapter_14D:
|
||||
pause 16
|
||||
scene black with Dissolve(1.0)
|
||||
pause 1
|
||||
return
|
||||
|
||||
$ next_story_chapter()
|
||||
|
@ -2604,4 +2604,4 @@ label chapter_2:
|
||||
"{cps=*.05}...{/cps}"
|
||||
pause .5
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -2291,4 +2291,4 @@ label chapter_3:
|
||||
|
||||
"{cps=*.1}...{/cps}"
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -1422,4 +1422,4 @@ label chapter_4:
|
||||
window auto
|
||||
pause .5
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -7,6 +7,8 @@ init python:
|
||||
renpy.play('audio/effects/carKick2.ogg', channel='audio')
|
||||
# renpy.play('audio/effects/carSuspension1.ogg', channel='audio')
|
||||
|
||||
image fang_tail_movie = Movie(channel="movie_dp", loop=True, play="images/animations/fang tail.webm") # New way of playing movies as of Renpy 8.1
|
||||
|
||||
label chapter_5:
|
||||
|
||||
# Gardening Club
|
||||
@ -551,7 +553,7 @@ label chapter_5:
|
||||
show anon:
|
||||
easein_back 0.5 xalign 0.2
|
||||
|
||||
label movie:
|
||||
# label movie:
|
||||
play sound 'audio/effects/slapstickPunch.ogg'
|
||||
A "FANG!" with vpunch
|
||||
|
||||
@ -559,7 +561,8 @@ label chapter_5:
|
||||
|
||||
play ambient 'audio/effects/clipLoop.ogg' fadein 1
|
||||
play ambient1 'audio/effects/outdoorNatureLoop.ogg' fadein 1
|
||||
scene fang tail with Dissolve(1)
|
||||
# scene fang tail with Dissolve(1)
|
||||
show fang_tail_movie with Dissolve(1) # change how the movie is played
|
||||
|
||||
"Through my blurred vision I can make out Fang’s tail, slowly shifting side to side."
|
||||
|
||||
@ -4665,9 +4668,9 @@ label chapter_5:
|
||||
window auto
|
||||
pause 1
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
||||
# I'm guessing this is for the gallery?
|
||||
label fang_movie:
|
||||
scene fang tail with fade
|
||||
""
|
||||
# label fang_movie:
|
||||
# scene fang tail with fade
|
||||
# ""
|
||||
|
@ -4677,4 +4677,4 @@ label chapter_6:
|
||||
window auto
|
||||
pause 1
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -1736,4 +1736,4 @@ label chapter_7:
|
||||
"{cps=*.1}...{/cps}"
|
||||
pause 0.5
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
@ -622,8 +622,10 @@ label chapter_8:
|
||||
pause .5
|
||||
|
||||
python:
|
||||
choices = [(_('Play The Guitar'), 'lLetFangPlayGuit'),
|
||||
(_('Get to Studying'), 'lGetStartedOnStudy')]
|
||||
choices = [
|
||||
(_('Play The Guitar'), 'lLetFangPlayGuit'),
|
||||
(_('Get to Studying'), 'lGetStartedOnStudy')]
|
||||
|
||||
renpy.jump(renpy.display_menu(randomize_choices(choices)))
|
||||
|
||||
|
||||
@ -1567,7 +1569,7 @@ label chapter_8:
|
||||
window hide
|
||||
window auto
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
||||
label lGetStartedOnStudy:
|
||||
pause 0.5
|
||||
@ -2156,4 +2158,5 @@ label chapter_8:
|
||||
"{cps=*.1}...{/cps}"
|
||||
window hide
|
||||
window auto
|
||||
return
|
||||
|
||||
$ next_story_chapter()
|
||||
|
@ -1297,7 +1297,7 @@ label chapter_9:
|
||||
jump lGoHomeEarly
|
||||
|
||||
label lWaitForTrishToExit:
|
||||
$ anonscore += 1
|
||||
$ anonscore += 1
|
||||
|
||||
#play music 'audio/OST/fighter.ogg' fadein 1.0
|
||||
A "You worried about her, too?"
|
||||
@ -2171,4 +2171,4 @@ label chapter_9:
|
||||
window auto
|
||||
pause .5
|
||||
|
||||
return
|
||||
$ next_story_chapter()
|
||||
|
172
game/src/chapter_select.rpy
Normal file
172
game/src/chapter_select.rpy
Normal file
@ -0,0 +1,172 @@
|
||||
define chapter_tuple_1 = [
|
||||
("1. Anon meets Fang.", "chapter_1"),
|
||||
("2. Fourth day of school.", "chapter_2"),
|
||||
("3. Showing up at band practice.", "chapter_3"),
|
||||
("4. Anon needs help during music period.", "chapter_4"),
|
||||
("5. Fang and Anon cut class to talk on the roof.", "chapter_5"),
|
||||
("6. Anon helps Fang find a venue for the band.", "chapter_6")
|
||||
]
|
||||
|
||||
define chapter_tuple_2 = [
|
||||
("7. Concert day.", "chapter_7"),
|
||||
("8. Anon and Fang study together.", "chapter_8"),
|
||||
("9. Trish ridicules Anon in front of the school.", "chapter_9"),
|
||||
("10. Fang goes to Anon's apartment.", "chapter_10"),
|
||||
("11. School assignment and route lock.", "chapter_11")
|
||||
]
|
||||
|
||||
define ending_1_tuple = [
|
||||
("11A. ", "chapter_11A"),
|
||||
("12A. ", "chapter_12A"),
|
||||
("12_5D. ", "chapter_12_5D"),
|
||||
("13A. ", "chapter_13A"),
|
||||
("14A. ", "chapter_14A")
|
||||
]
|
||||
|
||||
define ending_2_tuple = [
|
||||
("11B. ", "chapter_11B"),
|
||||
("12B. ", "chapter_12B"),
|
||||
("13B. ", "chapter_13B"),
|
||||
("14B. ", "chapter_14B")
|
||||
]
|
||||
|
||||
define ending_3_tuple = [
|
||||
("11C. ", "chapter_11C"),
|
||||
("12C. ", "chapter_12C"),
|
||||
("12_5C. ", "chapter_12_5C"),
|
||||
("13C. ", "chapter_13C"),
|
||||
("14C. ", "chapter_14C")
|
||||
]
|
||||
|
||||
define ending_4_tuple = [
|
||||
("11D. ", "chapter_11D"),
|
||||
("12D. ", "chapter_12D"),
|
||||
("12_5D. ", "chapter_12_5D"),
|
||||
("13D. ", "chapter_13D"),
|
||||
("14D. ", "chapter_14D")
|
||||
]
|
||||
|
||||
default tuples_index = [
|
||||
("Chapters 1 to 6", chapter_tuple_1),
|
||||
("Chapters 7 to 11", chapter_tuple_2)
|
||||
]
|
||||
|
||||
|
||||
init python:
|
||||
|
||||
def select_chapter():
|
||||
global current_chapter, quick_menu
|
||||
|
||||
selected_tuple = ()
|
||||
|
||||
while True:
|
||||
selected_tuple = display_tuple_menu(tuples_index)
|
||||
if selected_tuple == "go_back":
|
||||
renpy.jump("chapter_select")
|
||||
|
||||
current_chapter = display_tuple_menu(selected_tuple)
|
||||
|
||||
if current_chapter == "go_back":
|
||||
continue
|
||||
else:
|
||||
find_chapter_in_array(current_chapter)
|
||||
break
|
||||
|
||||
toggle_debug()
|
||||
quick_menu = True # Restores the bottom quick menu UI
|
||||
|
||||
renpy.call(current_chapter)
|
||||
|
||||
|
||||
def add_ending_tuple(ending_number):
|
||||
global tuples_index
|
||||
|
||||
ending_tuples = {
|
||||
1: ending_1_tuple,
|
||||
2: ending_2_tuple,
|
||||
3: ending_3_tuple,
|
||||
4: ending_4_tuple
|
||||
}
|
||||
|
||||
if ending_number in ending_tuples:
|
||||
description = f"Ending {ending_number} chapters"
|
||||
tuples_index.append((description, ending_tuples[ending_number]))
|
||||
|
||||
|
||||
def display_tuple_menu(options):
|
||||
return renpy.display_menu(options + [("Go Back", "go_back")])
|
||||
|
||||
|
||||
def set_scores(anon_score, fang_score):
|
||||
global anonscore, fangscore
|
||||
|
||||
anonscore = anon_score
|
||||
fangscore = fang_score
|
||||
|
||||
|
||||
def find_chapter_in_array(chapter):
|
||||
global chapter_list_index
|
||||
|
||||
try:
|
||||
chapter_list_index = chapter_list.index(chapter)
|
||||
except ValueError: # This crashes the game otherwise since it wouldn't find the correct chapter
|
||||
MainMenu(confirm=False) () # Exits to the main menu
|
||||
|
||||
|
||||
label reset_chapter_list:
|
||||
$ chapter_list = [
|
||||
"chapter_1", "chapter_2", "chapter_3", "chapter_4", "chapter_5",
|
||||
"chapter_6", "chapter_7", "chapter_8", "chapter_9", "chapter_10", "chapter_11"
|
||||
]
|
||||
|
||||
$ tuples_index = [
|
||||
("Chapters 1 to 6", chapter_tuple_1),
|
||||
("Chapters 7 to 11", chapter_tuple_2)
|
||||
]
|
||||
|
||||
return
|
||||
|
||||
|
||||
label chapter_select:
|
||||
$ quick_menu = False # Hides bottom quick menu UI
|
||||
call reset_chapter_list from _call_reset_chapter_list # Reset every time the tool is called
|
||||
|
||||
$ anon_points = 0
|
||||
$ fang_points = 0
|
||||
|
||||
stop sound
|
||||
stop music fadeout 2
|
||||
scene black with dissolve
|
||||
|
||||
menu:
|
||||
"Initialize scores:"
|
||||
|
||||
"Ending 1":
|
||||
pass # Since points are already initialized at 0
|
||||
"Ending 2":
|
||||
# anon 0
|
||||
$ fang_points = 4
|
||||
"Ending 3":
|
||||
$ anon_points = 4
|
||||
# fang 0
|
||||
"Ending 4":
|
||||
$ anon_points = 4
|
||||
$ fang_points = 4
|
||||
$ wingStory = True
|
||||
"Exit to main menu":
|
||||
scene black with dissolve
|
||||
return
|
||||
|
||||
$ set_scores(anon_points, fang_points)
|
||||
$ ending_route_number = get_ending()
|
||||
|
||||
$ add_ending_chapters(ending_route_number)
|
||||
$ add_ending_tuple(ending_route_number)
|
||||
|
||||
$ update_ending_variables() # Updates variables for newly extended 'chapter_list' with ending chapters
|
||||
|
||||
window hide
|
||||
|
||||
$ select_chapter()
|
||||
|
||||
|
@ -261,8 +261,7 @@ image d_credits_text = Composite(
|
||||
|
||||
|
||||
label lending:
|
||||
call get_ending from _call_get_ending_4
|
||||
$ cached_ending = _return
|
||||
$ cached_ending = get_ending()
|
||||
if cached_ending == 4:
|
||||
pause 0.5
|
||||
show snootgame_big with dissolve:
|
||||
@ -335,4 +334,5 @@ label lending:
|
||||
pause 20
|
||||
scene black with Dissolve(2)
|
||||
pause 1
|
||||
return
|
||||
|
||||
$ MainMenu(confirm=False) () # Exits to the main menu
|
||||
|
@ -10,45 +10,57 @@ init -1 python:
|
||||
persistent.old_endings = persistent.endings
|
||||
persistent.endings = endings
|
||||
|
||||
label storyline:
|
||||
call chapter_1 from _call_chapter_1
|
||||
call chapter_2 from _call_chapter_2
|
||||
call chapter_3 from _call_chapter_3
|
||||
call chapter_4 from _call_chapter_4
|
||||
call chapter_5 from _call_chapter_5
|
||||
call chapter_6 from _call_chapter_6
|
||||
call chapter_7 from _call_chapter_7
|
||||
call chapter_8 from _call_chapter_8
|
||||
call chapter_9 from _call_chapter_9
|
||||
call chapter_10 from _call_chapter_10
|
||||
call chapter_11 from _call_chapter_11
|
||||
call get_ending from _call_get_ending_5
|
||||
if _return == 4:
|
||||
call chapter_11D from _call_chapter_11D
|
||||
call chapter_12D from _call_chapter_12D
|
||||
call chapter_12_5D from _call_chapter_12_5D
|
||||
call chapter_13D from _call_chapter_13D
|
||||
call chapter_14D from _call_chapter_14D
|
||||
elif _return == 3:
|
||||
call chapter_11C from _call_chapter_11C
|
||||
call chapter_12C from _call_chapter_12C
|
||||
call chapter_12_5C from _call_chapter_12_5C
|
||||
call chapter_13C from _call_chapter_13C
|
||||
call chapter_14C from _call_chapter_14C
|
||||
elif _return == 2:
|
||||
call chapter_11B from _call_chapter_11B
|
||||
call chapter_12B from _call_chapter_12B
|
||||
# no chapter_13 here since the scene is different enough to the other routes for everything to go into 13C
|
||||
call chapter_13B from _call_chapter_13B
|
||||
call chapter_14B from _call_chapter_14B
|
||||
else: # if all else fails, we just assume that we got Endings.Shooter
|
||||
call chapter_11A from _call_chapter_11A
|
||||
call chapter_12A from _call_chapter_12A
|
||||
call chapter_12_5D from _call_chapter_12_5D_1
|
||||
call chapter_13A from _call_chapter_13A
|
||||
call chapter_14A from _call_chapter_14A
|
||||
$ ending_image()
|
||||
$ renpy.quit()
|
||||
$ ending_image()
|
||||
call lending from _call_lending
|
||||
return
|
||||
|
||||
init python:
|
||||
def next_story_chapter():
|
||||
global chapter_list_index, current_chapter
|
||||
|
||||
# Add check "is_end_reached" to have this if statement be executed only once when finishing the general chapters
|
||||
if not is_end_reached and chapter_list_index >= chapter_list_length:
|
||||
process_ending()
|
||||
|
||||
if chapter_list_index < chapter_list_length:
|
||||
chapter_list_index += 1
|
||||
current_chapter = chapter_list[chapter_list_index]
|
||||
renpy.call(current_chapter)
|
||||
else:
|
||||
end_story()
|
||||
|
||||
|
||||
def process_ending():
|
||||
global ending_route_number
|
||||
|
||||
ending_route_number = get_ending()
|
||||
add_ending_chapters(ending_route_number)
|
||||
update_ending_variables() # Updates variables for newly extended 'chapter_list' with ending chapters
|
||||
|
||||
|
||||
def add_ending_chapters(route_number):
|
||||
global chapter_list
|
||||
|
||||
if route_number in ending_routes:
|
||||
chapter_list.extend(ending_routes[route_number])
|
||||
|
||||
|
||||
def update_ending_variables():
|
||||
global chapter_list_length
|
||||
global is_end_reached
|
||||
|
||||
# chapter_list_length is updated to reflect the addition to the chapter_list array
|
||||
chapter_list_length = get_chapter_list_length()
|
||||
is_end_reached = True
|
||||
|
||||
|
||||
def get_chapter_list_length():
|
||||
return len(chapter_list) - 1
|
||||
|
||||
|
||||
def end_story():
|
||||
ending_image()
|
||||
|
||||
if ending_route_number == 1:
|
||||
renpy.quit()
|
||||
else:
|
||||
renpy.call("lending")
|
||||
|
||||
|
||||
|
@ -1,22 +1,38 @@
|
||||
## Utility functions for game setup, debugging etc.
|
||||
|
||||
label initstats(anon=0, fang=0):
|
||||
# Sets various game-related global variables
|
||||
# :param int anon: Anon's score
|
||||
# :param int fang: Fang's score
|
||||
# :param bool trad: Tradwife ending flag
|
||||
$ anonscore = anon
|
||||
$ fangscore = fang
|
||||
return
|
||||
init python:
|
||||
def get_ending():
|
||||
if anonscore >= 4 and fangscore >= 4 and wingStory:
|
||||
return 4 # Golden
|
||||
elif anonscore >= 3 and fangscore <= 4:
|
||||
return 3 # Tradwife
|
||||
elif anonscore <= 3 and fangscore >= 3:
|
||||
return 2 # Doomer
|
||||
else:
|
||||
return 1 # Shooter
|
||||
|
||||
|
||||
def debug_story_variables(toggle=True):
|
||||
var_list = [
|
||||
"anonscore",
|
||||
"fangscore",
|
||||
"current_chapter",
|
||||
"chapter_list_length",
|
||||
"chapter_list_index",
|
||||
"ending_route_number",
|
||||
"is_end_reached"
|
||||
]
|
||||
|
||||
for item in var_list:
|
||||
if toggle:
|
||||
renpy.watch(item)
|
||||
else:
|
||||
renpy.unwatch(item)
|
||||
|
||||
|
||||
def toggle_debug():
|
||||
if persistent.enable_debug_scores:
|
||||
debug_story_variables(False)
|
||||
debug_story_variables(True)
|
||||
|
||||
|
||||
label get_ending:
|
||||
# To check what ending we're getting, call this label and then check the value of _return
|
||||
# Sensible to have this logic defined in only one place for consistency
|
||||
if anonscore >= 4 and fangscore >= 4 and wingStory:
|
||||
return(4) # Golden
|
||||
elif anonscore >= 3 and fangscore <=4:
|
||||
return(3) # Tradwife
|
||||
elif anonscore <= 3 and fangscore >=3:
|
||||
return(2) # Doomer
|
||||
else:
|
||||
return(1) # Shooter
|
||||
|
@ -1,51 +1,26 @@
|
||||
[tasks.clean]
|
||||
enabled = false
|
||||
priorities = { post_build = 0 } # the priority that determines the orders tasks will run in, defaults to 0
|
||||
on_builds = ["pc", "win", "linux", "mac", "web", "steam", "market", "android_apk", "android_aab"] # builds this task should run for, defaults to all available builds
|
||||
|
||||
[tasks.notarize] # required if matching task is enabled
|
||||
enabled = false
|
||||
priorities = { post_build = 10 } # the priority that determines the orders tasks will run in, defaults to 10
|
||||
on_builds = ["mac"] # builds this task should run for, defaults to "mac"
|
||||
bundle_identifier = "com.my-game" # the bundle ID of your came, typically in reverse domain notation
|
||||
key_file = "certificates/private-key.pem" # the path to the private key file generated during the provisioning process
|
||||
cert_file = "certificates/developerID_application.cer" # the path to the Apple-generated certificate file generated during the provisioning process
|
||||
app_store_key_file = "certificates/app-store-key.json" # the path to the combined App Store key file generated during the provisioning process
|
||||
json_bundle_file = "certificates/renotize.json" # the path to the combined certificate file. replaces the key, cert and app store files above
|
||||
|
||||
[tasks.keystore] # required if matching task is enabled
|
||||
enabled = false
|
||||
type="keystore"
|
||||
enabled = true
|
||||
priorities = { pre_build = 0 } # the priority that determines the orders tasks will run in, defaults to 0
|
||||
on_builds = ["android_apk", "android_aab"] # builds this task should run for, defaults to all android builds
|
||||
keystore_apk = "<base64-encoded keystore file>" # the base-64 encoded binary keystore file for the APK bundles
|
||||
keystore_aab = "<base64-encoded keystore file>" # the base-64 encoded binary keystore file for the AAB bundles
|
||||
keystore_apk = "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" # the base-64 encoded binary keystore file for the APK bundles
|
||||
keystore_aab = "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" # the base-64 encoded binary keystore file for the AAB bundles
|
||||
|
||||
[tasks.convert_images]
|
||||
enabled = false
|
||||
format = "webp" # webp or avif
|
||||
priorities = { pre_build = 10 } # the priority that determines the orders tasks will run in, defaults to 10
|
||||
on_builds = ["pc", "win", "linux", "mac", "web", "steam", "market", "android_apk", "android_aab"] # builds this task should run for, defaults to all available builds
|
||||
# extensions: a list of file extensions to convert
|
||||
# recursive: scans directories recursively if enabled, otherwise only scans the immediate directory
|
||||
# lossless: converts to lossless WebP if enabled, otherwise converts to lossy WebP
|
||||
"game/images/cg" = { extensions = ["png", "jpg"], recursive = true, lossless = true } # default values
|
||||
"game/images/bg" = { lossless = false }
|
||||
"game/images" = { } # all parameters are optional
|
||||
|
||||
[build] # required, at least one item must be 'true'
|
||||
#pc = true # windows + linux
|
||||
# pc = true # windows + linux
|
||||
win = true # windows
|
||||
linux = true # linux
|
||||
mac = true # macos
|
||||
#web = false # web
|
||||
#steam = true # steam
|
||||
#market = true # multiple markets (i.e. itch.io)
|
||||
# web = false # web
|
||||
# steam = false # steam
|
||||
# market = false # multiple markets (i.e. itch.io)
|
||||
android_apk = true # Android Universal APK
|
||||
#android_aab = false # Android Play Store Bundle
|
||||
# android_aab = false # Android Play Store Bundle
|
||||
|
||||
[options]
|
||||
clear_output_dir = false # whether to clear the output directory on startup
|
||||
|
||||
[renutil]
|
||||
version = "8.0.3" # the Ren'Py version to use (required)
|
||||
registry = "tmp/cache" # the directory to store installation files in
|
||||
version = "8.3.0" # the Ren'Py version to use (required)
|
||||
registry = "/tmp/cache" # the directory to store installation files in
|
||||
|
Loading…
Reference in New Issue
Block a user