infinity-craft/src/main/java/anvil/infinity/items/ItemSoulStone.java

63 lines
2.7 KiB
Java
Raw Normal View History

2019-05-08 20:20:27 +02:00
package anvil.infinity.items;
2019-05-18 20:40:12 +02:00
import anvil.infinity.abilities.AbilityKill;
2019-05-08 20:20:27 +02:00
import anvil.infinity.abilities.AbilitySnap;
2019-06-22 00:19:38 +02:00
import anvil.infinity.api.AbilityAdderHandler;
2019-05-18 20:40:12 +02:00
import anvil.infinity.conditions.ICondition;
2019-05-08 20:20:27 +02:00
import anvil.infinity.config.ConfigHandler;
2020-04-28 20:00:37 +02:00
import anvil.infinity.config.ModConfig;
2019-05-18 20:40:12 +02:00
import anvil.infinity.helpers.GauntelHelper;
2019-05-08 20:20:27 +02:00
import lucraft.mods.lucraftcore.infinity.EnumInfinityStone;
import lucraft.mods.lucraftcore.infinity.ModuleInfinity;
import lucraft.mods.lucraftcore.infinity.items.ItemInfinityStone;
import lucraft.mods.lucraftcore.superpowers.abilities.Ability;
import lucraft.mods.lucraftcore.superpowers.abilities.AbilityAttributeModifier;
import lucraft.mods.lucraftcore.superpowers.abilities.AbilityHealing;
import lucraft.mods.lucraftcore.superpowers.abilities.AbilityHealth;
2019-06-21 23:41:25 +02:00
import lucraft.mods.lucraftcore.util.abilitybar.EnumAbilityBarColor;
2019-05-08 20:20:27 +02:00
import lucraft.mods.lucraftcore.util.helper.StringHelper;
import net.minecraft.entity.EntityLivingBase;
public class ItemSoulStone extends ItemInfinityStone {
2019-05-18 20:40:12 +02:00
ICondition killCond = new ICondition<EntityLivingBase>() {
@Override
public boolean isFulfilled(EntityLivingBase information) {
return GauntelHelper.hasPowerStone(information) && GauntelHelper.hasSpaceStone(information) && GauntelHelper.hasRealityStone(information) && GauntelHelper.hasSoulStone(information);
}
};
2019-05-08 20:20:27 +02:00
public ItemSoulStone(String name) {
this.setTranslationKey(name);
this.setRegistryName(StringHelper.unlocalizedToResourceName(name));
this.setCreativeTab(ModuleInfinity.TAB);
}
@Override
public EnumInfinityStone getType() {
return EnumInfinityStone.SOUL;
}
@Override
public boolean isContainer() {
return false;
}
@Override
public Ability.AbilityMap addStoneAbilities(EntityLivingBase entity, Ability.AbilityMap abilities, Ability.EnumAbilityContext context) {
2020-04-28 20:00:37 +02:00
if (ModConfig.General.soulHealthBoost) {
2019-06-21 23:59:12 +02:00
abilities.put("immortality", new AbilityHealth(entity).setDataValue(AbilityAttributeModifier.AMOUNT, Float.MAX_VALUE).setDataValue(Ability.BAR_COLOR, EnumAbilityBarColor.ORANGE));
2019-05-08 20:20:27 +02:00
}
2019-06-21 23:59:12 +02:00
abilities.put("healing", new AbilityHealing(entity).setDataValue(AbilityHealing.FREQUENCY, 1).setDataValue(Ability.BAR_COLOR, EnumAbilityBarColor.ORANGE));
abilities.put("kill", new AbilityKill(entity, killCond).setDataValue(Ability.BAR_COLOR, EnumAbilityBarColor.ORANGE));
abilities.put("snap", new AbilitySnap(entity).setDataValue(Ability.BAR_COLOR, EnumAbilityBarColor.ORANGE));
2019-06-21 23:41:25 +02:00
2019-06-22 00:19:38 +02:00
AbilityAdderHandler.addAbilities(EnumInfinityStone.SOUL, entity, abilities);
2019-06-21 23:41:25 +02:00
2019-05-08 20:20:27 +02:00
return super.addStoneAbilities(entity, abilities, context);
}
}