[
    "autonomous agent",
    {
        "messages": {
            "cases": [
                {
                    "if": "{ 
                // RED vs BLUE the contentious game by 
[email protected]
                // usage
                // 1) setup two "choose address AA" and replace below $red and $blue addresses
                    $red = "
XV7T64HGBBEWJKUXIYNCWDFW6YNK4BKY";
                    $blue = "
XV7T64HGBBEWJKUXIYNCWDFW6YNK4BKY";
                    $minimum = 3;
                    if( var[ $red ][ "count" ] AND var[ $blue ][ "count" ])
                    if( var[ $red ][ "count" ] < $minimum OR var[ $blue ][ "count" ] < $minimum  ) bounce( "waiting for red=" || $red || " or blue=" || $blue || " sides to have " || $minimum || " players" );
                    if( trigger.data.needle ) bounce( "Round " || var[ 'round' ] || " Red = " || var[ 'red' ] || " vs Blue = " || var[ 'blue' ] );
                    $minimum
                }",
                    "messages": {
                        "cases": [
                            {
                                "if": "{ 
                                trigger.data.round
                            }",
                                "messages": [
                                    {
                                        "app": "payment",
                                        "payload": {
                                            "asset": "base",
                                            "outputs": [
                                                {
                                                    "address": "{$red}",
                                                    "amount": 11000
                                                },
                                                {
                                                    "address": "{$blue}",
                                                    "amount": 11000
                                                }
                                            ]
                                        }
                                    }
                                ]
                            },
                            {
                                "if": "{
                                trigger.data.message == "choosen" AND ( trigger.address == $red OR trigger.address == $blue )
                            }",
                                "messages": [
                                    {
                                        "app": "state",
                                        "state": "{
                                        if( trigger.address == $red ) var[ 'red' ] = trigger.data.choosen;
                                        if( trigger.address == $blue ) var[ 'blue' ] = trigger.data.choosen;
                                        if( var[ 'red' ] AND var[ 'blue' ] ) 
                                        var[ 'round' ] += 1;
                                        var[ 'red' ] += 1;
                                        var[ 'blue' ] += 1;
                                        response[ 'message' ] =  "Round " || var[ 'round' ] || " Red = " || var[ 'red' ] || " vs Blue = " || var[ 'blue' ];
                                    }"
                                    }
                                ]
                            },
                            {
                                "if": "{ 
                                if( trigger.output[[ asset=base ]]  < 23000 ) bounce( "need to send 23000 to request a new round");
                                trigger.output[[ asset=base ]]  >= 23000
                            }",
                                "messages": [
                                    {
                                        "app": "payment",
                                        "payload": {
                                            "asset": "base",
                                            "outputs": [
                                                {
                                                    "address": "{$red}",
                                                    "amount": 11000
                                                },
                                                {
                                                    "address": "{$blue}",
                                                    "amount": 11000
                                                },
                                                {
                                                    "address": "{trigger.address}",
                                                    "amount": "{ trigger.output[[asset=base]] - 22000 }"
                                                }
                                            ]
                                        }
                                    },
                                    {
                                        "app": "data",
                                        "payload": {
                                            "message": "choosen"
                                        }
                                    }
                                ]
                            }
                        ]
                    }
                }
            ]
        }
    }
]