Better heal FX / Lower wall priority

This commit is contained in:
Anuken
2022-04-11 14:01:00 -04:00
parent 12eddd131b
commit ea9e5ae632
11 changed files with 17 additions and 9 deletions

Binary file not shown.

View File

@@ -1589,12 +1589,14 @@ public class Blocks{
requirements(Category.defense, with(Items.beryllium, 6)); requirements(Category.defense, with(Items.beryllium, 6));
health = 130 * wallHealthMultiplier; health = 130 * wallHealthMultiplier;
armor = 2f; armor = 2f;
buildCostMultiplier = 6.5f;
}}; }};
berylliumWallLarge = new Wall("beryllium-wall-large"){{ berylliumWallLarge = new Wall("beryllium-wall-large"){{
requirements(Category.defense, ItemStack.mult(berylliumWall.requirements, 4)); requirements(Category.defense, ItemStack.mult(berylliumWall.requirements, 4));
health = 130 * wallHealthMultiplier * 4; health = 130 * wallHealthMultiplier * 4;
armor = 2f; armor = 2f;
buildCostMultiplier = 5f;
size = 2; size = 2;
}}; }};
@@ -1602,12 +1604,14 @@ public class Blocks{
requirements(Category.defense, with(Items.tungsten, 6)); requirements(Category.defense, with(Items.tungsten, 6));
health = 180 * wallHealthMultiplier; health = 180 * wallHealthMultiplier;
armor = 14f; armor = 14f;
buildCostMultiplier = 6.5f;
}}; }};
tungstenWallLarge = new Wall("tungsten-wall-large"){{ tungstenWallLarge = new Wall("tungsten-wall-large"){{
requirements(Category.defense, ItemStack.mult(tungstenWall.requirements, 4)); requirements(Category.defense, ItemStack.mult(tungstenWall.requirements, 4));
health = 180 * wallHealthMultiplier * 4; health = 180 * wallHealthMultiplier * 4;
armor = 14f; armor = 14f;
buildCostMultiplier = 5f;
size = 2; size = 2;
}}; }};

View File

