见script-islands-event.rpy
, advanceProgession()
:
def advanceProgression():
"""
Increments the lvl of progression of the islands event,
it will do nothing if the player hasn't unlocked the islands yet or if
the current lvl is invalid
"""
# If this var is None, then the user hasn't unlocked the event yet
if persistent._mas_islands_start_lvl is None:
return
new_progress = _calcProgress(store.mas_xp.level(), persistent._mas_islands_start_lvl)
if new_progress == DEF_PROGRESS:
return
curr_progress = persistent._mas_islands_progress
# I hate this, but we have to push the ev from here
if (
# Has progress means has new unlocks
new_progress > curr_progress
# Not the first lvls, not the last lvl
and DEF_PROGRESS + 1 < new_progress < MAX_PROGRESS_LOVE - 1
# Hasn't seen the event yet
and persistent._mas_pm_cares_island_progress is None
and not store.seen_event("mas_monika_islands_progress")
# Hasn't visited the islands for a few days
and store.mas_timePastSince(store.mas_getEVL_last_seen("mas_monika_islands"), datetime.timedelta(days=3))
):
store.pushEvent("mas_monika_islands_progress")
# Now set new level
persistent._mas_islands_progress = min(max(new_progress, curr_progress), MAX_PROGRESS_LOVE)
# Run unlock callbacks
__handleUnlocks()
return
换言之:耐心点。