Exemplo n.º 1
0
 def __getGagEffectOnMe(self, avId, gagName, gagData, damageInfo, isPlayer):
     """ Returns the base damage and the damage offset a specified gag name used by "avId" has on this Cog """
     weaknessFactor = self.suitPlan.getGagWeaknesses().get(gagName, 1.0)
     classWeakness = self.suitPlan.getCogClassAttrs().getGagDmgRamp(GagGlobals.getTrackOfGag(gagName, isAI = True))
     if isPlayer:
         baseDmg = GagGlobals.calculateDamage(avId, gagName, gagData)
     else:
         baseDmg = damageInfo.damageAmount
     dmgOffset = int(math.ceil(baseDmg * weaknessFactor * classWeakness)) - baseDmg
     return baseDmg, dmgOffset
Exemplo n.º 2
0
    def handleHitByToon(self, player, gagId, distance):
        if self.isDead():
            return

        gagName = base.cr.attackMgr.getAttackName(gagId)
        data = dict(GagGlobals.getGagData(gagName))
        data['distance'] = distance
        baseDmg = GagGlobals.calculateDamage(player, gagName, data)
        hp = self.health - baseDmg
        self.setHealth(hp)
        self.announceHealth(0, baseDmg, -1)
        self.doDamageFade()
        if self.isDead():
            self.doRagdollMode()
Exemplo n.º 3
0
    def hitByGag(self, gagId, distance):
        if self.isDead():
            return

        avId = self.air.getAvatarIdFromSender()
        player = self.air.doId2do.get(avId, None)
        if not player:
            return

        gagName = self.air.attackMgr.getAttackName(gagId)
        data = dict(GagGlobals.getGagData(gagName))
        data['distance'] = distance
        baseDmg = GagGlobals.calculateDamage(player, gagName, data)
        hp = self.health - baseDmg
        self.b_setHealth(hp)
        self.d_announceHealth(0, baseDmg, -1)
        if self.isDead():
            self.dispatchOutput("OnDie")
            self.brain.stop()
            self.d_doRagdollMode()