コード例 #1
0
    def __init__(self, parentFSM, doneEvent):
        StateData.__init__(self, "playGameDone")
        self.doneEvent = doneEvent
        self.fsm = ClassicFSM('World', [
            State('off', self.enterOff, self.exitOff, ['quietZone']),
            State('quietZone', self.enterQuietZone, self.exitQuietZone, [
                'TTHood', 'BRHood', 'DLHood', 'MLHood', 'DGHood', 'DDHood',
                'MGHood', 'CTCHood'
            ]),
            State('TTHood', self.enterTTHood, self.exitTTHood, ['quietZone']),
            State('BRHood', self.enterBRHood, self.exitBRHood, ['quietZone']),
            State('DLHood', self.enterDLHood, self.exitDLHood, ['quietZone']),
            State('MLHood', self.enterMLHood, self.exitMLHood, ['quietZone']),
            State('DGHood', self.enterDGHood, self.exitDGHood, ['quietZone']),
            State('DDHood', self.enterDDHood, self.exitDDHood, ['quietZone']),
            State('MGHood', self.enterMGHood, self.exitMGHood, ['quietZone']),
            State('CTCHood', self.enterCTCHood, self.exitCTCHood,
                  ['quietZone'])
        ], 'off', 'off')
        self.fsm.enterInitialState()

        self.parentFSM = parentFSM
        self.parentFSM.getStateNamed('playGame').addChild(self.fsm)

        self.hoodDoneEvent = 'hoodDone'
        self.hood = None
        self.quietZoneDoneEvent = uniqueName('quietZoneDone')
        self.quietZoneStateData = None
        self.place = None
        self.lastHood = None
        self.suitManager = None
コード例 #2
0
    def __init__(self, mg):
        self.mg = mg
        self.batteryFrame = None
        self.batteryBg = None
        self.batteryBar = None
        self.rechargeSound = None
        self.fullyChargedSound = None

        self.hasToonInFocus = False
        self.toonToTakePicOf = None

        self.cameraRechargeState = None
        self.cameraRechargingLabel = None
        self.cameraFlashSeq = None

        self.viewfinder = None

        self.camFSM = ClassicFSM('CameraFSM', [
            State('off', self.enterOff, self.exitOff),
            State('ready', self.enterCameraReady, self.exitCameraReady),
            State('recharge', self.enterCameraRecharge,
                  self.exitCameraRecharge)
        ], 'off', 'off')
        self.camFSM.enterInitialState()
        FirstPerson.__init__(self)
    def __init__(self, cr):
        try:
            self.DistributedCameraShyGame_initialized
            return
        except:
            self.DistributedCameraShyGame_initialized = 1
        DistributedMinigame.__init__(self, cr)
        self.headPanels.delete()
        self.headPanels = CameraShyHeadPanels()
        self.fsm.addState(
            State('countdown', self.enterCountdown, self.exitCountdown,
                  ['play']))
        self.fsm.addState(
            State('announceGameOver', self.enterAnnounceGameOver,
                  self.exitAnnounceGameOver, ['showWinner']))
        self.fsm.addState(
            State('showWinner', self.enterShowWinner, self.exitShowWinner,
                  ['gameOver']))
        self.fsm.getStateNamed('waitForOthers').addTransition('countdown')
        self.fsm.getStateNamed('play').addTransition('announceGameOver')
        self.remoteAvatars = []
        self.myRemoteAvatar = None
        self.thisPlayerWinsLbl = None
        self.olc = None
        self.firstPerson = CameraShyFirstPerson(self)
        self.skyUtil = None
        self.pbpText = None

        self.levelLoader = CameraShyLevelLoader()
        self.spawnPoints = []
