From 86d5803b639016ad2be70183c7e924e8ea81ecb8 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 8 Apr 2018 10:36:49 -0400 Subject: [PATCH] Minor status effect/liquid bugfixes --- core/assets/version.properties | 2 +- core/src/io/anuke/mindustry/content/StatusEffects.java | 2 +- core/src/io/anuke/mindustry/content/blocks/Blocks.java | 2 +- core/src/io/anuke/mindustry/content/fx/BlockFx.java | 2 +- core/src/io/anuke/mindustry/core/ContentLoader.java | 6 ++++-- core/src/io/anuke/mindustry/entities/Player.java | 6 ++---- .../io/anuke/mindustry/entities/StatusController.java | 5 +++++ core/src/io/anuke/mindustry/entities/Unit.java | 10 +++++++++- .../io/anuke/mindustry/entities/units/BaseUnit.java | 1 + .../io/anuke/mindustry/entities/units/UnitType.java | 6 +----- core/src/io/anuke/mindustry/io/MapIO.java | 3 +-- 11 files changed, 27 insertions(+), 18 deletions(-) diff --git a/core/assets/version.properties b/core/assets/version.properties index 4c1bea5b90..4f88ebfec1 100644 --- a/core/assets/version.properties +++ b/core/assets/version.properties @@ -1,5 +1,5 @@ #Autogenerated file. Do not modify. -#Sat Apr 07 23:21:47 EDT 2018 +#Sun Apr 08 10:33:47 EDT 2018 version=release androidBuildCode=870 name=Mindustry diff --git a/core/src/io/anuke/mindustry/content/StatusEffects.java b/core/src/io/anuke/mindustry/content/StatusEffects.java index 11c969d972..0a13de525b 100644 --- a/core/src/io/anuke/mindustry/content/StatusEffects.java +++ b/core/src/io/anuke/mindustry/content/StatusEffects.java @@ -102,7 +102,7 @@ public class StatusEffects { Effects.effect(EnvironmentFx.oily, unit.x + Mathf.range(unit.getSize()/2f), unit.y + Mathf.range(unit.getSize()/2f)); } - unit.velocity.scl(1.001f); + unit.velocity.scl(0.6f); } @Override diff --git a/core/src/io/anuke/mindustry/content/blocks/Blocks.java b/core/src/io/anuke/mindustry/content/blocks/Blocks.java index 7217d98d08..2483c64fd8 100644 --- a/core/src/io/anuke/mindustry/content/blocks/Blocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/Blocks.java @@ -38,7 +38,7 @@ public class Blocks { deepwater = new Floor("deepwater") {{ liquidColor = Color.valueOf("546bb3"); - speedMultiplier = 0.3f; + speedMultiplier = 0.2f; variants = 0; liquidDrop = Liquids.water; liquid = true; diff --git a/core/src/io/anuke/mindustry/content/fx/BlockFx.java b/core/src/io/anuke/mindustry/content/fx/BlockFx.java index b516138ee0..e75c7daafb 100644 --- a/core/src/io/anuke/mindustry/content/fx/BlockFx.java +++ b/core/src/io/anuke/mindustry/content/fx/BlockFx.java @@ -266,7 +266,7 @@ public class BlockFx { bubble = new Effect(20, e -> { Draw.color(Hue.shift(Tmp.c1.set(e.color), 2, 0.1f)); Lines.stroke(e.fout() + 0.2f); - Angles.randLenVectors(e.id, 3, 11f, (x, y) -> { + Angles.randLenVectors(e.id, 2, 8f, (x, y) -> { Lines.circle(e.x + x, e.y + y, 1f + e.fin() * 3f); }); Draw.reset(); diff --git a/core/src/io/anuke/mindustry/core/ContentLoader.java b/core/src/io/anuke/mindustry/core/ContentLoader.java index c4ed50ca21..c6b656b7fb 100644 --- a/core/src/io/anuke/mindustry/core/ContentLoader.java +++ b/core/src/io/anuke/mindustry/core/ContentLoader.java @@ -2,7 +2,9 @@ package io.anuke.mindustry.core; import io.anuke.mindustry.content.*; import io.anuke.mindustry.content.blocks.*; +import io.anuke.mindustry.entities.StatusEffect; import io.anuke.mindustry.entities.units.UnitType; +import io.anuke.mindustry.resource.AmmoType; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.resource.Mech; @@ -56,9 +58,9 @@ public class ContentLoader { } Log.info("--- CONTENT INFO ---"); - Log.info("Blocks loaded: {0}\nItems loaded: {1}\nLiquids loaded: {2}\nUpgrades loaded: {3}\nUnits loaded: {4}", + Log.info("Blocks loaded: {0}\nItems loaded: {1}\nLiquids loaded: {2}\nUpgrades loaded: {3}\nUnits loaded: {4}\nAmmo types loaded: {5}\nStatus effects loaded: {6}", Block.getAllBlocks().size, Item.getAllItems().size, Liquid.getAllLiquids().size, - Mech.getAllUpgrades().size, UnitType.getAllTypes().size); + Mech.getAllUpgrades().size, UnitType.getAllTypes().size, AmmoType.getAllTypes().size, StatusEffect.getAllEffects().size); Log.info("-------------------"); } diff --git a/core/src/io/anuke/mindustry/entities/Player.java b/core/src/io/anuke/mindustry/entities/Player.java index fe77f5d745..a9272378ca 100644 --- a/core/src/io/anuke/mindustry/entities/Player.java +++ b/core/src/io/anuke/mindustry/entities/Player.java @@ -105,8 +105,8 @@ public class Player extends Unit{ @Override public void onDeath(){ + super.onDeath(); dead = true; - drownTime = 0f; if(Net.active()){ NetEvents.handleUnitDeath(this); } @@ -193,8 +193,6 @@ public class Player extends Unit{ public void update(){ hitTime = Math.max(0f, hitTime - Timers.delta()); - status.update(this); - if(!isLocal){ interpolate(); return; @@ -265,7 +263,7 @@ public class Player extends Unit{ velocity.add(movement); - updateVelocity(0.4f, speed); + updateVelocityStatus(0.4f, speed); if(!movement.isZero()){ walktime += Timers.delta() * velocity.len()*(1f/0.5f)/speed * getFloorOn().speedMultiplier; diff --git a/core/src/io/anuke/mindustry/entities/StatusController.java b/core/src/io/anuke/mindustry/entities/StatusController.java index 6b78effd53..57cecdd232 100644 --- a/core/src/io/anuke/mindustry/entities/StatusController.java +++ b/core/src/io/anuke/mindustry/entities/StatusController.java @@ -28,6 +28,11 @@ public class StatusController { } } + public void clear(){ + current = StatusEffects.none; + time = 0f; + } + public void update(Unit unit){ time = Math.max(time - Timers.delta(), 0); diff --git a/core/src/io/anuke/mindustry/entities/Unit.java b/core/src/io/anuke/mindustry/entities/Unit.java index fef9506e29..23eda5036f 100644 --- a/core/src/io/anuke/mindustry/entities/Unit.java +++ b/core/src/io/anuke/mindustry/entities/Unit.java @@ -34,16 +34,24 @@ public abstract class Unit extends SyncEntity { return other instanceof Bullet && state.teams.areEnemies((((Bullet) other).team), team); } + @Override + public void onDeath() { + drownTime = 0f; + status.clear(); + } + public Floor getFloorOn(){ Tile tile = world.tileWorld(x, y); return (Floor)(tile == null || (!(tile.floor() instanceof Floor)) ? Blocks.defaultFloor : tile.floor()); } - public void updateVelocity(float drag, float maxVelocity){ + public void updateVelocityStatus(float drag, float maxVelocity){ Floor floor = getFloorOn(); velocity.limit(maxVelocity); + status.update(this); + if(isFlying()) { x += velocity.x / getMass(); y += velocity.y / getMass(); diff --git a/core/src/io/anuke/mindustry/entities/units/BaseUnit.java b/core/src/io/anuke/mindustry/entities/units/BaseUnit.java index 54dda77ce6..20237a2bf5 100644 --- a/core/src/io/anuke/mindustry/entities/units/BaseUnit.java +++ b/core/src/io/anuke/mindustry/entities/units/BaseUnit.java @@ -79,6 +79,7 @@ public class BaseUnit extends Unit { @Override public void onDeath(){ + super.onDeath(); type.onDeath(this); } diff --git a/core/src/io/anuke/mindustry/entities/units/UnitType.java b/core/src/io/anuke/mindustry/entities/units/UnitType.java index beab516389..5ec584bb3a 100644 --- a/core/src/io/anuke/mindustry/entities/units/UnitType.java +++ b/core/src/io/anuke/mindustry/entities/units/UnitType.java @@ -72,11 +72,7 @@ public abstract class UnitType { updateTargeting(unit); - //TODO logic - - unit.status.update(unit); - - unit.updateVelocity(drag, maxVelocity); + unit.updateVelocityStatus(drag, maxVelocity); if(unit.target != null) behavior(unit); diff --git a/core/src/io/anuke/mindustry/io/MapIO.java b/core/src/io/anuke/mindustry/io/MapIO.java index 520b9e5bfd..f6e42849ef 100644 --- a/core/src/io/anuke/mindustry/io/MapIO.java +++ b/core/src/io/anuke/mindustry/io/MapIO.java @@ -12,7 +12,6 @@ import io.anuke.mindustry.io.MapTileData.TileDataMarker; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.ColorMapper; import io.anuke.mindustry.world.ColorMapper.BlockPair; -import io.anuke.ucore.util.Log; import java.io.DataInputStream; import java.io.DataOutputStream; @@ -142,7 +141,7 @@ public class MapIO { String name = stream.readUTF(); Block block = Block.getByName(name); if(block == null){ - Log.info("Map load info: No block with name {0} found.", name); + //Log.info("Map load info: No block with name {0} found.", name); block = Blocks.air; } map.put(id, block.id);