Code: Select all
init python:
def stats_frame(name, level, hp, maxhp, **properties):
ui.frame(xfill=False, yminimum=None, **properties)
ui.hbox() # (name, "HP", bar) from (level, hp, maxhp)
ui.vbox() # name from ("HP", bar)
ui.text(name, size=20)
ui.hbox() # "HP" from bar
ui.text("HP", size=20)
ui.close()
ui.close()
ui.vbox() # Level from (hp/maxhp)
ui.text("Lv. %d" % level, xalign=0.5, size=20)
ui.text("%d/%d" % (hp, maxhp), xalign=0.5, size=20)
ui.close()
ui.close()
def battle(win, lose, hero_HP, extra_HP, tiger_HP, evil_HP, **properties):
ui.textbutton("Attack", clicked=ui.returns(("hit", True)), xalign=.5,yalign=.5)
ui.textbutton("Defense", clicked=ui.returns(("block", True)), xalign=.6,yalign=.6)
ui.textbutton("Heal", clicked=ui.returns(("help", True)), xalign=.7,yalign=.7)
while True:
type, value = ui.interact()
previous_HP = hero_HP
if type == "hit":
if tiger_HP > 1:
tiger_HP = tiger_HP - 1000
tiger_damage = renpy.random.randint(100, 200)
hero_HP -= tiger_damage
elif evil_HP > 1:
evil_HP = evil_HP - 1000
evil_damage = renpy.random.randint(100, 200)
extra_HP -= evil_damage
if type == 'block':
if hero_HP < previous_HP:
hero_HP = hero_HP + (previous_HP - hero_HP)/2
if type == 'help':
if hero_HP < 2500:
hero_HP = hero_HP + 1000
if hero_HP > 2500:
hero_HP = 2500
if hero_HP < 1:
renpy.jump(lose)
if evil_HP < 1 and tiger_HP < 1:
renpy.jump(win)
stats_frame("ExtraP", 9, extra_HP, extramax_HP, xalign=0.20, yalign=0.05)
stats_frame("Tiger", 4, tiger_HP, tigermax_HP, xalign=0.98, yalign=0.8)
stats_frame("Hero", 1, hero_HP, heromax_HP, xalign=0.02, yalign=0.05)
stats_frame("Evil", 5, evil_HP, evilmax_HP, xalign=0.80, yalign=0.8)
ui.textbutton("Attack", clicked=ui.returns(("hit", True)), xalign=.5,yalign=.5)
ui.textbutton("Defense", clicked=ui.returns(("block", True)), xalign=.6,yalign=.6)
ui.textbutton("Heal", clicked=ui.returns(("help", True)), xalign=.7,yalign=.7)
label start:
$ potions_left = 10
with None
jump fight
label fight:
python:
heromax_HP = 1000
hero_HP = 1000
tigermax_HP = 2000
tiger_HP = 2000
extramax_HP = 9000
extra_HP = 9000
evilmax_HP = 5000
evil_HP = 5000
while(hero_HP > 0):
stats_frame("ExtraP", 9, extra_HP, extramax_HP, xalign=0.20, yalign=0.05)
stats_frame("Tiger", 4, tiger_HP, tigermax_HP, xalign=0.98, yalign=0.8)
stats_frame("Hero", 1, hero_HP, heromax_HP, xalign=0.02, yalign=0.05)
stats_frame("Evil", 5, evil_HP, evilmax_HP, xalign=0.80, yalign=0.8)
battle("win", "lose", hero_HP, extra_HP, tiger_HP, evil_HP, xalign=0.5, yalign=0.5)
label win:
"yay"
return
label lose:
"noo"
return