Example #1
0
    public void CmdPoseCarte(NetworkInstanceId netIdJoueur, NetworkInstanceId netIdCarteSource, int idSelectionnableCible, NetworkInstanceId netIdTaskEvent)
    {
        CarteMetierAbstract carteOrigineAction = ConvertUtils.convertNetIdToScript <CarteMetierAbstract> (netIdCarteSource, false);
        ISelectionnable     cible = SelectionnableUtils.getSelectiobleById(idSelectionnableCible);

        if (null != carteOrigineAction)
        {
            if (carteOrigineAction is CarteConstructionMetierAbstract)
            {
                if (null != onPoseConstruction)
                {
                    onPoseConstruction(netIdJoueur, carteOrigineAction, cible, netIdTaskEvent);
                }
            }

            //TODO carteAmeliration

            /*if (carteOrigineAction is CarteAmeliorationMetier && null != onPoseConstruction) {
             * onPoseConstruction (netIdJoueur);
             * }*/
            /*
             * if (null != onInvocation) {
             *      //TODO carteInvoque?
             *      onInvocation (netIdJoueur, carteOrigineAction, cible);
             * }*/
        }
    }
Example #2
0
    public void CmdGenerateCardAlreadyLaid(NetworkInstanceId networkIdJoueur)
    {
        Debug.Log("Begin CmdGenerateCardAlreadyLaid");
        CarteMetierAbstract[] listeCarteDejaPose = GameObject.FindObjectsOfType <CarteMetierAbstract> ();

        if (null != listeCarteDejaPose)
        {
            for (int index = 0; index < listeCarteDejaPose.Length; index++)
            {
                CarteMetierAbstract carteDejaPosee = listeCarteDejaPose [index];
                if (null != carteDejaPosee)
                {
                    //carteDejaPosee.generateGOCard ();

                    if (carteDejaPosee is CartePlaneteMetier)                      //pas besoin de serialisation pour les planete
                    {
                        RpcGeneratePlanete(carteDejaPosee.gameObject, networkIdJoueur);
                    }
                    else if (carteDejaPosee is CarteConstructionMetierAbstract)
                    {
                        byte[] carteRefData = SerializeUtils.SerializeToByteArray(carteDejaPosee.getCarteDTORef());
                        ((CarteConstructionMetierAbstract)carteDejaPosee).RpcGenerate(carteRefData, networkIdJoueur);
                    }
                    else
                    {
                        //TODO carteAmeliration
                    }
                }
            }
        }

        Debug.Log("End CmdGenerateCardAlreadyLaid");
    }
Example #3
0
 public void putCard(CarteMetierAbstract carte)
 {
     if (null != carte && null != carte.JoueurProprietaire && carte.JoueurProprietaire.isLocalPlayer)
     {
         //TODO ajout de module ou changer héros?
     }
 }
Example #4
0
    /**
     * carteCibleCapacite : Carte vers laquelle la capacite va aller
     * capaciteImmediate : capacite applicable immediatement
     * carteOrigine : carte d'ou provient la capacite
     * carteCibleAction : carte cibler lors de l'appel de l'event
     * */
    private static void traitementCapaciteImmediateCarte(CarteMetierAbstract carteCibleCapacite, CapaciteDTO capaciteReference, Joueur joueur, NetworkInstanceId netIdTaskEvent)
    {
        if (capaciteReference.Capacite == ConstanteIdObjet.ID_CAPACITE_MODIF_EMPLACEMENT_CARTE)
        {
            //TODO
        }
        else if (capaciteReference.Capacite == ConstanteIdObjet.ID_CAPACITE_VOLE_CARTE)
        {
            //TODO Definir le conteneur mains, deck, emplacement
            carteCibleCapacite.deplacerCarte(joueur.Main, joueur.netId, netIdTaskEvent);
        }
        else if (capaciteReference.Capacite == ConstanteIdObjet.ID_CAPACITE_DESTRUCTION_CARTE)
        {
            //TODO que faire si pas IVulnerable?
            if (carteCibleCapacite is IVulnerable)
            {
                ((IVulnerable)carteCibleCapacite).destruction(netIdTaskEvent);
            }
        }
        else if (capaciteReference.Capacite == ConstanteIdObjet.ID_CAPACITE_INVOQUE_CARTE && null != capaciteReference.CarteInvocation)
        {
            GameObject carteGO = CarteUtils.convertCarteDTOToGameobject(capaciteReference.CarteInvocation, true);

            //TODO ne prends pas en compte l'emplacement cible ou l invocation chez l ennemie
            CarteUtils.invoquerCarteServer(carteGO, capaciteReference.NiveauInvocation, joueur.Main, joueur);
        }
        else if (capaciteReference.Capacite == ConstanteIdObjet.ID_CAPACITE_REVELE_CARTE)
        {
            //TODO RPC carteCibleCapacite.generateVisualCard ();
        }
    }