コード例 #4
0
 def __init__(self, cr):
     try:
         self.DistributedRaceGame_initialized
         return
     except:
         self.DistributedRaceGame_initialized = 1
     DistributedMinigame.DistributedMinigame.__init__(self, cr)
     self.movement = RaceGameMovement.RaceGameMovement(base.localAvatar)
     self.raceFSM = ClassicFSM('DistributedRaceGame', [
         State('race', self.enterRace, self.exitRace),
         State('raceTransition', self.enterRaceTransition,
               self.exitRaceTransition),
         State('off', self.enterRaceOff, self.exitRaceOff)
     ], 'off', 'off')
     self.raceFSM.enterInitialState()
     self.cr = cr
     self.track = None
     self.olc = None
     self.countSfx = base.loadSfx("phase_5/audio/sfx/firehydrant_popup.ogg")
     self.goSfx = base.loadSfx("phase_4/audio/sfx/AA_sound_whistle.ogg")
     self.game = CIGlobals.RaceGame
     self.trackPath = "phase_4/models/minigames/sprint_track.egg"
     self.skyPath = "phase_3.5/models/props/TT_sky.bam"
     self.lanePos = [(-22.00, -205.00, 0.00), (-11.66, -205.00, 0.00),
                     (0.00, -205.00, 0.00), (-33.66, -205.00, 0.00)]
     self.initialCamPos = {
         "pos": (41.10, -145.00, 25.88),
         "hpr": (135.00, 345.96, 0.0)
     }
     self.raceCamPos = (-24.52, -37.22, 25.00)
     self.lane = 0
     return
コード例 #5
0
 def __init__(self, cr):
     DistributedAvatar.__init__(self, cr)
     DistributedSmoothNode.__init__(self, cr)
     self.fsm = ClassicFSM('DistributedPieTurret', [
         State('off', self.enterOff, self.exitOff),
         State('scan', self.enterScan, self.exitScan),
         State('shoot', self.enterShoot, self.exitShoot)
     ], 'off', 'off')
     self.fsm.enterInitialState()
     self.reloadTime = 0.25
     self.cannon = None
     self.track = None
     self.owner = None
     self.gag = None
     self.readyGag = None
     self.hitGag = None
     self.explosion = None
     self.wallCollNode = None
     self.eventCollNode = None
     self.event = None
     self.suit = None
     self.eventId = None
     self.entities = []
     self.upgradeID = None
     self.deathEvent = None
     return
コード例 #6
0
    def __init__(self):
        try:
            self.Char_initialized
            return
        except:
            self.Char_initialized = 1
        Avatar.Avatar.__init__(self)
        self.avatarType = CIGlobals.CChar
        self.avatarName = None
        self.currentAnim = None
        self.charType = ""
        self.eyes = loader.loadTexture("phase_3/maps/eyes1.jpg",
                                       "phase_3/maps/eyes1_a.rgb")
        self.closedEyes = loader.loadTexture(
            "phase_3/maps/mickey_eyes_closed.jpg",
            "phase_3/maps/mickey_eyes_closed_a.rgb")
        self.animFSM = ClassicFSM('Char', [
            State('off', self.enterOff, self.exitOff),
            State('neutral', self.enterNeutral, self.exitNeutral),
            State('walk', self.enterWalk, self.exitWalk),
            State('run', self.enterRun, self.exitRun)
        ], 'off', 'off')
        animStateList = self.animFSM.getStates()
        self.animFSM.enterInitialState()
        self.charId = -1

        Avatar.Avatar.initializeBodyCollisions(self, self.avatarType, 3.5, 1)
コード例 #7
0
 def __init__(self, hood, parentFSMState, doneEvent):
     StateData.__init__(self, doneEvent)
     self.hood = hood
     self.parentFSMState = parentFSMState
     self.fsm = ClassicFSM('safeZoneLoader', [
         State('off', self.enterOff, self.exitOff),
         State('playground', self.enterPlayground, self.exitPlayground,
               ['quietZone']),
         State('toonInterior', self.enterToonInterior,
               self.exitToonInterior, ['quietZone']),
         State('quietZone', self.enterQuietZone, self.exitQuietZone,
               ['playground', 'toonInterior'])
     ], 'off', 'off')
     self.placeDoneEvent = 'placeDone'
     self.place = None
     self.playground = None
     self.battleMusic = None
     self.invasionMusic = None
     self.invasionMusicFiles = None
     self.interiorMusic = None
     self.bossBattleMusic = None
     self.music = None
     self.tournamentMusic = None
     self.linkTunnels = []
     self.szHolidayDNAFile = None
     self.animatedFish = None
     return
コード例 #8
0
 def __init__(self, doneEvent):
     StateData.__init__(self, doneEvent)
     self.fsm = ClassicFSM('Walk', [
         State('off', self.enterOff, self.exitOff, ['walking', 'deadWalking']),
         State('walking', self.enterWalking, self.exitWalking),
         State('deadWalking', self.enterDeadWalking, self.exitDeadWalking)],
         'off', 'off')
     self.fsm.enterInitialState()
