Fix Turret bug when cheat (#8273)
* (C/S) Fix ItemTurret ammo when `cheat`. * (C/S) Fix `TurretBuild.updateReload` NPE when `cheat`
This commit is contained in:
@@ -19,7 +19,7 @@ import mindustry.world.meta.*;
|
|||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
public class ItemTurret extends Turret{
|
public class ItemTurret extends Turret{
|
||||||
public ObjectMap<Item, BulletType> ammoTypes = new ObjectMap<>();
|
public ObjectMap<Item, BulletType> ammoTypes = new OrderedMap<>();
|
||||||
|
|
||||||
public ItemTurret(String name){
|
public ItemTurret(String name){
|
||||||
super(name);
|
super(name);
|
||||||
@@ -82,6 +82,17 @@ public class ItemTurret extends Turret{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public class ItemTurretBuild extends TurretBuild{
|
public class ItemTurretBuild extends TurretBuild{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onProximityAdded(){
|
||||||
|
super.onProximityAdded();
|
||||||
|
|
||||||
|
//add first ammo item to cheaty blocks so they can shoot properly
|
||||||
|
if(!hasAmmo() && cheating() && ammoTypes.size > 0){
|
||||||
|
handleItem(this, ammoTypes.keys().next());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateTile(){
|
public void updateTile(){
|
||||||
unit.ammo((float)unit.type().ammoCapacity * totalAmmo / maxAmmo);
|
unit.ammo((float)unit.type().ammoCapacity * totalAmmo / maxAmmo);
|
||||||
|
|||||||
@@ -500,8 +500,8 @@ public class Turret extends ReloadTurret{
|
|||||||
if(ammo.size >= 2 && ammo.peek().amount < ammoPerShot && ammo.get(ammo.size - 2).amount >= ammoPerShot){
|
if(ammo.size >= 2 && ammo.peek().amount < ammoPerShot && ammo.get(ammo.size - 2).amount >= ammoPerShot){
|
||||||
ammo.swap(ammo.size - 1, ammo.size - 2);
|
ammo.swap(ammo.size - 1, ammo.size - 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
return ammo.size > 0 && ammo.peek().amount >= ammoPerShot || cheating();
|
return ammo.size > 0 && (ammo.peek().amount >= ammoPerShot || cheating());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean charging(){
|
public boolean charging(){
|
||||||
|
|||||||
Reference in New Issue
Block a user