Example #5
0
    public static void callCapacite(CarteMetierAbstract carteSourceCapacite, CarteMetierAbstract carteSourceAction, ISelectionnable cible, CapaciteDTO capaciteSource, NetworkInstanceId netIdJoueur, int actionAppelante, NetworkInstanceId netIdEventTaskAction)
    {
        SelectionCiblesExecutionCapacite selectionCiblesResult = getCiblesOfCapacity(carteSourceCapacite, carteSourceAction, cible, capaciteSource, netIdJoueur, actionAppelante);
        int idSelection = null != cible ? cible.IdISelectionnable : -1;

        ActionEventManager.EventActionManager.createTaskChooseTarget(selectionCiblesResult, carteSourceAction.netId, netIdJoueur, idSelection, actionAppelante, netIdEventTaskAction);
    }
Example #6
0
    private static SelectionCiblesExecutionCapacite getCiblesOfCapacity(CarteMetierAbstract carteSourceCapacite, CarteMetierAbstract carteSourceAction, ISelectionnable cible, CapaciteDTO capaciteSource, NetworkInstanceId netIdJoueur, int actionAppelante)
    {
        SelectionCiblesExecutionCapacite selectionCiblesResult;

        CapaciteDTO capacite = capaciteSource.Clone();

        if (capacite.Capacite == ConstanteIdObjet.ID_CAPACITE_ACTION_HASARD)
        {
            capacite.Capacite = Random.Range(1, 40);
        }


        if (ConditionCarteUtils.listIdCapacitePourCarte.Contains(capacite.Capacite) && (null == cible || cible is CarteMetierAbstract))
        {
            List <CarteMetierAbstract> cartesCible = getCartesCible(carteSourceCapacite, (CarteMetierAbstract)cible, capacite, netIdJoueur);
            //TODO use ConstanteIdObjet.ID_CAPACITE_CONDITION
            selectionCiblesResult = new SelectionCiblesExecutionCapacite(capacite, carteSourceCapacite, actionAppelante);

            foreach (CarteMetierAbstract cibleProbable in cartesCible)
            {
                selectionCiblesResult.ListIdCiblesProbables.Add(cibleProbable.IdISelectionnable);
            }
        }
        else
        {
            selectionCiblesResult = findCiblesHorsCarte(capacite, carteSourceCapacite, carteSourceAction, netIdJoueur, NetworkInstanceId.Invalid /*TODO cible.netIdJoueurCible*/, actionAppelante);
        }

        return(selectionCiblesResult);
    }