コード例 #9
0
 def __init__(self, book):
     BookPage.__init__(self, book, 'Options', wantHeader=True)
     self.fsm = ClassicFSM('OptionPage', [
         State('off', self.enterOff, self.exitOff),
         State('basePage', self.enterBasePage, self.exitBasePage),
         State('displayPage', self.enterDisplayPage, self.exitDisplayPage)
     ], 'off', 'off')
     self.fsm.enterInitialState()
コード例 #10
0
 def __init__(self, parentFSM, doneEvent):
     World.__init__(self, doneEvent)
     self.fsm.setName(CIGlobals.OToontown)
     self.fsm.addState(State('MGHood', self.enterMGHood, self.exitMGHood, ['quietZone']))
     self.fsm.addState(State('CTHood', self.enterCTHood, self.exitCTHood, ['quietZone']))
     self.fsm.getStateNamed('quietZone').addTransition('MGHood')
     self.fsm.getStateNamed('quietZone').addTransition('CTHood')
     self.parentFSM = parentFSM
     self.parentFSM.getStateNamed(CIGlobals.OToontown).addChild(self.fsm)
    def __init__(self, cr):
        try:
            self.DistributedDodgeballGame_initialized
            return
        except:
            self.DistributedDodgeballGame_initialized = 1

        DistributedToonFPSGame.__init__(self, cr)
        TeamMinigame.__init__(self, 'BlueSnow', ('phase_4/maps/db_blue_neutral.png',
                                                 'phase_4/maps/db_blue_hover.png',
                                                 'phase_4/maps/db_blue_hover.png'), 'RedIce', ('phase_4/maps/db_red_neutral.png',
                                                                                               'phase_4/maps/db_red_hover.png',
                                                                                               'phase_4/maps/db_red_hover.png'))
        self.fsm.addState(State('chooseTeam', self.enterChooseTeam, self.exitChooseTeam, ['waitForOthers']))
        self.fsm.addState(State('scrollBy', self.enterScrollBy, self.exitScrollBy, ['countdown']))
        self.fsm.addState(State('countdown', self.enterCountdown, self.exitCountdown, ['play']))
        self.fsm.addState(State('announceGameOver', self.enterAnnGameOver, self.exitAnnGameOver, ['displayWinners']))
        self.fsm.addState(State('displayWinners', self.enterDisplayWinners, self.exitDisplayWinners, ['gameOver']))
        self.fsm.getStateNamed('waitForOthers').addTransition('chooseTeam')
        self.fsm.getStateNamed('waitForOthers').addTransition('scrollBy')
        self.fsm.getStateNamed('play').addTransition('announceGameOver')
        self.firstPerson = DodgeballFirstPerson(self)
        self.scrollBySeq = None
        self.infoText = None
        self.redScoreLbl = None
        self.blueScoreLbl = None
        self.infoText = getAlertText()
        self.spawnPointsByTeam = {BLUE: [
                [
                 Point3(5, 15, 0), Vec3(180, 0, 0)],
                [
                 Point3(15, 15, 0), Vec3(180, 0, 0)],
                [
                 Point3(-5, 15, 0), Vec3(180, 0, 0)],
                [
                 Point3(-15, 15, 0), Vec3(180, 0, 0)]], 
           RED: [
               [
                Point3(5, -15, 0), Vec3(0, 0, 0)],
               [
                Point3(15, -15, 0), Vec3(0, 0, 0)],
               [
                Point3(-5, -15, 0), Vec3(0, 0, 0)],
               [
                Point3(-15, -15, 0), Vec3(0, 0, 0)]]}
        self.winnerMusic = base.loadMusic('phase_9/audio/bgm/encntr_hall_of_fame.mid')
        self.loserMusic = base.loadMusic('phase_9/audio/bgm/encntr_sting_announce.mid')
        self.danceSound = base.loadSfx('phase_3.5/audio/sfx/ENC_Win.ogg')
        self.sky = None
        self.arena = None
        self.fog = None
        self.snow = None
        self.snowRender = None
        self.trees = []
        self.snowballs = []
        return
コード例 #12
0
 def __init__(self, cr):
     DistributedAvatar.__init__(self, cr)
     self.owner = None
     self.movementFSM = ClassicFSM('Pet', [
         State('off', self.enterOff, self.exitOff),
         State('forward', self.enterMoveForward, self.exitMoveForward),
         State('backward', self.enterMoveBackward, self.exitMoveBackward),
         State('left', self.enterTurnLeft, self.exitTurnLeft),
         State('right', self.enterTurnRight, self.exitTurnRight)
     ], 'off', 'off')
