def delete(self): self.died = None self.hpBarrel = None taskMgr.remove(self.uniqueName('npcToonDie')) BaseNPCAI.delete(self) DistributedToonAI.delete(self) DistributedEntityAI.delete(self)
def announceGenerate(self): npcName = self.getEntityValue("name") if len(npcName) == 0: npcId = self.getEntityValueInt("npcId") else: npcId = NPCGlobals.getNPCIDByName(npcName) name = NPCGlobals.NPCToonDict[npcId][1] dna = NPCGlobals.NPCToonDict[npcId][2] self.b_setName(name) self.b_setDNAStrand(dna) self.b_setHealth(self.getMaxHealth()) self.setPos(self.cEntity.getOrigin()) self.setHpr(self.cEntity.getAngles()) DistributedEntityAI.announceGenerate(self) DistributedToonAI.announceGenerate(self) #self.b_setParent(CIGlobals.SPRender) self.startPosHprBroadcast() self.startAI() self.accept(self.getHealthChangeEvent(), self.__hpChange)
def __init__(self, air): try: self.DistributedPlayerToonAI_initialized return except: self.DistributedPlayerToonAI_initialized = 1 DistributedToonAI.__init__(self, air) DistributedPlayerToonShared.__init__(self) self.money = 0 self.portal = None self.book = None self.role = None self.ghost = 0 self.attackers = [] self.puInventory = [] self.equippedPU = -1 self.backpack = BackpackAI(self) self.backpackNetString = "" self.quests = "" self.questHistory = [] self.tier = -1 self.friends = [] self.tutDone = 0 self.hoodsDiscovered = [] self.teleportAccess = [] self.lastHood = 0 self.defaultShard = 0 self.currentGag = -1 self.trackExperience = dict(GagGlobals.DefaultTrackExperiences) return
def b_setMaxHealth(self, hp): if self.battleZone and not self.battleZone.getGameRules( ).useRealHealth(): self.b_setSessionMaxHealth(hp) return DistributedToonAI.b_setMaxHealth(self, hp)
def delete(self): taskMgr.remove(self.taskName("hpRegen")) self.money = None self.viewOrigin = None self.viewAngles = None self.viewAngleVectors = None DistributedToonAI.delete(self)
def __init__(self, air): DistributedToonAI.__init__(self, air) self.money = 0 self.viewOrigin = Vec3() self.viewAngles = Vec3() self.viewAngleVectors = [] self.numbers = []
def delete(self): try: self.DistributedPlayerToonAI_deleted except: self.DistributedPlayerToonAI_deleted = 1 DistributedPlayerToonShared.delete(self) self.questManager.cleanup() self.questManager = None self.money = None self.portal = None self.book = None self.role = None self.ghost = None self.attackers = None self.puInventory = None self.equippedPU = None if type(self.backpack ) != types.IntType and self.backpack is not None: self.backpack.cleanup() self.backpack = None self.quests = None self.questHistory = None self.tier = None self.friends = None self.tutDone = None self.hoodsDiscovered = None self.teleportAccess = None self.lastHood = None self.defaultShard = None self.trackExperience = None del self.questManager del self.money del self.portal del self.book del self.role del self.ghost del self.attackers del self.puInventory del self.equippedPU del self.backpack del self.quests del self.questHistory del self.tier del self.friends del self.tutDone del self.hoodsDiscovered del self.teleportAccess del self.lastHood del self.defaultShard del self.trackExperience DistributedToonAI.delete(self) return
def updateAttackAmmo(self, gagId, ammo, maxAmmo, ammo2, maxAmmo2, clip, maxClip): if self.useBackpack(): self.backpack.setSupply(gagId, ammo) else: if ammo < 0: ammo = abs(ammo) if maxAmmo < 0: maxAmmo = abs(maxAmmo) DistributedToonAI.updateAttackAmmo(self, gagId, ammo, maxAmmo, ammo2, maxAmmo2, clip, maxClip)
def __init__(self, air, dispatch): DistributedEntityAI.__init__(self, air, dispatch) DistributedToonAI.__init__(self, air) BaseNPCAI.__init__(self, dispatch) self.setBattleZone(dispatch) from src.coginvasion.attack.Attacks import ATTACK_GAG_WHOLECREAMPIE self.attackIds = [ATTACK_GAG_WHOLECREAMPIE] self.died = False self.hpBarrel = None self.schedules.update({ "GET_HP_FROM_BARREL": Schedule( [ Task_StopMoving(self), Task_StopAttack(self), Task_RememberPosition( self ), # remember where we were, we will return there after grabbing some HP Task_FindBestHPBarrel(self), Task_GetPathToHPBarrel(self), Task_Speak(self, 0.5, [ "I need more Laff points.", "I'm grabbing a Laff barrel!", "Hang on, I need this Laff barrel.", "I need Laff!" ]), Task_RunPath(self), Task_AwaitMovement(self), Task_GrabHPBarrel(self), Task_ClearHPBarrel(self), Task_SetSchedule(self, "RETURN_TO_MEMORY_POSITION") ], interruptMask=COND_HEAVY_DAMAGE) })
def announceGenerate(self): DistributedToonAI.announceGenerate(self) if self.parentId != self.getDefaultShard(): self.b_setDefaultShard(self.parentId)
def setupAttacks(self): DistributedToonAI.setupAttacks(self) # Update the player with the correct ammo numbers. for attack in self.attacks.values(): attack.d_updateAttackAmmo()
def __init__(self, air, dispatch): DistributedToonAI.__init__(self, air) BaseNPCAI.__init__(self, dispatch) self.setDispatch(dispatch) self.setBattleZone(dispatch) from src.coginvasion.attack.Attacks import ATTACK_GAG_WHOLECREAMPIE self.attackIds = [ATTACK_GAG_WHOLECREAMPIE] self.died = False self.hpBarrel = None self.followTarget = None self.schedules.update({ "HEAL_FOLLOW_TARGET": Schedule([ Task_StopMoving(self), Task_FaceFollowTarget(self), Task_Speak(self, 0.75, [ "Patch yourself up!", "Here, this'll help!", "Let me help you out!", "Heads up!" ]), Task_EquipAttack(self, ATTACK_GAG_WHOLECREAMPIE), Task_FireHealAttack(self), Task_AwaitAttack(self) ], interruptMask=COND_SCHEDULE_DONE | COND_TASK_FAILED | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_NEW_TARGET | COND_VP_JUMPING), "GET_HP_FROM_BARREL": Schedule( [ Task_StopMoving(self), Task_StopAttack(self), Task_RememberPosition( self ), # remember where we were, we will return there after grabbing some HP Task_FindBestHPBarrel(self), Task_GetPathToHPBarrel(self), Task_Speak(self, 0.5, [ "I need more Laff points.", "I'm grabbing a Laff barrel!", "Hang on, I need this Laff barrel.", "I need Laff!" ]), Task_MoveShoot(self), Task_GrabHPBarrel(self), Task_ClearHPBarrel(self), Task_SetSchedule(self, "RETURN_TO_MEMORY_POSITION") ], interruptMask=COND_VP_JUMPING | COND_HEAVY_DAMAGE | COND_IN_WALL), "RUN_TO_FOLLOW_TARGET": Schedule([ Task_StopAttack(self), Task_StopMoving(self), Task_GetPathToFollowTarget(self), Task_RunPath(self), Task_RunToFollowTarget(self), Task_FaceFollowTarget(self) ], interruptMask=COND_NEW_TARGET | COND_SCHEDULE_DONE | COND_TASK_FAILED | COND_IN_WALL), "FOLLOW_TARGET_FACE": Schedule([ Task_StopAttack(self), Task_StopMoving(self), Task_FaceFollowTarget(self) ], interruptMask=COND_NEW_TARGET | COND_SCHEDULE_DONE | COND_TASK_FAILED), "MAINTAIN_FOLLOW_TARGET": Schedule([ Task_StopAttack(self), Task_StopMoving(self), Task_MaintainFollowTarget(self) ], interruptMask=COND_VP_JUMPING | COND_SEE_FEAR | COND_NEW_TARGET | COND_LIGHT_DAMAGE | COND_HEAVY_DAMAGE | COND_HEAR_DANGER | COND_HEAR_HATE | COND_FRIEND_IN_WAY | COND_HEAR_SOMETHING | COND_IN_WALL), "VP_JUMP_DODGE": Schedule([ Task_StopAttack(self), Task_StopMoving(self), Task_Wait(0.5), Task_SetActivity(self, ACT_JUMP), Task_AwaitActivity(self) ], interruptMask=COND_SCHEDULE_DONE | COND_TASK_FAILED), "VP_JUMP_REACT": Schedule([ Task_StopAttack(self), Task_StopMoving(self), Task_SetActivity(self, ACT_TOON_FALL), Task_AwaitActivity(self) ], interruptMask=COND_SCHEDULE_DONE | COND_TASK_FAILED), }) self.schedules["YIELD_TO_FRIEND"].prependTask( Task_Speak( self, 0.4, ["Sorry.", "Let me get out of your way.", "Excuse me."])) self.schedules["IDLE_STAND"].interruptMask |= COND_VP_JUMPING self.schedules["COMBAT_FACE"].interruptMask |= COND_VP_JUMPING self.schedules[ "TAKE_COVER_FROM_ORIGIN"].interruptMask |= COND_VP_JUMPING self.schedules[ "TAKE_COVER_FROM_TARGET"].interruptMask |= COND_VP_JUMPING self.schedules["CHASE_TARGET"].interruptMask |= COND_VP_JUMPING self.schedules["ATTACK"].interruptMask |= COND_VP_JUMPING self.schedules["MAKE_ATTACK_LOS"].interruptMask |= COND_VP_JUMPING self.schedules["ALERT_FACE"].interruptMask |= COND_VP_JUMPING self.schedules[ "RETURN_TO_MEMORY_POSITION"].interruptMask |= COND_VP_JUMPING
def announceGenerate(self): DistributedToonAI.announceGenerate(self) taskMgr.add(self.__hpRegenTask, self.taskName("hpRegen"))
def takeDamage(self, damageInfo): DistributedToonAI.takeDamage(self, damageInfo) bz = self.air.battleZones[self.zoneId] bz.playerTakeDamage(damageInfo.damageAmount, self.doId)