summaryrefslogtreecommitdiff
path: root/src/main/java/fyresmodjam/blessings/Blessing.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/fyresmodjam/blessings/Blessing.java')
-rw-r--r--src/main/java/fyresmodjam/blessings/Blessing.java119
1 files changed, 119 insertions, 0 deletions
diff --git a/src/main/java/fyresmodjam/blessings/Blessing.java b/src/main/java/fyresmodjam/blessings/Blessing.java
new file mode 100644
index 0000000..4c5e6a1
--- /dev/null
+++ b/src/main/java/fyresmodjam/blessings/Blessing.java
@@ -0,0 +1,119 @@
+package fyresmodjam.blessings;
+
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraftforge.event.entity.living.LivingDeathEvent;
+import net.minecraftforge.event.entity.living.LivingHurtEvent;
+import net.minecraftforge.event.entity.player.PlayerEvent;
+import net.minecraftforge.fml.common.gameevent.TickEvent.ServerTickEvent;
+
+/**
+ * Represents a blessing bestowed to a player.
+ *
+ * @author bjculkin
+ */
+public abstract class Blessing {
+ private static int nextOrdinal = 0;
+
+ public final int ordinal;
+
+ protected Blessing() {
+ ordinal = nextOrdinal++;
+ }
+
+ public boolean hasCustomName() {
+ return false;
+ }
+
+ public String customName() {
+ return "Blessing of the " + name();
+ }
+
+ /**
+ * Get the name of this blessing.
+ *
+ * @return The name of this blessing.
+ */
+ public abstract String name();
+
+ /**
+ * Get the description of this blessing.
+ *
+ * @return The description of this blessing.
+ */
+ public abstract String description();
+
+ /**
+ * Modify the player's break speed.
+ *
+ * @param pebsev
+ * The break speed event.
+ */
+ public void checkBreakSpeed(PlayerEvent.BreakSpeed pebsev) {
+ return;
+ }
+
+ /**
+ * Correct inappropriate blessings for mobs.
+ *
+ * @param ent
+ * The mob to correct for.
+ */
+ public void correctBlessing(Entity ent) {
+ return;
+ }
+
+ /**
+ * Do something on every tick.
+ *
+ * @param stev
+ * The tick event
+ */
+ public void commonTick(ServerTickEvent stev, EntityPlayer play) {
+ return;
+ }
+
+ /**
+ * Handle adjusting the damage multiplier for mob knowledge.
+ *
+ * @param lhev
+ * The event being dealt with.
+ *
+ * @param pickedDamageBonus
+ * The base damage bonus for mob knowledge.
+ *
+ * @return
+ * The new damage bonus for mob knowledge
+ */
+ public float adjustMobKnowledgeBonus(LivingHurtEvent lhev, float pickedDamageBonus) {
+ return pickedDamageBonus;
+ }
+
+ /**
+ * Handle adjusting the damage multiplier for weapon knowledge.
+ *
+ * @param lhev
+ * The event being dealt with.
+ *
+ * @param pickedDamageBonus
+ * The base damage bonus for weapon knowledge.
+ *
+ * @return
+ * The new damage bonus for weapon knowledge
+ */
+ public float adjustWeaponKnowledgeBonus(LivingHurtEvent lhev, float pickedDamageBonus) {
+ return pickedDamageBonus;
+ }
+
+ public float onIncomingDamage(LivingHurtEvent lhev, float damageMultiplier) {
+ return damageMultiplier;
+ }
+
+ public float onOutgoingDamage(LivingHurtEvent event, float damageMultiplier) {
+ return damageMultiplier;
+ }
+
+ public void onMobKill(LivingDeathEvent event) {
+ return;
+ }
+}