diff options
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/curses')
17 files changed, 1019 insertions, 469 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseBlind.java b/src/main/java/darkknight/jewelrycraft/curses/CurseBlind.java index 800718c..8996605 100644..100755 --- a/src/main/java/darkknight/jewelrycraft/curses/CurseBlind.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseBlind.java @@ -1,6 +1,7 @@ package darkknight.jewelrycraft.curses;
import java.util.Random;
+
import darkknight.jewelrycraft.api.Curse;
import darkknight.jewelrycraft.config.ConfigHandler;
import darkknight.jewelrycraft.util.Variables;
@@ -10,45 +11,48 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
-public class CurseBlind extends Curse
-{
- public CurseBlind(String name, int txtID, String pack)
- {
- super(name, txtID, pack);
- }
-
- @Override
- public void action(World world, EntityPlayer player)
- {
- if (!player.isPotionActive(Potion.blindness) || player.getActivePotionEffect(Potion.blindness).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.blindness.id, 60));
- }
-
- public String getDescription()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".blind.description");
- }
-
- @Override
- public boolean canCurseBeActivated(World world)
- {
- return world.getWorldInfo().isHardcoreModeEnabled() ? false : ConfigHandler.CURSE_BLIND;
- }
-
- @Override
- public boolean canCurseBeActivated()
- {
- return ConfigHandler.CURSE_BLIND;
- }
-
- @Override
- public int weight(World world, EntityPlayer player, Random random)
- {
- return 7;
- }
+public class CurseBlind extends Curse {
+ public CurseBlind(String name, int txtID, String pack) {
+ super(name, txtID, pack);
+ }
+
+ @Override
+ public void action(World world, EntityPlayer player) {
+ if (!player.isPotionActive(Potion.blindness)
+ || player.getActivePotionEffect(Potion.blindness)
+ .getDuration() < 30)
+ player.addPotionEffect(
+ new PotionEffect(Potion.blindness.id, 60));
+ }
+
+ @Override
+ public String getDescription() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".blind.description");
+ }
+
+ @Override
+ public boolean canCurseBeActivated(World world) {
+ if (world.getWorldInfo().isHardcoreModeEnabled()) {
+ return false;
+ }
+
+ return ConfigHandler.CURSE_BLIND;
+ }
+
+ @Override
+ public boolean canCurseBeActivated() {
+ return ConfigHandler.CURSE_BLIND;
+ }
+
+ @Override
+ public int weight(World world, EntityPlayer player, Random random) {
+ return 7;
+ }
@Override
- public String getDisplayName()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".blind");
+ public String getDisplayName() {
+ return StatCollector
+ .translateToLocal("curse." + Variables.MODID + ".blind");
}
}
diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseDeathsTouch.java b/src/main/java/darkknight/jewelrycraft/curses/CurseDeathsTouch.java index 92e2dfa..aeb3e22 100644..100755 --- a/src/main/java/darkknight/jewelrycraft/curses/CurseDeathsTouch.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseDeathsTouch.java @@ -10,35 +10,37 @@ import net.minecraft.util.StatCollector; import net.minecraft.world.World;
import net.minecraftforge.event.entity.living.LivingAttackEvent;
-public class CurseDeathsTouch extends Curse
-{
- public CurseDeathsTouch(String name, int txtID, String pack)
- {
- super(name, txtID, pack);
- }
-
- @Override
- public boolean attackedByPlayerActionCancelable(LivingAttackEvent event, World world, EntityPlayer player, Entity target)
- {
- if (!world.isRemote) target.attackEntityFrom(DamageSource.wither, event.ammount);
- return true;
- }
-
- public String getDescription()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".deathsTouch.description");
- }
-
+public class CurseDeathsTouch extends Curse {
+ public CurseDeathsTouch(String name, int txtID, String pack) {
+ super(name, txtID, pack);
+ }
+
+ @Override
+ public boolean attackedByPlayerActionCancelable(
+ LivingAttackEvent event, World world, EntityPlayer player,
+ Entity target) {
+ if (!world.isRemote) {
+ target.attackEntityFrom(DamageSource.wither, event.ammount);
+ }
+
+ return true;
+ }
+
+ @Override
+ public String getDescription() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".deathsTouch.description");
+ }
+
+ @Override
+ public String getDisplayName() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".deathsTouch");
+ }
+
@Override
- public String getDisplayName()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".deathsTouch");
+ public boolean canCurseBeActivated() {
+ return ConfigHandler.CURSE_DEATHS_TOUCH;
}
- @Override
- public boolean canCurseBeActivated()
- {
- return ConfigHandler.CURSE_DEATHS_TOUCH;
- }
-
}
diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseDoubleDown.java b/src/main/java/darkknight/jewelrycraft/curses/CurseDoubleDown.java new file mode 100755 index 0000000..d1d872b --- /dev/null +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseDoubleDown.java @@ -0,0 +1,61 @@ +package darkknight.jewelrycraft.curses; + +import darkknight.jewelrycraft.api.Curse; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.damage.DamageSourceList; +import darkknight.jewelrycraft.util.Variables; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.event.entity.living.LivingAttackEvent; + +public class CurseDoubleDown extends Curse { + public CurseDoubleDown(String name, int txtID, String pack) { + super(name, txtID, pack); + } + + @Override + public void attackedAction(World world, EntityPlayer player, + LivingAttackEvent event, Entity attacker) { + if (event.source.damageType.equals("doubleDown")) { + return; // Don't stack double down + } + + player.attackEntityFrom(DamageSourceList.doubleDown, + event.ammount); + } + + @Override + public void attackedByPlayerAction(LivingAttackEvent event, + World world, EntityPlayer player, Entity target) { + if (event.source.damageType.equals("doubleDown")) { + return; // Don't stack double down + } + + target.attackEntityFrom(DamageSourceList.doubleDown, + event.ammount); + } + + @Override + public boolean canCurseBeActivated() { + return ConfigHandler.CURSE_DOUBLE_DOWN; + } + + @Override + public String getDescription() { + return StatCollector.translateToLocal( + "curse." + Variables.MODID + ".doubledown.description"); + } + + @Override + public String getDisplayName() { + return StatCollector.translateToLocal( + "curse." + Variables.MODID + ".doubledown"); + } + + @Override + public int luck() { + return 5; + } +} diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseFlamingSoul.java b/src/main/java/darkknight/jewelrycraft/curses/CurseFlamingSoul.java index 6772d92..e808c84 100644..100755 --- a/src/main/java/darkknight/jewelrycraft/curses/CurseFlamingSoul.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseFlamingSoul.java @@ -8,32 +8,30 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
-public class CurseFlamingSoul extends Curse
-{
- public CurseFlamingSoul(String name, int txtID, String pack)
- {
- super(name, txtID, pack);
- }
-
- public void attackedByPlayerAction(World world, EntityPlayer player, Entity target)
- {
- player.setFire(5);
- }
-
- public String getDescription()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".flamingsoul.description");
- }
+public class CurseFlamingSoul extends Curse {
+ public CurseFlamingSoul(String name, int txtID, String pack) {
+ super(name, txtID, pack);
+ }
+
+ public void attackedByPlayerAction(World world, EntityPlayer player,
+ Entity target) {
+ player.setFire(5);
+ }
+
+ @Override
+ public String getDescription() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".flamingsoul.description");
+ }
- @Override
- public boolean canCurseBeActivated()
- {
- return ConfigHandler.CURSE_FLAMING_SOUL;
- }
+ @Override
+ public boolean canCurseBeActivated() {
+ return ConfigHandler.CURSE_FLAMING_SOUL;
+ }
@Override
- public String getDisplayName()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".flamingsoul");
+ public String getDisplayName() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".flamingsoul");
}
}
diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseGreed.java b/src/main/java/darkknight/jewelrycraft/curses/CurseGreed.java index 5e535b8..5d8d29c 100644..100755 --- a/src/main/java/darkknight/jewelrycraft/curses/CurseGreed.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseGreed.java @@ -7,38 +7,35 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
-public class CurseGreed extends Curse
-{
- public CurseGreed(String name, int txtID, String pack)
- {
- super(name, txtID, pack);
- }
-
- @Override
- public void action(World world, EntityPlayer player)
- {
- }
-
- @Override
- public boolean itemToss()
- {
- return true;
- }
-
- public String getDescription()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".greed.description");
- }
+public class CurseGreed extends Curse {
+ public CurseGreed(String name, int txtID, String pack) {
+ super(name, txtID, pack);
+ }
+
+ @Override
+ public void action(World world, EntityPlayer player) {
+ // Do nothing
+ }
+
+ @Override
+ public boolean itemToss() {
+ return true;
+ }
+
+ @Override
+ public String getDescription() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".greed.description");
+ }
- @Override
- public boolean canCurseBeActivated()
- {
- return ConfigHandler.CURSE_GREED;
- }
+ @Override
+ public boolean canCurseBeActivated() {
+ return ConfigHandler.CURSE_GREED;
+ }
@Override
- public String getDisplayName()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".greed");
+ public String getDisplayName() {
+ return StatCollector
+ .translateToLocal("curse." + Variables.MODID + ".greed");
}
}
diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseHumbleBundle.java b/src/main/java/darkknight/jewelrycraft/curses/CurseHumbleBundle.java index 3d0f582..3ad73f2 100644..100755 --- a/src/main/java/darkknight/jewelrycraft/curses/CurseHumbleBundle.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseHumbleBundle.java @@ -4,6 +4,7 @@ package darkknight.jewelrycraft.curses;
import java.util.ArrayList;
+
import darkknight.jewelrycraft.api.Curse;
import darkknight.jewelrycraft.config.ConfigHandler;
import darkknight.jewelrycraft.util.Variables;
@@ -20,53 +21,56 @@ import net.minecraftforge.event.world.BlockEvent; * @author Sorin
*
*/
-public class CurseHumbleBundle extends Curse
-{
- protected CurseHumbleBundle(String name, int txtID, String texturepack)
- {
- super(name, txtID, texturepack);
- }
-
- @Override
- public void entityDropItems(EntityPlayer player, Entity target, ArrayList<EntityItem> drops)
- {
- for(EntityItem item: drops){
- ItemStack drop = item.getEntityItem().copy();
- target.entityDropItem(drop, 0.5F);
- }
- }
-
- public void onBlockItemsDrop(EntityPlayer player, BlockEvent.HarvestDropsEvent event)
- {
- for(ItemStack item: event.drops){
- ItemStack drop = item.copy();
- if(drop.getItem() != Item.getItemFromBlock(event.block)) dropItem(event.world, event.x, event.y, event.z, drop);
- }
- }
-
- public void dropItem(World world, double x, double y, double z, ItemStack stack)
- {
- EntityItem entityitem = new EntityItem(world, x + 0.5D, y + 0.5D, z + 0.5D, stack);
- entityitem.motionX = 0;
- entityitem.motionZ = 0;
- entityitem.motionY = 0.11000000298023224D;
- world.spawnEntityInWorld(entityitem);
- }
-
- public String getDescription()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".humblebundle.description");
- }
+public class CurseHumbleBundle extends Curse {
+ protected CurseHumbleBundle(String name, int txtID,
+ String texturepack) {
+ super(name, txtID, texturepack);
+ }
+
+ @Override
+ public void entityDropItems(EntityPlayer player, Entity target,
+ ArrayList<EntityItem> drops) {
+ for (EntityItem item : drops) {
+ ItemStack drop = item.getEntityItem().copy();
+ target.entityDropItem(drop, 0.5F);
+ }
+ }
+
+ @Override
+ public void onBlockItemsDrop(EntityPlayer player,
+ BlockEvent.HarvestDropsEvent event) {
+ for (ItemStack item : event.drops) {
+ ItemStack drop = item.copy();
+
+ if (drop.getItem() != Item.getItemFromBlock(event.block))
+ dropItem(event.world, event.x, event.y, event.z, drop);
+ }
+ }
+
+ public void dropItem(World world, double x, double y, double z,
+ ItemStack stack) {
+ EntityItem entityitem =
+ new EntityItem(world, x + 0.5D, y + 0.5D, z + 0.5D, stack);
+ entityitem.motionX = 0;
+ entityitem.motionZ = 0;
+ entityitem.motionY = 0.11000000298023224D;
+ world.spawnEntityInWorld(entityitem);
+ }
+
+ @Override
+ public String getDescription() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".humblebundle.description");
+ }
@Override
- public String getDisplayName()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".humblebundle");
+ public String getDisplayName() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".humblebundle");
}
- @Override
- public boolean canCurseBeActivated()
- {
- return ConfigHandler.CURSE_HUMBLE_BUNDLE;
- }
+ @Override
+ public boolean canCurseBeActivated() {
+ return ConfigHandler.CURSE_HUMBLE_BUNDLE;
+ }
}
diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseIncredibleDevotion.java b/src/main/java/darkknight/jewelrycraft/curses/CurseIncredibleDevotion.java new file mode 100755 index 0000000..43fa756 --- /dev/null +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseIncredibleDevotion.java @@ -0,0 +1,39 @@ +package darkknight.jewelrycraft.curses; + +import darkknight.jewelrycraft.api.Curse; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.util.Variables; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; + +public class CurseIncredibleDevotion extends Curse { + protected CurseIncredibleDevotion(String name, int txtID, + String texturepack) { + super(name, txtID, texturepack); + } + + @Override + public void entityDeathAction(World world, EntityLivingBase target, + EntityPlayer player) { + if (rand.nextInt(10) == 0) { + world.createExplosion(target, target.posX, target.posY, + target.posZ, target.getMaxHealth() / (10.0f + * (1 / ConfigHandler.DEVOTION_FACTOR)), + true); + } + } + + @Override + public String getDisplayName() { + return StatCollector.translateToLocal( + "curse." + Variables.MODID + ".incredibledevotion"); + } + + @Override + public String getDescription() { + return StatCollector.translateToLocal("curse." + Variables.MODID + + ".incredibledevotion.description"); + } +} diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseInfamy.java b/src/main/java/darkknight/jewelrycraft/curses/CurseInfamy.java index 4f91244..8d99006 100644..100755 --- a/src/main/java/darkknight/jewelrycraft/curses/CurseInfamy.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseInfamy.java @@ -1,6 +1,7 @@ package darkknight.jewelrycraft.curses;
import org.lwjgl.opengl.GL11;
+
import darkknight.jewelrycraft.JewelrycraftMod;
import darkknight.jewelrycraft.api.Curse;
import darkknight.jewelrycraft.config.ConfigHandler;
@@ -25,63 +26,88 @@ import net.minecraft.world.World; import net.minecraftforge.client.event.RenderPlayerEvent;
import net.minecraftforge.event.entity.living.LivingAttackEvent;
-public class CurseInfamy extends Curse
-{
- public CurseInfamy(String name, int txtID, String pack)
- {
- super(name, txtID, pack);
- }
-
- @Override
- public void attackedByPlayerAction(LivingAttackEvent event, World world, EntityPlayer player, Entity target)
- {
- if (rand.nextInt(5) == 0 && !world.isRemote && !(target instanceof EntityMob) && target instanceof EntityLiving && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart) && target.canAttackWithItem()){
- NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID);
- playerInfo.setFloat("BlackHeart", playerInfo.getFloat("BlackHeart") + 1.0F);
- if (player.getMaxHealth() >= 3F){
- player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() - 1.0F);
- player.setHealth(player.getHealth() - 1.0F);
- }
- JewelrycraftUtil.addCursePoints(player, 10);
- JewelrycraftMod.netWrapper.sendToAll(new PacketSendServerPlayersInfo());
- JewelrycraftMod.netWrapper.sendTo(new PacketSendClientPlayerInfo(playerInfo), (EntityPlayerMP)player);
- }
- }
-
- @Override
- public void playerRender(EntityPlayer player, RenderPlayerEvent.Specials.Post event)
- {
- MaskRender mask = new MaskRender();
- float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick;
- float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick;
- float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick;
- GL11.glPushMatrix();
- GL11.glColor4f(1, 1, 1, 1);
- GL11.glRotatef(yawOffset, 0, -1, 0);
- GL11.glRotatef(yaw - 90, 0, 1, 0);
- GL11.glRotatef(pitch, 0, 0, -1);
- GL11.glRotatef(90F, 0, 1F, 0F);
- RenderHelper.translateToHeadLevel(player);
- GL11.glScalef(1.6f, 1.6f, 1.6f);
- GL11.glTranslatef(-0.25F, -0.25F, -0.25F);
- mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F);
- GL11.glPopMatrix();
- }
-
- public String getDescription()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".infamy.description");
- }
-
+public class CurseInfamy extends Curse {
+ public CurseInfamy(String name, int txtID, String pack) {
+ super(name, txtID, pack);
+ }
+
@Override
- public String getDisplayName()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".infamy");
+ public void attackedByPlayerAction(LivingAttackEvent event,
+ World world, EntityPlayer player, Entity target) {
+ if (rand.nextInt(5) == 0 && !world.isRemote
+ && !(target instanceof EntityMob)
+ && target instanceof EntityLiving
+ && !(target instanceof EntityHeart)
+ && !(target instanceof EntityHalfHeart)
+ && target.canAttackWithItem()) {
+ NBTTagCompound playerInfo = PlayerUtils
+ .getModPlayerPersistTag(player, Variables.MODID);
+
+ playerInfo.setFloat("BlackHeart",
+ playerInfo.getFloat("BlackHeart") + 1.0F);
+
+ if (player.getMaxHealth() >= 3F) {
+ player.getEntityAttribute(
+ SharedMonsterAttributes.maxHealth)
+ .setBaseValue(player.getMaxHealth() - 1.0F);
+
+ player.setHealth(player.getHealth() - 1.0F);
+ }
+
+ JewelrycraftUtil.addCursePoints(player, 10);
+
+ JewelrycraftMod.netWrapper
+ .sendToAll(new PacketSendServerPlayersInfo());
+
+ JewelrycraftMod.netWrapper.sendTo(
+ new PacketSendClientPlayerInfo(playerInfo),
+ (EntityPlayerMP) player);
+ }
}
- @Override
- public boolean canCurseBeActivated()
- {
- return ConfigHandler.CURSE_INFAMY;
- }
+ @Override
+ public void playerRender(EntityPlayer player,
+ RenderPlayerEvent.Specials.Post event) {
+ MaskRender mask = new MaskRender();
+
+ float yaw = player.prevRotationYawHead
+ + (player.rotationYawHead - player.prevRotationYawHead)
+ * event.partialRenderTick;
+
+ float yawOffset = player.prevRenderYawOffset
+ + (player.renderYawOffset - player.prevRenderYawOffset)
+ * event.partialRenderTick;
+
+ float pitch = player.prevRotationPitch
+ + (player.rotationPitch - player.prevRotationPitch)
+ * event.partialRenderTick;
+ GL11.glPushMatrix();
+ GL11.glColor4f(1, 1, 1, 1);
+ GL11.glRotatef(yawOffset, 0, -1, 0);
+ GL11.glRotatef(yaw - 90, 0, 1, 0);
+ GL11.glRotatef(pitch, 0, 0, -1);
+ GL11.glRotatef(90F, 0, 1F, 0F);
+ RenderHelper.translateToHeadLevel(player);
+ GL11.glScalef(1.6f, 1.6f, 1.6f);
+ GL11.glTranslatef(-0.25F, -0.25F, -0.25F);
+ mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F);
+ GL11.glPopMatrix();
+ }
+
+ @Override
+ public String getDescription() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".infamy.description");
+ }
+
+ @Override
+ public String getDisplayName() {
+ return StatCollector
+ .translateToLocal("curse." + Variables.MODID + ".infamy");
+ }
+
+ @Override
+ public boolean canCurseBeActivated() {
+ return ConfigHandler.CURSE_INFAMY;
+ }
}
diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseList.java b/src/main/java/darkknight/jewelrycraft/curses/CurseList.java index 4a33f67..2c11364 100644..100755 --- a/src/main/java/darkknight/jewelrycraft/curses/CurseList.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseList.java @@ -5,33 +5,93 @@ import darkknight.jewelrycraft.api.Curse; import darkknight.jewelrycraft.util.Variables;
public class CurseList {
- public static Curse rotten;
- public static Curse flaming;
- public static Curse blind;
- public static Curse greed;
- public static Curse infamy;
- public static Curse midasTouch;
- public static Curse rabbitsPaw;
- public static Curse pentagram;
- public static Curse vampireHunger;
- public static Curse humbleBundle;
- public static Curse deathsTouch;
- public static Curse antichrist;
- public static Curse moneyEqualsPower;
+ private static final String CURSE_TEXPACK = Variables.MODID
+ + "_curses_0";
+
+ public static Curse rotten;
+ public static Curse flaming;
+ public static Curse blind;
+ public static Curse greed;
+ public static Curse incredibleDevotion;
+
+ public static Curse infamy;
+ public static Curse midasTouch;
+ public static Curse rabbitsPaw;
+ public static Curse pentagram;
+ public static Curse vampireHunger;
+ public static Curse humbleBundle;
+ public static Curse deathsTouch;
+ public static Curse scionOfHell;
+ public static Curse moneyEqualsPower;
+ public static Curse doubleDown;
+ public static Curse sacredOath;
+
+ // Not yet implemented
+ // None at the moment :)
public static void preInit(FMLPreInitializationEvent e) {
- rotten = new CurseRottenHeart(Variables.MODNAME + ":" + "Rotten Heart", 0, Variables.MODID + "_curses_0");
- flaming = new CurseFlamingSoul(Variables.MODNAME + ":" + "Flaming Soul", 1, Variables.MODID + "_curses_0");
- greed = new CurseGreed(Variables.MODNAME + ":" + "Greed", 2, Variables.MODID + "_curses_0");
- blind = new CurseBlind(Variables.MODNAME + ":" + "Blind", 3, Variables.MODID + "_curses_0");
- infamy = new CurseInfamy(Variables.MODNAME + ":" + "Infamy", 4, Variables.MODID + "_curses_0");
- midasTouch = new CurseMidasTouch(Variables.MODNAME + ":" + "Midas Touch", 5, Variables.MODID + "_curses_0");
- rabbitsPaw = new CurseRabbitsPaw(Variables.MODNAME + ":" + "Rabbit's Paw", 6, Variables.MODID + "_curses_0");
- pentagram = new CursePentagram(Variables.MODNAME + ":" + "Pentagram", 7, Variables.MODID + "_curses_0");
- vampireHunger = new CurseVampireHunger(Variables.MODNAME + ":" + "Vampire Hunger", 8, Variables.MODID + "_curses_0");
- humbleBundle = new CurseHumbleBundle(Variables.MODNAME + ":" + "Humble Bundle", 9, Variables.MODID + "_curses_0");
- deathsTouch = new CurseDeathsTouch(Variables.MODNAME + ":" + "Deaths Touch", 10, Variables.MODID + "_curses_0");
- // antichrist = new CurseMidasTouch(Variables.MODNAME + ":" + "Antichrist", 11, Variables.MODID + "_curses_0");
- // moneyEqualsPower = new CurseMidasTouch(Variables.MODNAME + ":" + "Money Equals Power", 12, Variables.MODID + "_curses_0");
+ rotten = new CurseRottenHeart(
+ Variables.MODNAME + ":" + "Rotten Heart",
+ 0, CURSE_TEXPACK);
+
+ flaming = new CurseFlamingSoul(
+ Variables.MODNAME + ":" + "Flaming Soul",
+ 1, CURSE_TEXPACK);
+
+ greed = new CurseGreed(Variables.MODNAME + ":" + "Greed",
+ 2, CURSE_TEXPACK);
+
+ blind = new CurseBlind(Variables.MODNAME + ":" + "Blind",
+ 3, CURSE_TEXPACK);
+
+ infamy = new CurseInfamy(
+ Variables.MODNAME + ":" + "Infamy", 4,
+ CURSE_TEXPACK);
+
+ midasTouch = new CurseMidasTouch(
+ Variables.MODNAME + ":" + "Midas Touch", 5,
+ CURSE_TEXPACK);
+
+ rabbitsPaw = new CurseRabbitsPaw(
+ Variables.MODNAME + ":" + "Rabbit's Paw",
+ 6, CURSE_TEXPACK);
+
+ pentagram = new CursePentagram(
+ Variables.MODNAME + ":" + "Pentagram", 7,
+ CURSE_TEXPACK);
+
+ vampireHunger = new CurseVampireHunger(
+ Variables.MODNAME + ":" + "Vampire Hunger",
+ 8, CURSE_TEXPACK);
+
+ humbleBundle = new CurseHumbleBundle(
+ Variables.MODNAME + ":" + "Humble Bundle",
+ 9, CURSE_TEXPACK);
+
+ deathsTouch = new CurseDeathsTouch(
+ Variables.MODNAME + ":" + "Deaths Touch",
+ 10, CURSE_TEXPACK);
+
+ scionOfHell = new CurseScionOfHell(
+ Variables.MODNAME + ":" + "Scion of Hell",
+ 11, CURSE_TEXPACK);
+
+ moneyEqualsPower = new CurseMoneyEqualsPower(
+ Variables.MODNAME + ":"
+ + "Money Equals Power",
+ 12, CURSE_TEXPACK);
+
+ doubleDown = new CurseDoubleDown(
+ Variables.MODNAME + ":" + "Double Down",
+ 19, CURSE_TEXPACK);
+
+ incredibleDevotion = new CurseIncredibleDevotion(
+ Variables.MODNAME + ":"
+ + "Incredible Devotion",
+ 20, CURSE_TEXPACK);
+
+ sacredOath = new CurseSacredOath(
+ Variables.MODNAME + ":" + "Sacred Oath",
+ 21, CURSE_TEXPACK);
}
}
diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseMidasTouch.java b/src/main/java/darkknight/jewelrycraft/curses/CurseMidasTouch.java index 86d9622..ef78b12 100644..100755 --- a/src/main/java/darkknight/jewelrycraft/curses/CurseMidasTouch.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseMidasTouch.java @@ -1,6 +1,7 @@ package darkknight.jewelrycraft.curses;
import java.util.Random;
+
import darkknight.jewelrycraft.api.Curse;
import darkknight.jewelrycraft.block.BlockList;
import darkknight.jewelrycraft.config.ConfigHandler;
@@ -32,92 +33,169 @@ import net.minecraft.util.StatCollector; import net.minecraft.world.World;
import net.minecraftforge.event.entity.living.LivingAttackEvent;
-public class CurseMidasTouch extends Curse
-{
- public CurseMidasTouch(String name, int txtID, String pack)
- {
- super(name, txtID, pack);
- }
-
- @Override
- public void attackedByPlayerAction(LivingAttackEvent event, World world, EntityPlayer player, Entity target)
- {
- if (!world.isRemote && target instanceof EntityLivingBase && !(target instanceof EntityHeart) && !(target instanceof EntityHalfHeart) && player.inventory.getCurrentItem() == null){
- world.setBlock(MathHelper.floor_double(target.posX), MathHelper.floor_double(target.posY), MathHelper.floor_double(target.posZ), BlockList.midasTouchBlock, 0, 2);
- TileEntityMidasTouch midasTouchVictim = new TileEntityMidasTouch();
- midasTouchVictim.setEntity(target);
- world.setTileEntity(MathHelper.floor_double(target.posX), MathHelper.floor_double(target.posY), MathHelper.floor_double(target.posZ), midasTouchVictim);
- target.setDead();
- }
- }
-
- @Override
- public void action(World world, EntityPlayer player)
- {
- ItemStack curItem = player.inventory.getCurrentItem();
- if(curItem != null && curItem.getItem() != ItemList.goldObj && !isGoldenObject(curItem.getItem())){
- int index = player.inventory.currentItem;
- ItemStack item = curItem;
- ItemStack result = new ItemStack(ItemList.goldObj, item.stackSize, item.getItemDamage());
- JewelryNBT.addItem(result, item);
- if(changeItem(curItem) != null) result = changeItem(curItem);
- player.inventory.setInventorySlotContents(index, result);
- }
- }
-
- public ItemStack changeItem(ItemStack currItem)
- {
- if(currItem.getItem() instanceof ItemSword) return new ItemStack(Items.golden_sword, currItem.stackSize, currItem.getItemDamage());
- else if(currItem.getItem() instanceof ItemSpade) return new ItemStack(Items.golden_shovel, currItem.stackSize, currItem.getItemDamage());
- else if(currItem.getItem() instanceof ItemPickaxe) return new ItemStack(Items.golden_pickaxe, currItem.stackSize, currItem.getItemDamage());
- else if(currItem.getItem() instanceof ItemAxe) return new ItemStack(Items.golden_axe, currItem.stackSize, currItem.getItemDamage());
- else if(currItem.getItem() instanceof ItemHoe) return new ItemStack(Items.golden_hoe, currItem.stackSize, currItem.getItemDamage());
- else if(currItem.getItem() instanceof ItemArmor && ((ItemArmor)currItem.getItem()).armorType == 0) return new ItemStack(Items.golden_helmet, currItem.stackSize, currItem.getItemDamage());
- else if(currItem.getItem() instanceof ItemArmor && ((ItemArmor)currItem.getItem()).armorType == 1) return new ItemStack(Items.golden_chestplate, currItem.stackSize, currItem.getItemDamage());
- else if(currItem.getItem() instanceof ItemArmor && ((ItemArmor)currItem.getItem()).armorType == 2) return new ItemStack(Items.golden_leggings, currItem.stackSize, currItem.getItemDamage());
- else if(currItem.getItem() instanceof ItemArmor && ((ItemArmor)currItem.getItem()).armorType == 3) return new ItemStack(Items.golden_boots, currItem.stackSize, currItem.getItemDamage());
- else if(currItem.getItem().getUnlocalizedName().toLowerCase().contains("horsearmor")) return new ItemStack(Items.golden_horse_armor, currItem.stackSize, 0);
- else if(currItem.getItem().getUnlocalizedName().toLowerCase().contains("nugget") || currItem.getItem().getItemStackDisplayName(currItem).toLowerCase().contains(" nugget") || currItem.getItem().getItemStackDisplayName(currItem).toLowerCase().contains("nugget ")) return new ItemStack(Items.gold_nugget, currItem.stackSize, 0);
- else if(currItem.getItem().getUnlocalizedName().toLowerCase().contains("ingot") || currItem.getItem().getItemStackDisplayName(currItem).toLowerCase().contains(" ingot") || currItem.getItem().getItemStackDisplayName(currItem).toLowerCase().contains("ingot ")) return new ItemStack(Items.gold_ingot, currItem.stackSize, 0);
- else if(Block.getBlockFromItem(currItem.getItem()) instanceof BlockPressurePlate || Block.getBlockFromItem(currItem.getItem()) instanceof BlockPressurePlateWeighted) return new ItemStack(Blocks.light_weighted_pressure_plate, currItem.stackSize, 0);
- else if(Block.getBlockFromItem(currItem.getItem()) instanceof BlockCompressed) return new ItemStack(Blocks.gold_block, currItem.stackSize, 0);
- return null;
- }
-
- public boolean isGoldenObject(Item item)
- {
- return item.equals(Items.gold_ingot) || item.equals(Items.gold_nugget) || item.equals(Items.golden_helmet) || item.equals(Items.golden_chestplate) ||
- item.equals(Items.golden_leggings) || item.equals(Items.golden_boots) || item.equals(Items.golden_sword) || item.equals(Items.golden_shovel) ||
- item.equals(Items.golden_pickaxe) || item.equals(Items.golden_axe) || item.equals(Items.golden_apple) || item.equals(Items.golden_hoe) ||
- item.equals(Items.golden_horse_armor) || Block.getBlockFromItem(item).equals(Blocks.gold_block) || Block.getBlockFromItem(item).equals(Blocks.light_weighted_pressure_plate);
- }
-
- public String getDescription()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".midastouch.description");
- }
-
+public class CurseMidasTouch extends Curse {
+ public CurseMidasTouch(String name, int txtID, String pack) {
+ super(name, txtID, pack);
+ }
+
+ @Override
+ public void attackedByPlayerAction(LivingAttackEvent event,
+ World world, EntityPlayer player, Entity target) {
+ if (!world.isRemote && target instanceof EntityLivingBase
+ && !(target instanceof EntityHeart)
+ && !(target instanceof EntityHalfHeart)
+ && player.inventory.getCurrentItem() == null) {
+ world.setBlock(MathHelper.floor_double(target.posX),
+ MathHelper.floor_double(target.posY),
+ MathHelper.floor_double(target.posZ),
+ BlockList.midasTouchBlock, 0, 2);
+
+ TileEntityMidasTouch midasTouchVictim =
+ new TileEntityMidasTouch();
+ midasTouchVictim.setEntity(target);
+
+ world.setTileEntity(MathHelper.floor_double(target.posX),
+ MathHelper.floor_double(target.posY),
+ MathHelper.floor_double(target.posZ),
+ midasTouchVictim);
+
+ target.setDead();
+ }
+ }
+
+ @Override
+ public void action(World world, EntityPlayer player) {
+ ItemStack curItem = player.inventory.getCurrentItem();
+
+ if (curItem != null && curItem.getItem() != ItemList.goldObj
+ && !isGoldenObject(curItem.getItem())) {
+ int index = player.inventory.currentItem;
+
+ ItemStack item = curItem;
+ ItemStack result = new ItemStack(ItemList.goldObj,
+ item.stackSize, item.getItemDamage());
+
+ JewelryNBT.addItem(result, item);
+
+ if (changeItem(curItem) != null) {
+ result = changeItem(curItem);
+ }
+
+ player.inventory.setInventorySlotContents(index, result);
+ }
+ }
+
+ public ItemStack changeItem(ItemStack currItem) {
+ if (currItem.getItem() instanceof ItemSword) {
+ return new ItemStack(Items.golden_sword, currItem.stackSize,
+ currItem.getItemDamage());
+ } else if (currItem.getItem() instanceof ItemSpade) {
+ return new ItemStack(Items.golden_shovel, currItem.stackSize,
+ currItem.getItemDamage());
+ } else if (currItem.getItem() instanceof ItemPickaxe) {
+ return new ItemStack(Items.golden_pickaxe, currItem.stackSize,
+ currItem.getItemDamage());
+ } else if (currItem.getItem() instanceof ItemAxe) {
+ return new ItemStack(Items.golden_axe, currItem.stackSize,
+ currItem.getItemDamage());
+ } else if (currItem.getItem() instanceof ItemHoe) {
+ return new ItemStack(Items.golden_hoe, currItem.stackSize,
+ currItem.getItemDamage());
+ } else if (currItem.getItem() instanceof ItemArmor
+ && ((ItemArmor) currItem.getItem()).armorType == 0) {
+ return new ItemStack(Items.golden_helmet, currItem.stackSize,
+ currItem.getItemDamage());
+ } else if (currItem.getItem() instanceof ItemArmor
+ && ((ItemArmor) currItem.getItem()).armorType == 1) {
+ return new ItemStack(Items.golden_chestplate,
+ currItem.stackSize, currItem.getItemDamage());
+ } else if (currItem.getItem() instanceof ItemArmor
+ && ((ItemArmor) currItem.getItem()).armorType == 2) {
+ return new ItemStack(Items.golden_leggings, currItem.stackSize,
+ currItem.getItemDamage());
+ } else if (currItem.getItem() instanceof ItemArmor
+ && ((ItemArmor) currItem.getItem()).armorType == 3) {
+ return new ItemStack(Items.golden_boots, currItem.stackSize,
+ currItem.getItemDamage());
+ } else if (currItem.getItem().getUnlocalizedName().toLowerCase()
+ .contains("horsearmor")) {
+ return new ItemStack(Items.golden_horse_armor,
+ currItem.stackSize, 0);
+ } else if (currItem.getItem().getUnlocalizedName().toLowerCase()
+ .contains("nugget")
+ || currItem.getItem().getItemStackDisplayName(currItem)
+ .toLowerCase().contains(" nugget")
+ || currItem.getItem().getItemStackDisplayName(currItem)
+ .toLowerCase().contains("nugget ")) {
+ return new ItemStack(Items.gold_nugget, currItem.stackSize, 0);
+ } else if (currItem.getItem().getUnlocalizedName().toLowerCase()
+ .contains("ingot")
+ || currItem.getItem().getItemStackDisplayName(currItem)
+ .toLowerCase().contains(" ingot")
+ || currItem.getItem().getItemStackDisplayName(currItem)
+ .toLowerCase().contains("ingot ")) {
+ return new ItemStack(Items.gold_ingot, currItem.stackSize, 0);
+ } else if (Block.getBlockFromItem(
+ currItem.getItem()) instanceof BlockPressurePlate
+ || Block.getBlockFromItem(currItem
+ .getItem()) instanceof BlockPressurePlateWeighted) {
+ return new ItemStack(Blocks.light_weighted_pressure_plate,
+ currItem.stackSize, 0);
+ } else if (Block.getBlockFromItem(
+ currItem.getItem()) instanceof BlockCompressed) {
+ return new ItemStack(Blocks.gold_block, currItem.stackSize, 0);
+ }
+
+ return null;
+ }
+
+ public boolean isGoldenObject(Item item) {
+ return item.equals(Items.gold_ingot)
+ || item.equals(Items.gold_nugget)
+ || item.equals(Items.golden_helmet)
+ || item.equals(Items.golden_chestplate)
+ || item.equals(Items.golden_leggings)
+ || item.equals(Items.golden_boots)
+ || item.equals(Items.golden_sword)
+ || item.equals(Items.golden_shovel)
+ || item.equals(Items.golden_pickaxe)
+ || item.equals(Items.golden_axe)
+ || item.equals(Items.golden_apple)
+ || item.equals(Items.golden_hoe)
+ || item.equals(Items.golden_horse_armor)
+ || Block.getBlockFromItem(item).equals(Blocks.gold_block)
+ || Block.getBlockFromItem(item)
+ .equals(Blocks.light_weighted_pressure_plate);
+ }
+
@Override
- public String getDisplayName()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".midastouch");
+ public String getDescription() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".midastouch.description");
}
- @Override
- public boolean canCurseBeActivated(World world)
- {
- return world.getWorldInfo().isHardcoreModeEnabled() ? false : ConfigHandler.CURSE_MIDAS_TOUCH;
- }
-
- @Override
- public boolean canCurseBeActivated()
- {
- return ConfigHandler.CURSE_MIDAS_TOUCH;
- }
-
- @Override
- public int weight(World world, EntityPlayer player, Random random)
- {
- return 2;
- }
+ @Override
+ public String getDisplayName() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".midastouch");
+ }
+
+ @Override
+ public boolean canCurseBeActivated(World world) {
+ if (world.getWorldInfo().isHardcoreModeEnabled()) {
+ return false;
+ }
+
+ return ConfigHandler.CURSE_MIDAS_TOUCH;
+ }
+
+ @Override
+ public boolean canCurseBeActivated() {
+ return ConfigHandler.CURSE_MIDAS_TOUCH;
+ }
+
+ @Override
+ public int weight(World world, EntityPlayer player, Random random) {
+ return 2;
+ }
}
diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseMoneyEqualsPower.java b/src/main/java/darkknight/jewelrycraft/curses/CurseMoneyEqualsPower.java new file mode 100755 index 0000000..741a857 --- /dev/null +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseMoneyEqualsPower.java @@ -0,0 +1,108 @@ +package darkknight.jewelrycraft.curses; + +import java.util.ArrayList; + +import darkknight.jewelrycraft.api.Curse; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.util.Variables; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; + +public class CurseMoneyEqualsPower extends Curse { + public CurseMoneyEqualsPower(String name, int txtID, + String texturepack) { + super(name, txtID, texturepack); + } + + @Override + public void entityDropItems(EntityPlayer player, Entity target, + ArrayList<EntityItem> drops) { + int dropsTaken = 0; + + for (EntityItem item : drops) { + if (rand.nextBoolean()) { + int stackSize = item + .getEntityItem().stackSize; + int takenItems = rand.nextInt(stackSize); + item.getEntityItem().stackSize -= takenItems; + + if (item.getEntityItem().stackSize <= 0) { + item.setDead(); + } + + dropsTaken += takenItems; + } + } + + if (dropsTaken > 0) { + if (dropsTaken > 3) { + player.addPotionEffect(new PotionEffect( + Potion.digSpeed.id, + dropsTaken * 30, 1)); + player.addPotionEffect(new PotionEffect( + Potion.moveSpeed.id, + dropsTaken * 30, 1)); + + player.addChatComponentMessage( + new ChatComponentText( + StatCollector.translateToLocal( + EnumChatFormatting.RED + + "curse.jewlrycraft2.moneyEqualsPower.bless1"))); + } + + if (dropsTaken > 6) { + player.addPotionEffect(new PotionEffect( + Potion.resistance.id, + dropsTaken * 20, 1)); + player.addPotionEffect(new PotionEffect( + Potion.damageBoost.id, + dropsTaken * 20, 1)); + + player.addChatComponentMessage( + new ChatComponentText( + StatCollector.translateToLocal( + EnumChatFormatting.RED + + "curse.jewlrycraft2.moneyEqualsPower.bless2"))); + } + + if (dropsTaken > 9) { + player.addPotionEffect(new PotionEffect( + Potion.regeneration.id, + dropsTaken * 10, 1)); + player.addPotionEffect(new PotionEffect( + Potion.heal.id, + dropsTaken * 10, 1)); + + player.addChatComponentMessage( + new ChatComponentText( + StatCollector.translateToLocal( + EnumChatFormatting.RED + + "curse.jewlrycraft2.moneyEqualsPower.bless3"))); + } + } + } + + @Override + public boolean canCurseBeActivated() { + return ConfigHandler.CURSE_MONEY_EQUALS_POWER; + } + + @Override + public String getDescription() { + return StatCollector.translateToLocal("curse." + + Variables.MODID + + ".moneyEqualsPower.description"); + } + + @Override + public String getDisplayName() { + return StatCollector.translateToLocal("curse." + + Variables.MODID + ".moneyEqualsPower"); + } +} diff --git a/src/main/java/darkknight/jewelrycraft/curses/CursePentagram.java b/src/main/java/darkknight/jewelrycraft/curses/CursePentagram.java index c15e25a..a65517d 100644..100755 --- a/src/main/java/darkknight/jewelrycraft/curses/CursePentagram.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CursePentagram.java @@ -1,6 +1,7 @@ package darkknight.jewelrycraft.curses;
import org.lwjgl.opengl.GL11;
+
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import darkknight.jewelrycraft.achievements.AchievementsList;
@@ -36,44 +37,101 @@ public class CursePentagram extends Curse { public void action(World world, EntityPlayer player) {
super.action(world, player);
if (!world.isRemote) {
- NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID);
- for (Object entity : world.getEntitiesWithinAABBExcludingEntity(player, AxisAlignedBB.getBoundingBox(player.boundingBox.minX - 0.5F, player.boundingBox.minY, player.boundingBox.minZ - 0.5F, player.boundingBox.maxX + 0.5F, player.boundingBox.maxY, player.boundingBox.maxZ + 0.5F))) {
+ NBTTagCompound playerInfo = PlayerUtils
+ .getModPlayerPersistTag(player, Variables.MODID);
+
+ for (Object entity : world
+ .getEntitiesWithinAABBExcludingEntity(player,
+ AxisAlignedBB.getBoundingBox(
+ player.boundingBox.minX - 0.5F,
+ player.boundingBox.minY,
+ player.boundingBox.minZ - 0.5F,
+ player.boundingBox.maxX + 0.5F,
+ player.boundingBox.maxY,
+ player.boundingBox.maxZ + 0.5F))) {
if (entity instanceof EntityLivingBase) {
- NBTTagCompound target = ((EntityLivingBase) entity).getEntityData();
- if (target.getInteger("stolenHealth") < (JewelrycraftUtil.AchievemtUnlocked(player, AchievementsList.pentagram) ? 3 : 2) && rand.nextInt(40) == 0) {
- ((EntityLivingBase) entity).getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(((EntityLivingBase) entity).getMaxHealth() - 2f);
- target.setInteger("stolenHealth", target.hasKey("stolenHealth") ? target.getInteger("stolenHealth") + 1 : 1);
- playerInfo.setInteger("heartsStolen", playerInfo.hasKey("heartsStolen") ? playerInfo.getInteger("heartsStolen") + 1 : 1);
- if (player.shouldHeal()) player.heal(2F);
- else player.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(player.getMaxHealth() + 2f);
+ NBTTagCompound target =
+ ((EntityLivingBase) entity).getEntityData();
+
+ if (target
+ .getInteger("stolenHealth") < (JewelrycraftUtil
+ .AchievemtUnlocked(player,
+ AchievementsList.pentagram) ? 3
+ : 2)
+ && rand.nextInt(40) == 0) {
+ ((EntityLivingBase) entity)
+ .getEntityAttribute(
+ SharedMonsterAttributes.maxHealth)
+ .setBaseValue(((EntityLivingBase) entity)
+ .getMaxHealth() - 2f);
+
+ target.setInteger("stolenHealth",
+ target.hasKey("stolenHealth")
+ ? target.getInteger("stolenHealth")
+ + 1
+ : 1);
+
+ playerInfo
+ .setInteger("heartsStolen",
+ playerInfo.hasKey("heartsStolen")
+ ? playerInfo.getInteger(
+ "heartsStolen") + 1
+ : 1);
+
+ if (player.shouldHeal()) {
+ player.heal(2F);
+ } else {
+ player.getEntityAttribute(
+ SharedMonsterAttributes.maxHealth)
+ .setBaseValue(
+ player.getMaxHealth() + 2f);
+ }
}
}
}
- if (!playerInfo.getBoolean(AchievementsList.pentagram.statId)) {
- if (ticksActive > 24000 && playerInfo.getInteger("heartsStolen") <= 0) player.addStat(AchievementsList.pentagram, 1);
+
+ if (!playerInfo
+ .getBoolean(AchievementsList.pentagram.statId)) {
+ if (ticksActive > 24000
+ && playerInfo.getInteger("heartsStolen") <= 0)
+ player.addStat(AchievementsList.pentagram, 1);
else {
- player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + StatCollector.translateToLocal("challenge.failed") + " " + EnumChatFormatting.GOLD + StatCollector.translateToLocal(AchievementsList.pentagram.statId)));
- playerInfo.setBoolean(AchievementsList.pentagram.statId, true);
+ player.addChatComponentMessage(
+ new ChatComponentText(EnumChatFormatting.RED
+ + StatCollector.translateToLocal(
+ "challenge.failed")
+ + " " + EnumChatFormatting.GOLD
+ + StatCollector.translateToLocal(
+ AchievementsList.pentagram.statId)));
+ playerInfo.setBoolean(
+ AchievementsList.pentagram.statId, true);
}
}
}
}
+ @SuppressWarnings("cast")
@Override
- public void playerRender(EntityPlayer player, RenderPlayerEvent.Specials.Post event) {
- ResourceLocation PENTAGRAM_TEXTURE = new ResourceLocation(Variables.MODID, "textures/gui/" + getTexturePack() + ".png");
+ public void playerRender(EntityPlayer player,
+ RenderPlayerEvent.Specials.Post event) {
+ ResourceLocation PENTAGRAM_TEXTURE =
+ new ResourceLocation(Variables.MODID,
+ "textures/gui/" + getTexturePack() + ".png");
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_SRC_COLOR);
Tessellator tessellator = Tessellator.instance;
- TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager();
+ TextureManager texturemanager =
+ Minecraft.getMinecraft().getTextureManager();
texturemanager.bindTexture(PENTAGRAM_TEXTURE);
GL11.glRotatef(rot, 0F, 1F, 0F);
- GL11.glTranslatef(-0.8F, (player.isSneaking() ? 0.1625F : 0F) + 1.5F, -0.8F);
+ GL11.glTranslatef(-0.8F,
+ (player.isSneaking() ? 0.1625F : 0F) + 1.5F, -0.8F);
GL11.glRotatef(90F, 1F, 0F, 0F);
GL11.glScalef(0.05F, 0.05F, 0.05F);
rot += 3F;
- if (rot > 360F) rot = 0F;
+ if (rot > 360F)
+ rot = 0F;
float f = 0.00390625F;
float f1 = 0.00390625F;
int x = 0;
@@ -83,31 +141,49 @@ public class CursePentagram extends Curse { int width = 32;
int height = 32;
tessellator.startDrawingQuads();
- tessellator.addVertexWithUV((double) (x + 0), (double) (y + height), (double) 0, (double) ((float) (u + 0) * f), (double) ((float) (v + height) * f1));
- tessellator.addVertexWithUV((double) (x + width), (double) (y + height), (double) 0, (double) ((float) (u + width) * f), (double) ((float) (v + height) * f1));
- tessellator.addVertexWithUV((double) (x + width), (double) (y + 0), (double) 0, (double) ((float) (u + width) * f), (double) ((float) (v + 0) * f1));
- tessellator.addVertexWithUV((double) (x + 0), (double) (y + 0), (double) 0, (double) ((float) (u + 0) * f), (double) ((float) (v + 0) * f1));
+ tessellator.addVertexWithUV((double) (x + 0),
+ (double) (y + height), (double) 0,
+ (double) ((float) (u + 0) * f),
+ (double) ((float) (v + height) * f1));
+ tessellator.addVertexWithUV((double) (x + width),
+ (double) (y + height), (double) 0,
+ (double) ((float) (u + width) * f),
+ (double) ((float) (v + height) * f1));
+ tessellator.addVertexWithUV((double) (x + width), (double) (y + 0),
+ (double) 0, (double) ((float) (u + width) * f),
+ (double) ((float) (v + 0) * f1));
+ tessellator.addVertexWithUV((double) (x + 0), (double) (y + 0),
+ (double) 0, (double) ((float) (u + 0) * f),
+ (double) ((float) (v + 0) * f1));
tessellator.draw();
GL11.glDisable(GL11.GL_BLEND);
GL11.glPopMatrix();
}
+ @SuppressWarnings("cast")
+ @Override
@SideOnly(Side.CLIENT)
- public void playerHandRender(EntityPlayer player, RenderHandEvent event) {
+ public void playerHandRender(EntityPlayer player,
+ RenderHandEvent event) {
if (Minecraft.getMinecraft().gameSettings.thirdPersonView == 0) {
- ResourceLocation PENTAGRAM_TEXTURE = new ResourceLocation(Variables.MODID, "textures/gui/" + getTexturePack() + ".png");
+ ResourceLocation PENTAGRAM_TEXTURE =
+ new ResourceLocation(Variables.MODID,
+ "textures/gui/" + getTexturePack() + ".png");
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_SRC_COLOR);
Tessellator tessellator = Tessellator.instance;
- TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager();
+ TextureManager texturemanager =
+ Minecraft.getMinecraft().getTextureManager();
texturemanager.bindTexture(PENTAGRAM_TEXTURE);
GL11.glRotatef(rot, 0F, 1F, 0F);
- GL11.glTranslatef(-0.8F, (player.isSneaking() ? 0.1625F : 0F) - 1.6F, -0.8F);
+ GL11.glTranslatef(-0.8F,
+ (player.isSneaking() ? 0.1625F : 0F) - 1.6F, -0.8F);
GL11.glRotatef(90F, 1F, 0F, 0F);
GL11.glScalef(0.05F, 0.05F, 0.05F);
rot += 3F;
- if (rot > 360F) rot = 0F;
+ if (rot > 360F)
+ rot = 0F;
float f = 0.00390625F;
float f1 = 0.00390625F;
int x = 0;
@@ -117,23 +193,37 @@ public class CursePentagram extends Curse { int width = 32;
int height = 32;
tessellator.startDrawingQuads();
- tessellator.addVertexWithUV((double) (x + 0), (double) (y + height), (double) 0, (double) ((float) (u + 0) * f), (double) ((float) (v + height) * f1));
- tessellator.addVertexWithUV((double) (x + width), (double) (y + height), (double) 0, (double) ((float) (u + width) * f), (double) ((float) (v + height) * f1));
- tessellator.addVertexWithUV((double) (x + width), (double) (y + 0), (double) 0, (double) ((float) (u + width) * f), (double) ((float) (v + 0) * f1));
- tessellator.addVertexWithUV((double) (x + 0), (double) (y + 0), (double) 0, (double) ((float) (u + 0) * f), (double) ((float) (v + 0) * f1));
+ tessellator.addVertexWithUV((double) (x + 0),
+ (double) (y + height), (double) 0,
+ (double) ((float) (u + 0) * f),
+ (double) ((float) (v + height) * f1));
+ tessellator.addVertexWithUV((double) (x + width),
+ (double) (y + height), (double) 0,
+ (double) ((float) (u + width) * f),
+ (double) ((float) (v + height) * f1));
+ tessellator.addVertexWithUV((double) (x + width),
+ (double) (y + 0), (double) 0,
+ (double) ((float) (u + width) * f),
+ (double) ((float) (v + 0) * f1));
+ tessellator.addVertexWithUV((double) (x + 0), (double) (y + 0),
+ (double) 0, (double) ((float) (u + 0) * f),
+ (double) ((float) (v + 0) * f1));
tessellator.draw();
GL11.glDisable(GL11.GL_BLEND);
GL11.glPopMatrix();
}
}
+ @Override
public String getDescription() {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".pentagram.description");
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".pentagram.description");
}
@Override
public String getDisplayName() {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".pentagram");
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".pentagram");
}
@Override
diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseRabbitsPaw.java b/src/main/java/darkknight/jewelrycraft/curses/CurseRabbitsPaw.java index 831f5c5..c185df3 100644..100755 --- a/src/main/java/darkknight/jewelrycraft/curses/CurseRabbitsPaw.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseRabbitsPaw.java @@ -17,47 +17,51 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
-public class CurseRabbitsPaw extends Curse
-{
- public CurseRabbitsPaw(String name, int txtID, String pack)
- {
- super(name, txtID, pack);
- }
-
- @Override
- public void entityDropItems(EntityPlayer player, Entity target, ArrayList<EntityItem> drops)
- {
- for(EntityItem item: drops){
- ItemStack drop = item.getEntityItem().copy();
- drop.stackSize = this.rand.nextInt(4);
- if (drop.stackSize > 0) target.entityDropItem(drop, 0.5F);
- }
- }
-
- public void entityDeathAction(World world, EntityLivingBase target, EntityPlayer player)
- {
- if (rand.nextInt(3) == 0) world.spawnEntityInWorld(new EntityXPOrb(world, target.posX, target.posY, target.posZ, 1 + rand.nextInt(40)));
- }
-
- public int luck()
- {
- return 10;
- }
-
- public String getDescription()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".rabbitspaw.description");
- }
-
+public class CurseRabbitsPaw extends Curse {
+ public CurseRabbitsPaw(String name, int txtID, String pack) {
+ super(name, txtID, pack);
+ }
+
+ @Override
+ public void entityDropItems(EntityPlayer player, Entity target,
+ ArrayList<EntityItem> drops) {
+ for (EntityItem item : drops) {
+ ItemStack drop = item.getEntityItem().copy();
+
+ drop.stackSize = this.rand.nextInt(4);
+
+ if (drop.stackSize > 0)
+ target.entityDropItem(drop, 0.5F);
+ }
+ }
+
+ @Override
+ public void entityDeathAction(World world, EntityLivingBase target,
+ EntityPlayer player) {
+ if (rand.nextInt(3) == 0)
+ world.spawnEntityInWorld(new EntityXPOrb(world, target.posX,
+ target.posY, target.posZ, 1 + rand.nextInt(40)));
+ }
+
@Override
- public String getDisplayName()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".rabbitspaw");
+ public int luck() {
+ return 10;
}
- @Override
- public boolean canCurseBeActivated()
- {
- return ConfigHandler.CURSE_RABBIT_PAW;
- }
+ @Override
+ public String getDescription() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".rabbitspaw.description");
+ }
+
+ @Override
+ public String getDisplayName() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".rabbitspaw");
+ }
+
+ @Override
+ public boolean canCurseBeActivated() {
+ return ConfigHandler.CURSE_RABBIT_PAW;
+ }
}
diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseRottenHeart.java b/src/main/java/darkknight/jewelrycraft/curses/CurseRottenHeart.java index 95f1a2c..050605d 100644..100755 --- a/src/main/java/darkknight/jewelrycraft/curses/CurseRottenHeart.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseRottenHeart.java @@ -9,39 +9,41 @@ import net.minecraft.potion.PotionEffect; import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
-public class CurseRottenHeart extends Curse
-{
- public CurseRottenHeart(String name, int txtID, String pack)
- {
- super(name, txtID, pack);
- }
-
- @Override
- public void action(World world, EntityPlayer player)
- {
- if (!player.isPotionActive(Potion.poison) || player.getActivePotionEffect(Potion.poison).getDuration() < 30) player.addPotionEffect(new PotionEffect(Potion.poison.id, 80));
- }
-
- public String getDescription()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".rottenheart.description");
- }
-
+public class CurseRottenHeart extends Curse {
+ public CurseRottenHeart(String name, int txtID, String pack) {
+ super(name, txtID, pack);
+ }
+
+ @Override
+ public void action(World world, EntityPlayer player) {
+ if (!player.isPotionActive(Potion.poison) || player
+ .getActivePotionEffect(Potion.poison).getDuration() < 30)
+ player.addPotionEffect(new PotionEffect(Potion.poison.id, 80));
+ }
+
+ @Override
+ public String getDescription() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".rottenheart.description");
+ }
+
+ @Override
+ public String getDisplayName() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".rottenheart");
+ }
+
+ @Override
+ public boolean canCurseBeActivated(World world) {
+ if (world.getWorldInfo().isHardcoreModeEnabled()) {
+ return false;
+ }
+
+ return ConfigHandler.CURSE_ROTTEN_HEART;
+ }
+
@Override
- public String getDisplayName()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".rottenheart");
+ public boolean canCurseBeActivated() {
+ return ConfigHandler.CURSE_ROTTEN_HEART;
}
-
- @Override
- public boolean canCurseBeActivated(World world)
- {
- return world.getWorldInfo().isHardcoreModeEnabled() ? false : ConfigHandler.CURSE_ROTTEN_HEART;
- }
-
- @Override
- public boolean canCurseBeActivated()
- {
- return ConfigHandler.CURSE_ROTTEN_HEART;
- }
}
diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseSacredOath.java b/src/main/java/darkknight/jewelrycraft/curses/CurseSacredOath.java new file mode 100644 index 0000000..8faf314 --- /dev/null +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseSacredOath.java @@ -0,0 +1,26 @@ +package darkknight.jewelrycraft.curses; + +import darkknight.jewelrycraft.api.Curse; +import darkknight.jewelrycraft.util.Variables; +import net.minecraft.util.StatCollector; + +public class CurseSacredOath extends Curse { + public CurseSacredOath(String name, int txtID, + String texturepack) { + super(name, txtID, texturepack); + } + + @Override + public String getDescription() { + return StatCollector.translateToLocal( + "curse." + Variables.MODID + ".sacredoath.description"); + } + + @Override + public String getDisplayName() { + return StatCollector.translateToLocal( + "curse." + Variables.MODID + ".sacredoath"); + } + + // TODO implement sacred oath to do something +} diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseScionOfHell.java b/src/main/java/darkknight/jewelrycraft/curses/CurseScionOfHell.java new file mode 100755 index 0000000..4162001 --- /dev/null +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseScionOfHell.java @@ -0,0 +1,46 @@ +package darkknight.jewelrycraft.curses; + +import darkknight.jewelrycraft.api.Curse; +import darkknight.jewelrycraft.config.ConfigHandler; +import darkknight.jewelrycraft.util.Variables; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.event.entity.living.LivingHealEvent; + +public class CurseScionOfHell extends Curse { + public CurseScionOfHell(String name, int txtID, String texturepack) { + super(name, txtID, texturepack); + } + + @Override + public void entityDeathAction(World world, EntityLivingBase target, + EntityPlayer player) { + player.setHealth(Math.max(player.getMaxHealth(), + player.getHealth() + target.getMaxHealth() / 5.0f)); + } + + @Override + public void playerHealAction(World world, EntityPlayer player, + LivingHealEvent event) { + event.amount = 0; + } + + @Override + public boolean canCurseBeActivated() { + return ConfigHandler.CURSE_SCION_OF_HELL; + } + + @Override + public String getDescription() { + return StatCollector.translateToLocal( + "curse." + Variables.MODID + ".scionofhell.description"); + } + + @Override + public String getDisplayName() { + return StatCollector.translateToLocal( + "curse." + Variables.MODID + ".scionofhell"); + } +} diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseVampireHunger.java b/src/main/java/darkknight/jewelrycraft/curses/CurseVampireHunger.java index b00552e..6707bc0 100644..100755 --- a/src/main/java/darkknight/jewelrycraft/curses/CurseVampireHunger.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseVampireHunger.java @@ -16,38 +16,43 @@ import net.minecraft.world.World; * @author Sorin
*
*/
-public class CurseVampireHunger extends Curse
-{
- protected CurseVampireHunger(String name, int txtID, String texturepack)
- {
- super(name, txtID, texturepack);
- }
-
- public void attackedByPlayerAction(World world, EntityPlayer player, Entity target)
- {
- if(player.shouldHeal() && rand.nextBoolean()) player.heal(1F);
- }
-
- public void action(World world, EntityPlayer player)
- {
- if(!player.capabilities.isCreativeMode && world.isDaytime() && !world.isRaining() && world.canBlockSeeTheSky(MathHelper.floor_double(player.posX), MathHelper.floor_double(player.posY + 1F), MathHelper.floor_double(player.posZ)))
- player.setFire(8);
- }
-
- public String getDescription()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".vampirehunger.description");
- }
-
+public class CurseVampireHunger extends Curse {
+ protected CurseVampireHunger(String name, int txtID,
+ String texturepack) {
+ super(name, txtID, texturepack);
+ }
+
+ public void attackedByPlayerAction(World world, EntityPlayer player,
+ Entity target) {
+ if (player.shouldHeal() && rand.nextBoolean())
+ player.heal(1F);
+ }
+
+ @Override
+ public void action(World world, EntityPlayer player) {
+ if (!player.capabilities.isCreativeMode && world.isDaytime()
+ && !world.isRaining()
+ && world.canBlockSeeTheSky(
+ MathHelper.floor_double(player.posX),
+ MathHelper.floor_double(player.posY + 1F),
+ MathHelper.floor_double(player.posZ)))
+ player.setFire(8);
+ }
+
+ @Override
+ public String getDescription() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".vampirehunger.description");
+ }
+
@Override
- public String getDisplayName()
- {
- return StatCollector.translateToLocal("curse." + Variables.MODID + ".vampirehunger");
+ public String getDisplayName() {
+ return StatCollector.translateToLocal(
+ "curse." + Variables.MODID + ".vampirehunger");
}
- @Override
- public boolean canCurseBeActivated()
- {
- return ConfigHandler.CURSE_VAMPIRE_HUNGER;
- }
+ @Override
+ public boolean canCurseBeActivated() {
+ return ConfigHandler.CURSE_VAMPIRE_HUNGER;
+ }
}
|
