forked from SilverStudioGames/WTS
Yule ball, odd jobs, and menus
* Converted Hermione's jobs into new system and added them into the new 'Odd jobs' favor section * Converted Hermione's yule ball event chain into the new system * Improved milestone unlock for Hermione tier 4 * Improved menu exit choice handling * Moved unused labels outside the script files * Reimplemented disabled menu option
This commit is contained in:
parent
dd128db58c
commit
c13867b7eb
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
355
game/scripts/characters/hermione/events/jobs_NOT_IN_USE.txt
Normal file
355
game/scripts/characters/hermione/events/jobs_NOT_IN_USE.txt
Normal file
File diff suppressed because it is too large
Load Diff
@ -162,20 +162,27 @@ label hermione_favor_menu:
|
||||
jump hermione_favor_menu
|
||||
|
||||
"-Personal favours-" (icon="interface/icons/small/heart_red.webp"):
|
||||
label .favors:
|
||||
|
||||
call tutorial("hearts")
|
||||
|
||||
$ result = show_events_menu(hermione_favors)
|
||||
|
||||
if result:
|
||||
if result == "disabled":
|
||||
"You haven't unlocked this favor opportunity yet."
|
||||
jump .favors
|
||||
elif result == "exit":
|
||||
jump .skip_points_check
|
||||
else:
|
||||
$ result.start()
|
||||
|
||||
jump hermione_favor_menu
|
||||
|
||||
"-Public requests-" (icon="interface/icons/small/star_yellow.webp", style="disabled") if not game.daytime:
|
||||
nar "Public requests are available during the day only."
|
||||
jump .skip_points_check
|
||||
|
||||
"-Public requests-" (icon="interface/icons/small/star_yellow.webp") if game.daytime:
|
||||
label .requests:
|
||||
|
||||
if states.her.public_level >= 16 and not "public" in states.her.ev.yule_ball.variant:
|
||||
# Public whore ending choice
|
||||
$ renpy.choice_for_skipping()
|
||||
@ -192,10 +199,30 @@ label hermione_favor_menu:
|
||||
|
||||
$ result = show_events_menu(hermione_requests)
|
||||
|
||||
if result:
|
||||
if result == "disabled":
|
||||
"You haven't unlocked this request opportunity yet."
|
||||
jump .requests
|
||||
elif result == "exit":
|
||||
jump .skip_points_check
|
||||
else:
|
||||
$ result.start()
|
||||
|
||||
jump hermione_favor_menu
|
||||
"-Odd Jobs-" (icon="interface/icons/small/gold.webp"):
|
||||
label .odd_jobs:
|
||||
|
||||
$ result = show_events_menu(hermione_jobs, report_progress=False)
|
||||
|
||||
if result == "disabled":
|
||||
"You haven't unlocked this job opportunity yet."
|
||||
jump .odd_jobs
|
||||
elif result == "exit":
|
||||
jump .skip_points_check
|
||||
else:
|
||||
$ result.start()
|
||||
|
||||
"-Odd Jobs-" (icon="interface/icons/small/gold.webp", style="disabled") if not game.daytime:
|
||||
nar "Public requests are available during the day only."
|
||||
jump .skip_points_check
|
||||
|
||||
"-Public Shaming-" (icon="interface/icons/small/star_pink.webp", style="disabled") if not game.daytime:
|
||||
nar "Public Shaming events are available during the day only."
|
||||
|
@ -1,60 +1,5 @@
|
||||
label hermione_talk:
|
||||
menu:
|
||||
"-Working-" (icon="interface/icons/small/gold.webp") if states.her.favors_unlocked:
|
||||
label working_menu:
|
||||
menu:
|
||||
"-Work as a maid-" if game.daytime and her_outfit_maid.unlocked:
|
||||
jump job_1
|
||||
|
||||
"-Work as a maid-" (style="disabled") if game.daytime and not her_outfit_maid.unlocked:
|
||||
gen "(I'll need an outfit for hermione if I want her to work.)" ("base", xpos="far_left", ypos="head")
|
||||
jump working_menu
|
||||
|
||||
"-Work as a maid-" (style="disabled") if not game.daytime:
|
||||
"This job is only available during the day."
|
||||
jump working_menu
|
||||
|
||||
#"-Work as a cheerleader for Gryffindor-" if game.daytime and (hg_cheer_g_ITEM.unlocked or hg_cheer_g_sexy_ITEM.unlocked):
|
||||
#jump job_3
|
||||
|
||||
#"-Work as a cheerleader for Gryffindor-" if game.daytime and not (hg_cheer_g_ITEM.unlocked or hg_cheer_g_sexy_ITEM.unlocked):
|
||||
#gen "(I'll need an outfit for hermione if I want her to work.)" ("base", xpos="far_left", ypos="head")
|
||||
#jump working_menu
|
||||
|
||||
#"-Work as a cheerleader for Gryffindor-" (style="disabled") if not game.daytime:
|
||||
#"This job is only available during the day."
|
||||
#jump working_menu
|
||||
|
||||
#"-Work as a cheerleader for Slytherin-" if game.daytime and (hg_cheer_s_ITEM.unlocked or hg_cheer_s_sexy_ITEM.unlocked):
|
||||
#jump job_4
|
||||
|
||||
#"-Work as a cheerleader for Slytherin-" if game.daytime and not (hg_cheer_s_ITEM.unlocked or hg_cheer_s_sexy_ITEM.unlocked):
|
||||
#gen "(I'll need a slytherin cheerleader outfit for hermione if I want her to work.)" ("base", xpos="far_left", ypos="head")
|
||||
#jump working_menu
|
||||
|
||||
#"-Work as a cheerleader for Slytherin-" (style="disabled") if not game.daytime:
|
||||
#"This job is only available during the day."
|
||||
#jump working_menu
|
||||
|
||||
"-Hidden-" (style="disabled") if not states.her.ev.promote_cardgame.offered or not poker_outfit_ITEM.unlocked:
|
||||
"You haven't unlocked this job opportunity yet."
|
||||
jump working_menu
|
||||
|
||||
"-Work by advertising the card game-" (style="disabled") if states.her.ev.promote_cardgame.offered and poker_outfit_ITEM.unlocked and not her_outfit_poker.unlocked:
|
||||
gen "(I'll need an outfit for Hermione if I want her to work.)" ("base", xpos="far_left", ypos="head")
|
||||
gen "(Maybe the twins have something fitting for her in their stock.)" ("base", xpos="far_left", ypos="head")
|
||||
jump working_menu
|
||||
|
||||
"-Work by advertising the card game-" (style="disabled") if not game.daytime and states.her.ev.promote_cardgame.offered and her_outfit_poker.unlocked:
|
||||
"This job is only available during the day."
|
||||
jump working_menu
|
||||
|
||||
"-Work by advertising the card game-" if game.daytime and states.her.ev.promote_cardgame.offered and her_outfit_poker.unlocked:
|
||||
jump job_5
|
||||
|
||||
"-Never mind-":
|
||||
jump hermione_talk
|
||||
|
||||
### Astoria ###
|
||||
"-Ask her to help Tonks-" (icon="interface/icons/small/tonks.webp") if states.ast.ev.intro.e1_complete and not states.ast.ev.intro.e3_complete:
|
||||
if states.ast.ev.intro.e2_ask_hermione:
|
||||
|
@ -1,5 +1,7 @@
|
||||
### Yule Ball Ending ###
|
||||
|
||||
default her_ev_yule_ball_ending_e1 = Event(id="her_ev_yule_ball_ending_e1", wait=2, label="ball_ending_E1", priority=0, req="game.daytime", repeat=False)
|
||||
|
||||
label ball_ending_start:
|
||||
gen "[name_hermione_genie], that ball you've mentioned..." ("base", xpos="far_left", ypos="head")
|
||||
gen "When did you say it would start again?" ("base", xpos="far_left", ypos="head")
|
||||
@ -16,10 +18,10 @@ label ball_ending_start:
|
||||
|
||||
$ states.her.ev.yule_ball.started = True
|
||||
$ ss_event_pause += 2
|
||||
$ her_ev_yule_ball_ending_e1.enqueue()
|
||||
|
||||
jump hermione_favor_menu
|
||||
|
||||
|
||||
screen genie_snape_shake_hands(shake=False):
|
||||
if shake:
|
||||
add "characters/snape/chibis/handshake/hand_01.webp" pos (220, 205) zoom 0.5
|
||||
|
@ -1,4 +1,9 @@
|
||||
|
||||
default her_ev_yule_ball_e4 = Event(id="her_ev_yule_ball_e4", wait=2, label="ball_quest_E4", priority=15, req="game.daytime", repeat=False)
|
||||
default her_ev_yule_ball_e3 = Event(id="her_ev_yule_ball_e3", wait=4, label="ball_quest_E3", priority=15, req="game.daytime", repeat=False, subevents=["her_ev_yule_ball_e4"])
|
||||
default her_ev_yule_ball_e2 = Event(id="her_ev_yule_ball_e2", wait=1, label="ball_quest_E2", priority=15, req="game.daytime", repeat=False, subevents=["her_ev_yule_ball_e3"])
|
||||
default her_ev_yule_ball_e1 = Event(id="her_ev_yule_ball_e1", label="ball_quest_E1", priority=15, req="states.her.tier >= 6 and game.daytime and not states.her.ev.yule_ball.e1_complete", autoenqueue=True, repeat=False, subevents=["her_ev_yule_ball_e2"])
|
||||
|
||||
#hermione asks genie about who will be in-charge of the ball
|
||||
label ball_quest_E1:
|
||||
stop music fadeout 1.0
|
||||
@ -609,7 +614,7 @@ label ball_quest_E4:
|
||||
gen "[name_hermione_genie]?" ("base", xpos="far_left", ypos="head")
|
||||
her "Sorry to disturb you [name_genie_hermione]..." ("open", "base", "worried", "mid", xpos="right", ypos="base")
|
||||
her "I came to apologise for my..." ("open", "base", "worried", "R")
|
||||
her "... My hysterical behaviour yesterday."
|
||||
her "... My hysterical behaviour the other day."
|
||||
gen "Sure thing, don't worry about it." ("base", xpos="far_left", ypos="head")
|
||||
her "Thank you, [name_genie_hermione]." ("open", "base", "base", "mid")
|
||||
her "Still, I cannot help but feel awful for causing a scene..." ("open", "closed", "angry", "mid")
|
||||
|
@ -242,22 +242,6 @@ label quests:
|
||||
|
||||
$ play_potion_return("astoria")
|
||||
|
||||
#
|
||||
# SEVERUS SNAPE - EVENTS
|
||||
#
|
||||
|
||||
if ss_event_pause == 0:
|
||||
if game.daytime:
|
||||
# Ending events
|
||||
if states.her.level >= 15 and states.her.ev.yule_ball.e1_complete and not states.her.ev.yule_ball.e2_complete:
|
||||
# Snape complains that appointing Hermione in the Autumn Ball committee was a mistake.
|
||||
jump ball_quest_E2
|
||||
|
||||
else:
|
||||
# Ending events
|
||||
if states.her.ev.yule_ball.started and not states.her.ev.yule_ball.complete:
|
||||
jump ball_ending_E1
|
||||
|
||||
#
|
||||
# NYMPHADORA TONKS - EVENTS
|
||||
#
|
||||
@ -281,30 +265,8 @@ label quests:
|
||||
|
||||
if hg_event_pause == 0:
|
||||
if game.daytime:
|
||||
# Ending events
|
||||
if states.her.level >= 15 and not states.her.ev.yule_ball.e1_complete:
|
||||
# Hermione wants to be in the Autumn Ball committee.
|
||||
jump ball_quest_E1
|
||||
|
||||
if states.her.level >= 18 and states.her.ev.yule_ball.e2_complete and not states.her.ev.yule_ball.e3_complete:
|
||||
# Hermione cries about having no proper dress for the Ball.
|
||||
jump ball_quest_E3
|
||||
|
||||
if states.her.level >= 18 and states.her.ev.yule_ball.e3_complete and not states.her.ev.yule_ball.e4_complete:
|
||||
# Hermione apologizes for the day (event) before.
|
||||
jump ball_quest_E4
|
||||
pass
|
||||
else:
|
||||
if current_job == "maid":
|
||||
jump maid_responses
|
||||
elif current_job == "barmaid":
|
||||
jump barmaid_responses
|
||||
elif current_job == "gryffindor_cheerleader":
|
||||
jump gryffindor_cheer_responses
|
||||
elif current_job == "slytherin_cheerleader":
|
||||
jump slytherin_cheer_responses
|
||||
elif current_job == "promoter":
|
||||
jump hermione_helping_selling_cards
|
||||
|
||||
python:
|
||||
for i in hg_ps_list: #Call any public shaming event if it's in progress
|
||||
if i.inProgress:
|
||||
|
@ -305,7 +305,9 @@ init -1 python:
|
||||
# We need to add these after defaults are finished.
|
||||
renpy.config.label_callbacks.append(execute_event_callbacks)
|
||||
|
||||
def show_events_menu(queues, filter=False, **kwargs):
|
||||
def show_events_menu(queues, filter=False, report_progress=True, **kwargs):
|
||||
# This function is a stop gap until we update interfaces. Because it's not tied to any internals,
|
||||
# it can be easily replaced or changed in the future without breaking save compatibility.
|
||||
def menu_hints(queue, filter):
|
||||
filtered_queue = queue.list_filtered() if filter is False else queue.list_filtered(filter)
|
||||
total_applicable = len(filtered_queue)
|
||||
@ -313,17 +315,15 @@ init -1 python:
|
||||
completed = 0
|
||||
icons = []
|
||||
|
||||
path = "interface/icons/small/"
|
||||
|
||||
for ev in filtered_queue:
|
||||
if ev.completed:
|
||||
icons.append("interface/icons/small/heart_red.webp")
|
||||
icons.append(f"interface/icons/small/heart_red.webp")
|
||||
completed += 1
|
||||
elif ev.completed_failed:
|
||||
icons.append("interface/icons/small/heart_black.webp")
|
||||
icons.append(f"interface/icons/small/heart_black.webp")
|
||||
completed += 1
|
||||
else:
|
||||
icons.append("interface/icons/small/heart_empty.webp")
|
||||
icons.append(f"interface/icons/small/heart_empty.webp")
|
||||
|
||||
hints = f" {completed}/{total_applicable}/{total_events}"
|
||||
|
||||
@ -336,20 +336,30 @@ init -1 python:
|
||||
queue = getattr(store, queue)
|
||||
|
||||
hints, icons = menu_hints(queue, filter)
|
||||
|
||||
_kwargs = {"progress": icons}
|
||||
title = f"-{title}-"
|
||||
|
||||
if config.developer:
|
||||
title += hints
|
||||
|
||||
if ( ev := queue.next()) and ev.requirements_met():
|
||||
action = queue
|
||||
else:
|
||||
action = "disabled"
|
||||
|
||||
_kwargs = {}
|
||||
|
||||
if report_progress:
|
||||
_kwargs = {"progress": icons}
|
||||
|
||||
if action == "disabled":
|
||||
_kwargs["style"] = "disabled"
|
||||
|
||||
location = renpy.game.context().current
|
||||
choice = ui.ChoiceReturn(title, queue, location, kwargs=_kwargs)
|
||||
choice = ui.ChoiceReturn(title, action, location, kwargs=_kwargs)
|
||||
|
||||
l.append( (title, choice) )
|
||||
|
||||
l.append( ("-Never mind-", False) )
|
||||
|
||||
l.append( ("-Never mind-", "exit") )
|
||||
return renpy.display_menu(l, **kwargs)
|
||||
|
||||
config.after_default_callbacks.append(initialize_event_callbacks)
|
||||
|
Loading…
Reference in New Issue
Block a user