diff --git a/PALAMOD_CDC.md b/PALAMOD_CDC.md index f8651d3..d072551 100644 --- a/PALAMOD_CDC.md +++ b/PALAMOD_CDC.md @@ -710,6 +710,10 @@ avant M4 (TODO:crafts-machines). minage vers fiole CUSTOM_DATA 1000 max + lore contenu + clic droit = recuperation). ECART : mineur uniquement, outils de minage uniquement (pas armure/arme). VERIFIE : build SUCCESSFUL, boot Done, 0 erreur. UNVERIFIED en jeu. +- M-enchants-3 LIVRE 2026-10-19 ~07:00 : amulette magma (ID 4849, incrustation main + + offhand sur plastron pala/endium, CUSTOM_DATA 1 slot, fire resistance au port). + ECART : moyen d'incrustation simplifie, Overwhelmed en TODO (slots +1). + VERIFIE : build SUCCESSFUL, boot Done, 0 erreur. UNVERIFIED en jeu. - M-palaforge LIVRE 2026-10-19 ~03:55 : bloc + BE partagee (3e mode) + gate mineur 14 + table fonte wiki §3.2 (31 items, ratio floor usure) + fuels bois (+buche/planches/baton, lave exclue : seau non rendu) + craft (1 findium + 4 furnaces + 4 briques, positions diff --git a/mods/pala/src/main/java/fr/surviepote/pala/PalaItems.java b/mods/pala/src/main/java/fr/surviepote/pala/PalaItems.java index 1a886c3..a23e462 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/PalaItems.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/PalaItems.java @@ -127,6 +127,10 @@ public final class PalaItems { // afterDamage), la boire = mort instantanee (HARM amp 5 ~ 192 dmg). Obtention = // capture uniquement (pas de craft wiki, ECART correct). public static final Item LIGHTNING_POTION = register("lightning_potion", id -> new Item(new Item.Properties().setId(id).stacksTo(1).food(new FoodProperties(0, 0.0F, true), net.minecraft.world.item.component.Consumable.builder().animation(net.minecraft.world.item.ItemUseAnimation.DRINK).onConsume(new net.minecraft.world.item.consume_effects.ApplyStatusEffectsConsumeEffect(new net.minecraft.world.effect.MobEffectInstance(net.minecraft.world.effect.MobEffects.INSTANT_DAMAGE, 1, 5), 1.0F)).build()))); + // M-enchants-3 (wiki ID 4849) : amulette magma — fire resistance via plastron + // pala/endium. Incrustation simplifiee : clic droit amulette en main + plastron en + // seconde main (ECART : moyen wiki non publie). Overwhelmed : TODO (1 slot v1). + public static final Item MAGMA_AMULET = register("magma_amulet", id -> new Item(new Item.Properties().setId(id).stacksTo(1))); // M-gadget-8 (wiki ID 5023/5029) : cagoule (cosmetique, UNBREAKABLE) + masque de // garde (stats fer). Sans craft (ECART lucky). public static final Item BALACLAVA = register("balaclava", id -> new Item(new Item.Properties().setId(id).durability(1).humanoidArmor(PalaArmorMaterials.BALACLAVA, ArmorType.HELMET).component(DataComponents.UNBREAKABLE, Unit.INSTANCE))); diff --git a/mods/pala/src/main/java/fr/surviepote/pala/PalaTabs.java b/mods/pala/src/main/java/fr/surviepote/pala/PalaTabs.java index e034740..3611379 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/PalaTabs.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/PalaTabs.java @@ -80,6 +80,7 @@ public final class PalaTabs { output.accept(PalaItems.GUARD_MASK); output.accept(PalaItems.FLASK); output.accept(PalaItems.LIGHTNING_POTION); + output.accept(PalaItems.MAGMA_AMULET); output.accept(PalaItems.CANDY); output.accept(PalaItems.CANDY_BLUE); output.accept(PalaItems.CANDY_GREEN); diff --git a/mods/pala/src/main/java/fr/surviepote/pala/events/PalaArmorEvents.java b/mods/pala/src/main/java/fr/surviepote/pala/events/PalaArmorEvents.java index 8ec42b8..bd7be8c 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/events/PalaArmorEvents.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/events/PalaArmorEvents.java @@ -72,6 +72,20 @@ public final class PalaArmorEvents { effect(player, net.minecraft.world.effect.MobEffects.BLINDNESS, 60, 0); } + // --- Amulette magma (M-enchants-3, wiki ID 4849) : plastron incruste = feu. + net.minecraft.world.item.ItemStack chest = + player.getItemBySlot(EquipmentSlot.CHEST); + if (!chest.isEmpty() && (chest.is(PalaItems.PALADIUM_CHESTPLATE) + || chest.is(PalaItems.ENDIUM_CHESTPLATE))) { + String amulet = chest.getOrDefault( + net.minecraft.core.component.DataComponents.CUSTOM_DATA, + net.minecraft.world.item.component.CustomData.EMPTY).copyTag() + .getStringOr("amulet", ""); + if (amulet.equals("magma_amulet")) { + effect(player, net.minecraft.world.effect.MobEffects.FIRE_RESISTANCE, 70, 0); + } + } + // --- Bottes lestees (M-gadget-4, legacy VERIFIE) : memorise la chute, explosion // a l'atterrissage si > 3 blocs. Annulee en claim d'autrui (anti-grief, ECART). if (wearing(player, EquipmentSlot.FEET, PalaItems.WEIGHTED_BOOTS)) { diff --git a/mods/pala/src/main/java/fr/surviepote/pala/events/PalaItemUseEvents.java b/mods/pala/src/main/java/fr/surviepote/pala/events/PalaItemUseEvents.java index fc6be6f..18dedfd 100644 --- a/mods/pala/src/main/java/fr/surviepote/pala/events/PalaItemUseEvents.java +++ b/mods/pala/src/main/java/fr/surviepote/pala/events/PalaItemUseEvents.java @@ -157,6 +157,34 @@ public final class PalaItemUseEvents { } return InteractionResult.PASS; } + // M-enchants-3 (wiki ID 4849) : incrustation amulette — amulette en main + + // plastron pala/endium en seconde main => CUSTOM_DATA "amulet" (1 slot v1). + if (item == PalaItems.MAGMA_AMULET) { + net.minecraft.world.item.ItemStack off = sp.getOffhandItem(); + boolean plate = off.is(PalaItems.PALADIUM_CHESTPLATE) + || off.is(PalaItems.ENDIUM_CHESTPLATE); + if (!plate) { + sp.sendSystemMessage(net.minecraft.network.chat.Component.literal( + "§cTenez un plastron paladium/endium en seconde main.")); + return InteractionResult.PASS; + } + String has = off.getOrDefault( + net.minecraft.core.component.DataComponents.CUSTOM_DATA, + net.minecraft.world.item.component.CustomData.EMPTY).copyTag() + .getStringOr("amulet", ""); + if (!has.isEmpty()) { + sp.sendSystemMessage(net.minecraft.network.chat.Component.literal( + "§cPlastron deja incruste (Overwhelmed requis pour +1).")); + return InteractionResult.PASS; + } + net.minecraft.world.item.component.CustomData.update( + net.minecraft.core.component.DataComponents.CUSTOM_DATA, off, + tag -> tag.putString("amulet", "magma_amulet")); + stack.shrink(1); + sp.sendSystemMessage(net.minecraft.network.chat.Component.literal( + "§6[Amulette] §7Resistance au feu incrustee.")); + return InteractionResult.SUCCESS; + } // M-gadget-2 (wiki items lucky) : grappin — clic droit air, raycast 32 blocs, // tirage instantane vers le point d'impact (ECART : pas de crochet visible). if (item == PalaItems.GRAPPIN) { diff --git a/mods/pala/src/main/resources/assets/pala/items/magma_amulet.json b/mods/pala/src/main/resources/assets/pala/items/magma_amulet.json new file mode 100644 index 0000000..2078005 --- /dev/null +++ b/mods/pala/src/main/resources/assets/pala/items/magma_amulet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "pala:item/magma_amulet" + } +} \ No newline at end of file diff --git a/mods/pala/src/main/resources/assets/pala/lang/en_us.json b/mods/pala/src/main/resources/assets/pala/lang/en_us.json index 9d98944..50ea6b6 100644 --- a/mods/pala/src/main/resources/assets/pala/lang/en_us.json +++ b/mods/pala/src/main/resources/assets/pala/lang/en_us.json @@ -4,6 +4,7 @@ "item.pala.amethyst_mixed_coal": "Amethyst Mixed Coal", "item.pala.amethyst_stick": "Amethyst Stick", "item.pala.compressed_amethyst": "Compressed Amethyst", + "item.pala.magma_amulet": "Amulette de feu", "enchantment.pala.experience_bottler": "Experience Bottler", "enchantment.pala.xp_stealer": "Voleur d'XP", "block.pala.mystical_bookshelf": "Bibliotheque mystique", diff --git a/mods/pala/src/main/resources/assets/pala/models/item/magma_amulet.json b/mods/pala/src/main/resources/assets/pala/models/item/magma_amulet.json new file mode 100644 index 0000000..7059df1 --- /dev/null +++ b/mods/pala/src/main/resources/assets/pala/models/item/magma_amulet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "pala:item/magma_amulet" + } +} \ No newline at end of file diff --git a/mods/pala/src/main/resources/assets/pala/textures/item/magma_amulet.png b/mods/pala/src/main/resources/assets/pala/textures/item/magma_amulet.png new file mode 100644 index 0000000..1728bd6 Binary files /dev/null and b/mods/pala/src/main/resources/assets/pala/textures/item/magma_amulet.png differ diff --git a/server/mods/pala-0.2.1.jar b/server/mods/pala-0.2.1.jar index 79de21b..9c4a77d 100644 Binary files a/server/mods/pala-0.2.1.jar and b/server/mods/pala-0.2.1.jar differ