def blockerHitEffect(self, hitObject, pos, skillId, ammoSkillId): for i in range(random.randint(2, 4)): debrisEffect = RockDebris.getEffect() if debrisEffect: debrisEffect.reparentTo(base.effectsRoot) debrisEffect.setPos(hitObject, pos) debrisEffect.offsetEndPlaneZFrom(hitObject.getZ()) debrisEffect.debris.setScale(random.random() * 3) debrisEffect.radiusDist = 40 debrisEffect.minHeight = 50 debrisEffect.maxHeight = 100 if debrisEffect.testTrajectory(): debrisEffect.play() else: debrisEffect.cleanUpEffect()
def blockerHitEffect(self, hitObject, pos, skillId, ammoSkillId): for i in range(random.randint(2, 4)): debrisEffect = RockDebris.getEffect() if debrisEffect: debrisEffect.reparentTo(base.effectsRoot) debrisEffect.setPos(hitObject, pos) debrisEffect.offsetEndPlaneZFrom(hitObject.getZ()) debrisEffect.debris.setScale(random.random() * 3) debrisEffect.radiusDist = 40 debrisEffect.minHeight = 50 debrisEffect.maxHeight = 100 if debrisEffect.testTrajectory(): debrisEffect.play() else: debrisEffect.cleanUpEffect() debrisEffect.testTrajectory()
def basicHitEffect(self, hitObject, pos, skillId, ammoSkillId): WeaponGlobals = WeaponGlobals import pirates.battle if self.cr: attacker = self.cr.doId2do.get(self.attackerId) aoeRadius = self.cr.battleMgr.getModifiedAttackAreaRadius( attacker, skillId, ammoSkillId) else: attacker = None aoeRadius = 0 if attacker: pass unlimited = bool(attacker.isLocal()) if config.GetBool('show-aoe-radius', 0): s = loader.loadModel('models/misc/smiley') s.reparentTo(render) s.setPos(hitObject, pos) s.setScale(aoeRadius) s.setTransparency(1) s.setColorScale(1.0, 0.5, 0.5, 0.40000000000000002) if ammoSkillId in [ InventoryType.CannonRoundShot, InventoryType.CannonChainShot, InventoryType.CannonBullet, InventoryType.CannonSkull, InventoryType.CannonBarShot, InventoryType.CannonFury, InventoryType.CannonFirebrand, InventoryType.CannonFlamingSkull, InventoryType.CannonThunderbolt ]: hitSfxNames = [ SoundGlobals.SFX_FX_WOOD_IMPACT_01, SoundGlobals.SFX_FX_WOOD_IMPACT_02, SoundGlobals.SFX_FX_WOOD_IMPACT_03, SoundGlobals.SFX_FX_WOOD_IMPACT_04, SoundGlobals.SFX_FX_WOOD_SHATTER_02, SoundGlobals.SFX_FX_WOOD_SHATTER_03 ] sfx = loadSfx(random.choice(hitSfxNames)) base.playSfx(sfx, node=hitObject, cutoff=1500) if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsLow: explosionEffect = ExplosionFlip.getEffect(unlimited) if explosionEffect: explosionEffect.reparentTo(base.effectsRoot) explosionEffect.setPos(hitObject, pos) explosionEffect.setScale(0.80000000000000004) explosionEffect.play() if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsMedium: smokeCloudEffect = SimpleSmokeCloud.getEffect(unlimited) if smokeCloudEffect: smokeCloudEffect.reparentTo(hitObject) smokeCloudEffect.setPos(hitObject, pos) smokeCloudEffect.setEffectScale(1.0) smokeCloudEffect.play() if localAvatar.ship and hitObject == localAvatar.ship: cameraShakerEffect = CameraShaker() cameraShakerEffect.wrtReparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.040000000000000001 cameraShakerEffect.shakePower = 6.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(120.0) if ammoSkillId == InventoryType.CannonExplosive: if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsLow: effect = Explosion.getEffect(unlimited) if effect: effect.wrtReparentTo(hitObject) effect.setPos(hitObject, pos) effect.setEffectScale(1.0) effect.setEffectRadius(aoeRadius / 3.0) effect.play() if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsMedium: for i in range(2): effect = FlamingDebris.getEffect(unlimited) if effect: effect.wrtReparentTo(base.effectsRoot) effect.setPos(hitObject, pos) effect.duration = 4 effect.velocityX = self.projVelocity[i][0] effect.velocityY = self.projVelocity[i][1] effect.play() continue if localAvatar.ship and hitObject == localAvatar.ship: cameraShakerEffect = CameraShaker() cameraShakerEffect.wrtReparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.040000000000000001 cameraShakerEffect.shakePower = 6.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(300.0) if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsHigh: effect = FlamingDebris.getEffect(unlimited) if effect: effect.wrtReparentTo(base.effectsRoot) effect.setPos(hitObject, pos) effect.duration = 4 effect.velocityX = self.projVelocity[i][0] effect.velocityY = self.projVelocity[i][1] effect.play() if ammoSkillId == InventoryType.CannonThunderbolt: if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsLow: effect = LightningStrike.getEffect(unlimited) if effect: effect.wrtReparentTo(base.effectsRoot) effect.setPos(hitObject, pos) effect.play() if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsMedium: flashEffect = FlashEffect() flashEffect.wrtReparentTo(base.effectsRoot) flashEffect.setScale(600) flashEffect.setPos(hitObject, pos) flashEffect.effectColor = Vec4(0.5, 0.80000000000000004, 1, 1) flashEffect.fadeTime = 0.29999999999999999 flashEffect.play() if localAvatar.ship and hitObject == localAvatar.ship: cameraShakerEffect = CameraShaker() cameraShakerEffect.wrtReparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.059999999999999998 cameraShakerEffect.shakePower = 4.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(300.0) if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsHigh: shipSplintersAEffect = ShipSplintersA.getEffect(unlimited) if shipSplintersAEffect: shipSplintersAEffect.wrtReparentTo(hitObject) shipSplintersAEffect.setPos(hitObject, pos) shipSplintersAEffect.play() elif ammoSkillId == InventoryType.CannonFury: flashEffect = FlashEffect() flashEffect.wrtReparentTo(base.effectsRoot) flashEffect.setScale(300) flashEffect.setPos(hitObject, pos) flashEffect.effectColor = Vec4(0.5, 0.80000000000000004, 1, 1) flashEffect.fadeTime = 0.25 flashEffect.play() elif ammoSkillId == InventoryType.GrenadeExplosion: explosionEffect = ExplosionFlip.getEffect(unlimited) if explosionEffect: explosionEffect.reparentTo(base.effectsRoot) explosionEffect.setPos(hitObject, pos) explosionEffect.setScale(1.0) explosionEffect.play() self.playSfx(ammoSkillId, explosionEffect) smokeCloudEffect = SmokeCloud.getEffect(unlimited) if smokeCloudEffect: smokeCloudEffect.reparentTo(hitObject) smokeCloudEffect.setPos(hitObject, pos) smokeCloudEffect.setScale(1.0) smokeCloudEffect.spriteScale = 1.0 smokeCloudEffect.radius = 7.0 smokeCloudEffect.play() if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsMedium: shockwaveRingEffect = ShockwaveRing.getEffect(unlimited) if shockwaveRingEffect: shockwaveRingEffect.reparentTo(base.effectsRoot) shockwaveRingEffect.setPos(hitObject, pos) shockwaveRingEffect.size = aoeRadius * 4 shockwaveRingEffect.play() flashEffect = MuzzleFlash.getEffect(unlimited) if flashEffect: flashEffect.reparentTo(base.effectsRoot) flashEffect.flash.setScale(100) flashEffect.setPos(hitObject, pos) flashEffect.startCol = Vec4(0.69999999999999996, 0.69999999999999996, 0.69999999999999996, 1) flashEffect.fadeTime = 0.20000000000000001 flashEffect.play() cameraShakerEffect = CameraShaker() cameraShakerEffect.reparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.040000000000000001 cameraShakerEffect.shakePower = 6.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(80.0) if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsHigh: rockShower = SmallRockShower.getEffect(unlimited) if rockShower: rockShower.reparentTo(hitObject) rockShower.setPos(hitObject, pos) rockShower.play() elif ammoSkillId == InventoryType.GrenadeShockBomb: explosionEffect = ExplosionFlip.getEffect(unlimited) if explosionEffect: explosionEffect.reparentTo(base.effectsRoot) explosionEffect.setPos(hitObject, pos) explosionEffect.setScale(1.0) explosionEffect.play() self.playSfx(ammoSkillId, explosionEffect) dustRingEffect = DustRing.getEffect(unlimited) if dustRingEffect: dustRingEffect.reparentTo(hitObject) dustRingEffect.setPos(hitObject, pos) dustRingEffect.play() if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsMedium: shockwaveRingEffect = ShockwaveRing.getEffect(unlimited) if shockwaveRingEffect: shockwaveRingEffect.reparentTo(base.effectsRoot) shockwaveRingEffect.setPos(hitObject, pos) shockwaveRingEffect.size = aoeRadius * 4 shockwaveRingEffect.play() flashEffect = MuzzleFlash.getEffect(unlimited) if flashEffect: flashEffect.reparentTo(base.effectsRoot) flashEffect.flash.setScale(100) flashEffect.setPos(hitObject, pos) flashEffect.startCol = Vec4(0.69999999999999996, 0.69999999999999996, 0.69999999999999996, 1) flashEffect.fadeTime = 0.20000000000000001 flashEffect.play() cameraShakerEffect = CameraShaker() cameraShakerEffect.reparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.040000000000000001 cameraShakerEffect.shakePower = 3.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(80.0) elif ammoSkillId == InventoryType.GrenadeSiege: explosionEffect = ExplosionFlip.getEffect(unlimited) if explosionEffect: explosionEffect.reparentTo(base.effectsRoot) explosionEffect.setPos(hitObject, pos) explosionEffect.setScale(2.5) explosionEffect.play() self.playSfx(ammoSkillId, explosionEffect) smokePillarEffect = SmokePillar.getEffect(unlimited) if smokePillarEffect: smokePillarEffect.reparentTo(hitObject) smokePillarEffect.setPos(hitObject, pos) smokePillarEffect.setScale(1.0) smokePillarEffect.spriteScale = 1.0 smokePillarEffect.radius = 7.0 smokePillarEffect.play() if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsMedium: dustRingEffect = DustRing.getEffect(unlimited) if dustRingEffect: dustRingEffect.reparentTo(hitObject) dustRingEffect.setPos(hitObject, pos) dustRingEffect.play() shockwaveRingEffect = ShockwaveRing.getEffect() if shockwaveRingEffect: shockwaveRingEffect.reparentTo(base.effectsRoot) shockwaveRingEffect.setPos(hitObject, pos) shockwaveRingEffect.size = aoeRadius * 4 shockwaveRingEffect.play() cameraShakerEffect = CameraShaker() cameraShakerEffect.wrtReparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.059999999999999998 cameraShakerEffect.shakePower = 4.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(80.0) if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsHigh: shipSplintersAEffect = ShipSplintersA.getEffect(unlimited) if shipSplintersAEffect: shipSplintersAEffect.reparentTo(hitObject) shipSplintersAEffect.setPos(hitObject, pos) shipSplintersAEffect.play() for i in range(random.randint(3, 6)): debrisEffect = RockDebris.getEffect(unlimited) if debrisEffect: debrisEffect.reparentTo(base.effectsRoot) debrisEffect.setPos(hitObject, pos) debrisEffect.offsetEndPlaneZFrom(hitObject.getZ()) debrisEffect.debris.setScale(0.80000000000000004) debrisEffect.radiusDist = 30 debrisEffect.minHeight = 30 debrisEffect.maxHeight = 120 if debrisEffect.testTrajectory(): debrisEffect.play() else: debrisEffect.cleanUpEffect() debrisEffect.testTrajectory() flashEffect = MuzzleFlash.getEffect(unlimited) if flashEffect: flashEffect.reparentTo(base.effectsRoot) flashEffect.flash.setScale(200) flashEffect.setPos(hitObject, pos) flashEffect.startCol = Vec4(0.69999999999999996, 0.69999999999999996, 0.69999999999999996, 1) flashEffect.fadeTime = 0.20000000000000001 flashEffect.play() elif ammoSkillId == InventoryType.GrenadeFireBomb: fireEffect = Fire.getEffect(unlimited) if fireEffect: fireEffect.wrtReparentTo(base.effectsRoot) fireEffect.setPos(hitObject, pos + Vec3(0, 0, -1.5)) fireEffect.setScale(Vec3(0.75, 0.75, 0.75)) fireEffect.duration = 2.5 fireEffect.play() flashEffect = MuzzleFlash.getEffect(unlimited) if flashEffect: flashEffect.wrtReparentTo(base.effectsRoot) flashEffect.flash.setScale(100) flashEffect.setPos(hitObject, pos) flashEffect.startCol = Vec4(0.69999999999999996, 0.69999999999999996, 0.69999999999999996, 1) flashEffect.fadeTime = 0.20000000000000001 flashEffect.play() self.playSfx(ammoSkillId, flashEffect) if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsMedium: shockwaveRingEffect = ShockwaveRing.getEffect(unlimited) if shockwaveRingEffect: shockwaveRingEffect.wrtReparentTo(base.effectsRoot) shockwaveRingEffect.setPos(hitObject, pos) shockwaveRingEffect.size = aoeRadius * 4 shockwaveRingEffect.play() cameraShakerEffect = CameraShaker() cameraShakerEffect.wrtReparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.040000000000000001 cameraShakerEffect.shakePower = 2.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(80.0) if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsHigh: blackSmokeEffect = LightSmoke.getEffect(unlimited) if blackSmokeEffect: blackSmokeEffect.wrtReparentTo(base.effectsRoot) blackSmokeEffect.setPos(hitObject, pos) blackSmokeEffect.duration = 4.0 blackSmokeEffect.play() elif ammoSkillId == InventoryType.GrenadeSmokeCloud: explosionEffect = ExplosionFlip.getEffect(unlimited) if explosionEffect: explosionEffect.reparentTo(base.effectsRoot) explosionEffect.setPos(hitObject, pos) explosionEffect.setScale(1.0) explosionEffect.play() self.playSfx(ammoSkillId, explosionEffect) smokeCloudEffect = SmokeBomb.getEffect(unlimited) if smokeCloudEffect: smokeCloudEffect.reparentTo(hitObject) smokeCloudEffect.setPos(hitObject, pos) smokeCloudEffect.radius = aoeRadius / 1.5 smokeCloudEffect.play() self.playSfx(ammoSkillId, smokeCloudEffect) if base.options.getSpecialEffectsSetting( ) >= base.options.SpecialEffectsMedium: shockwaveRingEffect = ShockwaveRing.getEffect(unlimited) if shockwaveRingEffect: shockwaveRingEffect.wrtReparentTo(base.effectsRoot) shockwaveRingEffect.setPos(hitObject, pos) shockwaveRingEffect.size = aoeRadius * 4 shockwaveRingEffect.play() cameraShakerEffect = CameraShaker() cameraShakerEffect.wrtReparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.040000000000000001 cameraShakerEffect.shakePower = 2.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(80.0)
def basicHitEffect(self, hitObject, pos, skillId, ammoSkillId): WeaponGlobals = WeaponGlobals import pirates.battle if self.cr: attacker = self.cr.doId2do.get(self.attackerId) aoeRadius = self.cr.battleMgr.getModifiedAttackAreaRadius(attacker, skillId, ammoSkillId) else: attacker = None aoeRadius = 0 if attacker: pass unlimited = bool(attacker.isLocal()) if config.GetBool('show-aoe-radius', 0): s = loader.loadModel('models/misc/smiley') s.reparentTo(render) s.setPos(hitObject, pos) s.setScale(aoeRadius) s.setTransparency(1) s.setColorScale(1.0, 0.5, 0.5, 0.40000000000000002) if ammoSkillId in [ InventoryType.CannonRoundShot, InventoryType.CannonChainShot, InventoryType.CannonBullet, InventoryType.CannonSkull, InventoryType.CannonBarShot, InventoryType.CannonFury, InventoryType.CannonFirebrand, InventoryType.CannonFlamingSkull, InventoryType.CannonThunderbolt]: hitSfxNames = [ SoundGlobals.SFX_FX_WOOD_IMPACT_01, SoundGlobals.SFX_FX_WOOD_IMPACT_02, SoundGlobals.SFX_FX_WOOD_IMPACT_03, SoundGlobals.SFX_FX_WOOD_IMPACT_04, SoundGlobals.SFX_FX_WOOD_SHATTER_02, SoundGlobals.SFX_FX_WOOD_SHATTER_03] sfx = loadSfx(random.choice(hitSfxNames)) base.playSfx(sfx, node = hitObject, cutoff = 1500) if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsLow: explosionEffect = ExplosionFlip.getEffect(unlimited) if explosionEffect: explosionEffect.reparentTo(base.effectsRoot) explosionEffect.setPos(hitObject, pos) explosionEffect.setScale(0.80000000000000004) explosionEffect.play() if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsMedium: smokeCloudEffect = SimpleSmokeCloud.getEffect(unlimited) if smokeCloudEffect: smokeCloudEffect.reparentTo(hitObject) smokeCloudEffect.setPos(hitObject, pos) smokeCloudEffect.setEffectScale(1.0) smokeCloudEffect.play() if localAvatar.ship and hitObject == localAvatar.ship: cameraShakerEffect = CameraShaker() cameraShakerEffect.wrtReparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.040000000000000001 cameraShakerEffect.shakePower = 6.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(120.0) if ammoSkillId == InventoryType.CannonExplosive: if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsLow: effect = Explosion.getEffect(unlimited) if effect: effect.wrtReparentTo(hitObject) effect.setPos(hitObject, pos) effect.setEffectScale(1.0) effect.setEffectRadius(aoeRadius / 3.0) effect.play() if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsMedium: for i in range(2): effect = FlamingDebris.getEffect(unlimited) if effect: effect.wrtReparentTo(base.effectsRoot) effect.setPos(hitObject, pos) effect.duration = 4 effect.velocityX = self.projVelocity[i][0] effect.velocityY = self.projVelocity[i][1] effect.play() continue if localAvatar.ship and hitObject == localAvatar.ship: cameraShakerEffect = CameraShaker() cameraShakerEffect.wrtReparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.040000000000000001 cameraShakerEffect.shakePower = 6.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(300.0) if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsHigh: effect = FlamingDebris.getEffect(unlimited) if effect: effect.wrtReparentTo(base.effectsRoot) effect.setPos(hitObject, pos) effect.duration = 4 effect.velocityX = self.projVelocity[i][0] effect.velocityY = self.projVelocity[i][1] effect.play() if ammoSkillId == InventoryType.CannonThunderbolt: if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsLow: effect = LightningStrike.getEffect(unlimited) if effect: effect.wrtReparentTo(base.effectsRoot) effect.setPos(hitObject, pos) effect.play() if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsMedium: flashEffect = FlashEffect() flashEffect.wrtReparentTo(base.effectsRoot) flashEffect.setScale(600) flashEffect.setPos(hitObject, pos) flashEffect.effectColor = Vec4(0.5, 0.80000000000000004, 1, 1) flashEffect.fadeTime = 0.29999999999999999 flashEffect.play() if localAvatar.ship and hitObject == localAvatar.ship: cameraShakerEffect = CameraShaker() cameraShakerEffect.wrtReparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.059999999999999998 cameraShakerEffect.shakePower = 4.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(300.0) if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsHigh: shipSplintersAEffect = ShipSplintersA.getEffect(unlimited) if shipSplintersAEffect: shipSplintersAEffect.wrtReparentTo(hitObject) shipSplintersAEffect.setPos(hitObject, pos) shipSplintersAEffect.play() elif ammoSkillId == InventoryType.CannonFury: flashEffect = FlashEffect() flashEffect.wrtReparentTo(base.effectsRoot) flashEffect.setScale(300) flashEffect.setPos(hitObject, pos) flashEffect.effectColor = Vec4(0.5, 0.80000000000000004, 1, 1) flashEffect.fadeTime = 0.25 flashEffect.play() elif ammoSkillId == InventoryType.GrenadeExplosion: explosionEffect = ExplosionFlip.getEffect(unlimited) if explosionEffect: explosionEffect.reparentTo(base.effectsRoot) explosionEffect.setPos(hitObject, pos) explosionEffect.setScale(1.0) explosionEffect.play() self.playSfx(ammoSkillId, explosionEffect) smokeCloudEffect = SmokeCloud.getEffect(unlimited) if smokeCloudEffect: smokeCloudEffect.reparentTo(hitObject) smokeCloudEffect.setPos(hitObject, pos) smokeCloudEffect.setScale(1.0) smokeCloudEffect.spriteScale = 1.0 smokeCloudEffect.radius = 7.0 smokeCloudEffect.play() if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsMedium: shockwaveRingEffect = ShockwaveRing.getEffect(unlimited) if shockwaveRingEffect: shockwaveRingEffect.reparentTo(base.effectsRoot) shockwaveRingEffect.setPos(hitObject, pos) shockwaveRingEffect.size = aoeRadius * 4 shockwaveRingEffect.play() flashEffect = MuzzleFlash.getEffect(unlimited) if flashEffect: flashEffect.reparentTo(base.effectsRoot) flashEffect.flash.setScale(100) flashEffect.setPos(hitObject, pos) flashEffect.startCol = Vec4(0.69999999999999996, 0.69999999999999996, 0.69999999999999996, 1) flashEffect.fadeTime = 0.20000000000000001 flashEffect.play() cameraShakerEffect = CameraShaker() cameraShakerEffect.reparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.040000000000000001 cameraShakerEffect.shakePower = 6.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(80.0) if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsHigh: rockShower = SmallRockShower.getEffect(unlimited) if rockShower: rockShower.reparentTo(hitObject) rockShower.setPos(hitObject, pos) rockShower.play() elif ammoSkillId == InventoryType.GrenadeShockBomb: explosionEffect = ExplosionFlip.getEffect(unlimited) if explosionEffect: explosionEffect.reparentTo(base.effectsRoot) explosionEffect.setPos(hitObject, pos) explosionEffect.setScale(1.0) explosionEffect.play() self.playSfx(ammoSkillId, explosionEffect) dustRingEffect = DustRing.getEffect(unlimited) if dustRingEffect: dustRingEffect.reparentTo(hitObject) dustRingEffect.setPos(hitObject, pos) dustRingEffect.play() if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsMedium: shockwaveRingEffect = ShockwaveRing.getEffect(unlimited) if shockwaveRingEffect: shockwaveRingEffect.reparentTo(base.effectsRoot) shockwaveRingEffect.setPos(hitObject, pos) shockwaveRingEffect.size = aoeRadius * 4 shockwaveRingEffect.play() flashEffect = MuzzleFlash.getEffect(unlimited) if flashEffect: flashEffect.reparentTo(base.effectsRoot) flashEffect.flash.setScale(100) flashEffect.setPos(hitObject, pos) flashEffect.startCol = Vec4(0.69999999999999996, 0.69999999999999996, 0.69999999999999996, 1) flashEffect.fadeTime = 0.20000000000000001 flashEffect.play() cameraShakerEffect = CameraShaker() cameraShakerEffect.reparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.040000000000000001 cameraShakerEffect.shakePower = 3.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(80.0) elif ammoSkillId == InventoryType.GrenadeSiege: explosionEffect = ExplosionFlip.getEffect(unlimited) if explosionEffect: explosionEffect.reparentTo(base.effectsRoot) explosionEffect.setPos(hitObject, pos) explosionEffect.setScale(2.5) explosionEffect.play() self.playSfx(ammoSkillId, explosionEffect) smokePillarEffect = SmokePillar.getEffect(unlimited) if smokePillarEffect: smokePillarEffect.reparentTo(hitObject) smokePillarEffect.setPos(hitObject, pos) smokePillarEffect.setScale(1.0) smokePillarEffect.spriteScale = 1.0 smokePillarEffect.radius = 7.0 smokePillarEffect.play() if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsMedium: dustRingEffect = DustRing.getEffect(unlimited) if dustRingEffect: dustRingEffect.reparentTo(hitObject) dustRingEffect.setPos(hitObject, pos) dustRingEffect.play() shockwaveRingEffect = ShockwaveRing.getEffect() if shockwaveRingEffect: shockwaveRingEffect.reparentTo(base.effectsRoot) shockwaveRingEffect.setPos(hitObject, pos) shockwaveRingEffect.size = aoeRadius * 4 shockwaveRingEffect.play() cameraShakerEffect = CameraShaker() cameraShakerEffect.wrtReparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.059999999999999998 cameraShakerEffect.shakePower = 4.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(80.0) if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsHigh: shipSplintersAEffect = ShipSplintersA.getEffect(unlimited) if shipSplintersAEffect: shipSplintersAEffect.reparentTo(hitObject) shipSplintersAEffect.setPos(hitObject, pos) shipSplintersAEffect.play() for i in range(random.randint(3, 6)): debrisEffect = RockDebris.getEffect(unlimited) if debrisEffect: debrisEffect.reparentTo(base.effectsRoot) debrisEffect.setPos(hitObject, pos) debrisEffect.offsetEndPlaneZFrom(hitObject.getZ()) debrisEffect.debris.setScale(0.80000000000000004) debrisEffect.radiusDist = 30 debrisEffect.minHeight = 30 debrisEffect.maxHeight = 120 if debrisEffect.testTrajectory(): debrisEffect.play() else: debrisEffect.cleanUpEffect() debrisEffect.testTrajectory() flashEffect = MuzzleFlash.getEffect(unlimited) if flashEffect: flashEffect.reparentTo(base.effectsRoot) flashEffect.flash.setScale(200) flashEffect.setPos(hitObject, pos) flashEffect.startCol = Vec4(0.69999999999999996, 0.69999999999999996, 0.69999999999999996, 1) flashEffect.fadeTime = 0.20000000000000001 flashEffect.play() elif ammoSkillId == InventoryType.GrenadeFireBomb: fireEffect = Fire.getEffect(unlimited) if fireEffect: fireEffect.wrtReparentTo(base.effectsRoot) fireEffect.setPos(hitObject, pos + Vec3(0, 0, -1.5)) fireEffect.setScale(Vec3(0.75, 0.75, 0.75)) fireEffect.duration = 2.5 fireEffect.play() flashEffect = MuzzleFlash.getEffect(unlimited) if flashEffect: flashEffect.wrtReparentTo(base.effectsRoot) flashEffect.flash.setScale(100) flashEffect.setPos(hitObject, pos) flashEffect.startCol = Vec4(0.69999999999999996, 0.69999999999999996, 0.69999999999999996, 1) flashEffect.fadeTime = 0.20000000000000001 flashEffect.play() self.playSfx(ammoSkillId, flashEffect) if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsMedium: shockwaveRingEffect = ShockwaveRing.getEffect(unlimited) if shockwaveRingEffect: shockwaveRingEffect.wrtReparentTo(base.effectsRoot) shockwaveRingEffect.setPos(hitObject, pos) shockwaveRingEffect.size = aoeRadius * 4 shockwaveRingEffect.play() cameraShakerEffect = CameraShaker() cameraShakerEffect.wrtReparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.040000000000000001 cameraShakerEffect.shakePower = 2.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(80.0) if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsHigh: blackSmokeEffect = LightSmoke.getEffect(unlimited) if blackSmokeEffect: blackSmokeEffect.wrtReparentTo(base.effectsRoot) blackSmokeEffect.setPos(hitObject, pos) blackSmokeEffect.duration = 4.0 blackSmokeEffect.play() elif ammoSkillId == InventoryType.GrenadeSmokeCloud: explosionEffect = ExplosionFlip.getEffect(unlimited) if explosionEffect: explosionEffect.reparentTo(base.effectsRoot) explosionEffect.setPos(hitObject, pos) explosionEffect.setScale(1.0) explosionEffect.play() self.playSfx(ammoSkillId, explosionEffect) smokeCloudEffect = SmokeBomb.getEffect(unlimited) if smokeCloudEffect: smokeCloudEffect.reparentTo(hitObject) smokeCloudEffect.setPos(hitObject, pos) smokeCloudEffect.radius = aoeRadius / 1.5 smokeCloudEffect.play() self.playSfx(ammoSkillId, smokeCloudEffect) if base.options.getSpecialEffectsSetting() >= base.options.SpecialEffectsMedium: shockwaveRingEffect = ShockwaveRing.getEffect(unlimited) if shockwaveRingEffect: shockwaveRingEffect.wrtReparentTo(base.effectsRoot) shockwaveRingEffect.setPos(hitObject, pos) shockwaveRingEffect.size = aoeRadius * 4 shockwaveRingEffect.play() cameraShakerEffect = CameraShaker() cameraShakerEffect.wrtReparentTo(hitObject) cameraShakerEffect.setPos(hitObject, pos) cameraShakerEffect.shakeSpeed = 0.040000000000000001 cameraShakerEffect.shakePower = 2.0 cameraShakerEffect.numShakes = 2 cameraShakerEffect.scalePower = 1 cameraShakerEffect.play(80.0)