diff --git a/core/src/io/anuke/mindustry/content/Mechs.java b/core/src/io/anuke/mindustry/content/Mechs.java index b4fb0f6127..57dcf5afd3 100644 --- a/core/src/io/anuke/mindustry/content/Mechs.java +++ b/core/src/io/anuke/mindustry/content/Mechs.java @@ -5,6 +5,7 @@ import io.anuke.arc.graphics.*; import io.anuke.arc.graphics.g2d.*; import io.anuke.arc.math.*; import io.anuke.arc.util.*; +import io.anuke.mindustry.*; import io.anuke.mindustry.entities.*; import io.anuke.mindustry.entities.bullet.*; import io.anuke.mindustry.entities.effect.*; @@ -85,7 +86,7 @@ public class Mechs implements ContentList{ Effects.shake(1f, 1f, player); Effects.effect(Fx.landShock, player); for(int i = 0; i < 8; i++){ - Time.run(Mathf.random(8f), () -> Lightning.create(player.getTeam(), Pal.lancerLaser, 17f, player.x, player.y, Mathf.random(360f), 14)); + Time.run(Mathf.random(8f), () -> Lightning.create(player.getTeam(), Pal.lancerLaser, 17f * Vars.state.rules.playerDamageMultiplier, player.x, player.y, Mathf.random(360f), 14)); } } } @@ -286,7 +287,7 @@ public class Mechs implements ContentList{ float scl = scld(player); if(Mathf.chance(Time.delta() * (0.15 * scl))){ Effects.effect(Fx.hitLancer, Pal.lancerLaser, player.x, player.y); - Lightning.create(player.getTeam(), Pal.lancerLaser, 10f, + Lightning.create(player.getTeam(), Pal.lancerLaser, 10f * Vars.state.rules.playerDamageMultiplier, player.x + player.velocity().x, player.y + player.velocity().y, player.rotation, 14); } } diff --git a/core/src/io/anuke/mindustry/game/Gamemode.java b/core/src/io/anuke/mindustry/game/Gamemode.java index 4c8e42e1f1..16f129f065 100644 --- a/core/src/io/anuke/mindustry/game/Gamemode.java +++ b/core/src/io/anuke/mindustry/game/Gamemode.java @@ -20,7 +20,6 @@ public enum Gamemode{ rules.respawnTime = 0f; }), attack(rules -> { - rules.enemyCheat = true; rules.unitDrops = true; rules.attackMode = true; rules.waves = true; diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java b/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java index c0a857f625..5bbd09e4fa 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java @@ -1,23 +1,20 @@ package io.anuke.mindustry.world.blocks.defense; -import io.anuke.arc.Core; -import io.anuke.arc.function.Consumer; -import io.anuke.arc.graphics.Blending; -import io.anuke.arc.graphics.Color; +import io.anuke.arc.*; +import io.anuke.arc.function.*; +import io.anuke.arc.graphics.*; import io.anuke.arc.graphics.g2d.*; -import io.anuke.arc.math.Mathf; -import io.anuke.arc.util.Time; -import io.anuke.mindustry.content.Fx; +import io.anuke.arc.math.*; +import io.anuke.arc.util.*; +import io.anuke.mindustry.content.*; import io.anuke.mindustry.entities.*; -import io.anuke.mindustry.entities.impl.BaseEntity; +import io.anuke.mindustry.entities.impl.*; import io.anuke.mindustry.entities.traits.*; -import io.anuke.mindustry.entities.type.TileEntity; -import io.anuke.mindustry.graphics.Pal; -import io.anuke.mindustry.world.Block; -import io.anuke.mindustry.world.Tile; +import io.anuke.mindustry.entities.type.*; +import io.anuke.mindustry.graphics.*; +import io.anuke.mindustry.world.*; import io.anuke.mindustry.world.consumers.*; -import io.anuke.mindustry.world.meta.BlockStat; -import io.anuke.mindustry.world.meta.StatUnit; +import io.anuke.mindustry.world.meta.*; import java.io.*; @@ -94,7 +91,6 @@ public class ForceProjector extends Block{ @Override public void update(Tile tile){ ForceEntity entity = tile.entity(); - boolean cheat = tile.isEnemyCheat(); if(entity.shield == null){ entity.shield = new ShieldEntity(tile); @@ -109,21 +105,15 @@ public class ForceProjector extends Block{ entity.cons.trigger(); } - entity.radscl = Mathf.lerpDelta(entity.radscl, entity.broken ? 0f : 1f, 0.05f); + entity.radscl = Mathf.lerpDelta(entity.radscl, entity.broken ? 0f : entity.warmup, 0.05f); if(Mathf.chance(Time.delta() * entity.buildup / breakage * 0.1f)){ Effects.effect(Fx.reactorsmoke, tile.drawx() + Mathf.range(tilesize / 2f), tile.drawy() + Mathf.range(tilesize / 2f)); } - //use cases: - // - There is enough power in the buffer, and there are no shots fired => Draw base power and keep shield up - // - There is enough power in the buffer, but not enough power to cope for shots being fired => Draw all power and break shield - // - There is enough power in the buffer and enough power to cope for shots being fired => Draw base power + additional power based on shots absorbed - // - There is not enough base power in the buffer => Draw all power and break shield - // - The generator is in the AI base and uses cheat mode => Only draw power from shots being absorbed - - float relativePowerDraw = cheat ? 0f : 1f; + entity.warmup = Mathf.lerpDelta(entity.warmup, entity.power.satisfaction, 0.1f); +/* if(entity.power.satisfaction < relativePowerDraw){ entity.warmup = Mathf.lerpDelta(entity.warmup, 0f, 0.15f); entity.power.satisfaction = 0f; @@ -132,7 +122,7 @@ public class ForceProjector extends Block{ } }else{ entity.warmup = Mathf.lerpDelta(entity.warmup, 1f, 0.1f); - } + }*/ if(entity.buildup > 0){ float scale = !entity.broken ? cooldownNormal : cooldownBrokenBase; @@ -145,7 +135,7 @@ public class ForceProjector extends Block{ entity.buildup -= Time.delta() * scale; } - if(entity.broken && entity.buildup <= 0 && entity.warmup >= 0.9f){ + if(entity.broken && entity.buildup <= 0){ entity.broken = false; } diff --git a/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java b/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java index 172ad36f28..2703c9abc0 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java @@ -109,10 +109,7 @@ public class PowerGraph{ for(Tile battery : batteries){ Consumers consumes = battery.block().consumes; if(consumes.hasPower()){ - ConsumePower consumePower = consumes.getPower(); - if(consumePower.capacity > 0f){ - battery.entity.power.satisfaction = Math.max(0.0f, battery.entity.power.satisfaction - consumedPowerPercentage); - } + battery.entity.power.satisfaction *= (1f-consumedPowerPercentage); } } return used;