def announceGenerate(self): DistributedObject.DistributedObject.announceGenerate(self) if not self.nodePath: self.makeNodePath() self.delta = -globalClockDelta.networkToLocalTime( self.initTime, globalClock.getFrameTime(), 16, 100) + globalClock.getFrameTime() if self.type == 0: self.name = self.uniqueName('tnt') elif self.type == 1: self.name = self.uniqueName('birthday-cake') self.nodePath.reparentTo(self.race.geom) if self.ownerId == localAvatar.doId: base.race.thrownGags[0].removeNode() base.race.thrownGags = base.race.thrownGags[1:] self.nodePath.setPos(self.pos[0], self.pos[1], self.pos[2]) else: startPos = base.cr.doId2do[self.ownerId].getPos(render) endPos = Vec3(self.pos[0], self.pos[1], self.pos[2]) throwIt = ProjectileInterval(self.nodePath, startPos=startPos, endPos=endPos, duration=1) throwIt.start() taskMgr.doMethodLater(0.8 - self.delta, self.addCollider, self.uniqueName('addCollider'))
def announceGenerate(self): DistributedObject.DistributedObject.announceGenerate(self) if not self.nodePath: self.makeNodePath() self.delta = -globalClockDelta.networkToLocalTime( self.initTime, globalClock.getFrameTime(), 16, 100) + globalClock.getFrameTime() if self.type == 0: self.name = self.uniqueName('banana') elif self.type == 1: self.name = self.uniqueName('pie') self.nodePath.reparentTo(self.race.geom) if self.ownerId == localAvatar.doId: base.race.thrownGags[0].removeNode() base.race.thrownGags = base.race.thrownGags[1:] self.nodePath.setPos(self.pos[0], self.pos[1], self.pos[2]) else: startPos = base.cr.doId2do[self.ownerId].getPos(render) endPos = Vec3(self.pos[0], self.pos[1], self.pos[2]) throwIt = ProjectileInterval( self.nodePath, startPos=startPos, endPos=endPos, duration=1) throwIt.start() taskMgr.doMethodLater( 0.8 - self.delta, self.addCollider, self.uniqueName('addCollider'))
class Attack: def __init__(self,hero,target,atkspeed): self.vel=120 self.missile = loader.loadModel("/c/miss") self.missile.setScale(0.09,0.09,0.09) self.missile.reparentTo(render) self.missile.setPos(25,25,0) self.weilder=0 self.target=0 self.dist=0 self.fired=False self.atkspeed=atkspeed self.Animate=False def ATT(self): if self.fired==False: self.fired=True self.AnimON() self.time=self.dist/self.vel self.trajectory = ProjectileInterval(self.missile,startPos =self.weilder,endPos =self.target, duration =self.time) self.trajectory.start() taskMgr.doMethodLater(self.atkspeed,self.setFired,"Fire") def setFired(self,task): self.fired=False self.AnimOFF() taskMgr.remove("Fire") return task.done def setWeil(self,arg): self.weilder=arg.getPos() def setTarg(self,arg): self.target=arg.getPos() def setDist(self,arg): self.dist=arg def setAtkSpeed(self): self.atkspeed=atkspeed def AnimON(self): return True def AnimOFF(self): return False