示例#1
0
    // ************* //
    // ** Trigger ** //
    // ************* //

    void OnTriggerEnter2D(Collider2D col)
    {
        if (col.tag == "Personnage")
        {
            if (col.gameObject.GetComponent <PersoData>().persoCase != thisCase)
            {
                TransparencyBehaviour.CheckTransparency(col.gameObject, 1f);
                personnageData  = col.gameObject.GetComponent <PersoData>();
                casePathfinding = PathfindingCase.NonWalkable;
                col.gameObject.GetComponent <PersoData>().persoCase = thisCase;
                TransparencyBehaviour.CheckTransparency(col.gameObject, 0.5f);
            }
        }

        if (col.tag == "Ballon")
        {
            if (col.gameObject.GetComponent <BallonData> ().ballonCase != thisCase)
            {
                TransparencyBehaviour.CheckTransparency(col.gameObject, 1f);
                ballon          = col.gameObject.GetComponent <BallonData>();
                casePathfinding = PathfindingCase.NonWalkable;
                col.gameObject.GetComponent <BallonData>().ballonCase = thisCase;
                TransparencyBehaviour.CheckTransparency(col.gameObject, 0.5f);
                col.gameObject.GetComponent <BallonData>().xCoord = xCoord;
                col.gameObject.GetComponent <BallonData>().yCoord = yCoord;
            }

            if (winCase != Player.Neutral)
            {
                StartCoroutine(UIManager.Instance.ScoreChange(winCase));
            }
        }
    }
示例#2
0
 public HoverArgs(CaseData hoveredCase, PersoData hoveredPersonnage, PathfindingCase Pathfinding, BallonData hoveredBallon)
 {
     this.hoveredCase       = hoveredCase;
     this.hoveredPersonnage = hoveredPersonnage;
     this.Pathfinding       = Pathfinding;
     this.hoveredBallon     = hoveredBallon;
 }
示例#3
0
    public void ReturnMenu()
    {
        GameObject menuContextuel = UIManager.Instance.menuContextuel;
        BallonData hoveredBallon  = HoverManager.Instance.hoveredBallon;

        SelectionManager.Instance.selectedBallon = hoveredBallon;
        menuContextuel.SetActive(true);
        TurnManager.Instance.DisableFinishTurn();
    }
示例#4
0
    public void ShotMenu()
    {
        GameObject menuContextuel = UIManager.Instance.menuContextuel;
        BallonData hoveredBallon  = HoverManager.Instance.hoveredBallon;

        MoveBehaviour.Instance.pathes.Clear();
        SelectionManager.Instance.selectedBallon = hoveredBallon;
        menuContextuel.SetActive(true);
        TurnManager.Instance.DisableFinishTurn();
    }
示例#5
0
    void OnMouseOver()
    {
        if (!enabled)
        {
            return;
        }
        hoveredCase        = this.GetComponent <CaseData>();
        hoveredPersonnage  = GetComponent <CaseData> ().personnageData;
        hoveredPathfinding = GetComponent <CaseData> ().casePathfinding;
        hoveredBallon      = GetComponent <CaseData> ().ballon;

        newHoverEvent(this, new HoverArgs(hoveredCase, hoveredPersonnage, hoveredPathfinding, hoveredBallon));
    }
示例#6
0
    public void OnNewClick()
    { // Lors d'un click sur une case
        Phase       currentPhase       = TurnManager.Instance.currentPhase;
        BallonData  hoveredBallon      = HoverManager.Instance.hoveredBallon;
        PersoData   selectedPersonnage = SelectionManager.Instance.selectedPersonnage;
        PersoAction actualAction       = GameManager.Instance.actualAction;

        if (currentPhase == Phase.Deplacement &&
            selectedPersonnage != null &&
            hoveredBallon != null &&
            actualAction == PersoAction.isSelected)
        {
            if (Fonction.Instance.CheckAdjacent(hoveredBallon.gameObject, selectedPersonnage.gameObject) == true)
            {
                ShotMenu();
            }
        }
    }
示例#7
0
    public void TirReplacerBalle()
    {
        PersoData   selectedPersonnage = SelectionManager.Instance.selectedPersonnage;
        CaseData    hoveredCase        = HoverManager.Instance.hoveredCase;
        PersoAction actualAction       = GameManager.Instance.actualAction;
        BallonData  selectedBallon     = SelectionManager.Instance.selectedBallon;

        if (actualAction == PersoAction.isReplacingBall &&
            caseAction.Count != 0)
        {
            if (caseAction.Contains(hoveredCase))
            {
                selectedBallon.transform.position = hoveredCase.transform.position;
                hoveredCase.GetComponent <CaseData>().ChangeColor(Statut.canReplace);
                StartCoroutine(ReplacerBalleEnd());
                return;
            }
            StartCoroutine(ReplacerBalleEnd());
            selectedPersonnage.GetComponent <PersoData> ().actualPointMovement++;
        }
    }