コード例 #13
0
 def __init__(self, cr):
     DistributedSuit.__init__(self, cr)
     self.doorDoId = None
     self.door = None
     self.takeOverTrack = None
     self.fsm = ClassicFSM('DTOS-fsm',
                           [State('off', self.enterOff, self.exitOff),
                            State('takeOver', self.enterTakeOver, self.exitTakeOver)],
                           'off', 'off')
     self.fsm.enterInitialState()
コード例 #14
0
 def __init__(self, parentFSM, doneEvent):
     self.parentFSM = parentFSM
     StateData.__init__(self, doneEvent)
     self.fsm = ClassicFSM('ShtickerBook', [
         State('off', self.enterOff, self.exitOff),
         State('optionPage', self.enterOptionPage, self.exitOptionPage,
               ['districtPage', 'off']),
         State('districtPage', self.enterDistrictPage,
               self.exitDistrictPage, ['optionPage', 'questPage', 'off']),
         State('questPage', self.enterQuestPage, self.exitQuestPage,
               ['inventoryPage', 'districtPage', 'off']),
         State('inventoryPage', self.enterInventoryPage,
               self.exitInventoryPage, ['mapPage', 'questPage', 'off']),
         State('mapPage', self.enterMapPage, self.exitMapPage,
               ['inventoryPage', 'off']),
         State('releaseNotesPage', self.enterReleaseNotesPage,
               self.exitReleaseNotesPage, ['mapPage', 'off']),
         State('adminPage', self.enterAdminPage, self.exitAdminPage,
               ['mapPage', 'namePage', 'off']),
         State('namePage', self.enterNamePage, self.exitNamePage,
               ['adminPage', 'off'])
     ], 'off', 'off')
     if base.localAvatar.getAdminToken() > -1:
         self.fsm.getStateNamed('mapPage').addTransition('adminPage')
     self.fsm.enterInitialState()
     self.entered = 0
     self.parentFSM.getStateNamed('shtickerBook').addChild(self.fsm)
コード例 #15
0
 def __init__(self, book, parentFSM):
     self.book = book
     self.parentFSM = parentFSM
     StateData.__init__(self, 'optionPageDone')
     self.fsm = ClassicFSM('OptionPage', [
         State('off', self.enterOff, self.exitOff),
         State('basePage', self.enterBasePage, self.exitBasePage),
         State('displayPage', self.enterDisplayPage, self.exitDisplayPage)
     ], 'off', 'off')
     self.fsm.enterInitialState()
     self.parentFSM.getStateNamed('optionPage').addChild(self.fsm)
コード例 #16
0
	def __init__(self, book, parentFSM):
		self.book = book
		self.parentFSM = parentFSM
		StateData.__init__(self, 'adminPageDone')
		self.fsm = ClassicFSM('AdminPage', [State('off', self.enterOff, self.exitOff),
			State('basePage', self.enterBasePage, self.exitBasePage),
			State('kickSection', self.enterKickSection, self.exitKickSection),
			State('sysMsgSection', self.enterSysMsgSection, self.exitSysMsgSection)],
			'off', 'off')
		self.fsm.enterInitialState()
		self.parentFSM.getStateNamed('adminPage').addChild(self.fsm)
コード例 #17
0
    def __init__(self, book, parentFSM):
        self.book = book
        self.parentFSM = parentFSM
        StateData.__init__(self, 'namePageDone')
        self.fsm = ClassicFSM('NamePage', [
            State('off', self.enterOff, self.exitOff),
            State('basePage', self.enterBasePage, self.exitBasePage)
        ], 'off', 'off')
        self.fsm.enterInitialState()
        self.parentFSM.getStateNamed('namePage').addChild(self.fsm)
        self.nameServ = base.cr.nameServicesManager
        self.baseRequestIndex = 0
        self.requestsPerCluster = 5

        # GUI elements
        self.requestsContainer = {}
        self.loadingLabel = None
        self.selectedName = None
        self.nameButtons = []
        self.avId2NameData = {}

        geom = CIGlobals.getDefaultBtnGeom()
        self.acceptBtn = DirectButton(
            geom=geom,
            text_scale=0.04,
            relief=None,
            scale=0.5,
            text="Accept",
            pos=(0.5, posY, 0),
            text_pos=(0, -0.01),
            command=self.acceptName,
        )
        self.acceptBtn.hide()
        self.declineBtn = DirectButton(
            geom=geom,
            text_scale=0.04,
            relief=None,
            scale=0.5,
            text="Decline",
            pos=(0.75, posY, 0),
            text_pos=(0, -0.01),
            command=self.declineName,
        )
        self.declineBtn.hide()
        self.avIdLbl = OnscreenText(text="",
                                    scale=0.08,
                                    pos=(0.3, 0, 0.5),
                                    align=TextNode.ACenter)
        self.avIdLbl.hide()
        self.accIdLbl = OnscreenText(text="",
                                     scale=0.08,
                                     pos=(0.3, 0, 0.3),
                                     align=TextNode.ACenter)
        self.accIdLbl.hide()
