示例#1
0
    // Start is called before the first frame update
    void Awake()
    {
        base.Awake();

        movementController = GetComponentInParent <GridMovementController>();

        if (isPlayer1)
        {
            iManager.onP1Shield.AddListener(Shield);
        }
        else
        {
            iManager.onP2Shield.AddListener(Shield);
        }

        shieldHealthSlider.maxValue = shieldMaxHealth;
        shieldHealthSlider.value    = currentShieldHealth = shieldMaxHealth;

        sprite             = GetComponent <SpriteRenderer>();
        collider           = GetComponent <CircleCollider2D>();
        defaultShieldColor = sprite.color;
        sprite.enabled     = false;
        collider.enabled   = false;

        parryTimer       = 0;
        localIsShielding = false;
    }
示例#2
0
    // Start is called before the first frame update
    protected virtual void Awake()
    {
        base.Awake();

        animator           = GetComponent <Animator>();
        movementController = GetComponent <GridMovementController>();
    }
示例#3
0
    protected void Setup()
    {
        m_moveControl = GetComponent <GridMovementController>();
        stats         = GetComponent <Stats>();
        ActionScript moveAction = gameObject.AddComponent(typeof(ActionScript)) as ActionScript;

        moveAction.action = new UnityEngine.Events.UnityEvent();
        moveAction.action.AddListener(MoveClick);
        moveAction.actionImage = moveActionImage;
        skills.Add(moveAction);
    }
示例#4
0
    private void Awake()
    {
        movementController = gameObject.GetComponent <GridMovementController>();

        if (!active)
        {
            gameObject.layer = LayerSleep;
            anim.SetBool("Sleep", true);
            cooldowntimerghost         = 0;
            movementController.enabled = false;
        }
    }
示例#5
0
    private void LoadGridController(Scene arg0, LoadSceneMode arg1)
    {
        if (arg0.name == "GameScene")
        {
            Scene gameScene = SceneManager.GetSceneByName("GameScene");

            GameObject[] gameObjects = gameScene.GetRootGameObjects();

            for (int i = 0; i < gameObjects.Length; i++)
            {
                if (gameObjects[i].name == "Player1")
                {
                    gmController = gameObjects[i].GetComponent <GridMovementController>();
                }
            }
        }
    }
示例#6
0
    public void TurnOn(TileType type)
    {
        if (!renderer)
        {
            renderer = GetComponent <MeshRenderer>();
        }
        if (!gmc)
        {
            gmc = GetComponent <GridMovementController>();
        }
        used     = true;
        tileType = type;
        int   index = (int)tileType;
        Color color = onIdle[(int)tileType];

        renderer.material.color = onIdle[(int)tileType];
        gameObject.SetActive(true);
    }
示例#7
0
    // Start is called before the first frame update
    void Start()
    {
        stats          = GetComponent <Stats>();
        playerCharList = new List <GameObject>();
        skillTree      = GetComponent <SkillTreeScript>();
        GameObject[] p        = GameObject.FindGameObjectsWithTag("Ally");
        float        distance = float.MaxValue;

        foreach (var item in p)
        {
            playerCharList.Add(item);
            float tempDis = Vector3.Distance(item.transform.position, transform.position);
            if (tempDis < distance)
            {
                distance = tempDis;
                target   = item;
            }
        }
        gmc = GetComponent <GridMovementController>();
        bg  = FindObjectOfType <BoardGenerator>();
    }
示例#8
0
    // Start is called before the first frame update
    void Awake()
    {
        base.Awake();

        animator = GetComponent <Animator>();

        if (isPlayer1)
        {
            p1Movement = GetComponent <GridMovementController>();
            iManager.onP1Grab.AddListener(Grab);

            p2Movement = GameObject.Find("Player2").GetComponent <GridMovementController>();
        }
        else
        {
            p2Movement = GetComponent <GridMovementController>();
            iManager.onP2Grab.AddListener(Grab);

            p1Movement = GameObject.Find("Player1").GetComponent <GridMovementController>();
        }
    }
示例#9
0
    }//Draws grid to show board division
#endif

    public void MoveToCell(Vector2 cellIndex, GameObject obj, GridMovementController moveController)
    {
        Cell target = isValidCell((int)cellIndex.x, (int)cellIndex.y);
        bool isTile = obj.GetComponent <ClickerTile>();

        if (target != null)
        {
            if (!isTile)
            {
                moveController.currentCell.occupiedObject = null;
            }
            obj.transform.position = new Vector3(transform.position.x + target.startX + (target.width / 2) - width / 2,
                                                 obj.transform.position.y,
                                                 transform.position.z + target.startY + (target.height / 2) - height / 2);//position = half the cell width + parent padding (transform.x - this width / 2)
            moveController.currentCell = target;
            if (!isTile)
            {
                target.occupiedObject = obj;
            }
        }
    }
