Start

init -5 python:

```
   #custom bar -----------------------
   style.my_bar = Style(style.default)
   style.my_bar.xalign = 0.5
   style.my_bar.xmaximum = 315 # bar width
   style.my_bar.ymaximum = 30 # bar height
   style.my_bar.left_gutter = 5
   style.my_bar.right_gutter = 5

   # I have all my User Interface graphics stored in one file called ui.
   # To access them in my code, I put ui/ in front of all images in that file.

   style.my_bar.left_bar = Frame("ui/bar_full.png", 0, 0)
   style.my_bar.right_bar = Frame("ui/bar_empty.png", 0, 0)
   style.my_bar.hover_left_bar = Frame("ui/bar_hover.png", 0, 0)

   style.my_bar.thumb = "ui/thumb.png"
   style.my_bar.thumb_shadow = None
   style.my_bar.thumb_offset = 5

```

init -2 python:

```
   strenght = 5
   inteligence = 5
   constitution = 5
   charisma = 5
   dexterity = 5
   max_HP = constitution*10
   HP = max_HP
   dice = 3

   monster_strenght = 0
   monster_inteligence = 0
   monster_constitution = 0
   monster_charisma = 0
   monster_dexterity = 0
   monster_max_HP = 0
   monster_HP = 0
   monster_dice = 0

```

init -1:

```
   image monster_idle1:
       "characters/monster_slime1.png"
       0.2
       "characters/monster_slime2.png"
       0.2
       "characters/monster_slime3.png"
       0.2
       "characters/monster_slime2.png"
       0.2
       repeat

   image monster_attack1:
       "characters/monster_slime1.png"
       2.0
       "characters/monster_slime5.png"
       0.1
       #Move forward
       #Move backwards again
       0.2
       "characters/monster_slime1.png"
       0.1

   image monster_hurt1:
       "characters/monster_slime4.png"
       2.0
       # Shake back and forth

   image monster_idle2:
       "characters/monster_goblin1.png"
       2.0
       "characters/monster_goblin2.png"
       0.1
       #Move forward
       "characters/monster_goblin3.png"
       0.1
       "characters/monster_goblin1.png"
       #Move backwards again
       0.2

   image monster_attack2:
       "characters/monster_goblin1.png"
       2.0
       "characters/monster_goblin2.png"
       0.1
       #Move forward
       "characters/monster_goblin3.png"
       0.1
       "characters/monster_goblin1.png"
       #Move backwards again
       0.2

   image monster_hurt2:
       "characters/monster_goblin4.png"
       2.0
       # Shake back and forth

```

init python:

```
   ## ------------ Love Points Activation Code-------------------
   #This controls when the love-points floater appears.
   show_playerHP=False
   show_monsterHP=False

   ## ------------ Love Points Floating Meter --------------------
   def stats_overlay():

       # --- Giselle's Love Bar -------
       if show_playerHP:
           ui.frame(
               xpos = 10, #centered
               ypos = 10,) #10 px Down from the Top

           ui.vbox(xalign = 0.5)
           ui.text ("Player HP: %d" %HP,
               xalign = 0.5)
           ui.text ("Re rolls: %d" %re_roll,
               xalign = 0.8)
           ui.bar(max_HP, HP,
               style="my_bar")

           ui.close()

       if show_monsterHP:
           ui.frame(
               xpos = 460, #centered
               ypos = 10,) #10 px Down from the Top

           ui.vbox(xalign = 0.5)
           ui.text ("Monsters HP: %d" %monster_HP,
               xalign = 0.5)
           ui.bar(monster_max_HP, monster_HP,
               style="my_bar")

           ui.close()

```

```
   config.overlay_functions.append(stats_overlay)

```

```
   ## ------------ Define monsters animations-------------------

```

```
   monster_animation = 1 # defoult value for monster animation

```

```
   def monster_hurt(st, at): # define what moster is to be shown depending on what monster your facing
       return LiveComposite(
           (400, 600), # image size
           (200, 0), "monster_hurt%d"%monster_animation, #Ofsett 200 px, then call for monster image depending on moster you face
           ),.1

```

```
   def monster_idle(st, at):
       return LiveComposite(
           (400, 600),
           (200, 0), "monster_idle%d"%monster_animation,
           ),.1

```

```
   def monster_attack(st, at):
       return LiveComposite(
           (400, 600),
           (200, 0), "monster_attack%d"%monster_animation,
           ),.1

```

init:

```
   image bg forest = "forest_int.png"

   image y tough = im.Scale("characters/You_serious.png", 160, 500)  #(y, x)
   image y hurt =  im.Scale("characters/You_hurt.png", 160, 500)

```

```
   image monster normal = DynamicDisplayable(monster_idle) # using DynamicDisplayable ensures that any changes are visible immedietly
   image monster attack = DynamicDisplayable(monster_attack) # using DynamicDisplayable ensures that any changes are visible immedietly
   image monster hurt = DynamicDisplayable(monster_hurt) # using DynamicDisplayable ensures that any changes are visible immedietly

```

```
   $ character = Character('Zink', color="#c8ffc8")
   $ enemy = Character('Monster', color="#c8ffc8")

```

label start:

