def weaponHitObject(self, entry):
     if not entry.hasSurfacePoint() or not entry.hasInto():
         return
     if not entry.getInto().isTangible():
         return
     hitObject = entry.getIntoNodePath()
     objType = hitObject.getNetTag('objType')
     if not objType:
         return
     objType = int(objType)
     if objType == PiratesGlobals.COLL_SEA and base.cr.wantSpecialEffects:
         pos = entry.getSurfacePoint(render)
         if base.cr.activeWorld.getWater():
             entryWaterHeight = base.cr.activeWorld.getWater().calcHeight(pos[0], pos[1]) + 7.0
         else:
             entryWaterHeight = pos[2]
         splashEffect = SmallSplash.getEffect()
         if splashEffect:
             splashEffect.reparentTo(render)
             splashEffect.setPos(pos[0], pos[1], entryWaterHeight)
             splashEffect.play()
         self.cnode.setFromCollideMask(PiratesGlobals.TargetBitmask.allOff())
     elif objType == PiratesGlobals.COLL_LAND and base.cr.wantSpecialEffects:
         pos = entry.getSurfacePoint(render)
         dustCloudEffect = DustCloud.getEffect()
         if dustCloudEffect:
             dustCloudEffect.wrtReparentTo(render)
             dustCloudEffect.setPos(pos)
             dustCloudEffect.play()
         self.cnode.setFromCollideMask(PiratesGlobals.TargetBitmask.allOff())