Example #7
0
    public void putCard(CarteMetierAbstract carteAdded)
    {
        //CarteMetierAbstract carteAdded = ConvertUtils.convertNetIdToScript<CarteMetierAbstract> (netIdcarteAdded, true);
        if (null != carteAdded && null != carteAdded.JoueurProprietaire && carteAdded.JoueurProprietaire.isLocalPlayer)
        {
            carteEnMains.Add(carteAdded);
            carteAdded.transform.parent = transform;

            carteAdded.CmdChangeParent(netIdJoueurPossesseur, JoueurUtils.getPathJoueur(this));

            int nbCarteEnMains = transform.childCount;

            Vector3 position = Vector3.zero;
            if (carteAdded is CarteConstructionMetierAbstract)
            {
                //On ajoute a gauche
                position.x = (nbCarteEnMains - .5f) /* * carteAdded.transform.localScale.x*/;
            }
            else if (carteAdded is CarteMetierAbstract)
            {
                //TODO nbCarte ne doit compter separement les ameliration et les construction
                position.x = -(nbCarteEnMains - .5f) /* * carteAdded.transform.localScale.x*/;
            }

            carteAdded.transform.localPosition = position;
            carteAdded.transform.Rotate(new Vector3(-60, 0) + transform.rotation.eulerAngles);
        }
    }
Example #8
0
    public static void invoquerCarteServer(GameObject carteAInvoquer, int niveauInvocation, IConteneurCarte emplacementCible, Joueur joueurPossesseur)
    {
        NetworkServer.Spawn(carteAInvoquer);

        CarteMetierAbstract carteScript = carteAInvoquer.GetComponent <CarteMetierAbstract> ();

        if (carteScript is CarteConstructionMetierAbstract)
        {
            ((CarteConstructionMetierAbstract)carteScript).NiveauActuel = niveauInvocation;
        }

        if (joueurPossesseur.isServer)
        {
            EmplacementUtils.putCardFromServer(emplacementCible, carteScript);
        }
        else
        {
            emplacementCible.putCard(carteScript);
        }

        NetworkUtils.assignObjectToPlayer(carteScript.GetComponent <NetworkIdentity> (), joueurPossesseur.GetComponent <NetworkIdentity> (), .2f);
        byte[] carteRefData = SerializeUtils.SerializeToByteArray(carteScript.getCarteDTORef());


        if (carteScript is CarteConstructionMetierAbstract)
        {
            ((CarteConstructionMetierAbstract)carteScript).RpcGenerate(carteRefData, NetworkInstanceId.Invalid);
        }         //TODO carte amelioration
    }
    /***********************IVulnerable*****************/

    //Retourne PV restant
    public void recevoirAttaque(CarteMetierAbstract sourceDegat, NetworkInstanceId netdTaskEvent, bool attaqueSimultane)
    {
        bool invulnerable = 0 < CapaciteUtils.valeurAvecCapacite(0, listEffetCapacite, ConstanteIdObjet.ID_CAPACITE_ETAT_INVULNERABLE);

        if (!invulnerable)           //TODO calcul degat
        {
            JoueurUtils.getJoueurLocal().CmdCreateTask(this.netId, this.idJoueurProprietaire, sourceDegat.IdISelectionnable, ConstanteIdObjet.ID_CONDITION_ACTION_RECOIT_DEGAT, netdTaskEvent, attaqueSimultane);
        }
    }
Example #10
0
    public void RpcPutCardInHand(NetworkInstanceId netIdCarte)
    {
        CarteMetierAbstract carte = ConvertUtils.convertNetIdToScript <CarteMetierAbstract> (netIdCarte, true);

        if (null != main)
        {
            main.putCard(carte);
        }
    }
Example #11
0
    public void CmdPiocheAmelioration(NetworkInstanceId netIdJoueur, NetworkInstanceId netIdCarteSource, int idSelectionnableCible, NetworkInstanceId netIdTaskEvent)
    {
        CarteMetierAbstract carteOrigineAction = ConvertUtils.convertNetIdToScript <CarteMetierAbstract> (netIdCarteSource, false);
        ISelectionnable     cible = SelectionnableUtils.getSelectiobleById(idSelectionnableCible);

        if (null != onPiocheAmelioration)
        {
            onPiocheAmelioration(netIdJoueur, carteOrigineAction, cible, netIdTaskEvent);
        }
    }
