コード例 #1
0
        public override bool isAccomplished(List <RiskPlayer> players, RiskPlayer player, List <Continent> world)
        {
            int nLands = 0;
            int nLandsOwned;

            foreach (Continent continent in continentsToConquer)
            {
                nLands      = continent.getLands().Count;
                nLandsOwned = 0;

                foreach (Land land in continent.getLands())
                {
                    if (player.hasLand(land.getName()))
                    {
                        nLandsOwned += 1;
                    }
                }

                if (nLands != nLandsOwned)
                {
                    return(false);
                }
            }

            return(true);
        }
コード例 #2
0
        public override bool isAccomplished(List <RiskPlayer> players, RiskPlayer player, List <Continent> world)
        {
            if (player.getTerritoryOwned().Count == nTerritoryGoal)
            {
                return(true);
            }

            return(false);
        }
コード例 #3
0
 public void passLand(Land landAttacker, Land landDefender, RiskPlayer oldOwner, RiskPlayer newOwner, int tanks)
 {
     oldOwner.removeLand(landDefender);
     newOwner.addLand(landDefender);
     moveTanks(landAttacker, landDefender, tanks);
     if (!newOwner.getConqueredLand())
     {
         newOwner.setConqueredLand(true);
     }
 }
        public override void fixGoal(List <RiskPlayer> players, RiskPlayer player, List <Continent> world)
        {
            int index = Random.Range(0, players.Count - 1);

            while (player.getName().Equals(players[index].getName()) || isSameTarget(players, players[index].getName()))
            {
                index = Random.Range(0, players.Count - 1);
            }

            target = players[index].getName();
        }
コード例 #5
0
        public override void fixGoal(List <RiskPlayer> players, RiskPlayer player, List <Continent> world)
        {
            int nLands = 0;

            foreach (Continent continent in world)
            {
                nLands += continent.getLands().Count;
            }

            nTerritoryGoal = nLands * PERCENTAGE / 100;
        }
コード例 #6
0
        public void nextPlayer()
        {
            int index = players.IndexOf(currentPlayer);

            if (index == players.Count - 1)
            {
                currentPlayer = players[0];
            }
            else
            {
                currentPlayer = players[index + 1];
            }
        }
コード例 #7
0
        private RiskPlayer getPlayerByName(string name)
        {
            RiskPlayer searching = null;

            foreach (RiskPlayer player in players)
            {
                if (player.getName().Equals(name))
                {
                    searching = player;
                }
            }
            return(searching);
        }
コード例 #8
0
        public void giveTanks(RiskPlayer player, List <Continent> world)
        {
            int nTanks = player.getTotalLand() / 3;

            foreach (Continent continent in world)
            {
                if (player.hasContinent(continent))
                {
                    nTanks += continent.getBonusTank();
                }
            }

            player.addTanks(nTanks);
        }
コード例 #9
0
        public override void fixGoal(List <RiskPlayer> players, RiskPlayer player, List <Continent> world)
        {
            int index1 = Random.Range(0, world.Count - 1);
            int index2 = Random.Range(0, world.Count - 1);

            while (index1 == index2 || areSameGoal(players, player.getName(), world[index1], world[index2]))
            {
                index1 = Random.Range(0, world.Count - 1);
                index2 = Random.Range(0, world.Count - 1);
            }

            continentsToConquer.Add(world[index1]);
            continentsToConquer.Add(world[index2]);
        }
        public override bool isAccomplished(List <RiskPlayer> players, RiskPlayer player, List <Continent> world)
        {
            foreach (RiskPlayer p in players)
            {
                if (player.getColor().Equals(target))
                {
                    if (player.getTotalLand() == 0)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
            }

            return(false);
        }
コード例 #11
0
 // Assegna al player i tanks in base al tris di carte precedentement selezionate dal player
 public void useCards(RiskPlayer player, List <LandCard> cards, string type, Dealer dealer, int additionalTanks)
 {
     if (type.Equals("Equal"))
     {
         player.addTanks(getTanks(cards[0].getSymbol()) + additionalTanks);
         player.removeLandCard(cards);
         dealer.addCardsToDeck(cards);
     }
     else if (type.Equals("Different"))
     {
         player.addTanks(10 + additionalTanks);
         player.removeLandCard(cards);
         dealer.addCardsToDeck(cards);
     }
     else
     {
         player.addTanks(12 + additionalTanks);
         player.removeLandCard(cards);
         dealer.addCardsToDeck(cards);
     }
 }
コード例 #12
0
        public DataManager(List <RiskPlayer> players, List <Continent> world, List <Land> lands)
        {
            gameManager   = new GameManager();
            this.players  = players;
            this.world    = world;
            currentPlayer = this.players[0];
            currentPhase  = START_DEPLOYMENT;
            dealer        = new Dealer(lands);

            Debug.Log("The killer!");

            gameManager.distributeTanksToPlayers(players);
            dealer.drawCards(players);

            Debug.Log("Gnè!");

            foreach (RiskPlayer player in players)
            {
                dealer.assignGoal(players, player, world);
            }

            Debug.Log("Quello che vuoi");
        }
コード例 #13
0
 public void addTanks(RiskPlayer player, Land land, int nTank)
 {
     player.removeTanks(nTank);
     land.addTanksOnLand(nTank);
 }
コード例 #14
0
 public void startGame()
 {
     currentPhase  = DEPLOYMENT;
     currentPlayer = players[0];
 }
コード例 #15
0
 public abstract bool isAccomplished(List <RiskPlayer> players, RiskPlayer player, List <Continent> world);
コード例 #16
0
 public abstract void fixGoal(List <RiskPlayer> players, RiskPlayer player, List <Continent> world);
コード例 #17
0
 public void setPhaseByMessage(string message)
 {
     string[] info = message.Split(new[] { System.Environment.NewLine }, System.StringSplitOptions.None);
     currentPlayer = getPlayerByName(info[0]);
     currentPhase  = info[1];
 }
コード例 #18
0
 public void setDefendPhase(string landDefender)
 {
     currentPlayer = getPlayerByName(getPlayerByLand(landDefender));
     currentPhase  = DEFEND;
 }
コード例 #19
0
 public void setAttackPhase(string landAttacker)
 {
     currentPlayer = getPlayerByName(getPlayerByLand(landAttacker));
     currentPhase  = ATTACK;
 }