Exemple #2
0
    def weaponHitObject(self, entry):
        if not entry.hasSurfacePoint() or not entry.hasInto():
            return None

        if not entry.getInto().isTangible():
            return None

        hitObject = entry.getIntoNodePath()
        objType = hitObject.getNetTag("objType")
        if not objType:
            return None

        objType = int(objType)
        if objType == PiratesGlobals.COLL_SEA and base.cr.wantSpecialEffects:
            pos = entry.getSurfacePoint(render)
            if base.cr.activeWorld.getWater():
                entryWaterHeight = base.cr.activeWorld.getWater().calcHeight(pos[0], pos[1]) + 7.0
            else:
                entryWaterHeight = pos[2]
            splashEffect = SmallSplash.getEffect()
            if splashEffect:
                splashEffect.reparentTo(render)
                splashEffect.setPos(pos[0], pos[1], entryWaterHeight)
                splashEffect.play()

            self.cnode.setFromCollideMask(PiratesGlobals.TargetBitmask.allOff())
        elif objType == PiratesGlobals.COLL_LAND and base.cr.wantSpecialEffects:
            pos = entry.getSurfacePoint(render)
            dustCloudEffect = DustCloud.getEffect()
            if dustCloudEffect:
                dustCloudEffect.wrtReparentTo(render)
                dustCloudEffect.setPos(pos)
                dustCloudEffect.play()

            self.cnode.setFromCollideMask(PiratesGlobals.TargetBitmask.allOff())
    def groundHitEffect(self, hitObject, pos, skillId, ammoSkillId):
        if ammoSkillId == InventoryType.CannonRoundShot and ammoSkillId == InventoryType.CannonChainShot and ammoSkillId == InventoryType.CannonBullet and ammoSkillId == InventoryType.CannonSkull or ammoSkillId == InventoryType.CannonBarShot:
            if self.cr:
                attacker = self.cr.doId2do.get(self.attackerId)
            else:
                attacker = None
            if attacker:
                pass
            unlimited = bool(attacker.isLocal())
            if base.options.getSpecialEffectsSetting(
            ) >= base.options.SpecialEffectsLow:
                cannonExplosion = CannonExplosion.getEffect(unlimited)
                if cannonExplosion:
                    cannonExplosion.wrtReparentTo(base.effectsRoot)
                    cannonExplosion.setScale(1.0)
                    cannonExplosion.setPos(hitObject, pos)
                    cannonExplosion.play()

                rockShowerEffect = RockShower.getEffect(unlimited)
                if rockShowerEffect:
                    rockShowerEffect.wrtReparentTo(hitObject)
                    rockShowerEffect.setPos(hitObject, pos)
                    rockShowerEffect.play()

            if base.options.getSpecialEffectsSetting(
            ) >= base.options.SpecialEffectsMedium:
                dustCloudEffect = DustCloud.getEffect(unlimited)
                if dustCloudEffect:
                    dustCloudEffect.wrtReparentTo(hitObject)
                    dustCloudEffect.setPos(hitObject, pos)
                    dustCloudEffect.play()

                shockwaveRingEffect = ShockwaveRing.getEffect(unlimited)
                if shockwaveRingEffect:
                    shockwaveRingEffect.wrtReparentTo(base.effectsRoot)
                    shockwaveRingEffect.size = 40
                    shockwaveRingEffect.setPos(hitObject, pos)
                    shockwaveRingEffect.play()

                cameraShakerEffect = CameraShaker()
                cameraShakerEffect.wrtReparentTo(hitObject)
                cameraShakerEffect.setPos(hitObject, pos)
                cameraShakerEffect.shakeSpeed = 0.059999999999999998
                cameraShakerEffect.shakePower = 6.0
                cameraShakerEffect.numShakes = 3
                cameraShakerEffect.scalePower = 1
                cameraShakerEffect.play(80.0)

            if base.options.getSpecialEffectsSetting(
            ) >= base.options.SpecialEffectsHigh:
                dirtClodEffect = DirtClod.getEffect(unlimited)
                if dirtClodEffect:
                    dirtClodEffect.wrtReparentTo(hitObject)
                    dirtClodEffect.setPos(hitObject, pos)
                    dirtClodEffect.play()

        else:
            self.basicHitEffect(hitObject, pos, skillId, ammoSkillId)
 def groundHitEffect(self, hitObject, pos, skillId, ammoSkillId):
     if ammoSkillId == InventoryType.CannonRoundShot and ammoSkillId == InventoryType.CannonChainShot and ammoSkillId == InventoryType.CannonBullet and ammoSkillId == InventoryType.CannonSkull or ammoSkillId == InventoryType.CannonBarShot:
         if self.cr:
             attacker = self.cr.doId2do.get(self.attackerId)
         else:
             attacker = None
         if attacker:
             pass
         unlimited = bool(attacker.isLocal())
         if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsLow:
             cannonExplosion = CannonExplosion.getEffect(unlimited)
             if cannonExplosion:
                 cannonExplosion.wrtReparentTo(base.effectsRoot)
                 cannonExplosion.setScale(1.0)
                 cannonExplosion.setPos(hitObject, pos)
                 cannonExplosion.play()
             
             rockShowerEffect = RockShower.getEffect(unlimited)
             if rockShowerEffect:
                 rockShowerEffect.wrtReparentTo(hitObject)
                 rockShowerEffect.setPos(hitObject, pos)
                 rockShowerEffect.play()
             
         
         if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsMedium:
             dustCloudEffect = DustCloud.getEffect(unlimited)
             if dustCloudEffect:
                 dustCloudEffect.wrtReparentTo(hitObject)
                 dustCloudEffect.setPos(hitObject, pos)
                 dustCloudEffect.play()
             
             shockwaveRingEffect = ShockwaveRing.getEffect(unlimited)
             if shockwaveRingEffect:
                 shockwaveRingEffect.wrtReparentTo(base.effectsRoot)
                 shockwaveRingEffect.size = 40
                 shockwaveRingEffect.setPos(hitObject, pos)
                 shockwaveRingEffect.play()
             
             cameraShakerEffect = CameraShaker()
             cameraShakerEffect.wrtReparentTo(hitObject)
             cameraShakerEffect.setPos(hitObject, pos)
             cameraShakerEffect.shakeSpeed = 0.059999999999999998
             cameraShakerEffect.shakePower = 6.0
             cameraShakerEffect.numShakes = 3
             cameraShakerEffect.scalePower = 1
             cameraShakerEffect.play(80.0)
         
         if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsHigh:
             dirtClodEffect = DirtClod.getEffect(unlimited)
             if dirtClodEffect:
                 dirtClodEffect.wrtReparentTo(hitObject)
                 dirtClodEffect.setPos(hitObject, pos)
                 dirtClodEffect.play()
             
         
     else:
         self.basicHitEffect(hitObject, pos, skillId, ammoSkillId)