Example #12
0
    public bool isCardCostPayable(RessourceMetier ressourceMetal, CarteMetierAbstract carteSelectionne)
    {
        bool costPayable = false;

        if (null != ressourceMetal && carteSelectionne is CarteConstructionMetierAbstract && ressourceMetal.StockWithCapacity >= ((CarteConstructionMetierAbstract)carteSelectionne).getCoutMetal())
        {
            costPayable = true;
        }

        return(costPayable);
    }
    public void useRecoitDegatCapacity(NetworkInstanceId netIdJoueur, CarteMetierAbstract carteSourceAction, ISelectionnable cible, NetworkInstanceId netIdTaskEvent)
    {
        if (this.getConteneur() is EmplacementMetierAbstract)
        {
            List <CapaciteDTO> capaciteDegatRecu = getListCapaciteToCall(netIdJoueur, carteSourceAction.netId, ConstanteIdObjet.ID_CONDITION_ACTION_RECOIT_DEGAT);

            foreach (CapaciteDTO capacite in capaciteDegatRecu)
            {
                CapaciteUtils.callCapacite(this, carteSourceAction, cible, capacite, netIdJoueur, ConstanteIdObjet.ID_CONDITION_ACTION_RECOIT_DEGAT, netIdTaskEvent);
            }
        }
    }
Example #14
0
    public int recevoirDegat(int nbDegat, CarteMetierAbstract sourceDegat, NetworkInstanceId netIdEventTask)
    {
        if (null != sourceDegat && (!(sourceDegat is CarteConstructionMetierAbstract) || ((CarteConstructionMetierAbstract)sourceDegat).OnBoard))
        {
            pointVie -= nbDegat;

            if (pointVie <= 0)
            {
                JoueurUtils.getJoueurLocal().CmdCreateTask(this.netId, this.idJoueurProprietaire, sourceDegat.IdISelectionnable, ConstanteIdObjet.ID_CONDITION_ACTION_DESTRUCTION_CARTE, netIdEventTask, false);
            }
        }
        return(pointVie);
    }
    public void usePoseConstructionCapacity(NetworkInstanceId netIdJoueur, CarteMetierAbstract carteSourceAction, ISelectionnable cible, NetworkInstanceId netIdTaskEvent)
    {
        if (CarteUtils.checkCarteActive(this) &&
            (this.getConteneur() is EmplacementMetierAbstract || carteSourceAction.netId == this.netId))
        {
            List <CapaciteDTO> capacitePoseConstruction = getListCapaciteToCall(netIdJoueur, carteSourceAction.netId, ConstanteIdObjet.ID_CONDITION_ACTION_POSE_CONSTRUCTION);

            foreach (CapaciteDTO capacite in capacitePoseConstruction)
            {
                CapaciteUtils.callCapacite(this, carteSourceAction, cible, capacite, netIdJoueur, ConstanteIdObjet.ID_CONDITION_ACTION_POSE_CONSTRUCTION, netIdTaskEvent);
            }
        }
    }
Example #16
0
    public void CmdSyncIdSelectionnableCarte(NetworkInstanceId netIdCarte)
    {
        CarteMetierAbstract carte = ConvertUtils.convertNetIdToScript <CarteMetierAbstract> (netIdCarte, false);

        if (null != carte)
        {
            if (null == carte.IdISelectionnable || carte.IdISelectionnable <= 0)
            {
                carte.initIdSelection();
            }

            carte.RpcInitIdSelectionnable(carte.IdISelectionnable);
        }
    }
Example #17
0
    public void putCard(CarteMetierAbstract carte)
    {
        if (null != carte && null != carte.JoueurProprietaire && carte.JoueurProprietaire.isLocalPlayer)
        {
            //TODO ungenerated card on client

            Transform trfmCard = carte.transform;
            trfmCard.parent = transform;

            //TODO délpacer à un index au hasard
            carte.CmdChangeParent(this.NetIdJoueurPossesseur, JoueurUtils.getPathJoueur(this));

            carte.JoueurProprietaire.CarteSelectionne = null;
        }
    }
    //Retourne PV restant
    public int recevoirDegat(int nbDegat, CarteMetierAbstract sourceDegat, NetworkInstanceId netdTaskEvent)
    {
        bool invulnerable = 0 < CapaciteUtils.valeurAvecCapacite(0, listEffetCapacite, ConstanteIdObjet.ID_CAPACITE_ETAT_INVULNERABLE);

        if (!invulnerable && nbDegat > 0)
        {
            PV -= nbDegat;
            if (PV <= 0)
            {
                JoueurUtils.getJoueurLocal().CmdCreateTask(this.netId, this.idJoueurProprietaire, sourceDegat.IdISelectionnable, ConstanteIdObjet.ID_CONDITION_ACTION_DESTRUCTION_CARTE, netdTaskEvent, false);
            }
        }

        return(PV);
    }
