def delete(self):
     ButterflyGlobals.recycleIndex(self.curIndex, self.playground,
                                   self.area, self.ownerId)
     ButterflyGlobals.recycleIndex(self.destIndex, self.playground,
                                   self.area, self.ownerId)
     self.request('Off')
     DistributedObjectAI.delete(self)
 def __init__(self, air, playground, area, ownerId):
     DistributedObjectAI.__init__(self, air)
     FSM.__init__(self, 'DistributedButterflyAI')
     self.playground = playground
     self.area = area
     self.ownerId = ownerId
     self.stateIndex = ButterflyGlobals.OFF
     self.curPos, self.curIndex, self.destPos, self.destIndex, self.time = ButterflyGlobals.getFirstRoute(
         self.playground, self.area, self.ownerId)
Esempio n. 3
0
    def __init__(self, air):
        DistributedObjectAI.__init__(self, air)

        self.dna = SuitDNA()
        self._level = 1
        self.skelecog = False
        self.revives = 0
        self.revivedFlag = 0
        self.hp = 6
        self.maxHP = 6
Esempio n. 4
0
    def __init__(self, air):
        DistributedObjectAI.__init__(self, air)
        FSM.__init__(self, self.__class__.__name__)

        self.block = 0
        self.zoneId = 0

        #self.npcs = NPCToons.createNpcsInZone(self.air, self.zoneId)
        self.npcs = []

        self.demand('Toon')
Esempio n. 5
0
    def __init__(self, air, purchasers, minigameId, trolleyZone,
                 metagameRound):
        DistributedObjectAI.__init__(self, air)

        self.purchasers: List[Purchaser] = purchasers
        self.minigameId = minigameId
        self.trolleyZone = trolleyZone
        self.metagameRound = metagameRound

        self.receivingButtons = True
        self.shuttingDown = False
Esempio n. 6
0
    def __init__(self, air, block, doorType, doorIndex=0, swing=DEFAULT_SWING):
        DistributedObjectAI.__init__(self, air)

        self.block = block
        self.doorType = doorType
        self.doorIndex = doorIndex
        self.swing = swing
        self.doorLock = UNLOCKED

        self.otherDoor = None

        self.doorFSM = DoorFSM(self.air, self, field='setState')
        self.exitDoorFSM = DoorFSM(self.air, self, field='setExitDoorState')
Esempio n. 7
0
    def __init__(self, air):
        DistributedObjectAI.__init__(self, air)
        FSM.__init__(self, 'DistributedBuildingAI')

        self.block = 0
        self.track = 'c'
        self.difficulty = 1
        self.numFloors = 1
        self.interiorZoneId = 0
        self.exteriorZoneId = 0

        self.door = None
        self.insideDoor = None
        self.interior = None
        self.npcs = []
Esempio n. 8
0
    def delete(self):
        self.doorFSM.demand('Off')
        self.exitDoorFSM.demand('Off')

        del self.block
        del self.swing
        del self.doorType
        del self.doorIndex
        del self.doorLock

        del self.doorFSM
        del self.exitDoorFSM

        del self.otherDoor

        DistributedObjectAI.delete(self)
Esempio n. 9
0
    def __init__(self, air, participants, trolleyZone):
        DistributedObjectAI.__init__(self, air)
        FSM.__init__(self, self.__class__.__name__)

        self.participants: List[int] = participants
        # TODO
        self.newbies: List[int] = []
        self.trolleyZone: int = trolleyZone
        self.startingVotes: List[int] = [0 for _ in range(len(participants))]
        self.stateDict: Dict[int, ParticipantState] = {
            participant: ParticipantState.EXPECTED
            for participant in participants
        }
        self.scoreDict: Dict[int, int] = {}
        self.metagameRound = -1
        self.normalExit = True
        self.difficultyOverrides = NoDifficultyOverride, NoTrolleyZoneOverride

        self.__barrier: Optional[ToonBarrier] = None

        self.gameStartTime = 0.0
Esempio n. 10
0
    def __init__(self, air, place):
        DistributedObjectAI.__init__(self, air)
        self.place = place
        self.zoneId = self.place.zone_id
        self.info: SuitHoodInfo = SUIT_HOOD_INFO[place.zone_id]
        self.battleMgr: BattleManagerAI = BattleManagerAI(self.air)

        self.zone2battlePos: Dict[int, Point3] = {}

        for visGroup in self.storage.visgroups:
            zoneId = int(visGroup.name)
            if not visGroup.battle_cells:
                print('zone has no battle cells: %d' % zoneId)
                continue

            self.zone2battlePos[zoneId] = visGroup.battle_cells[0].pos

            if len(visGroup.battle_cells) > 1:
                print('Multiple battle cells for zoneId: %d' % zoneId)

        self.streetPoints: List[DNASuitPoint] = []
        self.frontDoorPoints: List[DNASuitPoint] = []
        self.sideDoorPoints: List[DNASuitPoint] = []
        self.cogHQDoorPoints: List[DNASuitPoint] = []

        for suitPoint in self.storage.suit_points:
            if suitPoint.point_type == SuitPointType.STREET_POINT:
                self.streetPoints.append(suitPoint)
            elif suitPoint.point_type == SuitPointType.FRONT_DOOR_POINT:
                self.frontDoorPoints.append(suitPoint)
            elif suitPoint.point_type == SuitPointType.SIDE_DOOR_POINT:
                self.sideDoorPoints.append(suitPoint)
            elif suitPoint.point_type == SuitPointType.COGHQ_IN_POINT or suitPoint.point_type == SuitPointType.COGHQ_OUT_POINT:
                self.cogHQDoorPoints.append(suitPoint)

        self.suits: List[DistributedSuitAI] = []
        self.baseNumSuits = (self.info.maxSuits + self.info.minSuits) // 2
        self.popAdjustment = 0
        self.numFlyInSuits = 0
Esempio n. 11
0
 def __init__(self, block, air, zoneId):
     DistributedObjectAI.__init__(self, air)
     self.block = block
     self.zoneId = zoneId
     self.tutorial = 0
Esempio n. 12
0
 def generate(self):
     DistributedObjectAI.generate(self)
     self.doorFSM.task = self.uniqueName('door-task')
     self.exitDoorFSM.task = self.uniqueName('exit-door-task')
Esempio n. 13
0
    def __init__(self, air, name=None):
        DistributedObjectAI.__init__(self, air)
        if name is None:
            name = self.__class__.__name__

        NodePath.__init__(self, name)
Esempio n. 14
0
    def delete(self):
        if not self.isEmpty():
            self.removeNode()

        DistributedObjectAI.delete(self)
Esempio n. 15
0
 def delete(self):
     decZoneRef(self.zoneId)
     DistributedObjectAI.delete(self)
Esempio n. 16
0
 def __init__(self, air, treasurePlanner, x, y, z):
     DistributedObjectAI.__init__(self, air)
     self.treasurePlanner = treasurePlanner
     self.pos = (x, y, z)
Esempio n. 17
0
    def delete(self):
        self.ignoreAll()
        for npc in self.npcs:
            npc.requestDelete()

        DistributedObjectAI.delete(self)