Removed camera clamp / Self-destruct timer / More blend tweaks

This commit is contained in:
Anuken
2019-01-30 19:48:41 -05:00
parent c046a1b474
commit 43bff5c34d
12 changed files with 71 additions and 27 deletions
@@ -19,10 +19,13 @@ import io.anuke.arc.util.Interval;
import io.anuke.arc.util.Pack;
import io.anuke.arc.util.Time;
import io.anuke.arc.util.pooling.Pools;
import io.anuke.mindustry.content.Mechs;
import io.anuke.mindustry.content.Fx;
import io.anuke.mindustry.content.Mechs;
import io.anuke.mindustry.entities.effect.ScorchDecal;
import io.anuke.mindustry.entities.traits.*;
import io.anuke.mindustry.entities.traits.BuilderTrait;
import io.anuke.mindustry.entities.traits.ShooterTrait;
import io.anuke.mindustry.entities.traits.SpawnerTrait;
import io.anuke.mindustry.entities.traits.TargetTrait;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette;
@@ -60,7 +63,7 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{
public String name = "name";
public String uuid, usid;
public boolean isAdmin, isTransferring, isShooting, isBoosting, isMobile;
public float boostHeat, shootHeat;
public float boostHeat, shootHeat, destructTime;
public boolean achievedFlight;
public Color color = new Color();
public Mech mech;
@@ -490,6 +493,16 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{
setDead(true);
}
if(!isDead() && isOutOfBounds()){
destructTime += Time.delta();
if(destructTime >= boundsCountdown){
kill();
}
}else{
destructTime = 0f;
}
if(isDead()){
isBoosting = false;
boostHeat = 0f;
@@ -545,8 +558,9 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{
updateBuilding(this);
x = Mathf.clamp(x, 0, world.width() * tilesize - tilesize);
y = Mathf.clamp(y, 0, world.height() * tilesize - tilesize);
if(!mech.flying){
clampPosition();
}
}
protected void updateMech(){
+16 -2
View File
@@ -33,8 +33,8 @@ import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import static io.anuke.mindustry.Vars.state;
import static io.anuke.mindustry.Vars.world;
import static io.anuke.mindustry.Vars.*;
import static io.anuke.mindustry.Vars.tilesize;
public abstract class Unit extends DestructibleEntity implements SaveTrait, TargetTrait, SyncTrait, DrawTrait, TeamTrait, InventoryTrait{
/**Total duration of hit flash effect*/
@@ -174,6 +174,20 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
inventory.writeSave(stream);
}
protected void clampPosition(){
x = Mathf.clamp(x, tilesize, world.width() * tilesize - tilesize);
y = Mathf.clamp(y, tilesize, world.height() * tilesize - tilesize);
}
public void kill(){
health = -1;
damage(1);
}
public boolean isOutOfBounds(){
return x < worldBounds || y < worldBounds || x > world.width() * tilesize + worldBounds || y > world.height() * tilesize + worldBounds;
}
public float calculateDamage(float amount){
return amount * Mathf.clamp(1f - getArmor() / 100f * status.getArmorMultiplier());
}
@@ -301,8 +301,9 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
if(target != null) behavior();
x = Mathf.clamp(x, tilesize, world.width() * tilesize - tilesize);
y = Mathf.clamp(y, tilesize, world.height() * tilesize - tilesize);
if(!isFlying()){
clampPosition();
}
}
@Override