HOME DOWNLOADS

*
Welcome, Guest. Please login or register.
Did you miss your activation email?
June 19, 2013, 11:25:23 AM

Login with username, password and session length

Members
  • Total Members: 2318
  • Latest: Vaiuri
Stats
  • Total Posts: 288364
  • Total Topics: 6692
  • Online Today: 34
  • Online Ever: 348
  • (February 22, 2011, 07:24:31 AM)
Users Online
Users: 1
Guests: 11
Total: 12

Dice Roller

Type of Dice Number of Dice

2

4

6

8

10

12

20

100

1

2

3

4

5

6

8

10

Author Topic: Gladiator Bot  (Read 762 times)

0 Members and 1 Guest are viewing this topic.

Offline ttsgosadow

  • GamesMasters
  • Knight of the Round Table
  • *
  • Posts: 709
    • http://www.ttsgosadow.nl
Gladiator Bot
« on: August 31, 2005, 02:00:52 PM »
I have been asked by Sorloc to create a program that can resolve battles between gladiators. It sounds like something very fun and challenging (especially after reading the rules :)) and I took up the stick.

My first idea was to incorporate the tool in a bot, which could lurk in the FlashChat always ready to perform his duties. After reading all the details that make up a gladiator I think it will be hard to tell the bot which gladiators are going to fight.


So my question to you: How do you think a program that calculates a battle (and telling everybody how it's going in a chat window) should look. Also how you think input should be given, how output should look, etc. Tell me all you can think off! I will ask more if I need to know more.

First up - the concept. I will keep you updated.
[!--QuoteBegin--][/div][table border=\'0\' align=\'center\' width=\'95%\' cellpadding=\'3\' cellspacing=\'1\'][tr][td]QUOTE [/td][/tr][tr][td id=\'QUOTE\'][!--QuoteEBegin--]inside you find a collection of milkmen all drinking coffee[/quote]
EvilSanta @ Sep 28 2005, 11:11 PM

Offline ttsgosadow

  • GamesMasters
  • Knight of the Round Table
  • *
  • Posts: 709
    • http://www.ttsgosadow.nl
Gladiator Bot
« Reply #1 on: August 31, 2005, 02:13:22 PM »
First scenario - it will be the Gladiator bot
ttsgosadow: !gladiator
gladiatorbot: ttsgosadow, you can 1. start a fight
ttsgosadow: 1
gladiatorbot: starting a fight - add gladiator one?
ttsgosadow: Brave Michael
gladiatorbot: 'Brave Michael' is of what species? Choose Human, Dwarf, Halfling, [...]
ttsgosadow: Human
gladiatorbot: Brave Michael is a human.
[etc]

I think this will take up way to much time.
[!--QuoteBegin--][/div][table border=\'0\' align=\'center\' width=\'95%\' cellpadding=\'3\' cellspacing=\'1\'][tr][td]QUOTE [/td][/tr][tr][td id=\'QUOTE\'][!--QuoteEBegin--]inside you find a collection of milkmen all drinking coffee[/quote]
EvilSanta @ Sep 28 2005, 11:11 PM

Offline Sorloc

  • GamesMasters
  • Viscount
  • *
  • Posts: 3956
    • Facebook
Gladiator Bot
« Reply #2 on: August 31, 2005, 03:59:28 PM »
It would not be good if we have to enter all the info for our gladiator every time.  especially since one could easily cheat.
that's why the program has to be able to save the info from the games, including the full roster of gladiators.  
I envision password protection on gladiators.  although you could use the same password for your entire stable, that means when you 'loan out' a gladiator (give someone the password to unlock the gladiator), they don't have access to your whole stable.
The password could be as simple as a last name for the gladiator, which is never displayed during the fight.

so I type
Sorloc: !Gladiators
gladiatorbot: enter combatants on Team 1:
Sorloc: Joe Bob
ttsgosadow: Hans Off
gladiatorbot: enter combatants on Team 2:
Sorloc: Arena
gladiatorbot: Choose arena opponent: Humans, Dwarves, Rabbits, Lion:
Sorloc: Lion
gladiatorbot: # opponents:
ttsgosadow: 1
gladiatorbot: Lion 1: Primary weapon?
gladiatorbot: Claw
gladiatorbot: Lion 1: Secondary weapon?
gladiatorbot: Bite
gladiatorbot: Hans: Primary weapon?
ttsgosadow: Javelin
gladiatorbot: Hans: Secondary weapon?
ttsgosadow: none
gladiatorbot: Joe: Primary weapon?
Sorloc: Gladius
gladiatorbot: Joe: Secondary weapon?
Sorloc: Buckler

gladiatorbot: Joe and Hans vs Lion, Round 1.
gladiatorbot: Hans: 1) Attack/Attack, 2) Attack/Parry, 3) Parry/Parry, 4) Attack/Dodge, 5) Parry/Dodge?
ttsgosadow: 2
gladiatorbot: Joe: 1)Melee, 2) Missile?
Sorloc: 1
gladiatorbot: Joe, 1) Attack/Attack, 2) Attack/Parry, 3) Parry/Parry, 4) Attack/Dodge, 5) Parry/Dodge?
Sorloc: 4
gladiatorbot: Dodge whom?
Sorloc: Lion 1
gladiatorbot: Joe and Hans vs Lion 1, Round 1, Phase 3.
gladiatorbot: Hans Javelin Attack: Target?
ttsgosadow: Lion 1
gladiatorbot: Hans Attack vs Lion 1: Javelin
gladiatorbot: Lion Defense: none
gladiatorbot: Result: Hit, ForeQuarters, 4hits-2AP.
gladiatorbot: Joe and Hans vs Lion 1, Round 1, Phase 5.
gladiatorbot: Lion 1 Attack vs Joe: Claw
gladiatorbot: Joe Defense: Dodge, success
gladiatorbot: Result: Miss

