home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 56 / CDPowerplay56Disc2.iso / demos / blade / data1.cab / Program_Executable_Files / Lib / Arrows.py < prev    next >
Encoding:
Text File  |  2000-10-27  |  4.3 KB  |  163 lines

  1. import Traps_C
  2. import Bladex
  3.  
  4. MESSAGE_START_WEAPON            =    7
  5. MESSAGE_STOP_WEAPON                =    8
  6. B_PARTICLE_GTYPE_BLEND            =    1
  7.  
  8. Bladex.AddParticleGType("Dust1","SmokeParticle",B_PARTICLE_GTYPE_BLEND,15)
  9.  
  10. for i in range(15):
  11.     aux=(15.0-i)/15.0
  12.     r=255
  13.     g=230
  14.     b=210
  15.     a=80.0*(1.0-aux)**0.5
  16.     size=1.0+aux*350.0
  17.     Bladex.SetParticleGVal("Dust1",i,r,g,b,a,size)
  18.  
  19. Bladex.AddParticleGType("Dust2","SmokeParticle",B_PARTICLE_GTYPE_BLEND,15)
  20.  
  21. for i in range(15):
  22.     aux=(15.0-i)/15.0
  23.     r=255
  24.     g=230
  25.     b=210
  26.     a=80.0*(1.0-aux)**0.5
  27.     size=1.0+aux*250.0
  28.     Bladex.SetParticleGVal("Dust2",i,r,g,b,a,size)
  29.  
  30. Bladex.AddParticleGType("Dust3","SmokeParticle",B_PARTICLE_GTYPE_BLEND,15)
  31.  
  32. for i in range(15):
  33.     aux=(15.0-i)/15.0
  34.     r=255
  35.     g=230
  36.     b=210
  37.     a=80.0*(1.0-aux)**0.5
  38.     size=1.0+aux*150.0
  39.     Bladex.SetParticleGVal("Dust3",i,r,g,b,a,size)
  40.  
  41.  
  42. def PasoPolvo(polvoposition, paso, trampa):
  43.  
  44.     if paso:
  45.         #if (trampa):
  46.         despl=1150
  47.         #else:
  48.         #    despl=-1150
  49.         polvoflecha=Bladex.CreateEntity("PolvoFlecha3", "Entity Particle System D1", polvoposition[0]+despl, polvoposition[1], polvoposition[2])
  50.         polvoflecha.ParticleType="Dust3"
  51.         polvoflecha.YGravity=0.0
  52.         polvoflecha.Friction=0.2
  53.         polvoflecha.PPS=60
  54.         polvoflecha.Time2Live=15
  55.         polvoflecha.DeathTime=Bladex.GetTime()+3.0/60.0
  56.     else:
  57.         #if (trampa):
  58.         despl=950
  59.         #else:
  60.         #    despl=-950
  61.         polvoflecha=Bladex.CreateEntity("PolvoFlecha2", "Entity Particle System D1", polvoposition[0]+despl, polvoposition[1], polvoposition[2])
  62.         polvoflecha.ParticleType="Dust2"
  63.         polvoflecha.YGravity=0.0
  64.         polvoflecha.Friction=0.2
  65.         polvoflecha.PPS=60
  66.         polvoflecha.Time2Live=15
  67.         polvoflecha.DeathTime=Bladex.GetTime()+3.0/60.0
  68.         Bladex.AddScheduledFunc(Bladex.GetTime()+2.0/60.0, PasoPolvo, (polvoposition, 1, trampa))
  69.  
  70.  
  71. class FLECHA:
  72.     Nombre = ""    
  73.     Lanzar = ""
  74.     Flechas_Clavadas = 0
  75.     Estado = 0
  76.     Avance = 0
  77.     Vel = [0,0,0]
  78.     Gravity    = [0,0,0]
  79.     Orientation = [0,0,0,0]
  80.     Position = [0,0,0]    
  81.     Scale = 0    
  82.     Tiempo_Lanzamiento = 1.3
  83.     Tiempo_Parada       = 0.9
  84.     Sound = 0
  85.  
  86. def PararFlecha(Arrow_P,Tiempo):
  87.     Arrow = Bladex.GetEntity(Arrow_P.Lanzar)
  88.     Arrow.MessageEvent(MESSAGE_STOP_WEAPON,0,0)    
  89.     Arrow.Orientation    = Arrow_P.Orientation
  90.     Arrow.Position        = Arrow_P.Position
  91.     Arrow.Scale            = Arrow_P.Scale
  92.     #Arrow_P.Sound.Stop()
  93.  
  94.  
  95. def LanzarFlecha(Arrow_P,Tiempo):        
  96.     Arrow = Bladex.GetEntity(Arrow_P.Lanzar)
  97.  
  98.     if (Arrow_P.Estado == 1):        
  99.         char=Bladex.GetEntity("Player1")
  100.         
  101.         Arrow.MessageEvent(MESSAGE_START_WEAPON,0,0)
  102.         Arrow.Fly(Arrow_P.Vel[0],Arrow_P.Vel[1],Arrow_P.Vel[2])
  103.         #Arrow_P.Ultimo_Lanzamiento = Bladex.GetTime()
  104.         Arrow_P.Sound.Play(Arrow.Position[0],Arrow.Position[1],Arrow.Position[2],0)
  105.  
  106.         Bladex.AddScheduledFunc(Bladex.GetTime() + Arrow_P.Tiempo_Parada,PararFlecha,(Arrow_P,0))
  107.         Bladex.AddScheduledFunc(Bladex.GetTime() + Arrow_P.Tiempo_Lanzamiento,LanzarFlecha,(Arrow_P,0))
  108.  
  109.  
  110. def ActivateArrow(Name,Tiempo,Frecuencia):
  111.     Arrow = Bladex.GetEntity(Name)
  112.     #print(Arrow.Data.Lanzar," Activado")    
  113.     Arrow.Data.Estado = 1
  114.     Arrow.Data.Tiempo_Lanzamiento = Frecuencia
  115.     Arrow.Data.Tiempo_Parada = Frecuencia - 0.1
  116.  
  117.     Bladex.AddScheduledFunc(Tiempo,LanzarFlecha,(Arrow.Data,0))
  118.  
  119. def DeactivateArrow(Name):    
  120.     Arrow = Bladex.GetEntity(Name)
  121.     #print(Arrow.Data.Lanzar," Desactivado")
  122.     Arrow.Data.Estado = 0
  123.  
  124.  
  125. def StickArrow(Sticker,Stick):
  126.     #print (Sticker," Clavada en ",Stick)
  127.     Arrow = Bladex.GetEntity(Sticker)
  128.     Flecha = Arrow.Data        
  129.     NewArrow = Traps_C.Prueba(Flecha.Nombre,Flecha.Flechas_Clavadas)    
  130.     Flecha.Flechas_Clavadas = Flecha.Flechas_Clavadas + 1
  131.     Arrow = Bladex.CreateEntity(NewArrow,"Flecha",Flecha.Position[0],Flecha.Position[1],Flecha.Position[2])
  132.     Arrow.Orientation = Flecha.Orientation
  133.     Arrow.Scale = Flecha.Scale
  134.     Arrow.Arrow = 1
  135.     Arrow.SendSectorMsgs = 0
  136.     Arrow.Gravity = Flecha.Gravity
  137.     Flecha.Lanzar = NewArrow
  138.     Arrow.Data = Flecha
  139.     Arrow.StickFunc = StickArrow
  140.  
  141.  
  142. def InitArrow(Name,Vel,Grav):
  143.     A = FLECHA()
  144.     A.Vel = Vel
  145.     A.Gravity = Grav
  146.     Arrow = Bladex.GetEntity(Name)
  147.     Arrow.Arrow = 1
  148.     Arrow.SendSectorMsgs = 0
  149.     Arrow.Gravity = Grav
  150.  
  151.     A.Sound = Bladex.CreateSound('..\\..\\Sounds\\dart-shoot.wav', 'LaunchArrow')
  152.     A.Sound.Volume=0.3
  153.     A.Sound.MinDistance=7000
  154.     A.Sound.MaxDistance=10000
  155.         
  156.     A.Nombre      = Name
  157.     A.Lanzar      = Name
  158.     A.Position    = Arrow.Position
  159.     A.Orientation = Arrow.Orientation    
  160.     A.Scale       = Arrow.Scale
  161.     
  162.     Arrow.Data = A
  163.     Arrow.StickFunc = StickArrow