from PersonClass import *
from HTMLTemplates import *
import time
'''
Created on Oct 18, 2011
@author: Trevor Coleman
'''
class Battle(object):
'''
classdocs
'''
def __init__(self, numberOfPlayers):
self.players = {}
self.timeline = {}
for i in range(numberOfPlayers):
self.players[i] = Person()
self.timeline = {}
for y in self.players:
firstAction = self.players[y].ticks
if firstAction in self.timeline:
self.timeline[firstAction].append(self.players[y])
else:
self.timeline[firstAction] = [self.players[y]]
######################################################
#OLD TEXT-BASED TIMELINE GENERATOR
def showTimeline(self):
for i in range(11):
if i in self.timeline:
print str(i) + ": ",
actingPlayers = self.timeline[i]
for player in actingPlayers:
print player.name + " (" + str(player.dv_penalty) + ")",
else:
print str(i) + ": ",
print "\n",
######################################################
def updateTimeline(self):
self.timeline = {}
for y in self.players:
firstAction = self.players[y].ticks
if firstAction in self.timeline:
self.timeline[firstAction].append(self.players[y])
else:
self.timeline[firstAction] = [self.players[y]]
def createHTMLTimeline(self):
#self.updateTimeline()
HTMLTimeline = {}
for i in range(11):
if i in self.timeline:
actingPlayers = self.timeline[i]
for player in actingPlayers:
if str(i) in HTMLTimeline:
HTMLTimeline[str(i)] = HTMLTimeline[str(i)] + ", " + player.name
else:
HTMLTimeline[str(i)] = player.name
else:
HTMLTimeline[str(i)] = "---"
print "BEFORE FILE CREATE"
f = open('/sdcard/sl4a/scripts/ExaltedCombatManager/html/timeline.html', 'w')
f.write(timelineHTML % HTMLTimeline)
f.close()
print "AFTER FILE CREATE"
def updateTimeline(self):
self.timeline = {}
for y in self.players:
firstAction = self.players[y].ticks
if firstAction in self.timeline:
self.timeline[firstAction].append(self.players[y])
else:
self.timeline[firstAction] = [self.players[y]]
def tick(self):
for y in self.players:
if self.players[y].ticks == 0:
self.players[y].turn()
else:
self.players[y].ticks = self.players[y].ticks - 1
self.createHTMLTimeline()
def editPlayers(self):
#WRITE THIS BIT!
#Generate Edit Players Javascript GUI
#Display Edit Players Screen
#Recieve Data from Screen
#Parse data & update players
print "not ready yet"
def generateEditPlayersScreen(self):
# holds the HTML for all of the rows in the edit players table
playerRows = ""
# Create dict with the following STRINGS for players[i]
# playerNumber : i
# name : players[i].name
# ticks : players[i].ticks
# dv_penalty : players[i].dv_penalty
for i in self.players:
playerDict = {}
playerDict["name"] = self.players[i].name
playerDict["ticks"] = self.players[i].ticks
playerDict["dv_penalty"] = self.players[i].dv_penalty
playerDict["playerNumber"] = i
# add each player's row
playerRows = playerRows + (editPlayersRow % playerDict)
f = open('/sdcard/sl4a/scripts/ExaltedCombatManager/editPlayers.html', 'w')
f.write(editPlayersScreen % playerRows)
f.close()
def addPlayer(self):
newPlayer = max(self.players.iterkeys()) + 1
self.players[newPlayer] = Person()