def disable(self):
        getBase().tentacles.remove(self)
        if self.krakenRequest:
            self.cr.relatedObjectMgr.abortRequest(self.krakenRequest)
            self.krakenRequest = None

        if self.avRequest:
            self.cr.relatedObjectMgr.abortRequest(self.avRequest)
            self.avRequest = None

        if self.shipRequest:
            self.cr.relatedObjectMgr.abortRequest(self.shipRequest)
            self.shipRequest = None

        self.avatarId = 0
        taskMgr.remove(self.uniqueName('grabDelay'))
        kraken = self.getKraken()
        if kraken:
            kraken.removeGrabberTentacle(self.doId)

        self.ignore('f8')
        self.ignore(self.uniqueName('enterRange'))
        self.ignore(self.uniqueName('exitRange'))
        self.creature.disable()
        self.slideBase.detachNode()
        if self.rangeCollisions:
            self.rangeCollisions.detachNode()
            self.rangeCollisions = None

        DistributedCreature.disable(self)
 def setupCreature(self, avatarType):
     DistributedCreature.setupCreature(self, avatarType)
     self.slideBase = NodePath('slideBase')
     self.slider = self.slideBase.attachNewNode('slider')
     self.creature.reparentTo(self.slider)
     self.initializeMonstrousTags(self.creature)
     self.creature.getGeomNode().hide(OTPRender.ShadowCameraBitmask)
Example #3
0
 def __init__(self, cr):
     DistributedCreature.__init__(self, cr)
     self.shipRequest = None
     self.emergeIval = None
     self.moveTask = None
     self.rockingDampen = 0
     self.emerged = 0
     self.emergeIval = None
 def delete(self):
     self.creature.delete()
     self.krakenId = 0
     self.locatorId = -1
     self.slider = None
     self.slideBase = None
     self.creature = None
     DistributedCreature.delete(self)
    def announceGenerate(self):
        DistributedCreature.announceGenerate(self)
        self.accept('f8', self.grabAvatar, extraArgs = [
            localAvatar])
        self.creature.hide()
        self.accept(self.uniqueName('enterRange'), self.withinRange)
        self.accept(self.uniqueName('exitRange'), self.withoutRange)
        self.creature.setPythonTag('tentacle', self)
        if not hasattr(base, 'tentacles'):
            getBase().tentacles = []

        getBase().tentacles.append(self)
Example #6
0
 def __init__(self, cr):
     DistributedCreature.__init__(self, cr)
     self.krakenId = 0
     self.krakenRequest = None
     self.avatarId = 0
     self.avRequest = None
     self.shipRequest = None
     self.moveTask = None
     self.rockingDampen = 0
     self.emerged = 0
     self.emergeIval = None
     self.locatorId = -1
     self.rangeCollisions = None
     self.collisionsSet = False
 def __init__(self, cr):
     DistributedCreature.__init__(self, cr)
     self.krakenId = 0
     self.krakenRequest = None
     self.avatarId = 0
     self.avRequest = None
     self.shipRequest = None
     self.moveTask = None
     self.rockingDampen = 0
     self.emerged = 0
     self.emergeIval = None
     self.locatorId = -1
     self.rangeCollisions = None
     self.collisionsSet = False
 def __init__(self, cr):
     DistributedCreature.__init__(self, cr)
     self.body = loader.loadModel("models/char/live_kraken_zero")
     self.body.find("**/kraken_high_tentacles").hide()
     self.body.reparentTo(self)
     self.body.setZ(-140)
     self.body.setH(90)
     self.targetShipId = None
     self.grabberTentacles = {}
     self.holderTentacles = {}
     self.doomTentacles = {}
     self.shipRomRequest = None
     self.dampen = [0, 0]
     self.rTask = None
     self.sinkCutsceneIval = None
     self.sinkShipIval = None
     self.sinkEffectsNode = None
     self.submergeInterval = self.body.posInterval(1, (0, 0, -140), (0, 0, -110))
     self.emergeInterval = self.body.posInterval(4, (0, 0, -110), (0, 0, -140))
     getBase().kraken = self
     self.createGameFSM()
