diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 51fb344295..04410a9c4b 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -505,6 +505,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI (Red Team) Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index 378ef6dcef..38d44d7a5e 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 1687c6bb64..8f5ac43f07 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index fd72b0552d..defbccee44 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 96df16db0e..433c0f01ac 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_fr_BE.properties b/core/assets/bundles/bundle_fr_BE.properties index 508925e2ea..06c1d415e8 100644 --- a/core/assets/bundles/bundle_fr_BE.properties +++ b/core/assets/bundles/bundle_fr_BE.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_in_ID.properties b/core/assets/bundles/bundle_in_ID.properties index dac20cb287..0d04b55f8b 100644 --- a/core/assets/bundles/bundle_in_ID.properties +++ b/core/assets/bundles/bundle_in_ID.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 413743c606..c7387672a7 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 843968548d..1b5e5c2863 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_ko.properties b/core/assets/bundles/bundle_ko.properties index 05ea2dad12..20d3523fe9 100644 --- a/core/assets/bundles/bundle_ko.properties +++ b/core/assets/bundles/bundle_ko.properties @@ -494,6 +494,9 @@ rules.waves = 웨이브 rules.enemyCheat = 무한 AI 자원 rules.pvp = PvP rules.unitdrops = 유닛 드롭 +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = 적 코어 건설 금지구역:[LIGHT_GRAY] (타일) rules.respawntime = 리스폰 시간:[LIGHT_GRAY] (초) rules.wavespacing = 웨이브 간격:[LIGHT_GRAY] (초) diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index e344ef4297..f3f8058c9e 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index c015d10d4b..c254f18fc9 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index dc6b3eac3c..52e474a134 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 51f5362c08..a94d923a71 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index 267af6cb95..29222e70eb 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index ba5b0333b5..718d088b97 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index ab99a57923..1286290d86 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -494,6 +494,9 @@ rules.waves = Хвилі rules.enemyCheat = Нескінченні ресурси для ШІ rules.pvp = PvP rules.unitdrops = Падіння бойових одиниць +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Радіус заборони будування для Ворожого Ядра:[LIGHT_GRAY] (плитки) rules.respawntime = Час відродження:[LIGHT_GRAY] (sec) rules.wavespacing = Інтервал хвиль:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index d3a931b05d..32626a8502 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 0025325b3b..f51b5dae55 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -494,6 +494,9 @@ rules.waves = Waves rules.enemyCheat = Infinite AI Resources rules.pvp = PvP rules.unitdrops = Unit Drops +rules.unitbuildspeedmultiplier = Unit Creation Speed Multiplier +rules.unithealthmultiplier = Unit Health Multiplier +rules.playerdamagemultiplier = Player Damage Multiplier rules.enemycorebuildradius = Enemy Core No-Build Radius:[LIGHT_GRAY] (tiles) rules.respawntime = Respawn Time:[LIGHT_GRAY] (sec) rules.wavespacing = Wave Spacing:[LIGHT_GRAY] (sec) diff --git a/core/src/io/anuke/mindustry/entities/bullet/Bullet.java b/core/src/io/anuke/mindustry/entities/bullet/Bullet.java index ae61553586..db665df3fb 100644 --- a/core/src/io/anuke/mindustry/entities/bullet/Bullet.java +++ b/core/src/io/anuke/mindustry/entities/bullet/Bullet.java @@ -131,6 +131,17 @@ public class Bullet extends SolidEntity implements DamageTrait, ScaleTrait, Pool this.data = data; } + public float damageMultiplier(){ + if(owner instanceof Unit){ + return type.damage * ((Unit) owner).getDamageMultipler(); + } + + if(owner instanceof Lightning && data instanceof Float){ + return (Float)data; + } + return 1f; + } + @Override public void absorb(){ supressCollision = true; @@ -144,16 +155,7 @@ public class Bullet extends SolidEntity implements DamageTrait, ScaleTrait, Pool @Override public float damage(){ - //todo hacky way to get damage, refactor - if(owner instanceof Unit){ - return type.damage * ((Unit) owner).getDamageMultipler(); - } - - if(owner instanceof Lightning && data instanceof Float){ - return (Float)data; - } - - return type.damage; + return type.damage * damageMultiplier(); } @Override diff --git a/core/src/io/anuke/mindustry/entities/bullet/BulletType.java b/core/src/io/anuke/mindustry/entities/bullet/BulletType.java index b915e7c9ba..55287cb800 100644 --- a/core/src/io/anuke/mindustry/entities/bullet/BulletType.java +++ b/core/src/io/anuke/mindustry/entities/bullet/BulletType.java @@ -125,7 +125,7 @@ public abstract class BulletType extends Content{ } if(splashDamageRadius > 0){ - Damage.damage(b.getTeam(), x, y, splashDamageRadius, splashDamage); + Damage.damage(b.getTeam(), x, y, splashDamageRadius, splashDamage * b.damageMultiplier()); } } diff --git a/core/src/io/anuke/mindustry/entities/type/BaseUnit.java b/core/src/io/anuke/mindustry/entities/type/BaseUnit.java index 16b8792fb6..8d4d86e5f4 100644 --- a/core/src/io/anuke/mindustry/entities/type/BaseUnit.java +++ b/core/src/io/anuke/mindustry/entities/type/BaseUnit.java @@ -217,7 +217,7 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{ @Override public float maxHealth(){ - return type.health; + return type.health * Vars.state.rules.unitHealthMultiplier; } @Override diff --git a/core/src/io/anuke/mindustry/entities/type/Player.java b/core/src/io/anuke/mindustry/entities/type/Player.java index 7d4893292d..6bd427df18 100644 --- a/core/src/io/anuke/mindustry/entities/type/Player.java +++ b/core/src/io/anuke/mindustry/entities/type/Player.java @@ -91,6 +91,11 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{ player.mech = (player.isMobile ? Mechs.starterMobile : Mechs.starterDesktop); } + @Override + public float getDamageMultipler(){ + return status.getDamageMultiplier() * state.rules.playerDamageMultiplier; + } + @Override public void hitbox(Rectangle rectangle){ rectangle.setSize(mech.hitsize).setCenter(x, y); diff --git a/core/src/io/anuke/mindustry/game/RulePreset.java b/core/src/io/anuke/mindustry/game/RulePreset.java index 3b91808816..c86a7a0570 100644 --- a/core/src/io/anuke/mindustry/game/RulePreset.java +++ b/core/src/io/anuke/mindustry/game/RulePreset.java @@ -28,6 +28,9 @@ public enum RulePreset{ respawnTime = 60 * 10; buildCostMultiplier = 0.5f; buildSpeedMultiplier = 2f; + playerDamageMultiplier = 0.5f; + unitBuildSpeedMultiplier = 3f; + unitHealthMultiplier = 2f; }}); private final Supplier rules; diff --git a/core/src/io/anuke/mindustry/game/Rules.java b/core/src/io/anuke/mindustry/game/Rules.java index 0338e51b88..fedd3b3054 100644 --- a/core/src/io/anuke/mindustry/game/Rules.java +++ b/core/src/io/anuke/mindustry/game/Rules.java @@ -19,6 +19,12 @@ public class Rules{ public boolean pvp; /**Whether enemy units drop random items on death.*/ public boolean unitDrops; + /**How fast unit pads build units.*/ + public float unitBuildSpeedMultiplier = 1f; + /**How much health units start with.*/ + public float unitHealthMultiplier = 1f; + /**How much damage player mechs deal.*/ + public float playerDamageMultiplier = 1f; /**Multiplier for buildings for the player.*/ public float buildCostMultiplier = 1f; /**Multiplier for building speed.*/ diff --git a/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java index 55be2de816..7f9b419cae 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java @@ -43,6 +43,9 @@ public class CustomRulesDialog extends FloatingDialog{ main.row(); number("$rules.buildcostmultiplier", f -> rules.buildCostMultiplier = f, () -> rules.buildCostMultiplier); number("$rules.buildspeedmultiplier", f -> rules.buildSpeedMultiplier = f, () -> rules.buildSpeedMultiplier); + number("$rules.unitbuildspeedmultiplier", f -> rules.unitBuildSpeedMultiplier = f, () -> rules.unitBuildSpeedMultiplier); + number("$rules.unithealthmultiplier", f -> rules.unitHealthMultiplier = f, () -> rules.unitHealthMultiplier); + number("$rules.playerdamagemultiplier", f -> rules.playerDamageMultiplier = f, () -> rules.playerDamageMultiplier); number("$rules.enemycorebuildradius", f -> rules.enemyCoreBuildRadius = f*tilesize, () -> Math.min(rules.enemyCoreBuildRadius/tilesize, 200)); number("$rules.respawntime", f -> rules.respawnTime = f*60f, () -> rules.respawnTime/60f); number("$rules.wavespacing", f -> rules.waveSpacing = f*60f, () -> rules.waveSpacing/60f); diff --git a/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java b/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java index 3ef695fc10..8fc9e43885 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java @@ -31,7 +31,7 @@ import io.anuke.mindustry.world.Tile; import static io.anuke.mindustry.Vars.*; public class BlockInventoryFragment extends Fragment{ - private final static float holdWithdraw = 40f; + private final static float holdWithdraw = 20f; private Table table; private Tile tile; diff --git a/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java b/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java index 7b425775e5..cb8198b3ba 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java @@ -176,8 +176,8 @@ public class UnitFactory extends Block{ if(!tile.isEnemyCheat()){ //player-made spawners have default behavior if(entity.cons.valid()){ - entity.time += entity.delta() * entity.speedScl; - entity.buildTime += entity.delta() * entity.power.satisfaction; + entity.time += entity.delta() * entity.speedScl * Vars.state.rules.unitBuildSpeedMultiplier; + entity.buildTime += entity.delta() * entity.power.satisfaction * Vars.state.rules.unitBuildSpeedMultiplier; entity.speedScl = Mathf.lerpDelta(entity.speedScl, 1f, 0.05f); }else{ entity.speedScl = Mathf.lerpDelta(entity.speedScl, 0f, 0.05f);