Reactivity and Assorted Changes (#11245)
* Implemented turretDepositCooldown (1) * Implemented activationTime for Turrets (1) * activationTime for Turrets Fixes (2) readSync() line isn't needed, Overdrive should not make the cooldown go faster, it stays as is unless there is a good argument against it. * activationTime (3): Descriptions and SetBars() Updated arc and lancer descriptions. Added setBars() stuff for clearness. * turretDepositCooldown (2): now depositCooldown and is now on a per turret basis if needed... will potentially need further iteration * turretDepositCooldown (3): made it opt in added an internal gamerule (long name, need to reduce it later) to enable the balance (oriented for pvp) depositCooldown = 0 by def added depositCooldown entries in Blocks.java * activationTime (4): Minor Adjustments to UI * activitationTime (5): Implemented drawInactive() and inactiveColo, and arc/lancer sprite Thinking if I should set the sprites to be white, then use Color.gray... * turretDepositCooldown (4): Made the cooldown only affect turrets * Reload Turret Coolant Fixes (1) Made coolant and overdrive effects not get chopped off from Math.min when its too high * activationTime (6): activationTime is now at the Base Turret Level Also implemented the code for TractorBeamTurret thanks to the code changes Parallax can have the feature if needed for future balancing. Hopefully nothing was screwed up in the transition... * Counterbalance (1): Swarmer 8 -> 7 firerate nerf, and Cyclone 7.5 -> 6 firerate nerf [First Attempt] * Reload Turret Coolant Fixes (2): added a buffer if the excessReload exceeds more than 2 reloads. * Reload Turret Coolant Fixes (3): hotfix, the buffer actually works this time * turretDepositCooldown (5): Made the cooldown seperate from itemDepositCooldown * Implemented armorMultiplier (1) * fixing a merge * (AT:7a) Reverted Saving Capability * (AT:7b) Removed activation timer from lancer and arc as well as sprites * (AT:7c) Removed visuals for activation timer will be reimplemented via a greyscale effect if returned rather than via sprites * (AT:7aa) oops * Made the default value 0 when placed - Activation Timer (8) * (depositCooldown : 6) Moved depositCooldown to Blocks.java, cleaned up canDepositItem(), removed enableTurretDepositCooldown * armorMultiplier (2) - oops, made armorMultipler = 0 correspond to 100% armorPiercing * Update core/src/mindustry/input/InputHandler.java * Reload Turret Coolant Fixes (4): A bit too high --------- Co-authored-by: Anuken <arnukren@gmail.com>
This commit is contained in:
@@ -37,6 +37,7 @@ import mindustry.ui.fragments.*;
|
||||
import mindustry.world.*;
|
||||
import mindustry.world.blocks.ConstructBlock.*;
|
||||
import mindustry.world.blocks.*;
|
||||
import mindustry.world.blocks.defense.turrets.*;
|
||||
import mindustry.world.blocks.distribution.*;
|
||||
import mindustry.world.blocks.payloads.*;
|
||||
import mindustry.world.blocks.storage.*;
|
||||
@@ -2154,7 +2155,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
|
||||
if(build != null && build.acceptStack(stack.item, stack.amount, player.unit()) > 0 && build.interactable(player.team()) &&
|
||||
build.block.hasItems && player.unit().stack().amount > 0 && build.interactable(player.team())){
|
||||
|
||||
if(build.allowDeposit() && itemDepositCooldown <= 0f){
|
||||
if(build.allowDeposit() && canDepositItem(build)){
|
||||
Call.transferInventory(player, build);
|
||||
itemDepositCooldown = state.rules.itemDepositCooldown;
|
||||
}
|
||||
@@ -2163,6 +2164,14 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canDepositItem(Building build){
|
||||
//takes advantage of itemDepositCooldown being able to be negative, allows the cooldown to be different for each building
|
||||
if(build.block.depositCooldown >= 0){
|
||||
return itemDepositCooldown - state.rules.itemDepositCooldown <= -build.block.depositCooldown;
|
||||
}
|
||||
return itemDepositCooldown <= 0;
|
||||
}
|
||||
|
||||
public void rebuildArea(int x1, int y1, int x2, int y2){
|
||||
NormalizeResult result = Placement.normalizeArea(x1, y1, x2, y2, rotation, false, 999999999);
|
||||
Tmp.r1.set(result.x * tilesize, result.y * tilesize, (result.x2 - result.x) * tilesize, (result.y2 - result.y) * tilesize);
|
||||
|
||||
Reference in New Issue
Block a user