mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-12-06 02:40:23 -08:00
Better heal FX / Lower wall priority
This commit is contained in:
parent
12eddd131b
commit
ea9e5ae632
11 changed files with 17 additions and 9 deletions
Binary file not shown.
|
|
@ -1589,12 +1589,14 @@ public class Blocks{
|
|||
requirements(Category.defense, with(Items.beryllium, 6));
|
||||
health = 130 * wallHealthMultiplier;
|
||||
armor = 2f;
|
||||
buildCostMultiplier = 6.5f;
|
||||
}};
|
||||
|
||||
berylliumWallLarge = new Wall("beryllium-wall-large"){{
|
||||
requirements(Category.defense, ItemStack.mult(berylliumWall.requirements, 4));
|
||||
health = 130 * wallHealthMultiplier * 4;
|
||||
armor = 2f;
|
||||
buildCostMultiplier = 5f;
|
||||
size = 2;
|
||||
}};
|
||||
|
||||
|
|
@ -1602,12 +1604,14 @@ public class Blocks{
|
|||
requirements(Category.defense, with(Items.tungsten, 6));
|
||||
health = 180 * wallHealthMultiplier;
|
||||
armor = 14f;
|
||||
buildCostMultiplier = 6.5f;
|
||||
}};
|
||||
|
||||
tungstenWallLarge = new Wall("tungsten-wall-large"){{
|
||||
requirements(Category.defense, ItemStack.mult(tungstenWall.requirements, 4));
|
||||
health = 180 * wallHealthMultiplier * 4;
|
||||
armor = 14f;
|
||||
buildCostMultiplier = 5f;
|
||||
size = 2;
|
||||
}};
|
||||
|
||||
|
|
|
|||
|
|
@ -2192,9 +2192,11 @@ public class Fx{
|
|||
}),
|
||||
|
||||
healBlockFull = new Effect(20, e -> {
|
||||
color(e.color);
|
||||
if(!(e.data instanceof Block block)) return;
|
||||
|
||||
mixcol(e.color, 1f);
|
||||
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 -> {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package mindustry.entities;
|
|||
/** Higher priority blocks will always get targeted over those of lower priority, regardless of distance. */
|
||||
public class TargetPriority{
|
||||
public static final float
|
||||
wall = -1f,
|
||||
base = 0f,
|
||||
constructing = 1f,
|
||||
turret = 2f,
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ public class EnergyFieldAbility extends Ability{
|
|||
hitEffect.at(rx, ry, unit.angleTo(other), color);
|
||||
|
||||
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{
|
||||
|
|
|
|||
|
|
@ -265,7 +265,7 @@ public class BulletType extends Content implements Cloneable{
|
|||
}
|
||||
|
||||
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);
|
||||
}else if(build.team != b.team && direct){
|
||||
hit(b);
|
||||
|
|
@ -337,7 +337,7 @@ public class BulletType extends Content implements Cloneable{
|
|||
|
||||
if(heals()){
|
||||
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);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public class EmpBulletType extends BasicBulletType{
|
|||
|
||||
if(other.block.hasPower && other.damaged()){
|
||||
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);
|
||||
}
|
||||
}else if(other.power != null){
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ abstract class TankComp implements Posc, Flyingc, Hitboxc, Unitc, ElevationMovec
|
|||
@Override
|
||||
public void moveAt(Vec2 vector, float acceleration){
|
||||
//mark walking state when moving in a controlled manner
|
||||
if(!vector.isZero()){
|
||||
if(!vector.isZero(0.001f)){
|
||||
walked = true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@ public class RepairBeamWeapon extends Weapon{
|
|||
|
||||
//create heal effect periodically
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ public class MendProjector extends Block{
|
|||
indexer.eachBlock(this, realRange, b -> b.damaged() && !b.isHealSuppressed(), other -> {
|
||||
other.heal(other.maxHealth() * (healPercent + phaseHeat * phaseBoost) / 100f * efficiency);
|
||||
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);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ public class Wall extends Block{
|
|||
canOverdrive = false;
|
||||
drawDisabled = false;
|
||||
crushDamageMultiplier = 5f;
|
||||
priority = TargetPriority.wall;
|
||||
|
||||
//it's a wall of course it's supported everywhere
|
||||
envEnabled = Env.any;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue