WTS/game/scripts/minigames/cardgame/_snape_card_game_.rpy
2022-05-17 00:48:22 +01:00

613 lines
26 KiB
Plaintext

# Snape Duel Menu
label snape_duel_menu:
if geniecard_level == 1:
if not snape_know_cards:
gen "Ever heard of Wizard Cards?" ("base", xpos="far_left", ypos="head")
sna "What about them?" ("snape_05")
gen "Do you have any?" ("grin", xpos="far_left", ypos="head")
sna "I do, I collected some when I was younger... Never played though." ("snape_09")
gen "Why not?" ("base", xpos="far_left", ypos="head")
sna "Didn't really have anyone to play with so I stopped buying them." ("snape_06")
gen "Up for a game or two?" ("base", xpos="far_left", ypos="head")
sna "..." ("snape_03")
sna "Why not?" ("snape_02")
gen "What do I get if I win?" ("base", xpos="far_left", ypos="head")
sna "What do you mean? There never used to be prizes in Wizard Cards..." ("snape_01")
gen "What..." ("angry", xpos="far_left", ypos="head")
gen "No wonder this game never took off..." ("base", xpos="far_left", ypos="head")
gen "Let's just play a few practice rounds for now then." ("base", xpos="far_left", ypos="head")
sna "And then?" ("snape_05")
gen "..." ("base", xpos="far_left", ypos="head")
gen "And then we'll think about prizes." ("base", xpos="far_left", ypos="head")
sna "..." ("snape_01")
sna "Fine, I'm confident enough to beat a beginner." ("snape_06")
sna "But first a bit of practice..." ("snape_02")
gen "Let's play." ("grin", xpos="far_left", ypos="head")
$ snape_know_cards = True
menu:
"-First Duel-":
jump snape_first_duel
"-Second Duel-" if snape_first_win:
jump snape_second_duel
"-You need to beat the first duel-" (style="disabled") if not snape_first_win:
jump snape_duel_menu
"-Challenge-" if snape_second_win:
jump snape_third_duel
"-You need to beat the second duel-" (style="disabled") if not snape_second_win:
jump snape_duel_menu
"-Never mind-":
jump snape_ready
else:
gen "Up for another game?" ("base", xpos="far_left", ypos="head")
if not snape_wager_talk:
sna "With you?"
sna "..."
if sna_friendship < 30:
sna "no..." ("snape_03")
gen "Why not?" ("angry", xpos="far_left", ypos="head")
gen "What if we did a game as a part of a wager?" ("base", xpos="far_left", ypos="head")
sna "A wager..." ("snape_09")
sna "No, I have better things to do right now..." ("snape_06")
gen "(He doesn't seem that keen, maybe I should ask again when we know each other a bit better.)" ("base", xpos="far_left", ypos="head")
call nar(">Improve your relationship with Snape before trying again.")
jump snape_ready
sna "Do you know how hard it is to progress with this game with no one to play against?" ("snape_03")
sna "I even traded some of my potion ingredients to some weird guy in Knockturn alley for one of the old booster packs..." ("snape_01")
sna "Turns out... That card I gave you, whilst not very powerful was quite rare." ("snape_08")
gen "Sounds like a you problem." ("base", xpos="far_left", ypos="head")
sna "..." ("snape_29")
gen "How about we do a wager?" ("base", xpos="far_left", ypos="head")
sna "A wager?" ("snape_05")
gen "Yes, how about just one token and a wager on top of that to make it interesting." ("grin", xpos="far_left", ypos="head")
sna "..." ("snape_04")
sna "Fine, but only if it's on equal terms..." ("snape_10")
gen "What does that mean?" ("angry", xpos="far_left", ypos="head")
sna "It means, you set your prize and I'll set mine accordingly." ("snape_03")
gen "Okay, so..." ("base", xpos="far_left", ypos="head")
gen "If you win I'll give you some wine." ("base", xpos="far_left", ypos="head")
sna "Don't you provide me with plenty of wine anyway?" ("snape_05")
gen "I mean, I could stop doing it. The office has my name on it after all and last I checked that means whatever is in it belong to me as well." ("base", xpos="far_left", ypos="head")
sna "..."
gen "In a figurative way obviously. It doesn't actually have my name on the door." ("grin", xpos="far_left", ypos="head")
sna "Obviously..." ("snape_03")
gen "It's not like this office came with any of those Slytherin sluts you have yet to share with me..." ("base", xpos="far_left", ypos="head")
sna "Fine, if that's your only proposal. If you win then I'll give you something from my personal collection." ("snape_03")
gen "Like what?" ("angry", xpos="far_left", ypos="head")
sna "You'll see..." ("snape_02")
gen "(Must be something good if he's not going to tell me...)" ("base", xpos="far_left", ypos="head")
gen "I'm in." ("grin", xpos="far_left", ypos="head")
$ snape_wager_talk = True
if wine_ITEM.owned < 1:
sna "Show me the bottle."
gen "What?" ("base", xpos="far_left", ypos="head")
sna "I want to see the wine first."
gen "I don't have one, right now..." ("base", xpos="far_left", ypos="head")
sna "That's a shame, the wager will have to wait then."
gen "Damn..." ("base", xpos="far_left", ypos="head")
gen "(I should see if I could find some more wine in that cupboard, or perhaps check the local store...)" ("base", xpos="far_left", ypos="head")
jump snape_ready
else:
if wine_ITEM.owned < 1:
sna "Do you have it?"
gen "What?" ("base", xpos="far_left", ypos="head")
sna "The wine of course!"
gen "I don't..." ("base", xpos="far_left", ypos="head")
sna "That's a shame... Our wager will have to wait then."
gen "Can't we just duel anyway? I'm not intending to lose..." ("base", xpos="far_left", ypos="head")
sna "Neither am I."
sna "No wine, no duel."
gen "Damn!" ("base", xpos="far_left", ypos="head")
gen "(I should see if I could find some more wine in that cupboard, or perhaps check the local store...)" ("base", xpos="far_left", ypos="head")
jump snape_ready
$ random_number = renpy.random.randint(1, 10)
if random_number == 1:
sna "Sure, let's do it!" ("snape_02")
elif random_number == 2:
sna "Is there another bottle in it for me?" ("snape_05")
gen "If you win..." ("grin", xpos="far_left", ypos="head")
sna "Good." ("snape_02")
sna "Then let's begin..." ("snape_02")
elif random_number == 3:
sna "Same wager?" ("snape_05")
gen "Sure." ("base", xpos="far_left", ypos="head")
sna "Okay then..." ("snape_01")
sna "Let's do it." ("snape_02")
elif random_number == 4:
sna "Always!" ("snape_02")
sna "I'll make sure you lose this time Genie..." ("snape_01")
elif random_number == 5:
sna "My stock is filled so why not?" ("snape_03")
gen "Great." ("grin", xpos="far_left", ypos="head")
sna "Good luck... You'll need it." ("snape_02")
elif random_number == 6:
sna "You don't have to ask me twice." ("snape_02")
elif random_number == 7:
sna "Prepare to lose!" ("snape_10")
gen "..." ("base", xpos="far_left", ypos="head")
gen "Let's just play..." ("base", xpos="far_left", ypos="head")
elif random_number == 8:
sna "I've been practising... there's no way I'll lose!" ("snape_10")
gen "Are you sure about that?" ("base", xpos="far_left", ypos="head")
sna "Yes, I came here to win..." ("snape_08")
elif random_number == 9:
sna "You're going to lose this time..." ("snape_04")
gen "In your dreams..." ("grin", xpos="far_left", ypos="head")
else:
sna "Of course!" ("snape_02")
sna "But I think we should up our wager a bit..." ("snape_02")
gen "In what way?" ("base", xpos="far_left", ypos="head")
sna "I was thinking maybe you could send the Granger girl to my room tonight if I win." ("snape_20")
if hg_pr_kiss.counter >= 3 or her_reputation >= 21:
gen "We'll see about that." ("base", xpos="far_left", ypos="head")
else:
gen "I doubt she would agree to that." ("base", xpos="far_left", ypos="head")
gen "Let's just stick to the original bet for now..." ("base", xpos="far_left", ypos="head")
sna "Fine..." ("snape_06")
jump snape_random_duel
label snape_first_duel:
sna "A bit dusty but this should do!" ("snape_03")
gen "You, or the deck?" ("base", xpos="far_left", ypos="head")
sna "I...{w=0.3} The deck, obviously." ("snape_14")
sna "Let's do this." ("snape_17")
call play_music("grape_soda")
$ renpy.call_in_new_context("start_duel", snape_first_deck)
if duel_response == "Close":
jump snape_duel_cancel
elif not duel_response == "win":
jump snape_duel_lost
stop music fadeout 1
hide screen blkfade
sna "Maybe I should've gone over the rules a bit more before trying this game again..." ("snape_05")
sna "Well played though." ("snape_04")
call play_sound("door")
call hide_characters
call sna_chibi("hide")
with d3
$ snape_busy = True
$ achievements.unlock("Cardwin")
$ snape_first_win = True
$ tokens += 1
jump main_room_menu
label snape_second_duel:
sna "That first one was just a warm up, there's no way you'll beat me this time!" ("snape_16")
gen "Time to get our decks out." ("grin", xpos="far_left", ypos="head")
sna "...." ("snape_25")
sna "Let's just play." ("snape_04")
call play_music("grape_soda")
$ renpy.call_in_new_context("start_duel", snape_second_deck)
if duel_response == "Close":
jump snape_duel_cancel
elif not duel_response == "win":
jump snape_duel_lost
stop music fadeout 1
hide screen blkfade
sna "Not again... I swear these cards used to be good when I bought them." ("snape_07")
sna "They must've made them obsolete to get you to buy more." ("snape_04")
sna "So deliciously mischievous." ("snape_02")
call play_sound("door")
call hide_characters
call sna_chibi("hide")
with d3
if not her_know_cards:
call bld
gen "This is awesome, I wonder if Miss Granger would want to play against me..." ("grin", xpos="far_left", ypos="head")
$ snape_busy = True
$ snape_second_win = True
$ tokens += 1
jump main_room_menu
label snape_third_duel:
if not her_know_cards:
gen "(I should probably see if Hermione is interested and practise some more before challenging Snape.)" ("base", xpos="far_left", ypos="head")
jump snape_duel_menu
if not twins_cards_stocked_talk:
gen "(I should wait for an owl from Fred and George and train with Hermione first.)" ("base", xpos="far_left", ypos="head")
jump snape_duel_menu
gen "So, how about that prize?" ("base", xpos="far_left", ypos="head")
sna "Again with the prize..." ("snape_01")
gen "I'm bored okay... and I like prizes..." ("base", xpos="far_left", ypos="head")
sna "Fine, I challenge you!!" ("snape_10")
gen "..." ("base", xpos="far_left", ypos="head")
sna "You don't say it like that anymore?" ("snape_05")
gen "No, that's lame." ("base", xpos="far_left", ypos="head")
sna "You're not going to beat me again genie, I've practised with the greatest Wizard cards player there is!" ("snape_02")
gen "Me?" ("base", xpos="far_left", ypos="head")
sna "I... no, of course not." ("snape_14")
sna "Let's do this." ("snape_17")
sna "Show me what you got genie... Beat me and I'll give you a card from my collection and 3 tokens." ("snape_18")
gen "Bring it." ("base", xpos="far_left", ypos="head")
call play_music("cardgame")
play sound "sounds/Genie_VS_Snape.ogg"
show screen genie_vs_snape
show screen move_genie
pause 1
show screen versus
pause 1
show screen move_snape
pause 2.5
hide screen move_genie
hide screen move_snape
show screen genie_vs_snape_smile
pause
hide screen versus
hide screen genie_vs_snape
hide screen genie_vs_snape_smile
$ renpy.call_in_new_context("start_duel", snape_third_deck, snape_after)
if duel_response == "Close":
jump snape_duel_cancel
elif not duel_response == "win":
jump snape_duel_lost
#Won third match
stop music fadeout 1
hide screen blkfade
if snape_third_win == False:
sna "Impossible... There must be something wrong with my cards!" ("snape_05")
gen "They're old, that's what." ("base", xpos="far_left", ypos="head")
gen "Now to the prize..." ("base", xpos="far_left", ypos="head")
sna "Fine... Here's your tokens and one of my precious cards." ("snape_05")
sna "(You were a good card my boy. But it's time to grow up.)" ("snape_05")
$ snape_third_win = True
$ unlocked_cards += [card_snape]
call give_reward("You have received a special card!", "images/cardgame/t1/special/snape_v1.webp")
$ tokens += 3
else:
$ tokens += 1
call play_sound("door")
call hide_characters
call sna_chibi("hide")
with d3
$ snape_busy = True
jump main_room_menu
label snape_random_duel:
call play_music("cardgame")
$ random_player_deck = create_random_deck(0,150,unlocked_cards)
$ random_enemy_deck = create_random_deck(get_deck_score(random_player_deck)-2, get_deck_score(random_player_deck)+8, cards_all)
$ renpy.call_in_new_context("start_duel", random_enemy_deck, snape_after, [renpy.random.randint(0,3), False, True, False], random_player_deck)
if duel_response == "Close":
$ wine_ITEM.owned -= 1
jump snape_duel_cancel
elif duel_response == "draw":
jump snape_duel_draw
elif not duel_response == "win":
$ wine_ITEM.owned -= 1
jump snape_duel_lost
stop music fadeout 1
hide screen blkfade
python:
ingredients = filter(lambda x: x.price > 0, inventory.get_instances_of_type("ingredient"))
item = renpy.random.choice(ingredients)
if not random_snape_win:
$ random_snape_win = True
gen "Yes!" ("base", xpos="far_left", ypos="head")
gen "No wine for you.." ("grin", xpos="far_left", ypos="head")
sna "..." ("snape_04")
gen "Now, how about that prize we discussed." ("grin", xpos="far_left", ypos="head")
sna "Ah, yes... something from my collection." ("snape_05")
$ item.owned += 1
call give_reward("You've received [item.name] from Snape!", item)
gen "What the fuck is this?" ("angry", xpos="far_left", ypos="head")
sna "As I said..." ("snape_01")
sna "Something from my collection..." ("snape_02")
gen "..." ("base", xpos="far_left", ypos="head")
sna "I'm the potions master, what did you think it was going to be?" ("snape_03")
gen "I don't know... Like a whip or something?" ("base", xpos="far_left", ypos="head")
sna "Hey, just because I reside in the dungeon it doesn't mean I--" ("snape_07")
gen "I bet you do have a whip..." ("grin", xpos="far_left", ypos="head")
sna "Well..." ("snape_12")
gen "Whatever, I'll take it." ("base", xpos="far_left", ypos="head")
if not snape_office_intro_E2:
gen "Maybe I can find some use for it later..." ("base", xpos="far_left", ypos="head")
sna "What, the whip--" ("snape_18")
sna "*Ohh*, the potion ingredient..." ("snape_14")
sna "There's plenty more where that came from if you want another game..." ("snape_24")
gen "I'll think about it." ("base", xpos="far_left", ypos="head")
else:
$ random_choice = renpy.random.randint(0, 3)
if random_choice == 0:
gen "Another victory in the bag." ("grin", xpos="far_left", ypos="head")
sna "I don't get it..." ("snape_03")
sna "You must've been cheating." ("snape_04")
gen "Skill...{w=0.3} It's called skill." ("base", xpos="far_left", ypos="head")
elif random_choice == 1:
sna "Not again... Did you look at my cards before the game?" ("snape_10")
gen "How would I have done that?" ("base", xpos="far_left", ypos="head")
sna "I don't know..." ("snape_08")
sna "Some kind of Genie hocus pocus?" ("snape_07")
gen "..." ("base", xpos="far_left", ypos="head")
sna "*Hmm*... Perhaps that comment might've been a bit..." ("snape_25")
gen "Yeah, a just a little..." ("base", xpos="far_left", ypos="head")
sna "I'm just going to leave this here." ("snape_14")
elif random_choice == 2:
gen "Sweet, another win for me!" ("grin", xpos="far_left", ypos="head")
sna "I let you win that one..." ("snape_03")
gen "Sure you did." ("base", xpos="far_left", ypos="head")
elif random_choice == 3:
sna "Damn it!" ("snape_17")
gen "Hey, chill out... It's just a game." ("angry", xpos="far_left", ypos="head")
sna "Just a game?!" ("snape_18")
sna "Do you know what students from House Slytherin are known for, Genie?" ("snape_07")
gen "Well, from what you've told me... Being massive sluts?" ("grin", xpos="far_left", ypos="head")
sna "{size=+4}YES!{/size}" ("snape_08")
sna "Wait... No!" ("snape_16")
sna "We're known for being cunning..." ("snape_17")
gen "..." ("base", xpos="far_left", ypos="head")
sna "Cunning...{w=0.3} Genie." ("snape_18")
gen "Yeah, I got you." ("base", xpos="far_left", ypos="head")
gen "Hey, I could just give you another bottle..." ("base", xpos="far_left", ypos="head")
sna "..." ("snape_12")
sna "No... I'll beat you next time." ("snape_16")
gen "That's the spirit." ("grin", xpos="far_left", ypos="head")
elif random_choice == 4:
sna "Maybe I should've gone over the rules a bit more before trying this game again..." ("snape_05")
sna "Well played though." ("snape_04")
$ item.owned += 1
call give_reward("You've received [item.name] from Snape!", item)
if not snape_office_intro_E2:
gen "(I still don't have any use for it, but I won't turn down free shit.)" ("base", xpos="far_left", ypos="head")
call play_sound("door")
call hide_characters
call sna_chibi("hide")
with d3
$ snape_busy = True
$ tokens += 1
jump main_room_menu
label snape_special_duel:
call play_music("cardgame")
$ random_enemy_deck = create_random_deck(get_deck_score(playerdeck)-2, get_deck_score(playerdeck)+8, cards_all)
$ renpy.call_in_new_context("start_duel", random_enemy_deck)
stop music fadeout 1
hide screen blkfade
if duel_response == "draw":
gen "Not another fucking--" ("angry", xpos="far_left", ypos="head")
her "*Gltch*, *Slurp*, *Gobble*"
gen "Draaaaaaw!" ("angry", xpos="far_left", ypos="head")
return "draw"
elif not duel_response == "win" or duel_response == "Close":
sna "Well, well.. It appears I've--"
gen "{size=+4}Fuuuuuuuuck!{/size}" ("base", xpos="far_left", ypos="head")
return "loss"
else:
gen "Yeeeeees!" ("grin", xpos="far_left", ypos="head")
gen "That's it you whore! Take it!" ("angry", xpos="far_left", ypos="head")
return "win"
label snape_duel_draw:
stop music fadeout 1
menu:
"-Rematch-":
if geniecard_level == 1:
jump snape_duel_menu
else:
jump snape_random_duel
"-Stop playing-":
pass
sna "Alright, another time then..."
jump main_room_menu
label snape_duel_lost:
hide screen blkfade
stop music fadeout 1
menu:
"-Rematch-":
if geniecard_level == 1:
jump snape_duel_menu
else:
gen "I demand a rematch!" ("base", xpos="far_left", ypos="head")
if wine_ITEM.owned < 1:
sna "It appears you've lost all of your bottles, maybe next time."
gen "You evil creature..." ("angry", xpos="far_left", ypos="head")
pass
else:
sna "Fine."
sna "More wine for me!"
jump snape_random_duel
"-Be a loser-":
pass
if geniecard_level == 1:
sna "Cards not in your favour today? Maybe next time..."
else: # Rub it in
$ random_number = renpy.random.randint(1, 7)
if random_number == 1:
sna "Thanks for the bottle... Genie."
gen "...." ("angry", xpos="far_left", ypos="head")
elif random_number == 2:
gen "..." ("base", xpos="far_left", ypos="head")
gen "Good game..." ("base", xpos="far_left", ypos="head")
sna "Forgetting something?"
gen "Fine, here's your bottle..." ("base", xpos="far_left", ypos="head")
elif random_number == 3:
sna "Another win for me..." ("snape_02")
gen "And your last..." ("base", xpos="far_left", ypos="head")
sna "Sorry, can't hear you over the sound of my victory." ("snape_01")
gen "..." ("base", xpos="far_left", ypos="head")
elif random_number == 4:
sna "Child's play..." ("snape_02")
gen "I'm hundreds of years old you know..." ("base", xpos="far_left", ypos="head")
sna "And I beat you..." ("snape_02")
gen "just shows how luck based the game is honestly..." ("base", xpos="far_left", ypos="head")
elif random_number == 5:
sna "..." ("snape_02")
gen "Just take your prize and go." ("base", xpos="far_left", ypos="head")
elif random_number == 6:
sna "Nice one..." ("snape_02")
gen "Hey, don't be a bad winner." ("base", xpos="far_left", ypos="head")
sna "Hey, I was just--" ("snape_03")
sna "I see what you're doing..." ("snape_04")
sna "I'll have that wine now..." ("snape_02")
else:
sna "Hah!"
sna "I mean...{w=0.3} Good game."
gen "You're allowed to show enthusiasm you know..." ("base", xpos="far_left", ypos="head")
sna "I know, but it's bad for my image..."
gen "..." ("base", xpos="far_left", ypos="head")
gen "Whatever you say, here's your bottle." ("base", xpos="far_left", ypos="head")
call play_sound("door")
call hide_characters
call sna_chibi("hide")
with d3
$ snape_busy = True
jump main_room_menu
label snape_duel_cancel:
show screen blkfade
with dissolve
stop music fadeout 1
hide screen blkfade
with dissolve
if geniecard_level == 1:
sna "Cards not in your favour today? Maybe next time..."
else:
sna "In that case, it's a forfeit."
sna "I'll take that wine now."
gen "Wait a minute..." ("base", xpos="far_left", ypos="head")
sna "I don't make the rules, I just play by them."
gen "Fine..." ("base", xpos="far_left", ypos="head")
call play_sound("door")
call hide_characters
call sna_chibi("hide")
with d3
$ snape_busy = True
jump main_room_menu
screen genie_vs_snape():
zorder 16
add "images/cardgame/VS/background_snape.webp" xalign 0.5 yalign 0.5
screen move_genie():
zorder 16
add "images/cardgame/VS/genie_01.webp" at move_in(-300, 0.5)
screen versus():
zorder 15
add "images/cardgame/VS/vs.webp"
screen move_snape():
zorder 16
add "images/cardgame/VS/snape_01.webp" at move_in(300, 0.5)
screen genie_vs_snape_smile():
zorder 16
add "images/cardgame/VS/genie_02.webp"
add "images/cardgame/VS/snape_02.webp"
text "Click to continue" xalign 0.5 yalign 1.0
init python:
def snape_after():
renpy.music.set_volume(0.5)
s_punch = renpy.random.randint(1, 4)
renpy.sound.play("sounds/card_punch%s.ogg" % s_punch)
# Prevents volume to change again when using rollback
renpy.block_rollback()
renpy.say(sna,snape_speech_card[renpy.random.randint(0,len(snape_speech_card)-1)])
renpy.music.set_volume(1.0)
return
# Unused?
# def snape_after_special():
# renpy.call("sna_main", "It's my time to shine, I'm counting on an explosive victory.", face="snape_02")
# renpy.call("her_main", "*Slurp*, *Slurp*, *Gobble*")
# renpy.say(g4, "*Ngh*... Not on my watch... I'll do my best to prevent any unwarranted explosions during the current circumstance...")
# renpy.call("sna_main", "Now you're talking! Usually I'm the one doing all the trash talk...", face="snape_28")
# renpy.say(m, "I feel like today especially it's important to keep the conversation going...")
# renpy.call("her_main", "*Gltch*, *Slurp*, *Gobble*")
# renpy.say(g4, "...")
# renpy.call("sna_main", "Great, I can't wait to see your face as I destroy you...", face="snape_22")
# renpy.say(m, "Surely you'd know by now I'm not the kind of person to lose--")
# renpy.call("her_main", "*Slurp*, *Slurp*, *Gobble*")
# renpy.say(g4, "My composure that easily...")
# renpy.call("sna_main", "I'll make you bust this time for sure... I can already taste victory...", face="snape_21")
# renpy.say(m, "That's not the only thing that someone will be tasting in a second...")
# return