示例#8
0
    void OnTriggerExit2D(Collider2D col)
    {
        if (col.tag == "Personnage" &&
            col.gameObject.GetComponent <BoxCollider2D>().enabled == true &&
            GetComponent <PolygonCollider2D>().enabled == true)
        {
            personnageData  = null;
            casePathfinding = PathfindingCase.Walkable;
            ChangeColor(Statut.None, Statut.isSelected);
            ChangeColor(Statut.None, Statut.isAllyPerso);
        }

        if (col.tag == "Ballon" &&
            col.gameObject.GetComponent <BoxCollider2D>().enabled == true &&
            GetComponent <PolygonCollider2D>().enabled == true)
        {
            TransparencyBehaviour.CheckTransparency(col.gameObject, 1f);
            ballon          = null;
            casePathfinding = PathfindingCase.Walkable;
            ChangeColor(Statut.None, Statut.canShot);
        }
    }
示例#9
0
    // ************ //
    // ** Events ** //
    // ************ //

    void OnNewHover(object sender, HoverArgs e)
    { // Curseur se trouve sur une case ou quitte une case
        if (hoveredLastCase == null || hoveredLastCase != hoveredCase)
        {
            hoveredLastCase = hoveredCase;
        }

        if (hoveredCase != null)
        {
            changeColorExit(GameManager.Instance.currentPhase);
        }
        Debug.Log(hoveredCase);
        Debug.Log(hoveredLastCase);

        hoveredPersonnage  = e.hoveredPersonnage;
        hoveredCase        = e.hoveredCase;
        hoveredPathfinding = e.Pathfinding;
        hoveredBallon      = e.hoveredBallon;

        changeColorEnter();
        CheckIfAction();
    }
示例#10
0
    // *************** //
    // ** Actions ** //
    // *************** //

    public IEnumerator ShowActions()
    { // Affiche en violet les actions possible par le joueur.
        yield return(new WaitForEndOfFrame());

        Player    currentPlayer      = GameManager.Instance.currentPlayer;
        Phase     currentPhase       = GameManager.Instance.currentPhase;
        Color     actionPreColor     = ColorManager.Instance.actionPreColor;
        PersoData selectedPersonnage = SelectionManager.Instance.selectedPersonnage;
        Color     selectedColor      = ColorManager.Instance.selectedColor;

        switch (currentPhase)
        {
        case (Phase.Placement):
            break;

        case (Phase.Deplacement):
            foreach (GameObject caseCompared in listCase)
            {
                Color newColor = ColorManager.Instance.caseColor;

                if (!MenuContextuel.Instance.gameObject.activeInHierarchy)
                {
                    PersoData  persoCompared  = caseCompared.GetComponent <CaseData>().personnageData;
                    BallonData ballonCompared = caseCompared.GetComponent <CaseData>().ballon;


                    if (persoCompared != null && persoCompared.GetComponent <PersoData>().owner == currentPlayer)
                    {
                        caseCompared.GetComponent <CaseData>().ChangeColor(Statut.isAllyPerso);
                    }

                    if (SelectionManager.Instance.selectedPersonnage != null)
                    {
                        if (persoCompared != null &&
                            persoCompared.GetComponent <PersoData>().owner != currentPlayer &&
                            Fonction.Instance.CheckAdjacent(persoCompared.gameObject, selectedPersonnage.gameObject) == true)
                        {
                            caseCompared.GetComponent <CaseData>().ChangeColor(Statut.canPunch);
                        }

                        if (ballonCompared != null &&
                            Fonction.Instance.CheckAdjacent(selectedPersonnage.gameObject, ballonCompared.gameObject) == true)
                        {
                            caseCompared.GetComponent <CaseData>().ChangeColor(Statut.canShot);
                            //newColor = actionPreColor;
                        }

                        if (persoCompared == selectedPersonnage)
                        {
                            caseCompared.GetComponent <CaseData>().ChangeColor(Statut.isSelected);
                            //newColor = selectedColor;
                        }
                    }

                    //      if (newColor != ColorManager.Instance.caseColor)
                    //       {
                    //           caseCompared.GetComponent<CaseData>().ChangeColor(newColor);
                    //        }
                }
            }
            break;
        }
    }