diff --git a/assets/Textures/bloodsplat1.png b/assets/Textures/bloodsplat1.png new file mode 100644 index 00000000..a05f134a Binary files /dev/null and b/assets/Textures/bloodsplat1.png differ diff --git a/src/main/java/electrosphere/engine/LoadingThread.java b/src/main/java/electrosphere/engine/LoadingThread.java index 50df5564..48240daf 100644 --- a/src/main/java/electrosphere/engine/LoadingThread.java +++ b/src/main/java/electrosphere/engine/LoadingThread.java @@ -614,12 +614,12 @@ public class LoadingThread extends Thread { // ActorUtils.applyBlenderTransformer(building); //spawn evil goblin -// Entity goblin = CreatureUtils.spawnBasicCreature("Goblin"); -// CollisionObjUtils.positionCharacter(goblin, new Vector3f(30, 0, 30)); -// EntityUtils.getScale(goblin).set(0.005f); -// //give evil goblin sword -// Entity goblinSword = ItemUtils.spawnBasicItem("Katana"); -// AttachUtils.attachEntityToEntityAtBone(goblin, goblinSword, "Bone.031"); + Entity goblin = CreatureUtils.spawnBasicCreature("Goblin"); + CollisionObjUtils.positionCharacter(goblin, new Vector3f(4, 0, 4)); + EntityUtils.getScale(goblin).set(0.005f); + //give evil goblin sword + Entity goblinSword = ItemUtils.spawnBasicItem("Katana"); + AttachUtils.attachEntityToEntityAtBone(goblin, goblinSword, "Bone.031"); // //attach ai to evil goblin // MindlessAttacker.attachToCreature(goblin); diff --git a/src/main/java/electrosphere/entity/types/hitbox/HitboxUtils.java b/src/main/java/electrosphere/entity/types/hitbox/HitboxUtils.java index bf580c6f..4074dbea 100644 --- a/src/main/java/electrosphere/entity/types/hitbox/HitboxUtils.java +++ b/src/main/java/electrosphere/entity/types/hitbox/HitboxUtils.java @@ -128,7 +128,7 @@ public class HitboxUtils { LifeUtils.getLifeState(hurtboxParent).damage(20); if(currentHp > lifeState.getLifeCurrent()){ Vector3d hurtboxPos = EntityUtils.getPosition(hurtbox); - ParticleEffects.spawnSparks(new Vector3f((float)hurtboxPos.x,(float)hurtboxPos.y,(float)hurtboxPos.z).add(0,0.1f,0), 20, 40); + ParticleEffects.spawnBloodsplats(new Vector3f((float)hurtboxPos.x,(float)hurtboxPos.y,(float)hurtboxPos.z).add(0,0.1f,0), 20, 40); } if(!LifeUtils.getLifeState(hurtboxParent).isIsAlive()){ EntityUtils.getPosition(hurtboxParent).set(Globals.spawnPoint); diff --git a/src/main/java/electrosphere/game/server/effects/ParticleEffects.java b/src/main/java/electrosphere/game/server/effects/ParticleEffects.java index 840476bd..cd7d40bc 100644 --- a/src/main/java/electrosphere/game/server/effects/ParticleEffects.java +++ b/src/main/java/electrosphere/game/server/effects/ParticleEffects.java @@ -25,4 +25,17 @@ public class ParticleEffects { EntityUtils.getScale(spark).mul(0.03f); } } + + public static void spawnBloodsplats(Vector3f position, int min, int max){ + Random rand = new Random(); + int num = (int)(rand.nextFloat() * (max - min)) + min; + for(int i = 0; i < num; i++){ + Vector3f direction = new Vector3f(rand.nextFloat() - 0.5f,rand.nextFloat() - 0.5f,rand.nextFloat() - 0.5f).normalize(); + float velocity = rand.nextFloat() * 0.001f; + float acceleration = 0.000005f; + Entity spark = ParticleUtils.spawnBillboardParticle("Textures/bloodsplat1.png", 90, direction, velocity, acceleration); + EntityUtils.getPosition(spark).set(position); + EntityUtils.getScale(spark).mul(0.1f); + } + } }