summaryrefslogtreecommitdiff
path: root/src/main/java/com/sosnitzka/taiga/traits
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/sosnitzka/taiga/traits')
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitBlind.java12
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java14
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitFragile.java2
3 files changed, 20 insertions, 8 deletions
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitBlind.java b/src/main/java/com/sosnitzka/taiga/traits/TraitBlind.java
index 392f48f..20b2bf9 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitBlind.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitBlind.java
@@ -20,8 +20,10 @@ public class TraitBlind extends AbstractTrait {
public void afterBlockBreak(ItemStack tool, World world, IBlockState state, BlockPos pos, EntityLivingBase player, boolean wasEffective) {
int time = (int) world.getWorldTime();
if (random.nextFloat() <= 0.05 || (random.nextFloat() <= 0.1 && isNight(time))) {
- player.addPotionEffect(new PotionEffect(MobEffects.BLINDNESS, random.nextInt(400) + 200));
- player.addPotionEffect(new PotionEffect(MobEffects.WEAKNESS, random.nextInt(400) + 200));
+ if (random.nextBoolean())
+ player.addPotionEffect(new PotionEffect(MobEffects.BLINDNESS, random.nextInt(200) + 100));
+ else
+ player.addPotionEffect(new PotionEffect(MobEffects.WEAKNESS, random.nextInt(200) + 100));
}
}
@@ -29,8 +31,10 @@ public class TraitBlind extends AbstractTrait {
public void afterHit(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, boolean wasCritical, boolean wasHit) {
int time = (int) player.getEntityWorld().getWorldTime();
if (random.nextFloat() <= 0.05 || (random.nextFloat() <= 0.1 && isNight(time))) {
- player.addPotionEffect(new PotionEffect(MobEffects.BLINDNESS, random.nextInt(400) + 200));
- player.addPotionEffect(new PotionEffect(MobEffects.WEAKNESS, random.nextInt(400) + 200));
+ if (random.nextBoolean())
+ player.addPotionEffect(new PotionEffect(MobEffects.BLINDNESS, random.nextInt(400) + 200));
+ else
+ player.addPotionEffect(new PotionEffect(MobEffects.WEAKNESS, random.nextInt(400) + 200));
}
}
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java b/src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java
index 618d249..0d5ce7a 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitCascade.java
@@ -1,5 +1,7 @@
package com.sosnitzka.taiga.traits;
+import com.sosnitzka.taiga.util.TickTask;
+import com.sosnitzka.taiga.util.TickTaskHandler;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
@@ -19,14 +21,17 @@ public class TraitCascade extends AbstractTrait {
public void afterBlockBreak(ItemStack tool, World world, IBlockState state, BlockPos pos, EntityLivingBase player, boolean wasEffective) {
float f = random.nextFloat();
float b = 0.99F * calcBonus(tool);
-
if (!world.isRemote && tool.canHarvestBlock(state) && f <= b) {
double x, y, z, sx, sy, sz;
sx = x = pos.getX();
sy = y = pos.getY();
sz = z = pos.getZ();
-
- for (int i = random.nextInt(ToolHelper.getCurrentDurability(tool)); i > 0; i--) {
+ for (int i = random.nextInt((int) (ToolHelper.getCurrentDurability(tool) * 1.5f)); i > 0; i--) {
+ TickTaskHandler.getInstance().addTask(new TickTask(20, new Runnable() {
+ @Override
+ public void run() {
+ }
+ }));
int r = random.nextInt(3);
int d = random.nextBoolean() ? 1 : -1;
if (r == 0) x += d;
@@ -44,8 +49,11 @@ public class TraitCascade extends AbstractTrait {
y = sy;
z = sz;
}
+
}
+
}
+
}
private float calcBonus(ItemStack tool) {
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitFragile.java b/src/main/java/com/sosnitzka/taiga/traits/TraitFragile.java
index ed594b5..a6bf431 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitFragile.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitFragile.java
@@ -33,7 +33,7 @@ public class TraitFragile extends AbstractTrait {
sx = x = pos.getX();
sy = y = pos.getY();
sz = z = pos.getZ();
- for (int i = random.nextInt(50) + 50; i > 0; i--) {
+ for (int i = random.nextInt(10) + 9; i > 0; i--) {
int r = random.nextInt(3);
int d = random.nextBoolean() ? 1 : -1;
if (r == 0) x += d;