ID:151970
 
        NewBattle(var/list/Side1,var/list/Side2)
if(Side1.len&&Side2.len)
side1 = Side1
side2 = Side2
else
for(var/mob/M in battle)
M<<"<font color = red><font size = 1>Error: No members in side 1 aborting"
return
SideTurns(var/list/Side1,var/list/Side2)
if(turn == Side1)
turn = Side2
if(turn == Side2)
turn = Side1
Turns(var/list/Side)
turn = (turn % battle.len) + 1
var/mob/Attacker = battle[turn]
if(!Attacker.hp)
Turns(Side)
else
Fight(Attacker)

Since This is just the games skeleton (no map or icons yet)
I wanted to know if this was a suitable turn based battle system (most of the idea came from Popisfizzy)
Tell me what you think..
Found a few bugs and fixed them.
            if(turn == Side1)
turn = Side2
if(turn == Side2)
turn = Side1


If your turn is 1, that proc/verb will end with 1, no matter what.

Solution:

- Else if()

Or, the most "un-robust" one

- Switch the order of those if()
One imporatnt thing to keep in mind is that proc calling proc calling proc etc etc is never a good idea for a battle system.
You really want a decent loop.

As far as I can see, correct me if I'm wrong, your system relies on calling a proc in order to continue.

Try to force it to be more like this:

battle start
loop ( for() while() )
battle end

And not so much:

battle start
take turn, check dead, call turn proc
take turn, check dead (or vicory conditions)
take turn, check dead //positive check
call battle stop proc

It helps keep keep things clean, and also helps when battles take to long, you'll get a error for calling proc after proc after a while.
It's just overall more efficient.

Just my advice, hpe you can put it to good use.
In response to Fint
Actually, I would go for the originally suggested method myself. It's "event-based" instead of "poll-based".