コード例 #18
0
 def __init__(self, parentFSM):
     StateData.__init__(self, "avChooseDone")
     self.avChooseFSM = ClassicFSM('avChoose', [State('getToonData', self.enterGetToonData, self.exitGetToonData),
                             State('avChoose', self.enterAvChoose, self.exitAvChoose),
                             State('waitForToonDelResponse', self.enterWaitForToonDelResponse,
                                 self.exitWaitForToonDelResponse),
                             State('off', self.enterOff, self.exitOff)], 'off', 'off')
     self.avChooseFSM.enterInitialState()
     self.parentFSM = parentFSM
     self.parentFSM.getStateNamed('avChoose').addChild(self.avChooseFSM)
     self.pickAToon = None
     self.setAvatarsNone()
コード例 #19
0
    def __init__(self, cr):
        DistributedObject.__init__(self, cr)

        self.fsm = ClassicFSM(self.__class__.__name__, [
            State('off', self.enterOff, self.exitOff, ['morning']),
            State('morning', self.enterMorning, self.exitMorning, ['afternoon']),
            State('afternoon', self.enterAfternoon, self.exitAfternoon, ['evening']),
            State('evening', self.enterEvening, self.exitEvening, ['midnight']),
            State('midnight', self.enterMidnight, self.exitMidnight, ['morning'])], 'off', 'off')

        self.fsm.enterInitialState()
        self.__interval = None
コード例 #20
0
    def __init__(self):
        DirectObject.__init__(self)
        self.backpack = base.localAvatar.backpack

        if not self.backpack:
            return
        self.backpack.loadoutGUI = self

        self.oneSlotPos = [(0, 0, 0)]
        self.twoSlotsPos = [(0, 0, 0.30), (0, 0, -0.2)]
        self.threeSlotsPos = [(0, 0, 0.5), (0, 0, 0), (0, 0, -0.5)]
        self.fourSlotPos = [(0, 0, 0.5), (0, 0, 0.15), (0, 0, -0.2),
                            (0, 0, -0.55)]
        self.availableSlot = 0
        self.slots = []
        self.activeSlot = None
        self.defaultSlots = 3
        self.prevSlot = None
        self.ammoLabel = None

        self.inventoryFrame = DirectFrame(parent=base.a2dRightCenter,
                                          pos=(-0.1725, 0, 0))

        self.visibilityBtn = DirectButton(text="",
                                          relief=None,
                                          text_bg=(1, 1, 1, 0),
                                          parent=base.a2dRightCenter,
                                          pos=(-0.1725, 0, 0),
                                          frameSize=(-0.2, 0.2, -0.725, 0.7),
                                          clickSound=None,
                                          rolloverSound=None)
        self.visibilityBtn.bind(DGG.WITHIN, self.__handleVisEnter)
        self.visibilityBtn.bind(DGG.WITHOUT, self.__handleVisExit)
        self.visibilityBtn.setBin('background', 10)

        self.visibilityBtn = None
        self.visibilityBtnStatus = 0
        self.switchSound = True
        self.switchSoundSfx = base.loadSfx(
            "phase_3/audio/sfx/GUI_balloon_popup.ogg")

        self.visibilityFSM = ClassicFSM('InventoryGui-VisibilityFSM', [
            State('off', self.enterOff, self.exitOff),
            State('hidden', self.enterHidden, self.exitHidden),
            State('hidden2visible', self.enterHidden2Visible,
                  self.exitHidden2Visible),
            State('visible', self.enterVisible, self.exitVisible),
            State('visible2hidden', self.enterVisible2Hidden,
                  self.exitVisible2Hidden)
        ], 'off', 'off')
        self.visibilityFSM.enterInitialState()
        self.visibilityFSM.request('hidden')
