# Import
from microbit import *  
import random

#Setting timers
my_time= 0
second_timer=5
action_time=5

#setting action list
action_list=["water","food","walk","sleep"]

#Moving dog effect(line 12 ~ line 24)
wagging_dog1=Image("00000:99009:99990:09990:09090")
wagging_dog2=Image("00000:99090:99990:09990:09090")
Happy_Image1=Image("00000:90900:00000:90009:09990")
Happy_Image2=Image("00000:00909:00000:90009:09990")
def wagging_dog():
    audio.play(Sound.HELLO)
    display.show(wagging_dog1)
    sleep(500)
    display.show(wagging_dog2)
    sleep(500)
    display.show(wagging_dog1)
    sleep(500)
    display.show(wagging_dog2)
    sleep(500)
    display.show(Image.HAPPY)
    sleep(250)
    display.show(Happy_Image1)
    sleep(250)
    display.show(Image.HAPPY)
    sleep(250)
    display.show(Happy_Image2)
    sleep(250)
   
#water effect
water_image1=Image("00900:09990:99999:99999:09990")
water_image2=Image("00600:06660:66666:66666:06660")
def water_dog():
    audio.play(Sound.GIGGLE)
    display.show(water_image1)
    sleep(500)
    display.show(water_image2)
    sleep(500)
   
# eating food effect
food_image1=Image("00000:00800:08880:99999:09990")
food_image2=Image("00000:00900:09990:99999:09990")
food_image3=Image("00000:00600:06970:99999:09990")
food_image4=Image("00000:00000:03640:99999:09990")
food_image5=Image("00000:00000:00420:99999:09990")
food_image6=Image("00000:00000:00000:99999:09990")
def food_eating():
    audio.play(Sound.HAPPY)
    display.show(food_image1)
    sleep(500)
    display.show(food_image2)
    sleep(500)
    display.show(food_image3)
    sleep(500)
    display.show(food_image4)
    sleep(500)
    display.show(food_image5)
    sleep(500)
    display.show(food_image6)
    sleep(500)

#walking image
walking_dog1=Image("00000:99009:99990:09990:09090")
walking_dog2=Image("00000:99090:99990:09990:90009")
def walking_dog():
    for i in range(3):
        audio.play(Sound.SPRING)
        display.show(walking_dog1)
        sleep(500)
        display.show(walking_dog2)
        sleep(500)
   
#sleeping dog
sleeping_dog1=Image("99990:00900:09000:99990:00000")
sleeping_dog2=Image("99999:00090:00900:09000:99999")
def sleeping_dog():
    for i in range(3):
        audio.play(Sound.TWINKLE)
        display.show(sleeping_dog1)
        sleep(500)
        display.show(sleeping_dog2)
        sleep(500)
        
#Function that detects my movement
def actions(action):
    global count, is_action
    if action == 'water':
        for i in range(100):
            sleep(10)
            if button_a.is_pressed():
                for j in range(5):
                    water_dog()
                count=0
                is_action = False
    elif action == 'food':
        for i in range(100):
            sleep(10)
            if button_b.is_pressed():
                for j in range(2):
                    food_eating()
                count=0
                is_action = False
    elif action == 'walk':
        for i in range(100):
            sleep(10)
            if button_a.is_pressed() and button_b.is_pressed():
                for i in range(2):    
                    walking_dog()
                count=0
                is_action = False
    elif action == "sleep":
        for i in range(100):
            sleep(10)
            if accelerometer.current_gesture()=="shake":
                sleeping_dog()
                count=0
                is_action = False
    count += 1
def dying_message():
    global dead, is_action, count
    if count >=5:
        display.clear()
        display.scroll("Your character is DEAD")
        display.show(Image.GHOST)
        audio.play(Sound.MYSTERIOUS)
        dead=False
        is_action = False



dead = True # This is for my while loop to work

while dead:
    count = 0
    for i in range(2):
        wagging_dog()
    is_action = True
    my_action=random.choice(action_list) #choosing random action
    if my_action=="water":
        while is_action:
            display.show(Image.ARROW_W)
            actions(my_action)
            dying_message()
            if is_action == False:
                break
            display.show(Image.ANGRY)
            actions(my_action)
            dying_message()
            if is_action == False:
                break

    elif my_action=="food":
        while is_action:
            display.show(Image.ARROW_E)
            actions(my_action)
            dying_message()
            if is_action == False:
                break
            display.show(Image.ANGRY)
            actions(my_action)
            dying_message()
            if is_action == False:
                break
               
    elif my_action=="walk":
        while is_action:
            display.show(Image.ARROW_E)
            actions(my_action)
            dying_message()
            if is_action == False:
                break
            
            display.show(Image.ARROW_W)
            actions(my_action)
            dying_message()
            if is_action == False:
                break
            display.show(Image.ANGRY)
            actions(my_action)
            dying_message()
            if is_action == False:
                break
            
               
    elif my_action=="sleep":
        while is_action:
            display.scroll("shake")
            actions(my_action)
            dying_message()
            if is_action == False:
                break
            
            display.show(Image.ANGRY)
            actions(my_action)
            dying_message()
            if is_action == False:
                break