def __init__(self, cr):
     DistributedNode.__init__(self, cr)
     Char.Char.__init__(self)
     self.fsm = ClassicFSM.ClassicFSM('DistributedDisneyChar', [State.State('off', self.enterOff, self.exitOff),
      State.State('walking', self.enterWalking, self.exitWalking),
      State.State('')])
 def __init__(self, cr):
     DistributedObject.DistributedObject.__init__(self, cr)
     self.toons = []
     self.activeIntervals = {}
     self.openSfx = base.loadSfx('phase_5/audio/sfx/elevator_door_open.ogg')
     self.closeSfx = base.loadSfx(
         'phase_5/audio/sfx/elevator_door_close.ogg')
     self.suits = []
     self.reserveSuits = []
     self.joiningReserves = []
     self.distBldgDoId = None
     self._CogdoGameRepeat = config.GetBool('cogdo-game-repeat', 0)
     self.currentFloor = -1
     self.elevatorName = self.__uniqueName('elevator')
     self.floorModel = None
     self.elevatorOutOpen = 0
     self.BottomFloor_SuitPositions = [
         Point3(0, 15, 0),
         Point3(10, 20, 0),
         Point3(-7, 24, 0),
         Point3(-10, 0, 0)
     ]
     self.BottomFloor_SuitHs = [75, 170, -91, -44]
     self.Cubicle_SuitPositions = [
         Point3(0, 18, 0),
         Point3(10, 12, 0),
         Point3(-9, 11, 0),
         Point3(-3, 13, 0)
     ]
     self.Cubicle_SuitHs = [170, 56, -52, 10]
     self.BossOffice_SuitPositions = [
         Point3(0, 15, 0),
         Point3(10, 20, 0),
         Point3(-10, 6, 0),
         Point3(-17, 30, 0)
     ]
     self.BossOffice_SuitHs = [170, 120, 12, 38]
     self._wantBarrelRoom = config.GetBool('cogdo-want-barrel-room', 1)
     self.barrelRoom = CogdoBarrelRoom.CogdoBarrelRoom()
     self.brResults = [[], []]
     self.barrelRoomIntroTrack = None
     self.penthouseOutroTrack = None
     self.penthouseOutroChatDoneTrack = None
     self.penthouseIntroTrack = None
     self.waitMusic = base.loadMusic(
         'phase_7/audio/bgm/encntr_toon_winning_indoor.ogg')
     self.elevatorMusic = base.loadMusic(
         'phase_7/audio/bgm/tt_elevator.ogg')
     self.fsm = ClassicFSM.ClassicFSM('DistributedCogdoInterior', [
         State.State('WaitForAllToonsInside',
                     self.enterWaitForAllToonsInside,
                     self.exitWaitForAllToonsInside, ['Elevator']),
         State.State('Elevator', self.enterElevator, self.exitElevator,
                     ['Game', 'BattleIntro', 'BarrelRoomIntro']),
         State.State('Game', self.enterGame, self.exitGame, [
             'Resting', 'Failed', 'BattleIntro', 'BarrelRoomIntro',
             'Elevator'
         ]),
         State.State('BarrelRoomIntro', self.enterBarrelRoomIntro,
                     self.exitBarrelRoomIntro, ['CollectBarrels', 'Off']),
         State.State('CollectBarrels', self.enterCollectBarrels,
                     self.exitCollectBarrels, ['BarrelRoomReward', 'Off']),
         State.State('BarrelRoomReward', self.enterBarrelRoomReward,
                     self.exitBarrelRoomReward,
                     ['Battle', 'ReservesJoining', 'BattleIntro', 'Off']),
         State.State('BattleIntro', self.enterBattleIntro,
                     self.exitBattleIntro,
                     ['Battle', 'ReservesJoining', 'Off']),
         State.State('Battle', self.enterBattle, self.exitBattle,
                     ['Resting', 'Reward', 'ReservesJoining']),
         State.State('ReservesJoining', self.enterReservesJoining,
                     self.exitReservesJoining, ['Battle']),
         State.State('Resting', self.enterResting, self.exitResting,
                     ['Elevator']),
         State.State('Reward', self.enterReward, self.exitReward, ['Off']),
         State.State('Failed', self.enterFailed, self.exitFailed, ['Off']),
         State.State('Off', self.enterOff, self.exitOff,
                     ['Elevator', 'WaitForAllToonsInside', 'Battle'])
     ], 'Off', 'Off')
     self.fsm.enterInitialState()
     self._haveEntranceElevator = StateVar(False)
     self._stashEntranceElevator = StateVar(False)
     self._stashEntranceElevatorFC = FunctionCall(
         self._doStashEntranceElevator, self._haveEntranceElevator,
         self._stashEntranceElevator)
     self._entranceElevCallbacks = []
     self._doEntranceElevCallbacksFC = FunctionCall(
         self._doEntranceElevCallbacks, self._haveEntranceElevator)
     self.cage = None
     self.shopOwnerNpcId = None
     self.shopOwnerNpc = None
     self._movie = None
     self.SOSToonName = None
     self.FOType = None
Пример #3
0
 def __init__(self, loader, avId, zoneId, parentFSMState, doneEvent):
     Place.Place.__init__(self, None, doneEvent)
     self.id = MyEstate
     self.avId = avId
     self.zoneId = zoneId
     self.loader = loader
     self.cameraSubmerged = -1
     self.toonSubmerged = -1
     self.fsm = ClassicFSM.ClassicFSM('Estate', [
         State.State('init', self.enterInit, self.exitInit, [
             'final',
             'teleportIn',
             'doorIn',
             'walk']),
         State.State('petTutorial', self.enterPetTutorial, self.exitPetTutorial, [
             'walk']),
         State.State('walk', self.enterWalk, self.exitWalk, [
             'final',
             'sit',
             'stickerBook',
             'options',
             'quest',
             'fishing',
             'mailbox',
             'stopped',
             'DFA',
             'trialerFA',
             'doorOut',
             'push',
             'pet']),
         State.State('stopped', self.enterStopped, self.exitStopped, [
             'walk',
             'teleportOut']),
         State.State('sit', self.enterSit, self.exitSit, [
             'walk']),
         State.State('push', self.enterPush, self.exitPush, [
             'walk']),
         State.State('stickerBook', self.enterStickerBook, self.exitStickerBook, [
             'walk',
             'sit',
             'quest',
             'fishing',
             'mailbox',
             'stopped',
             'doorOut',
             'push',
             'pet',
             'DFA',
             'trialerFA']),
         State.State('teleportIn', self.enterTeleportIn, self.exitTeleportIn, [
             'walk',
             'petTutorial']),
         State.State('teleportOut', self.enterTeleportOut, self.exitTeleportOut, [
             'teleportIn',
             'walk',
             'final']),
         State.State('doorIn', self.enterDoorIn, self.exitDoorIn, [
             'walk']),
         State.State('doorOut', self.enterDoorOut, self.exitDoorOut, [
             'final',
             'walk']),
         State.State('final', self.enterFinal, self.exitFinal, [
             'teleportIn']),
         State.State('quest', self.enterQuest, self.exitQuest, [
             'walk']),
         State.State('fishing', self.enterFishing, self.exitFishing, [
             'walk',
             'stopped']),
         State.State('mailbox', self.enterMailbox, self.exitMailbox, [
             'walk',
             'stopped']),
         State.State('stopped', self.enterStopped, self.exitStopped, [
             'walk']),
         State.State('pet', self.enterPet, self.exitPet, [
             'walk',
             'trialerFA']),
         State.State('trialerFA', self.enterTrialerFA, self.exitTrialerFA, [
             'trialerFAReject',
             'DFA']),
         State.State('trialerFAReject', self.enterTrialerFAReject, self.exitTrialerFAReject, [
             'walk']),
         State.State('DFA', self.enterDFA, self.exitDFA, [
             'DFAReject',
             'teleportOut']),
         State.State('DFAReject', self.enterDFAReject, self.exitDFAReject, [
             'walk'])], 'init', 'final')
     self.fsm.enterInitialState()
     self.doneEvent = doneEvent
     self.parentFSMState = parentFSMState
