aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/github/technus/tectech/elementalMatter/core/stacks/cElementalInstanceStack.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/main/java/com/github/technus/tectech/elementalMatter/core/stacks/cElementalInstanceStack.java b/src/main/java/com/github/technus/tectech/elementalMatter/core/stacks/cElementalInstanceStack.java
index 0575c2b8a5..83dc2e1817 100644
--- a/src/main/java/com/github/technus/tectech/elementalMatter/core/stacks/cElementalInstanceStack.java
+++ b/src/main/java/com/github/technus/tectech/elementalMatter/core/stacks/cElementalInstanceStack.java
@@ -371,13 +371,17 @@ public final class cElementalInstanceStack implements iHasElementalDefinition {
return this;
}
//returns with the definition from the first object passed
- long energy = this.energy * amount;
+ double energy = this.energy * amount;
+ long maxEnergy=this.energy;
float lifeTimeMul = lifeTimeMult;
for (cElementalInstanceStack instance : instances) {
if (instance != null && compareTo(instance) == 0) {
amount += instance.amount;
energy += instance.energy * instance.amount;
+ if(instance.energy>maxEnergy){
+ maxEnergy=instance.energy;
+ }
lifeTimeMul = Math.min(lifeTimeMul, instance.lifeTimeMult);
age = Math.max(age, instance.age);
}
@@ -386,7 +390,10 @@ public final class cElementalInstanceStack implements iHasElementalDefinition {
if (amount != 0) {
energy /= Math.abs(amount);
}
- setEnergy(energy);
+
+ double wholeParts=Math.floor(energy);
+ energy=Math.min(energy-wholeParts,1);
+ setEnergy(Math.min(maxEnergy,(long)wholeParts+(energy>TecTech.Rnd.nextDouble()?1:0)));
return this;
}