def addFireEffect(self, pos): fireEffect = ShipFire.getEffect() if fireEffect: fireEffect.reparentTo(self.getModelRoot()) fireEffect.setPos(pos) fireEffect.setHpr(90, -15, 0) fireEffect.startLoop() fireEffect.setEffectScale(20.0) self.flameEffects.append(fireEffect)
def updateDamageEffects(self, health, rear, left, right): effectSettings = base.options.getSpecialEffectsSetting() if left <= 30.0: locator = self.locators.find('**/location_fire_1') scale = locator.getScale()[0] / 1.75 + ( locator.getScale()[0] / 2.0) * (1.0 - health / 100.0) if not self.leftSideFire: self.leftSideFire = ShipFire.getEffect() if self.leftSideFire: self.leftSideFire.reparentTo(self.modelRoot) self.leftSideFire.setPos(locator.getPos()) self.leftSideFire.setHpr(80, -15, 0) self.leftSideFire.startLoop() if self.leftSideFire: self.leftSideFire.setEffectScale(scale) if not (self.leftSideSmoke ) and effectSettings >= base.options.SpecialEffectsMedium: self.leftSideSmoke = ShipSmoke.getEffect() if self.leftSideSmoke: self.leftSideSmoke.reparentTo(self.modelRoot) self.leftSideSmoke.setPos(locator.getPos()) self.leftSideSmoke.setHpr(90, -15, 0) self.leftSideSmoke.startLoop() if self.leftSideSmoke: self.leftSideSmoke.setEffectScale(scale) elif self.leftSideFire: self.leftSideFire.stopLoop() self.leftSideFire = None if self.leftSideSmoke: self.leftSideSmoke.stopLoop() self.leftSideSmoke = None if left <= 0.0 and effectSettings >= base.options.SpecialEffectsMedium: locator = self.locators.find('**/location_fire_3') if locator: scale = locator.getScale()[0] / 1.75 + ( locator.getScale()[0] / 2.0) * (1.0 - health / 100.0) if locator and not (self.leftSideFire2): self.leftSideFire2 = ShipFire.getEffect() if self.leftSideFire2: self.leftSideFire2.reparentTo(self.modelRoot) self.leftSideFire2.setPos(locator.getPos()) self.leftSideFire2.setHpr(90, -10, 10) self.leftSideFire2.startLoop() if self.leftSideFire2: self.leftSideFire2.setEffectScale(scale) if locator and not (self.leftSideSmoke2): self.leftSideSmoke2 = ShipSmoke.getEffect() if self.leftSideSmoke2: self.leftSideSmoke2.reparentTo(self.modelRoot) self.leftSideSmoke2.setPos(locator.getPos()) self.leftSideSmoke2.setHpr(90, -15, 0) self.leftSideSmoke2.startLoop() if self.leftSideSmoke2: self.leftSideSmoke2.setEffectScale(scale) elif self.leftSideFire2: self.leftSideFire2.stopLoop() self.leftSideFire2 = None if self.leftSideSmoke2: self.leftSideSmoke2.stopLoop() self.leftSideSmoke2 = None if right <= 30.0: locator = self.locators.find('**/location_fire_2') scale = locator.getScale()[0] / 1.75 + ( locator.getScale()[0] / 2.0) * (1.0 - health / 100.0) if not self.rightSideFire: self.rightSideFire = ShipFire.getEffect() if self.rightSideFire: self.rightSideFire.reparentTo(self.modelRoot) self.rightSideFire.setPos(locator.getPos()) self.rightSideFire.setHpr(100, 15, 0) self.rightSideFire.startLoop() if self.rightSideFire: self.rightSideFire.setEffectScale(scale) if not (self.rightSideSmoke ) and effectSettings >= base.options.SpecialEffectsMedium: self.rightSideSmoke = ShipSmoke.getEffect() if self.rightSideSmoke: self.rightSideSmoke.reparentTo(self.modelRoot) self.rightSideSmoke.setPos(locator.getPos()) self.rightSideSmoke.setHpr(90, 15, 0) self.rightSideSmoke.startLoop() if self.rightSideSmoke: self.rightSideSmoke.setEffectScale(scale) elif self.rightSideFire: self.rightSideFire.stopLoop() self.rightSideFire = None if self.rightSideSmoke: self.rightSideSmoke.stopLoop() self.rightSideSmoke = None if right <= 0.0 and effectSettings >= base.options.SpecialEffectsMedium: locator = self.locators.find('**/location_fire_4') if locator: scale = locator.getScale()[0] / 1.75 + ( locator.getScale()[0] / 2.0) * (1.0 - health / 100.0) if locator and not (self.rightSideFire2): self.rightSideFire2 = ShipFire.getEffect() if self.rightSideFire2: self.rightSideFire2.reparentTo(self.modelRoot) self.rightSideFire2.setPos(locator.getPos()) self.rightSideFire2.setHpr(90, 10, 10) self.rightSideFire2.startLoop() if self.rightSideFire2: self.rightSideFire2.setEffectScale(scale) if locator and not (self.rightSideSmoke2): self.rightSideSmoke2 = ShipSmoke.getEffect() if self.rightSideSmoke2: self.rightSideSmoke2.reparentTo(self.modelRoot) self.rightSideSmoke2.setPos(locator.getPos()) self.rightSideSmoke2.setHpr(90, 15, 0) self.rightSideSmoke2.startLoop() if self.rightSideSmoke2: self.rightSideSmoke2.setEffectScale(scale) elif self.rightSideFire2: self.rightSideFire2.stopLoop() self.rightSideFire2 = None if self.rightSideSmoke2: self.rightSideSmoke2.stopLoop() self.rightSideSmoke2 = None if rear <= 30.0: locator = self.locators.findAllMatches('**/location_fire_0')[0] scale = locator.getScale()[0] / 1.75 + ( locator.getScale()[0] / 2.0) * (1.0 - health / 100.0) if not self.rearSideFire: self.rearSideFire = ShipFire.getEffect() if self.rearSideFire: self.rearSideFire.reparentTo(self.modelRoot) self.rearSideFire.setPos(locator.getPos()) self.rearSideFire.setHpr(0, 20, 0) self.rearSideFire.startLoop() if self.rearSideFire: self.rearSideFire.setEffectScale(scale) if not (self.rearSideSmoke ) and effectSettings >= base.options.SpecialEffectsMedium: self.rearSideSmoke = ShipSmoke.getEffect() if self.rearSideSmoke: self.rearSideSmoke.reparentTo(self.modelRoot) self.rearSideSmoke.setPos(locator.getPos()) self.rearSideSmoke.setHpr(0, 20, 0) self.rearSideSmoke.startLoop() if self.rearSideSmoke: self.rearSideSmoke.setEffectScale(scale) elif self.rearSideFire: self.rearSideFire.stopLoop() self.rearSideFire = None if self.rearSideSmoke: self.rearSideSmoke.stopLoop() self.rearSideSmoke = None
def updateDamageEffects(self, health, rear, left, right): effectSettings = base.options.getSpecialEffectsSetting() if left <= 30.0: locator = self.locators.find('**/location_fire_1') scale = locator.getScale()[0] / 1.75 + (locator.getScale()[0] / 2.0) * (1.0 - health / 100.0) if not self.leftSideFire: self.leftSideFire = ShipFire.getEffect() if self.leftSideFire: self.leftSideFire.reparentTo(self.modelRoot) self.leftSideFire.setPos(locator.getPos()) self.leftSideFire.setHpr(80, -15, 0) self.leftSideFire.startLoop() if self.leftSideFire: self.leftSideFire.setEffectScale(scale) if not (self.leftSideSmoke) and effectSettings >= base.options.SpecialEffectsMedium: self.leftSideSmoke = ShipSmoke.getEffect() if self.leftSideSmoke: self.leftSideSmoke.reparentTo(self.modelRoot) self.leftSideSmoke.setPos(locator.getPos()) self.leftSideSmoke.setHpr(90, -15, 0) self.leftSideSmoke.startLoop() if self.leftSideSmoke: self.leftSideSmoke.setEffectScale(scale) elif self.leftSideFire: self.leftSideFire.stopLoop() self.leftSideFire = None if self.leftSideSmoke: self.leftSideSmoke.stopLoop() self.leftSideSmoke = None if left <= 0.0 and effectSettings >= base.options.SpecialEffectsMedium: locator = self.locators.find('**/location_fire_3') if locator: scale = locator.getScale()[0] / 1.75 + (locator.getScale()[0] / 2.0) * (1.0 - health / 100.0) if locator and not (self.leftSideFire2): self.leftSideFire2 = ShipFire.getEffect() if self.leftSideFire2: self.leftSideFire2.reparentTo(self.modelRoot) self.leftSideFire2.setPos(locator.getPos()) self.leftSideFire2.setHpr(90, -10, 10) self.leftSideFire2.startLoop() if self.leftSideFire2: self.leftSideFire2.setEffectScale(scale) if locator and not (self.leftSideSmoke2): self.leftSideSmoke2 = ShipSmoke.getEffect() if self.leftSideSmoke2: self.leftSideSmoke2.reparentTo(self.modelRoot) self.leftSideSmoke2.setPos(locator.getPos()) self.leftSideSmoke2.setHpr(90, -15, 0) self.leftSideSmoke2.startLoop() if self.leftSideSmoke2: self.leftSideSmoke2.setEffectScale(scale) elif self.leftSideFire2: self.leftSideFire2.stopLoop() self.leftSideFire2 = None if self.leftSideSmoke2: self.leftSideSmoke2.stopLoop() self.leftSideSmoke2 = None if right <= 30.0: locator = self.locators.find('**/location_fire_2') scale = locator.getScale()[0] / 1.75 + (locator.getScale()[0] / 2.0) * (1.0 - health / 100.0) if not self.rightSideFire: self.rightSideFire = ShipFire.getEffect() if self.rightSideFire: self.rightSideFire.reparentTo(self.modelRoot) self.rightSideFire.setPos(locator.getPos()) self.rightSideFire.setHpr(100, 15, 0) self.rightSideFire.startLoop() if self.rightSideFire: self.rightSideFire.setEffectScale(scale) if not (self.rightSideSmoke) and effectSettings >= base.options.SpecialEffectsMedium: self.rightSideSmoke = ShipSmoke.getEffect() if self.rightSideSmoke: self.rightSideSmoke.reparentTo(self.modelRoot) self.rightSideSmoke.setPos(locator.getPos()) self.rightSideSmoke.setHpr(90, 15, 0) self.rightSideSmoke.startLoop() if self.rightSideSmoke: self.rightSideSmoke.setEffectScale(scale) elif self.rightSideFire: self.rightSideFire.stopLoop() self.rightSideFire = None if self.rightSideSmoke: self.rightSideSmoke.stopLoop() self.rightSideSmoke = None if right <= 0.0 and effectSettings >= base.options.SpecialEffectsMedium: locator = self.locators.find('**/location_fire_4') if locator: scale = locator.getScale()[0] / 1.75 + (locator.getScale()[0] / 2.0) * (1.0 - health / 100.0) if locator and not (self.rightSideFire2): self.rightSideFire2 = ShipFire.getEffect() if self.rightSideFire2: self.rightSideFire2.reparentTo(self.modelRoot) self.rightSideFire2.setPos(locator.getPos()) self.rightSideFire2.setHpr(90, 10, 10) self.rightSideFire2.startLoop() if self.rightSideFire2: self.rightSideFire2.setEffectScale(scale) if locator and not (self.rightSideSmoke2): self.rightSideSmoke2 = ShipSmoke.getEffect() if self.rightSideSmoke2: self.rightSideSmoke2.reparentTo(self.modelRoot) self.rightSideSmoke2.setPos(locator.getPos()) self.rightSideSmoke2.setHpr(90, 15, 0) self.rightSideSmoke2.startLoop() if self.rightSideSmoke2: self.rightSideSmoke2.setEffectScale(scale) elif self.rightSideFire2: self.rightSideFire2.stopLoop() self.rightSideFire2 = None if self.rightSideSmoke2: self.rightSideSmoke2.stopLoop() self.rightSideSmoke2 = None if rear <= 30.0: locator = self.locators.findAllMatches('**/location_fire_0')[0] scale = locator.getScale()[0] / 1.75 + (locator.getScale()[0] / 2.0) * (1.0 - health / 100.0) if not self.rearSideFire: self.rearSideFire = ShipFire.getEffect() if self.rearSideFire: self.rearSideFire.reparentTo(self.modelRoot) self.rearSideFire.setPos(locator.getPos()) self.rearSideFire.setHpr(0, 20, 0) self.rearSideFire.startLoop() if self.rearSideFire: self.rearSideFire.setEffectScale(scale) if not (self.rearSideSmoke) and effectSettings >= base.options.SpecialEffectsMedium: self.rearSideSmoke = ShipSmoke.getEffect() if self.rearSideSmoke: self.rearSideSmoke.reparentTo(self.modelRoot) self.rearSideSmoke.setPos(locator.getPos()) self.rearSideSmoke.setHpr(0, 20, 0) self.rearSideSmoke.startLoop() if self.rearSideSmoke: self.rearSideSmoke.setEffectScale(scale) elif self.rearSideFire: self.rearSideFire.stopLoop() self.rearSideFire = None if self.rearSideSmoke: self.rearSideSmoke.stopLoop() self.rearSideSmoke = None