Example #1
0
 def __init__(self, actor, id):
     Gun.__init__(self, actor, 27, "models/basicdroid/pistol", id)
     self.clipSize = 12
     self.ammo = self.clipSize
     self.light = engine.Light(color=Vec4(1.0, 0.7, 0.4, 1),
                               attenuation=Vec3(0, 0, 0.003))
     self.tracer = particles.BulletTracerParticleGroup()
     self.pistolSound = audio.SoundPlayer("pistol")
     self.pinSound = audio.SoundPlayer("claw")
     self.fireTime = 0.05
     self.burstTimeBase = 0.5
     self.burstDelayBase = 1.25
     self.shotDelayBase = 0.15
Example #2
0
 def kill(self, aiWorld, entityGroup, localDelete = True):
     "Immediately trigger an explosion."
     if self.active:
         pos = self.getPosition()
         grenadeSound = audio.SoundPlayer("grenade")
         grenadeSound.play(position = self.getPosition())
         ObjectEntity.kill(self, aiWorld, entityGroup, localDelete)
         entityGroup.explode(pos, force = 40, damage = 67, damageRadius = 20, sourceEntity = self, damagingEntity = self.actor) # Give damage credit to our parent actor
Example #3
0
 def __init__(self, actor, id):
     Weapon.__init__(self, actor, id)
     self.impaleStart = -1
     self.impaleTarget = None
     self.node = engine.loadAnimation(
         "models/basicdroid/claw", {
             "Impale": "models/basicdroid/claw-Impale",
             "Retract": "models/basicdroid/claw-Retract"
         })
     self.node.reparentTo(engine.renderLit)
     self.clawSound = audio.SoundPlayer("claw")
     self.clawFailSound = audio.SoundPlayer("claw-fail")
     self.clawRetractSound = audio.SoundPlayer("claw-retract")
     self.impulseVector = None
     self.damage = 75
     self.fireTime = 1.25
     self.hide()
Example #4
0
 def kill(self, aiWorld, entityGroup, localDelete = True):
     if self.active:
         position = self.getPosition()
         
         entityGroup.explode(position, force = 2000, damage = 0, damageRadius = 25, sourceEntity = self)
         
         explosionSound = audio.SoundPlayer("large-explosion")
         explosionSound.play(position = position)
     Actor.kill(self, aiWorld, entityGroup, localDelete)
Example #5
0
 def __init__(self, actor, id):
     Gun.__init__(self, actor, 10, "models/basicdroid/chaingun", id)
     self.clipSize = 50
     self.ammo = self.clipSize
     self.light = engine.Light(color=Vec4(1.0, 0.7, 0.4, 1),
                               attenuation=Vec3(0, 0, 0.003))
     self.tracer = particles.BulletTracerParticleGroup()
     self.chainGunSound = audio.SoundPlayer("chaingun")
     self.fireTime = 0.05
     self.isAutomatic = True
Example #6
0
 def __init__(self, actor, damage, modelFile, id):
     Weapon.__init__(self, actor, id)
     self.clipSize = 10
     self.ammo = self.clipSize
     self.ammoAdditions = 0  # So that if fire() is called between serverUpdate and clientUpdate, ammo is still depleted
     self.reloadTime = 2.0
     self.newReloadActive = False
     self.reloadStarted = False  # Server side; only true one frame
     self.damage = damage
     self.lastReload = -1
     self.ricochetSound = audio.SoundPlayer("ricochet")
     self.reloadSound = audio.SoundPlayer("reload")
     self.showSound = audio.SoundPlayer("change-weapon")
     self.node = engine.loadModel(modelFile)
     self.modelFile = modelFile
     self.node.reparentTo(engine.renderLit)
     self.activeSound = 0  # Client side
     self.showTime = -1  # For the showing animation
     self.totalShowTime = 0.3
     Gun.hide(self)
Example #7
0
 def kill(self, aiWorld, entityGroup, localDelete = True):
     # Add fragments
     pos = self.getPosition()
     shatterSound = audio.SoundPlayer("glass-shatter")
     shatterSound.play(position = pos)
     for _ in range(40):
         offset = Vec3(uniform(-self.glassWidth / 2.0, self.glassWidth / 2.0), 0, uniform(-self.glassHeight / 2.0, self.glassHeight / 2.0))
         fragment = GlassFragment(aiWorld.world, aiWorld.space, render.getRelativePoint(self.node, offset), Vec3())
         entityGroup.generateEntityId(fragment, 1024)
         entityGroup.addEntity(fragment)
     ObjectEntity.kill(self, aiWorld, entityGroup, localDelete)
Example #8
0
 def __init__(self, actor, id):
     Gun.__init__(self, actor, 150, "models/basicdroid/shotgun", id)
     self.clipSize = 8
     self.ammo = self.clipSize
     self.light = engine.Light(color=Vec4(1.0, 0.7, 0.4, 1),
                               attenuation=Vec3(0, 0, 0.003))
     self.tracer = particles.BulletTracerParticleGroup()
     self.shotGunSound = audio.SoundPlayer("shotgun")
     self.fireTime = 1.0
     self.range = 15
     self.accuracy = 1.0
     self.burstTimeBase = 0.3
Example #9
0
 def kill(self, aiWorld, entityGroup, localDelete = True):
     if self.active:
         position = self.getPosition()
         entityGroup.explode(position, force = 50, damage = 80, damageRadius = 25, sourceEntity = self, damagingEntity = None) # Give damage credit to our parent actor
         explosionSound = audio.SoundPlayer("large-explosion")
         explosionSound.play(position = position)
         # Add fragments
         for _ in range(8):
             offset = Vec3(uniform(-1, 1), uniform(-1, 1), uniform(0, 1))
             offset.normalize()
             fragment = Fragment(aiWorld.world, aiWorld.worldNP, position + (offset * 1.5), offset * 30)
             entityGroup.generateEntityId(fragment, 1024)
             entityGroup.addEntity(fragment)
     ObjectEntity.kill(self, aiWorld, entityGroup, localDelete)
Example #10
0
 def __init__(self, actor, id):
     Gun.__init__(self, actor, 50, "models/basicdroid/sniper", id)
     self.defaultCrosshair = 0  # No crosshair
     self.zoomedCrosshair = 3  # Sniper scope
     self.zoomedFov = 25
     self.zoomedMouseSpeed = 0.15
     self.clipSize = 4
     self.ammo = self.clipSize
     self.light = engine.Light(color=Vec4(1.0, 0.7, 0.4, 1),
                               attenuation=Vec3(0, 0, 0.003))
     self.tracer = particles.BulletTracerParticleGroup()
     self.sniperSound = audio.SoundPlayer("sniper-rifle")
     self.zoomed = False
     self.fireTime = 0.8
     self.reloadTime = 3.0
     self.range = 300
     self.accuracy = 0.27
Example #11
0
 def __init__(self, actor, id):
     Weapon.__init__(self, actor, id)
     self.grenadeLaunchSound = audio.SoundPlayer("grenade-launch")
     self.fireTime = 3.0
     self.grenadeId = -1