breadworms / gofish

1 stars 1 forks source link

Add pvp #1

Open breadworms opened 1 year ago

breadworms commented 1 year ago

This would use channel data to set up trades or fights. Since it's easily cheatable, this would only be for fun. It would require two users, one to initiate a trade/fight, and another to accept it, while the request is stored in channel data.

Trades: Probably not. Any way you implement it, the end result means you could use it to give yourself any fish.

Fights: Would just be a random outcome between two fish for fun, it's doable.

breadworms commented 1 year ago

Fights can be done. The command will be split into $$ gopvp, which might happen before this change via #2.

$$ gopvp fight @User will send a request to fight. Will be implemented via a message protocol, where users can send messages between each other. A message is sent with $$ gopvp, and will be in channelCustomData in transit until the recipient uses it too, where it is then deleted from channelCustomData. ~For simplicity, one message per user at all times.~

A fight might look something like > to jane, "fight john", < to john, "accept jane <fish> <weight>". John will then choose his fish and the outcome is printed ~and his stats updated. A message to complete the transaction is sent to Jane, like to jane, "lost +1" (probably with no expiry) which will be processed next time stats are read ($$ gopvp stats) or anytime the command is used.~ Same problem as trading, too easily exploitable, needs to just be a flavor message for fun, no stats.

So a message needs ~source,~ maybe type, destination, contents and possibly expires. Something like that. Writing this down before I sleep, it will turn out how it turns out.