diff --git a/core/src/mindustry/entities/EntityGroup.java b/core/src/mindustry/entities/EntityGroup.java index ad97cb93b5..d4079371cc 100644 --- a/core/src/mindustry/entities/EntityGroup.java +++ b/core/src/mindustry/entities/EntityGroup.java @@ -84,6 +84,10 @@ public class EntityGroup implements Iterable{ } } + public Seq copy(){ + return copy(new Seq<>()); + } + public Seq copy(Seq arr){ arr.addAll(array); return arr; diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index 7fd842cdb1..baae1f6a83 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -1324,7 +1324,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, //I really do not like that the bullet will not destroy derelict //but I can't do anything about it without using a random team //which may or may not cause issues with servers and js - block.destroyBullet.create(this, Team.derelict, x, y, 0); + block.destroyBullet.create(this, block.destroyBulletSameTeam ? team : Team.derelict, x, y, Mathf.randomSeed(id(), 360f)); } } diff --git a/core/src/mindustry/ui/fragments/PlayerListFragment.java b/core/src/mindustry/ui/fragments/PlayerListFragment.java index 8dae9f2acf..1ce9390fcc 100644 --- a/core/src/mindustry/ui/fragments/PlayerListFragment.java +++ b/core/src/mindustry/ui/fragments/PlayerListFragment.java @@ -197,7 +197,7 @@ public class PlayerListFragment{ } //there's generally no reason to team switch outside PvP or sandbox, and it's basically an easy way to cheat - if(state.rules.pvp || state.rules.infiniteResources){ + if(!state.isCampaign() && (state.rules.pvp || state.rules.infiniteResources)){ t.button("@player.team", Icon.redo, bstyle, () -> { var teamSelect = new BaseDialog(Core.bundle.get("player.team") + ": " + user.name); teamSelect.setFillParent(false); diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 961e8640b1..badcbc1d5f 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -170,6 +170,8 @@ public class Block extends UnlockableContent implements Senseable{ public float baseExplosiveness = 0f; /** bullet that this block spawns when destroyed */ public @Nullable BulletType destroyBullet = null; + /** if true, destroyBullet is spawned on the block's team instead of Derelict team */ + public boolean destroyBulletSameTeam = false; /** liquid used for lighting */ public @Nullable Liquid lightLiquid; /** whether cracks are drawn when this block is damaged */ diff --git a/servers_v7.json b/servers_v7.json index 2789d6f629..f886451331 100644 --- a/servers_v7.json +++ b/servers_v7.json @@ -73,7 +73,7 @@ }, { "name": "Phoenix Network", - "address": ["phoenix-network.dev", "phoenix-network.dev:6464"] + "address": ["phoenix-network.dev", "phoenix-network.dev:6464", "phoenix-network.dev:2023"] }, { "name": "Xpdustry", @@ -180,8 +180,16 @@ "address": ["event.baseduser.eu.org"], "prioritized": true }, + { + "name": "Cyandustry", + "address": ["91.218.66.162:6568"], + }, { "name": "Four Family", "address": ["118.127.8.162:25503"] + }, + { + "name": "ToxoFlame", + "address": ["193.233.133.223", "193.233.133.223:6568"] } ]