from toontown.suit import SuitDNA
from toontown.shtiker.CogPageGlobals import *

class CogPageManagerAI:

    def toonEncounteredCogs(self, toon, encounteredCogs, zoneId):
        cogs = toon.cogs
        for cog in encounteredCogs:
            if toon.getDoId() in cog['activeToons']:
                cogIndex = SuitDNA.suitHeadTypes.index(cog['type'])

                if cogs[cogIndex] == COG_UNSEEN:
                    cogs[cogIndex] = COG_BATTLED
        toon.b_setCogStatus(cogs)

    def toonKilledCogs(self, toon, killedCogs, zoneId):
        cogCounts = toon.cogCounts
        cogs = toon.cogs
        for cog in killedCogs:
            if cog['isSkelecog'] or cog['isBoss'] > 0:
                continue
            if toon.getDoId() in cog['activeToons']:
                deptIndex = SuitDNA.suitDepts.index(cog['track'])
                if toon.buildingRadar[deptIndex] == 1:
                    continue
                cogIndex = SuitDNA.suitHeadTypes.index(cog['type'])
                buildingQuota = COG_QUOTAS[1][cogIndex % SuitDNA.suitsPerDept]
                cogQuota = COG_QUOTAS[0][cogIndex % SuitDNA.suitsPerDept]
                if cogCounts[cogIndex] >= buildingQuota:
                    return
                cogCounts[cogIndex] += 1
                if cogCounts[cogIndex] < cogQuota:
                    cogs[cogIndex] = COG_DEFEATED
                elif cogQuota <= cogCounts[cogIndex] < buildingQuota:
                    cogs[cogIndex] = COG_COMPLETE1
                else:
                    cogs[cogIndex] = COG_COMPLETE2
        toon.b_setCogCount(cogCounts)
        toon.b_setCogStatus(cogs)
        newCogRadar = toon.cogRadar
        newBuildingRadar = toon.buildingRadar
        for dept in xrange(len(SuitDNA.suitDepts)):
            if newBuildingRadar[dept] == 1:
                continue
            cogRadar = 1
            buildingRadar = 1
            for cog in xrange(SuitDNA.suitsPerDept):
                status =  toon.cogs[dept*SuitDNA.suitsPerDept + cog]
                if status != COG_COMPLETE2:
                    buildingRadar = 0
                if status != COG_COMPLETE1 or status != COG_COMPLETE2:
                    cogRadar = 0
            newCogRadar[dept] = cogRadar
            newBuildingRadar[dept] = buildingRadar
        toon.b_setCogRadar(newCogRadar)
        toon.b_setBuildingRadar(newBuildingRadar)
