public Orig_BuildUnit(Unit aunit, Territory atarget, Player p) { if (atarget != null) tname = atarget.Name; else tname = ""; unit = aunit; curPlay = p; undoable = true; /* Mark it */ ID = Game.nextUnitCount() + curPlay.CountryID*10000; unit.ID = ID; }
public override bool mouseMotion(double x, double y, Territory curTerr, uint Button) { displayUnitsLeftToBuild(); return false; }
public override bool mouseClick(Territory target, uint Button) { Unit nu; Player me = Game.GetInstance().State.CurrentPlayer; if (target.MapTerritory.isLand) { if ((target.Owner != me) || (target.OriginalOwner != me.CountryID)) return false; nu = new Army(me, target); } else { if (Game.GetInstance().GUI.Map.distanceFromClosestHomeTerritory(target, me) > 1) return false; if (!target.occupiable(me)) return false; nu = new Navy(me, target); } /* Can't use Contains since hash values are different ... search stupidly */ foreach(Unit u in unitsToBuild) { if (u.Name == nu.Name) { unitsToBuild.Remove(u); Game.GetInstance().GUI.writeToLog("Building " + nu.Name); Orig_BuildUnit cmd = new Orig_BuildUnit(nu, target, me); Game.GetInstance().State.Execute(cmd); break; // must break, because another iteration will fault } } displayUnitsLeftToBuild(); return true; }
public void mouseClick(Territory target, uint Button) { System.Console.WriteLine("STATE: Registered click on " + target.Name); if (game.LocalPlayers.Contains(currentPlayer)) { System.Console.WriteLine("STATE: passed on click " + target.Name); currentState.mouseClick(target, Button); } else { System.Console.WriteLine("Could not find " + currentPlayer.Name + " in localPlayers: " +((Player)game.LocalPlayers[0]).Name); } if (Button == 3) { game.GUI.writeToLog("=============================\n" + "Clicked " + target.toString() + "\n" + "============================="); } }
public void mouseMotion(double x, double y, Territory curTerr) { uint button = 0; currentState.mouseMotion(x, y, curTerr, button); }
public override bool mouseClick(Territory target, uint Button) { Player player = Game.GetInstance().State.CurrentPlayer; if (selectingTargets) { combatView.AddStrategicTarget(target); return true; } /* Conventional Attack Logic */ if (Button != 1) { /* Cancelling */ arrowOn = false; Game.GetInstance().GUI.Map.ArrowOn = false; if (previousTerritory != null) Game.GUI.redrawTerritory(previousTerritory); Game.GUI.redrawTerritory(target); previousTerritory = null; return false; } if (previousTerritory == null) { if ( target.occupiedBy(player) && ( (!target.IsLand) || (target.Owner == player ) ) ) { previousTerritory = target; arrowOn = true; return true; } return false; } currentTerritory = target; // Game.GetInstance().GUI.showConventionalBattle(currentTerritory, previousTerritory, player, currentTerritory.Owner); /* Confirm that they're adjacent */ if (Game.GUI.Map.distanceBetween(previousTerritory, currentTerritory) > 1) return false; /* Confirm that they're of the same type */ if (previousTerritory.IsLand != currentTerritory.IsLand) return false; /* Confirm that it's occupied */ if (currentTerritory.Units.Count < 1) return false; Player defender = currentTerritory.Owner; if (defender == Game.GetInstance().PlayerNobody) { /* Resort to alternate measures to determine ownership */ defender = ((Unit)(currentTerritory.Units[0])).Owner; System.Console.WriteLine("Alternate selection of defender: Chose " + defender.Name); } /* Confirm it's not self-inflicted */ if (defender == player) return false; Orig_AttackConventionalStart cmd = new Orig_AttackConventionalStart(player, defender, currentTerritory, previousTerritory); Game.GetInstance().State.Execute(cmd); previousTerritory = currentTerritory = null; arrowOn = false; Game.GetInstance().GUI.Map.ArrowOn = false; return true; }
public override bool mouseMotion(double x, double y, Territory curTerr, uint Button) { if (arrowOn && previousTerritory != null && curTerr != null && curTerr != currentTerritory) { currentTerritory = curTerr; System.Console.WriteLine("Arrow from " + previousTerritory.Name + " to " + curTerr.Name); Game.GUI.drawArrow(previousTerritory, curTerr); return true; } return false; }
public Orig_AttackStrategicDetonate(Territory a) { tname = a.Name; }
public override void beginPlayer(Player p) { previousTerritory = currentTerritory = null; arrowOn = selectingTargets = false; }
public Orig_AttackDeleteUnits(ArrayList us, Player pl, Territory te) { units = us; tname = te.Name; curPlay = pl; }
public NuclearTarget(Territory t, int i) { tname = t.Name; icbms = i; }
public Orig_AttackConventionalStart(Player a, Player d, Territory c, Territory p) { attacker = a; defender = d; curTerrName = c.Name; prevTerrName = p.Name; }
public Orig_AttackConventionalRoll(Player a, Player d, Territory t, int ad, int dd, int ar, int dr) { attacker = a; defender = d; battleLocation = t; attackerDice = ad; defenderDice = dd; attackerRoll = ar; defenderRoll = dr; }
public void addConnection(Territory a) { connectedTerritories.Add(a); }