that's a basic idea, details to be added later, and I'm sure we can think of a way to streamline it.

"Terrible what passes for a ninja these days" -- Pops Racer (John Goodman), Speed Racer (2008)
"How hard can it be?" -- Indiana Jones (Harrison Ford), Temple of Doom (1984)


Offline ttsgosadow

  • GamesMasters
  • Knight of the Round Table
  • *
  • Posts: 709
    • http://www.ttsgosadow.nl
Gladiator Bot
« Reply #4 on: September 01, 2005, 03:01:27 PM »
I am thinking of coupling my database to the bot. The bot is now tested in #rpgrm on irc.xs4all.nl.

I was thinking people could use commands to edit their gladiator (or via a webpage). Then when you battle you just enter the name of your gladiator (and I might add a password which you should PM to the bot) and then you  can join a fight. Put something in the oposing team - and battle it out.

Going nice so far! At the moment it looks like this:

Quote from: QUOTE
<ttsgosadow> !gladiators
<gladiatorBot> Starting a match - enter combatants on teams 1 and 2. Type !team1 <combatant name> or !team2 <combatant name> to enter combatants in the two teams. Type !team2 Arena gives options for arena combatants. Type !ready when ready.
<ttsgosadow> !team1 Tim de Groot
<gladiatorBot> Tim de Groot has joined team1
<ttsgosadow> !team2 Evil sorceress
<gladiatorBot> Evil sorceress has joined team2
<ttsgosadow> !ready
<gladiatorBot> Ready entering combatants. Proceed to equiping.
<gladiatorBot> Tim de Groot kills Evil sorceress with a lucky blow.
<gladiatorBot> Evil sorceress's bloody corpse is fed to the crows. Tim de Groot wins!
<gladiatorBot> end of battle.

As you can see I havnt implemented assigning actions yet. But I will :)

Here is the latest version of output:

Quote from: QUOTE
<ttsgosadow> !gladiators
<gladiatorBot> Starting a match - enter combatants on teams 1 and 2. Type !team1 <combatant name> or !team2 <combatant name> to enter combatants in the two teams. Type !team2 Arena gives options for arena combatants. Type !ready when ready.
<ttsgosadow> !team1 Tim de Groot
<gladiatorBot> Tim de Groot has joined team1
<ttsgosadow> !team2 Evil Sorceress
<gladiatorBot> Evil Sorceress has joined team2
<ttsgosadow> !ready
<gladiatorBot> Ready entering combatants. Declare actions.
<gladiatorBot> What action for Tim de Groot? 1) Attack/Attack, 2) Attack/Parry, 3) Parry/Parry, 4) Attack/Dodge, 5) Parry/Dodge?
<gladiatorBot> What action for Evil Sorceress? 1) Attack/Attack, 2) Attack/Parry, 3) Parry/Parry, 4) Attack/Dodge, 5) Parry/Dodge?
<gladiatorBot> Tim de Groot kills Evil Sorceress with a lucky blow.
<gladiatorBot> Evil Sorceress's bloody corpse is fed to the crows. Tim de Groot wins!
<gladiatorBot> end of battle.

Tell me what you think!
« Last Edit: September 01, 2005, 03:11:57 PM by ttsgosadow »
[!--QuoteBegin--][/div][table border=\'0\' align=\'center\' width=\'95%\' cellpadding=\'3\' cellspacing=\'1\'][tr][td]QUOTE [/td][/tr][tr][td id=\'QUOTE\'][!--QuoteEBegin--]inside you find a collection of milkmen all drinking coffee[/quote]
EvilSanta @ Sep 28 2005, 11:11 PM

Offline Sorloc

  • GamesMasters
  • Viscount
  • *
  • Posts: 3956
    • Facebook
Gladiator Bot
« Reply #5 on: September 01, 2005, 06:10:59 PM »
Looks great so far!
The combat system runs thus:
beginning of round:
you get two actions each round, of attack, parry, or dodge.  you may do any 2.  
You must assign a target for your attack,
a target for your parry,
a target for your dodge.
A parry is good against the first attack from a given foe, but a dodge is effective for all attacks from a given target.

So, if you attack/Parry, and your opponent attack/attack, you can't parry the second attack (which by default will be the off-hand attack), but neither can he defend againat yours.

In game, changing targets results in a time penalty (you strike later in the round).
We might discard this to streamline and not allow changing targets or weapons during a round.

There are also certain maneuvers you may attempt during a round:
close vs a long weapon
keep foe at bay (with a longer weapon)
Disarm: knock weapon from grip
Disarm: attack to damage weapon
Sweep attack (for huge attacks)
Overhead smash (for huge attacks)
Target specific location
(these are all "Attack" actions)

In the system, all weapons are treated the same.  A sword has values for parrying, and a shield has values for attacking.

the only problem is missile attacks, as generally, a missile firer may attack more than once in a given round.  Depending on the type of weapon and the speed of the firer, one might fire as rarely as once every 5 rounds, or as often as 3x every one round.  
examples of missile weapons are
guns, bows, crossbows, javelins, thrown rocks, cast nets, whip(!).

"Terrible what passes for a ninja these days" -- Pops Racer (John Goodman), Speed Racer (2008)
"How hard can it be?" -- Indiana Jones (Harrison Ford), Temple of Doom (1984)