示例#10
0
    public void setupClickBoard(BoardGenerator.Cell start, int range, TargetType type, bool Attack, System.Func <ClickerTile, int> func)
    {
        _func = func;
        foreach (var item in ClickTiles)
        {
            item.gameObject.SetActive(false);
        }

        int cx = (int)start.index.x, cy = (int)start.index.y; //get center xy

        switch (type)
        {
        case TargetType.Empty:
        {
            List <BoardGenerator.Cell> walkable = new List <BoardGenerator.Cell>();
            for (int x = cx - range; x <= cx + range; x++)         //from left to right
            {
                int val = cx - x;
                val = Mathf.Abs(val);
                val = range - val;          //closer to leftmost,rightmost, y range will be lowest
                for (int y = cy - val; y <= cy + val; y++)
                {
                    BoardGenerator.Cell temp = GameManagerScript.getBoard().isValidCell(new Vector2(x, y));
                    if (temp != null)
                    {
                        if (!temp.occupiedObject)
                        {
                            walkable.Add(temp);
                        }
                    }
                }
            }
            foreach (var cell in walkable)
            {
                ClickerTile temptile = null;
                //If have any available tile
                foreach (var tile in ClickTiles)
                {
                    if (!tile.used)
                    {
                        //get tile ref
                        temptile = tile;
                        break;
                    }
                }
                if (temptile == null)
                {
                    //else instantiate a new one
                    GameObject temp = Instantiate(dot, transform);
                    temptile = temp.GetComponent <ClickerTile>();
                    temptile.setClicker(this);
                    ClickTiles.Add(temptile);
                }
                //set position
                GridMovementController gmc = temptile.GetComponent <GridMovementController>();
                GameManagerScript.getBoard().MoveToCell(cell.index, temptile.gameObject, gmc);
                //set active
                temptile.TurnOn(ClickerTile.TileType.Walkable);
            }
            break;
        }

        case TargetType.Ally:
        case TargetType.Enemy:
        {
            List <BoardGenerator.Cell> withinRange = new List <BoardGenerator.Cell>();
            for (int x = cx - range; x <= cx + range; x++)         //from left to right
            {
                int val = cx - x;
                val = Mathf.Abs(val);
                val = range - val;          //closer to leftmost,rightmost, y range will be lowest
                for (int y = cy - val; y <= cy + val; y++)
                {
                    BoardGenerator.Cell temp = GameManagerScript.getBoard().isValidCell(new Vector2(x, y));
                    if (temp != null)
                    {
                        withinRange.Add(temp);
                    }
                }
            }
            foreach (var cell in withinRange)
            {
                ClickerTile temptile = null;
                //If have any available tile
                foreach (var tile in ClickTiles)
                {
                    if (!tile.used)
                    {
                        //get tile ref
                        temptile = tile;
                        break;
                    }
                }
                if (temptile == null)
                {
                    //else instantiate a new one
                    GameObject temp = Instantiate(dot, transform);
                    temptile = temp.GetComponent <ClickerTile>();
                    temptile.setClicker(this);
                    ClickTiles.Add(temptile);
                }
                //set position
                GridMovementController gmc = temptile.GetComponent <GridMovementController>();
                GameManagerScript.getBoard().MoveToCell(cell.index, temptile.gameObject, gmc);
                //set active
                if (!cell.occupiedObject)
                {
                    temptile.TurnOn(ClickerTile.TileType.Range);
                }
                else
                {
                    if (cell.occupiedObject.tag == "Ally")
                    {
                        if (type == TargetType.Ally)
                        {
                            if (Attack)
                            {
                                temptile.TurnOn(ClickerTile.TileType.Attackable);
                            }
                            else
                            {
                                temptile.TurnOn(ClickerTile.TileType.Healable);
                            }
                        }
                        else
                        {
                            temptile.TurnOn(ClickerTile.TileType.Range);
                        }
                    }
                    else if (cell.occupiedObject.tag == "Enemy")
                    {
                        if (type == TargetType.Enemy)
                        {
                            if (Attack)
                            {
                                temptile.TurnOn(ClickerTile.TileType.Attackable);
                            }
                            else
                            {
                                temptile.TurnOn(ClickerTile.TileType.Healable);
                            }
                        }
                        else
                        {
                            temptile.TurnOn(ClickerTile.TileType.Range);
                        }
                    }
                    else
                    {
                        temptile.TurnOn(ClickerTile.TileType.Range);
                    }
                }
            }
            break;
        }

        default:
            break;
        }
        //Search(start, range, type);

        //foreach (var item in availableCells)
        //{
        //    ClickerTile temptile = null;
        //    //If have any available tile
        //    foreach (var tile in ClickTiles)
        //    {
        //        if (!tile.used)
        //        {
        //            //get tile ref
        //            temptile = tile;
        //            break;
        //        }
        //    }
        //    if (temptile == null)
        //    {
        //        //else instantiate a new one
        //        GameObject temp = Instantiate(dot, transform);
        //        temptile = temp.GetComponent<ClickerTile>();
        //        temptile.setClicker(this);
        //        ClickTiles.Add(temptile);
        //    }
        //    //set position
        //    GridMovementController gmc = temptile.GetComponent<GridMovementController>();
        //    GameManagerScript.getBoard().MoveToCell(item.index, temptile.gameObject, gmc);
        //    //set active
        //    temptile.gameObject.SetActive(true);
        //    temptile.used = true;
        //}
    }
示例#11
0
 private void Awake()
 {
     movementController = gameObject.GetComponent <GridMovementController>();
     actionController   = gameObject.GetComponent <ReleaseGhost>();
 }
示例#12
0
 void Start()
 {
     renderer = GetComponent <MeshRenderer>();
     gmc      = GetComponent <GridMovementController>();
 }