init 5: python: config.fix_rollback_without_choice = False config.rollback_enabled = True config.rollback_length = 128 config.console = True location_dict = { "bg classroom": "In Class", "bg dangerroom": "The Danger Room", "bg teacher": "Teaching", "bg desk": "In Class", "bg player": "Player Room", "bg pool": "The Pool", "bg showerroom": "The Showers", "bg campus": "University Square", "bg study": "Xavier's Study", "bg classroom": "In Class", "bg restaurant": "At Restaurant", "bg mall": "At the Mall", "bg shop": "At the Mall", "bg dressing": "Dressing Room", "nearby": "Nearby", "bg rogue": "Rogue's Room", "bg kitty": "Kitty's Room", "bg emma": "Emma's Room", "bg laura": "Laura's Room", "bg jean": "Jean's Room", "bg storm": "Storm's Room", "bg jubes": "Jubilee's Room", "bg gwen": "Gwen's Room", "bg betsy": "Betsy's Room", "bg doreen": "Doreen's Room" } def level_up_girl(girl): if girl.Lvl >= 10: return girl.XPgoal = int((1.15 * girl.XPgoal) + 100) girl.Lvl += 1 girl.StatPoints += 1 return def level_up_player(): if Player.Lvl >= 10: return Player.XPgoal = int((1.15 * Player.XPgoal) + 100) Player.Lvl += 1 Player.StatPoints += 1 if Player.Lvl <5: Count = 1 elif Player.Lvl <9: Count = 2 else: Count = 3 Player.Income += Count return def get_current_location(girl): if girl.Loc == girl.Home: return "Her Room" if girl.Loc in location_dict: return location_dict[girl.Loc] return girl.Loc def reset_time(): global Round Round = 100 renpy.restart_interaction() transform framezoom(factor=1.0): xzoom factor transform framezoominfo: xzoom .6 yzoom -1.0 init 10: python: config.label_overrides["Study_Room_Explore"] = "Study_Room_Explore_Easy" screen Status_Screen: default tt = Tooltip(" ") if 'AlphaCock' in globals(): button: pos (50, 600) xysize (90, 100) action ToggleVariable("AlphaCock",1,0) background None if Partner in TotalGirls: $ show_girl_attraction = Partner in TotalGirls and Ch_Focus in TotalGirls and hasattr(Ch_Focus, "Like" + Partner.Tag) frame: background None pos (-100,30) add AlphaMask("images/BarBackdrop_"+Partner.Tag+".png", "Alt_Screen_Mask") at framezoom(1.11 if show_girl_attraction else 1.0) frame: style_group "stat_bar" pos (89 if show_girl_attraction else 100, 25) background None has vbox hbox: imagebutton idle "images/iconlust.png" hover "images/iconlust.png" action NullAction() hovered tt.Action("Lust: [Partner.Lust]") bar value FieldValue(Partner, "Lust", 100, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfull.png" right_bar "images/barempty.png" left_gutter 3 right_gutter 5 thumb None thumb_offset 0 yoffset 2 imagebutton idle "images/iconlove.png" hover "images/iconlove.png" action NullAction() hovered tt.Action("Love: [Partner.Love]") bar value FieldValue(Partner, "Love", 1000, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfull.png" right_bar "images/barempty.png" left_gutter 3 right_gutter 5 thumb None thumb_offset 0 yoffset 2 imagebutton idle "images/iconobed.png" hover "images/iconobed.png" action NullAction() hovered tt.Action("Obedience: [Partner.Obed]") bar value FieldValue(Partner, "Obed", 1000, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfullO.png" right_bar "images/barempty.png" left_gutter 3 right_gutter 5 thumb None thumb_offset 0 yoffset 2 imagebutton idle "images/iconinbt.png" hover "images/iconinbt.png" action NullAction() hovered tt.Action("Inhibitions: [Partner.Inbt]") bar value FieldValue(Partner, "Inbt", 1000, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfulli.png" right_bar "images/barempty.png" left_gutter 3 right_gutter 5 thumb None thumb_offset 0 yoffset 2 if show_girl_attraction: if Ch_Focus == JeanX and "Jeaned" in Partner.Traits and hasattr(JeanX, "LikeS" + Partner.Tag): $ variable1 = getattr(JeanX, "LikeS" + Partner.Tag) imagebutton idle "images/Button_" + Partner.Tag + "_idle.png" hover "images/Button_" + Partner.Tag + "_hover.png" action NullAction() hovered tt.Action("[Partner.Name] is mind controlled by [Ch_Focus.Name]: Likes it [variable1].\nLet Prof. X catch Jean twice to change her ways.") at TinyButtons yoffset 2 bar value FieldValue(JeanX, "LikeS" + Partner.Tag, 1000, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfull.png" right_bar "images/barempty.png" left_gutter 3 right_gutter 5 thumb None thumb_offset 0 yoffset 2 elif hasattr(Ch_Focus, "Like" + Partner.Tag): $ variable1 = getattr(Ch_Focus, "Like" + Partner.Tag) imagebutton idle "images/Button_" + Partner.Tag + "_idle.png" hover "images/Button_" + Partner.Tag + "_hover.png" action NullAction() hovered tt.Action("[Ch_Focus.Name] loves [Partner.Name]: [variable1]") at TinyButtons yoffset 2 bar value FieldValue(Ch_Focus, "Like" + Partner.Tag, 1000, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfull.png" right_bar "images/barempty.png" left_gutter 3 right_gutter 5 thumb None thumb_offset 0 yoffset 2 elif Ch_Focus in TotalGirls and hasattr(Ch_Focus, "Thirst") and hasattr(Ch_Focus, "DailyActions") and hasattr(Ch_Focus, "RecentActions"): if Ch_Focus.Thirst > 10 or "angry" in Ch_Focus.DailyActions + Ch_Focus.RecentActions: frame: background None pos (-100, 720) add AlphaMask("images/BarBackdrop_"+Ch_Focus.Tag+".png", "Alt_Screen_Mask") at framezoominfo frame: pos (100, 20) background None has hbox if "angry" in Ch_Focus.DailyActions + Ch_Focus.RecentActions: imagebutton idle "images/Button_" + Ch_Focus.Tag + "_idle.png" hover "images/Button_" + Ch_Focus.Tag + "_hover.png" action Ch_Focus.DrainWord("angry") hovered tt.Action("Click to reset [Ch_Focus.Name]'s mood.") at TinyButtons xoffset -2 yoffset -4 text Ch_Focus.Name + " is angry with you." size 12 elif Ch_Focus.Thirst > 90: text Ch_Focus.Name + " wants you to fuck her brains out." size 12 elif Ch_Focus.Thirst > 80: text Ch_Focus.Name + " wants to fuck with you." size 12 elif Ch_Focus.Thirst > 60: text Ch_Focus.Name + " wants to get dirty with you." size 12 elif Ch_Focus.Thirst > 30: text Ch_Focus.Name + " wants to play with you." size 12 else: text Ch_Focus.Name + " wants to hang out with you." size 12 if Ch_Focus in TotalGirls: add "images/BarBackdrop_"+Ch_Focus.Tag+".png" frame: style_group "stat_bar" xminimum 130 background None has vbox hbox: imagebutton idle "images/iconlove.png" hover "images/iconlove.png" action NullAction() hovered tt.Action("Love: [Ch_Focus.Love]") bar value FieldValue(Ch_Focus, "Love", 1000, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfull.png" right_bar "images/barempty.png" left_gutter 3 right_gutter 5 thumb None thumb_offset 0 hbox: imagebutton idle "images/iconlust.png" hover "images/iconlust.png" action NullAction() hovered tt.Action("Lust: [Ch_Focus.Lust]") bar value FieldValue(Ch_Focus, "Lust", 100, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfull.png" right_bar "images/barempty.png" left_gutter 3 right_gutter 5 thumb None thumb_offset 0 frame: xminimum 130 xpos 130 background None has vbox hbox: imagebutton idle "images/iconobed.png" hover "images/iconobed.png" action NullAction() hovered tt.Action("Obedience: [Ch_Focus.Obed]") bar value FieldValue(Ch_Focus, "Obed", 1000, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfullO.png" right_bar "images/barempty.png" left_gutter 3 right_gutter 5 thumb None thumb_offset 0 hbox: imagebutton idle "images/iconaddict.png" hover "images/iconaddict.png" action NullAction() hovered tt.Action("Addiction: [Ch_Focus.Addict]") bar value FieldValue(Ch_Focus, "Addict", 100, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfull.png" right_bar "images/barempty.png" left_gutter 3 right_gutter 6 thumb None thumb_offset 0 frame: xminimum 130 xpos 260 background None has vbox hbox: imagebutton idle "images/iconinbt.png" hover "images/iconinbt.png" action NullAction() hovered tt.Action("Inhibitions: [Ch_Focus.Inbt]") bar value FieldValue(Ch_Focus, "Inbt", 1000, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfulli.png" right_bar "images/barempty.png" left_gutter 3 right_gutter 5 thumb None thumb_offset 0 hbox: imagebutton idle "images/iconaddictrate.png" hover "images/iconaddictrate.png" action NullAction() hovered tt.Action("Addiction Rate: [Ch_Focus.Addictionrate]") bar value FieldValue(Ch_Focus, "Addictionrate", 10, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfull.png" right_bar "images/barempty.png" left_gutter 3 right_gutter 5 thumb None thumb_offset 0 showif not Trigger: imagebutton auto "images/Button_"+Ch_Focus.Tag+"_%s.png" action ShowTransient("Focus_Map") xpos 690 ypos 5 focus_mask True showif config.developer: imagebutton auto "images/Button_"+Ch_Focus.Tag+"_%s.png" action ui.callsinnewcontext("StatHacks",Ch_Focus) xpos 730 ypos 5 focus frame: xminimum 130 xpos 390 background None has vbox hbox: showif not hasattr(Player, 'Male') or Player.Male: bar value FieldValue(Player, "Focus", 100, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfullP.png" right_bar "images/baremptyP.png" left_gutter 3 right_gutter 5 thumb None thumb_offset 0 else: bar value FieldValue(Player, "Focus", 100, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfullC.png" right_bar "images/baremptyC.png" left_gutter 3 right_gutter 5 thumb None thumb_offset 0 hbox: bar value FieldValue(Player, "Semen", 5, max_is_zero=False, style=u'bar', offset=0, step=1) xmaximum 100 left_bar "images/barfullS.png" right_bar "images/baremptyS.png" left_gutter 3 right_gutter 5 thumb None thumb_offset 0 imagebutton auto "images/Button_Emma_%s.png" action ui.callsinnewcontext("StatHacks",EmmaX) xpos 730 ypos 5 focus frame: xminimum 75 xpos 500 ypos -5 background None has vbox hbox: textbutton "Money: $[Player.Cash]" style "text" text_size 12 action SetField(Player, "Cash", Player.Cash + 1000) hbox: textbutton "Level: [Player.Lvl]" style "text" text_size 12 action Function(level_up_player) hbox: textbutton "[Ch_Focus.Tag]: [Ch_Focus.Lvl]" style "text" text_size 12 action Function(level_up_girl, Ch_Focus) # Prime Mod compatibility (v4.0) if 'hackerman' in Player.Traits: hbox: if Ch_Focus in Digits: text "Location: " + get_current_location(Ch_Focus) size 10 else: text "Location: No Phone" size 10 window: pos (90,-40) anchor (0,0) style "say_who_window" text "[Ch_Focus.Name]" size 12 font "CRIMFBRG.ttf" color "#000000" frame: xpos 880 ypos 20 background None add "images/Clockbase.png": anchor (0.5,0.5) yzoom -1 subpixel True if Round < 50: add "images/Clockred.png" at rotate_red(Round): anchor (0.5,0.5) subpixel True else: add "images/Clockwhite.png" at rotate_white(Round): anchor (0.5,0.5) subpixel True imagebutton idle "images/Clockface.png" hover "images/Clockface.png" action Function(reset_time) hovered tt.Action("Time Left: [Round]%") anchor (0.5,0.5) frame: xminimum 130 xpos 900 background None has vbox hbox: text "Day: [Day] [DayofWeek]" size 12 hbox: text "Time: [Current_Time]" size 12 # Prime Mod compatibility (v4.0) if Ch_Focus in Digits and 'hackerman' in Player.Traits and Taboo >= 20: text "Rep: [Player.Rep]" size 10 if "DangerAction" in globals() and bg_current == "bg dangerroom" and "met" in EmmaX.History and DangerAction == 1: text "DR Lvl: [DangerRoomLevel] ([DangerRoomXp]/100)" size 10 if Trigger == "massage" and "MassageHelp" in globals() and MassageHelp == 1 and "dance" not in Options: if MCount >= len(Ch_Focus.MassageChart): text "Finish up" size 10 else: text "Next: " + Ch_Focus.MassageChart[MCount] size 10 frame: xpos 920 ypos 30 background None vbox: hbox: for girl in [x for x in ActiveGirls if x in Nearby]: $ button_img = "images/Button_" + girl.Tag + "_%s.png" imagebutton auto button_img action NullAction() hovered tt.Action(girl.Name) at TinyButtons if tt.value != " ": frame: xpos 500 ypos 60 has vbox text tt.value label Study_Room_Explore_Easy: $ Line = 0 menu: "Where would you like to look?" "Bookshelf": $ Line = "book" "Left Desk Drawer": if KittyX.Loc != bg_current and StormX.Loc != bg_current: "You can't seem to get it open, it would be nice to have someone open the catch from the inside." else: $ Line = "left" "Middle Desk Drawer": if KittyX.Loc != bg_current and StormX.Loc != bg_current: "You can't seem to get it open, it would be nice to have someone open the catch from the inside." else: $ Line = "mid" "Right Desk Drawer": if KittyX.Loc != bg_current and StormX.Loc != bg_current: "You can't seem to get it open, it would be nice to have someone open the catch from the inside." else: $ Line = "right" "Never mind [[back]": jump Study_Room if not Line: "Probably best to get out of here." "You slip out and head back to your room." jump Player_Room_Entry elif Line == "book": if "Well Studied" not in Achievements: "As you check the books on the shelf, you notice that one of them is actually a disguised lockbox." if KittyX.Loc == bg_current: menu: "Since [KittyX.Name] is around, have her check inside?" "Check in the box": if ApprovalCheck(KittyX, 700, "I") or ApprovalCheck(KittyX, 1800): if "Well Studied" not in Achievements: $ KittyX.Statup("Obed", 50, 10) $ KittyX.Statup("Inbt", 60, 15) ch_k "Sounds like a plan." "[KittyX.Name] swipes her hand through the box, and pulls out a stack of bills." "Looks like Xavier was hiding a rainy day fund in here." $ Player.Cash += 500 "[[$500 acquired.]" $ Achievements.append("Well Studied") else: "Looks like this has been thoroughly looted." else: $ KittyX.Statup("Love", 90, -3) $ KittyX.Statup("Obed", 50, 1) $ KittyX.Statup("Inbt", 60, 2) ch_k "I really don't think we should do that." "Put it back": "You place the box back on the shelf." elif StormX.Loc == bg_current: menu: "Since [StormX.Name] is around, have her check inside?" "Check in the box": if ApprovalCheck(StormX, 700, "I") or ApprovalCheck(StormX, 1800): if "Well Studied" not in Achievements: $ StormX.Statup("Obed", 50, 10) $ StormX.Statup("Inbt", 60, 15) ch_s "I suppose I could. . ." "[StormX.Name] picks the lock on the box, and pulls out a stack of bills." "Looks like Charles had some money set aside. . ." $ Player.Cash += 500 "[[$500 acquired.]" $ Achievements.append("Well Studied") else: "Looks like this has been thoroughly looted." else: $ StormX.Statup("Love", 90, -3) $ StormX.Statup("Obed", 50, 1) $ StormX.Statup("Inbt", 60, 2) ch_s "I really don't think we should do that." "Put it back": "You place the box back on the shelf." else: "You can't think of any way to get it open, too bad you aren't a ghost or something." "You place the box back on the shelf." else: "You search through the books for a few minutes, but don't find anything." "There seems to be nothing of interest left." elif Line == "left": if "Xavier's photo" not in Player.Inventory: "Buried under a pile of documents, you find a printed out photo." "It appears to be a selfie of Mystique making out with Xavier." "She's reaching down to adjust his . . . oh, {i}that's{/i} interesting." if StormX.Loc == bg_current: ch_s "You should probably put that back, it looks personal." else: "[[Xavier's photo acquired.]" $ Player.Inventory.append("Xavier's photo") if "kappa" in Player.History: $ Player.History.remove("kappa") else: "There doesn't seem to be anything more of interest in here." elif Line == "mid": if "All" not in Keys: "Under a few trinkets, you find a small keyring." "[[Keyring acquired.]" if "Xavier" not in Keys: $ Keys.append("Xavier") if RogueX not in Keys: $ Keys.append(RogueX) if KittyX not in Keys: $ Keys.append(KittyX) if EmmaX not in Keys: $ Keys.append(EmmaX) if LauraX not in Keys: $ Keys.append(LauraX) if JeanX not in Keys: $ Keys.append(JeanX) if StormX not in Keys: $ Keys.append(StormX) if "JubesX" in globals() and JubesX not in Keys: $ Keys.append(JubesX) if "GwenX" in globals() and GwenX not in Keys: $ Keys.append(GwenX) if "All" not in Keys: $ Keys.append("All") else: "There doesn't seem to be anything interesting in here." elif Line == "right": "There doesn't seem to be anything more of interest in here, maybe later?" if "Xavier's files" not in Player.Inventory: "You search through some documents, but don't find anything." if StormX.Loc == bg_current: ch_s "Hmm. . ." "She reaches under some of the documents and finds a small notch." "With a soft \"click\"a panel flips open in the drawer, revealing some file folders." "Inside are some fairly. . . detailed reports on the girls at the school." $ StormX.FaceChange("surprised",2) "These include body measurements, sexual histories. . . masturbation habits?" $ StormX.Statup("Obed", 70, 5) $ StormX.Statup("Inbt", 70, 5) $ StormX.FaceChange("angry") ch_s "Well, I don't think Charles should be holding information like this. . ." $ StormX.FaceChange("normal",1) "[[Xavier's files acquired.]" $ Player.Inventory.append("Xavier's files") if "rho" in Player.History: $ Player.History.remove("rho") else: "There doesn't seem to be anything more of interest in here, maybe later?" else: "There doesn't seem to be anything more of interest in here." jump Study_Room_Explore