Example #19
0
    //Constructeur pour le choix de cible sans capacite
    public SelectionCiblesExecutionCapacite(int nbCibleMax, CarteMetierAbstract carteSource, int idActionAppelante)
    {
        this.idTypeCapacite   = -1;
        this.idCapaciteSource = -1;
        this.libelleCapacite  = "Action type" + idActionAppelante;        // TODO rajouter fonction descriptive de action
        this.choixManuelle    = true;
        this.nbChoixCible     = nbCibleMax;

        this.idActionAppelante     = idActionAppelante;
        this.idCarteSource         = carteSource.netId;
        this.idJoueurCarteSource   = carteSource.JoueurProprietaire.netId;
        this.listIdCiblesProbables = new List <int> ();

        this.listIdRessouceCible = null;
    }
Example #20
0
 public void putCard(CarteMetierAbstract cartePoser, bool isNewCard, NetworkInstanceId netIdTaskEvent)
 {
     //Si c'est une nouvelle carte, on lance les capacités pour les cartes posées
     if (isNewCard)
     {
         JoueurUtils.getJoueurLocal().CmdCreateTask(cartePoser.netId, cartePoser.JoueurProprietaire.netId, this.IdISelectionnable, ConstanteIdObjet.ID_CONDITION_ACTION_POSE_CONSTRUCTION, netIdTaskEvent, false);
     }
     else if (this is EmplacementAttaque)
     {
         JoueurUtils.getJoueurLocal().CmdCreateTask(cartePoser.netId, cartePoser.JoueurProprietaire.netId, this.IdISelectionnable, ConstanteIdObjet.ID_CONDITION_ACTION_DEPLACEMENT_LIGNE_ATTAQUE, netIdTaskEvent, false);
     }
     else
     {
         JoueurUtils.getJoueurLocal().CmdCreateTask(cartePoser.netId, cartePoser.JoueurProprietaire.netId, this.IdISelectionnable, ConstanteIdObjet.ID_CONDITION_ACTION_DEPLACEMENT_STANDART, netIdTaskEvent, false);
     }
 }
Example #21
0
    private static List <CarteMetierAbstract> getCartesCible(CarteMetierAbstract carteOrigin, CarteMetierAbstract carteCible, CapaciteDTO capacite, NetworkInstanceId netIdJoueur)
    {
        List <CarteMetierAbstract> listCartesCible = new List <CarteMetierAbstract> ();

        List <IConteneurCarte> listEmplacementsCible = new List <IConteneurCarte> ();

        foreach (string conditionEmplacement in capacite.ConditionsEmplacement)
        {
            string[] tabConditionEmplacement = conditionEmplacement.Split(char.Parse("-"));
            if (tabConditionEmplacement.Length >= 2)
            {
                int idEmplacement = int.Parse(tabConditionEmplacement [0]);

                listEmplacementsCible.AddRange(ConditionEmplacementUtils.getMethodeEmplacement(idEmplacement, tabConditionEmplacement[1], carteOrigin.getConteneur(), carteCible, netIdJoueur));
            }
        }

        //TODO si capacite a cible pas besoin de faire la suite
        foreach (string conditionCible in capacite.ConditionsCible)
        {
            string[] tabConditionCible = conditionCible.Split(char.Parse("-"));
            if (tabConditionCible.Length >= 2)
            {
                int idCible = int.Parse(tabConditionCible [0]);
                List <CarteMetierAbstract> listCartesCibleProbable = ConditionCarteUtils.getMethodeCarteCible(idCible, tabConditionCible[1], listEmplacementsCible, carteOrigin, netIdJoueur);

                if (capacite.AppelUnique)
                {
                    foreach (CarteMetierAbstract carteProbable in listCartesCibleProbable)
                    {
                        //On vérifie que la carte ne possède pas déjà l'effet
                        if (!carteProbable.containCapacityWithId(capacite.Id))
                        {
                            listCartesCible.Add(carteProbable);
                        }
                    }
                }
                else
                {
                    listCartesCible.AddRange(listCartesCibleProbable);
                }
            }
        }

        return(listCartesCible);
    }
