summaryrefslogtreecommitdiff
path: root/src/main/java/fyresmodjam/blessings/standard
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/fyresmodjam/blessings/standard')
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/AlchemistBlessing.java16
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/BerserkerBlessing.java50
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/DiverBlessing.java23
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/GuardianBlessing.java23
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/HunterBlessing.java37
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/InfernoBlessing.java55
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/LonerBlessing.java38
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/LooterBlessing.java32
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/LumberjackBlessing.java59
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/MechanicBlessing.java17
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/MinerBlessing.java61
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/NinjaBlessing.java55
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/PaladinBlessing.java27
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/ParatrooperBlessing.java29
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/PorcupineBlessing.java45
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/ScholarBlessing.java29
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/SwampBlessing.java34
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/ThickSkinnedBlessing.java24
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/ThiefBlessing.java29
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/VampireBlessing.java55
-rw-r--r--src/main/java/fyresmodjam/blessings/standard/WarriorBlessing.java39
21 files changed, 777 insertions, 0 deletions
diff --git a/src/main/java/fyresmodjam/blessings/standard/AlchemistBlessing.java b/src/main/java/fyresmodjam/blessings/standard/AlchemistBlessing.java
new file mode 100644
index 0000000..0e36758
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/AlchemistBlessing.java
@@ -0,0 +1,16 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+
+public class AlchemistBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Alchemist";
+ }
+
+ @Override
+ public String description() {
+ return "All mystery potions act like wildcard potions";
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/BerserkerBlessing.java b/src/main/java/fyresmodjam/blessings/standard/BerserkerBlessing.java
new file mode 100644
index 0000000..4e7f784
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/BerserkerBlessing.java
@@ -0,0 +1,50 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import fyresmodjam.blessings.BlessingUtils;
+import fyresmodjam.misc.EntityStatHelper;
+import net.minecraft.entity.Entity;
+import net.minecraftforge.event.entity.living.LivingDeathEvent;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class BerserkerBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Berserker";
+ }
+
+ @Override
+ public String description() {
+ return "@@§ePASSIVE - §oKills are added as berserk charges. (10 max)@@§eACTIVE - §oTurn on/off berserk mode. While berserk mode is active, you do increased damage, and expend a counter every 2 seconds";
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ if (BlessingUtils.isBlessingActive(
+ event.getSource().getTrueSource())) {
+ return damageMultiplier + 0.3f;
+ }
+
+ return damageMultiplier;
+ }
+
+ @Override
+ public void onMobKill(LivingDeathEvent event) {
+ Entity trueSource = event.getSource().getTrueSource();
+
+ if (!EntityStatHelper.hasStat(trueSource,
+ "BlessingCounter")) {
+ EntityStatHelper.giveStat(trueSource,
+ "BlessingCounter", 0);
+ }
+
+ EntityStatHelper.giveStat(trueSource, "BlessingCounter",
+ Math.min(10, Integer.parseInt(
+ EntityStatHelper.getStat(
+ trueSource,
+ "BlessingCounter"))
+ + 1));
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/DiverBlessing.java b/src/main/java/fyresmodjam/blessings/standard/DiverBlessing.java
new file mode 100644
index 0000000..c0b8c72
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/DiverBlessing.java
@@ -0,0 +1,23 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraftforge.fml.common.gameevent.TickEvent.ServerTickEvent;
+
+public class DiverBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Diver";
+ }
+
+ @Override
+ public String description() {
+ return "Breathe underwater";
+ }
+
+ @Override
+ public void commonTick(ServerTickEvent stev, EntityPlayer play) {
+ play.setAir(0);
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/GuardianBlessing.java b/src/main/java/fyresmodjam/blessings/standard/GuardianBlessing.java
new file mode 100644
index 0000000..47015dd
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/GuardianBlessing.java
@@ -0,0 +1,23 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class GuardianBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Guardian";
+ }
+
+ @Override
+ public String description() {
+ return "Reduce proportional damage taken";
+ }
+
+ @Override
+ public float onIncomingDamage(LivingHurtEvent lhev,
+ float damageMultiplier) {
+ return damageMultiplier - 0.2f;
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/HunterBlessing.java b/src/main/java/fyresmodjam/blessings/standard/HunterBlessing.java
new file mode 100644
index 0000000..bd2892f
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/HunterBlessing.java
@@ -0,0 +1,37 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.IRangedAttackMob;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class HunterBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Hunter";
+ }
+
+ @Override
+ public String description() {
+ return "Increased projectile damage";
+ }
+
+ @Override
+ public void correctBlessing(Entity ent) {
+ if (!(ent instanceof IRangedAttackMob)) {
+ ent.getEntityData().setString("Blessing",
+ "BlessingWarrior");
+ }
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ if (event.getSource().isProjectile()) {
+ return damageMultiplier + 0.2f;
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/InfernoBlessing.java b/src/main/java/fyresmodjam/blessings/standard/InfernoBlessing.java
new file mode 100644
index 0000000..40454aa
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/InfernoBlessing.java
@@ -0,0 +1,55 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import fyresmodjam.misc.DamageSources;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+import net.minecraftforge.fml.common.gameevent.TickEvent.ServerTickEvent;
+
+public class InfernoBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Inferno";
+ }
+
+ @Override
+ public String description() {
+ return "Benefit: Take no fire damage, and do increased damage while on fire\nDrawback: Take damge while wet";
+ }
+
+ @Override
+ public void commonTick(ServerTickEvent stev, EntityPlayer play) {
+ if (play.isWet() && play.ticksExisted % 10 == 0) {
+ play.attackEntityFrom(DamageSources.inferno, 1.0F);
+ }
+ }
+
+ @Override
+ public float onIncomingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ if (event.getSource().isFireDamage()
+ || event.getSource().getDamageType()
+ .equals("inFire")
+ || event.getSource().getDamageType()
+ .equals("onFire")
+ || event.getSource().getDamageType()
+ .equals("lava")) {
+ event.setCanceled(true);
+
+ return 0;
+ }
+
+ return damageMultiplier;
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ if (event.getSource().getTrueSource().isBurning()) {
+ return damageMultiplier + 0.35f;
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/LonerBlessing.java b/src/main/java/fyresmodjam/blessings/standard/LonerBlessing.java
new file mode 100644
index 0000000..ac52ec5
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/LonerBlessing.java
@@ -0,0 +1,38 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class LonerBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Loner";
+ }
+
+ @Override
+ public String description() {
+ return "Do higher damage the lower your health is";
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ Entity trueSource = event.getSource().getTrueSource();
+
+ if (trueSource instanceof EntityLivingBase) {
+ EntityLivingBase livingSource = (EntityLivingBase) trueSource;
+
+ float healthRatio = livingSource.getHealth()
+ / livingSource.getMaxHealth();
+
+ float scaleFactor = 1.0F - healthRatio;
+
+ return damageMultiplier + 0.35F * scaleFactor;
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/LooterBlessing.java b/src/main/java/fyresmodjam/blessings/standard/LooterBlessing.java
new file mode 100644
index 0000000..bbf9ec5
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/LooterBlessing.java
@@ -0,0 +1,32 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.ModjamMod;
+import fyresmodjam.blessings.Blessing;
+import net.minecraftforge.event.entity.living.LivingDeathEvent;
+
+public class LooterBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Looter";
+ }
+
+ @Override
+ public String description() {
+ return "Enemies have a chance to drop dungeon loot";
+ }
+
+ @Override
+ public void onMobKill(LivingDeathEvent event) {
+ if (ModjamMod.r.nextInt(50) == 0) {
+ // TODO figure out how loot gen works
+
+ //if (!event.entity.worldObj.isRemote) {
+ // event.entity.dropItem(ChestGenHooks
+ // .getOneItem(ChestGenHooks.DUNGEON_CHEST,
+ // ModjamMod.r)
+ // .getItem(), 1);
+ //}
+ }
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/LumberjackBlessing.java b/src/main/java/fyresmodjam/blessings/standard/LumberjackBlessing.java
new file mode 100644
index 0000000..6ef337e
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/LumberjackBlessing.java
@@ -0,0 +1,59 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraft.block.material.Material;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.ItemTool;
+import net.minecraft.util.EnumHand;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed;
+
+public class LumberjackBlessing extends Blessing {
+ @Override
+ public String name() {
+ return "Lumberjack";
+ }
+
+ @Override
+ public String description() {
+ return "Increased breaking speed on wooden blocks, and increased damage with axes";
+ }
+
+ @Override
+ public void checkBreakSpeed(BreakSpeed pebsev) {
+ if (pebsev.getState().getMaterial() == Material.WOOD) {
+ pebsev.setNewSpeed(
+ pebsev.getOriginalSpeed() * 1.25F);
+ }
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ ItemStack held = null;
+
+ if (event.getSource()
+ .getTrueSource() instanceof EntityLivingBase) {
+ held = ((EntityLivingBase) event.getSource()
+ .getTrueSource()).getHeldItem(
+ EnumHand.MAIN_HAND);
+ }
+
+ if (held != null && itemIsAxe(held)) {
+ return damageMultiplier + 0.15F;
+ }
+
+ return damageMultiplier;
+ }
+
+ private boolean itemIsAxe(ItemStack held) {
+ if (held.getItem() instanceof ItemTool) {
+ return ((ItemTool) held.getItem())
+ .getToolClasses(held)
+ .contains("axe");
+ }
+
+ return false;
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/MechanicBlessing.java b/src/main/java/fyresmodjam/blessings/standard/MechanicBlessing.java
new file mode 100644
index 0000000..b2a80e6
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/MechanicBlessing.java
@@ -0,0 +1,17 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+
+public class MechanicBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Mechanic";
+ }
+
+ @Override
+ public String description() {
+ return "@@§ePASSIVE - §oYou disarm traps more often and have an increased chance to salvage disarmed traps.\n@@§eACTIVE - §oOnce per day, you may disarm and salvage a trap for free";
+ }
+
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/MinerBlessing.java b/src/main/java/fyresmodjam/blessings/standard/MinerBlessing.java
new file mode 100644
index 0000000..f261faa
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/MinerBlessing.java
@@ -0,0 +1,61 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraft.block.material.Material;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.ItemTool;
+import net.minecraft.util.EnumHand;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed;
+
+public class MinerBlessing extends Blessing {
+ @Override
+ public String name() {
+ return "Miner";
+ }
+
+ @Override
+ public String description() {
+ return "Increased breaking speed on stone and iron blocks, and increased damage with pickaxes";
+ }
+
+ @Override
+ public void checkBreakSpeed(BreakSpeed pebsev) {
+ if (pebsev.getState().getMaterial() == Material.ROCK
+ || pebsev.getState()
+ .getMaterial() == Material.IRON) {
+ pebsev.setNewSpeed(
+ pebsev.getOriginalSpeed() * 1.25F);
+ }
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ ItemStack held = null;
+
+ if (event.getSource()
+ .getTrueSource() instanceof EntityLivingBase) {
+ held = ((EntityLivingBase) event.getSource()
+ .getTrueSource()).getHeldItem(
+ EnumHand.MAIN_HAND);
+ }
+
+ if (held != null && itemIsPickaxe(held)) {
+ return damageMultiplier + 0.2F;
+ }
+
+ return damageMultiplier;
+ }
+
+ private boolean itemIsPickaxe(ItemStack held) {
+ if (held.getItem() instanceof ItemTool) {
+ return ((ItemTool) held.getItem())
+ .getToolClasses(held)
+ .contains("pickaxe");
+ }
+
+ return false;
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/NinjaBlessing.java b/src/main/java/fyresmodjam/blessings/standard/NinjaBlessing.java
new file mode 100644
index 0000000..3883f14
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/NinjaBlessing.java
@@ -0,0 +1,55 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+import net.minecraftforge.fml.common.gameevent.TickEvent.ServerTickEvent;
+
+public class NinjaBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Ninja";
+ }
+
+ @Override
+ public String description() {
+ return "- Go invisible while sneaking\n- Attacks on enemies with full health deal 2x damage";
+ }
+
+ @Override
+ public void commonTick(ServerTickEvent stev, EntityPlayer player) {
+ if (player.isSneaking()) {
+ // TODO figure out potions
+ // PotionEffect e = player.getActivePotionEffect(
+ // Potion.invisibility);
+
+ // if (e == null || player.getActivePotionEffect(
+ // Potion.invisibility)
+ // .getDuration() < 10) {
+ // player.addPotionEffect(new PotionEffect(
+ // Potion.invisibility.id, 10,
+ // 1, false));
+ // }
+ }
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ boolean atMaxHealth = event.getEntityLiving()
+ .getHealth() == event.getEntityLiving()
+ .getMaxHealth();
+
+ if (event.getEntityLiving() != null
+ && event.getSource().getTrueSource()
+ .isSneaking()
+ && atMaxHealth) {
+ return damageMultiplier + 1.0F;
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/PaladinBlessing.java b/src/main/java/fyresmodjam/blessings/standard/PaladinBlessing.java
new file mode 100644
index 0000000..9979931
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/PaladinBlessing.java
@@ -0,0 +1,27 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class PaladinBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Paladin";
+ }
+
+ @Override
+ public String description() {
+ return "Deal bonus damage to undead";
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ if (event.getEntityLiving().isEntityUndead()) {
+ return damageMultiplier + .2f;
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/ParatrooperBlessing.java b/src/main/java/fyresmodjam/blessings/standard/ParatrooperBlessing.java
new file mode 100644
index 0000000..d777566
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/ParatrooperBlessing.java
@@ -0,0 +1,29 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class ParatrooperBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Paratrooper";
+ }
+
+ @Override
+ public String description() {
+ return "Take no fall damage";
+ }
+
+ @Override
+ public float onIncomingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ if(event.getSource().damageType.equals("fall")) {
+ event.setCanceled(true);
+
+ return 0;
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/PorcupineBlessing.java b/src/main/java/fyresmodjam/blessings/standard/PorcupineBlessing.java
new file mode 100644
index 0000000..a46c3d0
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/PorcupineBlessing.java
@@ -0,0 +1,45 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import fyresmodjam.misc.DamageSources;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.util.DamageSource;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class PorcupineBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Porcupine";
+ }
+
+ @Override
+ public String description() {
+ return "Deal retaliation damage to melee attackers";
+ }
+
+ @Override
+ public float onIncomingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ Entity trueSource = event.getSource().getTrueSource();
+
+ boolean isMeleeDamage = event.getSource().damageType
+ .equals("mob")
+ || event.getSource().getDamageType()
+ .equals("player");
+
+ if (trueSource != null
+ && trueSource instanceof EntityLivingBase
+ && !event.getSource().isProjectile()
+ && isMeleeDamage) {
+ DamageSource damage = DamageSources.retaliation;
+
+ ((EntityLivingBase) trueSource)
+ .attackEntityFrom(damage,
+ event.getAmount() * 0.07F);
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/ScholarBlessing.java b/src/main/java/fyresmodjam/blessings/standard/ScholarBlessing.java
new file mode 100644
index 0000000..e66726c
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/ScholarBlessing.java
@@ -0,0 +1,29 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class ScholarBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Scholar";
+ }
+
+ @Override
+ public String description() {
+ return "Do more damage:\n- With weapons you are familiar with\n-Against enemies you are familiar with";
+ }
+
+ @Override
+ public float adjustMobKnowledgeBonus(LivingHurtEvent lhev,
+ float pickedDamageBonus) {
+ return pickedDamageBonus + (pickedDamageBonus * 0.5f);
+ }
+
+ @Override
+ public float adjustWeaponKnowledgeBonus(LivingHurtEvent lhev,
+ float pickedDamageBonus) {
+ return pickedDamageBonus + (pickedDamageBonus * 0.5f);
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/SwampBlessing.java b/src/main/java/fyresmodjam/blessings/standard/SwampBlessing.java
new file mode 100644
index 0000000..e9ecad3
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/SwampBlessing.java
@@ -0,0 +1,34 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class SwampBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Swamp";
+ }
+
+ @Override
+ public String description() {
+ return "Attacks slow enemies";
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ if (event.getEntityLiving() != null) {
+ // TODO figure out potions
+
+// event.getEntityLiving()
+// .addPotionEffect(new PotionEffect(
+// Potion.moveSlowdown.id,
+// 100, 1, false));
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/ThickSkinnedBlessing.java b/src/main/java/fyresmodjam/blessings/standard/ThickSkinnedBlessing.java
new file mode 100644
index 0000000..ca16900
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/ThickSkinnedBlessing.java
@@ -0,0 +1,24 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class ThickSkinnedBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Thick-Skinned";
+ }
+
+ @Override
+ public String description() {
+ return "Reduce damage taken by a flat amount";
+ }
+
+ @Override
+ public float onIncomingDamage(LivingHurtEvent event, float damageMultiplier) {
+ event.setAmount(Math.max(0.5f, event.getAmount() - 1f));
+
+ return damageMultiplier;
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/ThiefBlessing.java b/src/main/java/fyresmodjam/blessings/standard/ThiefBlessing.java
new file mode 100644
index 0000000..b807b4b
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/ThiefBlessing.java
@@ -0,0 +1,29 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.ModjamMod;
+import fyresmodjam.blessings.Blessing;
+import net.minecraft.init.Items;
+import net.minecraftforge.event.entity.living.LivingDeathEvent;
+
+public class ThiefBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Thief";
+ }
+
+ @Override
+ public String description() {
+ return "Enemies have a chance to drop gold nuggets";
+ }
+
+ @Override
+ public void onMobKill(LivingDeathEvent event) {
+ if(ModjamMod.r.nextInt(20) == 0) {
+ if (!event.getEntity().world.isRemote) {
+ event.getEntity().dropItem(Items.GOLD_NUGGET,
+ 1);
+ }
+ }
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/VampireBlessing.java b/src/main/java/fyresmodjam/blessings/standard/VampireBlessing.java
new file mode 100644
index 0000000..6594eab
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/VampireBlessing.java
@@ -0,0 +1,55 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class VampireBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Vampire";
+ }
+
+ @Override
+ public String description() {
+ return "\tBenefit: Heal a small percentage of damage dealt to enemies\n\tDrawback: Weakened during the day";
+ }
+
+ @Override
+ public float onIncomingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ Entity ent = event.getEntity();
+ if (ent.getBrightness() > 0.5F && ent.world
+ .canBlockSeeSky(ent.getPosition())) {
+ return damageMultiplier + 0.2F;
+ }
+
+ return damageMultiplier;
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ Entity trueSource = event.getSource().getTrueSource();
+ if (trueSource instanceof EntityLivingBase) {
+
+ ((EntityLivingBase) trueSource)
+ .heal((event.getAmount()
+ * damageMultiplier)
+ * 0.07F);
+
+ boolean seeTheSky = trueSource.world
+ .canBlockSeeSky(trueSource
+ .getPosition());
+
+ if (trueSource.getBrightness() > 0.5F
+ && seeTheSky) {
+ return damageMultiplier - 0.2F;
+ }
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/src/main/java/fyresmodjam/blessings/standard/WarriorBlessing.java b/src/main/java/fyresmodjam/blessings/standard/WarriorBlessing.java
new file mode 100644
index 0000000..2c1e2e7
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/standard/WarriorBlessing.java
@@ -0,0 +1,39 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.IRangedAttackMob;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class WarriorBlessing extends Blessing {
+
+ @Override
+ public String name() {
+ return "Warrior";
+ }
+
+ @Override
+ public String description() {
+ return "Increased melee damage";
+ }
+
+ @Override
+ public void correctBlessing(Entity ent) {
+ if (ent instanceof IRangedAttackMob) {
+ ent.getEntityData().setString("Blessing",
+ "BlessingHunter");
+ }
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ if ((event.getSource().getDamageType().equals("player")
+ || event.getSource().getDamageType()
+ .equals("mob"))) {
+ return damageMultiplier + 0.2f;
+ }
+
+ return damageMultiplier;
+ }
+}