Skip to content

Commit

Permalink
New Scythe, New Ring, tons of changes, oh my god
Browse files Browse the repository at this point in the history
  • Loading branch information
SammySemicolon committed Oct 28, 2024
1 parent 1c5a956 commit d537a8e
Show file tree
Hide file tree
Showing 83 changed files with 864 additions and 725 deletions.
16 changes: 14 additions & 2 deletions src/generated/resources/assets/malum/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,7 @@
"effect.malum.aethers_charm.description": "The heavens call for you, increasing jump height and decreasing gravity.",
"effect.malum.anglers_lure": "Angler's Lure",
"effect.malum.anglers_lure.description": "Let any fish who meets my gaze learn the true meaning of fear; for I am the harbinger of death. The bane of creatures sub-aqueous, my rod is true and unwavering as I cast into the aquatic abyss. A man, scorned by this uncaring Earth, finds solace in the sea. My only friend, the worm upon my hook. Wriggling, writhing, struggling to surmount the mortal pointlessness that permeates this barren world. I am alone. I am empty. And yet, I fish.",
"effect.malum.arcane_reverberation": "Arcane Reverberation",
"effect.malum.cancerous_growth": "Cancerous Growth",
"effect.malum.cancerous_growth.description": "You are emboldened by uncontrolled growth, increasing maximum health.",
"effect.malum.earthen_might": "Earthen Might",
Expand All @@ -320,6 +321,7 @@
"effect.malum.grim_certainty.description": "The Weight of Worlds oscillates, sealing the next strike as a critical blow.",
"effect.malum.ifrits_embrace": "Ifrit's Embrace",
"effect.malum.ifrits_embrace.description": "The warm embrace of fire coats your soul, mending your seared scars.",
"effect.malum.imminent_deliverance": "Imminent Deliverance",
"effect.malum.miners_rage": "Miner's Rage",
"effect.malum.miners_rage.description": "Your tools are bolstered with radiance, increasing your mining and attack speed.",
"effect.malum.poseidons_grasp": "Poseidon's Grasp",
Expand Down Expand Up @@ -415,6 +417,7 @@
"item.malum.demigirl_prideweave": "Demigirl Prideweave",
"item.malum.dreaded_weave": "Dreaded Weave",
"item.malum.earthen_spirit": "Earthen Spirit",
"item.malum.edge_of_deliverance": "Edge of Deliverance",
"item.malum.elaborate_brooch": "Elaborate Brooch",
"item.malum.eldritch_spirit": "Eldritch Spirit",
"item.malum.enby_prideweave": "Enby Prideweave",
Expand Down Expand Up @@ -491,6 +494,7 @@
"item.malum.ring_of_arcane_prowess": "Ring of Arcane Prowess",
"item.malum.ring_of_curative_talent": "Ring of Curative Talent",
"item.malum.ring_of_desperate_voracity": "Ring of Desperate Voracity",
"item.malum.ring_of_echoing_arcana": "Ring of Echoing Arcana",
"item.malum.ring_of_esoteric_spoils": "Ring of Esoteric Spoils",
"item.malum.ring_of_growing_flesh": "Ring of Growing Flesh",
"item.malum.ring_of_gruesome_concentration": "Ring of Gruesome Concentration",
Expand Down Expand Up @@ -854,6 +858,7 @@
"malum.gui.book.entry.page.headline.void.material_study_void_salts.reexamination": "Reexamination: Void Salts",
"malum.gui.book.entry.page.headline.void.necklace_of_the_hidden_blade": "The Hidden Blade",
"malum.gui.book.entry.page.headline.void.necklace_of_the_watcher": "Necklace of the Watcher",
"malum.gui.book.entry.page.headline.void.ring_of_echoing_arcana": "Ring of Echoing Arcana",
"malum.gui.book.entry.page.headline.void.ring_of_growing_flesh": "Ring of Growing Flesh",
"malum.gui.book.entry.page.headline.void.ring_of_gruesome_concentration": "Gruesome Concentration",
"malum.gui.book.entry.page.headline.void.rune_of_bolstering": "Rune of Bolstering",
Expand Down Expand Up @@ -1160,6 +1165,7 @@
"malum.gui.book.entry.page.text.void.necklace_of_the_hidden_blade.2": "Upon activation, the necklace remains inert for a total of ten seconds, requiring rest and concentration in order to recover it's effect. Attacking at any point in this state will prolong this absence of function.",
"malum.gui.book.entry.page.text.void.necklace_of_the_hidden_blade.3": "The counterattack's nature is a strange one, one I have not fully identified. It is as though the blade asserts its existence in multiple places at once, demanding reality make it so.",
"malum.gui.book.entry.page.text.void.necklace_of_the_watcher.1": "Souls emit energy when damaged, not merely when shattered. This necklace allows me to harness that energy, causing effects that normally only occur when I collect a spirit to also happen when I strike an enemy at full health.",
"malum.gui.book.entry.page.text.void.ring_of_echoing_arcana.1": "Overclocking the Ring of Curative Talent created a useful ring, so I have applied that principle to another ring, Manaweaving, to not only bind, but create resonance in magic. The Ring of Echoing Arcana grants Arcane Resonance whenever I collect a spirit crystal, empowering all my other spirit-collection effects.",
"malum.gui.book.entry.page.text.void.ring_of_growing_flesh.1": "I have overclocked the Ring of Curative Talent, creating a ring that does not simply heal, but overheal, granting additional health instead of regeneration whenever I collect a spirit crystal.",
"malum.gui.book.entry.page.text.void.ring_of_gruesome_concentration.1": "Why would Gluttony be restricted to the collection of spirits? By eating foul food, I can make myself hungrier, and so cultivate and concentrate what remains, increasing my magical might even as I starve.",
"malum.gui.book.entry.page.text.void.rune_of_bolstering.1": "The Rune of Bolstering does not heal like its counterpart. Instead, it forces the body to heal past its limits, granting a small amount of extra health.",
Expand Down Expand Up @@ -1334,6 +1340,8 @@
"malum.gui.book.entry.void.necklace_of_the_hidden_blade.description": "A knife at their backs",
"malum.gui.book.entry.void.necklace_of_the_watcher": "Necklace of the Watcher",
"malum.gui.book.entry.void.necklace_of_the_watcher.description": "It looks back",
"malum.gui.book.entry.void.ring_of_echoing_arcana": "Ring of Echoing Arcana",
"malum.gui.book.entry.void.ring_of_echoing_arcana.description": "I can see see the future $ifuture future/$",
"malum.gui.book.entry.void.ring_of_growing_flesh": "Ring of Growing Flesh",
"malum.gui.book.entry.void.ring_of_growing_flesh.description": "Creeping and crawling",
"malum.gui.book.entry.void.ring_of_gruesome_concentration": "Ring of Gruesome Concentration",
Expand Down Expand Up @@ -1410,6 +1418,7 @@
"malum.gui.curio.effect.soul_ward_magic_resilience": "Soul Ward Magic Resilience",
"malum.gui.curio.effect.soul_ward_physical_absorption": "Soul Ward Absorbs Physical Damage Equally to Magic Damage",
"malum.gui.curio.effect.spirits_add_health": "Spirit Collection Grants Extra Hearts",
"malum.gui.curio.effect.spirits_buff_spirit_collection": "Spirit Collection Generates Arcane Resonance",
"malum.gui.curio.effect.spirits_extend_effect": "Spirit Collection Aids Potion Durations",
"malum.gui.curio.effect.spirits_gluttony": "Spirit Collection Generates Gluttony",
"malum.gui.curio.effect.spirits_heal": "Spirit Collection Replenishes Health",
Expand Down Expand Up @@ -1559,6 +1568,9 @@
"malum.subtitle.deepslate_soulstone_place": "Block placed",
"malum.subtitle.deepslate_soulstone_step": "Footsteps",
"malum.subtitle.draining_motif": "Draining motif",
"malum.subtitle.echoing_ring_absorbs": "Echoing ring absorbs",
"malum.subtitle.edge_of_deliverance_cuts": "Edge of deliverance cuts",
"malum.subtitle.edge_of_deliverance_sweeps": "Edge of deliverance sweeps",
"malum.subtitle.ether_break": "Block broken",
"malum.subtitle.ether_place": "Block placed",
"malum.subtitle.flesh_ring_absorbs": "Flesh ring absorbs",
Expand All @@ -1574,7 +1586,7 @@
"malum.subtitle.hidden_blade_unleashed": "Hidden blade unleashed",
"malum.subtitle.hungry_belt_feeds": "Hungry belt feeds",
"malum.subtitle.impetus_takes_damage": "Impetus takes damage",
"malum.subtitle.malignant_metal_resonates": "Malignant metal resonates",
"malum.subtitle.malignant_metal_motif": "Malignant metal motif",
"malum.subtitle.metallic_trinket_equipped": "Metallic trinket equipped",
"malum.subtitle.ornate_trinket_equipped": "Ornate trinket equipped",
"malum.subtitle.pedestal_item_inserted": "Pedestal item inserted",
Expand Down Expand Up @@ -1685,7 +1697,7 @@
"malum.subtitle.void_trinket_equipped": "Void trinket equipped",
"malum.subtitle.voracious_ring_feeds": "Voracious ring feeds",
"malum.subtitle.warping_engine_reverberates": "Warping engine reverberates",
"malum.subtitle.weight_of_worlds_slashes": "Weight of worlds slashes",
"malum.subtitle.weight_of_worlds_cuts": "Weight of worlds cuts",
"tetra.improvement.malum.soul_strike.description": "The item's material allows it to strike the soul.",
"tetra.improvement.malum.soul_strike.name": "Soul Strike",
"tetra.material.hallowed_gold": "Hallowed Gold",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "malum:item/ring_of_echoing_arcana"
}
}
1 change: 1 addition & 0 deletions src/generated/resources/data/curios/tags/items/ring.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"malum:ring_of_the_demolitionist",
"malum:ring_of_the_endless_well",
"malum:ring_of_growing_flesh",
"malum:ring_of_echoing_arcana",
"malum:ring_of_gruesome_concentration"
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@
},
"spirits": [
{
"type": "wicked",
"count": 32
"type": "arcane",
"count": 64
},
{
"type": "arcane",
"type": "wicked",
"count": 32
},
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"type": "malum:spirit_infusion",
"extra_items": [
{
"count": 16,
"item": "malum:null_slate"
},
{
"count": 8,
"item": "malum:mnemonic_fragment"
}
],
"input": {
"count": 1,
"item": "malum:ring_of_manaweaving"
},
"output": {
"item": "malum:ring_of_echoing_arcana"
},
"spirits": [
{
"type": "aqueous",
"count": 32
},
{
"type": "arcane",
"count": 16
},
{
"type": "wicked",
"count": 16
},
{
"type": "eldritch",
"count": 8
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
},
{
"type": "eldritch",
"count": 16
"count": 8
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
},
{
"type": "eldritch",
"count": 16
"count": 8
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"type": "malum:spirit_infusion",
"extra_items": [
{
"count": 8,
"count": 16,
"item": "malum:null_slate"
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,42 @@
"malum:scythe_melee",
"malum:voodoo",
"malum:scythe_sweep",
"malum:hidden_blade_counter"
"malum:hidden_blade_counter",
{
"id": "irons_spellbooks:blood_magic",
"required": false
},
{
"id": "irons_spellbooks:eldritch_magic",
"required": false
},
{
"id": "irons_spellbooks:ender_magic",
"required": false
},
{
"id": "irons_spellbooks:evocation_magic",
"required": false
},
{
"id": "irons_spellbooks:fire_magic",
"required": false
},
{
"id": "irons_spellbooks:holy_magic",
"required": false
},
{
"id": "irons_spellbooks:ice_magic",
"required": false
},
{
"id": "irons_spellbooks:lightning_magic",
"required": false
},
{
"id": "irons_spellbooks:nature_magic",
"required": false
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"malum:rune_of_igneous_solace",
"malum:ring_of_the_endless_well",
"malum:ring_of_growing_flesh",
"malum:ring_of_echoing_arcana",
"malum:ring_of_gruesome_concentration",
"malum:necklace_of_the_hidden_blade",
"malum:necklace_of_the_watcher",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

public class PointyDirectionalBehaviorComponent implements LodestoneBehaviorComponent {

//TODO: move this to lodestone
public static PointyDirectionalBehaviorComponent DIRECTIONAL = new PointyDirectionalBehaviorComponent();
private final Function<LodestoneWorldParticle, Vec3> direction;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

public class PointyDirectionalParticleBehavior implements LodestoneParticleBehavior {

//TODO: move this to lodestone
public static LodestoneParticleBehavior DIRECTIONAL = new PointyDirectionalParticleBehavior();

protected PointyDirectionalParticleBehavior() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Axis;
import com.sammy.malum.client.*;
import com.sammy.malum.common.entity.boomerang.ScytheBoomerangEntity;
import com.sammy.malum.common.item.*;
import com.sammy.malum.common.item.curiosities.weapons.scythe.MalumScytheItem;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.entity.EntityRenderer;
Expand All @@ -14,6 +16,13 @@
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import team.lodestar.lodestone.registry.client.*;
import team.lodestar.lodestone.systems.rendering.*;
import team.lodestar.lodestone.systems.rendering.rendeertype.*;

import java.awt.*;

import static com.sammy.malum.MalumMod.malumPath;

public class ScytheBoomerangEntityRenderer extends EntityRenderer<ScytheBoomerangEntity> {
public final ItemRenderer itemRenderer;
Expand All @@ -28,15 +37,28 @@ public ScytheBoomerangEntityRenderer(EntityRendererProvider.Context context) {
@Override
public void render(ScytheBoomerangEntity entityIn, float entityYaw, float partialTicks, PoseStack poseStack, MultiBufferSource bufferIn, int packedLightIn) {
poseStack.pushPose();
ItemStack itemstack = entityIn.getItem();
BakedModel model = this.itemRenderer.getModel(itemstack, entityIn.level(), null, 1);
var itemstack = entityIn.getItem();
var model = this.itemRenderer.getModel(itemstack, entityIn.level(), null, 1);
poseStack.mulPose(Axis.XP.rotationDegrees(90F));
poseStack.scale(2f, 2f, 2f);
poseStack.mulPose(Axis.ZP.rotation((entityIn.age + partialTicks) * 0.9f));
itemRenderer.render(itemstack, itemstack.getItem() instanceof MalumScytheItem ? ItemDisplayContext.NONE : ItemDisplayContext.FIXED, false, poseStack, bufferIn, packedLightIn, OverlayTexture.NO_OVERLAY, model);

poseStack.popPose();

var spirit = entityIn.getItem().getItem() instanceof ISpiritAffiliatedItem affiliatedItem ? affiliatedItem.getDefiningSpiritType() : null;
final boolean isMagical = spirit != null;
var texture = malumPath("textures/vfx/concentrated_trail.png");
var token = RenderTypeToken.createCachedToken(texture);
var renderType = isMagical ?
LodestoneRenderTypeRegistry.ADDITIVE_TEXTURE_TRIANGLE.applyAndCache(token) :
LodestoneRenderTypeRegistry.TRANSPARENT_TEXTURE_TRIANGLE.applyAndCache(token, ShaderUniformHandler.LUMITRANSPARENT);
var primaryColor = isMagical ? spirit.getPrimaryColor() : new Color(0.9f, 0.9f, 0.9f);
var secondaryColor = isMagical ? spirit.getSecondaryColor() : new Color(0.5f, 0.5f, 0.5f);
var builder = VFXBuilders.createWorld().setRenderType(renderType);
final float scalar = Math.min(entityIn.age / 20f, 1f);
RenderUtils.renderEntityTrail(poseStack, builder, entityIn.theFormer, entityIn, primaryColor, secondaryColor, scalar, partialTicks);
RenderUtils.renderEntityTrail(poseStack, builder, entityIn.theLatter, entityIn, primaryColor, secondaryColor, scalar, partialTicks);

super.render(entityIn, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -229,19 +229,26 @@ public void setupEntries() {
.afterUmbralCrystal()
);

addEntry("void.ring_of_growing_flesh", -3, 9, b -> b
.withTraceFragmentEntry()
.configureWidget(w -> w.setIcon(RING_OF_GROWING_FLESH).setStyle(BookWidgetStyle.SOULWOOD))
.addPage(new HeadlineTextPage("void.ring_of_growing_flesh", "void.ring_of_growing_flesh.1"))
.addPage(SpiritInfusionPage.fromOutput(RING_OF_GROWING_FLESH.get()))
.afterUmbralCrystal()
);
addEntry("void.ring_of_gruesome_concentration", -4, 10, b -> b
addEntry("void.ring_of_gruesome_concentration", -3, 9, b -> b
.configureWidget(w -> w.setIcon(RING_OF_GRUESOME_CONCENTRATION).setStyle(BookWidgetStyle.SOULWOOD))
.addPage(new HeadlineTextPage("void.ring_of_gruesome_concentration", "void.ring_of_gruesome_concentration.1"))
.addPage(SpiritInfusionPage.fromOutput(RING_OF_GRUESOME_CONCENTRATION.get()))
.afterUmbralCrystal()
);
addEntry("void.ring_of_growing_flesh", -4, 10, b -> b
.withTraceFragmentEntry()
.configureWidget(w -> w.setIcon(RING_OF_GROWING_FLESH).setStyle(BookWidgetStyle.SOULWOOD))
.addPage(new HeadlineTextPage("void.ring_of_growing_flesh", "void.ring_of_growing_flesh.1"))
.addPage(SpiritInfusionPage.fromOutput(RING_OF_GROWING_FLESH.get()))
.afterUmbralCrystal()
);
addEntry("void.ring_of_echoing_arcana", -5, 10, b -> b
.withTraceFragmentEntry()
.configureWidget(w -> w.setIcon(RING_OF_ECHOING_ARCANA).setStyle(BookWidgetStyle.SOULWOOD))
.addPage(new HeadlineTextPage("void.ring_of_echoing_arcana", "void.ring_of_echoing_arcana.1"))
.addPage(SpiritInfusionPage.fromOutput(RING_OF_ECHOING_ARCANA.get()))
.afterUmbralCrystal()
);
addEntry("void.necklace_of_the_watcher", -3, 11, b -> b
.configureWidget(w -> w.setIcon(NECKLACE_OF_THE_WATCHER).setStyle(BookWidgetStyle.SOULWOOD))
.addPage(new HeadlineTextPage("void.necklace_of_the_watcher", "void.necklace_of_the_watcher.1"))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.sammy.malum.common.effect;

import com.sammy.malum.registry.common.*;
import net.minecraft.world.effect.*;
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.ai.attributes.*;
import team.lodestar.lodestone.helpers.*;

import java.awt.*;

public class EchoingArcanaEffect extends MobEffect {
public EchoingArcanaEffect() {
super(MobEffectCategory.BENEFICIAL, ColorHelper.getColor(new Color(255, 79, 234)));
addAttributeModifier(AttributeRegistry.ARCANE_RESONANCE.get(), "04448cbf-ee2c-4f36-b71f-e641a312834a", 0.05f, AttributeModifier.Operation.MULTIPLY_TOTAL);
}

@Override
public void applyEffectTick(LivingEntity entityLivingBaseIn, int amplifier) {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.sammy.malum.common.effect;

import com.sammy.malum.registry.common.*;
import net.minecraft.world.effect.*;
import net.minecraft.world.entity.*;
import net.minecraft.world.entity.ai.attributes.*;
import team.lodestar.lodestone.helpers.*;

import java.awt.*;

public class ImminentDeliveranceEffect extends MobEffect {
public ImminentDeliveranceEffect() {
super(MobEffectCategory.HARMFUL, ColorHelper.getColor(235, 207, 249));
}
}
Loading

0 comments on commit d537a8e

Please sign in to comment.