From 9daa02e6659a70fb100993993c51480278c63283 Mon Sep 17 00:00:00 2001 From: Me <135455255+IcarussOne@users.noreply.github.com> Date: Wed, 22 May 2024 11:46:05 -0500 Subject: [PATCH] Add portal loot table --- .../init/LootTableHandler.java | 1 + .../mixin/EntityCultistPortalLesserMixin.java | 25 +++ .../entities/boss/overgrown_taintacle.json | 51 +++++- .../entities/lesser_cultist_portal.json | 153 ++++++++++++++++++ .../resources/mixins.crimsonrevelations.json | 1 + 5 files changed, 230 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/mobiusflip/crimsonrevelations/mixin/EntityCultistPortalLesserMixin.java create mode 100644 src/main/resources/assets/crimsonrevelations/loot_tables/entities/lesser_cultist_portal.json diff --git a/src/main/java/com/mobiusflip/crimsonrevelations/init/LootTableHandler.java b/src/main/java/com/mobiusflip/crimsonrevelations/init/LootTableHandler.java index c6f3e28..e310f87 100644 --- a/src/main/java/com/mobiusflip/crimsonrevelations/init/LootTableHandler.java +++ b/src/main/java/com/mobiusflip/crimsonrevelations/init/LootTableHandler.java @@ -13,6 +13,7 @@ @EventBusSubscriber(modid = CrimsonRevelations.MODID) public class LootTableHandler { public static final ResourceLocation CULTIST = new ResourceLocation(CrimsonRevelations.MODID, ("entities/cultist")); + public static final ResourceLocation LESSER_CULTIST_PORTAL = new ResourceLocation(CrimsonRevelations.MODID, ("entities/lesser_cultist_portal")); // Bosses public static final ResourceLocation OVERGROWN_TAINTACLE = new ResourceLocation(CrimsonRevelations.MODID, ("entities/boss/overgrown_taintacle")); diff --git a/src/main/java/com/mobiusflip/crimsonrevelations/mixin/EntityCultistPortalLesserMixin.java b/src/main/java/com/mobiusflip/crimsonrevelations/mixin/EntityCultistPortalLesserMixin.java new file mode 100644 index 0000000..a17b7ec --- /dev/null +++ b/src/main/java/com/mobiusflip/crimsonrevelations/mixin/EntityCultistPortalLesserMixin.java @@ -0,0 +1,25 @@ +package com.mobiusflip.crimsonrevelations.mixin; + +import javax.annotation.Nullable; + +import org.spongepowered.asm.mixin.Mixin; + +import com.mobiusflip.crimsonrevelations.init.LootTableHandler; + +import net.minecraft.entity.monster.EntityMob; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import thaumcraft.common.entities.monster.cult.EntityCultistPortalLesser; + +@Mixin(value = EntityCultistPortalLesser.class, remap = false) +public class EntityCultistPortalLesserMixin extends EntityMob { + public EntityCultistPortalLesserMixin(World world) { + super(world); + } + + @Override + @Nullable + protected ResourceLocation getLootTable() { + return LootTableHandler.LESSER_CULTIST_PORTAL; + } +} diff --git a/src/main/resources/assets/crimsonrevelations/loot_tables/entities/boss/overgrown_taintacle.json b/src/main/resources/assets/crimsonrevelations/loot_tables/entities/boss/overgrown_taintacle.json index 1693577..175d30e 100644 --- a/src/main/resources/assets/crimsonrevelations/loot_tables/entities/boss/overgrown_taintacle.json +++ b/src/main/resources/assets/crimsonrevelations/loot_tables/entities/boss/overgrown_taintacle.json @@ -64,7 +64,7 @@ { "function": "set_count", "count": { - "min": 1, + "min": 2, "max": 4 } }, @@ -78,6 +78,55 @@ ] } ] + }, + { + "name": "curio", + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:random_chance_with_looting", + "chance": 0.7, + "looting_multiplier": 0.1 + } + ], + "entries": [ + { + "type": "item", + "name": "thaumcraft:curio", + "entryName": "arcane_curiosity", + "weight": 1, + "functions": [ + { + "function": "set_data", + "data": 0 + } + ] + }, + { + "type": "item", + "name": "thaumcraft:curio", + "entryName": "eldritch_curiosity", + "weight": 1, + "functions": [ + { + "function": "set_data", + "data": 3 + } + ] + }, + { + "type": "item", + "name": "thaumcraft:curio", + "entryName": "twisted_curiosity", + "weight": 1, + "functions": [ + { + "function": "set_data", + "data": 5 + } + ] + } + ] } ] } \ No newline at end of file diff --git a/src/main/resources/assets/crimsonrevelations/loot_tables/entities/lesser_cultist_portal.json b/src/main/resources/assets/crimsonrevelations/loot_tables/entities/lesser_cultist_portal.json new file mode 100644 index 0000000..a82a083 --- /dev/null +++ b/src/main/resources/assets/crimsonrevelations/loot_tables/entities/lesser_cultist_portal.json @@ -0,0 +1,153 @@ +{ + "pools": [ + { + "name": "loot_bag", + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "thaumcraft:loot_bag", + "weight": 1, + "functions": [ + { + "function": "set_data", + "data": 0 + } + ] + } + ] + }, + { + "name": "crimson_material", + "rolls": 1, + "entries": [ + { + "type": "item", + "name": "crimsonrevelations:crimson_fabric", + "weight": 1, + "conditions": [ + { + "condition": "killed_by_player" + } + ], + "functions": [ + { + "function": "set_count", + "count": { + "min": 2, + "max": 4 + } + }, + { + "function": "looting_enchant", + "count": { + "min": 0, + "max": 2 + } + } + ] + }, + { + "type": "item", + "name": "crimsonrevelations:crimson_plate", + "weight": 1, + "conditions": [ + { + "condition": "killed_by_player" + } + ], + "functions": [ + { + "function": "set_count", + "count": { + "min": 2, + "max": 4 + } + }, + { + "function": "looting_enchant", + "count": { + "min": 0, + "max": 2 + } + } + ] + } + ] + }, + { + "name": "crimson_rites", + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:random_chance_with_looting", + "chance": 0.1, + "looting_multiplier": 0.02 + } + ], + "entries": [ + { + "type": "item", + "name": "thaumcraft:curio", + "entryName": "crimson_rites", + "weight": 1, + "functions": [ + { + "function": "set_data", + "data": 6 + } + ] + } + ] + }, + { + "name": "curio", + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:random_chance_with_looting", + "chance": 0.5, + "looting_multiplier": 0.1 + } + ], + "entries": [ + { + "type": "item", + "name": "thaumcraft:curio", + "entryName": "arcane_curiosity", + "weight": 1, + "functions": [ + { + "function": "set_data", + "data": 0 + } + ] + }, + { + "type": "item", + "name": "thaumcraft:curio", + "entryName": "ancient_curiosity", + "weight": 1, + "functions": [ + { + "function": "set_data", + "data": 2 + } + ] + }, + { + "type": "item", + "name": "thaumcraft:curio", + "entryName": "illuminating_curiosity", + "weight": 1, + "functions": [ + { + "function": "set_data", + "data": 4 + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/mixins.crimsonrevelations.json b/src/main/resources/mixins.crimsonrevelations.json index 37f832c..0726639 100644 --- a/src/main/resources/mixins.crimsonrevelations.json +++ b/src/main/resources/mixins.crimsonrevelations.json @@ -4,6 +4,7 @@ "minVersion": "0.8", "compatibilityLevel": "JAVA_8", "mixins": [ + "EntityCultistPortalLesserMixin", "TCEntityEventsMixin" ], "client": [],