Пример #4
0
 def __init__(self, doneEvent):
     StateData.StateData.__init__(self, doneEvent)
     self.numCogs = 1
     self.creditLevel = None
     self.luredIndices = []
     self.trappedIndices = []
     self.numToons = 1
     self.toons = []
     self.localNum = 0
     self.time = 0
     self.bldg = 0
     self.track = -1
     self.level = -1
     self.target = 0
     self.toonAttacks = [(-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (-1, 0, 0)]
     self.fsm = ClassicFSM.ClassicFSM('TownBattle', [
         State.State('Off', self.enterOff, self.exitOff, ['Attack']),
         State.State('Attack', self.enterAttack, self.exitAttack, [
             'ChooseCog', 'ChooseToon', 'AttackWait', 'Run', 'Fire', 'SOS'
         ]),
         State.State('ChooseCog', self.enterChooseCog, self.exitChooseCog,
                     ['AttackWait', 'Attack']),
         State.State('AttackWait', self.enterAttackWait,
                     self.exitAttackWait,
                     ['ChooseCog', 'ChooseToon', 'Attack']),
         State.State('ChooseToon', self.enterChooseToon,
                     self.exitChooseToon, ['AttackWait', 'Attack']),
         State.State('Run', self.enterRun, self.exitRun, ['Attack']),
         State.State(
             'SOS', self.enterSOS, self.exitSOS,
             ['Attack', 'AttackWait', 'SOSPetSearch', 'SOSPetInfo']),
         State.State('SOSPetSearch', self.enterSOSPetSearch,
                     self.exitSOSPetSearch, ['SOS', 'SOSPetInfo']),
         State.State('SOSPetInfo', self.enterSOSPetInfo,
                     self.exitSOSPetInfo, ['SOS', 'AttackWait']),
         State.State('Fire', self.enterFire, self.exitFire,
                     ['Attack', 'AttackWait'])
     ], 'Off', 'Off')
     self.runPanel = TTDialog.TTDialog(dialogName='TownBattleRunPanel',
                                       text=TTLocalizer.TownBattleRun,
                                       style=TTDialog.TwoChoice,
                                       command=self.__handleRunPanelDone)
     self.runPanel.hide()
     self.attackPanelDoneEvent = 'attack-panel-done'
     self.attackPanel = TownBattleAttackPanel.TownBattleAttackPanel(
         self.attackPanelDoneEvent)
     self.waitPanelDoneEvent = 'wait-panel-done'
     self.waitPanel = TownBattleWaitPanel.TownBattleWaitPanel(
         self.waitPanelDoneEvent)
     self.chooseCogPanelDoneEvent = 'choose-cog-panel-done'
     self.chooseCogPanel = TownBattleChooseAvatarPanel.TownBattleChooseAvatarPanel(
         self.chooseCogPanelDoneEvent, 0)
     self.chooseToonPanelDoneEvent = 'choose-toon-panel-done'
     self.chooseToonPanel = TownBattleChooseAvatarPanel.TownBattleChooseAvatarPanel(
         self.chooseToonPanelDoneEvent, 1)
     self.SOSPanelDoneEvent = 'SOS-panel-done'
     self.SOSPanel = TownBattleSOSPanel.TownBattleSOSPanel(
         self.SOSPanelDoneEvent)
     self.SOSPetSearchPanelDoneEvent = 'SOSPetSearch-panel-done'
     self.SOSPetSearchPanel = TownBattleSOSPetSearchPanel.TownBattleSOSPetSearchPanel(
         self.SOSPetSearchPanelDoneEvent)
     self.SOSPetInfoPanelDoneEvent = 'SOSPetInfo-panel-done'
     self.SOSPetInfoPanel = TownBattleSOSPetInfoPanel.TownBattleSOSPetInfoPanel(
         self.SOSPetInfoPanelDoneEvent)
     self.fireCogPanelDoneEvent = 'fire-cog-panel-done'
     self.FireCogPanel = FireCogPanel.FireCogPanel(
         self.fireCogPanelDoneEvent)
     self.cogFireCosts = [None, None, None, None]
     self.toonPanels = (TownBattleToonPanel.TownBattleToonPanel(0),
                        TownBattleToonPanel.TownBattleToonPanel(1),
                        TownBattleToonPanel.TownBattleToonPanel(2),
                        TownBattleToonPanel.TownBattleToonPanel(3))
     self.cogPanels = (TownBattleCogPanel.TownBattleCogPanel(0),
                       TownBattleCogPanel.TownBattleCogPanel(1),
                       TownBattleCogPanel.TownBattleCogPanel(2),
                       TownBattleCogPanel.TownBattleCogPanel(3))
     self.timer = ToontownTimer.ToontownTimer()
     self.timer.posInTopRightCorner()
     self.timer.setScale(0.4)
     self.timer.hide()
     return
 def __init__(self, cr):
     DistributedMinigame.__init__(self, cr)
     self.gameFSM = ClassicFSM.ClassicFSM('DistributedRaceGame', [State.State('off', self.enterOff, self.exitOff, ['inputChoice']),
      State.State('inputChoice', self.enterInputChoice, self.exitInputChoice, ['waitServerChoices', 'moveAvatars', 'cleanup']),
      State.State('waitServerChoices', self.enterWaitServerChoices, self.exitWaitServerChoices, ['moveAvatars', 'cleanup']),
      State.State('moveAvatars', self.enterMoveAvatars, self.exitMoveAvatars, ['inputChoice', 'winMovie', 'cleanup']),
      State.State('winMovie', self.enterWinMovie, self.exitWinMovie, ['cleanup']),
      State.State('cleanup', self.enterCleanup, self.exitCleanup, [])], 'off', 'cleanup')
     self.addChildGameFSM(self.gameFSM)
     self.posHprArray = (((-9.03,
        0.06,
        0.025,
        -152.9),
       (-7.43,
        -2.76,
        0.025,
        -152.68),
       (-6.02,
        -5.48,
        0.025,
        -157.54),
       (-5.01,
        -8.32,
        0.025,
        -160.66),
       (-4.05,
        -11.36,
        0.025,
        -170.22),
       (-3.49,
        -14.18,
        0.025,
        -175.76),
       (-3.12,
        -17.15,
        0.025,
        -177.73),
       (-3.0,
        -20.32,
        0.025,
        178.49),
       (-3.09,
        -23.44,
        0.025,
        176.59),
       (-3.43,
        -26.54,
        0.025,
        171.44),
       (-4.07,
        -29.44,
        0.025,
        163.75),
       (-5.09,
        -32.27,
        0.025,
        158.2),
       (-6.11,
        -35.16,
        0.025,
        154.98),
       (-7.57,
        -37.78,
        0.025,
        154.98),
       (-9.28,
        -40.65,
        0.025,
        150.41)),
      ((-6.12,
        1.62,
        0.025,
        -152.9),
       (-4.38,
        -1.35,
        0.025,
        -150.92),
       (-3.08,
        -4.3,
        0.025,
        -157.9),
       (-1.85,
        -7.26,
        0.025,
        -162.54),
       (-0.93,
        -10.49,
        0.025,
        -167.71),
       (-0.21,
        -13.71,
        0.025,
        -171.79),
       (0.21,
        -17.08,
        0.025,
        -174.92),
       (0.31,
        -20.2,
        0.025,
        177.1),
       (0.17,
        -23.66,
        0.025,
        174.82),
       (-0.23,
        -26.91,
        0.025,
        170.51),
       (-0.99,
        -30.2,
        0.025,
        162.54),
       (-2.02,
        -33.28,
        0.025,
        160.48),
       (-3.28,
        -36.38,
        0.025,
        157.96),
       (-4.67,
        -39.17,
        0.025,
        154.13),
       (-6.31,
        -42.15,
        0.025,
        154.13)),
      ((-2.99,
        3.09,
        0.025,
        -154.37),
       (-1.38,
        -0.05,
        0.025,
        -154.75),
       (-0.19,
        -3.29,
        0.025,
        -159.22),
       (1.17,
        -6.51,
        0.025,
        -162.74),
       (2.28,
        -9.8,
        0.025,
        -168.73),
       (3.09,
        -13.28,
        0.025,
        -173.49),
       (3.46,
        -16.63,
        0.025,
        -176.81),
       (3.69,
        -20.38,
        0.025,
        179.14),
       (3.61,
        -24.12,
        0.025,
        175.78),
       (3.0,
        -27.55,
        0.025,
        170.87),
       (2.15,
        -30.72,
        0.025,
        167.41),
       (1.04,
        -34.26,
        0.025,
        162.11),
       (-0.15,
        -37.44,
        0.025,
        158.59),
       (-1.64,
        -40.52,
        0.025,
        153.89),
       (-3.42,
        -43.63,
        0.025,
        153.89)),
      ((0.0,
        4.35,
        0.025,
        -154.37),
       (1.52,
        1.3,
        0.025,
        -155.67),
       (3.17,
        -2.07,
        0.025,
        -155.67),
       (4.47,
        -5.41,
        0.025,
        -163.0),
       (5.56,
        -9.19,
        0.025,
        -168.89),
       (6.22,
        -12.66,
        0.025,
        -171.67),
       (6.67,
        -16.56,
        0.025,
        -176.53),
       (6.93,
        -20.33,
        0.025,
        179.87),
       (6.81,
        -24.32,
        0.025,
        175.19),
       (6.22,
        -27.97,
        0.025,
        170.81),
       (5.59,
        -31.73,
        0.025,
        167.54),
       (4.48,
        -35.42,
        0.025,
        161.92),
       (3.06,
        -38.82,
        0.025,
        158.56),
       (1.4,
        -42.0,
        0.025,
        154.32),
       (-0.71,
        -45.17,
        0.025,
        153.27)))
     self.avatarPositions = {}
     self.modelCount = 8
     self.cameraTopView = (-22.78,
      -41.65,
      31.53,
      -51.55,
      -42.68,
      -2.96)
     self.timer = None
     self.timerStartTime = None
     return None
Пример #6
0
 def __init__(self, cr):
     DistributedObject.DistributedObject.__init__(self, cr)
     self.fsm = ClassicFSM.ClassicFSM('DistributedAnimatedProp', [State.State('off', self.enterOff, self.exitOff, ['playing', 'attract']), State.State('attract', self.enterAttract, self.exitAttract, ['playing']), State.State('playing', self.enterPlaying, self.exitPlaying, ['attract'])], 'off', 'off')
     self.fsm.enterInitialState()
Пример #7
0
 def __init__(self, avId, avName, playerId=None, parent=aspect2dp, **kw):
     print('ToonAvatarDetailPanel %s' % playerId)
     buttons = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui')
     gui = loader.loadModel('phase_3.5/models/gui/avatar_panel_gui')
     detailPanel = gui.find('**/avatarInfoPanel')
     self.playerId = playerId
     textScale = 0.095
     textWrap = 16.4
     self.playerInfo = None
     if self.playerId:
         self.playerInfo = base.cr.playerFriendsManager.playerId2Info.get(
             playerId)
     optiondefs = (('pos', (0.525, 0.0, 0.525), None), ('scale', 0.5, None),
                   ('relief', None, None), ('image', detailPanel, None),
                   ('image_color', GlobalDialogColor, None),
                   ('text', '', None), ('text_wordwrap', textWrap, None),
                   ('text_scale', textScale, None), ('text_pos',
                                                     (-0.125, 0.775), None))
     self.defineoptions(kw, optiondefs)
     DirectFrame.__init__(self, parent)
     self.dataText = DirectLabel(self,
                                 text='',
                                 text_scale=0.09,
                                 text_align=TextNode.ALeft,
                                 text_wordwrap=15,
                                 relief=None,
                                 pos=(-0.85, 0.0, 0.645))
     self.avId = avId
     self.avName = avName
     self.avatar = None
     self.createdAvatar = None
     self.fsm = ClassicFSM.ClassicFSM('ToonAvatarDetailPanel', [
         State.State('off', self.enterOff, self.exitOff, ['begin']),
         State.State('begin', self.enterBegin, self.exitBegin,
                     ['query', 'data', 'off']),
         State.State('query', self.enterQuery, self.exitQuery,
                     ['data', 'invalid', 'off']),
         State.State('data', self.enterData, self.exitData, ['off']),
         State.State('invalid', self.enterInvalid, self.exitInvalid,
                     ['off'])
     ], 'off', 'off')
     ToonTeleportPanel.hideTeleportPanel()
     FriendInviter.hideFriendInviter()
     self.bCancel = DirectButton(self,
                                 image=(buttons.find('**/CloseBtn_UP'),
                                        buttons.find('**/CloseBtn_DN'),
                                        buttons.find('**/CloseBtn_Rllvr')),
                                 image_scale=1.1,
                                 relief=None,
                                 text=TTLocalizer.AvatarDetailPanelCancel,
                                 text_scale=TTLocalizer.TADPbCancel,
                                 text_pos=(0.12, -0.01),
                                 pos=TTLocalizer.TADPbCancelPos,
                                 scale=2.0,
                                 command=self.__handleCancel)
     self.bCancel.hide()
     self.initialiseoptions(ToonAvatarDetailPanel)
     self.fsm.enterInitialState()
     self.fsm.request('begin')
     buttons.removeNode()
     gui.removeNode()
     return
Пример #8
0
 def __init__(self, air, parent, name, x, y, z, h, p, r):
     DistributedNodeAI.__init__(self, air)
     self.name = name
     self.air = air
     self.setPos(x, y, z)
     self.setHpr(h, p, r)
     self.myPos = (x, y, z)
     self.myHpr = (h, p, r)
     self.board = ChineseCheckersBoard.ChineseCheckersBoard()
     self.parent = self.air.doId2do[parent]
     self.parentDo = parent
     self.wantStart = []
     self.playersPlaying = []
     self.playersSitting = 0
     self.playersTurn = 1
     self.movesMade = 0
     self.playersGamePos = [
         None,
         None,
         None,
         None,
         None,
         None]
     self.wantTimer = True
     self.timerEnd = 0
     self.turnEnd = 0
     self.playersObserving = []
     self.winLaffPoints = 20
     self.movesRequiredToWin = 10
     self.zoneId = self.air.allocateZone()
     self.generateOtpObject(air.districtId, self.zoneId, optionalFields = [
         'setX',
         'setY',
         'setZ',
         'setH',
         'setP',
         'setR'])
     self.parent.setCheckersZoneId(self.zoneId)
     self.startingPositions = [
         [
             0,
             1,
             2,
             3,
             4,
             5,
             6,
             7,
             8,
             9],
         [
             10,
             11,
             12,
             13,
             23,
             24,
             25,
             35,
             36,
             46],
         [
             65,
             75,
             76,
             86,
             87,
             88,
             98,
             99,
             100,
             101],
         [
             111,
             112,
             113,
             114,
             115,
             116,
             117,
             118,
             119,
             120],
         [
             74,
             84,
             85,
             95,
             96,
             97,
             107,
             108,
             109,
             110],
         [
             19,
             20,
             21,
             22,
             32,
             33,
             34,
             44,
             45,
             55]]
     self.timerStart = None
     self.fsm = ClassicFSM.ClassicFSM('ChineseCheckers', [
         State.State('waitingToBegin', self.enterWaitingToBegin, self.exitWaitingToBegin, [
             'playing']),
         State.State('playing', self.enterPlaying, self.exitPlaying, [
             'gameOver']),
         State.State('gameOver', self.enterGameOver, self.exitGameOver, [
             'waitingToBegin'])], 'waitingToBegin', 'waitingToBegin')
     self.fsm.enterInitialState()
Пример #9
0
 def __init__(self, makeAToon, doneEvent, avList, index, isPaid):
     StateData.StateData.__init__(self, doneEvent)
     self.makeAToon = makeAToon
     self.isPaid = isPaid
     self.avList = avList
     self.index = index
     self.shopsVisited = []
     self.avId = -1
     self.avExists = 0
     self.names = ['',
      '',
      '',
      '']
     self.toon = None
     self.boy = 0
     self.girl = 0
     self.allTitles = []
     self.allFirsts = []
     self.allPrefixes = []
     self.allSuffixes = []
     self.titleIndex = 0
     self.firstIndex = 0
     self.prefixIndex = 0
     self.suffixIndex = 0
     self.titleActive = 0
     self.firstActive = 0
     self.lastActive = 0
     self.quickFind = 0
     self.listsLoaded = 0
     self.addedGenderSpecific = 0
     self.chastise = 0
     self.nameIndices = [-1,
      -1,
      -1,
      -1]
     self.nameFlags = [1,
      1,
      1,
      0]
     self.dummyReturn = 2
     self.nameAction = 0
     self.pickANameGUIElements = []
     self.typeANameGUIElements = []
     self.textRolloverColor = Vec4(1, 1, 0, 1)
     self.textDownColor = Vec4(0.5, 0.9, 1, 1)
     self.textDisabledColor = Vec4(0.4, 0.8, 0.4, 1)
     self.fsm = ClassicFSM.ClassicFSM('NameShop', [State.State('Init', self.enterInit, self.exitInit, ['PayState']),
      State.State('PayState', self.enterPayState, self.exitPayState, ['PickAName']),
      State.State('PickAName', self.enterPickANameState, self.exitPickANameState, ['TypeAName', 'Done']),
      State.State('TypeAName', self.enterTypeANameState, self.exitTypeANameState, ['PickAName',
       'Approval',
       'Accepted',
       'Rejected']),
      State.State('Approval', self.enterApprovalState, self.exitApprovalState, ['PickAName', 'ApprovalAccepted']),
      State.State('ApprovalAccepted', self.enterApprovalAcceptedState, self.exitApprovalAcceptedState, ['Done']),
      State.State('Accepted', self.enterAcceptedState, self.exitAcceptedState, ['Done']),
      State.State('Rejected', self.enterRejectedState, self.exitRejectedState, ['TypeAName']),
      State.State('Done', self.enterDone, self.exitDone, ['Init'])], 'Init', 'Done')
     self.parentFSM = makeAToon.fsm
     self.parentFSM.getStateNamed('NameShop').addChild(self.fsm)
     self.nameGen = NameGenerator.NameGenerator()
     self.fsm.enterInitialState()
     self.requestingSkipTutorial = False
     return
Пример #10
0
    def __init__(self, cr):
        NodePath.__init__(self, 'DistributedFindFour')
        DistributedNode.DistributedNode.__init__(self, cr)
        self.cr = cr
        self.reparentTo(render)
        self.boardNode = loader.loadModel(
            'phase_6/models/golf/findfour_game.bam')
        self.boardNode.reparentTo(self)
        self.board = [[0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0],
                      [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0],
                      [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]]
        self.exitButton = None
        self.inGame = False
        self.waiting = True
        self.startButton = None
        self.playerNum = None
        self.turnText = None
        self.isMyTurn = False
        self.wantTimer = True
        self.leaveButton = None
        self.screenText = None
        self.turnText = None
        self.exitButton = None
        self.numRandomMoves = 0
        self.blinker = Sequence()
        self.playersTurnBlinker = Sequence()
        self.yourTurnBlinker = Sequence()
        self.winningSequence = Sequence()
        self.moveSequence = Sequence()
        self.moveList = []
        self.mySquares = []
        self.playerSeats = None
        self.moveCol = None
        self.move = None
        self.accept('mouse1', self.mouseClick)
        self.traverser = base.cTrav
        self.pickerNode = CollisionNode('mouseRay')
        self.pickerNP = camera.attachNewNode(self.pickerNode)
        self.pickerNode.setFromCollideMask(BitMask32(4096))
        self.pickerRay = CollisionRay()
        self.pickerNode.addSolid(self.pickerRay)
        self.myHandler = CollisionHandlerQueue()
        self.traverser.addCollider(self.pickerNP, self.myHandler)
        self.buttonModels = loader.loadModel(
            'phase_3.5/models/gui/inventory_gui')
        self.upButton = self.buttonModels.find('**//InventoryButtonUp')
        self.downButton = self.buttonModels.find('**/InventoryButtonDown')
        self.rolloverButton = self.buttonModels.find(
            '**/InventoryButtonRollover')
        self.clockNode = ToontownTimer()
        self.clockNode.setPos(1.16, 0, -0.83)
        self.clockNode.setScale(0.3)
        self.clockNode.hide()
        self.tintConstant = Vec4(0.25, 0.25, 0.25, 0)
        self.ghostConstant = Vec4(0, 0, 0, 0.5)
        self.knockSound = base.loader.loadSfx(
            'phase_5/audio/sfx/GUI_knock_1.ogg')
        self.clickSound = base.loader.loadSfx(
            'phase_3/audio/sfx/GUI_balloon_popup.ogg')
        self.moveSound = base.loader.loadSfx('phase_6/audio/sfx/CC_move.ogg')
        self.accept('stoppedAsleep', self.handleSleep)
        from direct.fsm import ClassicFSM, State
        self.fsm = ClassicFSM.ClassicFSM('ChineseCheckers', [
            State.State('waitingToBegin', self.enterWaitingToBegin,
                        self.exitWaitingToBegin, ['playing', 'gameOver']),
            State.State('playing', self.enterPlaying, self.exitPlaying,
                        ['gameOver']),
            State.State('gameOver', self.enterGameOver, self.exitGameOver,
                        ['waitingToBegin'])
        ], 'waitingToBegin', 'waitingToBegin')
        startLoc = self.boardNode.find('**/locators')
        self.locatorList = startLoc.getChildren()
        self.startingPositions = self.locatorList.pop(0)
        self.startingPositions = self.startingPositions.getChildren()
        instancePiece = self.boardNode.find('**/pieces')
        tempList = []
        for x in range(7):
            self.startingPositions[x].setTag('StartLocator', '%d' % x)
            collNode = CollisionNode('startpicker%d' % x)
            collNode.setIntoCollideMask(BitMask32(4096))
            tempList.append(self.startingPositions[x].attachNewNode(collNode))
            tempList[x].node().addSolid(
                CollisionTube(0, 0, 0.23, 0, 0, -.23, 0.2))

        for z in self.startingPositions:
            y = instancePiece.copyTo(z)
            for val in y.getChildren():
                val.hide()

        tempList = []
        for x in range(42):
            self.locatorList[x].setTag('GamePeiceLocator', '%d' % x)
            collNode = CollisionNode('startpicker%d' % x)
            collNode.setIntoCollideMask(BitMask32(4096))
            tempList.append(self.locatorList[x].attachNewNode(collNode))
            tempList[x].node().addSolid(CollisionSphere(0, 0, 0, 0.2))

        for z in self.locatorList:
            y = instancePiece.copyTo(z)
            for val in y.getChildren():
                val.hide()

        dummyHide = instancePiece.getParent().attachNewNode('DummyHider')
        instancePiece.reparentTo(dummyHide)
        dummyHide.hide()
        return
Пример #11
0
 def __init__(self, cr):
     DistributedObject.DistributedObject.__init__(self, cr)
     self.fsm = ClassicFSM.ClassicFSM('DistributedToonInterior', [State.State('toon', self.enterToon, self.exitToon, ['beingTakenOver']), State.State('beingTakenOver', self.enterBeingTakenOver, self.exitBeingTakenOver, []), State.State('off', self.enterOff, self.exitOff, [])], 'toon', 'off')
     self.fsm.enterInitialState()
Пример #12
0
 def generateInit(self):
     self.notify.debug('generateInit')
     BasicEntities.DistributedNodePathEntity.generateInit(self)
     self.moveSnd = base.loader.loadSfx('phase_9/audio/sfx/CHQ_FACT_elevator_up_down.ogg')
     self.fsm = ClassicFSM.ClassicFSM('DistributedLift', [State.State('off', self.enterOff, self.exitOff, ['moving']), State.State('moving', self.enterMoving, self.exitMoving, ['waiting']), State.State('waiting', self.enterWaiting, self.exitWaiting, ['moving'])], 'off', 'off')
     self.fsm.enterInitialState()
Пример #13
0
    def __init__(self, chatMgr):
        self.chatMgr = chatMgr

        self.whisperAvatarId = None
        self.toPlayer = 0

        # create the panel that tells the user that they don't have
        # access to an emotion yet
        buttons = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui')
        okButtonImage = (buttons.find('**/ChtBx_OKBtn_UP'),
                         buttons.find('**/ChtBx_OKBtn_DN'),
                         buttons.find('**/ChtBx_OKBtn_Rllvr'))
        self.emoteNoAccessPanel = DirectFrame(
            parent=hidden,
            relief=None,
            state='normal',
            text=OTPLocalizer.SCEmoteNoAccessMsg,
            frameSize=(-1, 1, -1, 1),
            geom=DGG.getDefaultDialogGeom(),
            geom_color=OTPGlobals.GlobalDialogColor,
            geom_scale=(.92, 1, .6),
            geom_pos=(0, 0, -.08),
            text_scale=.08,
        )
        self.okButton = DirectButton(parent=self.emoteNoAccessPanel,
                                     image=okButtonImage,
                                     relief=None,
                                     text=OTPLocalizer.SCEmoteNoAccessOK,
                                     text_scale=0.05,
                                     text_pos=(0.0, -0.1),
                                     textMayChange=0,
                                     pos=(0.0, 0.0, -0.2),
                                     command=self.handleEmoteNoAccessDone)

        self.insidePartiesMenu = None
        self.createSpeedChat()
        self.whiteList = None
        self.allowWhiteListSpeedChat = base.config.GetBool(
            'white-list-speed-chat', 0)
        if self.allowWhiteListSpeedChat:
            self.addWhiteList()

        self.factoryMenu = None
        self.kartRacingMenu = None
        self.cogMenu = None
        self.cfoMenu = None
        self.cjMenu = None
        self.ceoMenu = None
        self.golfMenu = None
        self.boardingGroupMenu = None
        self.singingGroupMenu = None
        self.aprilToonsMenu = None
        self.carolMenu = None
        self.victoryPartiesMenu = None
        self.sillyPhaseOneMenu = None
        self.sillyPhaseTwoMenu = None
        self.sillyPhaseThreeMenu = None
        self.sillyPhaseFourMenu = None
        self.sillyPhaseFiveMenu = None

        if __debug__:
            base.speedChat = self.speedChat

        # listen for selection messages
        def listenForSCEvent(eventBaseName, handler, self=self):
            eventName = self.speedChat.getEventName(eventBaseName)
            self.accept(eventName, handler)

        listenForSCEvent(SpeedChatGlobals.SCTerminalLinkedEmoteEvent,
                         self.handleLinkedEmote)
        listenForSCEvent(SpeedChatGlobals.SCStaticTextMsgEvent,
                         self.handleStaticTextMsg)
        listenForSCEvent(SpeedChatGlobals.SCCustomMsgEvent,
                         self.handleCustomMsg)
        listenForSCEvent(SpeedChatGlobals.SCEmoteMsgEvent, self.handleEmoteMsg)
        listenForSCEvent(SpeedChatGlobals.SCEmoteNoAccessEvent,
                         self.handleEmoteNoAccess)
        listenForSCEvent(TTSpeedChatGlobals.TTSCToontaskMsgEvent,
                         self.handleToontaskMsg)
        listenForSCEvent(TTSpeedChatGlobals.TTSCResistanceMsgEvent,
                         self.handleResistanceMsg)
        listenForSCEvent(TTSCSingingTerminal.TTSCSingingMsgEvent,
                         self.handleSingingMsg)
        listenForSCEvent("SpeedChatStyleChange",
                         self.handleSpeedChatStyleChange)
        listenForSCEvent(TTSCIndexedTerminal.TTSCIndexedMsgEvent,
                         self.handleStaticTextMsg)

        self.fsm = ClassicFSM.ClassicFSM(
            'SpeedChat',
            [
                State.State('off', self.enterOff, self.exitOff, ['active']),
                State.State('active', self.enterActive, self.exitActive,
                            ['off']),
            ],
            # Initial state
            'off',
            # Final state
            'off',
        )
        self.fsm.enterInitialState()
Пример #14
0
    def __init__(self, cr):
        DistributedMinigame.__init__(self, cr)
        self.gameFSM = ClassicFSM.ClassicFSM(
            'DistributedRaceGame',
            [
                State.State('off', self.enterOff, self.exitOff,
                            ['inputChoice']),
                State.State('inputChoice', self.enterInputChoice,
                            self.exitInputChoice,
                            ['waitServerChoices', 'moveAvatars', 'cleanup']),
                State.State('waitServerChoices', self.enterWaitServerChoices,
                            self.exitWaitServerChoices,
                            ['moveAvatars', 'cleanup']),
                State.State('moveAvatars', self.enterMoveAvatars,
                            self.exitMoveAvatars,
                            ['inputChoice', 'winMovie', 'cleanup']),
                State.State('winMovie', self.enterWinMovie, self.exitWinMovie,
                            ['cleanup']),
                State.State('cleanup', self.enterCleanup, self.exitCleanup,
                            []),
            ],
            # Initial State
            'off',
            # Final State
            'cleanup',
        )

        # Add our game ClassicFSM to the framework ClassicFSM
        self.addChildGameFSM(self.gameFSM)

        # New short board
        self.posHprArray = ((
            (-9.03, 0.06, 0.025, -152.90),
            (-7.43, -2.76, 0.025, -152.68),
            (-6.02, -5.48, 0.025, -157.54),
            (-5.01, -8.32, 0.025, -160.66),
            (-4.05, -11.36, 0.025, -170.22),
            (-3.49, -14.18, 0.025, -175.76),
            (-3.12, -17.15, 0.025, -177.73),
            (-3.00, -20.32, 0.025, 178.49),
            (-3.09, -23.44, 0.025, 176.59),
            (-3.43, -26.54, 0.025, 171.44),
            (-4.07, -29.44, 0.025, 163.75),
            (-5.09, -32.27, 0.025, 158.20),
            (-6.11, -35.16, 0.025, 154.98),
            (-7.57, -37.78, 0.025, 154.98),
            (-9.28, -40.65, 0.025, 150.41),
        ), (
            (-6.12, 1.62, 0.025, -152.90),
            (-4.38, -1.35, 0.025, -150.92),
            (-3.08, -4.30, 0.025, -157.90),
            (-1.85, -7.26, 0.025, -162.54),
            (-0.93, -10.49, 0.025, -167.71),
            (-0.21, -13.71, 0.025, -171.79),
            (0.21, -17.08, 0.025, -174.92),
            (0.31, -20.20, 0.025, 177.10),
            (0.17, -23.66, 0.025, 174.82),
            (-0.23, -26.91, 0.025, 170.51),
            (-0.99, -30.20, 0.025, 162.54),
            (-2.02, -33.28, 0.025, 160.48),
            (-3.28, -36.38, 0.025, 157.96),
            (-4.67, -39.17, 0.025, 154.13),
            (-6.31, -42.15, 0.025, 154.13),
        ), (
            (-2.99, 3.09, 0.025, -154.37),
            (-1.38, -0.05, 0.025, -154.75),
            (-0.19, -3.29, 0.025, -159.22),
            (1.17, -6.51, 0.025, -162.74),
            (2.28, -9.80, 0.025, -168.73),
            (3.09, -13.28, 0.025, -173.49),
            (3.46, -16.63, 0.025, -176.81),
            (3.69, -20.38, 0.025, 179.14),
            (3.61, -24.12, 0.025, 175.78),
            (3.00, -27.55, 0.025, 170.87),
            (2.15, -30.72, 0.025, 167.41),
            (1.04, -34.26, 0.025, 162.11),
            (-0.15, -37.44, 0.025, 158.59),
            (-1.64, -40.52, 0.025, 153.89),
            (-3.42, -43.63, 0.025, 153.89),
        ), (
            (0.00, 4.35, 0.025, -154.37),
            (1.52, 1.30, 0.025, -155.67),
            (3.17, -2.07, 0.025, -155.67),
            (4.47, -5.41, 0.025, -163.00),
            (5.56, -9.19, 0.025, -168.89),
            (6.22, -12.66, 0.025, -171.67),
            (6.67, -16.56, 0.025, -176.53),
            (6.93, -20.33, 0.025, 179.87),
            (6.81, -24.32, 0.025, 175.19),
            (6.22, -27.97, 0.025, 170.81),
            (5.59, -31.73, 0.025, 167.54),
            (4.48, -35.42, 0.025, 161.92),
            (3.06, -38.82, 0.025, 158.56),
            (1.40, -42.00, 0.025, 154.32),
            (-0.71, -45.17, 0.025, 153.27),
        ))

        self.avatarPositions = {}
        self.modelCount = 8

        self.cameraTopView = (-22.78, -41.65, 31.53, -51.55, -42.68, -2.96)

        # These are None to indicate we have not yet established a
        # timer; they are filled in as we enter the inputChoice state
        # and as the AI reports a start time, respectively.  When both
        # are filled in, the timer will be displayed.
        self.timer = None
        self.timerStartTime = None
Пример #15
0
    def __init__(self, loader, parentFSM, doneEvent):
        """
        Playground constructor: create a play game ClassicFSM
        """
        assert (self.notify.debug("__init__()"))
        Place.Place.__init__(self, loader, doneEvent)

        self.tfaDoneEvent = "tfaDoneEvent"
        # shared state
        self.fsm = ClassicFSM.ClassicFSM(
            'Playground',
            [
                State.State('start', self.enterStart, self.exitStart,
                            ['walk', 'deathAck', 'doorIn', 'tunnelIn']),
                State.State('walk', self.enterWalk, self.exitWalk, [
                    'drive', 'sit', 'stickerBook', 'TFA', 'DFA', 'trialerFA',
                    'trolley', 'final', 'doorOut', 'options', 'quest',
                    'purchase', 'stopped', 'fishing'
                ]),
                State.State(
                    'stickerBook',
                    self.enterStickerBook,
                    self.exitStickerBook,
                    [
                        'walk',
                        'DFA',
                        'TFA',
                        # You can get to all of these by jumping over
                        # the trigger then opening your book
                        'trolley',
                        'final',
                        'doorOut',
                        'quest',
                        'purchase',
                        'stopped',
                        'fishing',
                        'trialerFA',
                    ]),
                State.State(
                    'sit',
                    self.enterSit,
                    self.exitSit,
                    [
                        'walk',
                        'DFA',  # So you can teleport to a friend
                        'trialerFA',
                    ]),
                State.State(
                    'drive',
                    self.enterDrive,
                    self.exitDrive,
                    [
                        'walk',
                        'DFA',  # So you can teleport to a friend
                        'trialerFA',
                    ]),
                State.State('trolley', self.enterTrolley, self.exitTrolley,
                            ['walk']),
                State.State('doorIn', self.enterDoorIn, self.exitDoorIn,
                            ['walk']),
                State.State('doorOut', self.enterDoorOut, self.exitDoorOut,
                            ['walk']),  # 'final'
                # Tutorial Force Acknowledge:
                State.State('TFA', self.enterTFA, self.exitTFA,
                            ['TFAReject', 'DFA']),
                State.State('TFAReject', self.enterTFAReject,
                            self.exitTFAReject, ['walk']),
                # Trialer Force Acknowledge:
                State.State('trialerFA', self.enterTrialerFA,
                            self.exitTrialerFA, ['trialerFAReject', 'DFA']),
                State.State('trialerFAReject', self.enterTrialerFAReject,
                            self.exitTrialerFAReject, ['walk']),
                # Download Force Acknowledge
                State.State('DFA', self.enterDFA, self.exitDFA,
                            ['DFAReject', 'NPCFA', 'HFA']),
                State.State('DFAReject', self.enterDFAReject,
                            self.exitDFAReject, ['walk']),
                # NPC Force Acknowledge:
                State.State('NPCFA', self.enterNPCFA, self.exitNPCFA,
                            ['NPCFAReject', 'HFA']),
                State.State('NPCFAReject', self.enterNPCFAReject,
                            self.exitNPCFAReject, ['walk']),
                # Health Force Acknowledge
                State.State('HFA', self.enterHFA, self.exitHFA,
                            ['HFAReject', 'teleportOut', 'tunnelOut']),
                State.State('HFAReject', self.enterHFAReject,
                            self.exitHFAReject, ['walk']),
                State.State('deathAck', self.enterDeathAck, self.exitDeathAck,
                            ['teleportIn']),
                State.State('teleportIn', self.enterTeleportIn,
                            self.exitTeleportIn, ['walk', 'popup']),
                State.State('popup', self.enterPopup, self.exitPopup,
                            ['walk']),
                State.State('teleportOut', self.enterTeleportOut,
                            self.exitTeleportOut,
                            ['deathAck', 'teleportIn']),  # 'final'
                State.State(
                    'died',  # No transitions to "died" in the playground.
                    self.enterDied,
                    self.exitDied,
                    ['final']),
                State.State('tunnelIn', self.enterTunnelIn, self.exitTunnelIn,
                            ['walk']),
                State.State('tunnelOut', self.enterTunnelOut,
                            self.exitTunnelOut, ['final']),
                State.State('quest', self.enterQuest, self.exitQuest,
                            ['walk']),
                State.State('purchase', self.enterPurchase, self.exitPurchase,
                            ['walk']),
                State.State('stopped', self.enterStopped, self.exitStopped,
                            ['walk']),
                State.State('fishing', self.enterFishing, self.exitFishing,
                            ['walk']),
                State.State('final', self.enterFinal, self.exitFinal,
                            ['start'])
            ],

            # Initial State
            'start',
            # Final State
            'final',
        )

        self.parentFSM = parentFSM
        self.tunnelOriginList = []
        self.trolleyDoneEvent = "trolleyDone"
        self.hfaDoneEvent = "hfaDoneEvent"
        self.npcfaDoneEvent = "npcfaDoneEvent"
        self.dialog = None
        self.deathAckBox = None
 def __init__(self, cr):
     DistributedMinigame.DistributedMinigame.__init__(self, cr)
     DistributedIceWorld.DistributedIceWorld.__init__(self, cr)
     self.gameFSM = ClassicFSM.ClassicFSM('DistributedIceGame', [
         State.State('off', self.enterOff, self.exitOff, ['inputChoice']),
         State.State(
             'inputChoice', self.enterInputChoice, self.exitInputChoice,
             ['waitServerChoices', 'moveTires', 'displayVotes', 'cleanup']),
         State.State('waitServerChoices', self.enterWaitServerChoices,
                     self.exitWaitServerChoices, ['moveTires', 'cleanup']),
         State.State('moveTires', self.enterMoveTires, self.exitMoveTires,
                     ['synch', 'cleanup']),
         State.State('synch', self.enterSynch, self.exitSynch,
                     ['inputChoice', 'scoring', 'cleanup']),
         State.State('scoring', self.enterScoring, self.exitScoring,
                     ['cleanup', 'finalResults', 'inputChoice']),
         State.State('finalResults', self.enterFinalResults,
                     self.exitFinalResults, ['cleanup']),
         State.State('cleanup', self.enterCleanup, self.exitCleanup, [])
     ], 'off', 'cleanup')
     self.addChildGameFSM(self.gameFSM)
     self.cameraThreeQuarterView = (0, -22, 45, 0, -62.89, 0)
     self.tireDict = {}
     self.forceArrowDict = {}
     self.canDrive = False
     self.timer = None
     self.timerStartTime = None
     self.curForce = 0
     self.curHeading = 0
     self.headingMomentum = 0.0
     self.forceMomentum = 0.0
     self.allTireInputs = None
     self.curRound = 0
     self.curMatch = 0
     self.controlKeyWarningLabel = DirectLabel(
         text=TTLocalizer.IceGameControlKeyWarning,
         text_fg=VBase4(1, 0, 0, 1),
         relief=None,
         pos=(0.0, 0, 0),
         scale=0.15)
     self.controlKeyWarningLabel.hide()
     self.waitingMoveLabel = DirectLabel(
         text=TTLocalizer.IceGameWaitingForPlayersToFinishMove,
         text_fg=VBase4(1, 1, 1, 1),
         relief=None,
         pos=(-0.6, 0, -0.75),
         scale=0.075)
     self.waitingMoveLabel.hide()
     self.waitingSyncLabel = DirectLabel(
         text=TTLocalizer.IceGameWaitingForAISync,
         text_fg=VBase4(1, 1, 1, 1),
         relief=None,
         pos=(-0.6, 0, -0.75),
         scale=0.075)
     self.waitingSyncLabel.hide()
     self.infoLabel = DirectLabel(text='',
                                  text_fg=VBase4(0, 0, 0, 1),
                                  relief=None,
                                  pos=(0.0, 0, 0.7),
                                  scale=0.075)
     self.updateInfoLabel()
     self.lastForceArrowUpdateTime = 0
     self.sendForceArrowUpdateAsap = False
     self.treasures = []
     self.penalties = []
     self.obstacles = []
     self.controlKeyPressed = False
     self.controlKeyWarningIval = None
     return
Пример #17
0
    def __init__(self, cr):

        try:
            return None
        except:
            self.DistributedSuit_initialized = 1

        DistributedSuitBase.DistributedSuitBase.__init__(self, cr)
        self.spDoId = None
        self.pathEndpointStart = 0
        self.pathEndpointEnd = 0
        self.minPathLen = 0
        self.maxPathLen = 0
        self.pathPositionIndex = 0
        self.pathPositionTimestamp = 0.0
        self.pathState = 0
        self.path = None
        self.localPathState = 0
        self.currentLeg = -1
        self.pathStartTime = 0.0
        self.legList = None
        self.initState = None
        self.finalState = None
        self.buildingSuit = 0
        self.fsm = ClassicFSM.ClassicFSM('DistributedSuit', [
            State.State('Off', self.enterOff, self.exitOff, [
                'FromSky', 'FromSuitBuilding', 'Walk', 'Battle', 'neutral',
                'ToToonBuilding', 'ToSuitBuilding', 'ToCogHQ', 'FromCogHQ',
                'ToSky', 'FlyAway', 'DanceThenFlyAway', 'WalkToStreet',
                'WalkFromStreet'
            ]),
            State.State(
                'FromSky', self.enterFromSky, self.exitFromSky,
                ['Walk', 'Battle', 'neutral', 'ToSky', 'WalkFromStreet']),
            State.State(
                'FromSuitBuilding', self.enterFromSuitBuilding,
                self.exitFromSuitBuilding,
                ['WalkToStreet', 'Walk', 'Battle', 'neutral', 'ToSky']),
            State.State(
                'WalkToStreet', self.enterWalkToStreet, self.exitWalkToStreet,
                [
                    'Walk', 'Battle', 'neutral', 'ToSky', 'ToToonBuilding',
                    'ToSuitBuilding', 'ToCogHQ', 'WalkFromStreet'
                ]),
            State.State('WalkFromStreet', self.enterWalkFromStreet,
                        self.exitWalkFromStreet, [
                            'ToToonBuilding', 'ToSuitBuilding', 'ToCogHQ',
                            'Battle', 'neutral', 'ToSky'
                        ]),
            State.State('Walk', self.enterWalk, self.exitWalk, [
                'WaitForBattle', 'Battle', 'neutral', 'WalkFromStreet',
                'ToSky', 'ToCogHQ', 'Walk'
            ]),
            State.State('Battle', self.enterBattle, self.exitBattle, [
                'Walk', 'ToToonBuilding', 'ToCogHQ', 'ToSuitBuilding', 'ToSky'
            ]),
            State.State('neutral', self.enterNeutral, self.exitNeutral, []),
            State.State('WaitForBattle', self.enterWaitForBattle,
                        self.exitWaitForBattle, [
                            'Battle', 'neutral', 'Walk', 'WalkToStreet',
                            'WalkFromStreet', 'ToToonBuilding', 'ToCogHQ',
                            'ToSuitBuilding', 'ToSky'
                        ]),
            State.State('ToToonBuilding', self.enterToToonBuilding,
                        self.exitToToonBuilding, ['neutral', 'Battle']),
            State.State('ToSuitBuilding', self.enterToSuitBuilding,
                        self.exitToSuitBuilding, ['neutral', 'Battle']),
            State.State('ToCogHQ', self.enterToCogHQ, self.exitToCogHQ,
                        ['neutral', 'Battle']),
            State.State('FromCogHQ', self.enterFromCogHQ, self.exitFromCogHQ,
                        ['neutral', 'Battle', 'Walk']),
            State.State('ToSky', self.enterToSky, self.exitToSky, ['Battle']),
            State.State('FlyAway', self.enterFlyAway, self.exitFlyAway, []),
            State.State('DanceThenFlyAway', self.enterDanceThenFlyAway,
                        self.exitDanceThenFlyAway, [])
        ], 'Off', 'Off')
        self.fsm.enterInitialState()
        self.soundSequenceList = []
        self._DistributedSuit__currentDialogue = None
 def __init__(self, cr):
     DistributedObject.DistributedObject.__init__(self, cr)
     self.avId = 0
     self.av = None
     self.localToonShooting = 0
     self.nodePath = None
     self.collSphere = None
     self.collNode = None
     self.collNodePath = None
     self.madeGui = 0
     self.gui = None
     self.cannonLocation = None
     self.cannonPosition = None
     self.cannon = None
     self.toonModel = None
     self.shadowNode = None
     self.toonHead = None
     self.toonScale = None
     self.estateId = None
     self.targetId = None
     self.splash = None
     self.dustCloud = None
     self.model_Created = 0
     self.lastWakeTime = 0
     self.leftPressed = 0
     self.rightPressed = 0
     self.upPressed = 0
     self.downPressed = 0
     self.hitBumper = 0
     self.hitTarget = 0
     self.lastPos = Vec3(0, 0, 0)
     self.lastVel = Vec3(0, 0, 0)
     self.vel = Vec3(0, 0, 0)
     self.landingPos = Vec3(0, 0, 0)
     self.t = 0
     self.lastT = 0
     self.deltaT = 0
     self.hitTrack = None
     self.cTrav = None
     self.cRay = None
     self.cRayNode = None
     self.cRayNodePath = None
     self.lifter = None
     self.flyColNode = None
     self.flyColNodePath = None
     self.bumperCol = None
     self.cannonMoving = 0
     self.inWater = 0
     self.localAvId = base.localAvatar.doId
     self.nextState = None
     self.nextKey = None
     self.cannonsActive = 0
     self.codeFSM = ClassicFSM.ClassicFSM('CannonCode', [
         State.State('init', self.enterInit, self.exitInit, [
             'u1',
             'init']),
         State.State('u1', self.enteru1, self.exitu1, [
             'u2',
             'init']),
         State.State('u2', self.enteru2, self.exitu2, [
             'd3',
             'init']),
         State.State('d3', self.enterd3, self.exitd3, [
             'd4',
             'init']),
         State.State('d4', self.enterd4, self.exitd4, [
             'l5',
             'init']),
         State.State('l5', self.enterl5, self.exitl5, [
             'r6',
             'init']),
         State.State('r6', self.enterr6, self.exitr6, [
             'l7',
             'init']),
         State.State('l7', self.enterl7, self.exitl7, [
             'r8',
             'init']),
         State.State('r8', self.enterr8, self.exitr8, [
             'acceptCode',
             'init']),
         State.State('acceptCode', self.enterAcceptCode, self.exitAcceptCode, [
             'init',
             'final']),
         State.State('final', self.enterFinal, self.exitFinal, [])], 'init', 'final')
     self.codeFSM.enterInitialState()
     self.curPinballScore = 0
     self.curPinballMultiplier = 1
Пример #19
0
 def __init__(self, cr):
     if hasattr(self, 'fishInit'):
         return
     self.fishInit = 1
     DistributedObject.DistributedObject.__init__(self, cr)
     self.lastAvId = 0
     self.lastFrame = 0
     self.avId = 0
     self.av = None
     self.placedAvatar = 0
     self.localToonFishing = 0
     self.nodePath = None
     self.collSphere = None
     self.collNode = None
     self.collNodePath = None
     self.castTrack = None
     self.pond = None
     self.guiTrack = None
     self.madeGui = 0
     self.castGui = None
     self.itemGui = None
     self.pole = None
     self.line = None
     self.poleNode = []
     self.ptop = None
     self.bob = None
     self.bobBobTask = None
     self.splashSounds = None
     self.ripples = None
     self.line = None
     self.lineSphere = None
     self.power = 0.0
     self.startAngleNP = 0
     self.firstCast = 1
     self.fishPanel = None
     self.fsm = ClassicFSM.ClassicFSM('DistributedFishingSpot', [
         State.State(
             'off', self.enterOff, self.exitOff,
             ['waiting', 'distCasting', 'fishing', 'reward', 'leaving']),
         State.State(
             'waiting', self.enterWaiting, self.exitWaiting,
             ['localAdjusting', 'distCasting', 'leaving', 'sellFish']),
         State.State('localAdjusting', self.enterLocalAdjusting,
                     self.exitLocalAdjusting, ['localCasting', 'leaving']),
         State.State('localCasting', self.enterLocalCasting,
                     self.exitLocalCasting,
                     ['localAdjusting', 'fishing', 'leaving']),
         State.State('distCasting', self.enterDistCasting,
                     self.exitDistCasting,
                     ['fishing', 'leaving', 'reward']),
         State.State('fishing', self.enterFishing, self.exitFishing, [
             'localAdjusting', 'distCasting', 'waitForAI', 'reward',
             'leaving'
         ]),
         State.State('sellFish', self.enterSellFish, self.exitSellFish,
                     ['waiting', 'leaving']),
         State.State('waitForAI', self.enterWaitForAI, self.exitWaitForAI,
                     ['reward', 'leaving']),
         State.State(
             'reward', self.enterReward, self.exitReward,
             ['localAdjusting', 'distCasting', 'leaving', 'sellFish']),
         State.State('leaving', self.enterLeaving, self.exitLeaving, [])
     ], 'off', 'off')
     self.fsm.enterInitialState()
     return
 def __init__(self, cr):
     DistributedMinigame.__init__(self, cr)
     self.gameFSM = ClassicFSM.ClassicFSM('DistributedRingGame', [State.State('off', self.enterOff, self.exitOff, ['swim']), State.State('swim', self.enterSwim, self.exitSwim, ['cleanup']), State.State('cleanup', self.enterCleanup, self.exitCleanup, [])], 'off', 'cleanup')
     self.addChildGameFSM(self.gameFSM)
    def __init__(self, air, elevator):
        self.air = air
        DistributedObjectAI.DistributedObjectAI.__init__(self, air)
        (self.extZoneId,
         self.zoneId) = elevator.bldg.getExteriorAndInteriorZoneId()
        self._numFloors = elevator.bldg.planner.numFloors
        self.layout = elevator.bldg._cogdoLayout
        self.avatarExitEvents = []
        self.toons = []
        self.toonSkillPtsGained = {}
        self.toonExp = {}
        self.toonOrigQuests = {}
        self.toonItems = {}
        self.toonOrigMerits = {}
        self.toonMerits = {}
        self.toonParts = {}
        self.helpfulToons = []
        self.shopOwnerNpcId = 0
        npcDesc = NPCToons.zone2NpcDict.get(self.zoneId)
        if npcDesc:
            self.shopOwnerNpcId = npcDesc[0]

        if not self.shopOwnerNpcId:
            self.notify.warning('No npcs found for current cogdo building')

        self.currentFloor = 0
        self.bldg = elevator.bldg
        self.elevator = elevator
        self._game = None
        self._CogdoGameRepeat = config.GetBool('cogdo-game-repeat', 0)
        self.suits = []
        self.activeSuits = []
        self.reserveSuits = []
        self.joinedReserves = []
        self.suitsKilled = []
        self.suitsKilledPerFloor = []
        self.battle = None
        self.timer = Timer.Timer()
        self._wantBarrelRoom = config.GetBool('cogdo-want-barrel-room', 0)
        self.barrelRoom = None
        self.responses = {}
        self.ignoreResponses = 0
        self.ignoreElevatorDone = 0
        self.ignoreReserveJoinDone = 0
        self.toonIds = copy.copy(elevator.seats)
        for toonId in self.toonIds:
            if toonId != None:
                self.__addToon(toonId)

        self.savedByMap = {}
        self.fsm = ClassicFSM.ClassicFSM(
            'DistributedCogdoInteriorAI', [
                State.State('WaitForAllToonsInside',
                            self.enterWaitForAllToonsInside,
                            self.exitWaitForAllToonsInside, ['Elevator']),
                State.State('Elevator', self.enterElevator, self.exitElevator,
                            ['Game']),
                State.State('Game', self.enterGame, self.exitGame,
                            ['Resting', 'Failed', 'BattleIntro', 'Off']),
                State.State('BarrelRoomIntro', self.enterBarrelRoomIntro,
                            self.exitBarrelRoomIntro,
                            ['CollectBarrels', 'Off']),
                State.State('CollectBarrels', self.enterCollectBarrels,
                            self.exitCollectBarrels,
                            ['BarrelRoomReward', 'Off']),
                State.State(
                    'BarrelRoomReward', self.enterBarrelRoomReward,
                    self.exitBarrelRoomReward,
                    ['Battle', 'ReservesJoining', 'BattleIntro', 'Off']),
                State.State(
                    'BattleIntro', self.enterBattleIntro, self.exitBattleIntro,
                    ['Battle', 'ReservesJoining', 'Off']),
                State.State('Battle', self.enterBattle, self.exitBattle,
                            ['ReservesJoining', 'BattleDone', 'Off']),
                State.State('ReservesJoining', self.enterReservesJoining,
                            self.exitReservesJoining, ['Battle', 'Off']),
                State.State('BattleDone', self.enterBattleDone,
                            self.exitBattleDone, ['Resting', 'Reward', 'Off']),
                State.State('Resting', self.enterResting, self.exitResting,
                            ['Elevator', 'Off']),
                State.State('Reward', self.enterReward,
                            self.exitReward, ['Off']),
                State.State('Failed', self.enterFailed,
                            self.exitFailed, ['Off']),
                State.State('Off', self.enterOff, self.exitOff,
                            ['WaitForAllToonsInside'])
            ],
            'Off',
            'Off',
            onUndefTransition=ClassicFSM.ClassicFSM.ALLOW)
        self.fsm.enterInitialState()
        safeZone = ZoneUtil.getCanonicalHoodId(self.extZoneId)
        difficulty = SafeZones.index(safeZone)
        self.SOSCard = self.chooseSOSCard(difficulty)
Пример #22
0
    def __init__(self, cr):
        NodePath.__init__(self, "DistributedFindFour")
        DistributedNode.DistributedNode.__init__(self, cr)
        self.cr = cr

        self.reparentTo(render)
        self.boardNode = loader.loadModel(
            "phase_6/models/golf/findfour_game.bam")
        self.boardNode.reparentTo(self)
        #self.boardNode.setScale(.05)

        self.board = [[0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0],
                      [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0],
                      [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]]

        #game variables
        self.exitButton = None
        self.inGame = False
        self.waiting = True
        self.startButton = None
        self.playerNum = None
        self.turnText = None
        self.isMyTurn = False
        self.wantTimer = True
        self.leaveButton = None
        self.screenText = None
        self.turnText = None
        self.exitButton = None
        self.numRandomMoves = 0
        self.blinker = Sequence()
        self.playersTurnBlinker = Sequence()
        self.yourTurnBlinker = Sequence()
        self.winningSequence = Sequence()
        self.moveSequence = Sequence()
        self.moveList = []
        self.mySquares = []
        self.playerSeats = None
        self.moveCol = None

        self.move = None
        ###self.playerTags = [None, None, None, None, None, None

        #Mouse picking required stuff
        self.accept('mouse1', self.mouseClick)
        self.traverser = base.cTrav
        self.pickerNode = CollisionNode('mouseRay')
        self.pickerNP = camera.attachNewNode(self.pickerNode)
        self.pickerNode.setFromCollideMask(BitMask32(0x1000))
        self.pickerRay = CollisionRay()
        self.pickerNode.addSolid(self.pickerRay)
        self.myHandler = CollisionHandlerQueue()
        self.traverser.addCollider(self.pickerNP, self.myHandler)

        self.buttonModels = loader.loadModel(
            "phase_3.5/models/gui/inventory_gui")
        self.upButton = self.buttonModels.find("**//InventoryButtonUp")
        self.downButton = self.buttonModels.find("**/InventoryButtonDown")
        self.rolloverButton = self.buttonModels.find(
            "**/InventoryButtonRollover")

        self.clockNode = ToontownTimer()
        self.clockNode.setPos(1.16, 0, -0.83)
        self.clockNode.setScale(0.3)
        self.clockNode.hide()

        self.tintConstant = Vec4(.25, .25, .25, 0)
        self.ghostConstant = Vec4(0, 0, 0, .5)

        self.knockSound = base.loadSfx("phase_5/audio/sfx/GUI_knock_1.mp3")
        self.clickSound = base.loadSfx(
            "phase_3/audio/sfx/GUI_balloon_popup.mp3")
        self.moveSound = base.loadSfx("phase_6/audio/sfx/CC_move.mp3")
        self.accept('stoppedAsleep', self.handleSleep)

        #######################
        #Fsm and State Data
        from direct.fsm import ClassicFSM, State
        self.fsm = ClassicFSM.ClassicFSM(
            'ChineseCheckers',
            [
                State.State('waitingToBegin', self.enterWaitingToBegin,
                            self.exitWaitingToBegin, ['playing', 'gameOver']),
                State.State('playing', self.enterPlaying, self.exitPlaying,
                            ['gameOver']),
                State.State('gameOver', self.enterGameOver, self.exitGameOver,
                            ['waitingToBegin'])
            ],
            # Initial State
            'waitingToBegin',
            # Final State
            'waitingToBegin',
        )

        #########################
        #Set up the Board Locators
        ##
        startLoc = self.boardNode.find("**/locators")
        self.locatorList = startLoc.getChildren()

        self.startingPositions = self.locatorList.pop(0)
        self.startingPositions = self.startingPositions.getChildren()

        instancePiece = self.boardNode.find("**/pieces")

        #tag the locators for "picking" ingame
        #also add colision spheres for movement
        tempList = []

        #Start Position locators
        #Up above the board
        for x in range(7):
            self.startingPositions[x].setTag("StartLocator", "%d" % x)
            collNode = CollisionNode("startpicker%d" % x)
            collNode.setIntoCollideMask(BitMask32(0x1000))
            tempList.append(self.startingPositions[x].attachNewNode(collNode))
            tempList[x].node().addSolid(
                CollisionTube(0, 0, .23, 0, 0, -.23, .2))
        for z in self.startingPositions:
            y = instancePiece.copyTo(z)
            for val in y.getChildren():
                val.hide()

        tempList = []
        #the peices themselves inside of the board.
        for x in range(42):
            self.locatorList[x].setTag("GamePeiceLocator", "%d" % x)
            collNode = CollisionNode("startpicker%d" % x)
            collNode.setIntoCollideMask(BitMask32(0x1000))
            tempList.append(self.locatorList[x].attachNewNode(collNode))
            tempList[x].node().addSolid(CollisionSphere(0, 0, 0, .2))
        for z in self.locatorList:
            y = instancePiece.copyTo(z)
            for val in y.getChildren():
                val.hide()

        dummyHide = instancePiece.getParent().attachNewNode("DummyHider")
        instancePiece.reparentTo(dummyHide)
        dummyHide.hide()
Пример #23
0
 def __init__(self, cr, localAvatar):
     self.cr = cr
     self.localAvatar = localAvatar
     self.wantBackgroundFocus = not base.wantCustomControls
     self.__scObscured = 0
     self.__normalObscured = 0
     self.__clObscured = 0
     self.openChatWarning = None
     self.unpaidChatWarning = None
     self.teaser = None
     self.paidNoParentPassword = None
     self.noSecretChatAtAll = None
     self.noSecretChatAtAllAndNoWhitelist = None
     self.noSecretChatWarning = None
     self.activateChatGui = None
     self.chatMoreInfo = None
     self.chatPrivacyPolicy = None
     self.secretChatActivated = None
     self.problemActivatingChat = None
     self.leaveToPayDialog = None
     self.fsm = ClassicFSM.ClassicFSM('chatManager', [
         State.State('off', self.enterOff, self.exitOff),
         State.State('mainMenu', self.enterMainMenu, self.exitMainMenu),
         State.State('speedChat', self.enterSpeedChat, self.exitSpeedChat),
         State.State('normalChat', self.enterNormalChat,
                     self.exitNormalChat),
         State.State('whisper', self.enterWhisper, self.exitWhisper),
         State.State('whisperChat', self.enterWhisperChat,
                     self.exitWhisperChat),
         State.State('whisperChatPlayer', self.enterWhisperChatPlayer,
                     self.exitWhisperChatPlayer),
         State.State('whisperSpeedChat', self.enterWhisperSpeedChat,
                     self.exitWhisperSpeedChat),
         State.State('whisperSpeedChatPlayer',
                     self.enterWhisperSpeedChatPlayer,
                     self.exitWhisperSpeedChatPlayer),
         State.State('openChatWarning', self.enterOpenChatWarning,
                     self.exitOpenChatWarning),
         State.State('leaveToPayDialog', self.enterLeaveToPayDialog,
                     self.exitLeaveToPayDialog),
         State.State('unpaidChatWarning', self.enterUnpaidChatWarning,
                     self.exitUnpaidChatWarning),
         State.State('noSecretChatAtAll', self.enterNoSecretChatAtAll,
                     self.exitNoSecretChatAtAll),
         State.State('noSecretChatAtAllAndNoWhitelist',
                     self.enterNoSecretChatAtAllAndNoWhitelist,
                     self.exitNoSecretChatAtAllAndNoWhitelist),
         State.State('noSecretChatWarning', self.enterNoSecretChatWarning,
                     self.exitNoSecretChatWarning),
         State.State('noFriendsWarning', self.enterNoFriendsWarning,
                     self.exitNoFriendsWarning),
         State.State('otherDialog', self.enterOtherDialog,
                     self.exitOtherDialog),
         State.State('activateChat', self.enterActivateChat,
                     self.exitActivateChat),
         State.State('chatMoreInfo', self.enterChatMoreInfo,
                     self.exitChatMoreInfo),
         State.State('chatPrivacyPolicy', self.enterChatPrivacyPolicy,
                     self.exitChatPrivacyPolicy),
         State.State('secretChatActivated', self.enterSecretChatActivated,
                     self.exitSecretChatActivated),
         State.State('problemActivatingChat',
                     self.enterProblemActivatingChat,
                     self.exitProblemActivatingChat),
         State.State('whiteListOpenChat', self.enterWhiteListOpenChat,
                     self.exitWhiteListOpenChat),
         State.State('whiteListAvatarChat', self.enterWhiteListAvatarChat,
                     self.exitWhiteListAvatarChat),
         State.State('whiteListPlayerChat', self.enterWhiteListPlayerChat,
                     self.exitWhiteListPlayerChat),
         State.State('trueFriendTeaserPanel',
                     self.enterTrueFriendTeaserPanel,
                     self.exitTrueFriendTeaserPanel)
     ], 'off', 'off')
     self.fsm.enterInitialState()
Пример #24
0
 def __init__(self, avId, avName, avDisableName):
     DirectFrame.__init__(self, pos=(0.3, 0.1, 0.65), image_color=ToontownGlobals.GlobalDialogColor, image_scale=(1.0, 1.0, 0.6), text='', text_wordwrap=13.5, text_scale=0.06, text_pos=(0.0, 0.18))
     messenger.send('releaseDirector')
     self['image'] = DGG.getDefaultDialogGeom()
     self.avId = avId
     self.avName = avName
     self.avDisableName = avDisableName
     self.fsm = ClassicFSM.ClassicFSM('ToonTeleportPanel', [
         State.State('off',
             self.enterOff,
             self.exitOff),
         State.State('begin',
             self.enterBegin,
             self.exitBegin),
         State.State('checkAvailability',
             self.enterCheckAvailability,
             self.exitCheckAvailability),
         State.State('notAvailable',
             self.enterNotAvailable,
             self.exitNotAvailable),
         State.State('ignored',
             self.enterIgnored,
             self.exitIgnored),
         State.State('notOnline',
             self.enterNotOnline,
             self.exitNotOnline),
         State.State('wentAway',
             self.enterWentAway,
             self.exitWentAway),
         State.State('self',
             self.enterSelf,
             self.exitSelf),
         State.State('unknownHood',
             self.enterUnknownHood,
             self.exitUnknownHood),
         State.State('unavailableHood',
             self.enterUnavailableHood,
             self.exitUnavailableHood),
         State.State('otherShard',
             self.enterOtherShard,
             self.exitOtherShard),
         State.State('teleport',
             self.enterTeleport,
             self.exitTeleport)],
         'off', 'off')
     from toontown.friends import FriendInviter
     FriendInviter.hideFriendInviter()
     ToonAvatarDetailPanel.hideAvatarDetail()
     buttons = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui')
     self.bOk = DirectButton(self, image=(buttons.find('**/ChtBx_OKBtn_UP'), buttons.find('**/ChtBx_OKBtn_DN'), buttons.find('**/ChtBx_OKBtn_Rllvr')), relief=None, text=TTLocalizer.TeleportPanelOK, text_scale=0.05, text_pos=(0.0, -0.1), pos=(0.0, 0.0, -0.1), command=self.__handleOk)
     self.bOk.hide()
     self.bCancel = DirectButton(self, image=(buttons.find('**/CloseBtn_UP'), buttons.find('**/CloseBtn_DN'), buttons.find('**/CloseBtn_Rllvr')), relief=None, text=TTLocalizer.TeleportPanelCancel, text_scale=0.05, text_pos=(0.0, -0.1), pos=(0.0, 0.0, -0.1), command=self.__handleCancel)
     self.bCancel.hide()
     self.bYes = DirectButton(self, image=(buttons.find('**/ChtBx_OKBtn_UP'), buttons.find('**/ChtBx_OKBtn_DN'), buttons.find('**/ChtBx_OKBtn_Rllvr')), relief=None, text=TTLocalizer.TeleportPanelYes, text_scale=0.05, text_pos=(0.0, -0.1), pos=(-0.15, 0.0, -0.15), command=self.__handleYes)
     self.bYes.hide()
     self.bNo = DirectButton(self, image=(buttons.find('**/CloseBtn_UP'), buttons.find('**/CloseBtn_DN'), buttons.find('**/CloseBtn_Rllvr')), relief=None, text=TTLocalizer.TeleportPanelNo, text_scale=0.05, text_pos=(0.0, -0.1), pos=(0.15, 0.0, -0.15), command=self.__handleNo)
     self.bNo.hide()
     buttons.removeNode()
     self.accept(self.avDisableName, self.__handleDisableAvatar)
     self.show()
     self.fsm.enterInitialState()
     self.fsm.request('begin')
     return
Пример #25
0
    def __init__(self, cr):
        NodePath.__init__(self, "DistributedChineseCheckers")
        DistributedNode.DistributedNode.__init__(self, cr)
        self.cr = cr

        self.reparentTo(render)
        self.boardNode = loader.loadModel(
            "phase_6/models/golf/checker_game.bam")
        self.boardNode.reparentTo(self)
        #self.boardNode.setZ(2.85)
        #self.boardNode.setZ(3.5)
        #self.boardNode.setZ(0.3)
        #self.boardNode.setZ(self.getZ())

        self.board = ChineseCheckersBoard()

        self.playerTags = render.attachNewNode("playerTags")
        self.playerTagList = []

        #game variables
        self.exitButton = None
        self.inGame = False
        self.waiting = True
        self.startButton = None
        self.playerNum = None
        self.turnText = None
        self.isMyTurn = False
        self.wantTimer = True
        self.leaveButton = None
        self.screenText = None
        self.turnText = None
        self.exitButton = None
        self.numRandomMoves = 0
        self.blinker = Sequence()
        self.playersTurnBlinker = Sequence()
        self.yourTurnBlinker = Sequence()
        self.moveList = []
        self.mySquares = []
        self.playerSeats = None
        ###self.playerTags = [None, None, None, None, None, None

        #Mouse picking required stuff
        self.accept('mouse1', self.mouseClick)
        self.traverser = base.cTrav
        self.pickerNode = CollisionNode('mouseRay')
        self.pickerNP = camera.attachNewNode(self.pickerNode)
        self.pickerNode.setFromCollideMask(ToontownGlobals.WallBitmask)
        self.pickerRay = CollisionRay()
        self.pickerNode.addSolid(self.pickerRay)
        self.myHandler = CollisionHandlerQueue()
        self.traverser.addCollider(self.pickerNP, self.myHandler)

        self.buttonModels = loader.loadModel(
            "phase_3.5/models/gui/inventory_gui")
        self.upButton = self.buttonModels.find("**//InventoryButtonUp")
        self.downButton = self.buttonModels.find("**/InventoryButtonDown")
        self.rolloverButton = self.buttonModels.find(
            "**/InventoryButtonRollover")

        self.clockNode = ToontownTimer()
        self.clockNode.setPos(1.16, 0, -0.83)
        self.clockNode.setScale(0.3)
        self.clockNode.hide()

        #[0] GREEN [1] YELLOW [2] PURPLE [3] BLUE [4] PINK [5] RED
        self.playerColors = [
            Vec4(0, .90, 0, 1),
            Vec4(.9, .9, 0, 1),
            Vec4(.45, 0, .45, 1),
            Vec4(.2, .4, .8, 1),
            Vec4(1, .45, 1, 1),
            Vec4(.8, 0, 0, 1)
        ]
        self.tintConstant = Vec4(.25, .25, .25, 0)
        self.ghostConstant = Vec4(0, 0, 0, .5)

        #starting positions are used to check and see if a player has gone into
        #his opposing players starting position, thus to tell if he won.
        self.startingPositions = [
            [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
            [10, 11, 12, 13, 23, 24, 25, 35, 36, 46],
            [65, 75, 76, 86, 87, 88, 98, 99, 100, 101],
            [111, 112, 113, 114, 115, 116, 117, 118, 119, 120],
            [74, 84, 85, 95, 96, 97, 107, 108, 109, 110],
            [19, 20, 21, 22, 32, 33, 34, 44, 45, 55]
        ]
        self.nonOpposingPositions = []

        self.knockSound = base.loadSfx("phase_5/audio/sfx/GUI_knock_1.mp3")
        self.clickSound = base.loadSfx(
            "phase_3/audio/sfx/GUI_balloon_popup.mp3")
        self.moveSound = base.loadSfx("phase_6/audio/sfx/CC_move.mp3")
        self.accept('stoppedAsleep', self.handleSleep)

        #base.setCellsAvailable(base.leftCells +
        #[base.bottomCells[0]], 0)

        #base.setCellsAvailable(base.bottomCells,0)

        #######################
        #Fsm and State Data
        from direct.fsm import ClassicFSM, State
        self.fsm = ClassicFSM.ClassicFSM(
            'ChineseCheckers',
            [
                State.State('waitingToBegin', self.enterWaitingToBegin,
                            self.exitWaitingToBegin, ['playing', 'gameOver']),
                State.State('playing', self.enterPlaying, self.exitPlaying,
                            ['gameOver']),
                State.State('gameOver', self.enterGameOver, self.exitGameOver,
                            ['waitingToBegin'])
            ],
            # Initial State
            'waitingToBegin',
            # Final State
            'waitingToBegin',
        )

        #########################
        #Set up the Board Locators
        ##
        x = self.boardNode.find("**/locators")
        #set up the locator list so we can mess with it
        self.locatorList = x.getChildren()
        #tag the locators for "picking" ingame
        #also add colision spheres for movement
        tempList = []
        for x in range(0, 121):
            self.locatorList[x].setTag("GamePeiceLocator", "%d" % x)
            tempList.append(self.locatorList[x].attachNewNode(
                CollisionNode("picker%d" % x)))
            tempList[x].node().addSolid(CollisionSphere(0, 0, 0, .115))
        for z in self.locatorList:
            y = loader.loadModel("phase_6/models/golf/checker_marble.bam")
            z.setColor(0, 0, 0, 0)
            y.reparentTo(z)
Пример #26
0
 def __init__(self, cr):
     DistributedMinigame.__init__(self, cr)
     self.gameFSM = ClassicFSM.ClassicFSM('DistributedCatchGame', [State.State('off', self.enterOff, self.exitOff, ['play']), State.State('play', self.enterPlay, self.exitPlay, ['cleanup']), State.State('cleanup', self.enterCleanup, self.exitCleanup, [])], 'off', 'cleanup')
     self.addChildGameFSM(self.gameFSM)
     self.setUsesSmoothing()
     self.setUsesLookAround()
 def __init__(self, avId, avName, avDisableName):
     self.wantPlayerFriends = config.GetBool('want-player-friends', 0)
     DirectFrame.__init__(self,
                          pos=(-1.033, 0.1, -0.35),
                          parent=base.a2dTopRight,
                          image_color=GlobalDialogColor,
                          image_scale=(1.0, 1.0, 0.6),
                          text='',
                          text_wordwrap=TTLocalizer.FIdirectFrameWordwrap,
                          text_scale=TTLocalizer.FIdirectFrame,
                          text_pos=TTLocalizer.FIdirectFramePos)
     self['image'] = DGG.getDefaultDialogGeom()
     self.avId = avId
     self.toonName = avName
     avatar = base.cr.doId2do.get(self.avId)
     self.playerId = None
     self.playerName = None
     if avatar:
         self.playerId = avatar.DISLid
         self.playerName = avatar.DISLname + ' ' + str(avatar.DISLid)
     self.avDisableName = avDisableName
     self.playerFriend = 0
     self.fsm = ClassicFSM.ClassicFSM('FriendInviter', [
         State.State('off', self.enterOff, self.exitOff),
         State.State('getNewFriend', self.enterGetNewFriend,
                     self.exitGetNewFriend),
         State.State('begin', self.enterBegin, self.exitBegin),
         State.State('check', self.enterCheck, self.exitCheck),
         State.State('tooMany', self.enterTooMany, self.exitTooMany),
         State.State('checkAvailability', self.enterCheckAvailability,
                     self.exitCheckAvailability),
         State.State('notAvailable', self.enterNotAvailable,
                     self.exitNotAvailable),
         State.State('notAcceptingFriends', self.enterNotAcceptingFriends,
                     self.exitNotAcceptingFriends),
         State.State('wentAway', self.enterWentAway, self.exitWentAway),
         State.State('already', self.enterAlready, self.exitAlready),
         State.State('askingCog', self.enterAskingCog, self.exitAskingCog),
         State.State('askingPet', self.enterAskingPet, self.exitAskingPet),
         State.State('endFriendship', self.enterEndFriendship,
                     self.exitEndFriendship),
         State.State('friendsNoMore', self.enterFriendsNoMore,
                     self.exitFriendsNoMore),
         State.State('self', self.enterSelf, self.exitSelf),
         State.State('ignored', self.enterIgnored, self.exitIgnored),
         State.State('asking', self.enterAsking, self.exitAsking),
         State.State('yes', self.enterYes, self.exitYes),
         State.State('no', self.enterNo, self.exitNo),
         State.State('otherTooMany', self.enterOtherTooMany,
                     self.exitOtherTooMany),
         State.State('maybe', self.enterMaybe, self.exitMaybe),
         State.State('down', self.enterDown, self.exitDown),
         State.State('cancel', self.enterCancel, self.exitCancel)
     ], 'off', 'off')
     self.context = None
     from toontown.toon import ToonAvatarDetailPanel
     ToonTeleportPanel.hideTeleportPanel()
     ToonAvatarDetailPanel.hideAvatarDetail()
     buttons = loader.loadModel('phase_3/models/gui/dialog_box_buttons_gui')
     gui = loader.loadModel('phase_3.5/models/gui/avatar_panel_gui')
     self.bOk = DirectButton(self,
                             image=(buttons.find('**/ChtBx_OKBtn_UP'),
                                    buttons.find('**/ChtBx_OKBtn_DN'),
                                    buttons.find('**/ChtBx_OKBtn_Rllvr')),
                             relief=None,
                             text=OTPLocalizer.FriendInviterOK,
                             text_scale=0.05,
                             text_pos=(0.0, -0.1),
                             pos=(0.0, 0.0, -0.1),
                             command=self.__handleOk)
     self.bOk.hide()
     self.bCancel = DirectButton(self,
                                 image=(buttons.find('**/CloseBtn_UP'),
                                        buttons.find('**/CloseBtn_DN'),
                                        buttons.find('**/CloseBtn_Rllvr')),
                                 relief=None,
                                 text=OTPLocalizer.FriendInviterCancel,
                                 text_scale=0.05,
                                 text_pos=(0.0, -0.1),
                                 pos=TTLocalizer.FIbCancelPos,
                                 command=self.__handleCancel)
     self.bCancel.hide()
     self.bStop = DirectButton(
         self,
         image=(gui.find('**/Ignore_Btn_UP'), gui.find('**/Ignore_Btn_DN'),
                gui.find('**/Ignore_Btn_RLVR')),
         relief=None,
         text=OTPLocalizer.FriendInviterStopBeingFriends,
         text_align=TextNode.ALeft,
         text_scale=TTLocalizer.FIbStop,
         text_pos=TTLocalizer.FIbStopTextPos,
         pos=TTLocalizer.FIbStopPos,
         command=self.__handleStop)
     self.bStop.hide()
     self.bYes = DirectButton(self,
                              image=(buttons.find('**/ChtBx_OKBtn_UP'),
                                     buttons.find('**/ChtBx_OKBtn_DN'),
                                     buttons.find('**/ChtBx_OKBtn_Rllvr')),
                              relief=None,
                              text=OTPLocalizer.FriendInviterYes,
                              text_scale=0.05,
                              text_pos=(0.0, -0.1),
                              pos=TTLocalizer.FIbYesPos,
                              command=self.__handleYes)
     self.bYes.hide()
     self.bNo = DirectButton(self,
                             image=(buttons.find('**/CloseBtn_UP'),
                                    buttons.find('**/CloseBtn_DN'),
                                    buttons.find('**/CloseBtn_Rllvr')),
                             relief=None,
                             text=OTPLocalizer.FriendInviterNo,
                             text_scale=0.05,
                             text_pos=(0.0, -0.1),
                             pos=(0.15, 0.0, -0.1),
                             command=self.__handleNo)
     self.bNo.hide()
     self.bToon = DirectButton(self,
                               image=(buttons.find('**/ChtBx_OKBtn_UP'),
                                      buttons.find('**/ChtBx_OKBtn_DN'),
                                      buttons.find('**/ChtBx_OKBtn_Rllvr')),
                               relief=None,
                               text=TTLocalizer.FriendInviterToon,
                               text_scale=0.05,
                               text_pos=(0.0, -0.1),
                               pos=(-0.35, 0.0, -0.05),
                               command=self.__handleToon)
     toonText = DirectLabel(parent=self,
                            relief=None,
                            pos=Vec3(0.35, 0, -0.2),
                            text=TTLocalizer.FriendInviterToonFriendInfo,
                            text_fg=(0, 0, 0, 1),
                            text_pos=(0, 0),
                            text_scale=0.045,
                            text_align=TextNode.ACenter)
     toonText.reparentTo(self.bToon.stateNodePath[2])
     self.bToon.hide()
     self.bPlayer = DirectButton(
         self,
         image=(buttons.find('**/ChtBx_OKBtn_UP'),
                buttons.find('**/ChtBx_OKBtn_DN'),
                buttons.find('**/ChtBx_OKBtn_Rllvr')),
         relief=None,
         text=TTLocalizer.FriendInviterPlayer,
         text_scale=0.05,
         text_pos=(0.0, -0.1),
         pos=(0.0, 0.0, -0.05),
         command=self.__handlePlayer)
     playerText = DirectLabel(
         parent=self,
         relief=None,
         pos=Vec3(0, 0, -0.2),
         text=TTLocalizer.FriendInviterPlayerFriendInfo,
         text_fg=(0, 0, 0, 1),
         text_pos=(0, 0),
         text_scale=0.045,
         text_align=TextNode.ACenter)
     playerText.reparentTo(self.bPlayer.stateNodePath[2])
     self.bPlayer.hide()
     buttons.removeNode()
     gui.removeNode()
     self.fsm.enterInitialState()
     if self.avId == None:
         self.fsm.request('getNewFriend')
     else:
         self.fsm.request('begin')
     return
Пример #28
0
    def __init__(self, parentFSM, doneEvent):
        """__init__(self, ClassicFSM, string)
        PlayGame constructor: create a play game ClassicFSM
        """
        StateData.StateData.__init__(self, doneEvent)
        self.place = None
        self.fsm = ClassicFSM.ClassicFSM(
            'PlayGame',
            [
                State.State('start', self.enterStart, self.exitStart,
                            ['quietZone']),
                State.State(
                    'quietZone', self.enterQuietZone, self.exitQuietZone, [
                        'TTHood', 'DDHood', 'BRHood', 'MMHood', 'DGHood',
                        'DLHood', 'GSHood', 'OZHood', 'GZHood', 'SellbotHQ',
                        'CashbotHQ', 'LawbotHQ', 'BossbotHQ', 'TutorialHood',
                        'EstateHood', 'PartyHood'
                    ]),
                State.State('TTHood', self.enterTTHood, self.exitTTHood,
                            ['quietZone']),
                State.State('DDHood', self.enterDDHood, self.exitDDHood,
                            ['quietZone']),
                State.State('BRHood', self.enterBRHood, self.exitBRHood,
                            ['quietZone']),
                State.State('MMHood', self.enterMMHood, self.exitMMHood,
                            ['quietZone']),
                State.State('DGHood', self.enterDGHood, self.exitDGHood,
                            ['quietZone']),
                State.State('DLHood', self.enterDLHood, self.exitDLHood,
                            ['quietZone']),
                State.State('GSHood', self.enterGSHood, self.exitGSHood,
                            ['quietZone']),
                State.State('OZHood', self.enterOZHood, self.exitOZHood,
                            ['quietZone']),
                State.State('GZHood', self.enterGZHood, self.exitGZHood,
                            ['quietZone']),
                State.State('BossbotHQ', self.enterBossbotHQ,
                            self.exitBossbotHQ, ['quietZone']),
                State.State('SellbotHQ', self.enterSellbotHQ,
                            self.exitSellbotHQ, ['quietZone']),
                State.State('CashbotHQ', self.enterCashbotHQ,
                            self.exitCashbotHQ, ['quietZone']),
                State.State('LawbotHQ', self.enterLawbotHQ, self.exitLawbotHQ,
                            ['quietZone']),
                State.State('TutorialHood', self.enterTutorialHood,
                            self.exitTutorialHood, ['quietZone']),
                State.State('EstateHood', self.enterEstateHood,
                            self.exitEstateHood, ['quietZone']),
                State.State('PartyHood', self.enterPartyHood,
                            self.exitPartyHood, ['quietZone']),
            ],
            # Initial State
            'start',
            # Final State
            'start',
        )

        self.fsm.enterInitialState()

        self.parentFSM = parentFSM
        # Add this state machine to the parent fsm playGame state
        self.parentFSM.getStateNamed("playGame").addChild(self.fsm)
        # Create the state datas for each hood
        self.hoodDoneEvent = "hoodDone"
        self.hood = None
Пример #29
0
    def __init__(self, cr):
        NodePath.__init__(self, 'DistributedCheckers')
        DistributedNode.DistributedNode.__init__(self, cr)
        self.cr = cr
        self.reparentTo(render)
        self.boardNode = loader.loadModel(
            'phase_6/models/golf/regular_checker_game.bam')
        self.boardNode.reparentTo(self)
        self.board = CheckersBoard()
        self.exitButton = None
        self.inGame = False
        self.waiting = True
        self.startButton = None
        self.playerNum = None
        self.turnText = None
        self.isMyTurn = False
        self.wantTimer = True
        self.leaveButton = None
        self.screenText = None
        self.turnText = None
        self.exitButton = None
        self.numRandomMoves = 0
        self.blinker = Sequence()
        self.moveList = []
        self.mySquares = []
        self.myKings = []
        self.isRotated = False
        self.accept('mouse1', self.mouseClick)
        self.traverser = base.cTrav
        self.pickerNode = CollisionNode('mouseRay')
        self.pickerNP = camera.attachNewNode(self.pickerNode)
        self.pickerNode.setFromCollideMask(ToontownGlobals.WallBitmask)
        self.pickerRay = CollisionRay()
        self.pickerNode.addSolid(self.pickerRay)
        self.myHandler = CollisionHandlerQueue()
        self.traverser.addCollider(self.pickerNP, self.myHandler)
        self.buttonModels = loader.loadModel(
            'phase_3.5/models/gui/inventory_gui')
        self.upButton = self.buttonModels.find('**//InventoryButtonUp')
        self.downButton = self.buttonModels.find('**/InventoryButtonDown')
        self.rolloverButton = self.buttonModels.find(
            '**/InventoryButtonRollover')
        self.clockNode = ToontownTimer()
        self.clockNode.setPos(1.16, 0, -0.83)
        self.clockNode.setScale(0.3)
        self.clockNode.hide()
        self.playerColors = [Vec4(0, 0, 1, 1), Vec4(0, 1, 0, 1)]
        self.tintConstant = Vec4(0.25, 0.25, 0.25, 0.5)
        self.ghostConstant = Vec4(0, 0, 0, 0.8)
        self.startingPositions = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
                                  [
                                      20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
                                      30, 31
                                  ]]
        self.knockSound = base.loadSfx('phase_5/audio/sfx/GUI_knock_1.ogg')
        self.clickSound = base.loadSfx(
            'phase_3/audio/sfx/GUI_balloon_popup.ogg')
        self.moveSound = base.loadSfx('phase_6/audio/sfx/CC_move.ogg')
        self.accept('stoppedAsleep', self.handleSleep)
        self.fsm = ClassicFSM.ClassicFSM('ChineseCheckers', [
            State.State('waitingToBegin', self.enterWaitingToBegin,
                        self.exitWaitingToBegin, ['playing', 'gameOver']),
            State.State('playing', self.enterPlaying, self.exitPlaying,
                        ['gameOver']),
            State.State('gameOver', self.enterGameOver, self.exitGameOver,
                        ['waitingToBegin'])
        ], 'waitingToBegin', 'waitingToBegin')
        x = self.boardNode.find('**/locator*')
        self.locatorList = x.getChildren()
        tempList = []
        for x in xrange(0, 32):
            self.locatorList[x].setTag('GamePeiceLocator', '%d' % x)
            tempList.append(self.locatorList[x].attachNewNode(
                CollisionNode('picker%d' % x)))
            tempList[x].node().addSolid(CollisionSphere(0, 0, 0, 0.39))

        for z in self.locatorList:
            y = loader.loadModel(
                'phase_6/models/golf/regular_checker_piecewhite.bam')
            y.find('**/checker_k*').hide()
            zz = loader.loadModel(
                'phase_6/models/golf/regular_checker_pieceblack.bam')
            zz.find('**/checker_k*').hide()
            y.reparentTo(z)
            y.hide()
            zz.reparentTo(z)
            zz.hide()

        return
Пример #30
0
    def __init__(self, air, parent, name, x, y, z, h, p, r):
        DistributedNodeAI.__init__(self, air)
        self.name = name
        self.air = air

        self.setPos(x, y, z)
        self.setHpr(h, p, r)

        self.myPos = (x, y, z)
        self.myHpr = (h, p, r)
        self.board = [[0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0],
                      [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0],
                      [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]]

        self._parent = self.air.doId2do[parent]
        self.parentDo = parent
        self.wantStart = []
        self.playersPlaying = []
        self.playersSitting = 0
        self.playersTurn = 1
        self.movesMade = 0
        self.playerNum = 1
        self.winDirection = None

        #players game positions (separate from where they are sitting down
        self.playersGamePos = [None, None]

        self.wantTimer = True
        self.timerEnd = 0
        self.turnEnd = 0

        self.playersObserving = []
        #Arbitrary numbers - can Adjust to feel
        self.winLaffPoints = 20
        self.movesRequiredToWin = 10

        self.zoneId = self.air.allocateZone()
        self.generateOtpObject(
            air.districtId,
            self.zoneId,
            optionalFields=["setX", "setY", "setZ", "setH", "setP", "setR"])
        #sets the ZoneId in the parent table so when people sit down they know what zone to add
        #interest to when they sit down
        self._parent.setCheckersZoneId(self.zoneId)

        #parent.b_setCurrentGameId(self.doId)

        #Starting indexes inside of board for setting starting positions

        self.timerStart = None

        self.fsm = ClassicFSM.ClassicFSM(
            'Checkers',
            [
                State.State('waitingToBegin', self.enterWaitingToBegin,
                            self.exitWaitingToBegin, ['playing']),
                State.State('playing', self.enterPlaying, self.exitPlaying,
                            ['gameOver']),
                State.State('gameOver', self.enterGameOver, self.exitGameOver,
                            ['waitingToBegin'])
            ],
            #start state
            'waitingToBegin',
            #final state
            'waitingToBegin',
        )

        self.fsm.enterInitialState()