Merge remote-tracking branch 'origin/master'

This commit is contained in:
Anuken
2022-10-01 18:03:51 -04:00
3 changed files with 34 additions and 21 deletions
+10 -4
View File
@@ -562,15 +562,20 @@ public class UI implements ApplicationListener, Loadable{
/** Shows a menu that fires a callback when an option is selected. If nothing is selected, -1 is returned. */ /** Shows a menu that fires a callback when an option is selected. If nothing is selected, -1 is returned. */
public void showMenu(String title, String message, String[][] options, Intc callback){ public void showMenu(String title, String message, String[][] options, Intc callback){
new Dialog(title){{ new Dialog(title){{
setFillParent(true);
removeChild(titleTable);
cont.add(titleTable).width(400f);
cont.row(); cont.row();
cont.image().width(400f).pad(2).colspan(2).height(4f).color(Pal.accent); cont.image().width(400f).pad(2).colspan(2).height(4f).color(Pal.accent).bottom();
cont.row();
cont.add(message).width(400f).wrap().get().setAlignment(Align.center);
cont.row(); cont.row();
cont.pane(table -> {
table.add(message).width(400f).wrap().get().setAlignment(Align.center);
table.row();
int option = 0; int option = 0;
for(var optionsRow : options){ for(var optionsRow : options){
Table buttonRow = buttons.row().table().get().row(); Table buttonRow = table.row().table().get().row();
int fullWidth = 400 - (optionsRow.length - 1) * 8; // adjust to count padding as well int fullWidth = 400 - (optionsRow.length - 1) * 8; // adjust to count padding as well
int width = fullWidth / optionsRow.length; int width = fullWidth / optionsRow.length;
int lastWidth = fullWidth - width * (optionsRow.length - 1); // take the rest of space for uneven table int lastWidth = fullWidth - width * (optionsRow.length - 1); // take the rest of space for uneven table
@@ -587,6 +592,7 @@ public class UI implements ApplicationListener, Loadable{
option++; option++;
} }
} }
}).growX();
closeOnBack(() -> callback.get(-1)); closeOnBack(() -> callback.get(-1));
}}.show(); }}.show();
} }
@@ -147,6 +147,11 @@ public class AIController implements UnitController{
//let uncontrollable weapons do their own thing //let uncontrollable weapons do their own thing
if(!weapon.controllable || weapon.noAttack) continue; if(!weapon.controllable || weapon.noAttack) continue;
if(!weapon.aiControllable){
mount.rotate = false;
continue;
}
float mountX = unit.x + Angles.trnsx(rotation, weapon.x, weapon.y), float mountX = unit.x + Angles.trnsx(rotation, weapon.x, weapon.y),
mountY = unit.y + Angles.trnsy(rotation, weapon.x, weapon.y); mountY = unit.y + Angles.trnsy(rotation, weapon.x, weapon.y);
+2
View File
@@ -53,6 +53,8 @@ public class Weapon implements Cloneable{
public boolean alwaysContinuous; public boolean alwaysContinuous;
/** whether this weapon can be aimed manually by players */ /** whether this weapon can be aimed manually by players */
public boolean controllable = true; public boolean controllable = true;
/** whether this weapon can be automatically aimed by the unit */
public boolean aiControllable = true;
/** whether this weapon is always shooting, regardless of targets ore cone */ /** whether this weapon is always shooting, regardless of targets ore cone */
public boolean alwaysShooting = false; public boolean alwaysShooting = false;
/** whether to automatically target relevant units in update(); only works when controllable = false. */ /** whether to automatically target relevant units in update(); only works when controllable = false. */