Example #22
0
    public void defenseSimultanee(CarteVaisseauMetier vaisseauAttaquant, NetworkInstanceId netIdTaskEvent)
    {
        bool attaqueEvite = 0 < CapaciteUtils.valeurAvecCapacite(0, listEffetCapacite, ConstanteIdObjet.ID_CAPACITE_EVITE_ATTAQUE);

        if (!attaqueEvite)
        {
            bool attaqueReoriente = 0 < CapaciteUtils.valeurAvecCapacite(0, listEffetCapacite, ConstanteIdObjet.ID_CAPACITE_REORIENTE_ATTAQUE);
            if (attaqueReoriente)
            {
                List <CarteMetierAbstract> listCartes = CarteUtils.getListCarteCibleReorientation(vaisseauAttaquant, this);
                CarteMetierAbstract        cible      = listCartes [Random.Range(0, listCartes.Count)];

                if (cible is CarteConstructionMetierAbstract)
                {
                    vaisseauAttaquant.attaqueCarte((CarteConstructionMetierAbstract)cible, netIdTaskEvent);
                }
                else if (cible is CartePlaneteMetier)
                {
                    vaisseauAttaquant.attaquePlanete((CartePlaneteMetier)cible, netIdTaskEvent);
                }
            }
            else
            {
                bool attaquePriorite = 0 < CapaciteUtils.valeurAvecCapacite(0, listEffetCapacite, ConstanteIdObjet.ID_CAPACITE_ATTAQUE_OPPORTUNITE);
                int  degatInfliger   = getPointDegat();
                int  degatRecu       = vaisseauAttaquant.getPointDegat();

                if (attaquePriorite)
                {
                    this.recevoirAttaque(vaisseauAttaquant, netIdTaskEvent, false);

                    if (this.PV > 0)
                    {
                        vaisseauAttaquant.recevoirAttaque(this, netIdTaskEvent, false);
                    }
                }
                else
                {
                    vaisseauAttaquant.recevoirAttaque(this, netIdTaskEvent, true);
                    this.recevoirAttaque(vaisseauAttaquant, netIdTaskEvent, true);
                }
            }
        }
    }
Example #23
0
    /***************************Methode IAttaquer*************************/

    public void attaqueCarte(CarteConstructionMetierAbstract cible, NetworkInstanceId netIdEventTask)
    {
        bool attaqueReoriente = 0 < CapaciteUtils.valeurAvecCapacite(0, listEffetCapacite, ConstanteIdObjet.ID_CAPACITE_REORIENTE_ATTAQUE);
        bool attaqueEvite     = 0 < CapaciteUtils.valeurAvecCapacite(0, listEffetCapacite, ConstanteIdObjet.ID_CAPACITE_EVITE_ATTAQUE);

        if (!attaqueEvite)
        {
            if (attaqueReoriente && netIdEventTask == NetworkInstanceId.Invalid)               //Si netIdEventTask est invalid alors ce n'est pas une action appeler diretement mais une action rappelé par
            {
                List <CarteMetierAbstract> listCartes     = CarteUtils.getListCarteCibleReorientation(this, cible);
                CarteMetierAbstract        cibleReoriente = listCartes [Random.Range(0, listCartes.Count)];

                if (cibleReoriente is CartePlaneteMetier)
                {
                    attaquePlanete((CartePlaneteMetier)cibleReoriente, netIdEventTask);
                }
                else if (cibleReoriente is CarteConstructionMetierAbstract)
                {
                    cible = (CarteConstructionMetierAbstract)cibleReoriente;
                }
            }

            if (cible is IDefendre)
            {
                JoueurUtils.getJoueurLocal().CmdCreateTask(cible.netId, JoueurProprietaire.netId, this.IdISelectionnable, ConstanteIdObjet.ID_CONDITION_ACTION_DEFEND, netIdEventTask, false);
                AttaqueCeTour = true;
            }
            else if (cible is IVulnerable)
            {
                ((IVulnerable)cible).recevoirAttaque(this, netIdEventTask, false);

                AttaqueCeTour = true;
            }
        }
        else
        {
            //TODO anim evite
        }

        if (!isCapableAttaquer())
        {
            this.JoueurProprietaire.CarteSelectionne = null;
        }
    }