```
   $ dice_1_poss = Position(xpos=.01, xanchor=0, ypos=.14, yanchor=0)
   $ dice_2_poss = Position(xpos=.11, xanchor=0, ypos=.14, yanchor=0)
   $ dice_3_poss = Position(xpos=.21, xanchor=0, ypos=.14, yanchor=0)
   $ dice_4_poss = Position(xpos=.31, xanchor=0, ypos=.14, yanchor=0)
   $ dice_5_poss = Position(xpos=.06, xanchor=0, ypos=.28, yanchor=0)
   $ dice_6_poss = Position(xpos=.16, xanchor=0, ypos=.28, yanchor=0)
   $ dice_7_poss = Position(xpos=.26, xanchor=0, ypos=.28, yanchor=0)

   $ monster_dice_1_poss = Position(xpos=.9, xanchor=0, ypos=.14, yanchor=0)
   $ monster_dice_2_poss = Position(xpos=.8, xanchor=0, ypos=.14, yanchor=0)
   $ monster_dice_3_poss = Position(xpos=.7, xanchor=0, ypos=.14, yanchor=0)
   $ monster_dice_4_poss = Position(xpos=.6, xanchor=0, ypos=.14, yanchor=0)
   $ monster_dice_5_poss = Position(xpos=.85, xanchor=0, ypos=.28, yanchor=0)
   $ monster_dice_6_poss = Position(xpos=.75, xanchor=0, ypos=.28, yanchor=0)
   $ monster_dice_7_poss = Position(xpos=.65, xanchor=0, ypos=.28, yanchor=0)

   $ experience = 0
   $ level = 1
   $ klass = "none"

   $ player_status = "none"

```

```
   #######################################################################################
   #### combat values sett ###############################################################
   #######################################################################################

```

```
   $ diplomatic_xp = 0
   $ battle_continue = True

```

```
   $ player_turn = "none"
   $ random_monster = "none"

   $ blocking = 0

   $ heal = 0
   $ damage = 0
   $ first_round = "none"
   $ status_dice_check = 0

```

```
   #######################################################################################
   #### Your dice pool ###################################################################
   #######################################################################################

```

```
   $ dice_1 = "none"
   $ dice_2 = "none"
   $ dice_3 = "none"
   $ dice_4 = "none"
   $ dice_5 = "none"
   $ dice_6 = "none"
   $ dice_7 = "none"

```

```
   $ re_roll_dice1 = True
   $ re_roll_dice2 = True
   $ re_roll_dice3 = True
   $ re_roll_dice4 = True
   $ re_roll_dice5 = True
   $ re_roll_dice6 = True
   $ re_roll_dice7 = True

```

```
   $ dice_1_status = "none"
   $ dice_2_status = "none"
   $ dice_3_status = "none"
   $ dice_4_status = "none"
   $ dice_5_status = "none"
   $ dice_6_status = "none"
   $ dice_7_status = "none"

```

```
   $ sword_dice = 0
   $ combo_dice = 0
   $ shield_dice = 0
   $ magic_dice = 0
   $ talk_dice = 0
   $ hart_dice = 0

   $ re_roll_toggle = 0
   $ re_roll_menu = True
   $ re_roll = 2

```

```
   $ dice_remove = "none"
   $ dice_used = 0

   #######################################################################################
   #### Skills to unlock #################################################################
   #######################################################################################

   $ skill_shield_smash = True
   $ skill_heal = True
   $ skill_fire_ball = True

   #######################################################################################
   #### Monster dice pool ################################################################
   #######################################################################################

```

```
   $ target_enemie = "none"
   $ monster_experience = 0

   $ monster_status = "none" ### move status check to when you attack!?

```

```
   $ monster_dice_1 = "none"
   $ monster_dice_2 = "none"
   $ monster_dice_3 = "none"
   $ monster_dice_4 = "none"
   $ monster_dice_5 = "none"
   $ monster_dice_6 = "none"
   $ monster_dice_7 = "none"

```

```
   $ monster_dice_1_status = "none"
   $ monster_dice_2_status = "none"
   $ monster_dice_3_status = "none"
   $ monster_dice_4_status = "none"
   $ monster_dice_5_status = "none"
   $ monster_dice_6_status = "none"
   $ monster_dice_7_status = "none"

```

```
   $ re_roll_monster_dice1 = True
   $ re_roll_monster_dice2 = True
   $ re_roll_monster_dice3 = True
   $ re_roll_monster_dice4 = True
   $ re_roll_monster_dice5 = True
   $ re_roll_monster_dice6 = True
   $ re_roll_monster_dice7 = True

```

```
   $ sword_monster_dice = 0
   $ combo_monster_dice = 0
   $ shield_monster_dice = 0
   $ magic_monster_dice = 0
   $ talk_monster_dice = 0
   $ hart_monster_dice = 0

   ###################################################
   ## BATTLE START ###################################
   ###################################################

```

```
   "Wellcome to test demo!"

   menu:
       "Chose class!"
       "Warrior":
           $ klass = "warrior"
       "Bard":
           $ klass = "bard"
       "Mage":
           $ klass = "mage"
       "Cleric":
           $ klass = "cleric"
       "Rouge":
           $ klass = "rouge"

```

```
   $ random_monster = renpy.random.choice(['slime', 'goblin'])

```

```
   if random_monster == "slime":
       call slime
   if random_monster == "goblin":
       call goblin

   $ first_round = renpy.random.choice(['player', 'monster'])

```

```
   if first_round == "player":
       $ player_turn = "player"
   if first_round == "monster":
       $ player_turn = "monster"

```

```
   call battle_engine

```

```
   if player_turn == "victory":
       "You have vanquished the %(target_enemie)s!"
       "You gain %(monster_experience)d EXP!"
       $ experience += monster_experience
   elif player_turn == "diplomatic_victory":
       "The %(target_enemie)s retreets!"
       $ diplomatic_xp = monster_experience/2
       $ experience += diplomatic_xp
       "You gain %(diplomatic_xp)d EXP!"

```

```
   call level_upp
   # if level up: $ HP = max_HP,,, add to level_upp label

   menu:
       "you want full heal?"
       "Yes":
           $ HP = max_HP
       "No":
           pass

```

```
   "And back to start."

```

```
   jump start

```

label game\_over:

```
   "Game Over!"

   return

```