#modloaded iceandfire import crafttweaker.damage.IDamageSource; import crafttweaker.entity.IEntityLivingBase; import crafttweaker.event.PlayerInteractEntityEvent; import mods.contenttweaker.VanillaFactory; import mods.contenttweaker.Item; import mods.contenttweaker.IItemRightClick; import mods.contenttweaker.Commands; import mods.contenttweaker.ItemFood; import mods.contenttweaker.IItemFoodEaten; import mods.contenttweaker.MutableItemStack; import mods.contenttweaker.Hand; import mods.contenttweaker.World; import mods.contenttweaker.IItemUpdate; import mods.contenttweaker.Player; import crafttweaker.player.IPlayer; import crafttweaker.block.IBlock; import crafttweaker.data.IData; events.onPlayerInteractEntity(function(event as PlayerInteractEntityEvent) { if (event.world.isRemote()) { return; } val heldItem = event.item; // [edit item name in the bracket handler] if (!isNull(heldItem) && heldItem.definition.id.matches(.definition.id)) { if (!event.target instanceof IEntityLivingBase) { return; } val target as IEntityLivingBase = event.target; if ((target.definition.id != "twilightforest:redcap") || !target.isAlive()) { return; } // [edit damage here] val DAMAGE = 10000000.0f; // [can remove this var if reusuable] val oldHealth = target.health; // Handle kill as if by player if (target.health <= DAMAGE) { target.onDeath(IDamageSource.createPlayerDamage(event.player)); // give custom drop Commands.call("summon villager ~ ~3 ~ {Invulnerable:1, CustomName:\"Twilit Dweller\",Offers:{Recipes:[{buy:{id:\"contenttweaker:dodecuple_compressed_alchemical_fractal\",Count:1},sell:{id:\"contenttweaker:whisper_of_freedom_redcap\",Count:1},rewardExp:0b,maxUses:9999999}]},Profession:2,Career:1,CareerLevel:3,ActiveEffects:[{Id:14,Amplifier:0,Duration:999999,ShowParticles:0b},{Id:24,Amplifier:0,Duration:999999,ShowParticles:0b}]}", event.player, event.world, false, true); // Allows for proper death target.health = 0; } else { target.attackEntityFrom(, DAMAGE); } // [remove this clause if reusuable] if (target.health < oldHealth) { // [add anything here to handle on each successful use] heldItem.mutable().shrink(1); } } });