Example #9
0
 def __init__(self, cr):
     DistributedCreature.__init__(self, cr)
     self.body = loader.loadModel('models/char/live_kraken_zero')
     self.body.find('**/kraken_high_tentacles').hide()
     self.body.reparentTo(self)
     self.body.setZ(-140)
     self.body.setH(90)
     self.targetShipId = None
     self.grabberTentacles = {}
     self.holderTentacles = {}
     self.doomTentacles = {}
     self.shipRomRequest = None
     self.dampen = [0, 0]
     self.rTask = None
     self.sinkCutsceneIval = None
     self.sinkShipIval = None
     self.sinkEffectsNode = None
     self.submergeInterval = self.body.posInterval(1, (0, 0, -140),
                                                   (0, 0, -110))
     self.emergeInterval = self.body.posInterval(4, (0, 0, -110),
                                                 (0, 0, -140))
     getBase().kraken = self
     self.createGameFSM()
Example #10
0
 def disable(self):
     self.removeBossEffect()
     DistributedCreature.disable(self)
Example #11
0
 def announceGenerate(self):
     DistributedCreature.announceGenerate(self)
     if not self.isInInvasion():
         avType = CreatureTypes[self.avatarType.getNonBossType()]
         self.addBossEffect(avType)
Example #12
0
 def setupCreature(self, avatarType):
     self.loadBossData(self.getUniqueId(), avatarType)
     DistributedCreature.setupCreature(self, avatarType)
Example #13
0
 def __init__(self, cr):
     DistributedCreature.__init__(self, cr)
     Boss.__init__(self, cr)
 def delete(self):
     if getBase().khead == self:
         getBase().khead = None
     
     DistributedCreature.delete(self)
Example #15
0
 def __init__(self, cr):
     DistributedCreature.__init__(self, cr)
     self.krakenId = 0
Example #16
0
 def delete(self):
     DistributedCreature.delete(self)
    def loop(self, *args, **kw):
        if (args or args[0] == 'idle') and kw.get('animName') == 'idle' or kw.get('newAnim') == 'idle':
            kw['restart'] = 0

        DistributedCreature.loop(self, *args, **kw)
Example #18
0
 def announceGenerate(self):
     DistributedCreature.announceGenerate(self)
     getBase().khead = self
 def delete(self):
     DistributedCreature.delete(self)
 def disable(self):
     self.removeBossEffect()
     DistributedCreature.disable(self)
 def announceGenerate(self):
     DistributedCreature.announceGenerate(self)
     if not self.isInInvasion():
         avType = CreatureTypes[self.avatarType.getNonBossType()]
         self.addBossEffect(avType)
 def setupCreature(self, avatarType):
     self.loadBossData(self.getUniqueId(), avatarType)
     DistributedCreature.setupCreature(self, avatarType)
 def __init__(self, cr):
     DistributedCreature.__init__(self, cr)
     Boss.__init__(self, cr)
Example #24
0
    def loop(self, *args, **kw):
        if (args or args[0] == 'idle'
            ) and kw.get('animName') == 'idle' or kw.get('newAnim') == 'idle':
            kw['restart'] = 0

        DistributedCreature.loop(self, *args, **args)
 def __init__(self, cr):
     DistributedCreature.__init__(self, cr)
     self.krakenId = 0
 def setupCreature(self, avatarType):
     DistributedCreature.setupCreature(self, avatarType)
Example #27
0
 def setupCreature(self, avatarType):
     DistributedCreature.setupCreature(self, avatarType)
     self.initializeMonstrousTags(self.creature)
     self.creature.getGeomNode().hide(OTPRender.ShadowCameraBitmask)
     self.creature.setupCollisions()
 def __init__(self, cr):
     DistributedCreature.__init__(self, cr, SeaSerpent())
Example #29
0
 def setupCreature(self, avatarType):
     DistributedCreature.setupCreature(self, avatarType)
 def announceGenerate(self):
     DistributedCreature.announceGenerate(self)
     getBase().khead = self
Example #31
0
    def delete(self):
        if getBase().khead == self:
            getBase().khead = None

        DistributedCreature.delete(self)
 def setupCreature(self, avatarType):
     DistributedCreature.setupCreature(self, avatarType)
     self.initializeMonstrousTags(self.creature)
     self.creature.getGeomNode().hide(OTPRender.ShadowCameraBitmask)
     self.creature.setupCollisions()