public Game(string name)
        {
            shaman = new Player(name, 0);         //vanno inizializzati
            opponent = new Player("Opponent", 1); //vanno inizializzati
            comm = Communication.Communicator.getInstance();


        }
        public void OnOpponentDiceResult(int opponentDiceResult) //in questa funzione viene stabilito di chi e' il turno
        {

            this.opponentDiceResult = opponentDiceResult;
            comm = Communication.Communicator.getInstance();
            comm.sendMana(shaman.mana);
            myRound = false;
            if (diceResult == opponentDiceResult)//questa parte andra' ricontrollata il problema era che nn era inizializzato Comm
            {
                ThrowDice();
                comm.game_diceResult(diceResult); //si invia nuovamente il risultato del dado
                if (diceResult > opponentDiceResult)
                {
                    myRound = true;
                    FirstRoundStart();
                }

            }
            else
            {
                if (diceResult > opponentDiceResult)
                {
                    myRound = true;
                }
                FirstRoundStart();
            }

        }
 public void FirstRoundStart()  //viene chiamato solo la prima volta
 {
     //invio i miei dati all'opponent
     comm = Communication.Communicator.getInstance();
     //comm.sendPlayerInfo(shaman);
     comm.setRound(myRound);   //setto il round per la grafica
     comm.sendMana(shaman.mana);  //Primo round invio il mana alla grafica
     if (myRound)
     { 
         Enums.Mana manaTemp = shaman.mana.addRandomMana(); //aggiungo il mana random allo shamano
         comm.sendMana(shaman.mana);  //invio l'update del mana
     }
 }
 public void GetSpiritTarget()
 {
     comm = Communication.Communicator.getInstance();
     comm.GetAllyElementalTarget();
 }
 public void GetPlayerTarget()
 {
     comm = Communication.Communicator.getInstance();
     comm.GetPlayersTarget();
 }
 public void GetAnyTarget()
 {
     comm = Communication.Communicator.getInstance();
     comm.GetAnyTarget();
 }
        public void manaChoosen(Enums.Mana manaParam, Enums.ManaEvent manaEventparam) //mi passa il mana selezionato
        {
            if (manaEventparam == Enums.ManaEvent.NewRound)
            {
                comm = Communication.Communicator.getInstance();
                shaman.mana.incMana(manaParam);    //se ha raggiunto il mana max non viene aggiunto il mana
                comm.SendOpponentManaChosen(manaParam); //invio il mana scelto all'avversario
                comm.sendMana(shaman.mana);  //invio l'update del mana
                Enums.Mana manaTemp = shaman.mana.addRandomMana(); //aggiungo il mana random allo shamano
                comm.sendMana(shaman.mana);  //invio l'update del mana

                //Aggiungo il mana delle polle
                shaman.mana.addManaPool();
                comm.sendMana(shaman.mana);  //invio l'update del mana
                                             //Ricordati che ho fatto 3 send mana invece di uno perche' cosi' possiamo fare 3 animazioni distinte in base al mana che viene aggiunto
            }

            if (manaEventparam == Enums.ManaEvent.AddMana)
            {
                comm = Communication.Communicator.getInstance();
                MicroActionsProcessor.microactionParams.Add("Mana", manaParam.ToString());
                char separator = '.';
                string[] splitted = MicroActionsProcessor.microactions[MicroActionsProcessor.index].ToUpper().Split(separator);
                string MicroActionName = splitted[0];
                // qui chiama la MicroAzione e aggiorna i bersagli.

                MicroActions.table[MicroActionName](MicroActionsProcessor.microactionParams); // CHIAMATA

                comm.sendMana(shaman.mana);
                comm.SendOpponentManaChosen(manaParam);// player si aggiorna.

                MicroActionsProcessor.microactions.RemoveAt(MicroActionsProcessor.index); // svuota la posizione [0] di tutte le liste.

                MicroActionsProcessor.targets.RemoveAt(MicroActionsProcessor.index);

                MicroActionsProcessor.microactionParams.Clear();

                MicroActionsProcessor.AcquireMicroactionsParams(); //callback a AcquireMicroactionsParam.
            }
        }
        public void StartTourn()
        {
            comm = Communication.Communicator.getInstance();
            myRound = true;
            shaman.mana.setPoolFlag(false);
            if (shaman.cardsOnBoard != null)
                if (shaman.cardsOnBoard.Count != 0)
                {
                    foreach (Elemental elemTemp in shaman.cardsOnBoard)
                        if (elemTemp.type == Enums.Type.Elemental)
                        {
                            elemTemp.hasAttacked = false;
                            elemTemp.hasAttackedThunderborn = false;
                            elemTemp.hasWeakness = false;
                        }
                    foreach (Card cardTemp in shaman.cardsOnBoard)
                        cardTemp.CanUsePowers = true;
                }
            
            PowersCooldowns(); // scala clock poteri.

            if (opponent.cardsOnBoard != null)
                if (opponent.cardsOnBoard.Count != 0)
                    foreach (Elemental elemTemp in opponent.cardsOnBoard) // poison scalato.
                        if (elemTemp.debuff.Contains(Enums.Debuff.Poison))
                        {
                            foreach (Enums.Debuff deBuff in elemTemp.debuff)
                                elemTemp.hp -= 1;
                            comm.UpdateElemental(elemTemp);
                        }




            comm.setRound(myRound);//invio la chiamata in locale
            comm.ChoseMana(Enums.ManaEvent.NewRound); //Chiedo di selezionare il mana che prendo in manaAtStart
        }
 public void EndTourn() //viene chiamato quando shaman passa il turno
 {
     comm = Communication.Communicator.getInstance();
     myRound = false;
     comm.setRound(myRound);
     comm.EndRound(); //chiamata per cambiare il round
 }
Esempio n. 10
0
        public void manaChoosen(Enums.Mana manaParam,Enums.ManaEvent manaEventparam) //mi passa il mana selezionato
        {
            if (manaEventparam == Enums.ManaEvent.NewRound)
            {
                comm = Communication.Communicator.getInstance();
                shaman.mana.incMana(manaParam);    //se ha raggiunto il mana max non viene aggiunto il mana
                comm.SendOpponentManaChosen(manaParam); //invio il mana scelto all'avversario
                comm.sendMana(shaman.mana);  //invio l'update del mana
                Enums.Mana manaTemp = shaman.mana.addRandomMana(); //aggiungo il mana random allo shamano
                comm.sendMana(shaman.mana);  //invio l'update del mana

                //Aggiungo il mana delle polle
                shaman.mana.addManaPool();
                comm.sendMana(shaman.mana);  //invio l'update del mana
                                             //Ricordati che ho fatto 3 send mana invece di uno perche' cosi' possiamo fare 3 animazioni distinte in base al mana che viene aggiunto
            }
        }
Esempio n. 11
0
 public void StartTourn()
 {
     comm = Communication.Communicator.getInstance();
     myRound = true;
     shaman.mana.setPoolFlag(false);
     if (shaman.cardsOnBoard != null)
         if (shaman.cardsOnBoard.Count != 0)
             foreach (Elemental elemTemp in shaman.cardsOnBoard)
                 if (elemTemp.type == Enums.Type.Elemental)
                 {
                     elemTemp.hasAttacked = false;
                     elemTemp.hasAttackedThunderborn = false;
                     elemTemp.hasWeakness = false;
                 }
                     
     comm.setRound(myRound);//invio la chiamata in locale
     comm.ChoseMana(Enums.ManaEvent.NewRound); //Chiedo di selezionare il mana che prendo in manaAtStart
 }