get_ending to not be numerically based, but instead enum-based. (#219)

Co-authored-by: san7890 <the@san7890.com>
Reviewed-on: https://git.cavemanon.xyz/Cavemanon/SnootGame/pulls/219
Co-authored-by: san7890 <san7890@noreply.git.cavemanon.xyz>
Co-committed-by: san7890 <san7890@noreply.git.cavemanon.xyz>
This commit is contained in:
san7890 2023-05-07 00:44:59 +00:00 committed by Michael Yick
parent 66b289146f
commit ef4764b322
4 changed files with 96 additions and 83 deletions

View file

@ -449,7 +449,7 @@ label chapter_11:
# Doomer ending skips this segment # Doomer ending skips this segment
call get_ending from _call_get_ending call get_ending from _call_get_ending
if _return == 2: if _return == Endings.Doomer:
stop music fadeout 3 stop music fadeout 3
pause 2 pause 2
jump lPromAnnouncement jump lPromAnnouncement
@ -586,12 +586,12 @@ label chapter_11:
pause .5 pause .5
call get_ending from _call_get_ending_1 call get_ending from _call_get_ending_1
if _return == 4: if _return == Endings.Golden:
jump lSortingThings # Golden jump lSortingThings
elif _return == 3: elif _return == Endings.Tradwife:
jump lMendingThings # Tradwife jump lMendingThings
else: else:
jump lBreakingThings # Shooter jump lBreakingThings # All else fails, go to shooter.
label lSortingThings: label lSortingThings:
@ -5212,7 +5212,7 @@ label chapter_11:
pause .5 pause .5
call get_ending from _call_get_ending_2 call get_ending from _call_get_ending_2
if _return == 3: #tradwife if _return == Endings.Tradwife:
"Things are going pretty well. When we discount Trishs weekly attempt to talk with Fang." "Things are going pretty well. When we discount Trishs weekly attempt to talk with Fang."
@ -5467,8 +5467,10 @@ label chapter_11:
"{cps=*.1}...{/cps}" "{cps=*.1}...{/cps}"
call get_ending from _call_get_ending_3 call get_ending from _call_get_ending_3
if _return != 1: # any route except Shooter if _return == Endings.Shooter:
# duplicated segment from 11B, 11C and 11D transplanted here return
# the following segment makes sense in the context of 11B+11C+11D
window hide window hide
window auto window auto
pause .5 pause .5

View file

@ -218,7 +218,8 @@ image d_credits_text = Composite(
label lending: label lending:
call get_ending from _call_get_ending_4 call get_ending from _call_get_ending_4
if _return == 4: $ cached_ending = _return # un-necessary to call this so many times
if cached_ending == Endings.Golden:
pause 0.5 pause 0.5
show snootgame_big with dissolve: # Renpy not allowing you to grab images from the gui folder is serious bullshit show snootgame_big with dissolve: # Renpy not allowing you to grab images from the gui folder is serious bullshit
subpixel True subpixel True
@ -248,7 +249,7 @@ label lending:
pause 50 pause 50
queue music 'audio/OST/amberlight brillance live end.ogg' queue music 'audio/OST/amberlight brillance live end.ogg'
queue music "<silence 1.0>" loop queue music "<silence 1.0>" loop
elif _return == 3: elif cached_ending == Endings.Tradwife:
play music "audio/OST/Dino Destiny Reader.ogg" play music "audio/OST/Dino Destiny Reader.ogg"
pause 0.5 pause 0.5
show c_credits_text: show c_credits_text:
@ -280,12 +281,12 @@ label lending:
stop music fadeout 5 stop music fadeout 5
scene black with Dissolve(3) scene black with Dissolve(3)
pause 2 pause 2
if tradwife: if cached_ending == Endings.Tradwife:
scene c10 with Dissolve(1.5) scene c10 with Dissolve(1.5)
pause 20 pause 20
scene black with Dissolve(2) scene black with Dissolve(2)
pause 1 pause 1
elif anonscore >= 4 and fangscore >= 4: elif cached_ending == Endings.Golden:
scene golden ending with Dissolve(1.5) scene golden ending with Dissolve(1.5)
pause 20 pause 20
scene black with Dissolve(2) scene black with Dissolve(2)

View file

@ -23,26 +23,26 @@ label storyline:
call chapter_10 from _call_chapter_10 call chapter_10 from _call_chapter_10
call chapter_11 from _call_chapter_11 call chapter_11 from _call_chapter_11
call get_ending from _call_get_ending_5 call get_ending from _call_get_ending_5
if _return == 4: if _return == Endings.Golden:
call chapter_11D from _call_chapter_11D call chapter_11D from _call_chapter_11D
call chapter_12D from _call_chapter_12D call chapter_12D from _call_chapter_12D
call chapter_12_5D from _call_chapter_12_5D call chapter_12_5D from _call_chapter_12_5D
call chapter_13D from _call_chapter_13D call chapter_13D from _call_chapter_13D
call chapter_14D from _call_chapter_14D call chapter_14D from _call_chapter_14D
elif _return == 3: elif _return == Endings.Tradwife:
$ tradwife = True $ tradwife = True
call chapter_11C from _call_chapter_11C call chapter_11C from _call_chapter_11C
call chapter_12C from _call_chapter_12C call chapter_12C from _call_chapter_12C
call chapter_12_5C from _call_chapter_12_5C call chapter_12_5C from _call_chapter_12_5C
call chapter_13C from _call_chapter_13C call chapter_13C from _call_chapter_13C
call chapter_14C from _call_chapter_14C call chapter_14C from _call_chapter_14C
elif _return == 2: elif _return == Endings.Doomer:
call chapter_11B from _call_chapter_11B call chapter_11B from _call_chapter_11B
call chapter_12B from _call_chapter_12B 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 # 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_13B from _call_chapter_13B
call chapter_14B from _call_chapter_14B call chapter_14B from _call_chapter_14B
else: else: # if all else fails, we just assume that we got Endings.Shooter
call chapter_11A from _call_chapter_11A call chapter_11A from _call_chapter_11A
call chapter_12A from _call_chapter_12A call chapter_12A from _call_chapter_12A
call chapter_12_5D from _call_chapter_12_5D_1 call chapter_12_5D from _call_chapter_12_5D_1

View file

@ -1,5 +1,15 @@
## Utility functions for game setup, debugging etc. ## Utility functions for game setup, debugging etc.
init python:
from enum import Enum
# Create compile-time macros to more easily track what ending goes to what without the need for magic numbers or strings that can be mistyped
class Endings(Enum):
Shooter = 0
Doomer = 1
Tradwife = 2
Golden = 3
label initstats(anon=0, fang=0, trad=False): label initstats(anon=0, fang=0, trad=False):
# Sets various game-related global variables # Sets various game-related global variables
# :param int anon: Anon's score # :param int anon: Anon's score
@ -14,10 +24,10 @@ label get_ending:
# To check what ending we're getting, call this label and then check the value of _return # 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 # Sensible to have this logic defined in only one place for consistency
if anonscore >= 4 and fangscore >= 4 and wingStory: if anonscore >= 4 and fangscore >= 4 and wingStory:
return(4) # Golden return(Endings.Golden)
elif anonscore >= 3 and fangscore <=4: elif anonscore >= 3 and fangscore <=4:
return(3) # Tradwife return(Endings.Tradwife)
elif anonscore <= 3 and fangscore >=3: elif anonscore <= 3 and fangscore >=3:
return(2) # Doomer return(Endings.Doomer)
else: else:
return(1) # Shooter return(Endings.Shooter)