toontown-just-works/toontown/ai/CogPageManagerAI.py

57 lines
2.3 KiB
Python
Raw Normal View History

2024-07-07 18:08:39 -05:00
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)