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

  1. ########################################
  2. ###          Aguita asesina!         ###
  3. ########################################
  4. import Bladex
  5. import ReadGSFile
  6. import Sounds
  7. #B_PARTICLE_GTYPE_COPY=0
  8. #B_PARTICLE_GTYPE_BLEND=1
  9. #B_PARTICLE_GTYPE_ADD=2
  10. #B_PARTICLE_GTYPE_MUL=3
  11.  
  12.  
  13. SndSplash=Sounds.CreateEntitySound("..\\..\\Sounds\\M-CHAPUZONCAIDAALTURA.wav", "Splash")
  14. SndSplash.Volume=1
  15. SndSplash.MinDistance=5000
  16. SndSplash.MaxDistance=90000
  17.  
  18. SndGlubGlub=Sounds.CreateEntitySound("..\\..\\Sounds\\M-agua-burbujas.wav", "GlubGlub")
  19. SndGlubGlub.Volume=1
  20. SndGlubGlub.MinDistance=5000
  21. SndGlubGlub.MaxDistance=90000
  22.  
  23.  
  24.  
  25. Bladex.ReadBitMap("..\\..\\Data\\Salpicadura.bmp","SplashParticle")
  26.  
  27. Bladex.AddParticleGType("Splash","SplashParticle",2,64)
  28.  
  29. for i in range(64):
  30.     aux=(64.0-i)/64.0
  31.     r=80
  32.     g=100
  33.     b=100
  34.     a=64*(1.0-aux)**0.5
  35.     size=aux*200
  36.     Bladex.SetParticleGVal("Splash",i,r,g,b,a,size)
  37.  
  38. Bladex.ReadBitMap("..\\..\\Data\\Bubble.bmp","BubbleParticle")
  39.  
  40. Bladex.AddParticleGType("Bubble","BubbleParticle",2,64)
  41.  
  42. for i in range(64):
  43.     aux=(64.0-i)/64.0
  44.     r=100
  45.     g=100
  46.     b=100
  47.     a=128.0*(1.0-aux)**0.5
  48.     size=50
  49.     Bladex.SetParticleGVal("Bubble",i,r,g,b,a,size)
  50.     
  51. def SplashWater(x,y,z):
  52.     Aguita=Bladex.CreateEntity("Cristales", "Entity Particle System D1", x, y, z)
  53.     Aguita.ParticleType="Splash"
  54.     Aguita.PPS=2048
  55.     Aguita.YGravity=1000.0
  56.     Aguita.Friction=0
  57.     Aguita.Velocity=0,-1500,0
  58.     Aguita.RandomVelocity=20.0
  59.     Aguita.Time2Live=64
  60.     Aguita.DeathTime=Bladex.GetTime()+0.3
  61.  
  62.     SndSplash.Position = x, y, z
  63.     SndSplash.PlaySound(0)
  64.     
  65.     Bladex.AddScheduledFunc(Bladex.GetTime()+0.0, RemueveAgua,(x,y,z,1000,1000))
  66.     Bladex.AddScheduledFunc(Bladex.GetTime()+5.0, DropBubbles,(x,y,z))
  67.     
  68.  
  69. def DropBubbles(x,y,z):
  70.     Aguita=Bladex.CreateEntity("Cristales", "Entity Particle System D1", x, y, z)
  71.     Aguita.ParticleType="Bubble"
  72.     Aguita.PPS=10
  73.     Aguita.YGravity=-1000.0
  74.     Aguita.Friction=0.1
  75.     Aguita.Velocity=0,1000,0
  76.     Aguita.RandomVelocity=30.0
  77.     Aguita.Time2Live=64
  78.     Aguita.DeathTime=Bladex.GetTime()+5.0
  79.     SndGlubGlub.Position = x, y, z
  80.     SndGlubGlub.PlaySound(0)
  81.  
  82. def RemueveAgua(x,y,z   ,sx,sz):
  83.  
  84.     tierra1=Bladex.CreateEntity("TierraRemoviendose1", "Entity Particle System D3", x +sx, y, z + sz)
  85.     tierra1.D1= -2*sx, 0, 0
  86.     tierra1.D2= -2*sx, 0, - 2*sz
  87.     tierra1.ParticleType="Splash"
  88.     tierra1.PPS=64
  89.     tierra1.YGravity=200.0
  90.     tierra1.Friction=0.1
  91.     tierra1.Velocity=0.0, -400.0, 0.0
  92.     tierra1.RandomVelocity=15.0
  93.     tierra1.Time2Live=64
  94.     tierra1.DeathTime=Bladex.GetTime()+2.0
  95.  
  96.  
  97.     tierra2=Bladex.CreateEntity("TierraRemoviendose2", "Entity Particle System D3", x + sx, y, z + sz)
  98.     tierra2.D1= -2*sx, 0, - 2*sz
  99.     tierra2.D2=     0, 0, - 2*sz
  100.     tierra2.ParticleType="Splash"
  101.     tierra2.PPS=64
  102.     tierra2.YGravity=200.0
  103.     tierra2.Friction=0.1
  104.     tierra2.Velocity=0.0, -400.0, 0.0
  105.     tierra2.RandomVelocity=15.0
  106.     tierra2.Time2Live=64
  107.     tierra2.DeathTime=Bladex.GetTime()+2.0    
  108.  
  109. WaterHi = 24000
  110.  
  111. def matame(finado):
  112.     finado.Life = 0
  113.     
  114. def OnGlubGlub(sectorindex,entityname):
  115.     global WaterHi
  116.     finado = Bladex.GetEntity(entityname)
  117.     if finado.Person:
  118.         SplashWater(finado.Position[0],WaterHi-1,finado.Position[2])
  119.         Bladex.AddScheduledFunc(Bladex.GetTime()+2.0, matame,(finado,))
  120.         
  121.         if(entityname=="Player1"):
  122.             cam  = Bladex.GetEntity("Camera")
  123.             cam.SType = 0
  124.             cam.TType = 0
  125.         
  126.  
  127. def SetGs(filename,sectorname):
  128.     res=ReadGSFile.ReadGhostSectorFile(filename)
  129.     for igs in res:
  130.        Bladex.AddTriggerSector(igs["Name"],igs["Grupo"],igs["FloorHeight"],igs["RoofHeight"],igs["Vertex"])
  131.     
  132.     Bladex.SetTriggerSectorFunc(sectorname, "OnEnter", OnGlubGlub )
  133.     
  134.     char = Bladex.GetEntity("Player1")
  135.     char.SendTriggerSectorMsgs = 1
  136.  
  137. # Water.SplashWater(char.Position[0],WaterHi-1,char.Position[2])