Paste #30945: Untitled Paste

Date: 2016/02/28 07:58:14 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


CoinFlip:  
  type: command  
  name: Coinflip  
  usage: /coinflip ([player] [amount])|(accept)|(toggle)
  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  
  }
  - if <context.args.get[1]> == toggle {
    - if <player.has_flag[CoinFlipToggle] {
      - flag <player> CoinFlipToggle:!
      - narrate "<&a>You can now receive Coin Flip requests."
      - queue clear
    }
    - flag <player> CoinFlipToggle
    - narrate "<&c>You have can no longer receive Coin Flip requests." 
    - define opponent <server.match_player[<context.args.get[1]>]||null>
    - if <def[opponent]> == null { 
      - narrate "<&c>No player online found with that name!"     
      - queue clear
    }   
  }
  - if <def[CoinFlipToggle].as_player.has_flag {
    - narrate "<&7>This player has disabled receiving Coin Flip requests."
    - 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  
  }  
  - 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