New trait: haunted

This commit is contained in:
Robert Sosnitzka
2016-06-24 22:54:01 +02:00
parent 45fb25b24c
commit e61a08aa6a
3 changed files with 26 additions and 1 deletions

View File

@@ -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);

View File

@@ -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@";

View File

@@ -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));
}
}
}