from direct.directnotify import DirectNotifyGlobal from direct.distributed.DistributedObjectAI import DistributedObjectAI from direct.fsm.FSM import FSM class DistributedTrickOrTreatTargetAI(DistributedObjectAI, FSM): notify = DirectNotifyGlobal.directNotify.newCategory("DistributedTrickOrTreatTargetAI") def __init__(self, air): DistributedObjectAI.__init__(self, air) FSM.__init__(self, 'TrickOrTreatTargeFSM') self.air = air def enterOff(self): self.requestDelete() def requestScavengerHunt(self): avId = self.air.getAvatarIdFromSender() av = self.air.doId2do.get(avId) if av is None: return scavengerHunt = av.getScavengerHunt() if self.zoneId in scavengerHunt: self.sendUpdateToAvatarId(avId, 'doScavengerHunt', [0]) else: self.sendUpdateToAvatarId(avId, 'doScavengerHunt', [100]) scavengerHunt.append(self.zoneId) av.b_setScavengerHunt(scavengerHunt) av.addMoney(100) if len(scavengerHunt) == 6: av.b_setCheesyEffect(12, 0, 0)