コード例 #21
0
 def __init__(self, cr):
     try:
         self.DistributedMinigame_initialized
         return
     except:
         self.DistributedMinigame_initialized = 1
     DistributedObject.DistributedObject.__init__(self, cr)
     Timer.Timer.__init__(self)
     self.headPanels = HeadPanels()
     self.finalScoreUI = FinalScoreGUI()
     self.fsm = ClassicFSM('DistributedMinigame', [
         State('start', self.enterStart, self.exitStart, ['waitForOthers']),
         State('waitForOthers', self.enterWaitForOthers,
               self.exitWaitForOthers, ['play']),
         State('play', self.enterPlay, self.exitPlay, ['gameOver']),
         State('gameOver', self.enterGameOver, self.exitGameOver, ['off']),
         State('off', self.enterOff, self.exitOff)
     ], 'off', 'off')
     self.fsm.enterInitialState()
     self.cr = cr
     self.localAv = base.localAvatar
     self.localAvId = self.localAv.doId
     self.musicPath = "phase_4/audio/bgm/trolley_song.ogg"
     self.winSfx = base.loadSfx("phase_4/audio/sfx/MG_win.ogg")
     self.loseSfx = base.loadSfx("phase_4/audio/sfx/MG_lose.ogg")
     self.prizeHigh = base.loadSfx("phase_6/audio/sfx/KART_Applause_1.ogg")
     self.prizeLow = base.loadSfx("phase_6/audio/sfx/KART_Applause_4.ogg")
     self.music = None
     self.description = ""
     self.descDialog = None
     self.winnerPrize = 0
     self.loserPrize = 0
     self.round = 0
     self.numPlayers = 0
     self.winnerMsg = "Winner!\nYou have earned: %s Jellybeans"
     self.loserMsg = "Loser!\nYou have earned: %s Jellybeans"
     self.allWinnerMsgs = [
         "Nice try!\nYou have earned: %s", "Good job!\nYou have earned: %s",
         "Way to go!\nYou have earned: %s", "Awesome!\nYou have earned: %s"
     ]
     self.timer = None
     self.timeLbl = None
     self.alertText = None
     self.alertPulse = None
     self.popupSound = None
     self.gameOverLbl = OnscreenText(text="TIME'S\nUP!",
                                     scale=0.25,
                                     font=CIGlobals.getMickeyFont(),
                                     fg=(1, 0, 0, 1))
     self.gameOverLbl.setBin('gui-popup', 60)
     self.gameOverLbl.hide()
     return
コード例 #22
0
 def __init__(self, mg, cr, avId, gunName="pistol"):
     RemoteAvatar.__init__(self, mg, cr, avId)
     self.track = None
     self.gunName = gunName
     self.fsm = ClassicFSM('RemoteToonBattleAvatar', [
         State('off', self.enterOff, self.exitOff),
         State('shoot', self.enterShoot, self.exitShoot),
         State('die', self.enterDie, self.exitDie),
         State('dead', self.enterDead, self.exitDead)
     ], 'off', 'off')
     self.fsm.enterInitialState()
     self.soundGrunt = None
     self.retrieveAvatar()
コード例 #23
0
	def __init__(self):
		try:
			self.Suit_initialized
			return
		except:
			self.Suit_initialized = 1
		
		Avatar.Avatar.__init__(self)
		self.avatarType = CIGlobals.Suit
		self.name = ''
		self.chat = ''
		self.suit = None
		self.suitHeads = None
		self.suitHead = None
		self.loserSuit = None
		self.healthMeterGlow = None
		self.healthMeter = None
		self.weapon = None
		self.weapon_sfx = None
		self.anim = None
		self.suit_dial = None
		self.shadow = None
		self.balloon_sfx = None
		self.add_sfx = None
		self.explosion = None
		self.largeExp = None
		self.smallExp = None
		self.death_sfx = None
		self.attack = None
		self.wtrajectory = None
		self.throwObjectId = None
		self.hasSpawned = False
		self.condition = 0
		self.type = ""
		self.head = ""
		self.team = ""
		self.isSkele = 0
		self.animFSM = ClassicFSM('Suit', [State('off', self.enterOff, self.exitOff),
								State('neutral', self.enterNeutral, self.exitNeutral),
								State('walk', self.enterWalk, self.exitWalk),
								State('die', self.enterDie, self.exitDie),
								State('attack', self.enterAttack, self.exitAttack),
								State('flydown', self.enterFlyDown, self.exitFlyDown),
								State('pie', self.enterPie, self.exitPie),
								State('win', self.enterWin, self.exitWin),
								State('flyaway', self.enterFlyAway, self.exitFlyAway),
								State('rollodex', self.enterRollodex, self.exitRollodex)], 'off', 'off')
		animStateList = self.animFSM.getStates()
		self.animFSM.enterInitialState()
		
		self.initializeBodyCollisions()
