Paste #30912: Untitled Paste

Date: 2016/02/27 17:47:34 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


CoinFlip:  
  type: command  
  name: Coinflip  
  usage: /coinflip ([player] [amount])|(accept)  
  description: Flip a coin and bet your money on the outcome!  
  tab complete:  
  - determine <server.list_players.parse[name].filter[starts_with[<context.args.last||>]]>  
  script:  
  - if <context.args.size> < 1 {  
    - narrate "You have provided no arguments to the command" targets:<player>  
    - queue clear  
  }
  - define PlayerinProgress <context.args.get[1]>
  - if <def[PlayerinProgress]as_player.has_flag[CoinFlipProgress]> {
    - narrate "<&c>This player is already in a coin flip game!"
    - queue clear
  }
  - define CoinFlipPlayer <player.name>  
  - if <context.args.get[1]> == accept {  
    - if <player.has_flag[CoinFlip]> {  
      - flag <player.flag[CoinFlip]> CoinFlip:<player> duration:15s  
      - take money qty:<player.flag[CoinFlipMoney]>       
      - if <util.random.int[1].to[100]> <= 50 {  
        - define winner <player>  
        - define loser <player.flag[CoinFlip]>  
      } else {  
        - define winner <player.flag[CoinFlip]>  
        - define loser <player>  
      }  
      - flag <def[winner]> CoinFlipProgress
      - flag <def[loser]> CoinFlipProgress
      - narrate "<&6>[LWCoinFlip] Coin flip accepted! Flipping the coin in..." targets:<def[winner]>|<def[loser]>  
      - wait 1s  
      - narrate "<&7>[LWCoinFlip] 3..." targets:<def[winner]>|<def[loser]>  
      - wait 1s  
      - narrate "<&7>[LWCoinFlip] 2..." targets:<def[winner]>|<def[loser]>  
      - wait 1s  
      - narrate "<&7>[LWCoinFlip] 1..." targets:<def[winner]>|<def[loser]>  
      - wait 1s  
      - define winnings <player.flag[CoinFlipMoney].mul[2].as_money> 
      - define MoneyAmount <player.flag[CoinFlipMoney].mul[2]>  
      - give money qty:<def[MoneyAmount]> player:<def[Winner]> 
      - narrate "<&a>[LWCoinFlip] You won a coin flip against <def[loser].name> and won $%winnings%" targets:<def[winner]>  
      - playsound <def[winner]> sound:level_up pitch:1.5
      - playsound <def[loser]> sound:fizz
      - narrate "<&c>[LWCoinFlip] You lost a coin flip against <def[winner].name> and lost $<player.flag[CoinFlipMoney]>" targets:<def[loser]>  
      - flag <def[winner]> CoinFlip:! 
      - flag <def[loser]> CoinFlip:! 
      - flag <def[winner]> CoinFlipProgress:!
      - flag <def[loser]> CoinFlipProgress:!
      - queue clear  
    }  
    - narrate "<&7>You have no pending coin flip requests!"  
    - queue clear  
  }  
  - define opponent <server.match_player[<context.args.get[1]>]||none>  
  - if <def[opponent]> == none {   
    - narrate "<&c>No player online found with that name!"     
    - queue clear     
  }     
  - if <player.has_flag[CoinFlip]> {  
    - narrate "<&7>[LWCoinFlip] Please wait <player.flag[CoinFlip].expiration.formatted.replace[forever].with[0s]> seconds before coin flipping again!"  
    - queue clear  
  }  
  - define CoinFlipMoney <context.args.get[2]||none>  
  - if !<def[CoinFlipMoney]> matches double {  
    - narrate "<&c>That's not a real number u doofus"  
    - queue clear  
  }  
  - if <player.money> < <def[CoinFlipMoney]> || <def[opponent].money> < <def[CoinFlipMoney]> {  
    - narrate "<&c>You or the targetted player do not have enough money to coin flip!"  
    - queue clear   
  }  
  - take money qty:<def[CoinFlipMoney]>  
  - narrate "<&6>[LWCoinFlip] Sent Coinflip request to <&f><def[opponent].name> <&6>for $<def[CoinFlipMoney]>!"  
  - narrate "<&a>[LWCoinFlip] They have 15 seconds to accept the coin flip by doing /coinflip accept"  
  - narrate "<&6>[LWCoinFlip] Player <player.name> wants to flip-a-coin with you for $<def[CoinFlipMoney]>" targets:<def[opponent]>  
  - narrate "<&7>[LWCoinFlip] Type /coinflip accept to accept the coinflip!" targets:<def[opponent]>  
  - flag <def[opponent]> CoinFlip:<player> duration:15s  
  - flag <def[opponent]> CoinFlipMoney:<def[CoinFlipMoney]> duration:15s  
  - flag <player> CoinFlip:<def[opponent]> duration:15s  
  - wait 15s