summaryrefslogtreecommitdiff
path: root/YWD/src/main/java/fyresmodjam/blessings/standard
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2018-05-24 15:53:20 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2018-05-24 15:53:20 -0400
commit3eb8c7a8fca3f22475d53e30f0b90a6737f313fa (patch)
tree1c0afbcb6712408fb791849969f9766dcdeb5868 /YWD/src/main/java/fyresmodjam/blessings/standard
Initial commit
Diffstat (limited to 'YWD/src/main/java/fyresmodjam/blessings/standard')
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/AlchemistBlessing.java19
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/BerserkerBlessing.java46
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/DiverBlessing.java21
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/GuardianBlessing.java26
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/HunterBlessing.java35
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/InfernoBlessing.java61
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/LonerBlessing.java32
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/LooterBlessing.java29
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/LumberjackBlessing.java54
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/MechanicBlessing.java20
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/MinerBlessing.java55
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/NinjaBlessing.java49
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/PaladinBlessing.java25
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/ParatrooperBlessing.java27
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/PorcupineBlessing.java43
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/ScholarBlessing.java27
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/StandardBlessing.java19
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/SwampBlessing.java30
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/ThickSkinnedBlessing.java22
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/ThiefBlessing.java26
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/VampireBlessing.java27
-rw-r--r--YWD/src/main/java/fyresmodjam/blessings/standard/WarriorBlessing.java36
22 files changed, 729 insertions, 0 deletions
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/AlchemistBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/AlchemistBlessing.java
new file mode 100644
index 0000000..aed4e0e
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/AlchemistBlessing.java
@@ -0,0 +1,19 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+
+public class AlchemistBlessing extends StandardBlessing {
+ public AlchemistBlessing() {
+ super("Alchemist", false);
+ }
+
+ @Override
+ public String name() {
+ return "Alchemist";
+ }
+
+ @Override
+ public String description() {
+ return "All mystery potions act like wildcard potions";
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/BerserkerBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/BerserkerBlessing.java
new file mode 100644
index 0000000..fc11ebf
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/BerserkerBlessing.java
@@ -0,0 +1,46 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import fyresmodjam.blessings.BlessingUtils;
+import fyresmodjam.misc.EntityStatHelper;
+import net.minecraftforge.event.entity.living.LivingDeathEvent;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class BerserkerBlessing extends StandardBlessing {
+ public BerserkerBlessing() {
+ super("Berserker", false);
+ }
+
+ @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.source.getEntity())) {
+ return damageMultiplier + 0.3f;
+ }
+
+ return damageMultiplier;
+ }
+
+ @Override
+ public void onMobKill(LivingDeathEvent event) {
+ if (!EntityStatHelper.hasStat(event.source.getEntity(),
+ "BlessingCounter")) {
+ EntityStatHelper.giveStat(event.source.getEntity(),
+ "BlessingCounter", 0);
+ }
+
+ EntityStatHelper.giveStat(event.source.getEntity(),
+ "BlessingCounter",
+ Math.min(10, Integer.parseInt(
+ EntityStatHelper.getStat(
+ event.source.getEntity(),
+ "BlessingCounter"))
+ + 1));
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/DiverBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/DiverBlessing.java
new file mode 100644
index 0000000..e8d39ec
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/DiverBlessing.java
@@ -0,0 +1,21 @@
+package fyresmodjam.blessings.standard;
+
+import cpw.mods.fml.common.gameevent.TickEvent.ServerTickEvent;
+import fyresmodjam.blessings.Blessing;
+import net.minecraft.entity.player.EntityPlayer;
+
+public class DiverBlessing extends StandardBlessing {
+ public DiverBlessing() {
+ super("Diver", false);
+ }
+
+ @Override
+ public String description() {
+ return "Breathe underwater";
+ }
+
+ @Override
+ public void commonTick(ServerTickEvent stev, EntityPlayer play) {
+ play.setAir(0);
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/GuardianBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/GuardianBlessing.java
new file mode 100644
index 0000000..a103221
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/GuardianBlessing.java
@@ -0,0 +1,26 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class GuardianBlessing extends StandardBlessing {
+ public GuardianBlessing() {
+ super("Guardian");
+ }
+
+ @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/YWD/src/main/java/fyresmodjam/blessings/standard/HunterBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/HunterBlessing.java
new file mode 100644
index 0000000..88100e1
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/HunterBlessing.java
@@ -0,0 +1,35 @@
+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 StandardBlessing {
+ public HunterBlessing() {
+ super("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.source.isProjectile()) {
+ return damageMultiplier + 0.2f;
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/InfernoBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/InfernoBlessing.java
new file mode 100644
index 0000000..c3d3b3f
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/InfernoBlessing.java
@@ -0,0 +1,61 @@
+package fyresmodjam.blessings.standard;
+
+import cpw.mods.fml.common.gameevent.TickEvent.ServerTickEvent;
+import fyresmodjam.blessings.Blessing;
+import fyresmodjam.misc.DamageSources;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+// TODO
+// replace this with a blessing that nullifies fire, and a mark that
+// does that plus the damage boost
+public class InfernoBlessing extends StandardBlessing {
+ public InfernoBlessing() {
+ super("Inferno");
+ }
+
+ @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.source.isFireDamage()
+ || event.source.getDamageType()
+ .equals("inFire")
+ || event.source.getDamageType()
+ .equals("onFire")
+ || event.source.getDamageType()
+ .equals("lava")) {
+ event.setCanceled(true);
+
+ return 0;
+ }
+
+ return damageMultiplier;
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ if (event.source.getEntity().isBurning()) {
+ return damageMultiplier + 0.35f;
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/LonerBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/LonerBlessing.java
new file mode 100644
index 0000000..fa44795
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/LonerBlessing.java
@@ -0,0 +1,32 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class LonerBlessing extends StandardBlessing {
+ public LonerBlessing() {
+ super("Loner");
+ }
+
+ @Override
+ public String description() {
+ return "Do higher damage the lower your health is";
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ if (event.source.getEntity() instanceof EntityLivingBase) {
+ float scaleFactor = 1.0F
+ - (((EntityLivingBase) event.source
+ .getEntity()).getHealth()
+ / ((EntityLivingBase) event.source
+ .getEntity()).getMaxHealth());
+
+ return damageMultiplier + 0.35F * scaleFactor;
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/LooterBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/LooterBlessing.java
new file mode 100644
index 0000000..80fed2b
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/LooterBlessing.java
@@ -0,0 +1,29 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.ModjamMod;
+import fyresmodjam.blessings.Blessing;
+import net.minecraftforge.common.ChestGenHooks;
+import net.minecraftforge.event.entity.living.LivingDeathEvent;
+
+public class LooterBlessing extends StandardBlessing {
+ public LooterBlessing() {
+ super("Looter", false);
+ }
+
+ @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) {
+ if (!event.entity.worldObj.isRemote) {
+ event.entity.dropItem(ChestGenHooks
+ .getOneItem(ChestGenHooks.DUNGEON_CHEST,
+ ModjamMod.r)
+ .getItem(), 1);
+ }
+ }
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/LumberjackBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/LumberjackBlessing.java
new file mode 100644
index 0000000..e4136dc
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/LumberjackBlessing.java
@@ -0,0 +1,54 @@
+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.minecraftforge.event.entity.living.LivingHurtEvent;
+import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed;
+
+public class LumberjackBlessing extends StandardBlessing {
+ public LumberjackBlessing() {
+ super("Lumberjack", false);
+ }
+
+ @Override
+ public String description() {
+ return "Increased breaking speed on wooden blocks, and increased damage with axes";
+ }
+
+ @Override
+ public void checkBreakSpeed(BreakSpeed pebsev) {
+ if (pebsev.block.getMaterial() == Material.wood) {
+ pebsev.newSpeed = pebsev.originalSpeed * 1.25F;
+ }
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ ItemStack held = null;
+
+ if (event.source.getEntity() instanceof EntityLivingBase) {
+ held = ((EntityLivingBase) event.source
+ .getEntity()).getHeldItem();
+ }
+
+ 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/YWD/src/main/java/fyresmodjam/blessings/standard/MechanicBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/MechanicBlessing.java
new file mode 100644
index 0000000..e992d17
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/MechanicBlessing.java
@@ -0,0 +1,20 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+
+public class MechanicBlessing extends StandardBlessing {
+ public MechanicBlessing() {
+ super("Mechanic", false);
+ }
+
+ @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/YWD/src/main/java/fyresmodjam/blessings/standard/MinerBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/MinerBlessing.java
new file mode 100644
index 0000000..a73d019
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/MinerBlessing.java
@@ -0,0 +1,55 @@
+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.minecraftforge.event.entity.living.LivingHurtEvent;
+import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed;
+
+public class MinerBlessing extends StandardBlessing {
+ public MinerBlessing() {
+ super("Miner", false);
+ }
+
+ @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.block.getMaterial() == Material.rock
+ || pebsev.block.getMaterial() == Material.iron) {
+ pebsev.newSpeed = pebsev.originalSpeed * 1.25F;
+ }
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ ItemStack held = null;
+
+ if (event.source.getEntity() instanceof EntityLivingBase) {
+ held = ((EntityLivingBase) event.source
+ .getEntity()).getHeldItem();
+ }
+
+ 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/YWD/src/main/java/fyresmodjam/blessings/standard/NinjaBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/NinjaBlessing.java
new file mode 100644
index 0000000..1d61065
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/NinjaBlessing.java
@@ -0,0 +1,49 @@
+package fyresmodjam.blessings.standard;
+
+import cpw.mods.fml.common.gameevent.TickEvent.ServerTickEvent;
+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;
+
+public class NinjaBlessing extends StandardBlessing {
+ public NinjaBlessing() {
+ super("Ninja", false);
+ }
+
+ @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()) {
+ 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) {
+ if (event.entityLiving != null
+ && event.source.getEntity().isSneaking()
+ && event.entityLiving
+ .getHealth() == event.entityLiving
+ .getMaxHealth()) {
+ return damageMultiplier + 1.0F;
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/PaladinBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/PaladinBlessing.java
new file mode 100644
index 0000000..b5be58b
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/PaladinBlessing.java
@@ -0,0 +1,25 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class PaladinBlessing extends StandardBlessing {
+ public PaladinBlessing() {
+ super("Paladin", false);
+ }
+
+ @Override
+ public String description() {
+ return "Deal bonus damage to undead";
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ if (event.entityLiving.isEntityUndead()) {
+ return damageMultiplier + .2f;
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/ParatrooperBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/ParatrooperBlessing.java
new file mode 100644
index 0000000..ec02d76
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/ParatrooperBlessing.java
@@ -0,0 +1,27 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class ParatrooperBlessing extends StandardBlessing {
+ public ParatrooperBlessing() {
+ super("Paratrooper");
+ }
+
+ @Override
+ public String description() {
+ return "Take no fall damage";
+ }
+
+ @Override
+ public float onIncomingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ if(event.source.damageType.equals("fall")) {
+ event.setCanceled(true);
+
+ return 0;
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/PorcupineBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/PorcupineBlessing.java
new file mode 100644
index 0000000..73f5dc2
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/PorcupineBlessing.java
@@ -0,0 +1,43 @@
+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 StandardBlessing {
+ public PorcupineBlessing() {
+ super("Porcupine");
+ }
+
+ @Override
+ public String description() {
+ return "Deal retaliation damage to melee attackers";
+ }
+
+ @Override
+ public float onIncomingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ DamageSource damageSource = event.source;
+
+ Entity source = damageSource.getEntity();
+
+ if (source != null && source instanceof EntityLivingBase
+ && !damageSource.isProjectile()
+ && (damageSource.getDamageType()
+ .equals("mob")
+ || damageSource.getDamageType()
+ .equals("player"))) {
+
+ DamageSource damage = DamageSource
+ .causeThornsDamage(source);
+
+ ((EntityLivingBase) source).attackEntityFrom(
+ damage, event.ammount * 0.07F);
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/ScholarBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/ScholarBlessing.java
new file mode 100644
index 0000000..f4cbe65
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/ScholarBlessing.java
@@ -0,0 +1,27 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class ScholarBlessing extends StandardBlessing {
+ public ScholarBlessing() {
+ super("Scholar", false);
+ }
+
+ @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/YWD/src/main/java/fyresmodjam/blessings/standard/StandardBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/StandardBlessing.java
new file mode 100644
index 0000000..51a3766
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/StandardBlessing.java
@@ -0,0 +1,19 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import fyresmodjam.blessings.BlessingType;
+
+public abstract class StandardBlessing extends Blessing {
+ protected StandardBlessing(String name) {
+ this(name, true);
+ }
+
+ protected StandardBlessing(String name, boolean mobAppropriate) {
+ super(name, mobAppropriate);
+ }
+
+ @Override
+ public BlessingType type() {
+ return BlessingType.STANDARD;
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/SwampBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/SwampBlessing.java
new file mode 100644
index 0000000..21c3fc8
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/SwampBlessing.java
@@ -0,0 +1,30 @@
+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 StandardBlessing {
+ public SwampBlessing() {
+ super("Swamp");
+ }
+
+ @Override
+ public String description() {
+ return "Attacks slow enemies";
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ if (event.entityLiving != null) {
+ event.entityLiving
+ .addPotionEffect(new PotionEffect(
+ Potion.moveSlowdown.id,
+ 100, 1, false));
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/ThickSkinnedBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/ThickSkinnedBlessing.java
new file mode 100644
index 0000000..9504eb0
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/ThickSkinnedBlessing.java
@@ -0,0 +1,22 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.blessings.Blessing;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class ThickSkinnedBlessing extends StandardBlessing {
+ public ThickSkinnedBlessing() {
+ super("Thick-Skinned");
+ }
+
+ @Override
+ public String description() {
+ return "Reduce damage taken by a flat amount";
+ }
+
+ @Override
+ public float onIncomingDamage(LivingHurtEvent lhev, float damageMultiplier) {
+ lhev.ammount = Math.max(0.5f, lhev.ammount - 1f);
+
+ return damageMultiplier;
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/ThiefBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/ThiefBlessing.java
new file mode 100644
index 0000000..267054f
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/ThiefBlessing.java
@@ -0,0 +1,26 @@
+package fyresmodjam.blessings.standard;
+
+import fyresmodjam.ModjamMod;
+import net.minecraft.init.Items;
+import net.minecraftforge.event.entity.living.LivingDeathEvent;
+
+public class ThiefBlessing extends StandardBlessing {
+ public ThiefBlessing() {
+ super("Thief", false);
+ }
+
+ @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.entity.worldObj.isRemote) {
+ event.entity.dropItem(Items.gold_nugget,
+ 1);
+ }
+ }
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/VampireBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/VampireBlessing.java
new file mode 100644
index 0000000..914f9c6
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/VampireBlessing.java
@@ -0,0 +1,27 @@
+package fyresmodjam.blessings.standard;
+
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class VampireBlessing extends StandardBlessing {
+ public VampireBlessing() {
+ super("Vampire");
+ }
+
+ @Override
+ public String description() {
+ return "Heal a small percentage of damage dealt to enemies";
+ }
+
+ @Override
+ public float onOutgoingDamage(LivingHurtEvent event,
+ float damageMultiplier) {
+ if (event.source.getEntity() instanceof EntityLivingBase) {
+ ((EntityLivingBase) event.source.getEntity()).heal(
+ (event.ammount * damageMultiplier)
+ * 0.07F);
+ }
+
+ return damageMultiplier;
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/blessings/standard/WarriorBlessing.java b/YWD/src/main/java/fyresmodjam/blessings/standard/WarriorBlessing.java
new file mode 100644
index 0000000..83fed42
--- /dev/null
+++ b/YWD/src/main/java/fyresmodjam/blessings/standard/WarriorBlessing.java
@@ -0,0 +1,36 @@
+package fyresmodjam.blessings.standard;
+
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.IRangedAttackMob;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+
+public class WarriorBlessing extends StandardBlessing {
+ public WarriorBlessing() {
+ super("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.source.getDamageType().equals("player")
+ || event.source.getDamageType()
+ .equals("mob"))) {
+ return damageMultiplier + 0.2f;
+ }
+
+ return damageMultiplier;
+ }
+}