@Override public void updateBurst(IManaBurst burst, ItemStack stack) { EntityThrowable entity = (EntityThrowable) burst; AxisAlignedBB axis = new AxisAlignedBB(entity.posX, entity.posY, entity.posZ, entity.lastTickPosX, entity.lastTickPosY, entity.lastTickPosZ).grow(1); List<EntityLivingBase> entities = entity.world.getEntitiesWithinAABB(EntityLivingBase.class, axis); String attacker = ItemNBTHelper.getString(burst.getSourceLens(), TAG_ATTACKER_USERNAME, ""); for(EntityLivingBase living : entities) { if(living instanceof EntityPlayer && (living.getName().equals(attacker) || FMLCommonHandler.instance().getMinecraftServerInstance() != null && !FMLCommonHandler.instance().getMinecraftServerInstance().isPVPEnabled())) continue; if(living.hurtTime == 0) { int cost = MANA_PER_DAMAGE / 3; int mana = burst.getMana(); if(mana >= cost) { burst.setMana(mana - cost); float damage = 4F + BotaniaAPI.terrasteelToolMaterial.getAttackDamage(); if(!burst.isFake() && !entity.world.isRemote) { EntityPlayer player = living.world.getPlayerEntityByName(attacker); living.attackEntityFrom(player == null ? DamageSource.MAGIC : DamageSource.causePlayerDamage(player), damage); entity.setDead(); break; } } } } }
public ItemRockJavelin(RockCategory category) { super(1f * category.getToolMaterial().getAttackDamage(), -1, category.getToolMaterial(), ImmutableSet.of()); this.category = category; if (MAP.put(category, this) != null) throw new IllegalStateException("There can only be one."); OreDictionaryHelper.register(this, "javelin"); OreDictionaryHelper.register(this, "javelin", "stone"); OreDictionaryHelper.register(this, "javelin", "stone", category); }
@Override public Multimap<String, AttributeModifier> getItemAttributeModifiers(EntityEquipmentSlot equipmentSlot) { Multimap<String, AttributeModifier> multimap = super.getItemAttributeModifiers(equipmentSlot); if (equipmentSlot == EntityEquipmentSlot.MAINHAND) { multimap.put(SharedMonsterAttributes.ATTACK_DAMAGE.getName(), new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Tool modifier", theToolMaterial.getAttackDamage() + 0.5, 0)); multimap.put(SharedMonsterAttributes.ATTACK_SPEED.getName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Tool modifier", -1.5, 0)); } return multimap; }
private static void registerPurpleMaterial() { ArmorMaterial mimicArmor = ArmorMaterial.DIAMOND; MaterialRegistry.powerArmorMaterial = EnumHelper.addArmorMaterial(MATERIALNAME, Const.MODRES + MATERIALNAME, diamondDurability * 2, // affects DURABILITY . 15 is the same as iron new int[] { mimicArmor.getDamageReductionAmount(EntityEquipmentSlot.FEET) + 1, mimicArmor.getDamageReductionAmount(EntityEquipmentSlot.LEGS) + 1, mimicArmor.getDamageReductionAmount(EntityEquipmentSlot.CHEST) + 1, mimicArmor.getDamageReductionAmount(EntityEquipmentSlot.HEAD) + 2 }, mimicArmor.getEnchantability() / 4, mimicArmor.getSoundEvent(), mimicArmor.getToughness() + 2); MaterialRegistry.powerArmorMaterial.repairMaterial = new ItemStack(Blocks.OBSIDIAN); //now the tool material MaterialRegistry.powerToolMaterial = EnumHelper.addToolMaterial(MATERIALNAME, ToolMaterial.DIAMOND.getHarvestLevel(), ToolMaterial.DIAMOND.getMaxUses() * 4, //was - 261 ToolMaterial.DIAMOND.getEfficiency(), ToolMaterial.DIAMOND.getAttackDamage() * 8, //best draconic evolution sword is 35 base, so this is not that crazy ToolMaterial.GOLD.getEnchantability() * 2); MaterialRegistry.powerToolMaterial.setRepairItem(MaterialRegistry.powerArmorMaterial.repairMaterial); }
public boolean attackEntityFrom(DamageSource damageSource, int inputDamage) { Entity entity = damageSource.getTrueSource(); int damage = inputDamage; if (entity instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) entity; ItemStack itemstack = player.getHeldItem(getActiveHand()); Item item = itemstack.getItem(); if (item == Items.GOLDEN_SWORD || item == Items.GOLDEN_AXE || item == Items.GOLDEN_SHOVEL || item == Items.GOLDEN_HOE || item == Items.GOLDEN_PICKAXE) { damage = 14; damage = (int) (damage + Item.ToolMaterial.GOLD.getAttackDamage()); } } return super.attackEntityFrom(damageSource, damage); }
/** * Netherbrick is between stone and iron, still with stone harvest level */ private static void registerNetherMaterials() { MaterialRegistry.netherToolMaterial = EnumHelper.addToolMaterial("nether", ToolMaterial.STONE.getHarvestLevel(), (ToolMaterial.STONE.getMaxUses() + ToolMaterial.IRON.getMaxUses()) / 2, (ToolMaterial.STONE.getEfficiency() + //halfway in between ToolMaterial.IRON.getEfficiency()) / 2, ToolMaterial.IRON.getAttackDamage(), ToolMaterial.GOLD.getEnchantability()); MaterialRegistry.netherToolMaterial.setRepairItem(new ItemStack(Items.NETHERBRICK)); } }
public CalcAxe(ToolMaterial material) { super(material, material.getAttackDamage(), -3.5F); } }
public VampirismItemWeapon(String regName, Item.ToolMaterial material, float attackSpeedModifier) { this(regName, material, attackSpeedModifier, 3F + material.getAttackDamage()); }
/** * Sandstone is between wood and stone, with stone harvest level */ private static void registerSandstoneMaterials() { MaterialRegistry.sandstoneToolMaterial = EnumHelper.addToolMaterial("sandstone", ToolMaterial.STONE.getHarvestLevel(), (ToolMaterial.STONE.getMaxUses() + ToolMaterial.WOOD.getMaxUses()) / 2, (ToolMaterial.STONE.getEfficiency() + ToolMaterial.STONE.getEfficiency()) / 2, (ToolMaterial.STONE.getAttackDamage() + ToolMaterial.WOOD.getAttackDamage()) / 2.0F, ToolMaterial.GOLD.getEnchantability()); MaterialRegistry.sandstoneToolMaterial.setRepairItem(new ItemStack(Blocks.SANDSTONE)); }
public ItemRockHammer(RockCategory category) { super(2f * category.getToolMaterial().getAttackDamage(), -3.5f, category.getToolMaterial(), ImmutableSet.of()); this.category = category; if (MAP.put(category, this) != null) throw new IllegalStateException("There can only be one."); setHarvestLevel("hammer", category.getToolMaterial().getHarvestLevel()); OreDictionaryHelper.register(this, "hammer"); OreDictionaryHelper.register(this, "hammer", "stone"); OreDictionaryHelper.register(this, "hammer", "stone", category); }
public ItemHammer(String regName, ToolMaterial material) { super(regName); attackDamage = 4.f + material.getAttackDamage(); this.material = material; maxStackSize = 1; setMaxDamage(material.getMaxUses()); setHarvestLevel("hammer", material.getHarvestLevel()); }
public ItemCommandBaton(String name, ToolMaterial material) { super(name); this.attackDamage = 4 + material.getAttackDamage(); this.material = material; this.setMaxStackSize(1); this.setMaxDamage(material.getMaxUses()); }
ToolSetVanilla(String name, ToolMaterial materialIn, String ingot) { this.name = name.toLowerCase(Locale.US); this.ingot = ingot; this.material = materialIn; /* BOW */ arrowDamage = material.getAttackDamage() / 4; arrowSpeed = material.getEfficiency() / 20; zoomMultiplier = MathHelper.clamp(material.getEfficiency() / 30, 0, zoomMultiplier * 2); /* FISHING ROD */ luckModifier = material.getHarvestLevel() / 2; speedModifier = (int) material.getEfficiency() / 3; }
ToolSet(String name, ToolMaterial materialIn, String ingot) { this.name = name.toLowerCase(Locale.US); this.ingot = ingot; this.material = materialIn; arrowDamage = material.getAttackDamage() / 4; arrowSpeed = material.getEfficiency() / 20; zoomMultiplier = MathHelper.clamp(material.getEfficiency() / 30, zoomMultiplier, zoomMultiplier * 2); luckModifier = material.getHarvestLevel() / 2; speedModifier = (int) material.getEfficiency() / 3; }
public ItemRockKnife(RockCategory category) { super(0.5f * category.getToolMaterial().getAttackDamage(), 3, category.getToolMaterial(), ImmutableSet.of()); this.category = category; if (MAP.put(category, this) != null) throw new IllegalStateException("There can only be one."); setHarvestLevel("knife", category.getToolMaterial().getHarvestLevel()); OreDictionaryHelper.register(this, "knife"); OreDictionaryHelper.register(this, "knife", "stone"); OreDictionaryHelper.register(this, "knife", "stone", category); }
public ItemRockAxe(RockCategory category) { super(category.getToolMaterial(), 1.5f * category.getToolMaterial().getAttackDamage(), -3); this.category = category; if (MAP.put(category, this) != null) throw new IllegalStateException("There can only be one."); setHarvestLevel("axe", category.getToolMaterial().getHarvestLevel()); OreDictionaryHelper.register(this, "axe"); OreDictionaryHelper.register(this, "axe", "stone"); OreDictionaryHelper.register(this, "axe", "stone", category); }
public ItemQuill(String regName, ToolMaterial material) { super(regName); this.material = material; attackDamage = 1.f + material.getAttackDamage(); maxStackSize = 1; setMaxDamage(material.getMaxUses()); setHarvestLevel("quill", material.getHarvestLevel()); }
public TritaniumAxe(String name) { super(MatterOverdriveItems.TOOL_MATERIAL_TRITANIUM, MatterOverdriveItems.TOOL_MATERIAL_TRITANIUM.getAttackDamage(), -3.1f); setUnlocalizedName(Reference.MOD_ID + "." + name); setRegistryName(new ResourceLocation(Reference.MOD_ID, name)); }
public ItemRockShovel(RockCategory category) { super(category.getToolMaterial()); this.category = category; if (MAP.put(category, this) != null) throw new IllegalStateException("There can only be one."); attackDamage = 1.5f * category.getToolMaterial().getAttackDamage(); setHarvestLevel("shovel", category.getToolMaterial().getHarvestLevel()); OreDictionaryHelper.register(this, "shovel"); OreDictionaryHelper.register(this, "shovel", "stone"); OreDictionaryHelper.register(this, "shovel", "stone", category); }
public ItemExtendedReachWeapon(ToolMaterial material, String registryName, double attackOffset, double attackSpeed, float reach) { super(material); this.reach = reach; setUnlocalizedName(registryName); setRegistryName(new ResourceLocation(AncientWarfareNPC.MOD_ID, registryName)); setCreativeTab(AncientWarfareNPC.TAB); AncientWarfareNPC.proxy.addClientRegister(this); attackDamage = material.getAttackDamage() + attackOffset; this.attackSpeed = attackSpeed; }