From b251dc14ef369b62a105d46fd6621c2d94561b62 Mon Sep 17 00:00:00 2001 From: LoafyLemon Date: Sun, 15 Sep 2024 18:13:00 +0100 Subject: [PATCH] Add new achievements --- .../hermione/events/items/vibrators.rpy | 2 + .../hermione/events/potions/breast_expand.rpy | 3 +- .../hermione/events/potions/polyjuice_cat.rpy | 2 + game/scripts/characters/luna/events/intro.rpy | 2 + game/scripts/events/variables.rpy | 1 + game/scripts/gui/settings.rpy | 2 +- game/scripts/interface/achievements.rpy | 41 +++++++++++-------- game/scripts/inventory/classes.rpy | 2 + game/scripts/inventory/use_gifts.rpy | 6 +-- .../rooms/main_room/objects/jerk_off.rpy | 7 +++- 10 files changed, 45 insertions(+), 23 deletions(-) diff --git a/game/scripts/characters/hermione/events/items/vibrators.rpy b/game/scripts/characters/hermione/events/items/vibrators.rpy index 70083eb9..37b66b5c 100644 --- a/game/scripts/characters/hermione/events/items/vibrators.rpy +++ b/game/scripts/characters/hermione/events/items/vibrators.rpy @@ -3315,6 +3315,8 @@ label hg_vibrators_public_return: with fade call weather_sound + $ achievements.unlock("vibin") + gen "That's one hell of an orgasm... And here I thought I took that crown." ("base", xpos="far_left", ypos="head") gen "So, is this like a bad ending or what?" ("base", xpos="far_left", ypos="head") her @ cheeks blush "A bad ending?" ("angry", "base", "base", "mid") diff --git a/game/scripts/characters/hermione/events/potions/breast_expand.rpy b/game/scripts/characters/hermione/events/potions/breast_expand.rpy index 1f588699..3a057835 100644 --- a/game/scripts/characters/hermione/events/potions/breast_expand.rpy +++ b/game/scripts/characters/hermione/events/potions/breast_expand.rpy @@ -720,10 +720,10 @@ label her_potion_breasts_give: play sound "sounds/boing04.ogg" with vpunch + $ achievements.unlock("tittypotion") $ hermione.equip(her_chest_breasts3) with d3 - if states.her.level < 19: #Under blowjob level her @ cheeks blush "{shake}*Ahhhh*!!!{/shake}" ("scream", "wide", "base", "down") her @ cheeks blush "They've grown even bigger!" ("angry", "base", "base", "down") @@ -755,6 +755,7 @@ label her_potion_breasts_give: play sound "sounds/boing04.ogg" with vpunch + $ achievements.unlock("tittypotion") $ hermione.equip(her_chest_breasts3) her @ cheeks blush "{shake}Aaaah!!!{/shake}" ("scream", "wide", "base", "stare") with d3 diff --git a/game/scripts/characters/hermione/events/potions/polyjuice_cat.rpy b/game/scripts/characters/hermione/events/potions/polyjuice_cat.rpy index dd398d3f..e7fc5350 100644 --- a/game/scripts/characters/hermione/events/potions/polyjuice_cat.rpy +++ b/game/scripts/characters/hermione/events/potions/polyjuice_cat.rpy @@ -368,6 +368,8 @@ label her_potion_cat_return: show screen gfx_effect(584, 340, img="smoke", zoom=0.85) $ hermione.equip(her_outfit_cat3, remove_old=False) + $ achievements.unlock("kittypotion") + her @ cheeks blush "" ("clench", "narrow", "base", "down") gen "*Hah-ha-Hah*!" ("grin", xpos="far_left", ypos="head") her @ cheeks blush "There, I've drunk it..." ("angry", "base", "base", "mid") diff --git a/game/scripts/characters/luna/events/intro.rpy b/game/scripts/characters/luna/events/intro.rpy index 0cc3413b..eca74867 100644 --- a/game/scripts/characters/luna/events/intro.rpy +++ b/game/scripts/characters/luna/events/intro.rpy @@ -267,6 +267,8 @@ label luna_intro_E1: lun "{shake}*Snore*{/shake}" ("soft", "closed", "low", "mid", trans=dissolve) gen "Right..." ("base", xpos="far_left", ypos="head") + $ achievements.unlock("satan") + jump .choices "-Summon Hermione-": diff --git a/game/scripts/events/variables.rpy b/game/scripts/events/variables.rpy index c9bf330a..bba59723 100644 --- a/game/scripts/events/variables.rpy +++ b/game/scripts/events/variables.rpy @@ -38,6 +38,7 @@ default states.paperwork_unlocked = False default states.paperwork_chapters = 0 default states.paperwork_reports = 0 default states.paperwork_reports_times = 0 +default states.jerked_off_times = 0 default states.healing_potions = 0 # TODO: This should probably be turned into an item. diff --git a/game/scripts/gui/settings.rpy b/game/scripts/gui/settings.rpy index 2df89576..6ec4a789 100644 --- a/game/scripts/gui/settings.rpy +++ b/game/scripts/gui/settings.rpy @@ -10,7 +10,7 @@ screen settings_general(): textbutton _("Tutorials") action settings.Toggle("tutorials") if not renpy.mobile: - textbutton _("Tooltips") action settings.Toggle("tooltip") tooltip _("This is a tooltip.") + textbutton _("Tooltips") action [settings.Toggle("tooltip"), Function(achievements.unlock, "tooltip")] tooltip _("This is a tooltip.") textbutton _("System Cursor") action Preference("system cursor", "toggle") textbutton _("Autosaves") action ToggleField(store, "_autosave") textbutton _("Automatic Update Checks") action settings.Toggle("updates") diff --git a/game/scripts/interface/achievements.rpy b/game/scripts/interface/achievements.rpy index 425eaa70..1dc60032 100644 --- a/game/scripts/interface/achievements.rpy +++ b/game/scripts/interface/achievements.rpy @@ -4,6 +4,22 @@ init -5 python: AchievementKind.title = AchievementKind.name define achievements_db = { + # GENERAL + "tooltip": AchievementKind("general", "A big surprise", "Discovered more than the tip of the tool inside the settings.", "interface/icons/silver_scroll.webp", None, None), + "Credits": AchievementKind("general", "New game, who this?", "Watched the credits.", "interface/icons/silver_scroll.webp", None, None), + "gold": AchievementKind("general", "Gold Digger", "Acquired 10,000 gold coins.", "interface/icons/gold.webp", "states.env.gold", 10000), + "drunkard": AchievementKind("general", "Drunken Master", "Acquired 25 bottles of wine.", "interface/icons/wine.webp", "wine_ITEM.owned", 25), + "workaholic": AchievementKind("general", "Workaholic", "Completed five full reports.", "interface/icons/generic_scroll.webp", "states.paperwork_reports_times", 5), + "fireplace": AchievementKind("general", "Feel the Heat", "Started fire 5 times.", "images/rooms/main_room/fireplace/fireplace_idle.webp", "states.fireplace_started_times", 5), + "peta": AchievementKind("general", "I think I forgot something...", "Forgot to feed the bird 50 days in a row.", "images/rooms/main_room/phoenix/phoenix_01.webp", "(states.env.day - states.bird_fed_times)", 50), + "jerkoff": AchievementKind("general", "Regular Wand Polish", "Jerked off 10 times.", "images/rooms/main_room/phoenix/phoenix_01.webp", "states.jerked_off_times", 10), + "petpal": AchievementKind("general", "Regular stroking", "Petted the bird 25 times.", "images/rooms/main_room/phoenix/phoenix_01.webp", "states.bird_petted_times", 25), + "postman": AchievementKind("general", "Poster Boy", "Bought all posters from the store.", "interface/icons/agrabah_poster.webp", None, None), + "hats": AchievementKind("general", "Mad Hatter", "Bought all hats from the store.", "interface/icons/icon_gambler_hat.webp", None, None), + "bros": AchievementKind("general", "Bros before hoes", "Became best pals with Snape.", "interface/icons/head/snape.webp", None, None), + "decorator": AchievementKind("general", "Decorator", "Applied a decoration.", "interface/icons/stag_trophy.webp", None, None), + # PROGRESSION + "firstpotion": AchievementKind("progression", "Brewing 101", "Brewed your first potion.", "interface/icons/head/hermione.webp", None, None), "unlockher": AchievementKind("progression", "Granger Danger", "Unlocked Hermione Granger.", "interface/icons/head/hermione.webp", None, None), "unlockcho": AchievementKind("progression", "Chang Dynasty", "Unlocked Cho Chang.", "interface/icons/head/cho.webp", None, None), "unlocklun": AchievementKind("progression", "Looney Tunes", "Unlocked Luna Lovegood.", "interface/icons/head/luna.webp", None, None), @@ -19,28 +35,21 @@ define achievements_db = { "nerdgasm": AchievementKind("progression", "Nerdgasm", "Done the deed with Hermione.", "interface/icons/head/hermione.webp", None, None), "start": AchievementKind("progression", "Welcome to Hogwarts!", "Finished the intro.", "interface/icon.webp", None, None), "ending": AchievementKind("progression", "Bittersweet Farewell", "Reached the ending.", "interface/icons/silver.webp", None, None), - # GENERAL - "Credits": AchievementKind("general", "New game, who this?", "Watched the credits.", "interface/icons/silver_scroll.webp", None, None), - "gold": AchievementKind("general", "Gold Digger", "Acquired 10,000 gold coins.", "interface/icons/gold.webp", "states.env.gold", 10000), - "drunkard": AchievementKind("general", "Drunken Master", "Acquired 25 bottles of wine.", "interface/icons/wine.webp", "wine_ITEM.owned", 25), - "workaholic": AchievementKind("general", "Workaholic", "Completed five full reports.", "interface/icons/generic_scroll.webp", "states.paperwork_reports_times", 5), - "fireplace": AchievementKind("general", "Feel the Heat", "Started fire 5 times.", "images/rooms/main_room/fireplace/fireplace_idle.webp", "states.fireplace_started_times", 5), - "peta": AchievementKind("general", "I think I forgot something...", "Forgot to feed the bird 50 days in a row.", "images/rooms/main_room/phoenix/phoenix_01.webp", "(states.env.day - states.bird_fed_times)", 50), - "petpal": AchievementKind("general", "Regular stroking", "Petted the bird 25 times.", "images/rooms/main_room/phoenix/phoenix_01.webp", "states.bird_petted_times", 25), - "postman": AchievementKind("general", "Poster Boy", "Bought all posters from the store.", "interface/icons/agrabah_poster.webp", None, None), - "hats": AchievementKind("general", "Mad Hatter", "Bought all hats from the store.", "interface/icons/icon_gambler_hat.webp", None, None), - "daddy": AchievementKind("events", "Who's your daddy?", "Been called a daddy.", "interface/icons/head/hermione.webp", None, None), - "bros": AchievementKind("general", "Bros before hoes", "Became best pals with Snape.", "interface/icons/head/snape.webp", None, None), - "knock": AchievementKind("events", "*Knock* *knock*", "Told Hermione to fuck off.", "images/rooms/main_room/door/door_idle.webp", None, None), - "decorator": AchievementKind("general", "Decorator", "Applied a decoration.", "interface/icons/stag_trophy.webp", None, None), # EVENTS + "satan": AchievementKind("events", "Daddy Lucifer", "Made a pact with the right devil.", "interface/icons/head/hermione.webp", None, None), + "vibin": AchievementKind("events", "Just Vibin", "Brought pure joy to Hermione's life with expert use of vibrators.", "interface/icons/head/hermione.webp", None, None), + "tittypotion": AchievementKind("events", "Tig Ol' bitties", "Used a potion to increase one's breast size to the max.", "interface/icons/head/hermione.webp", None, None), + "kittypotion": AchievementKind("events", "Here kitty, kitty!", "Hermione overdosed on polyjuice potion.", "interface/icons/head/hermione.webp", None, None), + "daddy": AchievementKind("events", "Who's your daddy?", "Been called a daddy.", "interface/icons/head/hermione.webp", None, None), + "knock": AchievementKind("events", "*Knock* *knock*", "Told Hermione to fuck off.", "images/rooms/main_room/door/door_idle.webp", None, None), "pantiesfap": AchievementKind("events", "I sneezed on them...", "Rubbed one out on someone's panties.", "characters/genie/chibis/jerk_off/02.webp", None, None), "Cardwin": AchievementKind("events", "Time to duel", "Won a card game duel.", "interface/icons/cards.webp", None, None), "mirror": AchievementKind("events", "Mirror, mirror on the wall..", "Found the Room of Requirements.", "images/rooms/room_of_requirement/mirror_hover.webp", None, None), "busted": AchievementKind("events", "BUSTED!", "Got busted for busting a nut.", "interface/icons/head/hermione.webp", None, None), # SECRETS - "puzzle": AchievementKind("secrets", "Brainiac", "Solved an incredibly complex sliding tiles puzzle...", "interface/icons/item_potion.webp", None, None), - "flashback": AchievementKind("secrets", "Flashback", "Rolled back to the future at the right moment...", "interface/icons/cards.webp", None, None), + "safetyfirst": AchievementKind("secrets", "Safety First", "Wore a condom when the time was right.", "interface/icons/head/hermione.webp", None, None), + "puzzle": AchievementKind("secrets", "Brainiac", "Solved an incredibly complex sliding tiles puzzle.", "interface/icons/item_potion.webp", None, None), + "flashback": AchievementKind("secrets", "Flashback", "Rolled back to the future at the right moment.", "interface/icons/cards.webp", None, None), } init python hide: diff --git a/game/scripts/inventory/classes.rpy b/game/scripts/inventory/classes.rpy index 5403da71..6059fc76 100644 --- a/game/scripts/inventory/classes.rpy +++ b/game/scripts/inventory/classes.rpy @@ -172,6 +172,8 @@ init python: if not self.has_ingredients(): return + achievements.unlock("firstpotion") + for i in self.recipe: if not i.infinite: i.owned -= 1 diff --git a/game/scripts/inventory/use_gifts.rpy b/game/scripts/inventory/use_gifts.rpy index d40ab293..23159811 100644 --- a/game/scripts/inventory/use_gifts.rpy +++ b/game/scripts/inventory/use_gifts.rpy @@ -593,7 +593,7 @@ label hg_condom_balloon: # Reset clothing. $ hermione.equip(her_outfit_last) $ hermione.set_cum(None) - #TODO achievement popup + $ achievements.unlock("safetyfirst") jump main_room_menu label ll_condom_balloon: @@ -665,7 +665,7 @@ label ll_condom_balloon: # Reset clothing. $ luna.equip(lun_outfit_last) $ luna.set_cum(None) - #TODO achievement popup + $ achievements.unlock("safetyfirst") jump main_room_menu label cc_condom_balloon: @@ -809,5 +809,5 @@ label cc_condom_balloon: $ cho.wear("all") else: $ cho.equip(cho_outfit_last) - #TODO achievement popup + $ achievements.unlock("safetyfirst") jump main_room_menu diff --git a/game/scripts/rooms/main_room/objects/jerk_off.rpy b/game/scripts/rooms/main_room/objects/jerk_off.rpy index f75eff96..d1ab0d2d 100644 --- a/game/scripts/rooms/main_room/objects/jerk_off.rpy +++ b/game/scripts/rooms/main_room/objects/jerk_off.rpy @@ -4,6 +4,8 @@ label jerk_off: + $ states.jerked_off_times += 1 + call gen_chibi("jerk_off_behind_desk") with d3 pause 1 @@ -189,8 +191,6 @@ label jerk_off: nar "You cum on the floor..." - - #Finished cumming call gen_chibi("cum_behind_desk_done") with d3 @@ -209,6 +209,9 @@ label jerk_off: call gen_chibi("sit_behind_desk") + if states.jerked_off_times >= 10: + $ achievements.unlock("jerkoff") + if states.env.daytime: jump night_start else: