Пример #1
0
    //Function to detect a cursor entering in the trigger area of the Car icon selection
    void OnTriggerEnter2D(Collider2D trigger)
    {
        if (isActive)
        {
            WheelImage       = trigger.GetComponentInChildren <Image>();
            WheelImage.color = new Color(1f, 1f, 1f, .5f);
            return;
        }

        isActive = true;                                 //If the cursor enters the icon space the icon becomes active

        TextColorCar       = this.GetComponent <Text>(); //Get the instance of the car text and change it to yellow
        TextColorCar.color = Color.yellow;


        CPU = trigger.GetComponent <CPUController>();

        m = trigger.GetComponentInParent <MoveSelector>(); //Make the object that entered the icon space (the trigger) your moveselector target (it will be one of the cursors)
        m.is_this_inside = true;                           // Change the bool variable telling if the cursor is inside the icon area
        t   = trigger.gameObject;                          //Set the generic t object to the cursor/trigger
        old = t.transform.parent;                          //Save the current parent of the coin (the cursor) so it can be reassigned to the coin later

        ID = CPU.CoinID;
        AddTempCar();

        if (!CPU.is_coin_cpu || CPU.CoinID == 1)
        {
            ParentPosition = t.transform.localPosition;
        }
    }
Пример #2
0
    //Initialization. Player 1 is set active by default and controllable with Joystick 1
    void Start()
    {
        num_players         = 1;
        num_ready_players   = 0;
        num_CPU_Players     = 0;
        num_CPU_SelectedCar = 0;

        TextColorGo = GameObject.FindWithTag("Go").GetComponent <Text>();

        player1move = player.GetComponent <MoveSelector>();
        player2move = player2.GetComponent <MoveSelector>();
        player3move = player3.GetComponent <MoveSelector>();
        player4move = player4.GetComponent <MoveSelector>();

        player.SetActive(true);
        player2.SetActive(false);
        player3.SetActive(false);
        player4.SetActive(false);

        is_p1_active = true;
        player1move.is_this_active = true;

        //player1move.ThisPlayerControl = MoveSelector.ControlTypesHere.Joy1;
        player1move.ThisPlayerControl = MoveSelector.ControlTypesHere.NotAssigned;
        //is_joy1_taken = true;
    }
Пример #3
0
        /// <summary>
        /// Constructs the Tile Selector and its components
        /// </summary>
        public void ConstructTileSelector()
        {
            // If gameView is null, get it from GameManager
            if (gameView == null)
            {
                gameView = GameManager.instance.view;
            }

            // If moveSelector is null, get it from gameView
            if (moveSelector == null)
            {
                moveSelector = gameView.moveSelector;
            }

            gameViewModel = gameView.gameViewModel;

            foreach (var unitViewModel in gameViewModel.UnitViewModels)
            {
                if (unitViewModel.Unit.PlayerNumber != gameViewModel.ControllingPlayer.PlayerNumber)
                {
                    unitViewModel.PropertyChanged += UnitViewModel_PropertyChanged;
                }
            }

            EnterState();
        }
Пример #4
0
    private void ExitState(GameObject movingPiece)
    {
        this.enabled = false;
        tileHighlight.SetActive(false);
        MoveSelector move = GetComponent <MoveSelector> ();

        move.EnterState(movingPiece);
    }
Пример #5
0
    public void EnterState(GameObject selectedPiece)
    {
        this.enabled = true;
        tileHighlight.SetActive(true);
        MoveSelector move = GetComponent <MoveSelector>();

        move.ExitState();
    }
Пример #6
0
    private MoveSelector CreateMoveSelect(Piece selectedPiece, Vector2Int pointPosition)
    {
        MoveSelector move = Instantiate(highlightBluePrefab, Geometry.PointFromGrid(pointPosition), Quaternion.identity, childForHighlightBlue).GetComponent <MoveSelector>();

        move.Piece         = selectedPiece;
        move.PointPosition = pointPosition;
        return(move);
    }
Пример #7
0
    private void Awake()
    {
        gameManager = GameManager.Instance;
        Assert.IsNotNull(gameManager, "GameManager not found");

        eventSystem = (eventSystem) ?? FindObjectOfType <EventSystem>();
        Assert.IsNotNull(eventSystem, "EventSystem not found.");

        moveSelector     = (moveSelector) ?? GetComponent <MoveSelector>();
        graphicRaycaster = GetComponent <GraphicRaycaster>();
    }
    //passes in the piece that has been selected, to become one that can be moved
    private void ExitState(GameObject movingPiece)
    {
        //disable this state of tileselector
        this.enabled = false;
        //remove highlight on piece
        tileHighlight.SetActive(false);
        //below two lines are calling on the move selector .cs file, getting the component and telling it to enter the 'moving piece' state.

        MoveSelector move = GetComponent <MoveSelector>();

        move.EnterState(movingPiece);
    }
Пример #9
0
    void Update()
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            Vector3    point     = hit.point;
            Vector2Int gridPoint = Geometry.GridFromPoint(point);

            tileHighlight.SetActive(true);
            tileHighlight.transform.position = Geometry.PointFromGrid(gridPoint);
            if (Input.GetMouseButtonDown(0))
            {
                GameObject selectedPiece = GameManager.instance.PieceAtGrid(gridPoint);
                if (GameManager.instance.DoesPieceBelongToCurrentPlayer(selectedPiece))
                {
                    lastPieceSelected = selectedPiece;
                    GameManager.instance.SelectPiece(selectedPiece);
                    // Reference Point 1: add ExitState call here later
                    ExitState(selectedPiece);
                }
                else if (lastPieceSelected != null)
                {
                    MoveSelector move = GetComponent <MoveSelector>();
                    move.CancelMove(lastPieceSelected);
                    lastPieceSelected = null;
                }
            }
        }
        else
        {
            tileHighlight.SetActive(false);
        }
    }
    //Function to detect a cursor entering in the trigger area of the Car icon selection
    void OnTriggerEnter2D(Collider2D trigger)
    {
        if (isActive)
        {
            WheelImage = trigger.GetComponentInChildren<Image>();
            WheelImage.color = new Color(1f, 1f, 1f, .5f);
            return;
        }

        isActive = true; //If the cursor enters the icon space the icon becomes active

        TextColorCar = this.GetComponent<Text>(); //Get the instance of the car text and change it to yellow
        TextColorCar.color = Color.yellow;

        CPU = trigger.GetComponent<CPUController>();

        m = trigger.GetComponentInParent<MoveSelector>(); //Make the object that entered the icon space (the trigger) your moveselector target (it will be one of the cursors)
        m.is_this_inside = true;                        // Change the bool variable telling if the cursor is inside the icon area
        t = trigger.gameObject;                        //Set the generic t object to the cursor/trigger
        old = t.transform.parent;                     //Save the current parent of the coin (the cursor) so it can be reassigned to the coin later

        ID = CPU.CoinID;
        AddTempCar();

        if (!CPU.is_coin_cpu || CPU.CoinID == 1)
        {
            ParentPosition = t.transform.localPosition;
        }
    }
    //Initialization. Player 1 is set active by default and controllable with Joystick 1
    void Start()
    {
        num_players = 1;
        num_ready_players = 0;
        num_CPU_Players = 0;
        num_CPU_SelectedCar = 0;

        TextColorGo = GameObject.FindWithTag("Go").GetComponent<Text>();

        player1move = player.GetComponent<MoveSelector>();
        player2move = player2.GetComponent<MoveSelector>();
        player3move = player3.GetComponent<MoveSelector>();
        player4move = player4.GetComponent<MoveSelector>();

        player.SetActive(true);
        player2.SetActive(false);
        player3.SetActive(false);
        player4.SetActive(false);

        is_p1_active = true;
        player1move.is_this_active = true;

        //player1move.ThisPlayerControl = MoveSelector.ControlTypesHere.Joy1;
        player1move.ThisPlayerControl = MoveSelector.ControlTypesHere.NotAssigned;
        //is_joy1_taken = true;
    }
    //Function that creates the player and assigns a control scheme to it as detected by the input or if the player is already active it just assigns the control scheme detected
    void Create_Player()
    {
        //If some Players are already active it assigns a control scheme to them (works progressively from player 1 to 4)
        if (is_p1_active == true && player1move.ThisPlayerControl == MoveSelector.ControlTypesHere.NotAssigned /*&& !ps1.is_CPU*/)
        {
            newPlayer = player1move;
            ps = panel1.GetComponent<PlayerSelector>();
        }

        else if (is_p2_active == true && player2move.ThisPlayerControl == MoveSelector.ControlTypesHere.NotAssigned && !ps2.is_CPU)
        {
            newPlayer = player2move;
            ps = panel2.GetComponent<PlayerSelector>();
        }

        else if (is_p3_active == true && player3move.ThisPlayerControl == MoveSelector.ControlTypesHere.NotAssigned && !ps3.is_CPU)
        {
            newPlayer = player3move;
            ps = panel3.GetComponent<PlayerSelector>();
        }

        else if (is_p4_active == true && player4move.ThisPlayerControl == MoveSelector.ControlTypesHere.NotAssigned && !ps4.is_CPU)
        {
            newPlayer = player4move;
            ps = panel4.GetComponent<PlayerSelector>();
        }

        //If there are no active players it creates a new player and assigns the control scheme detected
        else {

            if (num_players <= 4) { num_players++; }

            switch (num_players)
        {

            case 1:
                player.SetActive(true);
                newPlayer = player1move;
                is_p1_active = true;
                ps = panel1.GetComponent<PlayerSelector>();
                break;

            case 2:
                player2.SetActive(true);
                newPlayer = player2move;
                is_p2_active = true;
                ps = panel2.GetComponent<PlayerSelector>();
                break;

            case 3:
                player3.SetActive(true);
                newPlayer = player3move;
                is_p3_active = true;
                ps = panel3.GetComponent<PlayerSelector>();
                break;

            case 4:
                player4.SetActive(true);
                newPlayer = player4move;
                is_p4_active = true;
                ps = panel4.GetComponent<PlayerSelector>();
                break;

            default:
                    num_players = 4;
                break;

        }
            newPlayer.Hand.SetAsLastSibling();
            if (newPlayer.playerID == 1) { newPlayer.GetComponent<Collider2D>().enabled = false; }
            newPlayer.is_this_active = true;
            ps.CPU_Controls = 1;
            ps.switch_case  = 1;
            ps.HandObject.SetActive(true);
            ps.Token.sprite = ps.Player_Token;
            ps.Hand.sprite = ps.hand_closed;
            ps.carImage.sprite = ps.default_Empty;

        }

        setControlScheme();
    }
Пример #13
0
    //Function that creates the player and assigns a control scheme to it as detected by the input or if the player is already active it just assigns the control scheme detected
    void Create_Player()
    {
        //If some Players are already active it assigns a control scheme to them (works progressively from player 1 to 4)
        if (is_p1_active == true && player1move.ThisPlayerControl == MoveSelector.ControlTypesHere.NotAssigned /*&& !ps1.is_CPU*/)
        {
            newPlayer = player1move;
            ps        = panel1.GetComponent <PlayerSelector>();
        }

        else if (is_p2_active == true && player2move.ThisPlayerControl == MoveSelector.ControlTypesHere.NotAssigned && !ps2.is_CPU)
        {
            newPlayer = player2move;
            ps        = panel2.GetComponent <PlayerSelector>();
        }

        else if (is_p3_active == true && player3move.ThisPlayerControl == MoveSelector.ControlTypesHere.NotAssigned && !ps3.is_CPU)
        {
            newPlayer = player3move;
            ps        = panel3.GetComponent <PlayerSelector>();
        }

        else if (is_p4_active == true && player4move.ThisPlayerControl == MoveSelector.ControlTypesHere.NotAssigned && !ps4.is_CPU)
        {
            newPlayer = player4move;
            ps        = panel4.GetComponent <PlayerSelector>();
        }



        //If there are no active players it creates a new player and assigns the control scheme detected
        else
        {
            if (num_players <= 4)
            {
                num_players++;
            }

            switch (num_players)
            {
            case 1:
                player.SetActive(true);
                newPlayer    = player1move;
                is_p1_active = true;
                ps           = panel1.GetComponent <PlayerSelector>();
                break;

            case 2:
                player2.SetActive(true);
                newPlayer    = player2move;
                is_p2_active = true;
                ps           = panel2.GetComponent <PlayerSelector>();
                break;

            case 3:
                player3.SetActive(true);
                newPlayer    = player3move;
                is_p3_active = true;
                ps           = panel3.GetComponent <PlayerSelector>();
                break;

            case 4:
                player4.SetActive(true);
                newPlayer    = player4move;
                is_p4_active = true;
                ps           = panel4.GetComponent <PlayerSelector>();
                break;

            default:
                num_players = 4;
                break;
            }
            newPlayer.Hand.SetAsLastSibling();
            if (newPlayer.playerID == 1)
            {
                newPlayer.GetComponent <Collider2D>().enabled = false;
            }
            newPlayer.is_this_active = true;
            ps.CPU_Controls          = 1;
            ps.switch_case           = 1;
            ps.HandObject.SetActive(true);
            ps.Token.sprite    = ps.Player_Token;
            ps.Hand.sprite     = ps.hand_closed;
            ps.carImage.sprite = ps.default_Empty;
        }

        setControlScheme();
    }
Пример #14
0
 private void Awake()
 {
     instance = this;
     tr       = GetComponent <RectTransform>();
     ani      = GetComponent <Animator>();
 }
Пример #15
0
 MoveSelector moveselect;          // same as above
 // Use this for initialization
 void Start()
 {
     anim       = GetComponent <Animator> (); //used to set parameters in animation tree
     moveselect = attackSelectionMenu.GetComponent <MoveSelector>();
 }
Пример #16
0
 private void Awake()
 {
     instance = this;
 }