Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
 public override bool mouseMotion(double x, double y, Territory curTerr, uint Button)
 {
     displayUnitsLeftToBuild();
     return false;
 }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
        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" +
                        "=============================");
            }
        }
Ejemplo n.º 5
0
 public void mouseMotion(double x, double y, Territory curTerr)
 {
     uint button = 0;
     currentState.mouseMotion(x, y, curTerr, button);
 }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
 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;
 }
Ejemplo n.º 8
0
 public Orig_AttackStrategicDetonate(Territory a)
 {
     tname = a.Name;
 }
Ejemplo n.º 9
0
 public override void beginPlayer(Player p)
 {
     previousTerritory = currentTerritory = null;
     arrowOn = selectingTargets = false;
 }
Ejemplo n.º 10
0
 public Orig_AttackDeleteUnits(ArrayList us, Player pl, Territory te)
 {
     units = us;
     tname = te.Name;
     curPlay = pl;
 }
Ejemplo n.º 11
0
 public NuclearTarget(Territory t, int i)
 {
     tname = t.Name; icbms = i;
 }
Ejemplo n.º 12
0
 public Orig_AttackConventionalStart(Player a, Player d, Territory c, Territory p)
 {
     attacker = a;
     defender = d;
     curTerrName = c.Name;
     prevTerrName = p.Name;
 }
Ejemplo n.º 13
0
 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;
 }
Ejemplo n.º 14
0
 public void addConnection(Territory a)
 {
     connectedTerritories.Add(a);
 }