From e61a08aa6a39336c8a3637277ac2c294be381175 Mon Sep 17 00:00:00 2001 From: Robert Sosnitzka Date: Fri, 24 Jun 2016 22:54:01 +0200 Subject: [PATCH] New trait: haunted --- .../com/sosnitzka/ztic_addon/Materials.java | 2 +- .../java/com/sosnitzka/ztic_addon/ZTiC.java | 1 + .../ztic_addon/traits/TraitHaunted.java | 24 +++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/sosnitzka/ztic_addon/Materials.java b/src/main/java/com/sosnitzka/ztic_addon/Materials.java index 11e48c6..77ce65e 100644 --- a/src/main/java/com/sosnitzka/ztic_addon/Materials.java +++ b/src/main/java/com/sosnitzka/ztic_addon/Materials.java @@ -8,7 +8,7 @@ import slimeknights.tconstruct.library.materials.Material; import static com.sosnitzka.ztic_addon.ZTiC.*; public class Materials { - public static Material arcanite = new Material("arcanite", TextFormatting.LIGHT_PURPLE); + public static Material arcanite = new Material("arcanite", TextFormatting.LIGHT_PURPLE).addTrait(haunted); public static Material tiberium = new Material("tiberium", TextFormatting.LIGHT_PURPLE).addTrait(instable); public static Material prometheum = new Material("prometheum", TextFormatting.LIGHT_PURPLE).addTrait(dark); public static Material rubium = new Material("rubium", TextFormatting.LIGHT_PURPLE); diff --git a/src/main/java/com/sosnitzka/ztic_addon/ZTiC.java b/src/main/java/com/sosnitzka/ztic_addon/ZTiC.java index 1564a5d..f597f18 100644 --- a/src/main/java/com/sosnitzka/ztic_addon/ZTiC.java +++ b/src/main/java/com/sosnitzka/ztic_addon/ZTiC.java @@ -46,6 +46,7 @@ public class ZTiC { public static final AbstractTrait cascade = new TraitCascade(); public static final AbstractTrait dark = new TraitDark(); public static final AbstractTrait slaughtering = new TraitSlaughtering(); + public static final AbstractTrait haunted = new TraitHaunted(); static final String MODID = "ztic_addon"; static final String VERSION = "@VERSION@"; diff --git a/src/main/java/com/sosnitzka/ztic_addon/traits/TraitHaunted.java b/src/main/java/com/sosnitzka/ztic_addon/traits/TraitHaunted.java index 86a54f9..eb0b08e 100644 --- a/src/main/java/com/sosnitzka/ztic_addon/traits/TraitHaunted.java +++ b/src/main/java/com/sosnitzka/ztic_addon/traits/TraitHaunted.java @@ -1,5 +1,13 @@ package com.sosnitzka.ztic_addon.traits; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAIAttackMelee; +import net.minecraft.entity.ai.EntityAINearestAttackableTarget; +import net.minecraft.entity.ai.EntityAIPanic; +import net.minecraft.entity.monster.EntityMob; +import net.minecraft.entity.passive.EntityCow; +import net.minecraft.item.ItemStack; import net.minecraft.util.text.TextFormatting; import slimeknights.tconstruct.library.traits.AbstractTrait; @@ -12,5 +20,21 @@ public class TraitHaunted extends AbstractTrait { super("haunted", TextFormatting.DARK_GRAY); } + @Override + public void onHit(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, boolean isCritical) { + if (target instanceof EntityCow) { + EntityCow cow = (EntityCow) target; + cow.tasks.addTask(2, new EntityAIAttackMelee(cow, 1.50D, false)); + cow.targetTasks.addTask(2, new EntityAINearestAttackableTarget(cow, player.getClass(), false, true)); + cow.getEntityAttribute(SharedMonsterAttributes.ATTACK_DAMAGE).setBaseValue(3.0D); + cow.getEntityAttribute(SharedMonsterAttributes.ARMOR).setBaseValue(16.0D); + cow.getEntityAttribute(SharedMonsterAttributes.MOVEMENT_SPEED).setBaseValue(0.23000000417232513D); + } + if (target instanceof EntityMob) { + EntityMob mob = (EntityMob) target; + mob.tasks.addTask(1, new EntityAIPanic(mob, 3.0D)); + } + } + }