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)
Ejemplo n.º 2
0
    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