Add demonic seal

This commit is contained in:
Electroblob77
2020-07-03 12:04:48 +01:00
parent ddd67c6034
commit 183d5a2416
7 changed files with 38 additions and 0 deletions
@@ -289,6 +289,7 @@ public final class WizardryModels {
registerItemModel(WizardryItems.charm_minion_health);
registerItemModel(WizardryItems.charm_minion_variants);
registerItemModel(WizardryItems.charm_undead_helmets);
registerItemModel(WizardryItems.charm_hunger_casting);
registerItemModel(WizardryItems.charm_flight);
registerItemModel(WizardryItems.charm_growth);
registerItemModel(WizardryItems.charm_abseiling);
@@ -10,6 +10,7 @@ import electroblob.wizardry.entity.projectile.EntityDart;
import electroblob.wizardry.entity.projectile.EntityForceOrb;
import electroblob.wizardry.entity.projectile.EntityIceShard;
import electroblob.wizardry.event.SpellCastEvent;
import electroblob.wizardry.event.SpellCastEvent.Source;
import electroblob.wizardry.integration.DamageSafetyChecker;
import electroblob.wizardry.integration.baubles.WizardryBaublesIntegration;
import electroblob.wizardry.registry.*;
@@ -462,6 +463,30 @@ public class ItemArtefact extends Item {
}else if(artefact == WizardryItems.charm_experience_tome){
modifiers.set(SpellModifiers.PROGRESSION, modifiers.get(SpellModifiers.PROGRESSION) * 1.5f, false);
}else if(artefact == WizardryItems.charm_hunger_casting){
if(!player.capabilities.isCreativeMode && event.getSource() == Source.WAND && !event.getSpell().isContinuous){ // TODO: Continuous spells?
ItemStack wand = player.getHeldItemMainhand();
if(!(wand.getItem() instanceof ISpellCastingItem && wand.getItem() instanceof IManaStoringItem)){
wand = player.getHeldItemOffhand();
if(!(wand.getItem() instanceof ISpellCastingItem && wand.getItem() instanceof IManaStoringItem)) return;
}
if(((IManaStoringItem)wand.getItem()).getMana(wand) < event.getSpell().getCost() * modifiers.get(SpellModifiers.COST)){
int hunger = event.getSpell().getCost() / 5;
if(player.getFoodStats().getFoodLevel() >= hunger){
player.getFoodStats().addStats(-hunger, 0);
modifiers.set(SpellModifiers.COST, 0, false);
}
}
}
}
}
}
@@ -273,6 +273,7 @@ public final class WizardryItems {
public static final Item charm_minion_health = placeholder();
public static final Item charm_minion_variants = placeholder();
public static final Item charm_undead_helmets = placeholder();
public static final Item charm_hunger_casting = placeholder();
public static final Item charm_flight = placeholder();
public static final Item charm_growth = placeholder();
public static final Item charm_abseiling = placeholder();
@@ -637,6 +638,7 @@ public final class WizardryItems {
registerItem(registry, "charm_minion_health", new ItemArtefact(EnumRarity.UNCOMMON, ItemArtefact.Type.CHARM));
registerItem(registry, "charm_minion_variants", new ItemArtefact(EnumRarity.RARE, ItemArtefact.Type.CHARM));
registerItem(registry, "charm_undead_helmets", new ItemArtefact(EnumRarity.RARE, ItemArtefact.Type.CHARM));
registerItem(registry, "charm_hunger_casting", new ItemArtefact(EnumRarity.RARE, ItemArtefact.Type.CHARM));
registerItem(registry, "charm_flight", new ItemArtefact(EnumRarity.RARE, ItemArtefact.Type.CHARM));
registerItem(registry, "charm_growth", new ItemArtefact(EnumRarity.UNCOMMON, ItemArtefact.Type.CHARM));
registerItem(registry, "charm_abseiling", new ItemArtefact(EnumRarity.RARE, ItemArtefact.Type.CHARM));