コード例 #24
0
    def __init__(self, air, hood, wingType):
        DistributedNodeAI.__init__(self, air)
        self.hood = hood
        self.wingType = wingType
        self.state = 0
        self.stateChangeTimestamp = 0.0
        self.fromLoc = 0
        self.toLoc = 0

        self.fsm = ClassicFSM('DBFAI', [State('off', self.enterOff, self.exitOff),
                                        State('sit', self.enterSit, self.exitSit),
                                        State('fly', self.enterFly, self.exitFly)],
                              'off', 'off')
        self.fsm.enterInitialState()
コード例 #25
0
 def __init__(self, parentFSM, doneEvent, dnaStore, hoodId):
     Hood.Hood.__init__(self, parentFSM, doneEvent, dnaStore, hoodId)
     self.safeZoneLoader = None
     self.townLoader = None
     self.fsm = ClassicFSM('Hood', [State('off', self.enterOff, self.exitOff),
                 State('safeZoneLoader', self.enterSafeZoneLoader,
                     self.exitSafeZoneLoader, ['quietZone', 'townLoader']),
                 State('townLoader', self.enterTownLoader,
                     self.exitTownLoader, ['quietZone', 'safeZoneLoader']),
                 State('quietZone', self.enterQuietZone, self.exitQuietZone,
                     ['safeZoneLoader', 'townLoader'])],
                 'off', 'off')
     self.fsm.enterInitialState()
     return
コード例 #26
0
 def __init__(self, cr):
     DistributedObject.DistributedObject.__init__(self, cr)
     self.rightFSM = ClassicFSM('DistributedDoor_right', [
         State('off', self.enterOff, self.exitOff),
         State('closed', self.enterRightDoorClosed,
               self.exitRightDoorClosed, ['opening']),
         State('opening', self.enterRightDoorOpening,
               self.exitRightDoorOpening, ['open']),
         State('open', self.enterRightDoorOpen, self.exitRightDoorOpen,
               ['closing']),
         State('closing', self.enterRightDoorClosing,
               self.exitRightDoorClosing, ['closed'])
     ], 'off', 'off')
     self.rightFSM.enterInitialState()
     self.leftFSM = ClassicFSM('DistributedDoor_left', [
         State('off', self.enterOff, self.exitOff),
         State('closed', self.enterLeftDoorClosed, self.exitLeftDoorClosed,
               ['opening']),
         State('opening', self.enterLeftDoorOpening,
               self.exitLeftDoorOpening, ['open']),
         State('open', self.enterLeftDoorOpen, self.exitLeftDoorOpen,
               ['closing']),
         State('closing', self.enterLeftDoorClosing,
               self.exitLeftDoorClosing, ['closed'])
     ], 'off', 'off')
     self.leftFSM.enterInitialState()
     self.avatarTracks = []
     self.leftDoorState = ''
     self.rightDoorState = ''
     self.toZone = 0
     self.block = 0
     self.doorType = 0
     self.doorIndex = 0
     self.leftTrack = None
     self.rightTrack = None
     self.building = None
     self.doorNode = None
     self.leftDoor = None
     self.rightDoor = None
     self.doorOpenSound = None
     self.doorShutSound = None
     self.enterDoorWalkBackNode = None
     self.enterDoorWalkInNode = None
     self.exitDoorWalkFromNode = None
     self.exitDoorWalkToNode = None
     self.ready = False
     self.nodeProblemPolled = False
     self.suitTakingOver = 0
     return
    def __init__(self, cr):
        try:
            self.DistributedDodgeballGame_initialized
            return
        except:
            self.DistributedDodgeballGame_initialized = 1

        DistributedToonFPSGame.__init__(self, cr)

        TeamMinigame.__init__(self, "BlueSnow", ('phase_4/maps/db_blue_neutral.png',
                                               'phase_4/maps/db_blue_hover.png',
                                               'phase_4/maps/db_blue_hover.png'),
                                    "RedIce", ('phase_4/maps/db_red_neutral.png',
                                               'phase_4/maps/db_red_hover.png',
                                               'phase_4/maps/db_red_hover.png'))

        self.fsm.addState(State('chooseTeam', self.enterChooseTeam, self.exitChooseTeam, ['waitForOthers']))
        self.fsm.addState(State('scrollBy', self.enterScrollBy, self.exitScrollBy, ['countdown']))
        self.fsm.addState(State('countdown', self.enterCountdown, self.exitCountdown, ['play']))
        self.fsm.getStateNamed('waitForOthers').addTransition('chooseTeam')
        self.fsm.getStateNamed('waitForOthers').addTransition('scrollBy')

        self.firstPerson = DodgeballFirstPerson(self)

        self.scrollBySeq = None
        self.infoText = None

        self.infoText = getAlertText()

        self.spawnPointsByTeam = {
            BLUE: [
                [Point3(5, 15, 0), Vec3(180, 0, 0)],
                [Point3(15, 15, 0), Vec3(180, 0, 0)],
                [Point3(-5, 15, 0), Vec3(180, 0, 0)],
                [Point3(-15, 15, 0), Vec3(180, 0, 0)]],
            RED: [
                [Point3(5, -15, 0), Vec3(0, 0, 0)],
                [Point3(15, -15, 0), Vec3(0, 0, 0)],
                [Point3(-5, -15, 0), Vec3(0, 0, 0)],
                [Point3(-15, -15, 0), Vec3(0, 0, 0)]]}

        # Environment vars
        self.sky = None
        self.arena = None
        self.fog = None
        self.snow = None
        self.snowRender = None
        self.trees = []
        self.snowballs = []
