WTS/game/scripts/minigames/cardgame/_deck_builder_.rpy
Johnny28 a84c8063df Minor fixes
* Fixed Snape positioning during Hermione CardGame BJ event.
* Improved Cardgame tutorial writing.
2023-03-08 12:42:33 +01:00

305 lines
10 KiB
Plaintext

label deck_builder:
python:
for card in playerdeck:
card.playercard = True
label deck_builder_jump:
show screen deck_builder_screen
$ renpy.block_rollback()
$ _choice = ui.interact()
if _choice in unlocked_cards:
$ selectcard = unlocked_cards.index(_choice)
jump deck_builder_jump
elif _choice == "gallery":
hide screen deck_builder_screen
show screen deck_builder_gallery
elif _choice == "back":
hide screen deck_builder_gallery
show screen deck_builder_screen
elif _choice == "Close":
$ selectcard = -1
hide screen deck_builder_screen
jump main_room_menu
elif _choice == "guide":
$ selectcard = -1
hide screen deck_builder_screen
jump deck_builder_guide
elif _choice == "inc":
$ currentpage += 1
$ selectcard = -1
jump deck_builder_jump
elif _choice == "dec":
$ currentpage -= 1
$ selectcard = -1
jump deck_builder_jump
elif _choice == "unselect":
$ selectcard = -1
jump deck_builder_jump
else:
if not selectcard == -1:
python:
if unlocked_cards[selectcard].copies > -1:
unlocked_cards[selectcard].copies -= 1
add_card_to_deck(playerdeck[int(_choice)].title)
playerdeck[int(_choice)] = unlocked_cards[selectcard]
selectcard = -1
pass
jump deck_builder_jump
else:
jump deck_builder_jump
screen deck_builder_screen():
zorder 8
$ card_shown=5
imagebutton idle "images/cardgame/deck_builder.webp" action Return("unselect")
for i in range(0, clamp(card_shown, 0, (len(unlocked_cards))-(card_shown*currentpage))):
use cardrender(unlocked_cards[clamp(i+(currentpage*card_shown), 0, len(unlocked_cards))], 18,17+80*i, True)
if not selectcard == -1:
use cardrender(unlocked_cards[selectcard], 885, 316)
#add im.Scale(unlocked_cards[selectcard].imagepath, card_width*0.5, card_height*0.5) xpos 885 ypos 316
vbox:
xpos 560
ypos 320
xsize 340
ysize 33
text "{size=-3}"+unlocked_cards[selectcard].get_title()+"{/size}" xalign 0 yalign 0.5 size 22
vbox:
xpos 760
ypos 520
xsize 112
ysize 33
text unlocked_cards[selectcard].get_amount() xalign 1 yalign 0.5
vbox:
xpos 560
ypos 520
xsize 112
ysize 33
text "{color=#ffffff}Value:{/color}"+unlocked_cards[selectcard].get_totalvalue() xalign 0 yalign 0.5
vbox:
xpos 560
ypos 350
xsize 300
ysize 500
text "{size=-5}"+unlocked_cards[selectcard].get_description()+"{/size}"
for i in range(0,5):
use cardrender(playerdeck[i], 223+165*i, 17, True, return_value=i, color=True)
imagebutton:
xpos 200
ypos 380
idle "images/cardgame/scrollup.webp"
if not currentpage <= 0:
hover "images/cardgame/scrollup_hover.webp"
action Return("dec")
imagebutton:
xpos 200
ypos 430
idle "images/cardgame/scrolldown.webp"
if currentpage < math.ceil((len(unlocked_cards)-1)/card_shown):
hover "images/cardgame/scrolldown_hover.webp"
action Return("inc")
#Page info
$ str_currentpage = currentpage+1
$ str_currentpage_max = int(math.ceil((len(unlocked_cards)-1)/card_shown)+1.0)
text "{color=#FFFFFF}{size=-5}Page [str_currentpage]/[str_currentpage_max]{/size}{/color}" xpos 215 ypos 360 text_align 0.5 xalign 0.5
#Gallery button
imagebutton:
xpos 274
ypos 310
idle "images/cardgame/gallery.webp"
hover "images/cardgame/gallery_hover.webp"
action [Show("deck_builder_gallery"), Hide("deck_builder_screen")]
#Guide button
imagebutton:
xpos 274
ypos 400
idle "images/cardgame/guide.webp"
hover "images/cardgame/guide_hover.webp"
action Return("guide")
#Exit button
imagebutton:
xpos 274
ypos 502
idle "images/cardgame/exit.webp"
hover "images/cardgame/exit_hover.webp"
action Return("Close")
keysym "game_menu"
#Easter egg
hbox:
xpos 1020
ypos 296
xsize 40
ysize 40
button action Jump("color_change") background "#ffffff00"
#add Solid(get_hex_string(playercolor_rgb))
screen deck_builder_gallery():
zorder 8
imagebutton idle "interface/desk/_bg_.webp" action NullAction()
text "{size=+15}Gallery{/size}" ypos 15 xalign 0.5
for i, card in enumerate(cards_all):
$ col = (i // 4) % 13
$ row = i % 4
use cardrender(card, 18+80*col, 67+125*row, False, cardzoom=0.25, color=card_exist(unlocked_cards, card))
imagebutton:
anchor (1.0, 0.0)
ypos 18
xalign 0.98
idle "images/cardgame/back.webp"
hover "images/cardgame/back_hover.webp"
action [Show("deck_builder_screen"), Hide("deck_builder_gallery")]
keysym "game_menu"
label color_change:
python:
playercolor_rgb = tuple(color_picker(playercolor_rgb), False, "Player border")
enemycolor_rgb = tuple(color_picker(enemycolor_rgb), False, "Enemy border")
jump deck_builder
label deck_builder_guide:
$ deck_guide_page = 0
$ deck_guide_zone = ""
$ deck_guide_helper = ""
call play_music("grape_soda")
show screen deck_builder_tutorial
with dissolve
">The goal of Wizard cards is to own the most cards on the playing field once all 9 slots are filled."
">To win the game you have to pay attention to your deck but also enemy deck."
# Sides guide
$ deck_guide_zone = "player_zone"
">This is your deck."
">You can have a maximum of five cards in your active deck."
$ deck_guide_zone = "enemy_zone"
">This is your opponents deck."
">Your opponents deck is also limited to five cards."
# Inspection guide
$ deck_guide_zone = ""
$ deck_guide_page = 1
">You can inspect cards by clicking on them."
$ deck_guide_page = 2
">In the current version of the game you can also inspect enemy cards."
">This might change later on if we feel like the game is not difficult enough."
# Card guide
$ deck_guide_page = 1
">To place down a card, simply select it and click on any of the empty fields."
$ deck_guide_page = 3
">You can place only one card per turn."
$ deck_guide_zone = "card_zone"
$ deck_guide_helper = "border_guide"
">Every card you place down is displayed with a Blue border and signifies that you own the card."
">Your opponents cards are displayed in red."
$ deck_guide_helper = "numbers_guide"
">Numbers on the sides, top, and bottom indicate the power of the card in specific direction."
$ deck_guide_helper = "tier_guide"
">This is what we call a card tier."
">The shape and colour of it indicated rarity of the card while the number tells you the overall power of it."
$ deck_guide_helper = ""
">The card currently displayed is a special card."
">Special cards are unique and cannot be obtained more than once."
$ deck_guide_page = 33
">This card for example is simply called a girl card."
$ deck_guide_helper = "cho_stage2"
">They also cannot be obtained more than once but the picture changes depending on how many challenges you have won."
">You'll learn more about those as you play but the gist is..."
$ deck_guide_helper = "cho_stage3"
">The more challenges you beat, the less clothes a character wears."
">Cool, right?"
gen "Hell yes!" ("grin", xpos="far_left", ypos="head")
$ deck_guide_helper = ""
$ deck_guide_page = 3
">Moving on."
gen "..." ("base", xpos="far_left", ypos="head")
#
$ deck_guide_zone = "fight_zone"
$ deck_guide_helper = "fight_guide"
$ deck_guide_page = 4
">Once a card is played, it can be taken by the opponent when they place a card with a number higher than the side of the card facing that number."
$ deck_guide_helper = "border_guide"
">When a card is taken, its border changes colour."
$ deck_guide_zone = ""
$ deck_guide_helper = ""
$ deck_guide_page = 5
">The player with the most cards of their colour by the end wins the game."
if not snape_know_cards:
gen "(Seems simple enough....)" ("base", xpos="far_left", ypos="head")
gen "(Wait... who the fuck do I play against?)" ("angry", xpos="far_left", ypos="head")
gen "(Maybe I should ask my good ole pal Snape if he has any cards...)" ("grin", xpos="far_left", ypos="head")
gen "..." ("base", xpos="far_left", ypos="head")
gen "(*Shudders*)" ("base", xpos="far_left", ypos="head")
gen "(Well... might as well...)" ("base", xpos="far_left", ypos="head")
#$ _choice = ui.interact()
#if _choice == "back":
call music_block
hide screen deck_builder_tutorial
jump deck_builder
screen deck_builder_tutorial():
zorder 4
#imagebutton idle "interface/desk/_bg_.webp" action None
add "images/cardgame/guide/[deck_guide_page].webp"
if not deck_guide_zone == "":
add "images/cardgame/guide/[deck_guide_zone].webp"
if deck_guide_helper == "border_guide":
add "images/cardgame/guide/[deck_guide_helper].webp" xpos 600 ypos 250
if deck_guide_helper == "numbers_guide":
add "images/cardgame/guide/[deck_guide_helper].webp" xpos 540 ypos 300 xalign 0.5 yalign 0.5
if deck_guide_helper == "tier_guide":
add "images/cardgame/guide/[deck_guide_helper].webp" xpos 500 ypos 200 xalign 0.5
if deck_guide_helper == "cho_stage2":
add "images/cardgame/guide/[deck_guide_helper].webp" xpos 540 ypos 300 xalign 0.5 yalign 0.5
if deck_guide_helper == "cho_stage3":
add "images/cardgame/guide/[deck_guide_helper].webp" xpos 540 ypos 300 xalign 0.5 yalign 0.5
if deck_guide_helper == "cho_stage4":
add "images/cardgame/guide/[deck_guide_helper].webp" xpos 540 ypos 300 xalign 0.5 yalign 0.5
if deck_guide_helper == "fight_guide":
add "images/cardgame/guide/[deck_guide_helper].webp" xpos 540 ypos 360 xalign 0.5
##Back button
#imagebutton:
# xpos 930
# ypos 480
# idle "images/cardgame/back.webp"
# hover "images/cardgame/back_hover.webp"
# action Return("back")
# keysym "game_menu"