Example #24
0
    private static string getTypeCard(CarteMetierAbstract carteTest)
    {
        string result = "";

        if (carteTest is CarteBatimentMetier)
        {
            result = ConstanteInGame.strBatiment;
        }
        else if (carteTest is CarteDefenseMetier)
        {
            result = ConstanteInGame.strDefense;
        }
        else if (carteTest is CarteVaisseauMetier)
        {
            result = ConstanteInGame.strVaisseau;
        }

        return(result);
    }
Example #25
0
    public void removeCarte(CarteMetierAbstract carteToRemove)
    {
        carteEnMains.Remove(carteToRemove);

        float position = carteToRemove.transform.position.x;

        foreach (CarteMetierAbstract carte in carteEnMains)
        {
            float positionxCarte = carte.transform.position.x;
            if (position > 0 && positionxCarte > position)
            {
                carte.transform.position = new Vector3(positionxCarte - 1f, carte.transform.position.y, carte.transform.position.z);
            }
            else if (position < 0 && positionxCarte < position)
            {
                carte.transform.position = new Vector3(positionxCarte + 1f, carte.transform.position.y, carte.transform.position.z);
            }
        }
    }
Example #26
0
 public static void putCardFromServer(IConteneurCarte emplacementCible, CarteMetierAbstract carteDeplacer)
 {
     if (emplacementCible is EmplacementMetierAbstract)
     {
         ((EmplacementMetierAbstract)emplacementCible).RpcPutCard(carteDeplacer.netId);
     }
     else if (emplacementCible is Mains)
     {
         Joueur joueur = JoueurUtils.getJoueur(((Mains)emplacementCible).NetIdJoueur);
         joueur.RpcPutCardInHand(carteDeplacer.netId);
     }
     else if (emplacementCible is DeckMetierAbstract)
     {
         ((DeckMetierAbstract)emplacementCible).RpcPutCard(carteDeplacer.netId);
     }
     else if (emplacementCible is CartePlaneteMetier)
     {
         ((CartePlaneteMetier)emplacementCible).RpcPutCard(carteDeplacer.netId);
     }
 }
