コード例 #1
0
    /*****************ISelectionnable*****************/
    public override void onClick()
    {
        Joueur joueurLocal = JoueurUtils.getJoueurLocal();

        if (null != joueurLocal)
        {
            TourJeuSystem systemTour = TourJeuSystem.getTourSystem();

            //Si un joueur clique sur une carte capable d'attaquer puis sur une carte ennemie cela lance une attaque
            EventTask eventTask = EventTaskUtils.getEventTaskEnCours();
            if (systemTour.getPhase(joueurLocal.netId) == TourJeuSystem.PHASE_ATTAQUE &&
                null != joueurLocal.CarteSelectionne && joueurLocal.CarteSelectionne.JoueurProprietaire != JoueurProprietaire &&
                joueurLocal.CarteSelectionne is IAttaquer && ((IAttaquer)joueurLocal.CarteSelectionne).isCapableAttaquer() &&
                !(null != eventTask && eventTask is EventTaskChoixCible))                     //On ne peut attaquer si choix de defense en cours

            //TODO vérifier l'emplacement sol
            {
                JoueurUtils.getJoueurLocal().CmdCreateTask(joueurLocal.CarteSelectionne.netId, joueurLocal.netId, this.IdISelectionnable, ConstanteIdObjet.ID_CONDITION_ACTION_ATTAQUE, NetworkInstanceId.Invalid, false);
            }
            else
            {
                base.onClick();
            }
        }
        else
        {
            base.onClick();
        }
    }
コード例 #2
0
    public override void onClick()
    {
        GameObject goJoueur = ClientScene.FindLocalObject(this.idJoueurPossesseur);

        if (null != goJoueur)
        {
            Joueur joueur = goJoueur.GetComponent <Joueur> ();

            if (isMovableByPlayer(joueur))
            {
                EventTask eventTask = EventTaskUtils.getEventTaskEnCours();
                if (this.etatSelectionnable == SelectionnableUtils.ETAT_SELECTIONNABLE && null != eventTask && eventTask is EventTaskChoixCible)
                {
                    ((EventTaskChoixCible)eventTask).ListCibleChoisie.Add(this);
                }
                else if (joueur.CarteSelectionne is CarteBatimentMetier || joueur.CarteSelectionne is CarteDefenseMetier || listNomCarteExeption.Contains(joueur.CarteSelectionne.name))
                {
                    if (isCardCostPayable(joueur.RessourceMetal, joueur.CarteSelectionne))
                    {
                        joueur.CmdPayerRessource(joueur.RessourceMetal.TypeRessource, ((CarteConstructionMetierAbstract)joueur.CarteSelectionne).getCoutMetal());
                        joueur.CarteSelectionne.deplacerCarte(this, joueur.netId, NetworkInstanceId.Invalid);
                    }
                }
                else if (joueur.CarteSelectionne is CarteVaisseauMetier)
                {
                    //TODO vaisseau en mode defense
                }
            }
        }
    }
コード例 #3
0
ファイル: RessourceMetier.cs プロジェクト: jdeon/SCGame
    /*******************ISelectionnable****************/
    public void onClick()
    {
        EventTask eventTask = EventTaskUtils.getEventTaskEnCours();

        if (this.etatSelectionne == 1 && null != eventTask && eventTask is EventTaskChoixCible)
        {
            ((EventTaskChoixCible)eventTask).ListCibleChoisie.Add(this);
        }
    }
コード例 #4
0
    /*******************ISelectionnable****************/
    public void onClick()
    {
        //TODO selectionne
        EventTask eventTask = EventTaskUtils.getEventTaskEnCours();

        if (this.etatSelectionnable == SelectionnableUtils.ETAT_SELECTIONNABLE && null != eventTask && eventTask is EventTaskChoixCible)
        {
            ((EventTaskChoixCible)eventTask).ListCibleChoisie.Add(this);
        }
    }
コード例 #5
0
    /*******************ISelectionnable****************/
    public virtual void onClick()
    {
        EventTask eventTask = EventTaskUtils.getEventTaskEnCours();

        if (this.etatSelectionne == 1 && null != eventTask && eventTask is EventTaskChoixCible)
        {
            ((EventTaskChoixCible)eventTask).ListCibleChoisie.Add(this);
        }
        else if (JoueurProprietaire.CarteSelectionne == this)
        {
            JoueurProprietaire.CarteSelectionne = null;                 //On deselectionne au second click
        }
        else
        {
            JoueurProprietaire.CarteSelectionne = this;
        }
    }
コード例 #6
0
ファイル: EventTask.cs プロジェクト: jdeon/SCGame
    protected virtual void launchEventAction()
    {
        NetworkInstanceId netIdParentFuturTask;

        if (!createTaskBrother)
        {
            netIdParentFuturTask = this.netId;
        }
        else if (null != transform.parent && null != transform.parent.gameObject.GetComponent <EventTask> ())
        {
            EventTask taskParent = transform.parent.gameObject.GetComponent <EventTask> ();
            netIdParentFuturTask = taskParent.netId;
        }
        else
        {
            netIdParentFuturTask = NetworkInstanceId.Invalid;
        }

        EventTaskUtils.launchEventAction(this.typeEvent, this.originAction, this.joueur, this.idSelectionnableTarget, netIdParentFuturTask);
        //TODO annimation
        endOfTask();
    }
コード例 #7
0
ファイル: EmplacementAttaque.cs プロジェクト: jdeon/SCGame
    public override void onClick()
    {
        //TODO fonction en cours

        GameObject goJoueur = ClientScene.FindLocalObject(this.idJoueurPossesseur);

        if (null != goJoueur)
        {
            Joueur joueur = goJoueur.GetComponent <Joueur> ();

            if (isMovableByPlayer(joueur))
            {
                EventTask eventTask = EventTaskUtils.getEventTaskEnCours();
                if (this.etatSelectionnable == SelectionnableUtils.ETAT_SELECTIONNABLE && null != eventTask && eventTask is EventTaskChoixCible)
                {
                    ((EventTaskChoixCible)eventTask).ListCibleChoisie.Add(this);
                }
                else if (joueur.CarteSelectionne is CarteVaisseauMetier && ((CarteVaisseauMetier)joueur.CarteSelectionne).isCapableAttaquer() &&
                         joueur.RessourceCarburant.StockWithCapacity >= ((CarteVaisseauMetier)joueur.CarteSelectionne).getConsomationCarburant())
                {
                    joueur.CmdPayerRessource(joueur.RessourceCarburant.TypeRessource, ((CarteVaisseauMetier)joueur.CarteSelectionne).getConsomationCarburant());
                    joueur.CarteSelectionne.deplacerCarte(this, joueur.netId, NetworkInstanceId.Invalid);

                    //TODO doit on mettre tous de suite le bouton (si le déplacement est impossible?
                    BoutonTour boutonJoueur = joueur.GoPlateau.GetComponentInChildren <BoutonTour> ();
                    if (null != boutonJoueur)
                    {
                        boutonJoueur.CmdSetEtatBouton(BoutonTour.enumEtatBouton.attaque);
                    }
                }
                else if (listNomCarteExeption.Contains(joueur.CarteSelectionne.name))
                {
                    //TODO carte en exception
                }
            }
        }
    }
コード例 #8
0
ファイル: EventTask.cs プロジェクト: jdeon/SCGame
 protected virtual void activateTask()
 {
     this.activate = true;
     EventTaskUtils.launchEventCapacity(this.typeEvent, this.originAction, this.joueur, this.idSelectionnableTarget, this.netId);
 }