From 23fce0968de6d7e878f4febac14fd7220652c62a Mon Sep 17 00:00:00 2001 From: Eqis-Edu <117950663+Eqis-Edu@users.noreply.github.com> Date: Sun, 21 Jan 2024 02:21:15 -0300 Subject: [PATCH] feat: Warden and Hoglin Posses (#1037) * New Possession 2 * Possessed Warden * Possessed Hoglin * Some smithing templetes from possessed mobs * Big Nerf wither skull drop * Mushrooms are cows * Very small fix * Semi-revert the nerf --- .../assets/occultism/lang/en_us.json | 33 ++++++- .../item/ritual_dummy/possess_hoglin.json | 3 + .../item/ritual_dummy/possess_warden.json | 3 + .../entities/possessed_enderman.json | 21 +++++ .../entities/wild_hunt_wither_skeleton.json | 28 +++++- .../possession_rituals/possess_hoglin.json | 53 +++++++++++ .../possession_rituals/possess_warden.json | 53 +++++++++++ .../com/klikli_dev/occultism/Occultism.java | 2 + .../possessed/PossessedHoglinEntity.java | 45 +++++++++ .../possessed/PossessedWardenEntity.java | 51 ++++++++++ .../datagen/OccultismBookProvider.java | 93 ++++++++++++++++++- .../occultism/datagen/lang/ENUSProvider.java | 27 +++++- .../datagen/loot/OccultismEntityLoot.java | 13 ++- .../handlers/ClientSetupEventHandler.java | 2 + .../occultism/registry/OccultismEntities.java | 20 ++++ .../occultism/registry/OccultismItems.java | 11 ++- .../assets/occultism/lang/es_es.json | 2 +- .../assets/occultism/lang/fr_fr.json | 2 +- .../assets/occultism/lang/it_it.json | 2 +- .../assets/occultism/lang/ko_kr.json | 2 +- .../assets/occultism/lang/pt_pt.json | 2 +- .../assets/occultism/lang/ru_ru.json | 2 +- .../assets/occultism/lang/zh_cn.json | 2 +- .../item/spawn_egg/possessed_hoglin.json | 3 + .../item/spawn_egg/possessed_warden.json | 3 + .../forge/tags/entity_types/axolotls.json | 6 ++ .../data/forge/tags/entity_types/cows.json | 3 +- .../tags/entity_types/fishs.json | 0 .../entities/possessed_elder_guardian.json | 6 +- .../entities/possessed_hoglin.json | 30 ++++++ .../entities/possessed_shulker.json | 16 ++++ .../entities/possessed_warden.json | 59 ++++++++++++ .../ritual/possess_elder_guardian.json | 4 +- .../recipes/ritual/possess_hoglin.json | 54 +++++++++++ .../recipes/ritual/possess_warden.json | 66 +++++++++++++ 35 files changed, 695 insertions(+), 27 deletions(-) create mode 100644 src/generated/resources/assets/occultism/models/item/ritual_dummy/possess_hoglin.json create mode 100644 src/generated/resources/assets/occultism/models/item/ritual_dummy/possess_warden.json create mode 100644 src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/possession_rituals/possess_hoglin.json create mode 100644 src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/possession_rituals/possess_warden.json create mode 100644 src/main/java/com/klikli_dev/occultism/common/entity/possessed/PossessedHoglinEntity.java create mode 100644 src/main/java/com/klikli_dev/occultism/common/entity/possessed/PossessedWardenEntity.java create mode 100644 src/main/resources/assets/occultism/models/item/spawn_egg/possessed_hoglin.json create mode 100644 src/main/resources/assets/occultism/models/item/spawn_egg/possessed_warden.json create mode 100644 src/main/resources/data/forge/tags/entity_types/axolotls.json rename src/main/resources/data/{occultism => forge}/tags/entity_types/fishs.json (100%) create mode 100644 src/main/resources/data/occultism/loot_tables/entities/possessed_hoglin.json create mode 100644 src/main/resources/data/occultism/loot_tables/entities/possessed_warden.json create mode 100644 src/main/resources/data/occultism/recipes/ritual/possess_hoglin.json create mode 100644 src/main/resources/data/occultism/recipes/ritual/possess_warden.json diff --git a/src/generated/resources/assets/occultism/lang/en_us.json b/src/generated/resources/assets/occultism/lang/en_us.json index 986a1fa33..e18a20d88 100644 --- a/src/generated/resources/assets/occultism/lang/en_us.json +++ b/src/generated/resources/assets/occultism/lang/en_us.json @@ -506,12 +506,12 @@ "book.occultism.dictionary_of_spirits.pentacles.possess_afrit.intro.text": "**Purpose:** Afrit Possession\n\\\n\\\n**Abras' Commanding Conjure** is a modified version of [#](ad03fc)Abras' Conjure[#]() that allows possessing entities, and thus summoning familiars.\n", "book.occultism.dictionary_of_spirits.pentacles.possess_afrit.intro.title": "Abras' Commanding Conjure", "book.occultism.dictionary_of_spirits.pentacles.possess_afrit.name": "Abras' Commanding Conjure", - "book.occultism.dictionary_of_spirits.pentacles.possess_afrit.uses.text": "- [Guardian Familiar](entry://familiar_rituals/familiar_guardian)\n- [Possessed Shulker](entry://possession_rituals/possess_shulker)\n- [Possessed Elder Guardian](entry://possession_rituals/possess_elder_guardian)\n", + "book.occultism.dictionary_of_spirits.pentacles.possess_afrit.uses.text": "- [Guardian Familiar](entry://familiar_rituals/familiar_guardian)\n- [Possessed Shulker](entry://possession_rituals/possess_shulker)\n- [Possessed Elder Guardian](entry://possession_rituals/possess_elder_guardian)\n- [Possessed Hoglin](entry://possession_rituals/possess_hoglin)\n", "book.occultism.dictionary_of_spirits.pentacles.possess_afrit.uses.title": "Uses", "book.occultism.dictionary_of_spirits.pentacles.possess_djinni.intro.text": "**Purpose:** Djinni Possession\n\\\n\\\n**Ihagan's Enthrallment** forces [#](ad03fc)Djinn[#]() to possess a nearby creature. This pentacle does not lead to permanent imprisonment, the spirit and possessed creature will perish within a short period of time.\n", "book.occultism.dictionary_of_spirits.pentacles.possess_djinni.intro.title": "Ihagan's Enthrallment", "book.occultism.dictionary_of_spirits.pentacles.possess_djinni.name": "Ihagan's Enthrallment", - "book.occultism.dictionary_of_spirits.pentacles.possess_djinni.uses.text": "- [Possessed Enderman](entry://possession_rituals/possess_enderman)\n- [Possessed Ghast](entry://possession_rituals/possess_ghast)\n- [Possessed Weak Shulker](entry://possession_rituals/possess_weak_shulker)\n- [Drikwing Familiar](entry://familiar_rituals/familiar_otherworld_bird)\n- [Bat Familiar](entry://familiar_rituals/familiar_bat)\n- [Cthulhu Familiar](entry://familiar_rituals/familiar_cthulhu)\n- [Devil Familiar](entry://familiar_rituals/familiar_devil)\n- [Dragon Familiar](entry://familiar_rituals/familiar_dragon)\n- [Headless Ratman Familiar](entry://familiar_rituals/familiar_headless)\n- [Chimera Familiar](entry://familiar_rituals/familiar_chimera)\n", + "book.occultism.dictionary_of_spirits.pentacles.possess_djinni.uses.text": "- [Possessed Enderman](entry://possession_rituals/possess_enderman)\n- [Possessed Ghast](entry://possession_rituals/possess_ghast)\n- [Possessed Weak Shulker](entry://possession_rituals/possess_weak_shulker)\n- [Possessed Warden](entry://possession_rituals/possess_warden)\n- [Drikwing Familiar](entry://familiar_rituals/familiar_otherworld_bird)\n- [Bat Familiar](entry://familiar_rituals/familiar_bat)\n- [Cthulhu Familiar](entry://familiar_rituals/familiar_cthulhu)\n- [Devil Familiar](entry://familiar_rituals/familiar_devil)\n- [Dragon Familiar](entry://familiar_rituals/familiar_dragon)\n- [Headless Ratman Familiar](entry://familiar_rituals/familiar_headless)\n- [Chimera Familiar](entry://familiar_rituals/familiar_chimera)\n", "book.occultism.dictionary_of_spirits.pentacles.possess_djinni.uses.title": "Uses", "book.occultism.dictionary_of_spirits.pentacles.possess_djinni.uses2.text": "- [Beholder Familiar](entry://familiar_rituals/familiar_beholder)\n- [Fairy Familiar](entry://familiar_rituals/familiar_fairy)\n", "book.occultism.dictionary_of_spirits.pentacles.possess_djinni.uses2.title": "Uses", @@ -566,6 +566,9 @@ "book.occultism.dictionary_of_spirits.possession_rituals.possess_ghast.description.text": "In this ritual a [#](ad03fc)Ghast[#]() is spawned using the life energy of a [#](ad03fc)Cow[#]() and immediately possessed by the summoned [#](ad03fc)Djinni[#](). The [#](ad03fc)Possessed Ghast[#]() will always drop at least one [](item://minecraft:ghast_tear) when killed.\n", "book.occultism.dictionary_of_spirits.possession_rituals.possess_ghast.entity.text": "**Drops**: 1-3x [](item://minecraft:ghast_tear)\n", "book.occultism.dictionary_of_spirits.possession_rituals.possess_ghast.name": "Possessed Ghast", + "book.occultism.dictionary_of_spirits.possession_rituals.possess_hoglin.description.text": "In this ritual a [#](ad03fc)Hoglin[#]() is spawned using the life energy of a [#](ad03fc)Pig[#]() and immediately possessed by the summoned [#](ad03fc)Afrit[#](). The [#](ad03fc)Possessed Hoglin[#]() can drop a [](item://minecraft:netherite_upgrade_smithing_template), [](item://minecraft:snout_armor_trim_smithing_template), return back [](item://minecraft:netherite_scrap) or nothing when killed. You need to kill this mob before the transformation to a Zoglin if you don't want to perform the ritual in the nether.\n", + "book.occultism.dictionary_of_spirits.possession_rituals.possess_hoglin.entity.text": " **Drops**: Can drop: [](item://minecraft:netherite_upgrade_smithing_template),\n return back [](item://minecraft:netherite_scrap) or nothing;\n", + "book.occultism.dictionary_of_spirits.possession_rituals.possess_hoglin.name": "Possessed Hoglin", "book.occultism.dictionary_of_spirits.possession_rituals.possess_phantom.description.text": "In this ritual a [#](ad03fc)Phantom[#]() is spawned using the life energy of a [#](ad03fc)Flying Passive Mob[#]() and immediately possessed by the summoned [#](ad03fc)Foliot[#](). The [#](ad03fc)Possessed Phantom[#]() will always drop at least one [](item://minecraft:phantom_membrane) when killed. Using this ritual is easy to trap the phantom and you can has comfy sleep.\n", "book.occultism.dictionary_of_spirits.possession_rituals.possess_phantom.entity.text": "**Drops**: 1-4x [](item://minecraft:phantom_membrane)\n", "book.occultism.dictionary_of_spirits.possession_rituals.possess_phantom.name": "Possessed Phantom", @@ -575,6 +578,9 @@ "book.occultism.dictionary_of_spirits.possession_rituals.possess_skeleton.description.text": "In this ritual an [#](ad03fc)Skeleton[#]() is spawned using the life energy of a [#](ad03fc)Chicken[#]() and possessed by a [#](ad03fc)Foliot[#](). The [#](ad03fc)Possessed Skeleton[#]() will be immune to daylight and always drop at least one [](item://minecraft:skeleton_skull) when killed.\n", "book.occultism.dictionary_of_spirits.possession_rituals.possess_skeleton.entity.text": "**Drops**: 1x [](item://minecraft:skeleton_skull)\n", "book.occultism.dictionary_of_spirits.possession_rituals.possess_skeleton.name": "Possessed Skeleton", + "book.occultism.dictionary_of_spirits.possession_rituals.possess_warden.description.text": "In this ritual a [#](ad03fc)Warden[#]() is spawned using the life energy of a [#](ad03fc)Axolotl[#]() and immediately possessed by the summoned [#](ad03fc)Djinni[#](). The [#](ad03fc)Possessed Warden[#]() will always drop at least one [](item://minecraft:echo_shard) when killed and as a chance to drop [](item://minecraft:disc_fragment_5), [](item://minecraft:music_disc_otherside), [](item://minecraft:silence_armor_trim_smithing_template), [](item://minecraft:ward_armor_trim_smithing_template). If you try to escape, this possessed Warden will go to the floor like a normal warden.\n", + "book.occultism.dictionary_of_spirits.possession_rituals.possess_warden.entity.text": "**Drops**: 1x [](item://minecraft:echo_shard)\nand items related to ancient city;\n", + "book.occultism.dictionary_of_spirits.possession_rituals.possess_warden.name": "Possessed Warden", "book.occultism.dictionary_of_spirits.possession_rituals.possess_weak_shulker.description.text": "In this ritual a [#](ad03fc)Shulker[#]() is spawned using the life energy of a [#](ad03fc)Cube Mob[#]() and immediately possessed by the summoned [#](ad03fc)Djinni[#](). The [#](ad03fc)Possessed Weak Shulker[#]() will always drop at least one [](item://minecraft:chorus_fruit) when killed and as a chance to drop [](item://minecraft:shulker_shell). You can use vanilla shulker multiplication to get normal shulkers with more chance to drop their shells.\n", "book.occultism.dictionary_of_spirits.possession_rituals.possess_weak_shulker.entity.text": "**Drops**: 1-3x [](item://minecraft:chorus_fruit);\nand as 10% to drop a [](item://minecraft:shulker_shell);\n", "book.occultism.dictionary_of_spirits.possession_rituals.possess_weak_shulker.name": "Possessed Weak Shulker", @@ -804,9 +810,11 @@ "entity.occultism.possessed_enderman": "Possessed Enderman", "entity.occultism.possessed_endermite": "Possessed Endermite", "entity.occultism.possessed_ghast": "Possessed Ghast", + "entity.occultism.possessed_hoglin": "Possessed Hoglin", "entity.occultism.possessed_phantom": "Possessed Phantom", "entity.occultism.possessed_shulker": "Possessed Shulker", "entity.occultism.possessed_skeleton": "Possessed Skeleton", + "entity.occultism.possessed_warden": "Possessed Warden", "entity.occultism.possessed_weak_shulker": "Possessed Weak Shulker", "entity.occultism.shub_niggurath_familiar": "Shub Niggurath Familiar", "entity.occultism.shub_niggurath_spawn": "Shub Niggurath Spawn", @@ -1055,12 +1063,16 @@ "item.occultism.ritual_dummy.possess_endermite.tooltip": "The possessed Endermite drops End Stone.", "item.occultism.ritual_dummy.possess_ghast": "Ritual: Summon Possessed Ghast", "item.occultism.ritual_dummy.possess_ghast.tooltip": "The possessed Ghast will always drop at least one ghast tear when killed.", + "item.occultism.ritual_dummy.possess_hoglin": "Ritual: Summon Possessed Hoglin", + "item.occultism.ritual_dummy.possess_hoglin.tooltip": "The possessed Hoglin has a chance to drop smithing template of netherite upgrade when killed.", "item.occultism.ritual_dummy.possess_phantom": "Ritual: Summon Possessed Phantom", "item.occultism.ritual_dummy.possess_phantom.tooltip": "The possessed Phantom will always drop at least one phantom membrane when killed and is easy to trap.", "item.occultism.ritual_dummy.possess_shulker": "Ritual: Summon Possessed Shulker", - "item.occultism.ritual_dummy.possess_shulker.tooltip": "The possessed shulker will always drop at least one shulker shell when killed.", + "item.occultism.ritual_dummy.possess_shulker.tooltip": "The possessed Shulker will always drop at least one shulker shell when killed.", "item.occultism.ritual_dummy.possess_skeleton": "Ritual: Summon Possessed Skeleton", "item.occultism.ritual_dummy.possess_skeleton.tooltip": " The possessed Skeleton is immune to daylight and always drop at least one Skeleton Skull when killed.", + "item.occultism.ritual_dummy.possess_warden": "Ritual: Summon Possessed Warden", + "item.occultism.ritual_dummy.possess_warden.tooltip": "The possessed Warden will always drop a echo shard and can drop anothers ancient stuff (smithing templates and discs) when killed.", "item.occultism.ritual_dummy.possess_weak_shulker": "Ritual: Summon Possessed Weak Shulker", "item.occultism.ritual_dummy.possess_weak_shulker.tooltip": "The possessed Weak Shulker will drop at least one chorus fruit when killed and can drop shulker shell.", "item.occultism.ritual_dummy.summon_afrit_crusher": "Ritual: Summon Afrit Crusher", @@ -1100,7 +1112,7 @@ "item.occultism.ritual_dummy.summon_wild_afrit": "Ritual: Summon Unbound Afrit", "item.occultism.ritual_dummy.summon_wild_afrit.tooltip": "Summons an unbound Afrit that can be killed to obtain Afrit Essence", "item.occultism.ritual_dummy.summon_wild_hunt": "Ritual: Summon The Wild Hunt", - "item.occultism.ritual_dummy.summon_wild_hunt.tooltip": "The Wild Hunt consists of Wither Skeletons that are guaranteed to drop Wither Skeleton Skulls, and their minions.", + "item.occultism.ritual_dummy.summon_wild_hunt.tooltip": "The Wild Hunt consists of Wither Skeletons that as a big chance to drop Wither Skeleton Skulls, and their minions.", "item.occultism.ritual_dummy.summon_wild_otherworld_bird": "Ritual: Summon Wild Drikwing", "item.occultism.ritual_dummy.summon_wild_otherworld_bird.tooltip": "Summons a Drikwing Familiar that can be tamed by anyone, not just the summoner.", "item.occultism.ritual_dummy.summon_wild_parrot": "Ritual: Summon Wild Parrot", @@ -1144,9 +1156,11 @@ "item.occultism.spawn_egg.possessed_enderman": "Possessed Enderman Spawn Egg", "item.occultism.spawn_egg.possessed_endermite": "Possessed Endermite Spawn Egg", "item.occultism.spawn_egg.possessed_ghast": "Possessed Ghast Spawn Egg", + "item.occultism.spawn_egg.possessed_hoglin": "Possessed Hoglin Spawn Egg", "item.occultism.spawn_egg.possessed_phantom": "Possessed Phantom Spawn Egg", "item.occultism.spawn_egg.possessed_shulker": "Possessed Shulker Spawn Egg", "item.occultism.spawn_egg.possessed_skeleton": "Possessed Skeleton Spawn Egg", + "item.occultism.spawn_egg.possessed_warden": "Possessed Warden Spawn Egg", "item.occultism.spawn_egg.possessed_weak_shulker": "Possessed Weak Shulker Spawn Egg", "item.occultism.spawn_egg.wild_hunt_skeleton": "Wild Hunt Skeleton Spawn Egg", "item.occultism.spawn_egg.wild_hunt_wither_skeleton": "Wild Hunt Wither Skeleton Spawn Egg", @@ -1444,6 +1458,10 @@ "ritual.occultism.possess_ghast.finished": "Summoned possessed ghast successfully.", "ritual.occultism.possess_ghast.interrupted": "Summoning of possessed ghast interrupted.", "ritual.occultism.possess_ghast.started": "Started summoning possessed ghast.", + "ritual.occultism.possess_hoglin.conditions": "Not all requirements for this ritual are met.", + "ritual.occultism.possess_hoglin.finished": "Summoned possessed hoglin successfully.", + "ritual.occultism.possess_hoglin.interrupted": "Summoning of possessed hoglin interrupted.", + "ritual.occultism.possess_hoglin.started": "Started summoning possessed hoglin.", "ritual.occultism.possess_phantom.conditions": "Not all requirements for this ritual are met.", "ritual.occultism.possess_phantom.finished": "Summoned possessed phantom successfully.", "ritual.occultism.possess_phantom.interrupted": "Summoning of possessed phantom interrupted.", @@ -1456,16 +1474,21 @@ "ritual.occultism.possess_skeleton.finished": "Summoned possessed skeleton successfully.", "ritual.occultism.possess_skeleton.interrupted": "Summoning of possessed skeleton interrupted.", "ritual.occultism.possess_skeleton.started": "Started summoning possessed skeleton.", + "ritual.occultism.possess_warden.conditions": "Not all requirements for this ritual are met.", + "ritual.occultism.possess_warden.finished": "Summoned possessed warden successfully.", + "ritual.occultism.possess_warden.interrupted": "Summoning of possessed warden interrupted.", + "ritual.occultism.possess_warden.started": "Started summoning possessed warden.", "ritual.occultism.possess_weak_shulker.conditions": "Not all requirements for this ritual are met.", "ritual.occultism.possess_weak_shulker.finished": "Summoned possessed weak_shulker successfully.", "ritual.occultism.possess_weak_shulker.interrupted": "Summoning of possessed weak_shulker interrupted.", "ritual.occultism.possess_weak_shulker.started": "Started summoning possessed weak_shulker.", "ritual.occultism.ritual_help": "§lInvalid ritual!§r\nWere you trying to perform ritual: \"%s\"? Missing items:\n%s", + "ritual.occultism.sacrifice.axolotls": "Axolotl", "ritual.occultism.sacrifice.bats": "Bat", "ritual.occultism.sacrifice.chicken": "Chicken", "ritual.occultism.sacrifice.cows": "Cow", "ritual.occultism.sacrifice.cubemob": "Slime or Magma Cube", - "ritual.occultism.sacrifice.fishs": "Any Fish", + "ritual.occultism.sacrifice.fish": "Any Fish", "ritual.occultism.sacrifice.flying_passive": "Allay, Bat, Bee or Parrot", "ritual.occultism.sacrifice.horses": "Horse", "ritual.occultism.sacrifice.humans": "Villager or Player", diff --git a/src/generated/resources/assets/occultism/models/item/ritual_dummy/possess_hoglin.json b/src/generated/resources/assets/occultism/models/item/ritual_dummy/possess_hoglin.json new file mode 100644 index 000000000..1a5442cc2 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/ritual_dummy/possess_hoglin.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:item/ritual_dummy" +} \ No newline at end of file diff --git a/src/generated/resources/assets/occultism/models/item/ritual_dummy/possess_warden.json b/src/generated/resources/assets/occultism/models/item/ritual_dummy/possess_warden.json new file mode 100644 index 000000000..1a5442cc2 --- /dev/null +++ b/src/generated/resources/assets/occultism/models/item/ritual_dummy/possess_warden.json @@ -0,0 +1,3 @@ +{ + "parent": "occultism:item/ritual_dummy" +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/loot_tables/entities/possessed_enderman.json b/src/generated/resources/data/occultism/loot_tables/entities/possessed_enderman.json index 13afefc06..1bfdced21 100644 --- a/src/generated/resources/data/occultism/loot_tables/entities/possessed_enderman.json +++ b/src/generated/resources/data/occultism/loot_tables/entities/possessed_enderman.json @@ -29,6 +29,27 @@ } ], "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.1 + }, + "function": "minecraft:set_count" + } + ], + "name": "minecraft:eye_armor_trim_smithing_template" + } + ], + "rolls": 1.0 } ], "random_sequence": "occultism:entities/possessed_enderman" diff --git a/src/generated/resources/data/occultism/loot_tables/entities/wild_hunt_wither_skeleton.json b/src/generated/resources/data/occultism/loot_tables/entities/wild_hunt_wither_skeleton.json index 422bc762c..c4cd1d011 100644 --- a/src/generated/resources/data/occultism/loot_tables/entities/wild_hunt_wither_skeleton.json +++ b/src/generated/resources/data/occultism/loot_tables/entities/wild_hunt_wither_skeleton.json @@ -78,7 +78,7 @@ "count": { "type": "minecraft:uniform", "max": 1.0, - "min": 1.0 + "min": 0.67 }, "function": "minecraft:set_count" }, @@ -92,6 +92,32 @@ } ], "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:rib_armor_trim_smithing_template" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.1 + }, + "function": "minecraft:set_count" + } + ], + "rolls": 1.0 } ], "random_sequence": "occultism:entities/wild_hunt_wither_skeleton" diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/possession_rituals/possess_hoglin.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/possession_rituals/possess_hoglin.json new file mode 100644 index 000000000..41e12256e --- /dev/null +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/possession_rituals/possess_hoglin.json @@ -0,0 +1,53 @@ +{ + "background_u_index": 0, + "background_v_index": 0, + "category": "occultism:possession_rituals", + "condition": { + "type": "modonomicon:true" + }, + "description": "", + "hide_while_locked": false, + "icon": { + "item": "minecraft:netherite_upgrade_smithing_template" + }, + "name": "book.occultism.dictionary_of_spirits.possession_rituals.possess_hoglin.name", + "pages": [ + { + "type": "modonomicon:entity", + "anchor": "", + "default_rotation": -45.0, + "entity_id": "occultism:possessed_hoglin", + "name": "", + "offset": 0.0, + "rotate": true, + "scale": 0.7, + "text": "book.occultism.dictionary_of_spirits.possession_rituals.possess_hoglin.entity.text" + }, + { + "type": "occultism:ritual_recipe", + "anchor": "", + "recipe_id_1": "occultism:ritual/possess_hoglin", + "text": "", + "title1": "", + "title2": "" + }, + { + "type": "modonomicon:text", + "anchor": "", + "show_title_separator": true, + "text": "book.occultism.dictionary_of_spirits.possession_rituals.possess_hoglin.description.text", + "title": "", + "use_markdown_in_title": false + } + ], + "parents": [ + { + "draw_arrow": true, + "entry": "occultism:possession_rituals/overview", + "line_enabled": true, + "line_reversed": false + } + ], + "x": 4, + "y": 1 +} \ No newline at end of file diff --git a/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/possession_rituals/possess_warden.json b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/possession_rituals/possess_warden.json new file mode 100644 index 000000000..47ecb0291 --- /dev/null +++ b/src/generated/resources/data/occultism/modonomicon/books/dictionary_of_spirits/entries/possession_rituals/possess_warden.json @@ -0,0 +1,53 @@ +{ + "background_u_index": 0, + "background_v_index": 0, + "category": "occultism:possession_rituals", + "condition": { + "type": "modonomicon:true" + }, + "description": "", + "hide_while_locked": false, + "icon": { + "item": "minecraft:echo_shard" + }, + "name": "book.occultism.dictionary_of_spirits.possession_rituals.possess_warden.name", + "pages": [ + { + "type": "modonomicon:entity", + "anchor": "", + "default_rotation": -45.0, + "entity_id": "occultism:possessed_warden", + "name": "", + "offset": 0.0, + "rotate": true, + "scale": 1.0, + "text": "book.occultism.dictionary_of_spirits.possession_rituals.possess_warden.entity.text" + }, + { + "type": "occultism:ritual_recipe", + "anchor": "", + "recipe_id_1": "occultism:ritual/possess_warden", + "text": "", + "title1": "", + "title2": "" + }, + { + "type": "modonomicon:text", + "anchor": "", + "show_title_separator": true, + "text": "book.occultism.dictionary_of_spirits.possession_rituals.possess_warden.description.text", + "title": "", + "use_markdown_in_title": false + } + ], + "parents": [ + { + "draw_arrow": true, + "entry": "occultism:possession_rituals/overview", + "line_enabled": true, + "line_reversed": false + } + ], + "x": 4, + "y": -1 +} \ No newline at end of file diff --git a/src/main/java/com/klikli_dev/occultism/Occultism.java b/src/main/java/com/klikli_dev/occultism/Occultism.java index 814eb7123..27e36fda4 100644 --- a/src/main/java/com/klikli_dev/occultism/Occultism.java +++ b/src/main/java/com/klikli_dev/occultism/Occultism.java @@ -137,6 +137,8 @@ private void onEntityAttributeCreation(final EntityAttributeCreationEvent event) event.put(OccultismEntities.POSSESSED_WEAK_SHULKER_TYPE.get(), PossessedWeakShulkerEntity.createAttributes().build()); event.put(OccultismEntities.POSSESSED_SHULKER_TYPE.get(), PossessedShulkerEntity.createAttributes().build()); event.put(OccultismEntities.POSSESSED_ELDER_GUARDIAN_TYPE.get(), PossessedElderGuardianEntity.createAttributes().build()); + event.put(OccultismEntities.POSSESSED_WARDEN_TYPE.get(), PossessedWardenEntity.createAttributes().build()); + event.put(OccultismEntities.POSSESSED_HOGLIN_TYPE.get(), PossessedHoglinEntity.createAttributes().build()); event.put(OccultismEntities.WILD_HUNT_SKELETON_TYPE.get(), WildHuntSkeletonEntity.createAttributes().build()); event.put(OccultismEntities.WILD_HUNT_WITHER_SKELETON_TYPE.get(), WildHuntWitherSkeletonEntity.createAttributes().build()); event.put(OccultismEntities.OTHERWORLD_BIRD_TYPE.get(), OtherworldBirdEntity.createAttributes().build()); diff --git a/src/main/java/com/klikli_dev/occultism/common/entity/possessed/PossessedHoglinEntity.java b/src/main/java/com/klikli_dev/occultism/common/entity/possessed/PossessedHoglinEntity.java new file mode 100644 index 000000000..d171e2ea3 --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/common/entity/possessed/PossessedHoglinEntity.java @@ -0,0 +1,45 @@ +/* + * MIT License + * + * Copyright 2020 klikli-dev + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + * associated documentation files (the "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT + * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +package com.klikli_dev.occultism.common.entity.possessed; + +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.monster.hoglin.Hoglin; +import net.minecraft.world.level.Level; + +public class PossessedHoglinEntity extends Hoglin { + + public PossessedHoglinEntity(EntityType type, + Level worldIn) { + super(type, worldIn); + } + + //region Static Methods + public static AttributeSupplier.Builder createAttributes() { + return Hoglin.createAttributes() + .add(Attributes.ATTACK_DAMAGE, 12.0) + .add(Attributes.MAX_HEALTH, 66.0); + } + +} \ No newline at end of file diff --git a/src/main/java/com/klikli_dev/occultism/common/entity/possessed/PossessedWardenEntity.java b/src/main/java/com/klikli_dev/occultism/common/entity/possessed/PossessedWardenEntity.java new file mode 100644 index 000000000..8aad5bcc7 --- /dev/null +++ b/src/main/java/com/klikli_dev/occultism/common/entity/possessed/PossessedWardenEntity.java @@ -0,0 +1,51 @@ +/* + * MIT License + * + * Copyright 2020 klikli-dev + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and + * associated documentation files (the "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, + * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT + * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +package com.klikli_dev.occultism.common.entity.possessed; + +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.ai.attributes.AttributeSupplier; +import net.minecraft.world.entity.ai.attributes.Attributes; +import net.minecraft.world.entity.monster.warden.Warden; +import net.minecraft.world.level.Level; + +public class PossessedWardenEntity extends Warden { + + public PossessedWardenEntity(EntityType type, + Level worldIn) { + super(type, worldIn); + } + + //region Static Methods + public static AttributeSupplier.Builder createAttributes() { + return Warden.createAttributes() + .add(Attributes.ATTACK_DAMAGE, 15.0) + .add(Attributes.MAX_HEALTH, 250.0) + .add(Attributes.MOVEMENT_SPEED, 0.6F) + .add(Attributes.ATTACK_KNOCKBACK, 0.5); + } + + @Override + protected boolean shouldDespawnInPeaceful() { + return false; + } +} \ No newline at end of file diff --git a/src/main/java/com/klikli_dev/occultism/datagen/OccultismBookProvider.java b/src/main/java/com/klikli_dev/occultism/datagen/OccultismBookProvider.java index 3d281d2f9..68951d9cd 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/OccultismBookProvider.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/OccultismBookProvider.java @@ -4667,9 +4667,9 @@ private BookCategoryModel makePossessionRitualsSubcategory() { "___________________________", "___________________________", "___________________________", - "_______D_E_A_I_L___________", + "_______D_E_A_I_L_M_________", "___r_o_____________________", - "_______F_G_H_J_K___________", + "_______F_G_H_J_K_N_________", "___________________________", "___________________________", "___________________________" @@ -4696,6 +4696,10 @@ private BookCategoryModel makePossessionRitualsSubcategory() { possessShulker.withParent(BookEntryParentModel.create(overview.getId())); var possessElderGuardian = this.makePossessElderGuardianEntry(entryMap, 'L'); possessElderGuardian.withParent(BookEntryParentModel.create(overview.getId())); + var possessWarden = this.makePossessWardenEntry(entryMap, 'M'); + possessWarden.withParent(BookEntryParentModel.create(overview.getId())); + var possessHoglin = this.makePossessHoglinEntry(entryMap, 'N'); + possessHoglin.withParent(BookEntryParentModel.create(overview.getId())); this.context().category("summoning_rituals"); //re-use the entries from the summoning rituals category var possessWitherSkeleton = this.makeWitherSkullEntry(entryMap, 'H'); @@ -4714,6 +4718,8 @@ private BookCategoryModel makePossessionRitualsSubcategory() { possessWeakShulker.withCondition(BookTrueConditionModel.builder().build()); possessShulker.withCondition(BookTrueConditionModel.builder().build()); possessElderGuardian.withCondition(BookTrueConditionModel.builder().build()); + possessWarden.withCondition(BookTrueConditionModel.builder().build()); + possessHoglin.withCondition(BookTrueConditionModel.builder().build()); possessWitherSkeleton.withCondition(BookTrueConditionModel.builder().build()); afritEssence.withCondition(BookTrueConditionModel.builder().build()); @@ -4731,6 +4737,8 @@ private BookCategoryModel makePossessionRitualsSubcategory() { possessWeakShulker, possessShulker, possessElderGuardian, + possessWarden, + possessHoglin, possessWitherSkeleton, afritEssence ); @@ -5039,6 +5047,87 @@ private BookEntryModel makePossessElderGuardianEntry(CategoryEntryMap entryMap, description ); } + + private BookEntryModel makePossessWardenEntry(CategoryEntryMap entryMap, char icon) { + this.context().entry("possess_warden"); + this.lang.add(this.context().entryName(), "Possessed Warden"); + + this.context().page("entity"); + var entity = BookEntityPageModel.builder() + .withEntityId("occultism:possessed_warden") + .withScale(1f) + .withText(this.context().pageText()) + .build(); + this.lang.add(this.context().pageText(), + """ + **Drops**: 1x [](item://minecraft:echo_shard) + and items related to ancient city; + """); + + this.context().page("ritual"); + var ritual = BookRitualRecipePageModel.builder() + .withRecipeId1(this.modLoc("ritual/possess_warden")) + .build(); + + this.context().page("description"); + var description = BookTextPageModel.builder() + .withText(this.context().pageText()) + .build(); + this.lang.add(this.context().pageText(), + """ + In this ritual a [#](%1$s)Warden[#]() is spawned using the life energy of a [#](%1$s)Axolotl[#]() and immediately possessed by the summoned [#](%1$s)Djinni[#](). The [#](%1$s)Possessed Warden[#]() will always drop at least one [](item://minecraft:echo_shard) when killed and as a chance to drop [](item://minecraft:disc_fragment_5), [](item://minecraft:music_disc_otherside), [](item://minecraft:silence_armor_trim_smithing_template), [](item://minecraft:ward_armor_trim_smithing_template). If you try to escape, this possessed Warden will go to the floor like a normal warden. + """.formatted(COLOR_PURPLE)); + + return BookEntryModel.create(this.modLoc(this.context().categoryId() + "/" + this.context().entryId()), this.context().entryName()) + .withIcon(Items.ECHO_SHARD) + .withLocation(entryMap.get(icon)) + .withPages( + entity, + ritual, + description + ); + } + + private BookEntryModel makePossessHoglinEntry(CategoryEntryMap entryMap, char icon) { + this.context().entry("possess_hoglin"); + this.lang.add(this.context().entryName(), "Possessed Hoglin"); + + this.context().page("entity"); + var entity = BookEntityPageModel.builder() + .withEntityId("occultism:possessed_hoglin") + .withScale(0.7f) + .withText(this.context().pageText()) + .build(); + this.lang.add(this.context().pageText(), + """ + **Drops**: Can drop: [](item://minecraft:netherite_upgrade_smithing_template), + return back [](item://minecraft:netherite_scrap) or nothing; + """); + + this.context().page("ritual"); + var ritual = BookRitualRecipePageModel.builder() + .withRecipeId1(this.modLoc("ritual/possess_hoglin")) + .build(); + + this.context().page("description"); + var description = BookTextPageModel.builder() + .withText(this.context().pageText()) + .build(); + this.lang.add(this.context().pageText(), + """ + In this ritual a [#](%1$s)Hoglin[#]() is spawned using the life energy of a [#](%1$s)Pig[#]() and immediately possessed by the summoned [#](%1$s)Afrit[#](). The [#](%1$s)Possessed Hoglin[#]() can drop a [](item://minecraft:netherite_upgrade_smithing_template), [](item://minecraft:snout_armor_trim_smithing_template), return back [](item://minecraft:netherite_scrap) or nothing when killed. You need to kill this mob before the transformation to a Zoglin if you don't want to perform the ritual in the nether. + """.formatted(COLOR_PURPLE)); + + return BookEntryModel.create(this.modLoc(this.context().categoryId() + "/" + this.context().entryId()), this.context().entryName()) + .withIcon(Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE) + .withLocation(entryMap.get(icon)) + .withPages( + entity, + ritual, + description + ); + } + //endregion private BookCategoryModel makeStorageCategory() { diff --git a/src/main/java/com/klikli_dev/occultism/datagen/lang/ENUSProvider.java b/src/main/java/com/klikli_dev/occultism/datagen/lang/ENUSProvider.java index 48c6250cf..77d47879c 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/lang/ENUSProvider.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/lang/ENUSProvider.java @@ -231,6 +231,8 @@ private void addItems() { this.addItem(OccultismItems.SPAWN_EGG_POSSESSED_WEAK_SHULKER, "Possessed Weak Shulker Spawn Egg"); this.addItem(OccultismItems.SPAWN_EGG_POSSESSED_SHULKER, "Possessed Shulker Spawn Egg"); this.addItem(OccultismItems.SPAWN_EGG_POSSESSED_ELDER_GUARDIAN, "Possessed Elder Guardian Spawn Egg"); + this.addItem(OccultismItems.SPAWN_EGG_POSSESSED_WARDEN, "Possessed Warden Spawn Egg"); + this.addItem(OccultismItems.SPAWN_EGG_POSSESSED_HOGLIN, "Possessed Hoglin Spawn Egg"); this.addItem(OccultismItems.SPAWN_EGG_WILD_HUNT_SKELETON, "Wild Hunt Skeleton Spawn Egg"); this.addItem(OccultismItems.SPAWN_EGG_WILD_HUNT_WITHER_SKELETON, "Wild Hunt Wither Skeleton Spawn Egg"); this.addItem(OccultismItems.SPAWN_EGG_OTHERWORLD_BIRD, "Drikwing Spawn Egg"); @@ -317,6 +319,8 @@ private void addEntities() { this.addEntityType(OccultismEntities.POSSESSED_WEAK_SHULKER, "Possessed Weak Shulker"); this.addEntityType(OccultismEntities.POSSESSED_SHULKER, "Possessed Shulker"); this.addEntityType(OccultismEntities.POSSESSED_ELDER_GUARDIAN, "Possessed Elder Guardian"); + this.addEntityType(OccultismEntities.POSSESSED_WARDEN, "Possessed Warden"); + this.addEntityType(OccultismEntities.POSSESSED_HOGLIN, "Possessed Hoglin"); this.addEntityType(OccultismEntities.WILD_HUNT_SKELETON, "Wild Hunt Skeleton"); this.addEntityType(OccultismEntities.WILD_HUNT_WITHER_SKELETON, "Wild Hunt Wither Skeleton"); this.addEntityType(OccultismEntities.OTHERWORLD_BIRD, "Drikwing"); @@ -407,7 +411,8 @@ private void addMiscTranslations() { this.add("ritual.occultism.sacrifice.spiders", "Spider"); this.add("ritual.occultism.sacrifice.flying_passive", "Allay, Bat, Bee or Parrot"); this.add("ritual.occultism.sacrifice.cubemob", "Slime or Magma Cube"); - this.add("ritual.occultism.sacrifice.fishs", "Any Fish"); + this.add("ritual.occultism.sacrifice.fish", "Any Fish"); + this.add("ritual.occultism.sacrifice.axolotls", "Axolotl"); //Network Message this.add("network.messages.occultism.request_order.order_received", "Order received!"); @@ -659,6 +664,14 @@ private void addRitualMessages() { this.add("ritual.occultism.possess_elder_guardian.started", "Started summoning possessed elder_guardian."); this.add("ritual.occultism.possess_elder_guardian.finished", "Summoned possessed elder_guardian successfully."); this.add("ritual.occultism.possess_elder_guardian.interrupted", "Summoning of possessed elder_guardian interrupted."); + this.add("ritual.occultism.possess_warden.conditions", "Not all requirements for this ritual are met."); + this.add("ritual.occultism.possess_warden.started", "Started summoning possessed warden."); + this.add("ritual.occultism.possess_warden.finished", "Summoned possessed warden successfully."); + this.add("ritual.occultism.possess_warden.interrupted", "Summoning of possessed warden interrupted."); + this.add("ritual.occultism.possess_hoglin.conditions", "Not all requirements for this ritual are met."); + this.add("ritual.occultism.possess_hoglin.started", "Started summoning possessed hoglin."); + this.add("ritual.occultism.possess_hoglin.finished", "Summoned possessed hoglin successfully."); + this.add("ritual.occultism.possess_hoglin.interrupted", "Summoning of possessed hoglin interrupted."); this.add("ritual.occultism.familiar_otherworld_bird.conditions", "Not all requirements for this ritual are met."); this.add("ritual.occultism.familiar_otherworld_bird.started", "Started summoning drikwing familiar."); this.add("ritual.occultism.familiar_otherworld_bird.finished", "Summoned drikwing familiar successfully."); @@ -1160,7 +1173,8 @@ Now it is time to place the ingredients you see on the next page in the (regular """ - [Possessed Enderman](entry://possession_rituals/possess_enderman) - [Possessed Ghast](entry://possession_rituals/possess_ghast) - - [Possessed Weak Shulker](entry://possession_rituals/possess_weak_shulker) + - [Possessed Weak Shulker](entry://possession_rituals/possess_weak_shulker) + - [Possessed Warden](entry://possession_rituals/possess_warden) - [Drikwing Familiar](entry://familiar_rituals/familiar_otherworld_bird) - [Bat Familiar](entry://familiar_rituals/familiar_bat) - [Cthulhu Familiar](entry://familiar_rituals/familiar_cthulhu) @@ -1200,6 +1214,7 @@ Now it is time to place the ingredients you see on the next page in the (regular - [Guardian Familiar](entry://familiar_rituals/familiar_guardian) - [Possessed Shulker](entry://possession_rituals/possess_shulker) - [Possessed Elder Guardian](entry://possession_rituals/possess_elder_guardian) + - [Possessed Hoglin](entry://possession_rituals/possess_hoglin) """.formatted(COLOR_PURPLE)); helper.entry("craft_foliot"); @@ -2926,9 +2941,13 @@ private void addRitualDummies() { this.add("item.occultism.ritual_dummy.possess_weak_shulker", "Ritual: Summon Possessed Weak Shulker"); this.add("item.occultism.ritual_dummy.possess_weak_shulker.tooltip", "The possessed Weak Shulker will drop at least one chorus fruit when killed and can drop shulker shell."); this.add("item.occultism.ritual_dummy.possess_shulker", "Ritual: Summon Possessed Shulker"); - this.add("item.occultism.ritual_dummy.possess_shulker.tooltip", "The possessed shulker will always drop at least one shulker shell when killed."); + this.add("item.occultism.ritual_dummy.possess_shulker.tooltip", "The possessed Shulker will always drop at least one shulker shell when killed."); this.add("item.occultism.ritual_dummy.possess_elder_guardian", "Ritual: Summon Possessed Elder Guardian"); this.add("item.occultism.ritual_dummy.possess_elder_guardian.tooltip", "The possessed elder guardian will drop at least one nautilus shell when killed, also can drop heart of the sea and the commom drops."); + this.add("item.occultism.ritual_dummy.possess_warden", "Ritual: Summon Possessed Warden"); + this.add("item.occultism.ritual_dummy.possess_warden.tooltip", "The possessed Warden will always drop a echo shard and can drop anothers ancient stuff (smithing templates and discs) when killed."); + this.add("item.occultism.ritual_dummy.possess_hoglin", "Ritual: Summon Possessed Hoglin"); + this.add("item.occultism.ritual_dummy.possess_hoglin.tooltip", "The possessed Hoglin has a chance to drop smithing template of netherite upgrade when killed."); this.add("item.occultism.ritual_dummy.summon_afrit_rain_weather", "Ritual: Rainy Weather"); this.add("item.occultism.ritual_dummy.summon_afrit_rain_weather.tooltip", "Summons an bound Afrit that creates rain."); this.add("item.occultism.ritual_dummy.summon_afrit_thunder_weather", "Ritual: Thunderstorm"); @@ -2962,7 +2981,7 @@ private void addRitualDummies() { this.add("item.occultism.ritual_dummy.summon_wild_afrit", "Ritual: Summon Unbound Afrit"); this.add("item.occultism.ritual_dummy.summon_wild_afrit.tooltip", "Summons an unbound Afrit that can be killed to obtain Afrit Essence"); this.add("item.occultism.ritual_dummy.summon_wild_hunt", "Ritual: Summon The Wild Hunt"); - this.add("item.occultism.ritual_dummy.summon_wild_hunt.tooltip", "The Wild Hunt consists of Wither Skeletons that are guaranteed to drop Wither Skeleton Skulls, and their minions."); + this.add("item.occultism.ritual_dummy.summon_wild_hunt.tooltip", "The Wild Hunt consists of Wither Skeletons that as a big chance to drop Wither Skeleton Skulls, and their minions."); this.add("item.occultism.ritual_dummy.summon_wild_otherworld_bird", "Ritual: Summon Wild Drikwing"); this.add("item.occultism.ritual_dummy.summon_wild_otherworld_bird.tooltip", "Summons a Drikwing Familiar that can be tamed by anyone, not just the summoner."); this.add("item.occultism.ritual_dummy.summon_wild_parrot", "Ritual: Summon Wild Parrot"); diff --git a/src/main/java/com/klikli_dev/occultism/datagen/loot/OccultismEntityLoot.java b/src/main/java/com/klikli_dev/occultism/datagen/loot/OccultismEntityLoot.java index e2250ce66..ee84f245e 100644 --- a/src/main/java/com/klikli_dev/occultism/datagen/loot/OccultismEntityLoot.java +++ b/src/main/java/com/klikli_dev/occultism/datagen/loot/OccultismEntityLoot.java @@ -48,7 +48,10 @@ public void generate() { .add(LootItem.lootTableItem(Items.ENDER_PEARL) .apply(SetItemCountFunction.setCount(UniformGenerator.between(1.0f, 3.0F))) .apply(LootingEnchantFunction.lootingMultiplier( - UniformGenerator.between(0.0F, 1.0F)))))); + UniformGenerator.between(0.0F, 1.0F))))) + .withPool(LootPool.lootPool().setRolls(ConstantValue.exactly(1)) + .add(LootItem.lootTableItem(Items.EYE_ARMOR_TRIM_SMITHING_TEMPLATE) + .apply(SetItemCountFunction.setCount(UniformGenerator.between(0.1f, 1.0F)))))); //Guaranteed skeleton skull drop for skeleton this.add(OccultismEntities.POSSESSED_SKELETON_TYPE.get(), @@ -99,8 +102,12 @@ public void generate() { ).withPool(LootPool.lootPool().setRolls(ConstantValue.exactly(1)) .add(LootItem.lootTableItem(Blocks.WITHER_SKELETON_SKULL)) .when(LootItemKilledByPlayerCondition.killedByPlayer()) - .apply(SetItemCountFunction.setCount(UniformGenerator.between(1f, 1.0F))) - .apply(LootingEnchantFunction.lootingMultiplier(UniformGenerator.between(0.0F, 1.0F))))); + .apply(SetItemCountFunction.setCount(UniformGenerator.between(0.67f, 1.0F))) + .apply(LootingEnchantFunction.lootingMultiplier(UniformGenerator.between(0.0F, 1.0F))) + ).withPool(LootPool.lootPool().setRolls(ConstantValue.exactly(1)) + .add(LootItem.lootTableItem(Items.RIB_ARMOR_TRIM_SMITHING_TEMPLATE)) + .when(LootItemKilledByPlayerCondition.killedByPlayer()) + .apply(SetItemCountFunction.setCount(UniformGenerator.between(0.1f, 1.0F))))); //normal drop from wild hunt skeletons this.add(OccultismEntities.WILD_HUNT_SKELETON_TYPE.get(), LootTable.lootTable() diff --git a/src/main/java/com/klikli_dev/occultism/handlers/ClientSetupEventHandler.java b/src/main/java/com/klikli_dev/occultism/handlers/ClientSetupEventHandler.java index a875a2926..0b7964895 100644 --- a/src/main/java/com/klikli_dev/occultism/handlers/ClientSetupEventHandler.java +++ b/src/main/java/com/klikli_dev/occultism/handlers/ClientSetupEventHandler.java @@ -138,6 +138,8 @@ public static void onRegisterEntityRenderers(EntityRenderersEvent.RegisterRender event.registerEntityRenderer(OccultismEntities.POSSESSED_WEAK_SHULKER.get(), ShulkerRenderer::new); event.registerEntityRenderer(OccultismEntities.POSSESSED_SHULKER.get(), ShulkerRenderer::new); event.registerEntityRenderer(OccultismEntities.POSSESSED_ELDER_GUARDIAN.get(), ElderGuardianRenderer::new); + event.registerEntityRenderer(OccultismEntities.POSSESSED_WARDEN.get(), WardenRenderer::new); + event.registerEntityRenderer(OccultismEntities.POSSESSED_HOGLIN.get(), HoglinRenderer::new); event.registerEntityRenderer(OccultismEntities.WILD_HUNT_SKELETON.get(), SkeletonRenderer::new); event.registerEntityRenderer(OccultismEntities.WILD_HUNT_WITHER_SKELETON.get(), WitherSkeletonRenderer::new); event.registerEntityRenderer(OccultismEntities.OTHERWORLD_BIRD.get(), OtherworldBirdRenderer::new); diff --git a/src/main/java/com/klikli_dev/occultism/registry/OccultismEntities.java b/src/main/java/com/klikli_dev/occultism/registry/OccultismEntities.java index ce6393dc7..68f3df548 100644 --- a/src/main/java/com/klikli_dev/occultism/registry/OccultismEntities.java +++ b/src/main/java/com/klikli_dev/occultism/registry/OccultismEntities.java @@ -115,6 +115,20 @@ public class OccultismEntities { .sized(2F, 2F) .clientTrackingRange(24) .build(StaticUtil.modLoc("possessed_elder_guardian").toString())); + + public static final NonNullLazy> POSSESSED_WARDEN_TYPE = + NonNullLazy.of(() -> EntityType.Builder.of(PossessedWardenEntity::new, MobCategory.MONSTER) + .fireImmune() + .sized(1.8F, 5.8F) + .clientTrackingRange(48) + .build(StaticUtil.modLoc("possessed_warden").toString())); + + public static final NonNullLazy> POSSESSED_HOGLIN_TYPE = + NonNullLazy.of(() -> EntityType.Builder.of(PossessedHoglinEntity::new, MobCategory.MONSTER) + .fireImmune() + .sized(1.88F, 1.88F) + .clientTrackingRange(24) + .build(StaticUtil.modLoc("possessed_hoglin").toString())); public static final NonNullLazy> WILD_HUNT_SKELETON_TYPE = NonNullLazy.of(() -> EntityType.Builder.of(WildHuntSkeletonEntity::new, MobCategory.MONSTER) .sized(0.6F, 2.9F) @@ -257,6 +271,12 @@ public class OccultismEntities { ENTITIES.register("possessed_shulker", POSSESSED_SHULKER_TYPE::get); public static final RegistryObject> POSSESSED_ELDER_GUARDIAN = ENTITIES.register("possessed_elder_guardian", POSSESSED_ELDER_GUARDIAN_TYPE::get); + + public static final RegistryObject> POSSESSED_WARDEN = + ENTITIES.register("possessed_warden", POSSESSED_WARDEN_TYPE::get); + + public static final RegistryObject> POSSESSED_HOGLIN = + ENTITIES.register("possessed_hoglin", POSSESSED_HOGLIN_TYPE::get); public static final RegistryObject> WILD_HUNT_SKELETON = ENTITIES.register("wild_hunt_skeleton", WILD_HUNT_SKELETON_TYPE::get); public static final RegistryObject> WILD_HUNT_WITHER_SKELETON = diff --git a/src/main/java/com/klikli_dev/occultism/registry/OccultismItems.java b/src/main/java/com/klikli_dev/occultism/registry/OccultismItems.java index fc07c367f..b3e843dee 100644 --- a/src/main/java/com/klikli_dev/occultism/registry/OccultismItems.java +++ b/src/main/java/com/klikli_dev/occultism/registry/OccultismItems.java @@ -324,7 +324,14 @@ public class OccultismItems { public static final RegistryObject SPAWN_EGG_POSSESSED_SHULKER = ITEMS.register("spawn_egg/possessed_shulker", () -> new ForgeSpawnEggItem(OccultismEntities.POSSESSED_SHULKER_TYPE::get, 0x8c628c, 0x342638, defaultProperties())); public static final RegistryObject SPAWN_EGG_POSSESSED_ELDER_GUARDIAN = ITEMS.register("spawn_egg/possessed_elder_guardian", - () -> new ForgeSpawnEggItem(OccultismEntities.POSSESSED_ELDER_GUARDIAN_TYPE::get, 0xb5b3a3, 0x4b4d60, defaultProperties())); + () -> new ForgeSpawnEggItem(OccultismEntities.POSSESSED_ELDER_GUARDIAN_TYPE::get, 0xb5b3a3, 0x39d6e0, defaultProperties())); + + public static final RegistryObject SPAWN_EGG_POSSESSED_WARDEN = ITEMS.register("spawn_egg/possessed_warden", + () -> new ForgeSpawnEggItem(OccultismEntities.POSSESSED_WARDEN_TYPE::get, 0x0f4649, 0x39d6e0, defaultProperties())); + + public static final RegistryObject SPAWN_EGG_POSSESSED_HOGLIN = ITEMS.register("spawn_egg/possessed_hoglin", + () -> new ForgeSpawnEggItem(OccultismEntities.POSSESSED_HOGLIN_TYPE::get, 0x592a10, 0xf9f3a4, defaultProperties())); + public static final RegistryObject SPAWN_EGG_WILD_HUNT_SKELETON = ITEMS.register("spawn_egg/wild_hunt_skeleton", () -> new ForgeSpawnEggItem(OccultismEntities.WILD_HUNT_SKELETON_TYPE::get, 12698049, 4802889, defaultProperties())); public static final RegistryObject SPAWN_EGG_WILD_HUNT_WITHER_SKELETON = ITEMS.register("spawn_egg/wild_hunt_wither_skeleton", @@ -421,6 +428,8 @@ public class OccultismItems { ITEMS.register("ritual_dummy/possess_weak_shulker", () -> new DummyTooltipItem(defaultProperties())); ITEMS.register("ritual_dummy/possess_shulker", () -> new DummyTooltipItem(defaultProperties())); ITEMS.register("ritual_dummy/possess_elder_guardian", () -> new DummyTooltipItem(defaultProperties())); + ITEMS.register("ritual_dummy/possess_warden", () -> new DummyTooltipItem(defaultProperties())); + ITEMS.register("ritual_dummy/possess_hoglin", () -> new DummyTooltipItem(defaultProperties())); ITEMS.register("ritual_dummy/summon_afrit_rain_weather", () -> new DummyTooltipItem(defaultProperties())); ITEMS.register("ritual_dummy/summon_afrit_thunder_weather", () -> new DummyTooltipItem(defaultProperties())); ITEMS.register("ritual_dummy/summon_djinni_clear_weather", () -> new DummyTooltipItem(defaultProperties())); diff --git a/src/main/resources/assets/occultism/lang/es_es.json b/src/main/resources/assets/occultism/lang/es_es.json index 0fbda140d..3d3e89a13 100644 --- a/src/main/resources/assets/occultism/lang/es_es.json +++ b/src/main/resources/assets/occultism/lang/es_es.json @@ -1445,7 +1445,7 @@ "ritual.occultism.sacrifice.chicken": "Pollo", "ritual.occultism.sacrifice.cows": "Vaca", "ritual.occultism.sacrifice.cubemob": "Slime or Magma Cube", - "ritual.occultism.sacrifice.fishs": "Any Fish", + "ritual.occultism.sacrifice.fish": "Any Fish", "ritual.occultism.sacrifice.flying_passive": "Allay, Bat, Bee or Parrot", "ritual.occultism.sacrifice.horses": "Caballo", "ritual.occultism.sacrifice.humans": "Aldeano o Jugador", diff --git a/src/main/resources/assets/occultism/lang/fr_fr.json b/src/main/resources/assets/occultism/lang/fr_fr.json index 2b5c06ee9..9895579f9 100644 --- a/src/main/resources/assets/occultism/lang/fr_fr.json +++ b/src/main/resources/assets/occultism/lang/fr_fr.json @@ -1445,7 +1445,7 @@ "ritual.occultism.sacrifice.chicken": "Poulet", "ritual.occultism.sacrifice.cows": "Vache", "ritual.occultism.sacrifice.cubemob": "Slime or Magma Cube", - "ritual.occultism.sacrifice.fishs": "Any Fish", + "ritual.occultism.sacrifice.fish": "Any Fish", "ritual.occultism.sacrifice.flying_passive": "Allay, Bat, Bee or Parrot", "ritual.occultism.sacrifice.horses": "Cheval", "ritual.occultism.sacrifice.humans": "Villageois ou joueur", diff --git a/src/main/resources/assets/occultism/lang/it_it.json b/src/main/resources/assets/occultism/lang/it_it.json index eec5b4fdd..77251fda9 100644 --- a/src/main/resources/assets/occultism/lang/it_it.json +++ b/src/main/resources/assets/occultism/lang/it_it.json @@ -1445,7 +1445,7 @@ "ritual.occultism.sacrifice.chicken": "Pollo", "ritual.occultism.sacrifice.cows": "Mucca", "ritual.occultism.sacrifice.cubemob": "Slime or Magma Cube", - "ritual.occultism.sacrifice.fishs": "Any Fish", + "ritual.occultism.sacrifice.fish": "Any Fish", "ritual.occultism.sacrifice.flying_passive": "Allay, Bat, Bee or Parrot", "ritual.occultism.sacrifice.horses": "Cavallo", "ritual.occultism.sacrifice.humans": "Villager o Giocatore", diff --git a/src/main/resources/assets/occultism/lang/ko_kr.json b/src/main/resources/assets/occultism/lang/ko_kr.json index bd6523596..2f0f00e01 100644 --- a/src/main/resources/assets/occultism/lang/ko_kr.json +++ b/src/main/resources/assets/occultism/lang/ko_kr.json @@ -1445,7 +1445,7 @@ "ritual.occultism.sacrifice.chicken": "Chicken", "ritual.occultism.sacrifice.cows": "Cow", "ritual.occultism.sacrifice.cubemob": "Slime or Magma Cube", - "ritual.occultism.sacrifice.fishs": "Any Fish", + "ritual.occultism.sacrifice.fish": "Any Fish", "ritual.occultism.sacrifice.flying_passive": "Allay, Bat, Bee or Parrot", "ritual.occultism.sacrifice.horses": "Horse", "ritual.occultism.sacrifice.humans": "Villager or Player", diff --git a/src/main/resources/assets/occultism/lang/pt_pt.json b/src/main/resources/assets/occultism/lang/pt_pt.json index fc47f861a..b452b8c9d 100644 --- a/src/main/resources/assets/occultism/lang/pt_pt.json +++ b/src/main/resources/assets/occultism/lang/pt_pt.json @@ -1445,7 +1445,7 @@ "ritual.occultism.sacrifice.chicken": "Galinha", "ritual.occultism.sacrifice.cows": "Vaca", "ritual.occultism.sacrifice.cubemob": "Slime or Magma Cube", - "ritual.occultism.sacrifice.fishs": "Any Fish", + "ritual.occultism.sacrifice.fish": "Any Fish", "ritual.occultism.sacrifice.flying_passive": "Allay, Bat, Bee or Parrot", "ritual.occultism.sacrifice.horses": "Cavalo", "ritual.occultism.sacrifice.humans": "Aldeão ou Jogador", diff --git a/src/main/resources/assets/occultism/lang/ru_ru.json b/src/main/resources/assets/occultism/lang/ru_ru.json index 687746f28..f17cfcf6c 100644 --- a/src/main/resources/assets/occultism/lang/ru_ru.json +++ b/src/main/resources/assets/occultism/lang/ru_ru.json @@ -1445,7 +1445,7 @@ "ritual.occultism.sacrifice.chicken": "Курица", "ritual.occultism.sacrifice.cows": "Корова", "ritual.occultism.sacrifice.cubemob": "Slime or Magma Cube", - "ritual.occultism.sacrifice.fishs": "Any Fish", + "ritual.occultism.sacrifice.fish": "Any Fish", "ritual.occultism.sacrifice.flying_passive": "Allay, Bat, Bee or Parrot", "ritual.occultism.sacrifice.horses": "Лошадь", "ritual.occultism.sacrifice.humans": "Крестьянин или Игрок", diff --git a/src/main/resources/assets/occultism/lang/zh_cn.json b/src/main/resources/assets/occultism/lang/zh_cn.json index 8f79d6c85..e6872022f 100644 --- a/src/main/resources/assets/occultism/lang/zh_cn.json +++ b/src/main/resources/assets/occultism/lang/zh_cn.json @@ -1445,7 +1445,7 @@ "ritual.occultism.sacrifice.chicken": "鸡", "ritual.occultism.sacrifice.cows": "牛", "ritual.occultism.sacrifice.cubemob": "Slime or Magma Cube", - "ritual.occultism.sacrifice.fishs": "Any Fish", + "ritual.occultism.sacrifice.fish": "Any Fish", "ritual.occultism.sacrifice.flying_passive": "Allay, Bat, Bee or Parrot", "ritual.occultism.sacrifice.horses": "马", "ritual.occultism.sacrifice.humans": "村民或玩家", diff --git a/src/main/resources/assets/occultism/models/item/spawn_egg/possessed_hoglin.json b/src/main/resources/assets/occultism/models/item/spawn_egg/possessed_hoglin.json new file mode 100644 index 000000000..fb8b11e66 --- /dev/null +++ b/src/main/resources/assets/occultism/models/item/spawn_egg/possessed_hoglin.json @@ -0,0 +1,3 @@ +{ + "parent": "item/template_spawn_egg" +} diff --git a/src/main/resources/assets/occultism/models/item/spawn_egg/possessed_warden.json b/src/main/resources/assets/occultism/models/item/spawn_egg/possessed_warden.json new file mode 100644 index 000000000..fb8b11e66 --- /dev/null +++ b/src/main/resources/assets/occultism/models/item/spawn_egg/possessed_warden.json @@ -0,0 +1,3 @@ +{ + "parent": "item/template_spawn_egg" +} diff --git a/src/main/resources/data/forge/tags/entity_types/axolotls.json b/src/main/resources/data/forge/tags/entity_types/axolotls.json new file mode 100644 index 000000000..8815fc5ab --- /dev/null +++ b/src/main/resources/data/forge/tags/entity_types/axolotls.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:axolotl" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/forge/tags/entity_types/cows.json b/src/main/resources/data/forge/tags/entity_types/cows.json index 8c84866cb..e8bdb6539 100644 --- a/src/main/resources/data/forge/tags/entity_types/cows.json +++ b/src/main/resources/data/forge/tags/entity_types/cows.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "minecraft:cow" + "minecraft:cow", + "minecraft:mushroom" ] } \ No newline at end of file diff --git a/src/main/resources/data/occultism/tags/entity_types/fishs.json b/src/main/resources/data/forge/tags/entity_types/fishs.json similarity index 100% rename from src/main/resources/data/occultism/tags/entity_types/fishs.json rename to src/main/resources/data/forge/tags/entity_types/fishs.json diff --git a/src/main/resources/data/occultism/loot_tables/entities/possessed_elder_guardian.json b/src/main/resources/data/occultism/loot_tables/entities/possessed_elder_guardian.json index fc5d26a3c..efa4dc7ee 100644 --- a/src/main/resources/data/occultism/loot_tables/entities/possessed_elder_guardian.json +++ b/src/main/resources/data/occultism/loot_tables/entities/possessed_elder_guardian.json @@ -140,11 +140,15 @@ "entries": [ { "type": "minecraft:empty", - "weight": 4 + "weight": 8 }, { "type": "minecraft:item", "name": "minecraft:tide_armor_trim_smithing_template" + }, + { + "type": "minecraft:item", + "name": "minecraft:coast_armor_trim_smithing_template" } ] }, diff --git a/src/main/resources/data/occultism/loot_tables/entities/possessed_hoglin.json b/src/main/resources/data/occultism/loot_tables/entities/possessed_hoglin.json new file mode 100644 index 000000000..039b74a55 --- /dev/null +++ b/src/main/resources/data/occultism/loot_tables/entities/possessed_hoglin.json @@ -0,0 +1,30 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 3 + }, + { + "type": "minecraft:item", + "weight": 2, + "name": "minecraft:netherite_upgrade_smithing_template" + }, + { + "type": "minecraft:item", + "weight": 1, + "name": "minecraft:snout_armor_trim_smithing_template" + }, + { + "type": "minecraft:item", + "weight": 3, + "name": "minecraft:netherite_scrap" + } + ] + } + ] +} diff --git a/src/main/resources/data/occultism/loot_tables/entities/possessed_shulker.json b/src/main/resources/data/occultism/loot_tables/entities/possessed_shulker.json index e6ed667e2..852bf5b12 100644 --- a/src/main/resources/data/occultism/loot_tables/entities/possessed_shulker.json +++ b/src/main/resources/data/occultism/loot_tables/entities/possessed_shulker.json @@ -26,6 +26,22 @@ "name": "minecraft:shulker_shell" } ] + }, + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:spire_armor_trim_smithing_template", + "conditions": [ + { + "condition": "minecraft:random_chance", + "chance": 0.1 + } + ] + } + ] } ] } diff --git a/src/main/resources/data/occultism/loot_tables/entities/possessed_warden.json b/src/main/resources/data/occultism/loot_tables/entities/possessed_warden.json new file mode 100644 index 000000000..1ca7fd93f --- /dev/null +++ b/src/main/resources/data/occultism/loot_tables/entities/possessed_warden.json @@ -0,0 +1,59 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:echo_shard", + "functions": [ + { + "function": "minecraft:looting_enchant", + "count": { + "min": 0, + "max": 3 + } + } + ] + } + ] + }, + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:empty", + "weight": 8 + }, + { + "type": "minecraft:item", + "name": "minecraft:silence_armor_trim_smithing_template" + }, + { + "type": "minecraft:item", + "name": "minecraft:ward_armor_trim_smithing_template" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:empty", + "weight": 10 + }, + { + "type": "minecraft:item", + "weight": 9, + "name": "minecraft:disc_fragment_5" + }, + { + "type": "minecraft:item", + "name": "minecraft:music_disc_otherside" + } + ] + } + ] +} diff --git a/src/main/resources/data/occultism/recipes/ritual/possess_elder_guardian.json b/src/main/resources/data/occultism/recipes/ritual/possess_elder_guardian.json index c6da7bf40..4da5bb8df 100644 --- a/src/main/resources/data/occultism/recipes/ritual/possess_elder_guardian.json +++ b/src/main/resources/data/occultism/recipes/ritual/possess_elder_guardian.json @@ -7,8 +7,8 @@ "pentacle_id": "occultism:possess_afrit", "duration": 90, "entity_to_sacrifice": { - "tag": "occultism:fishs", - "display_name": "ritual.occultism.sacrifice.fishs" + "tag": "forge:fish", + "display_name": "ritual.occultism.sacrifice.fish" }, "entity_to_summon": "occultism:possessed_elder_guardian", "ritual_dummy": { diff --git a/src/main/resources/data/occultism/recipes/ritual/possess_hoglin.json b/src/main/resources/data/occultism/recipes/ritual/possess_hoglin.json new file mode 100644 index 000000000..0a8b0eef7 --- /dev/null +++ b/src/main/resources/data/occultism/recipes/ritual/possess_hoglin.json @@ -0,0 +1,54 @@ +{ + "type": "occultism:ritual", + "ritual_type": "occultism:summon", + "activation_item": { + "item": "occultism:book_of_binding_bound_afrit" + }, + "pentacle_id": "occultism:possess_afrit", + "duration": 60, + "entity_to_sacrifice": { + "tag": "forge:pigs", + "display_name": "ritual.occultism.sacrifice.pigs" + }, + "entity_to_summon": "occultism:possessed_hoglin", + "ritual_dummy": { + "item": "occultism:ritual_dummy/possess_hoglin" + }, + "ingredients": [ + { + "item": "minecraft:netherite_scrap" + }, + { + "tag": "forge:leather" + }, + { + "tag": "forge:netherrack" + }, + { + "tag": "forge:netherrack" + }, + { + "item": "minecraft:porkchop" + }, + { + "item": "minecraft:porkchop" + }, + { + "item": "minecraft:porkchop" + }, + { + "item": "occultism:spirit_attuned_crystal" + } + ], + "result": { + "item": "minecraft:netherite_upgrade_smithing_template", + "nbt": { + "display": { + "Lore": [ + "[{\"translate\":\"item.occultism.ritual_dummy.possess_hoglin.tooltip\"}]" + ], + "Name": "[{\"translate\":\"item.occultism.ritual_dummy.possess_hoglin\"}]" + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/occultism/recipes/ritual/possess_warden.json b/src/main/resources/data/occultism/recipes/ritual/possess_warden.json new file mode 100644 index 000000000..b9f848ae8 --- /dev/null +++ b/src/main/resources/data/occultism/recipes/ritual/possess_warden.json @@ -0,0 +1,66 @@ +{ + "type": "occultism:ritual", + "ritual_type": "occultism:summon", + "activation_item": { + "item": "occultism:book_of_binding_bound_djinni" + }, + "pentacle_id": "occultism:possess_djinni", + "duration": 60, + "entity_to_sacrifice": { + "tag": "forge:axolotls", + "display_name": "ritual.occultism.sacrifice.axolotls" + }, + "entity_to_summon": "occultism:possessed_warden", + "ritual_dummy": { + "item": "occultism:ritual_dummy/possess_warden" + }, + "ingredients": [ + { + "item": "minecraft:sculk_shrieker" + }, + { + "item": "minecraft:sculk_sensor" + }, + { + "item": "minecraft:sculk" + }, + { + "item": "minecraft:sculk" + }, + { + "item": "minecraft:sculk_shrieker" + }, + { + "item": "minecraft:sculk_sensor" + }, + { + "item": "minecraft:sculk" + }, + { + "item": "minecraft:sculk" + }, + { + "item": "minecraft:sculk_shrieker" + }, + { + "item": "minecraft:sculk_sensor" + }, + { + "item": "minecraft:sculk" + }, + { + "item": "minecraft:sculk" + } + ], + "result": { + "item": "minecraft:echo_shard", + "nbt": { + "display": { + "Lore": [ + "[{\"translate\":\"item.occultism.ritual_dummy.possess_warden.tooltip\"}]" + ], + "Name": "[{\"translate\":\"item.occultism.ritual_dummy.possess_warden\"}]" + } + } + } +} \ No newline at end of file