| 215 | return self.hand.index(card) |
| 216 | |
| 217 | class GameSettings(): |
| 218 | |
| 219 | playerIdentities = ('play1','play2','play3','play4') |
| 220 | computerNames = ('Watson','SkyNet','Hal','Metal Gear') |
| 221 | |
| 222 | def __init__(self): |
| 223 | self.playerStaging = [] # Where Player Objs Are Stored Before Game Starts |
| 224 | self.players = {} # ID : Player Obj |
| 225 | self.numPlayers = 0 |
| 226 | self.useColor = True |
| 227 | self.displayEffects = True |
| 228 | self.hideComputerHands = True |
| 229 | self.zeroChange = False |
| 230 | self.computerSimulation = False |
| 231 | self.mainMenuError = '' |
| 232 | self.computerSpeed = 'normal' |
| 233 | |
| 234 | def canAddPlayer(self): |
| 235 | return (self.numPlayers < 4) |
| 236 | |
| 237 | def canRemovePlayer(self): |
| 238 | return (self.numPlayers > 0) |
| 239 | |
| 240 | def canBegin(self): |
| 241 | return (self.numPlayers > 1) |
| 242 | |
| 243 | def addPlayer(self, player): |
| 244 | self.playerStaging.append(player) |
| 245 | self.numPlayers += 1 |
| 246 | |
| 247 | def removePlayer(self, number): |
| 248 | number -= 1 |
| 249 | del self.playerStaging[number] |
| 250 | self.numPlayers -= 1 |
| 251 | |
| 252 | def clearStaging(self): |
| 253 | self.numPlayers = 0 |
| 254 | self.playerStaging = [] |
| 255 | |
| 256 | def finalizePlayers(self): |
| 257 | self.players.clear() |
| 258 | identity = 0 |
| 259 | for player in self.playerStaging: |
| 260 | playerID = self.playerIdentities[identity] |
| 261 | player.assignID(playerID) |
| 262 | self.players[playerID] = player |
| 263 | identity += 1 |
| 264 | |
| 265 | def getPlayerNum(self): |
| 266 | return self.numPlayers |
| 267 | |
| 268 | def getComputerName(self): |
| 269 | complete = False |
| 270 | index = self.numPlayers |
| 271 | while not complete: |
| 272 | name = self.computerNames[index] |
| 273 | complete = True |
| 274 | for player in self.playerStaging: |