From 8aadf5a44617ac3344d8e8d7d2d0f3898c52b68b Mon Sep 17 00:00:00 2001 From: Electroblob77 <35599699+Electroblob77@users.noreply.github.com> Date: Fri, 12 Jun 2020 22:15:44 +0100 Subject: [PATCH] Various improvements to sounds - Added several new sounds, mostly for ice spells - Added automatic registering of sound events - Finally fixed the frost ray and wall of frost sounds - Removed a few unused sound files --- CREDITS.md | 1 + .../entity/construct/EntityForcefield.java | 4 + .../entity/construct/EntityIceSpike.java | 2 +- .../wizardry/registry/WizardrySounds.java | 143 ++---------------- .../wizardry/spell/FireBreath.java | 1 + .../electroblob/wizardry/spell/FlameRay.java | 2 +- .../electroblob/wizardry/spell/IceAge.java | 2 +- .../resources/assets/ebwizardry/sounds.json | 43 +++--- .../assets/ebwizardry/sounds/combust.ogg | Bin 0 -> 33006 bytes .../assets/ebwizardry/sounds/crackle.ogg | Bin 15730 -> 0 bytes .../assets/ebwizardry/sounds/forcefield.ogg | Bin 0 -> 453104 bytes .../assets/ebwizardry/sounds/frost_end.ogg | Bin 0 -> 54199 bytes .../assets/ebwizardry/sounds/frost_loop.ogg | Bin 0 -> 89052 bytes .../assets/ebwizardry/sounds/frost_start.ogg | Bin 0 -> 47444 bytes .../assets/ebwizardry/sounds/frostray.ogg | Bin 22301 -> 0 bytes .../assets/ebwizardry/sounds/ice_age.ogg | Bin 0 -> 122258 bytes .../sounds/{magic1.ogg => magic.ogg} | Bin .../assets/ebwizardry/sounds/magic2.ogg | Bin 12107 -> 0 bytes .../assets/ebwizardry/sounds/magic3.ogg | Bin 9062 -> 0 bytes .../assets/ebwizardry/sounds/magic4.ogg | Bin 13979 -> 0 bytes .../assets/ebwizardry/sounds/slice.ogg | Bin 0 -> 33754 bytes .../assets/ebwizardry/sounds/whoosh1.ogg | Bin 0 -> 40172 bytes .../assets/ebwizardry/sounds/whoosh2.ogg | Bin 0 -> 37245 bytes .../assets/ebwizardry/sounds/zoom1.ogg | Bin 0 -> 74648 bytes .../assets/ebwizardry/sounds/zoom2.ogg | Bin 0 -> 59182 bytes .../assets/ebwizardry/sounds/zoom3.ogg | Bin 0 -> 88678 bytes .../ebwizardry/texts/handbook_en_gb.json | 2 +- .../ebwizardry/texts/handbook_en_us.json | 2 +- 28 files changed, 46 insertions(+), 156 deletions(-) create mode 100644 src/main/resources/assets/ebwizardry/sounds/combust.ogg delete mode 100644 src/main/resources/assets/ebwizardry/sounds/crackle.ogg create mode 100644 src/main/resources/assets/ebwizardry/sounds/forcefield.ogg create mode 100644 src/main/resources/assets/ebwizardry/sounds/frost_end.ogg create mode 100644 src/main/resources/assets/ebwizardry/sounds/frost_loop.ogg create mode 100644 src/main/resources/assets/ebwizardry/sounds/frost_start.ogg delete mode 100644 src/main/resources/assets/ebwizardry/sounds/frostray.ogg create mode 100644 src/main/resources/assets/ebwizardry/sounds/ice_age.ogg rename src/main/resources/assets/ebwizardry/sounds/{magic1.ogg => magic.ogg} (100%) delete mode 100644 src/main/resources/assets/ebwizardry/sounds/magic2.ogg delete mode 100644 src/main/resources/assets/ebwizardry/sounds/magic3.ogg delete mode 100644 src/main/resources/assets/ebwizardry/sounds/magic4.ogg create mode 100644 src/main/resources/assets/ebwizardry/sounds/slice.ogg create mode 100644 src/main/resources/assets/ebwizardry/sounds/whoosh1.ogg create mode 100644 src/main/resources/assets/ebwizardry/sounds/whoosh2.ogg create mode 100644 src/main/resources/assets/ebwizardry/sounds/zoom1.ogg create mode 100644 src/main/resources/assets/ebwizardry/sounds/zoom2.ogg create mode 100644 src/main/resources/assets/ebwizardry/sounds/zoom3.ogg diff --git a/CREDITS.md b/CREDITS.md index 12313ffb..a87efc3f 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -45,3 +45,4 @@ In addition, I'd like to thank the following individuals for their contributions - fredzed - deleted_user_3277771 - DiscoveryME +- OGSoundFX \ No newline at end of file diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityForcefield.java b/src/main/java/electroblob/wizardry/entity/construct/EntityForcefield.java index 759b7cb9..0bd2d4c7 100644 --- a/src/main/java/electroblob/wizardry/entity/construct/EntityForcefield.java +++ b/src/main/java/electroblob/wizardry/entity/construct/EntityForcefield.java @@ -91,6 +91,10 @@ public class EntityForcefield extends EntityMagicConstruct implements ICustomHit super.onUpdate(); + if(ticksExisted == 1 && world.isRemote){ + Wizardry.proxy.playMovingSound(this, WizardrySounds.ENTITY_FORCEFIELD_AMBIENT, WizardrySounds.SPELLS, 0.5f, 1, true); + } + // New forcefield repulsion system: // Searches for all entities near the forcefield and determines where they will be next tick. // If they will be inside the forcefield next tick, sets their position and velocity such that they appear to diff --git a/src/main/java/electroblob/wizardry/entity/construct/EntityIceSpike.java b/src/main/java/electroblob/wizardry/entity/construct/EntityIceSpike.java index d79ac809..410f4b15 100644 --- a/src/main/java/electroblob/wizardry/entity/construct/EntityIceSpike.java +++ b/src/main/java/electroblob/wizardry/entity/construct/EntityIceSpike.java @@ -57,7 +57,7 @@ public class EntityIceSpike extends EntityMagicConstruct { this.facing.getZOffset() * extensionSpeed); } - if(lifetime - this.ticksExisted == 30) this.playSound(WizardrySounds.ENTITY_ICE_SPIKE_EXTEND, 1, 2); + if(lifetime - this.ticksExisted == 30) this.playSound(WizardrySounds.ENTITY_ICE_SPIKE_EXTEND, 1, 2.5f); if(!this.world.isRemote){ for(Object entity : this.world.getEntitiesWithinAABBExcludingEntity(this, this.getEntityBoundingBox())){ diff --git a/src/main/java/electroblob/wizardry/registry/WizardrySounds.java b/src/main/java/electroblob/wizardry/registry/WizardrySounds.java index a6d20fb6..afd32d60 100644 --- a/src/main/java/electroblob/wizardry/registry/WizardrySounds.java +++ b/src/main/java/electroblob/wizardry/registry/WizardrySounds.java @@ -1,8 +1,6 @@ package electroblob.wizardry.registry; import electroblob.wizardry.Wizardry; -import electroblob.wizardry.misc.Forfeit; -import electroblob.wizardry.spell.Spell; import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundCategory; import net.minecraft.util.SoundEvent; @@ -10,6 +8,9 @@ import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import java.util.ArrayList; +import java.util.List; + /** * Class responsible for defining, storing and registering all of wizardry's sound events. * @@ -24,6 +25,8 @@ public final class WizardrySounds { /** Sound category for all spell-related sounds. This includes inanimate magical entities, but not minions. * @see electroblob.wizardry.util.CustomSoundCategory */ public static SoundCategory SPELLS; + + private static final List sounds = new ArrayList<>(); public static final SoundEvent BLOCK_ARCANE_WORKBENCH_SPELLBIND = createSound("block.arcane_workbench.bind_spell"); public static final SoundEvent BLOCK_PEDESTAL_ACTIVATE = createSound("block.pedestal.activate"); @@ -50,6 +53,7 @@ public final class WizardrySounds { public static final SoundEvent ENTITY_ENTRAPMENT_VANISH = createSound("entity.entrapment.vanish"); public static final SoundEvent ENTITY_FIRE_RING_AMBIENT = createSound("entity.fire_ring.ambient"); public static final SoundEvent ENTITY_FIRE_SIGIL_TRIGGER = createSound("entity.fire_sigil.trigger"); + public static final SoundEvent ENTITY_FORCEFIELD_AMBIENT = createSound("entity.forcefield.ambient"); public static final SoundEvent ENTITY_FORCEFIELD_DEFLECT = createSound("entity.forcefield.deflect"); public static final SoundEvent ENTITY_FROST_SIGIL_TRIGGER = createSound("entity.frost_sigil.trigger"); public static final SoundEvent ENTITY_HAMMER_ATTACK = createSound("entity.hammer.attack"); @@ -153,141 +157,20 @@ public final class WizardrySounds { return createSound(Wizardry.MODID, name); } - /** Creates a sound with the given name, to be read from {@code assets/[modID]/sounds.json}. */ + /** Creates a sound with the given name, to be read from {@code assets/[modID]/sounds.json}. The sound will be + * registered automatically later. */ public static SoundEvent createSound(String modID, String name){ // All the setRegistryName methods delegate to this one, it doesn't matter which you use. - return new SoundEvent(new ResourceLocation(modID, name)).setRegistryName(name); + SoundEvent sound = new SoundEvent(new ResourceLocation(modID, name)).setRegistryName(name); + sounds.add(sound); + return sound; } // For some reason, sound events seem to work even when they aren't registered, without even so much as a warning. @SubscribeEvent public static void register(RegistryEvent.Register event){ - - event.getRegistry().register(BLOCK_ARCANE_WORKBENCH_SPELLBIND); - event.getRegistry().register(BLOCK_PEDESTAL_ACTIVATE); - event.getRegistry().register(BLOCK_PEDESTAL_CONQUER); - event.getRegistry().register(BLOCK_LECTERN_LOCATE_SPELL); - event.getRegistry().register(BLOCK_RECEPTACLE_IGNITE); - - event.getRegistry().register(ITEM_WAND_SWITCH_SPELL); - event.getRegistry().register(ITEM_WAND_LEVELUP); - event.getRegistry().register(ITEM_WAND_MELEE); - event.getRegistry().register(ITEM_WAND_CHARGEUP); - event.getRegistry().register(ITEM_ARMOUR_EQUIP_SILK); - event.getRegistry().register(ITEM_PURIFYING_ELIXIR_DRINK); - event.getRegistry().register(ITEM_MANA_FLASK_USE); - event.getRegistry().register(ITEM_MANA_FLASK_RECHARGE); - - event.getRegistry().register(ENTITY_BLACK_HOLE_AMBIENT); - event.getRegistry().register(ENTITY_BLACK_HOLE_VANISH); - event.getRegistry().register(ENTITY_BLACK_HOLE_BREAK_BLOCK); - event.getRegistry().register(ENTITY_BUBBLE_POP); - event.getRegistry().register(ENTITY_BLIZZARD_AMBIENT); - event.getRegistry().register(ENTITY_DECAY_AMBIENT); - event.getRegistry().register(ENTITY_ENTRAPMENT_AMBIENT); - event.getRegistry().register(ENTITY_ENTRAPMENT_VANISH); - event.getRegistry().register(ENTITY_FIRE_RING_AMBIENT); - event.getRegistry().register(ENTITY_FIRE_SIGIL_TRIGGER); - event.getRegistry().register(ENTITY_FORCEFIELD_DEFLECT); - event.getRegistry().register(ENTITY_FROST_SIGIL_TRIGGER); - event.getRegistry().register(ENTITY_HAMMER_ATTACK); - event.getRegistry().register(ENTITY_HAMMER_EXPLODE); - event.getRegistry().register(ENTITY_HAMMER_THROW); - event.getRegistry().register(ENTITY_HAMMER_LAND); - event.getRegistry().register(ENTITY_HEAL_AURA_AMBIENT); - event.getRegistry().register(ENTITY_ICE_SPIKE_EXTEND); - event.getRegistry().register(ENTITY_LIGHTNING_SIGIL_TRIGGER); - event.getRegistry().register(ENTITY_METEOR_FALLING); - event.getRegistry().register(ENTITY_SHIELD_DEFLECT); - event.getRegistry().register(ENTITY_TORNADO_AMBIENT); - event.getRegistry().register(ENTITY_ZOMBIE_SPAWNER_SPAWN); - - event.getRegistry().register(ENTITY_EVIL_WIZARD_AMBIENT); - event.getRegistry().register(ENTITY_EVIL_WIZARD_HURT); - event.getRegistry().register(ENTITY_EVIL_WIZARD_DEATH); - event.getRegistry().register(ENTITY_ICE_GIANT_ATTACK); - event.getRegistry().register(ENTITY_ICE_GIANT_DESPAWN); - event.getRegistry().register(ENTITY_ICE_WRAITH_AMBIENT); - event.getRegistry().register(ENTITY_MAGIC_SLIME_ATTACK); - event.getRegistry().register(ENTITY_MAGIC_SLIME_EXPLODE); - event.getRegistry().register(ENTITY_MAGIC_SLIME_SPLAT); - event.getRegistry().register(ENTITY_PHOENIX_AMBIENT); - event.getRegistry().register(ENTITY_PHOENIX_BURN); - event.getRegistry().register(ENTITY_PHOENIX_FLAP); - event.getRegistry().register(ENTITY_PHOENIX_HURT); - event.getRegistry().register(ENTITY_PHOENIX_DEATH); - event.getRegistry().register(ENTITY_REMNANT_AMBIENT); - event.getRegistry().register(ENTITY_REMNANT_HURT); - event.getRegistry().register(ENTITY_REMNANT_DEATH); - event.getRegistry().register(ENTITY_SHADOW_WRAITH_AMBIENT); - event.getRegistry().register(ENTITY_SHADOW_WRAITH_NOISE); - event.getRegistry().register(ENTITY_SHADOW_WRAITH_HURT); - event.getRegistry().register(ENTITY_SHADOW_WRAITH_DEATH); - event.getRegistry().register(ENTITY_SPIRIT_HORSE_VANISH); - event.getRegistry().register(ENTITY_SPIRIT_WOLF_VANISH); - event.getRegistry().register(ENTITY_STORM_ELEMENTAL_AMBIENT); - event.getRegistry().register(ENTITY_STORM_ELEMENTAL_BURN); - event.getRegistry().register(ENTITY_STORM_ELEMENTAL_WIND); - event.getRegistry().register(ENTITY_STORM_ELEMENTAL_HURT); - event.getRegistry().register(ENTITY_STORM_ELEMENTAL_DEATH); - event.getRegistry().register(ENTITY_WIZARD_YES); - event.getRegistry().register(ENTITY_WIZARD_NO); - event.getRegistry().register(ENTITY_WIZARD_AMBIENT); - event.getRegistry().register(ENTITY_WIZARD_TRADING); - event.getRegistry().register(ENTITY_WIZARD_HURT); - event.getRegistry().register(ENTITY_WIZARD_DEATH); - - event.getRegistry().register(ENTITY_DARKNESS_ORB_HIT); - event.getRegistry().register(ENTITY_DART_HIT); - event.getRegistry().register(ENTITY_DART_HIT_BLOCK); - event.getRegistry().register(ENTITY_FIREBOLT_HIT); - event.getRegistry().register(ENTITY_FIREBOMB_THROW); - event.getRegistry().register(ENTITY_FIREBOMB_SMASH); - event.getRegistry().register(ENTITY_FIREBOMB_FIRE); - event.getRegistry().register(ENTITY_FORCE_ARROW_HIT); - event.getRegistry().register(ENTITY_FORCE_ORB_HIT); - event.getRegistry().register(ENTITY_FORCE_ORB_HIT_BLOCK); - event.getRegistry().register(ENTITY_ICEBALL_HIT); - event.getRegistry().register(ENTITY_ICE_CHARGE_SMASH); - event.getRegistry().register(ENTITY_ICE_CHARGE_ICE); - event.getRegistry().register(ENTITY_ICE_LANCE_SMASH); - event.getRegistry().register(ENTITY_ICE_LANCE_HIT); - event.getRegistry().register(ENTITY_ICE_SHARD_SMASH); - event.getRegistry().register(ENTITY_ICE_SHARD_HIT); - event.getRegistry().register(ENTITY_LIGHTNING_ARROW_HIT); - event.getRegistry().register(ENTITY_LIGHTNING_DISC_HIT); -// event.getRegistry().register(ENTITY_MAGIC_FIREBALL_HIT); - event.getRegistry().register(ENTITY_MAGIC_MISSILE_HIT); - event.getRegistry().register(ENTITY_POISON_BOMB_THROW); - event.getRegistry().register(ENTITY_POISON_BOMB_SMASH); - event.getRegistry().register(ENTITY_POISON_BOMB_POISON); - event.getRegistry().register(ENTITY_SMOKE_BOMB_THROW); - event.getRegistry().register(ENTITY_SMOKE_BOMB_SMASH); - event.getRegistry().register(ENTITY_SMOKE_BOMB_SMOKE); - event.getRegistry().register(ENTITY_HOMING_SPARK_HIT); - event.getRegistry().register(ENTITY_SPARK_BOMB_THROW); - event.getRegistry().register(ENTITY_SPARK_BOMB_HIT); - event.getRegistry().register(ENTITY_SPARK_BOMB_HIT_BLOCK); - event.getRegistry().register(ENTITY_SPARK_BOMB_CHAIN); - event.getRegistry().register(ENTITY_THUNDERBOLT_HIT); - - event.getRegistry().register(SPELL_STATIC_AURA_RETALIATE); - event.getRegistry().register(SPELL_CURSE_OF_SOULBINDING_RETALIATE); - event.getRegistry().register(SPELL_TRANSPORTATION_TRAVEL); - - event.getRegistry().register(MISC_DISCOVER_SPELL); - event.getRegistry().register(MISC_BOOK_OPEN); - event.getRegistry().register(MISC_PAGE_TURN); - event.getRegistry().register(MISC_FREEZE); - event.getRegistry().register(MISC_SPELL_FAIL); - - for(Spell spell : Spell.getAllSpells()){ - event.getRegistry().registerAll(spell.getSounds()); - } - - for(Forfeit forfeit : Forfeit.getForfeits()){ - event.getRegistry().register(forfeit.getSound()); - } + event.getRegistry().registerAll(sounds.toArray(new SoundEvent[0])); } + } \ No newline at end of file diff --git a/src/main/java/electroblob/wizardry/spell/FireBreath.java b/src/main/java/electroblob/wizardry/spell/FireBreath.java index f4242e29..3f514e68 100644 --- a/src/main/java/electroblob/wizardry/spell/FireBreath.java +++ b/src/main/java/electroblob/wizardry/spell/FireBreath.java @@ -27,6 +27,7 @@ public class FireBreath extends SpellRay { this.particleJitter(0.3); this.particleSpacing(0.25); addProperties(DAMAGE, BURN_DURATION); + this.soundValues(3f, 1, 0); } @Override diff --git a/src/main/java/electroblob/wizardry/spell/FlameRay.java b/src/main/java/electroblob/wizardry/spell/FlameRay.java index 35cf6ca6..c96aaa57 100644 --- a/src/main/java/electroblob/wizardry/spell/FlameRay.java +++ b/src/main/java/electroblob/wizardry/spell/FlameRay.java @@ -25,7 +25,7 @@ public class FlameRay extends SpellRay { this.particleVelocity(1); this.particleSpacing(0.5); addProperties(DAMAGE, BURN_DURATION); - this.soundValues(1.5f, 1, 0); + this.soundValues(2.5f, 1, 0); } // The following three methods serve as a good example of how to implement continuous spell sounds (hint: it's easy) diff --git a/src/main/java/electroblob/wizardry/spell/IceAge.java b/src/main/java/electroblob/wizardry/spell/IceAge.java index 5086207f..022817d5 100644 --- a/src/main/java/electroblob/wizardry/spell/IceAge.java +++ b/src/main/java/electroblob/wizardry/spell/IceAge.java @@ -23,7 +23,7 @@ public class IceAge extends Spell { public IceAge(){ super("ice_age", SpellActions.POINT_DOWN, false); - this.soundValues(0.7f, 1.0f, 0); + this.soundValues(1.5f, 1.0f, 0); addProperties(EFFECT_RADIUS, EFFECT_DURATION); } diff --git a/src/main/resources/assets/ebwizardry/sounds.json b/src/main/resources/assets/ebwizardry/sounds.json index f6224f68..0a0b38b7 100644 --- a/src/main/resources/assets/ebwizardry/sounds.json +++ b/src/main/resources/assets/ebwizardry/sounds.json @@ -23,7 +23,8 @@ "entity.entrapment.ambient": {"category": "spells", "sounds": ["portal/portal"]}, "entity.entrapment.vanish": {"category": "spells", "sounds": ["portal/trigger"]}, "entity.fire_ring.ambient": {"category": "spells", "sounds": ["fire/fire"]}, - "entity.fire_sigil.trigger": {"category": "spells", "sounds": ["mob/ghast/fireball4"]}, + "entity.fire_sigil.trigger": {"category": "spells", "sounds": ["ebwizardry:combust"]}, + "entity.forcefield.ambient": {"category": "spells", "sounds": ["ebwizardry:forcefield"]}, "entity.forcefield.deflect": {"category": "spells", "sounds": ["ebwizardry:effect1", "ebwizardry:effect2"]}, "entity.frost_sigil.trigger": {"category": "spells", "sounds": ["ebwizardry:freeze"]}, "entity.hammer.attack": {"category": "spells", "sounds": ["ebwizardry:arc1", "ebwizardry:arc2", "ebwizardry:arc3"]}, @@ -31,7 +32,7 @@ "entity.hammer.throw": {"category": "spells", "sounds": ["random/bow"]}, "entity.hammer.land": {"category": "spells", "sounds": ["random/anvil_land"]}, "entity.heal_aura.ambient": {"category": "spells", "sounds": ["ebwizardry:sparkle"]}, - "entity.ice_spike.extend": {"category": "spells", "sounds": ["ebwizardry:ice"]}, + "entity.ice_spike.extend": {"category": "spells", "sounds": ["ebwizardry:slice"]}, "entity.lightning_sigil.trigger": {"category": "spells", "sounds": ["ebwizardry:arc1", "ebwizardry:arc2", "ebwizardry:arc3"]}, "entity.meteor.falling": {"category": "spells", "sounds": ["ebwizardry:flames_loop"]}, "entity.shield.deflect": {"category": "spells", "sounds": ["ebwizardry:effect1", "ebwizardry:effect2"]}, @@ -82,7 +83,7 @@ "entity.firebolt.hit": {"category": "spells", "sounds": ["liquid/lavapop"]}, "entity.firebomb.throw": {"category": "spells", "sounds": ["random/bow"]}, "entity.firebomb.smash": {"category": "spells", "sounds": ["random/glass1", "random/glass2", "random/glass3"]}, - "entity.firebomb.fire": {"category": "spells", "sounds": ["mob/ghast/fireball4"]}, + "entity.firebomb.fire": {"category": "spells", "sounds": ["ebwizardry:combust"]}, "entity.force_arrow.hit": {"category": "spells", "sounds": ["fireworks/blast1"]}, "entity.force_orb.hit": {"category": "spells", "sounds": ["damage/hit1", "damage/hit2", "damage/hit3"]}, "entity.force_orb.hit_block": {"category": "spells", "sounds": ["fireworks/blast1"]}, @@ -124,14 +125,14 @@ "spell.banish": {"category": "spells", "sounds": ["mob/endermen/portal", "mob/endermen/portal2"]}, "spell.black_hole": {"category": "spells", "sounds": ["mob/evocation_illager/prepare_attack1", "mob/evocation_illager/prepare_attack2"]}, "spell.blink": {"category": "spells", "sounds": ["mob/endermen/portal", "mob/endermen/portal2"]}, - "spell.blizzard": {"category": "spells", "sounds": ["ebwizardry:ice"]}, + "spell.blizzard": {"category": "spells", "sounds": ["ebwizardry:ice_age"]}, "spell.bubble.shoot": {"category": "spells", "sounds": ["ebwizardry:ice"]}, "spell.bubble.splash": {"category": "spells", "sounds": ["liquid/swim1", "liquid/swim2", "liquid/swim3", "liquid/swim4"], "volume": 2}, "spell.chain_lightning": {"category": "spells", "sounds": ["ebwizardry:arc1", "ebwizardry:arc2", "ebwizardry:arc3"]}, "spell.charge": {"category": "spells", "sounds": ["ebwizardry:shockwave"]}, "spell.clairvoyance": {"category": "spells", "sounds": ["ebwizardry:conjure"]}, "spell.cobwebs": {"category": "spells", "sounds": ["random/fizz"]}, - "spell.combustion_rune": {"category": "spells", "sounds": ["fire/ignite"]}, + "spell.combustion_rune": {"category": "spells", "sounds": ["ebwizardry:combust"]}, "spell.containment": {"category": "spells", "sounds": ["mob/guardian/curse"]}, "spell.conjure_armour": {"category": "spells", "sounds": ["ebwizardry:conjure"]}, "spell.conjure_block": {"category": "spells", "sounds": ["ebwizardry:conjure"]}, @@ -182,9 +183,9 @@ "spell.freeze": {"category": "spells", "sounds": ["ebwizardry:ice"]}, "spell.freezing_weapon": {"category": "spells", "sounds": ["ebwizardry:buff"]}, "spell.frost_axe": {"category": "spells", "sounds": ["ebwizardry:buff"]}, - "spell.frost_ray.start": {"category": "spells", "sounds": ["ebwizardry:frostray"]}, - "spell.frost_ray.loop": {"category": "spells", "sounds": ["ebwizardry:frostray"]}, - "spell.frost_ray.end": {"category": "spells", "sounds": ["ebwizardry:frostray"]}, + "spell.frost_ray.start": {"category": "spells", "sounds": ["ebwizardry:frost_start"]}, + "spell.frost_ray.loop": {"category": "spells", "sounds": ["ebwizardry:frost_loop"]}, + "spell.frost_ray.end": {"category": "spells", "sounds": ["ebwizardry:frost_end"]}, "spell.frost_sigil": {"category": "spells", "sounds": ["ebwizardry:ice"]}, "spell.frost_step": {"category": "spells", "sounds": ["ebwizardry:buff"]}, "spell.glide": {"category": "spells", "sounds": [{"name": "item/elytra/elytra_loop", "volume": 0.6}]}, @@ -205,13 +206,13 @@ "spell.heal_ally": {"category": "spells", "sounds": ["ebwizardry:heal"]}, "spell.healing_aura": {"category": "spells", "sounds": ["ebwizardry:conjure_large"]}, "spell.homing_spark": {"category": "spells", "sounds": ["ebwizardry:conjure"]}, - "spell.iceball": {"category": "spells", "sounds": ["ebwizardry:ice"]}, - "spell.ice_age": {"category": "spells", "sounds": ["ebwizardry:ice"]}, - "spell.ice_charge": {"category": "spells", "sounds": ["ebwizardry:ice"]}, + "spell.iceball": {"category": "spells", "sounds": ["ebwizardry:whoosh1", "ebwizardry:whoosh2"]}, + "spell.ice_age": {"category": "spells", "sounds": ["ebwizardry:ice_age"]}, + "spell.ice_charge": {"category": "spells", "sounds": ["ebwizardry:whoosh1", "ebwizardry:whoosh2"]}, "spell.ice_lance": {"category": "spells", "sounds": ["ebwizardry:ice"]}, "spell.ice_shard": {"category": "spells", "sounds": ["ebwizardry:ice"]}, "spell.ice_shroud": {"category": "spells", "sounds": ["ebwizardry:buff"]}, - "spell.ice_spikes": {"category": "spells", "sounds": ["ebwizardry:ice"]}, + "spell.ice_spikes": {"category": "spells", "sounds": ["ebwizardry:whoosh1", "ebwizardry:whoosh2"]}, "spell.ice_statue.shoot": {"category": "spells", "sounds": ["ebwizardry:ice"]}, "spell.ice_statue.freeze": {"category": "spells", "sounds": ["ebwizardry:freeze"]}, "spell.ignite": {"category": "spells", "sounds": ["fire/ignite"]}, @@ -242,7 +243,7 @@ "spell.lightning_web.start": {"category": "spells", "sounds": ["ebwizardry:lightning_ray_start"]}, "spell.lightning_web.loop": {"category": "spells", "sounds": ["ebwizardry:lightning_ray_loop"]}, "spell.lightning_web.end": {"category": "spells", "sounds": ["ebwizardry:lightning_ray_end"]}, - "spell.magic_missile": {"category": "spells", "sounds": ["ebwizardry:magic1"]}, + "spell.magic_missile": {"category": "spells", "sounds": ["ebwizardry:magic"]}, "spell.metamorphosis": {"category": "spells", "sounds": ["mob/illusion_illager/prepare_mirror"]}, "spell.meteor": {"category": "spells", "sounds": ["mob/illusion_illager/prepare_blind"]}, "spell.mind_control": {"category": "spells", "sounds": ["mob/guardian/elder_death"]}, @@ -257,7 +258,7 @@ "spell.plague_of_darkness": {"category": "spells", "sounds": ["mob/wither/death"]}, "spell.pocket_furnace": {"category": "spells", "sounds": ["block/furnace/fire_crackle1", "block/furnace/fire_crackle2", "block/furnace/fire_crackle3", "block/furnace/fire_crackle4", "block/furnace/fire_crackle5"]}, "spell.pocket_workbench": {"category": "spells", "sounds": ["ebwizardry:conjure"]}, - "spell.poison": {"category": "spells", "sounds": ["ebwizardry:ice"]}, + "spell.poison": {"category": "spells", "sounds": ["ebwizardry:whoosh1", "ebwizardry:whoosh2"]}, "spell.poison_bomb": {"category": "spells", "sounds": ["random/bow"]}, "spell.possession.possess": {"category": "spells", "sounds": ["mob/evocation_illager/prepare_attack1", "mob/evocation_illager/prepare_attack2"]}, "spell.possession.end": {"category": "spells", "sounds": ["mob/guardian/elder_idle1", "mob/guardian/elder_idle2", "mob/guardian/elder_idle3", "mob/guardian/elder_idle4"]}, @@ -268,7 +269,7 @@ "spell.replenish_hunger": {"category": "spells", "sounds": ["ebwizardry:heal"]}, "spell.resurrection": {"category": "spells", "sounds": ["ebwizardry:buff_large"]}, "spell.reversal": {"category": "spells", "sounds": ["mob/wither/hurt1", "mob/wither/hurt2", "mob/wither/hurt3", "mob/wither/hurt4"]}, - "spell.ring_of_fire": {"category": "spells", "sounds": ["mob/ghast/fireball4"]}, + "spell.ring_of_fire": {"category": "spells", "sounds": ["ebwizardry:combust"]}, "spell.satiety": {"category": "spells", "sounds": ["ebwizardry:buff_large"]}, "spell.shadow_ward.start": {"category": "spells", "sounds": ["ebwizardry:dark_aura_start"]}, "spell.shadow_ward.loop": {"category": "spells", "sounds": ["ebwizardry:dark_aura_loop"]}, @@ -313,15 +314,15 @@ "spell.telekinesis": {"category": "spells", "sounds": ["ebwizardry:conjure"]}, "spell.thunderbolt": {"category": "spells", "sounds": ["mob/evocation_illager/cast1", "mob/evocation_illager/cast2"]}, "spell.thunderstorm": {"category": "spells", "sounds": ["ebwizardry:arc1", "ebwizardry:arc2", "ebwizardry:arc3"]}, - "spell.tornado": {"category": "spells", "sounds": ["ebwizardry:ice"]}, + "spell.tornado": {"category": "spells", "sounds": ["ebwizardry:zoom1", "ebwizardry:zoom2", "ebwizardry:zoom3"]}, "spell.transience": {"category": "spells", "sounds": ["ebwizardry:buff"]}, "spell.transportation": {"category": "spells", "sounds": ["portal/trigger"]}, "spell.transportation.travel": {"category": "spells", "sounds": ["portal/travel"]}, "spell.vanishing_box": {"category": "spells", "sounds": ["block/enderchest/open"]}, "spell.vex_swarm": {"category": "spells", "sounds": ["mob/evocation_illager/prepare_summon"]}, - "spell.wall_of_frost.start": {"category": "spells", "sounds": ["ebwizardry:frostray"]}, - "spell.wall_of_frost.loop": {"category": "spells", "sounds": ["ebwizardry:frostray"]}, - "spell.wall_of_frost.end": {"category": "spells", "sounds": ["ebwizardry:frostray"]}, + "spell.wall_of_frost.start": {"category": "spells", "sounds": ["ebwizardry:frost_start"]}, + "spell.wall_of_frost.loop": {"category": "spells", "sounds": ["ebwizardry:frost_loop"]}, + "spell.wall_of_frost.end": {"category": "spells", "sounds": ["ebwizardry:frost_end"]}, "spell.ward": {"category": "spells", "sounds": ["ebwizardry:buff"]}, "spell.water_breathing": {"category": "spells", "sounds": ["ebwizardry:buff"]}, "spell.whirlwind": {"category": "spells", "sounds": ["ebwizardry:ice"]}, @@ -341,7 +342,7 @@ "forfeit.freeze_self": {"category": "spells", "sounds": ["ebwizardry:freeze"]}, "forfeit.freeze_self_2": {"category": "spells", "sounds": ["ebwizardry:freeze"]}, "forfeit.ice_spikes": {"category": "spells", "sounds": []}, - "forfeit.blizzard": {"category": "spells", "sounds": ["ebwizardry:ice"]}, + "forfeit.blizzard": {"category": "spells", "sounds": ["ebwizardry:ice_age"]}, "forfeit.ice_wraiths": {"category": "spells", "sounds": ["mob/wither/idle1", "mob/wither/idle2", "mob/wither/idle3", "mob/wither/idle4"]}, "forfeit.hailstorm": {"category": "spells", "sounds": ["mob/illusion_illager/prepare_blind"]}, "forfeit.ice_giant": {"category": "spells", "sounds": ["mob/evocation_illager/prepare_summon"]}, @@ -360,7 +361,7 @@ "forfeit.snares": {"category": "spells", "sounds": ["dig/grass1", "dig/grass2", "dig/grass3", "dig/grass4"]}, "forfeit.squid": {"category": "spells", "sounds": ["liquid/swim1", "liquid/swim2", "liquid/swim3", "liquid/swim4"], "volume": 2}, "forfeit.uproot_plants": {"category": "spells", "sounds": []}, - "forfeit.poison_self": {"category": "spells", "sounds": ["ebwizardry:ice"]}, + "forfeit.poison_self": {"category": "spells", "sounds": ["random/fizz"]}, "forfeit.flood": {"category": "spells", "sounds": ["item/bucket/empty1", "item/bucket/empty2", "item/bucket/empty3"]}, "forfeit.bury_self": {"category": "spells", "sounds": ["ebwizardry:rumble"]}, "forfeit.spill_inventory": {"category": "spells", "sounds": ["ebwizardry:effect1", "ebwizardry:effect2"]}, diff --git a/src/main/resources/assets/ebwizardry/sounds/combust.ogg b/src/main/resources/assets/ebwizardry/sounds/combust.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3ff943b7e4f602ba646eae6cf26edea5d375f03d GIT binary patch literal 33006 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%0D?@=}hEo%{mX@4Hr(m%Oap zdYEIQdjhKn!@Lsfhh`gjc#bxG=DbzL`@T%y{9)|2)02aPk6p^xf8~at>P<8K{<(#^ zkKaAn`jOZ8h|jy@_YUUFtjdu&E53H;%sJ)Na<@NL8m#%*vhc0aTl)_$&jrqt$-C2h zVM4XN=hd~2=jvWm3-0-}Fv|V%@BSlyGOzAjzxCpQTPHuOmt6evGeL68nqukHm&emK zpUEtLow#Gmlv($8?+&t6W83!3hQ0md%9f>pvPI9^zwWzVczLlc2k%LSKkv5vW0J8&pX%ga+Sl*#9iMBxdh$v|+Y7vJ&7VH;-v9h| z`^TF7eCo%i?`xa)ef{J8_CB@7H)1B9DG$^?uW5my zVav|FPx7PPk2PJnprGgH*VL>(zxweni^nhPbI!FL3SV||NumwQL^pQ!z+f@;&G(%1 zl9xK=2WN$BGJBa~Sn_)L;!R2GvTA4Fj$XQ@cExY+l(j`S(_+5Z29^ZH<`&EB@@+>Ki z)n9hqlH9K5c<568hNHUbUq9^YT6xor$4WqShuneB>#Pplic-ElTk@@XW!T&McRDj( z=dCyS>1EX6h@xOF+Z$U< zYsy~NaprGb7+|;H_KmEi+awy^XZ%g8lnp&_uCmPdhm9PY+u=K>eqD_IY`9~>f0I{} zpDq0PYwrBDU7s&GJN~OW&wsAIWaa+z{~!O8`Fgx@`!?^Nm#y!;u&I0ed*PP%VV{g8 z@4Ra$%1`j$bZW72;D@^(Z>_beKXSw7`mOm^);A3dSEYTMFr zaYJ3n4z|y?SVb*&7<^JH40wHrMR6L(0e6vEGlDjMuB^A(9(Oy!U3J<$|4)~DyVMG7 z{j3)4-uu=jtVlig{CLV1LxWE%GoPhh_HR8j_YY6d(O%zqb96KlmrVI& zb6=^pqI3D(>}76;gC1ql-@R{)Q3s2-1Wczr3Zw~VM}@K=+(3P^oLK+cN{-$ zHRb1Ly7q`EAHDlclPo-4$(2KU)NYK3Vc|*%ec;D8@H#b>PLq2nO9OPGjm=f@46Jq z+vumGt$wV^l>r_gJ{=Q#439}HW?=a6Gb$o3F7BQL_nI|tw$I6rf9{uhFs0Fl&-20U z>v<9F>HY2LwcPFZODzh1JQS9Fd_BH??&0Uz52obzuP?S*bGY!;hr^qf^Bun~vv}%M e=I^i9*Z!7DNVUAPy=+royE}8X(j5jqWB>r-yrGK# literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/ebwizardry/sounds/crackle.ogg b/src/main/resources/assets/ebwizardry/sounds/crackle.ogg deleted file mode 100644 index 44a499bf0055abbb97d0f8a0950d89cb0fb931a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15730 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