Added Ritual: Song of the Cleansing Soul to remove Living Armour upgrades from the armour.
This commit is contained in:
parent
b5c8c2242a
commit
7610329d0a
|
@ -4,6 +4,8 @@ Version 2.0.0-18
|
||||||
- Fixed issue with lava crystal working even their is no LP available.
|
- Fixed issue with lava crystal working even their is no LP available.
|
||||||
- Added upgrade trainer
|
- Added upgrade trainer
|
||||||
- Fixed step height issue with C&B stuff. Apparently step height is now 0.6 by default instead of 0.5.
|
- Fixed step height issue with C&B stuff. Apparently step height is now 0.6 by default instead of 0.5.
|
||||||
|
- Added Ritual: Song of the Cleansing Soul to remove Living Armour upgrades from the armour.
|
||||||
|
|
||||||
------------------------------------------------------
|
------------------------------------------------------
|
||||||
Version 2.0.0-17
|
Version 2.0.0-17
|
||||||
------------------------------------------------------
|
------------------------------------------------------
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
package WayofTime.bloodmagic;
|
package WayofTime.bloodmagic;
|
||||||
|
|
||||||
import WayofTime.bloodmagic.api.BlockStack;
|
import java.io.File;
|
||||||
import WayofTime.bloodmagic.api.BloodMagicAPI;
|
import java.util.ArrayList;
|
||||||
import WayofTime.bloodmagic.api.Constants;
|
import java.util.Arrays;
|
||||||
import WayofTime.bloodmagic.api.util.helper.RitualHelper;
|
import java.util.HashMap;
|
||||||
import WayofTime.bloodmagic.registry.ModPotions;
|
import java.util.List;
|
||||||
import WayofTime.bloodmagic.util.Utils;
|
import java.util.Map;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraftforge.common.config.Configuration;
|
import net.minecraftforge.common.config.Configuration;
|
||||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||||
import net.minecraftforge.oredict.OreDictionary;
|
import net.minecraftforge.oredict.OreDictionary;
|
||||||
|
import WayofTime.bloodmagic.api.BlockStack;
|
||||||
import java.io.File;
|
import WayofTime.bloodmagic.api.BloodMagicAPI;
|
||||||
import java.lang.reflect.Array;
|
import WayofTime.bloodmagic.api.Constants;
|
||||||
import java.util.*;
|
import WayofTime.bloodmagic.util.Utils;
|
||||||
|
|
||||||
public class ConfigHandler
|
public class ConfigHandler
|
||||||
{
|
{
|
||||||
|
@ -27,8 +27,8 @@ public class ConfigHandler
|
||||||
public static ArrayList<BlockStack> teleposerBlacklist = new ArrayList<BlockStack>();
|
public static ArrayList<BlockStack> teleposerBlacklist = new ArrayList<BlockStack>();
|
||||||
|
|
||||||
// Item/Block Disabling
|
// Item/Block Disabling
|
||||||
public static List itemBlacklist;
|
public static List<String> itemBlacklist;
|
||||||
public static List blockBlacklist;
|
public static List<String> blockBlacklist;
|
||||||
|
|
||||||
// Well of Suffering Blacklist
|
// Well of Suffering Blacklist
|
||||||
public static List<String> wellOfSufferingBlacklist;
|
public static List<String> wellOfSufferingBlacklist;
|
||||||
|
@ -56,6 +56,7 @@ public class ConfigHandler
|
||||||
public static boolean ritualWater;
|
public static boolean ritualWater;
|
||||||
public static boolean ritualWellOfSuffering;
|
public static boolean ritualWellOfSuffering;
|
||||||
public static boolean ritualZephyr;
|
public static boolean ritualZephyr;
|
||||||
|
public static boolean ritualUpgradeRemove;
|
||||||
|
|
||||||
// Imperfect Rituals
|
// Imperfect Rituals
|
||||||
public static boolean imperfectRitualNight;
|
public static boolean imperfectRitualNight;
|
||||||
|
@ -152,7 +153,7 @@ public class ConfigHandler
|
||||||
|
|
||||||
category = "Blood Altar Sacrificial Values";
|
category = "Blood Altar Sacrificial Values";
|
||||||
config.addCustomCategoryComment(category, "Entity Sacrificial Value Settings");
|
config.addCustomCategoryComment(category, "Entity Sacrificial Value Settings");
|
||||||
entitySacrificeValuesList = config.getStringList("entitySacrificeValues", category, new String[] {"EntityVillager;2000", "EntitySlime;150", "EntityEnderman;200", "EntityCow;250", "EntityChicken;250", "EntityHorse;250", "EntitySheep;250", "EntityWolf;250", "EntityOcelot;250", "EntityPig;250", "EntityRabbit;250"}, "Used to edit the amount of LP gained per sacrifice of the given entity.\nSetting an entity to 0 effectively blacklists it.\nIf a mod modifies an entity via the API, it will take precedence over this config.\nSyntax: EntityClassName;LPPerSacrifice");
|
entitySacrificeValuesList = config.getStringList("entitySacrificeValues", category, new String[] { "EntityVillager;2000", "EntitySlime;150", "EntityEnderman;200", "EntityCow;250", "EntityChicken;250", "EntityHorse;250", "EntitySheep;250", "EntityWolf;250", "EntityOcelot;250", "EntityPig;250", "EntityRabbit;250" }, "Used to edit the amount of LP gained per sacrifice of the given entity.\nSetting an entity to 0 effectively blacklists it.\nIf a mod modifies an entity via the API, it will take precedence over this config.\nSyntax: EntityClassName;LPPerSacrifice");
|
||||||
buildEntitySacrificeValues();
|
buildEntitySacrificeValues();
|
||||||
|
|
||||||
category = "Potions";
|
category = "Potions";
|
||||||
|
@ -234,6 +235,7 @@ public class ConfigHandler
|
||||||
ritualWater = config.get(category, "ritualWater", true).getBoolean();
|
ritualWater = config.get(category, "ritualWater", true).getBoolean();
|
||||||
ritualWellOfSuffering = config.get(category, "ritualWellOfSuffering", true).getBoolean();
|
ritualWellOfSuffering = config.get(category, "ritualWellOfSuffering", true).getBoolean();
|
||||||
ritualZephyr = config.get(category, "ritualZephyr", true).getBoolean();
|
ritualZephyr = config.get(category, "ritualZephyr", true).getBoolean();
|
||||||
|
ritualUpgradeRemove = config.get(category, "ritualRemove", true).getBoolean();
|
||||||
|
|
||||||
category = "Rituals.Imperfect";
|
category = "Rituals.Imperfect";
|
||||||
imperfectRitualNight = config.get(category, "imperfectRitualNight", true).getBoolean();
|
imperfectRitualNight = config.get(category, "imperfectRitualNight", true).getBoolean();
|
||||||
|
|
|
@ -19,6 +19,8 @@ public interface ILivingArmour
|
||||||
|
|
||||||
public boolean upgradeArmour(EntityPlayer user, LivingArmourUpgrade upgrade);
|
public boolean upgradeArmour(EntityPlayer user, LivingArmourUpgrade upgrade);
|
||||||
|
|
||||||
|
public boolean removeUpgrade(EntityPlayer user, LivingArmourUpgrade upgrade);
|
||||||
|
|
||||||
public void notifyPlayerOfUpgrade(EntityPlayer user, LivingArmourUpgrade upgrade);
|
public void notifyPlayerOfUpgrade(EntityPlayer user, LivingArmourUpgrade upgrade);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -89,7 +89,7 @@ public class BlockRitualController extends BlockStringContainer
|
||||||
TileEntity tile = world.getTileEntity(pos);
|
TileEntity tile = world.getTileEntity(pos);
|
||||||
IBlockState state = world.getBlockState(pos);
|
IBlockState state = world.getBlockState(pos);
|
||||||
|
|
||||||
if (getMetaFromState(state) == 0 && tile instanceof TileMasterRitualStone)
|
if (state.getBlock() == this && getMetaFromState(state) == 0 && tile instanceof TileMasterRitualStone)
|
||||||
((TileMasterRitualStone) tile).stopRitual(Ritual.BreakType.EXPLOSION);
|
((TileMasterRitualStone) tile).stopRitual(Ritual.BreakType.EXPLOSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,10 +5,6 @@ import java.util.List;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.BlockPos;
|
|
||||||
import net.minecraft.util.EnumFacing;
|
|
||||||
import net.minecraft.util.EnumParticleTypes;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import net.minecraftforge.fml.relauncher.Side;
|
import net.minecraftforge.fml.relauncher.Side;
|
||||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||||
import WayofTime.bloodmagic.BloodMagic;
|
import WayofTime.bloodmagic.BloodMagic;
|
||||||
|
@ -16,7 +12,6 @@ import WayofTime.bloodmagic.api.BloodMagicAPI;
|
||||||
import WayofTime.bloodmagic.api.Constants;
|
import WayofTime.bloodmagic.api.Constants;
|
||||||
import WayofTime.bloodmagic.api.iface.IBindable;
|
import WayofTime.bloodmagic.api.iface.IBindable;
|
||||||
import WayofTime.bloodmagic.api.network.SoulNetwork;
|
import WayofTime.bloodmagic.api.network.SoulNetwork;
|
||||||
import WayofTime.bloodmagic.api.util.helper.BindableHelper;
|
|
||||||
import WayofTime.bloodmagic.api.util.helper.NBTHelper;
|
import WayofTime.bloodmagic.api.util.helper.NBTHelper;
|
||||||
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
|
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
|
||||||
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
|
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
|
||||||
|
|
|
@ -1,18 +1,16 @@
|
||||||
package WayofTime.bloodmagic.item;
|
package WayofTime.bloodmagic.item;
|
||||||
|
|
||||||
import com.google.common.base.Strings;
|
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.potion.Potion;
|
import net.minecraft.potion.Potion;
|
||||||
import net.minecraft.potion.PotionEffect;
|
import net.minecraft.potion.PotionEffect;
|
||||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
|
||||||
import net.minecraftforge.fml.common.IFuelHandler;
|
import net.minecraftforge.fml.common.IFuelHandler;
|
||||||
import net.minecraftforge.fml.relauncher.Side;
|
|
||||||
import WayofTime.bloodmagic.api.Constants;
|
import WayofTime.bloodmagic.api.Constants;
|
||||||
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
|
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
|
||||||
|
|
||||||
|
import com.google.common.base.Strings;
|
||||||
|
|
||||||
public class ItemLavaCrystal extends ItemBindable implements IFuelHandler
|
public class ItemLavaCrystal extends ItemBindable implements IFuelHandler
|
||||||
{
|
{
|
||||||
public ItemLavaCrystal()
|
public ItemLavaCrystal()
|
||||||
|
@ -51,8 +49,6 @@ public class ItemLavaCrystal extends ItemBindable implements IFuelHandler
|
||||||
|
|
||||||
if (fuelItem instanceof ItemLavaCrystal)
|
if (fuelItem instanceof ItemLavaCrystal)
|
||||||
{
|
{
|
||||||
System.out.println("Test get burn time: Side = " + FMLCommonHandler.instance().getSide());
|
|
||||||
//
|
|
||||||
// if (FMLCommonHandler.instance().getSide() == Side.CLIENT)
|
// if (FMLCommonHandler.instance().getSide() == Side.CLIENT)
|
||||||
// {
|
// {
|
||||||
// return 200;
|
// return 200;
|
||||||
|
|
|
@ -298,4 +298,18 @@ public class LivingArmour implements ILivingArmour
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean removeUpgrade(EntityPlayer user, LivingArmourUpgrade upgrade)
|
||||||
|
{
|
||||||
|
String key = upgrade.getUniqueIdentifier();
|
||||||
|
if (upgradeMap.containsKey(key))
|
||||||
|
{
|
||||||
|
upgradeMap.remove(key);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package WayofTime.bloodmagic.registry;
|
package WayofTime.bloodmagic.registry;
|
||||||
|
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
import WayofTime.bloodmagic.ConfigHandler;
|
import WayofTime.bloodmagic.ConfigHandler;
|
||||||
import WayofTime.bloodmagic.api.BlockStack;
|
import WayofTime.bloodmagic.api.BlockStack;
|
||||||
import WayofTime.bloodmagic.api.registry.HarvestRegistry;
|
import WayofTime.bloodmagic.api.registry.HarvestRegistry;
|
||||||
|
@ -7,12 +8,32 @@ import WayofTime.bloodmagic.api.registry.ImperfectRitualRegistry;
|
||||||
import WayofTime.bloodmagic.api.registry.RitualRegistry;
|
import WayofTime.bloodmagic.api.registry.RitualRegistry;
|
||||||
import WayofTime.bloodmagic.api.ritual.Ritual;
|
import WayofTime.bloodmagic.api.ritual.Ritual;
|
||||||
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
|
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
|
||||||
import WayofTime.bloodmagic.ritual.*;
|
import WayofTime.bloodmagic.ritual.RitualAnimalGrowth;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualContainment;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualCrushing;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualExpulsion;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualFeatheredKnife;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualFullStomach;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualGreenGrove;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualHarvest;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualInterdiction;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualJumping;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualLava;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualMagnetic;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualRegeneration;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualSpeed;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualSuppression;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualUpgradeRemove;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualWater;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualWellOfSuffering;
|
||||||
|
import WayofTime.bloodmagic.ritual.RitualZephyr;
|
||||||
import WayofTime.bloodmagic.ritual.harvest.HarvestHandlerPlantable;
|
import WayofTime.bloodmagic.ritual.harvest.HarvestHandlerPlantable;
|
||||||
import WayofTime.bloodmagic.ritual.harvest.HarvestHandlerStem;
|
import WayofTime.bloodmagic.ritual.harvest.HarvestHandlerStem;
|
||||||
import WayofTime.bloodmagic.ritual.harvest.HarvestHandlerTall;
|
import WayofTime.bloodmagic.ritual.harvest.HarvestHandlerTall;
|
||||||
import WayofTime.bloodmagic.ritual.imperfect.*;
|
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualNight;
|
||||||
import net.minecraft.init.Blocks;
|
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualRain;
|
||||||
|
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualResistance;
|
||||||
|
import WayofTime.bloodmagic.ritual.imperfect.ImperfectRitualZombie;
|
||||||
|
|
||||||
public class ModRituals
|
public class ModRituals
|
||||||
{
|
{
|
||||||
|
@ -34,6 +55,7 @@ public class ModRituals
|
||||||
public static Ritual suppressionRitual;
|
public static Ritual suppressionRitual;
|
||||||
public static Ritual expulsionRitual;
|
public static Ritual expulsionRitual;
|
||||||
public static Ritual zephyrRitual;
|
public static Ritual zephyrRitual;
|
||||||
|
public static Ritual upgradeRemoveRitual;
|
||||||
|
|
||||||
public static ImperfectRitual imperfectNight;
|
public static ImperfectRitual imperfectNight;
|
||||||
public static ImperfectRitual imperfectRain;
|
public static ImperfectRitual imperfectRain;
|
||||||
|
@ -79,6 +101,8 @@ public class ModRituals
|
||||||
RitualRegistry.registerRitual(zephyrRitual, ConfigHandler.ritualZephyr);
|
RitualRegistry.registerRitual(zephyrRitual, ConfigHandler.ritualZephyr);
|
||||||
expulsionRitual = new RitualExpulsion();
|
expulsionRitual = new RitualExpulsion();
|
||||||
RitualRegistry.registerRitual(expulsionRitual, ConfigHandler.ritualExpulsion);
|
RitualRegistry.registerRitual(expulsionRitual, ConfigHandler.ritualExpulsion);
|
||||||
|
upgradeRemoveRitual = new RitualUpgradeRemove();
|
||||||
|
RitualRegistry.registerRitual(upgradeRemoveRitual, ConfigHandler.ritualUpgradeRemove);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void initImperfectRituals()
|
public static void initImperfectRituals()
|
||||||
|
|
|
@ -1,13 +1,9 @@
|
||||||
package WayofTime.bloodmagic.ritual;
|
package WayofTime.bloodmagic.ritual;
|
||||||
|
|
||||||
import WayofTime.bloodmagic.api.Constants;
|
import java.util.ArrayList;
|
||||||
import WayofTime.bloodmagic.api.iface.IBindable;
|
import java.util.List;
|
||||||
import WayofTime.bloodmagic.api.network.SoulNetwork;
|
import java.util.Random;
|
||||||
import WayofTime.bloodmagic.api.ritual.*;
|
|
||||||
import WayofTime.bloodmagic.api.util.helper.BindableHelper;
|
|
||||||
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
|
|
||||||
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
|
|
||||||
import com.google.common.base.Strings;
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
@ -20,10 +16,18 @@ import net.minecraft.util.MathHelper;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.event.entity.living.EnderTeleportEvent;
|
import net.minecraftforge.event.entity.living.EnderTeleportEvent;
|
||||||
|
import WayofTime.bloodmagic.api.Constants;
|
||||||
|
import WayofTime.bloodmagic.api.iface.IBindable;
|
||||||
|
import WayofTime.bloodmagic.api.network.SoulNetwork;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.AreaDescriptor;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.EnumRuneType;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.Ritual;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.RitualComponent;
|
||||||
|
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
|
||||||
|
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.google.common.base.Strings;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
public class RitualExpulsion extends Ritual
|
public class RitualExpulsion extends Ritual
|
||||||
{
|
{
|
||||||
|
@ -140,8 +144,7 @@ public class RitualExpulsion extends Ritual
|
||||||
if (block != null && block.getMaterial().blocksMovement())
|
if (block != null && block.getMaterial().blocksMovement())
|
||||||
{
|
{
|
||||||
flag1 = true;
|
flag1 = true;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
{
|
{
|
||||||
--entityLiving.posY;
|
--entityLiving.posY;
|
||||||
--j;
|
--j;
|
||||||
|
@ -163,8 +166,7 @@ public class RitualExpulsion extends Ritual
|
||||||
{
|
{
|
||||||
moveEntityViaTeleport(entityLiving, lastX, lastY, lastZ);
|
moveEntityViaTeleport(entityLiving, lastX, lastY, lastZ);
|
||||||
return false;
|
return false;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
{
|
{
|
||||||
for (l = 0; l < 128; ++l)
|
for (l = 0; l < 128; ++l)
|
||||||
{
|
{
|
||||||
|
@ -204,8 +206,7 @@ public class RitualExpulsion extends Ritual
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else if (entityLiving != null)
|
||||||
else if (entityLiving != null)
|
|
||||||
{
|
{
|
||||||
entityLiving.setPosition(x, y, z);
|
entityLiving.setPosition(x, y, z);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,19 @@
|
||||||
package WayofTime.bloodmagic.ritual;
|
package WayofTime.bloodmagic.ritual;
|
||||||
|
|
||||||
import WayofTime.bloodmagic.api.Constants;
|
import java.util.ArrayList;
|
||||||
import WayofTime.bloodmagic.api.network.SoulNetwork;
|
|
||||||
import WayofTime.bloodmagic.api.ritual.*;
|
|
||||||
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
|
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
import net.minecraft.util.BlockPos;
|
import net.minecraft.util.BlockPos;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import WayofTime.bloodmagic.api.Constants;
|
||||||
import java.util.ArrayList;
|
import WayofTime.bloodmagic.api.network.SoulNetwork;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.AreaDescriptor;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.EnumRuneType;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.Ritual;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.RitualComponent;
|
||||||
|
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
|
||||||
|
|
||||||
public class RitualSpeed extends Ritual
|
public class RitualSpeed extends Ritual
|
||||||
{
|
{
|
||||||
|
@ -38,7 +42,8 @@ public class RitualSpeed extends Ritual
|
||||||
|
|
||||||
for (EntityLivingBase entity : world.getEntitiesWithinAABB(EntityLivingBase.class, speedRange.getAABB(masterRitualStone.getBlockPos())))
|
for (EntityLivingBase entity : world.getEntitiesWithinAABB(EntityLivingBase.class, speedRange.getAABB(masterRitualStone.getBlockPos())))
|
||||||
{
|
{
|
||||||
if (entity.isSneaking()) continue;
|
if (entity.isSneaking())
|
||||||
|
continue;
|
||||||
|
|
||||||
double motionY = 1.2;
|
double motionY = 1.2;
|
||||||
double speed = 3;
|
double speed = 3;
|
||||||
|
@ -49,21 +54,23 @@ public class RitualSpeed extends Ritual
|
||||||
|
|
||||||
switch (direction)
|
switch (direction)
|
||||||
{
|
{
|
||||||
case NORTH:
|
case NORTH:
|
||||||
entity.setVelocity(0, motionY, -speed);
|
entity.setVelocity(0, motionY, -speed);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SOUTH:
|
case SOUTH:
|
||||||
entity.setVelocity(0, motionY, speed);
|
entity.setVelocity(0, motionY, speed);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WEST:
|
case WEST:
|
||||||
entity.setVelocity(-speed, motionY, 0);
|
entity.setVelocity(-speed, motionY, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EAST:
|
case EAST:
|
||||||
entity.setVelocity(speed, motionY, 0);
|
entity.setVelocity(speed, motionY, 0);
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,147 @@
|
||||||
|
package WayofTime.bloodmagic.ritual;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import net.minecraft.entity.effect.EntityLightningBolt;
|
||||||
|
import net.minecraft.entity.item.EntityItem;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import WayofTime.bloodmagic.api.Constants;
|
||||||
|
import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade;
|
||||||
|
import WayofTime.bloodmagic.api.livingArmour.StatTracker;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.AreaDescriptor;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.EnumRuneType;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.Ritual;
|
||||||
|
import WayofTime.bloodmagic.api.ritual.RitualComponent;
|
||||||
|
import WayofTime.bloodmagic.item.ItemUpgradeTome;
|
||||||
|
import WayofTime.bloodmagic.item.armour.ItemLivingArmour;
|
||||||
|
import WayofTime.bloodmagic.livingArmour.LivingArmour;
|
||||||
|
import WayofTime.bloodmagic.registry.ModItems;
|
||||||
|
|
||||||
|
public class RitualUpgradeRemove extends Ritual
|
||||||
|
{
|
||||||
|
public static final String CHECK_RANGE = "fillRange";
|
||||||
|
|
||||||
|
public RitualUpgradeRemove()
|
||||||
|
{
|
||||||
|
super("ritualUpgradeRemove", 0, 25000, "ritual." + Constants.Mod.MODID + ".fullUpgradeRemove");
|
||||||
|
addBlockRange(CHECK_RANGE, new AreaDescriptor.Rectangle(new BlockPos(0, 1, 0), 1, 2, 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void performRitual(IMasterRitualStone masterRitualStone)
|
||||||
|
{
|
||||||
|
World world = masterRitualStone.getWorldObj();
|
||||||
|
|
||||||
|
if (world.isRemote)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
BlockPos pos = masterRitualStone.getBlockPos();
|
||||||
|
|
||||||
|
AreaDescriptor checkRange = getBlockRange(CHECK_RANGE);
|
||||||
|
|
||||||
|
List<EntityPlayer> playerList = world.getEntitiesWithinAABB(EntityPlayer.class, checkRange.getAABB(pos));
|
||||||
|
|
||||||
|
for (EntityPlayer player : playerList)
|
||||||
|
{
|
||||||
|
if (LivingArmour.hasFullSet(player))
|
||||||
|
{
|
||||||
|
boolean removedUpgrade = false;
|
||||||
|
|
||||||
|
ItemStack chestStack = player.getCurrentArmor(2);
|
||||||
|
LivingArmour armour = ItemLivingArmour.armourMap.get(chestStack);
|
||||||
|
if (armour != null)
|
||||||
|
{
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
HashMap<String, LivingArmourUpgrade> upgradeMap = (HashMap<String, LivingArmourUpgrade>) armour.upgradeMap.clone();
|
||||||
|
|
||||||
|
for (Entry<String, LivingArmourUpgrade> entry : upgradeMap.entrySet())
|
||||||
|
{
|
||||||
|
LivingArmourUpgrade upgrade = entry.getValue();
|
||||||
|
String upgradeKey = entry.getKey();
|
||||||
|
|
||||||
|
ItemStack upgradeStack = new ItemStack(ModItems.upgradeTome);
|
||||||
|
ItemUpgradeTome.setKey(upgradeStack, upgradeKey);
|
||||||
|
ItemUpgradeTome.setLevel(upgradeStack, upgrade.getUpgradeLevel());
|
||||||
|
|
||||||
|
boolean successful = armour.removeUpgrade(player, upgrade);
|
||||||
|
|
||||||
|
if (successful)
|
||||||
|
{
|
||||||
|
removedUpgrade = true;
|
||||||
|
world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, upgradeStack));
|
||||||
|
for (Entry<String, StatTracker> trackerEntry : armour.trackerMap.entrySet())
|
||||||
|
{
|
||||||
|
StatTracker tracker = trackerEntry.getValue();
|
||||||
|
if (tracker != null)
|
||||||
|
{
|
||||||
|
if (tracker.providesUpgrade(upgradeKey))
|
||||||
|
{
|
||||||
|
tracker.resetTracker(); //Resets the tracker if the upgrade corresponding to it was removed.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (removedUpgrade)
|
||||||
|
{
|
||||||
|
((ItemLivingArmour) chestStack.getItem()).setLivingArmour(chestStack, armour, true);
|
||||||
|
|
||||||
|
masterRitualStone.setActive(false);
|
||||||
|
|
||||||
|
world.spawnEntityInWorld(new EntityLightningBolt(world, pos.getX(), pos.getY() - 1, pos.getZ()));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getRefreshTime()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getRefreshCost()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ArrayList<RitualComponent> getComponents()
|
||||||
|
{
|
||||||
|
ArrayList<RitualComponent> components = new ArrayList<RitualComponent>();
|
||||||
|
|
||||||
|
this.addCornerRunes(components, 1, 0, EnumRuneType.DUSK);
|
||||||
|
this.addCornerRunes(components, 2, 0, EnumRuneType.FIRE);
|
||||||
|
this.addOffsetRunes(components, 1, 2, 0, EnumRuneType.FIRE);
|
||||||
|
this.addCornerRunes(components, 1, 1, EnumRuneType.WATER);
|
||||||
|
this.addParallelRunes(components, 4, 0, EnumRuneType.EARTH);
|
||||||
|
this.addCornerRunes(components, 1, 3, EnumRuneType.WATER);
|
||||||
|
this.addParallelRunes(components, 1, 4, EnumRuneType.AIR);
|
||||||
|
|
||||||
|
for (int i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
this.addCornerRunes(components, 3, i, EnumRuneType.EARTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
return components;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Ritual getNewCopy()
|
||||||
|
{
|
||||||
|
return new RitualUpgradeRemove();
|
||||||
|
}
|
||||||
|
}
|
|
@ -325,6 +325,7 @@ ritual.BloodMagic.speedRitual=Ritual of Speed
|
||||||
ritual.BloodMagic.suppressionRitual=Ritual of Suppression
|
ritual.BloodMagic.suppressionRitual=Ritual of Suppression
|
||||||
ritual.BloodMagic.expulsionRitual=Aura of Expulsion
|
ritual.BloodMagic.expulsionRitual=Aura of Expulsion
|
||||||
ritual.BloodMagic.zephyrRitual=Call of the Zephyr
|
ritual.BloodMagic.zephyrRitual=Call of the Zephyr
|
||||||
|
ritual.BloodMagic.fullUpgradeRemove=Sound of the Cleansing Soul
|
||||||
|
|
||||||
# Chat
|
# Chat
|
||||||
chat.BloodMagic.altarMaker.setTier=Set Tier to: %d
|
chat.BloodMagic.altarMaker.setTier=Set Tier to: %d
|
||||||
|
|
Loading…
Reference in a new issue