Stat reactivity cleanup
This commit is contained in:
@@ -736,6 +736,7 @@ stat.healthmultiplier = Health Multiplier
|
|||||||
stat.speedmultiplier = Speed Multiplier
|
stat.speedmultiplier = Speed Multiplier
|
||||||
stat.reloadmultiplier = Reload Multiplier
|
stat.reloadmultiplier = Reload Multiplier
|
||||||
stat.buildspeedmultiplier = Build Speed Multiplier
|
stat.buildspeedmultiplier = Build Speed Multiplier
|
||||||
|
stat.reactive = Reacts
|
||||||
|
|
||||||
ability.forcefield = Force Field
|
ability.forcefield = Force Field
|
||||||
ability.repairfield = Repair Field
|
ability.repairfield = Repair Field
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import arc.graphics.*;
|
|||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
|
import mindustry.*;
|
||||||
import mindustry.content.*;
|
import mindustry.content.*;
|
||||||
import mindustry.ctype.*;
|
import mindustry.ctype.*;
|
||||||
import mindustry.entities.*;
|
import mindustry.entities.*;
|
||||||
@@ -74,22 +75,31 @@ public class StatusEffect extends UnlockableContent{
|
|||||||
if(buildSpeedMultiplier != 1) stats.addPercent(Stat.buildSpeedMultiplier, buildSpeedMultiplier);
|
if(buildSpeedMultiplier != 1) stats.addPercent(Stat.buildSpeedMultiplier, buildSpeedMultiplier);
|
||||||
if(damage > 0) stats.add(Stat.damage, damage * 60f, StatUnit.perSecond);
|
if(damage > 0) stats.add(Stat.damage, damage * 60f, StatUnit.perSecond);
|
||||||
|
|
||||||
var afseq = affinities.asArray().sort();
|
boolean reacts = false;
|
||||||
var opseq = opposites.asArray().sort();
|
|
||||||
|
|
||||||
for(int i = 0; i < afseq.size; i++){
|
for(var e : opposites.asArray().sort()){
|
||||||
var e = afseq.get(i);
|
stats.add(Stat.opposites, e.emoji() + "" + e);
|
||||||
stats.add(Stat.affinities, e.emoji() + "" + e.toString());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(afseq.any() && transitionDamage != 0){
|
if(reactive){
|
||||||
stats.add(Stat.affinities, "/ [accent]" + (int)transitionDamage + " " + Stat.damage.localized());
|
var other = Vars.content.statusEffects().find(f -> f.affinities.contains(this));
|
||||||
|
if(other != null && other.transitionDamage > 0){
|
||||||
|
stats.add(Stat.reactive, other.emoji() + other + " / [accent]" + (int)other.transitionDamage + "[lightgray] " + Stat.damage.localized());
|
||||||
|
reacts = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i = 0; i < opseq.size; i++){
|
//don't list affinities *and* reactions, as that would be redundant
|
||||||
var e = opseq.get(i);
|
if(!reacts){
|
||||||
stats.add(Stat.opposites, e.emoji() + "" + e.toString());
|
for(var e : affinities.asArray().sort()){
|
||||||
|
stats.add(Stat.affinities, e.emoji() + "" + e);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(affinities.size > 0 && transitionDamage != 0){
|
||||||
|
stats.add(Stat.affinities, "/ [accent]" + (int)transitionDamage + " " + Stat.damage.localized());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ public enum Stat{
|
|||||||
speedMultiplier,
|
speedMultiplier,
|
||||||
reloadMultiplier,
|
reloadMultiplier,
|
||||||
buildSpeedMultiplier,
|
buildSpeedMultiplier,
|
||||||
|
reactive,
|
||||||
|
|
||||||
itemCapacity(StatCat.items),
|
itemCapacity(StatCat.items),
|
||||||
itemsMoved(StatCat.items),
|
itemsMoved(StatCat.items),
|
||||||
|
|||||||
Reference in New Issue
Block a user