Commander unit component

This commit is contained in:
Anuken
2020-05-02 21:34:37 -04:00
parent dce8b8faa1
commit cb6920b8be
12 changed files with 207 additions and 59 deletions

View File

@ -14,7 +14,8 @@ import arc.scene.ui.layout.*;
import arc.util.ArcAnnotate.*;
import arc.util.*;
import mindustry.*;
import mindustry.ai.types.*;
import mindustry.ai.formations.*;
import mindustry.ai.formations.patterns.*;
import mindustry.content.*;
import mindustry.entities.*;
import mindustry.entities.units.*;
@ -182,13 +183,28 @@ public class DesktopInput extends InputHandler{
}
//TODO this is for debugging, remove later
if(Core.input.keyTap(KeyCode.q) && !player.dead()){
Fx.commandSend.at(player);
Units.nearby(player.team(), player.x(), player.y(), 200f, u -> {
if(u.isAI()){
u.controller(new FormationAI(player.unit()));
}
});
if(Core.input.keyTap(KeyCode.g) && !player.dead() && player.unit() instanceof Commanderc){
Commanderc commander = (Commanderc)player.unit();
if(commander.isCommanding()){
commander.clearCommand();
}else{
FormationPattern pattern = new SquareFormation();
Formation formation = new Formation(new Vec3(player.x(), player.y(), player.unit().rotation()), pattern);
formation.slotAssignmentStrategy = new DistanceAssignmentStrategy(pattern);
units.clear();
Fx.commandSend.at(player);
Units.nearby(player.team(), player.x(), player.y(), 200f, u -> {
if(u.isAI()){
units.add(u);
}
});
commander.command(formation, units);
}
}
}