Topic: Look! Up in the sky! It's the CapesBOT!
Started by: Kai_lord
Started on: 8/22/2006
Board: Muse of Fire Games
On 8/22/2006 at 5:53pm, Kai_lord wrote:
Look! Up in the sky! It's the CapesBOT!
Well, as Hans requested, I'm officially announcing my Capes IRC bot. It's designed to track turn order and conflicts in a IRC Capes game. As of right now, it doesn't have a save/load feature, but I'm looking to add that, as well as tracking characters, debt, and players.
Right now, it supports the following commands:
• conflict: Sets a new conflict (either a goal or an event). Note: there is nothing to stop you starting your conflict however you want. However, starting with Goal:, or Event: is recommend, just as with a tabletop game of Capes.
To use, type: !conflict <Conflict text.>
Example: !conflict Goal: The Iron Brain kills an innocent.
Output: Goal: The Iron Brain kills an innocent. has been added.
• goals: Gives a list of all the conflicts in play (goals or events).
To use, type: !goals
Example output:
1) Goal: The Iron Brain kills an innocent. *Side A*: TheIronBrain; Side B: None
2) Goal: Defeat all villains in combat Side A: None; Side B: None
The stars around Side A mean that it is the controlling side. The list of characters are those allied with a side.
• details: Gives a detailed view of a conflict.
To use, type !details <conflict number>
Example: !details 1
Output:
A: 3. Stakes: None. Allies: TheIronBrain.
B: 1. Stakes: None. Allies: None.
• roll: Rolls a die on a conflict.
To use, type !roll <up or down> <character name> <conflict number> <side letter> <die number>
Up or down is optional. If up is selected, only a roll higher than the current value will be accepted. If down, only a lower roll will be accepted.
Example: !roll up TheIronBrain 1 A 1
Output:
The die roll was: 3
Goal: The Iron Brain kills an innocent.
A: 3. Stakes: None. Allies: TheIronBrain.
B: 1. Stakes: None. Allies: None.
• stake. Stakes debt on one side of a conflict.
To use, type: !stake <character name> <debt amount> <debt type> <conflict number> <side letter>
Example: !stake TheIronBrain 2 despair 1 A
Output:
Goal: The Iron Brain kills an innocent.
A: 3. Stakes: TheIronBrain: 2 dispair. Allies: TheIronBrain.
B: 1. Stakes: None. Allies: None.
• split. Used to split the dice.
To use, type: !split <character name> <conflict number> <side letter> <die number> <total debt to split to>
Example: !split TheIronBrain 1 A 1 2
Output:
Goal: The Iron Brain kills an innocent.
A: 1, 2. Stakes: TheIronBrain: 2 dispair 1, 2. Allies: TheIronBrain.
B: 1. Stakes: None. Allies: None.
• insp. Used to set a die using an inspiration.
To use, type: !insp <character name> <conflict number> <side letter> <die number> <value to set the die>
Example: !insp TheIronBrain 1 A 1 5
Output:
Goal: The Iron Brain kills an innocent.
A: 5, 2. Stakes: TheIronBrain: 2 dispair 5, 2. Allies: TheIronBrain.
B: 1. Stakes: None. Allies: None.
• claim. Used to claim a side.
To use, type: !claim <character name> <conflict number> <side letter>
Example: !claim TheIronBrain 1 A
Output:
Goal: The Iron Brain kills an innocent.
A: 5, 2. Claimed by TheIronBrain. Stakes: TheIronBrain: 2 dispair 5, 2. Allies: TheIronBrain.
B: 1. Stakes: None. Allies: None.
• schism. Used to split off a new side.
To use, type: !schism <character name> <conflict number> <side letter> <# of dice to take with you>
Example: !schism Tesla 1 A 3
output:
Goal: The Iron Brain kills an innocent.
A: 1, 1. Claimed by TheIronBrain. Stakes: TheIronBrain: 2 despair 1, 1. Allies: TheIronBrain.
B: 1. Stakes: None. Allies: None.
C: 1, 2, 1. Stakes: Tesla: 3 pride 1, 2, 1. Allies: None.
• check. Checks which conflicts will resolve at the end of the page.
To use, type: !check
Example output:
The following conflicts will resolve at the end of the page.
1) Goal: The Iron Brain kills an innocent. Side A: TheIronBrain; Side B: None; *Side C*: None
• gloat: Allows players to gloat a goal. This will remove any claims, so that the conflict will not resolve the next page.
To use, type: !gloat <character name> <conflict number> <side letter>
Example: !gloat Tesla 1 C
Output:
Goal: The Iron Brain kills an innocent.
A: 1, 1. Stakes: TheIronBrain: 2 despair 1, 1. Allies: TheIronBrain.
B: 1. Stakes: None. Allies: None.
C: 1, 2, 1. Stakes: Tesla: 3 pride 1, 2, 1. Allies: None.
Tesla's player gets 3 story tokens.
• endpage. Ends the page. Determines what conflicts resolve, clears all claims, and removes resolved conflicts. Reminds who the next page starter is, and if a new scene has started, who the new scene starter is as well.
To use, type: !endpage
Example output:
1) Goal: The Iron Brain kills an innocent.'s controlling side was not claimed.
2) Goal: Defeat all villains in combat is resolved by MajorVictory for side A. Dice: A: 3; B: 1. Debt returned: . Story tokens to award:
New page starter: Kai_Lord. Note conflict numbers may have changed.
Example output 2:
1) Goal: The Iron Brain kills an innocent. is resolved by MajorVictory for side C. Dice: A: 1, 1; B: 1; C: 1, 2, 1. Debt returned: TheIronBrain 4 despair. . Story tokens to award: Tesla 3 story tokens.
All conflicts for the page are resolved. Start new scene. Scene starter: Kai_Lord
• player. Adds and removes players to the turn order.
To use, type: !player <add, remove, or list> <player name>
On 8/22/2006 at 6:01pm, Bret Gillan wrote:
Re: Look! Up in the sky! It's the CapesBOT!
Wowzers. I'm going to have to dust off mIRC.
On 8/22/2006 at 6:22pm, Kai_lord wrote:
RE: Re: Look! Up in the sky! It's the CapesBOT!
It's actually a Java program, so as long as you have the latest JRE, you should be able to run it. It's not quite ready for primetime yet, though. I still need to add the save/load feature, and there are still some rough spots that need ironing out. For instance, there's no user interface to speak of, and it's hardcoded to connect to one channel on one server. Give me about a week, and then I'll put it up for download.
On 8/22/2006 at 6:28pm, jesterina wrote:
RE: Re: Look! Up in the sky! It's the CapesBOT!
Will the source code for the bot be available?
On 8/22/2006 at 7:05pm, Kai_lord wrote:
RE: Re: Look! Up in the sky! It's the CapesBOT!
Of course. However, I didn't code the IRC connection myself - I'm using PIRCbot framework (at http://www.jibble.org/pircbot.php) to handle that. My code is perfectly safe, but you might want to check them out if you're nervous.
Now, if anyone wants to test it, I'll be leaving up at: irc://linuxguy.magicstar.net/CapesBotTest
tonight until about 8 pm while I'm at work, and then I will be working on getting the save/load up and running. Have fun, and if anyone can break it, I'd be very happy. Bug hunting is always the most time consuming part of writing software.
On 8/22/2006 at 7:24pm, Hans wrote:
RE: Re: Look! Up in the sky! It's the CapesBOT!
Kai_lord wrote:
Well, as Hans requested, I'm officially announcing my Capes IRC bot.
Thanks, Kai_Lord (Michael, right?). This is great, great stuff. I know nothing about IRC, but this is enough to make me want to learn.
Hans
On 8/25/2006 at 5:00pm, Kai_lord wrote:
RE: Re: Look! Up in the sky! It's the CapesBOT!
Well, folks, we have a good news, bad news, good news situation.
First the good news - the public release of the Capes IRC Bot should be happening sometime on Thursday, assuming that no major bugs show up in the game Wednesday night. I'll be posting a link to the files once I get it online. Additional features in this verson:
• A private option for most of the information commands (goals, details, and player list among them) which sends the information directly to you, instead of the channel.
• A working player list, with the option of inserting a player anywhere in the list.
• The ability to serve more that one game per bot instance. Each channel the bot is on gets it's own game.
• A few minor bug fixes to bring the bot in compliance with the Capes rules.
Now, the bad news. Other than fixing bugs that are brought to my attention, I will not be working on the CapesBot any more.
However, this leads to my second bit of good news: I will be spending my spare time developing the Capes Virtual Tabletop, an application devoted to playing Capes online. It will fully implement the Capes ruleset.
On 8/25/2006 at 5:36pm, arcane wrote:
RE: Re: Look! Up in the sky! It's the CapesBOT!
I look forward to the CVTT.
--Look up in the sky, it's... A rabbid eggplant?
On 8/25/2006 at 5:53pm, Bret Gillan wrote:
RE: Re: Look! Up in the sky! It's the CapesBOT!
What are you using to develop this application, Kai?
On 8/27/2006 at 10:57am, AaronLehmann wrote:
RE: Re: Look! Up in the sky! It's the CapesBOT!
Kai --
Are you planning to make the source available? I'd like to try porting it to Python, and take over. It'll get me current on Java, and give me something to poke on.
Aaron Lehmann
On 8/27/2006 at 11:38am, Kai_lord wrote:
RE: Re: Look! Up in the sky! It's the CapesBOT!
Bret - I'll be working in Java, just as with the Capes bot.
Aaron - As I said above, yes, I'll be releasing the source, I just want to make sure that there are no major bugs on Wednesday, and then I'll be posting both the .jar and the source online.
On 8/28/2006 at 1:34am, Kai_lord wrote:
RE: Re: Look! Up in the sky! It's the CapesBOT!
Well for anyone who's interested, the very first verson of the CapesVTT is available for a look see. Warnings - this is prealpha software, and requires the JRE 5.0 to run. This is not completely functional, but it will let you chat with and send new characters to everyone connected to the same game. You can also double click to view the characters. Beware, though. Edits will change your local copy of the character, but will not yet update the server or other clients. It also more than likely has bugs - lots of them, and is majorly fugly. Still we've taken that first step on the 1000 mile journy.