diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2018-05-24 15:53:20 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2018-05-24 15:53:20 -0400 |
| commit | 3eb8c7a8fca3f22475d53e30f0b90a6737f313fa (patch) | |
| tree | 1c0afbcb6712408fb791849969f9766dcdeb5868 /YWD/src/main/java/fyresmodjam/blessings/standard | |
Initial commit
Diffstat (limited to 'YWD/src/main/java/fyresmodjam/blessings/standard')
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; + } +} |
