#---------------------------------------------------------------------# #-----Simple Dice Game. Player and delayer rolls 3 dices--------------# #--------If player dices summary more than dealers -------------------# #--------player bet doublled, otherwise it burns----------------------# #---------------------------------------------------------------------# #------------------------# #--------TASKS-----------# #------------------------# simple_dice_game_roll_dices: #-----Procedure to roll 3 dices and wrtite to list. debug: false type: procedure script: - repeat 3: - define dices:->: - determine <[dices]> simple_dice_game_print_result: #-----Print result of rolling with total points. debug: false type: task defenitions: who|dice1|dice2|dice3|total script: - narrate "------------" - narrate "<[who]> dices:" - narrate "|---| |---| |---|" - narrate "|-<[dice1]>-| |-<[dice2]>-| |-<[dice3]>-| Total = <[total]>" - narrate "|---| |---| |---|" simple_dice_game_winner_check: #-----Check winner. debug: false type: task defenitions: player_sum_check|dealer_sum_check script: - narrate "~~~~~~RESULT~~~~~~" - wait 1s - if <[player_sum_check]> == <[dealer_sum_check]>: - narrate "Draw!" - stop - if <[player_sum_check]> > <[dealer_sum_check]>: - narrate " win!" - give quantity:2 - flag bet:! #-----Give player his bet with reward and remove bet flag - else: - narrate " lose!" - wait 1s - narrate "Dealer keeps !" - flag bet:! simple_dice_game_drop_bet: #-----Return bet and clean flag. debug: false type: task script: - give quantity:1 - flag bet:! simple_dice_game: debug: false type: task script: - narrate "Nice! Let's roll" - wait 1s - foreach as:entity: - define <[entity]>_dices: #-----Roll dice - define <[entity]>_sum:<[<[entity]>_dices].sum> #-----Save dice summary - ~run simple_dice_game_print_result def.who:<[entity].to_uppercase> def.dice1:<[<[entity]>_dices].get[1]> def.dice2:<[<[entity]>_dices].get[2]> def.dice3:<[<[entity]>_dices].get[3]> def.total:<[<[entity]>_sum]> #-----Print result - wait 1s - ~run simple_dice_game_winner_check def.player_sum_check:<[player_sum]> def.dealer_sum_check:<[dealer_sum]> #-----Check winner - wait 1s #------------------------# #-----NPC ASSIGNMENT-----# #------------------------# simple_dice_game_npc: type: assignment actions: on assignment: - trigger name:click state:true - trigger name:proximity state:true radius:5 - trigger name:chat state:true cooldown:2s radius:3 interact scripts: - simple_dice_game_interact simple_dice_game_interact: debug: false type: interact steps: default*: proximity trigger: entry: script: - engage - narrate "Wanna play dices?" - wait 1s - narrate "Rules: If you win - your bet will be doubled. If you lose I will take your et." - wait 1s - narrate "If so, take your bet to the hand and click on me." - disengage exit: script: - narrate "See you." #-----Return bet and clean flag if player leave. - if : - inject simple_dice_game_drop_bet click trigger: script: - engage #-----Return bet and clean flag if player already have bet flag, but in default state. - if : - inject simple_dice_game_drop_bet - flag bet: - take iteminhand quantity:1 #-----Remember player bet and take item - narrate "Your bet is ? Are you sure?" - narrate "<&7>[<&n>Yes].click_chat[Yes].on_hover[Yes]> or <&n>No].click_chat[No].on_hover[No]>] or click for yes" #-----Ask for confirmation(yes, no, or click) - disengage - zap game_acception 1m game_acception: proximity trigger: exit: script: #-----Return bet and clean flag if player leave. - narrate "As you wish" - inject simple_dice_game_drop_bet - zap * click trigger: script: - engage - inject simple_dice_game - narrate "Thank you" - disengage - zap * chat trigger: 1: trigger: /Yes|Yes|yes/ script: - engage - inject simple_dice_game #-----Run game - narrate "Thank you" - disengage - zap * 2: trigger: /NO|No|no/ script: #-----Return bet and clean flag if player disagry. - engage - narrate "Ok" - inject simple_dice_game_drop_bet - disengage - zap * 3: trigger: /*/ script: - narrate "Please click <&7>[<&n>Yes].click_chat[Yes].on_hover[Yes]> or <&n>No].click_chat[No].on_hover[No]>] or click for yes" - zap game_acception 30s