Browse Source

First pass of the Spawn blob explosions. The second part that has a cylindrical shape is hard to get right.

readme
Nico de Poel 5 years ago
parent
commit
c41003a6ed
  1. 3
      Assets/Scripts/Modules/GameModule.cs
  2. 8
      Assets/Scripts/VisualStyle.cs
  3. 2
      Assets/Styles/GLQuake/GLQuake.asset
  4. 10132
      Assets/Styles/GLQuake/Particles/BlobExplosion.prefab
  5. 7
      Assets/Styles/GLQuake/Particles/BlobExplosion.prefab.meta
  6. 2
      engine/Quake/r_part.c
  7. 1
      engine/Quake/render.h
  8. 5
      engine/UniQuake/game_uniquake.c

3
Assets/Scripts/Modules/GameModule.cs

@ -80,6 +80,9 @@ public partial class GameModule
case ParticleEffect.Explosion: case ParticleEffect.Explosion:
uq.CurrentStyle.Particles.CreateExplosion(position, uq.GameLayer); uq.CurrentStyle.Particles.CreateExplosion(position, uq.GameLayer);
break; break;
case ParticleEffect.BlobExplosion:
uq.CurrentStyle.Particles.CreateBlobExplosion(position, uq.GameLayer);
break;
case ParticleEffect.TeleportSplash: case ParticleEffect.TeleportSplash:
uq.CurrentStyle.Particles.CreateTeleportSplash(position, uq.GameLayer); uq.CurrentStyle.Particles.CreateTeleportSplash(position, uq.GameLayer);
break; break;

8
Assets/Scripts/VisualStyle.cs

@ -161,6 +161,9 @@ public class ParticleSystems
[SerializeField] [SerializeField]
protected ParticleSystem rogueExplosion; protected ParticleSystem rogueExplosion;
[SerializeField]
protected ParticleSystem blobExplosion;
[SerializeField] [SerializeField]
protected ParticleSystem teleportSplash; protected ParticleSystem teleportSplash;
@ -197,6 +200,11 @@ public class ParticleSystems
SetColorGradient(effect.main, colorMin, colorMax); SetColorGradient(effect.main, colorMin, colorMax);
} }
public virtual void CreateBlobExplosion(Vector3 position, Layers layer)
{
InstantiateEffect(blobExplosion, position, layer);
}
public virtual void CreateTeleportSplash(Vector3 position, Layers layer) public virtual void CreateTeleportSplash(Vector3 position, Layers layer)
{ {
InstantiateEffect(teleportSplash, position, layer); InstantiateEffect(teleportSplash, position, layer);

2
Assets/Styles/GLQuake/GLQuake.asset

@ -29,6 +29,8 @@ MonoBehaviour:
type: 3} type: 3}
rogueExplosion: {fileID: 9150008102338277659, guid: 0a1fede38a8884d488bcf7625cad527e, rogueExplosion: {fileID: 9150008102338277659, guid: 0a1fede38a8884d488bcf7625cad527e,
type: 3} type: 3}
blobExplosion: {fileID: 9150008102338277659, guid: 3bc17ebf070910f4592c9491152e94b4,
type: 3}
teleportSplash: {fileID: 9150008102338277659, guid: 79bef89ba1457cb42a9fbeaf4acff66f, teleportSplash: {fileID: 9150008102338277659, guid: 79bef89ba1457cb42a9fbeaf4acff66f,
type: 3} type: 3}
lavaSplash: {fileID: 9150008102338277659, guid: 4db0c926dce46fe4c90920ecd8c5df2e, lavaSplash: {fileID: 9150008102338277659, guid: 4db0c926dce46fe4c90920ecd8c5df2e,

10132
Assets/Styles/GLQuake/Particles/BlobExplosion.prefab
File diff suppressed because it is too large
View File

7
Assets/Styles/GLQuake/Particles/BlobExplosion.prefab.meta

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3bc17ebf070910f4592c9491152e94b4
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

2
engine/Quake/r_part.c

@ -445,6 +445,8 @@ R_BlobExplosion
*/ */
void R_BlobExplosion (vec3_t org) void R_BlobExplosion (vec3_t org)
{ {
UQ_Game_BlobExplosion(org);
#ifdef USE_OPENGL #ifdef USE_OPENGL
int i, j; int i, j;
particle_t *p; particle_t *p;

1
engine/Quake/render.h

@ -181,6 +181,7 @@ void UQ_GL_SetupView(vec3_t origin, vec3_t angles, mleaf_t *viewLeaf);
void UQ_Game_RunParticleEffect(vec3_t origin, vec3_t direction, int color, int count); void UQ_Game_RunParticleEffect(vec3_t origin, vec3_t direction, int color, int count);
void UQ_Game_ParticleExplosion(vec3_t origin); void UQ_Game_ParticleExplosion(vec3_t origin);
void UQ_Game_ParticleExplosion2(vec3_t origin, int colorStart, int colorLength); void UQ_Game_ParticleExplosion2(vec3_t origin, int colorStart, int colorLength);
void UQ_Game_BlobExplosion(vec3_t origin);
void UQ_Game_TeleportSplash(vec3_t origin); void UQ_Game_TeleportSplash(vec3_t origin);
void UQ_Game_LavaSplash(vec3_t origin); void UQ_Game_LavaSplash(vec3_t origin);

5
engine/UniQuake/game_uniquake.c

@ -78,6 +78,11 @@ void UQ_Game_ParticleExplosion2(vec3_t origin, int colorStart, int colorLength)
unity_gamecalls->CreateParticleEffect(unity_context, PARTFX_ROGUE_EXPLOSION, origin, colorMin, colorMax); unity_gamecalls->CreateParticleEffect(unity_context, PARTFX_ROGUE_EXPLOSION, origin, colorMin, colorMax);
} }
void UQ_Game_BlobExplosion(vec3_t origin)
{
unity_gamecalls->CreateParticleEffect(unity_context, PARTFX_BLOB_EXPLOSION, origin, 0, 0);
}
void UQ_Game_TeleportSplash(vec3_t origin) void UQ_Game_TeleportSplash(vec3_t origin)
{ {
unity_gamecalls->CreateParticleEffect(unity_context, PARTFX_TELEPORT_SPLASH, origin, 0, 0); unity_gamecalls->CreateParticleEffect(unity_context, PARTFX_TELEPORT_SPLASH, origin, 0, 0);

Loading…
Cancel
Save