コード例 #28
0
 def __init__(self, doneEvent, moveOn=1):
     StateData.__init__(self, doneEvent)
     self.fsm = ClassicFSM('quietZone', [
         State('off', self.enterOff, self.exitOff,
               ['waitForQuietZoneResponse']),
         State(
             'waitForQuietZoneResponse', self.enterWaitForQuietZoneResponse,
             self.exitWaitForQuietZoneResponse, ['waitForSetZoneResponse']),
         State('waitForSetZoneResponse', self.enterWaitForSetZoneResponse,
               self.exitWaitForSetZoneResponse, ['waitForSetZoneComplete']),
         State('waitForSetZoneComplete', self.enterWaitForSetZoneComplete,
               self.exitWaitForSetZoneComplete, ['off'])
     ], 'off', 'off')
     self.fsm.enterInitialState()
     self.moveOn = moveOn
コード例 #29
0
 def makeStateDict(self):
     self.suitFSM.addState(State('eagleFly', self.enterEagleFly, self.exitEagleFly))
     self.suitFSM.addState(State('eagleFall', self.enterEagleFall, self.exitEagleFall))
     self.stateIndex2suitState = {
         0 : self.suitFSM.getStateNamed('off'),
         1 : self.suitFSM.getStateNamed('walking'),
         2 : self.suitFSM.getStateNamed('flyingDown'),
         3 : self.suitFSM.getStateNamed('flyingUp'),
         4 : self.suitFSM.getStateNamed('lured'),
         5 : self.suitFSM.getStateNamed('eagleFly'),
         6 : self.suitFSM.getStateNamed('eagleFall')
     }
     self.suitState2stateIndex = {}
     for stateId, state in self.stateIndex2suitState.items():
         self.suitState2stateIndex[state.getName()] = stateId
コード例 #30
0
 def __init__(self, suit):
     self.suit = suit
     self.panicHP = self.suit.getMaxHealth() * self.PANIC_HP_FACTOR
     self.fsm = ClassicFSM(
         'CogBrain',
         [
             State('off', self.enterOff, self.exitOff),
             State('neutral', self.enterNeutral, self.exitNeutral),
             State('followBoss', self.enterFollowBoss, self.exitFollowBoss),
             State('panic', self.enterPanic, self.exitPanic),
             State('runAway', self.enterRunAway, self.exitRunAway)
         ],
         'off', 'off'
     )
     self.fsm.enterInitialState()