@@ -2192,9 +2192,11 @@ public class Fx{
}), }),
healBlockFull = new Effect(20, e -> { healBlockFull = new Effect(20, e -> {
color(e.color); if(!(e.data instanceof Block block)) return;
mixcol(e.color, 1f);
alpha(e.fout()); alpha(e.fout());
Fill.square(e.x, e.y, e.rotation * tilesize / 2f); Draw.rect(block.fullIcon, e.x, e.y);
}), }),
rotateBlock = new Effect(30, e -> { rotateBlock = new Effect(30, e -> {

View File

@@ -3,6 +3,7 @@ package mindustry.entities;
/** Higher priority blocks will always get targeted over those of lower priority, regardless of distance. */ /** Higher priority blocks will always get targeted over those of lower priority, regardless of distance. */
public class TargetPriority{ public class TargetPriority{
public static final float public static final float
wall = -1f,
base = 0f, base = 0f,
constructing = 1f, constructing = 1f,
turret = 2f, turret = 2f,

View File

@@ -135,7 +135,7 @@ public class EnergyFieldAbility extends Ability{
hitEffect.at(rx, ry, unit.angleTo(other), color); hitEffect.at(rx, ry, unit.angleTo(other), color);
if(other instanceof Building b){ if(other instanceof Building b){
Fx.healBlockFull.at(b.x, b.y, b.block.size, color); Fx.healBlockFull.at(b.x, b.y, 0f, color, b.block);
} }
} }
}else{ }else{

View File

@@ -265,7 +265,7 @@ public class BulletType extends Content implements Cloneable{
} }
if(heals() && build.team == b.team && !(build.block instanceof ConstructBlock)){ if(heals() && build.team == b.team && !(build.block instanceof ConstructBlock)){
healEffect.at(build.x, build.y, build.block.size, healColor); healEffect.at(build.x, build.y, 0f, healColor, build.block);
build.heal(healPercent / 100f * build.maxHealth + healAmount); build.heal(healPercent / 100f * build.maxHealth + healAmount);
}else if(build.team != b.team && direct){ }else if(build.team != b.team && direct){
hit(b); hit(b);
@@ -337,7 +337,7 @@ public class BulletType extends Content implements Cloneable{
if(heals()){ if(heals()){
indexer.eachBlock(b.team, x, y, splashDamageRadius, Building::damaged, other -> { indexer.eachBlock(b.team, x, y, splashDamageRadius, Building::damaged, other -> {
healEffect.at(other.x, other.y, other.block.size, healColor); healEffect.at(other.x, other.y, 0f, healColor, other.block);
other.heal(healPercent / 100f * other.maxHealth() + healAmount); other.heal(healPercent / 100f * other.maxHealth() + healAmount);
}); });
} }

View File

@@ -28,7 +28,7 @@ public class EmpBulletType extends BasicBulletType{
if(other.block.hasPower && other.damaged()){ if(other.block.hasPower && other.damaged()){
other.heal(healPercent / 100f * other.maxHealth() + healAmount); other.heal(healPercent / 100f * other.maxHealth() + healAmount);
Fx.healBlockFull.at(other.x, other.y, other.block.size, hitColor); Fx.healBlockFull.at(other.x, other.y, other.block.size, hitColor, other.block);
applyEffect.at(other, other.block.size * 7f); applyEffect.at(other, other.block.size * 7f);
} }
}else if(other.power != null){ }else if(other.power != null){

View File

@@ -109,7 +109,7 @@ abstract class TankComp implements Posc, Flyingc, Hitboxc, Unitc, ElevationMovec
@Override @Override
public void moveAt(Vec2 vector, float acceleration){ public void moveAt(Vec2 vector, float acceleration){
//mark walking state when moving in a controlled manner //mark walking state when moving in a controlled manner
if(!vector.isZero()){ if(!vector.isZero(0.001f)){
walked = true; walked = true;
} }
} }

View File

@@ -146,7 +146,7 @@ public class RepairBeamWeapon extends Weapon{
//create heal effect periodically //create heal effect periodically
if(canShoot && mount.target instanceof Building b && b.damaged() && (heal.effectTimer += Time.delta) >= reload){ if(canShoot && mount.target instanceof Building b && b.damaged() && (heal.effectTimer += Time.delta) >= reload){
healEffect.at(b.x, b.y, b.block.size, healColor); healEffect.at(b.x, b.y, 0f, healColor, b.block);
heal.effectTimer = 0f; heal.effectTimer = 0f;
} }

View File

@@ -95,7 +95,7 @@ public class MendProjector extends Block{
indexer.eachBlock(this, realRange, b -> b.damaged() && !b.isHealSuppressed(), other -> { indexer.eachBlock(this, realRange, b -> b.damaged() && !b.isHealSuppressed(), other -> {
other.heal(other.maxHealth() * (healPercent + phaseHeat * phaseBoost) / 100f * efficiency); other.heal(other.maxHealth() * (healPercent + phaseHeat * phaseBoost) / 100f * efficiency);
other.recentlyHealed(); other.recentlyHealed();
Fx.healBlockFull.at(other.x, other.y, other.block.size, baseColor); Fx.healBlockFull.at(other.x, other.y, other.block.size, baseColor, other.block);
}); });
} }
} }

View File

@@ -37,6 +37,7 @@ public class Wall extends Block{
canOverdrive = false; canOverdrive = false;
drawDisabled = false; drawDisabled = false;
crushDamageMultiplier = 5f; crushDamageMultiplier = 5f;
priority = TargetPriority.wall;
//it's a wall of course it's supported everywhere //it's a wall of course it's supported everywhere
envEnabled = Env.any; envEnabled = Env.any;