Example #27
0
    //CARTE INVOQUER
    //Niv CARTE INVOQUER

    public SelectionCiblesExecutionCapacite(CapaciteDTO capacite, CarteMetierAbstract carteSource, int idActionAppelante)
    {
        this.idTypeCapacite  = capacite.Capacite;
        this.libelleCapacite = capacite.Nom;         // TODO rajouter fonction descriptive de action
        this.choixManuelle   = capacite.ChoixCible;
        this.nbChoixCible    = capacite.NbCible;

        int newIdCapacityInUse = ActionEventManager.sequenceCapacityInUse++;

        this.idCapaciteSource = newIdCapacityInUse;
        ActionEventManager.capacityInUse.Add(newIdCapacityInUse, capacite.Clone());

        //this.capaciteBase = capacite.Clone ();
        this.idActionAppelante     = idActionAppelante;
        this.idCarteSource         = carteSource.netId;
        this.idJoueurCarteSource   = carteSource.JoueurProprietaire.netId;
        this.listIdCiblesProbables = new List <int> ();

        this.listIdRessouceCible = null;
    }
    public void useDeplacementCapacity(NetworkInstanceId netIdJoueur, CarteMetierAbstract carteSourceAction, ISelectionnable cible, NetworkInstanceId netIdTaskEvent)
    {
        if (cible is EmplacementAttaque && this.getConteneur() is EmplacementMetierAbstract)
        {
            List <CapaciteDTO> capaciteDeplacementAttaque = getListCapaciteToCall(netIdJoueur, carteSourceAction.netId, ConstanteIdObjet.ID_CONDITION_ACTION_DEPLACEMENT_LIGNE_ATTAQUE);

            foreach (CapaciteDTO capacite in capaciteDeplacementAttaque)
            {
                CapaciteUtils.callCapacite(this, carteSourceAction, cible, capacite, netIdJoueur, ConstanteIdObjet.ID_CONDITION_ACTION_DEPLACEMENT_LIGNE_ATTAQUE, netIdTaskEvent);
            }
        }
        else if (cible is EmplacementMetierAbstract)
        {
            List <CapaciteDTO> capaciteDeplacementAttaque = getListCapaciteToCall(netIdJoueur, carteSourceAction.netId, ConstanteIdObjet.ID_CONDITION_ACTION_DEPLACEMENT_STANDART);

            foreach (CapaciteDTO capacite in capaciteDeplacementAttaque)
            {
                CapaciteUtils.callCapacite(this, carteSourceAction, cible, capacite, netIdJoueur, ConstanteIdObjet.ID_CONDITION_ACTION_DEPLACEMENT_STANDART, netIdTaskEvent);
            }
        }
    }
Example #29
0
    public static List <CarteConstructionMetierAbstract> getListCarteCapableDefendrePlanete(Joueur joueurPlanete)
    {
        List <CarteConstructionMetierAbstract> listeDefenseur = new List <CarteConstructionMetierAbstract> ();

        List <EmplacementSolMetier> listEmplacementSolJoueur = EmplacementUtils.getListEmplacementOccuperJoueur <EmplacementSolMetier> (joueurPlanete.netId);

        foreach (EmplacementSolMetier emplacementSolJoueur in listEmplacementSolJoueur)
        {
            List <CarteMetierAbstract> listCarteContenu = emplacementSolJoueur.getCartesContenu();
            if (null != listCarteContenu && listCarteContenu.Count > 0)
            {
                CarteMetierAbstract carteContenue = listCarteContenu [0];
                if (null != carteContenue && carteContenue is IDefendre && ((IDefendre)carteContenue).isCapableDefendre() && carteContenue is CarteConstructionMetierAbstract)
                {
                    listeDefenseur.Add((CarteConstructionMetierAbstract)carteContenue);
                }
            }
        }

        return(listeDefenseur);
    }
Example #30
0
    public static List <CarteConstructionMetierAbstract> getListCarteCapableAttaque(NetworkInstanceId netIdJoueurAttaque)
    {
        List <CarteConstructionMetierAbstract> listeAttaque = new List <CarteConstructionMetierAbstract> ();

        List <EmplacementAttaque> listEmplacementAttaqueJoueur = EmplacementUtils.getListEmplacementOccuperJoueur <EmplacementAttaque> (netIdJoueurAttaque);

        foreach (EmplacementAttaque emplacementAttaqueJoueur in listEmplacementAttaqueJoueur)
        {
            List <CarteMetierAbstract> listCarteContenu = emplacementAttaqueJoueur.getCartesContenu();
            if (null != listCarteContenu && listCarteContenu.Count > 0)
            {
                CarteMetierAbstract carteContenue = listCarteContenu [0];
                if (null != carteContenue && carteContenue is IAttaquer && ((IAttaquer)carteContenue).isCapableAttaquer() && carteContenue is CarteConstructionMetierAbstract)
                {
                    listeAttaque.Add((CarteConstructionMetierAbstract)carteContenue);
                }
            }
        }

        return(listeAttaque);
    }