Пример #1
0
    // Use this for initialization
    void Start()
    {
        theGridSystem = GameObject.Find("PlayerTetrisGrid").GetComponent <GridSystem>();
        //Debug.Assert(theGridSystem != null);
        theEnemyGridSystem = GameObject.Find("EnemyTetrisGrid").GetComponent <enemyGridSystem>();
        //Debug.Assert(theEnemyGridSystem != null);
        gameCanvas = GameObject.Find("GameCanvas");
        //Debug.Assert(gameCanvas != null);

        //trapSelectionPanel = GameObject.Find("TrapSelectionPanel");
        //Debug.Assert(trapSelectionPanel != null);

        GameCode theGameCode  = GameObject.Find("EventSystem").GetComponent <GameCode>();
        Vector3  displacement = new Vector3(-buttonPrefab.GetComponent <RectTransform>().rect.width, 0, 0);

        foreach (GameCode.TrapTypes trap in theGameCode.typesOfTraps)
        {
            Button newTrapBut = Instantiate(buttonPrefab);                                                                                                                        //Creates Button obj
            Trap   theTrap    = trap.trapPrefab.GetComponent <Trap>();                                                                                                            //Get reference to trap object
            newTrapBut.transform.Find("Image").GetComponent <Image>().sprite = theTrap.getSprite();                                                                               //Sets button's Image to trap's image
            newTrapBut.transform.Find("Text").GetComponent <Text>().text     = theTrap.getName();                                                                                 //Sets button's text to trap's name
            EventTrigger buttonEV = newTrapBut.gameObject.AddComponent <EventTrigger>();                                                                                          //Add EvenTrigger component

            EventTrigger.Entry mouseEnter = new EventTrigger.Entry();                                                                                                             //Create trigger
            mouseEnter.eventID = EventTriggerType.PointerDown;                                                                                                                    //Define trigger type   (Pointer down)
            mouseEnter.callback.AddListener((data) => { newTrapBut.transform.Find("Text").GetComponent <Text>().text = trap.trapPrefab.GetComponent <Trap>().cost.ToString(); }); //Add listener to call function/ do something(changes text)
            buttonEV.triggers.Add(mouseEnter);                                                                                                                                    //Add to Event Trigger

            EventTrigger.Entry mouseClick = new EventTrigger.Entry();                                                                                                             //Create trigger
            mouseClick.eventID = EventTriggerType.PointerClick;                                                                                                                   //Define trigger type   (Pointer click)
            mouseClick.callback.AddListener((data) => { SetTrapToBePlaced(trap.trapPrefab); });                                                                                   //Add listener to call function/ do something(changes text)
            buttonEV.triggers.Add(mouseClick);                                                                                                                                    //Add to Event Trigger

            EventTrigger.Entry mouseExit = new EventTrigger.Entry();                                                                                                              //Create trigger
            mouseExit.eventID = EventTriggerType.PointerUp;                                                                                                                       //Define trigger type   (Pointer up)
            mouseExit.callback.AddListener((data) => { newTrapBut.transform.Find("Text").GetComponent <Text>().text = theTrap.getName(); });                                      //Add listener to call function/ do something(changes text)
            buttonEV.triggers.Add(mouseExit);                                                                                                                                     //Add to Event Trigger

            newTrapBut.transform.position = trapSelectionPanel.transform.position + displacement;                                                                                 //Sets position (+ displacement)
            newTrapBut.transform.SetParent(trapSelectionPanel.transform);                                                                                                         //Parent to panel
            displacement.x += newTrapBut.GetComponent <RectTransform>().rect.width;                                                                                               //Increment displacement every iteration
        }
        Button close = trapSelectionPanel.transform.Find("CloseButton").gameObject.GetComponent <Button>();

        //EventTrigger closeEV = close.gameObject.AddComponent<EventTrigger>();                                                               //Add EvenTrigger component
        //EventTrigger.Entry closeClick = new EventTrigger.Entry();                                                                           //Create trigger
        //closeClick.eventID = EventTriggerType.PointerClick;                                                                                 //Define trigger type   (Pointer click)
        //closeClick.callback.AddListener((data) => { resetVariables(); });                                                                   //Add listener to call function/ do something(changes text)
        close.onClick.AddListener(delegate { resetVariables(); });
        //closeEV.triggers.Add(closeClick);                                                                                                   //Add to Event Trigger
    }
Пример #2
0
    // Use this for initialization
    void Start()
    {
        if (!PowerupsIsActive)
        {
            SampleImage.enabled = false;
            return;
        }

        theGridSystem      = GameObject.Find("PlayerTetrisGrid").GetComponent <GridSystem>();
        theEnemyGridSystem = GameObject.Find("EnemyTetrisGrid").GetComponent <enemyGridSystem>();

        //Debug.Assert(theGridSystem != null);
        //Debug.Assert(theEnemyGridSystem != null);
        SampleImage.enabled = false;

        CreatePowerups();
    }
Пример #3
0
    // Use this for initialization
    void Start()
    {
        theGridSystem      = GameObject.Find("PlayerTetrisGrid").GetComponent <GridSystem>();
        theEnemyGridSystem = GameObject.Find("EnemyTetrisGrid").GetComponent <enemyGridSystem>();

        //Debug.Assert(theGridSystem != null);
        //Debug.Assert(theEnemyGridSystem != null);

        //Calculate the number of possible rows the canvas can hold
        //PossibleRowTilesinCanvas = (uint)(thisCanvas.GetComponent<RectTransform>().rect.height / GridSystem.tileHeight);

        //Calculate the number of rows of neutral grid based on the number of tiles left the canvas can hold
        NeutralZoneGridsRowNum = 5;
        NeutralZoneGridsColNum = GridSystem.col;

        NeutralGrid = new Image[NeutralZoneGridsRowNum * NeutralZoneGridsColNum];
        EventTrigger neutralZonetrigger = this.gameObject.AddComponent <EventTrigger>();

        EventTrigger.Entry mouseEnter = new EventTrigger.Entry();                               //Create trigger
        mouseEnter.eventID = EventTriggerType.PointerDown;                                      //Define trigger type   (Pointer down)
        mouseEnter.callback.AddListener((data) => {
            try
            {
                theMainGame.ShowInfo();
            }
            catch (NullReferenceException) { }
        });                                                      //Add listener to call function/ do something(calls function in MainGame to show terrain info)
        neutralZonetrigger.triggers.Add(mouseEnter);             //Add to Event Trigger
        EventTrigger.Entry mouseExit = new EventTrigger.Entry(); //Create trigger
        mouseExit.eventID = EventTriggerType.PointerUp;          //Define trigger type   (Pointer up)
        mouseExit.callback.AddListener((data) => {
            try
            {
                theMainGame.HideInfo();
            }
            catch (NullReferenceException) { }
        });                                         //Add listener to call function/ do something(calls function in MainGame to hide terrain info)
        neutralZonetrigger.triggers.Add(mouseExit); //Add to Event Trigger
        //Initialize the images in NeutralGrid
        InitGrid();
    }
Пример #4
0
    // Use this for initialization
    void Start()
    {
        theGridSystem     = GameObject.Find("PlayerTetrisGrid").GetComponent <GridSystem>();
        enemyGridSystem   = GameObject.Find("EnemyTetrisGrid").GetComponent <enemyGridSystem>();
        thePowerupsSystem = GameObject.Find("PowerUpSystem").GetComponent <PowerupsSystem>();
        if (!enemyGridSystem.multi)
        {
            theTrapSystem = GameObject.Find("TrapSystem").GetComponent <TrapSystem>();
        }


        thePlayer = GameObject.Find("Player");
        game      = GameObject.Find("EventSystem").GetComponent <GameCode>();

        health = this.gameObject.AddComponent <HealthSystem>();

        attackHeight     = 40;
        originPos        = transform.position;
        Pos              = originPos;
        canvasLocalScale = GameObject.FindGameObjectWithTag("Canvas").transform.localScale;


        //Attack adjacent tiles
        attackWidth = 150;



        //Debug.Log("Cavalry");
        if (type == "Cavalry")
        {
            health.InitHealth(PlayerPrefs.GetFloat("calvaryHP"));
            attckDmg = PlayerPrefs.GetFloat("calvaryAtt");
            attckSpd = PlayerPrefs.GetFloat("calvaryAttSpd");
            speed    = PlayerPrefs.GetFloat("calvarySpd");

            vision = 100;
            range  = 100;
            state  = (int)States.CHARGE;
            //prevhealth = health;
            activ  = true;
            _class = 3;
            if (terrainName == "Hills")
            {
                attckDmg = (attckDmg * game.TMV_Cavalry.attackDamage);
                speed    = (speed * game.TMV_Cavalry.speed);
                attckSpd = (attckSpd * game.TMV_Cavalry.attackSpeed);
            }
            else if (terrainName == "Forest")
            {
                attckDmg = (attckDmg * game.TMV_Cavalry.attackDamage);
                speed    = (speed * game.TMV_Cavalry.speed);
                attckSpd = (attckSpd * game.TMV_Cavalry.attackSpeed);
            }
            else if (terrainName == "River")
            {
                attckDmg = (attckDmg * game.TMV_Cavalry.attackDamage);
                speed    = (speed * game.TMV_Cavalry.speed);
                attckSpd = (attckSpd * game.TMV_Cavalry.attackSpeed);
            }
            else if (terrainName == "Plains")
            {
                attckDmg = (attckDmg * game.TMV_Cavalry.attackDamage);
                speed    = (speed * game.TMV_Cavalry.speed);
                attckSpd = (attckSpd * game.TMV_Cavalry.attackSpeed);
            }
        }
        else if (type == "Infantry")
        {
            // Debug.Log("Infantry");
            health.InitHealth(PlayerPrefs.GetFloat("infantryHP"));
            attckDmg = PlayerPrefs.GetFloat("infantryAtt", attckDmg);
            attckSpd = PlayerPrefs.GetFloat("infantryAttSpd");
            speed    = PlayerPrefs.GetFloat("infantrySpd");
            range    = 100;

            vision = 100;
            state  = (int)States.CHARGE;
            //prevhealth = health;
            activ  = true;
            _class = 1;
            if (terrainName == "Hills")
            {
                attckDmg = (attckDmg * game.TMV_Infantry.attackDamage);
                speed    = (speed * game.TMV_Infantry.speed);
                attckSpd = (attckSpd * game.TMV_Infantry.attackSpeed);
            }
            else if (terrainName == "Forest")
            {
                attckDmg = (attckDmg * game.TMV_Infantry.attackDamage);
                speed    = (speed * game.TMV_Infantry.speed);
                attckSpd = (attckSpd * game.TMV_Infantry.attackSpeed);
            }
            else if (terrainName == "River")
            {
                attckDmg = (attckDmg * game.TMV_Infantry.attackDamage);
                speed    = (speed * game.TMV_Infantry.speed);
                attckSpd = (attckSpd * game.TMV_Infantry.attackSpeed);
            }
            else if (terrainName == "Plains")
            {
                attckDmg = (attckDmg * game.TMV_Infantry.attackDamage);
                speed    = (speed * game.TMV_Infantry.speed);
                attckSpd = (attckSpd * game.TMV_Infantry.attackSpeed);
            }
        }
        else if (type == "Bowmen")
        {
            // Debug.Log("Bowmen");
            health.InitHealth(PlayerPrefs.GetFloat("bowmenHP"));
            attckDmg      = PlayerPrefs.GetFloat("bowmenAtt", attckDmg);
            attckSpd      = PlayerPrefs.GetFloat("bowmenAttSpd");
            speed         = PlayerPrefs.GetFloat("bowmenSpd");
            theProjectile = GetComponent <Projectile>();
            range         = 300;
            vision        = 300;
            state         = (int)States.CHARGE;
            //prevhealth = health;
            activ  = true;
            _class = 2;
            if (terrainName == "Hills")
            {
                attckDmg = (attckDmg * game.TMV_Bowmen.attackDamage);
                speed    = (speed * game.TMV_Bowmen.speed);
                attckSpd = (attckSpd * game.TMV_Bowmen.attackSpeed);
            }
            else if (terrainName == "Forest")
            {
                attckDmg = (attckDmg * game.TMV_Bowmen.attackDamage);
                speed    = (speed * game.TMV_Bowmen.speed);
                attckSpd = (attckSpd * game.TMV_Bowmen.attackSpeed);
            }
            else if (terrainName == "River")
            {
                attckDmg = (attckDmg * game.TMV_Bowmen.attackDamage);
                speed    = (speed * game.TMV_Bowmen.speed);
                attckSpd = (attckSpd * game.TMV_Bowmen.attackSpeed);
            }
            else if (terrainName == "Plains")
            {
                attckDmg = (attckDmg * game.TMV_Bowmen.attackDamage);
                speed    = (speed * game.TMV_Bowmen.speed);
                attckSpd = (attckSpd * game.TMV_Bowmen.attackSpeed);
            }
        }
        //Debug.Log(transform.position
    }
Пример #5
0
    //Key for setting instantiated unit in array
    //Spawner for the pos of spawner in scene
    //Team for which team the unit is (0 for player , 1 for enemy)
    //Type is for unit type
    //Shape is the shape to instantiate
    int SpawnTetris(int key, GameObject spawner, int team, int type, GameObject shape)
    {
        TetrisCube theCube = new TetrisCube();

        //Instantiate base on spawner pos
        if (team == 0)
        {
            theCube.parentCube = Instantiate(shape, spawner.transform.position, spawner.transform.rotation);
        }
        else    //Rotate by 180 on x axis if is enemy piece to mirror player
        {
            theCube.parentCube = Instantiate(shape, spawner.transform.position, Quaternion.Euler(180, 0, 0));
        }

        //So that it appears within canvas
        theCube.parentCube.transform.SetParent(GameObject.FindGameObjectWithTag("Canvas").transform, true);
        theCube.parentCube.transform.SetParent(spawner.transform);

        //Off set x pos base on key(index)
        if (key == 0)
        {
            pil.Set(-ScreenWidthOffset + halfOffset, 0, 0);
        }
        else if (key == 1)
        {
            pil.Set(0, 0, 0);
        }
        else
        {
            pil.Set(ScreenWidthOffset - halfOffset, 0, 0);
        }


        //Set the origin (snapping)
        pil1 = theCube.parentCube.transform.position + pil;
        theCube.origin.Set(pil1.x, spawner.transform.position.y, spawner.transform.position.z);
        //Translate to origin
        theCube.parentCube.transform.position = theCube.origin;

        //Store parts locally
        GameObject cubeOne   = theCube.parentCube.transform.Find("partOne").gameObject;
        GameObject cubeTwo   = theCube.parentCube.transform.Find("partTwo").gameObject;
        GameObject cubeThree = theCube.parentCube.transform.Find("partThree").gameObject;
        GameObject cubeFour  = theCube.parentCube.transform.Find("partFour").gameObject;


        //Set up the 4 cubes based on theCube.parentCube's child
        theCube.setTheCubes(cubeOne.GetComponent <Rigidbody2D>(), cubeTwo.GetComponent <Rigidbody2D>(), cubeThree.GetComponent <Rigidbody2D>(), cubeFour.GetComponent <Rigidbody2D>());

        theCube.origin = theCube.partOne.position;

        //Assigning types base on shape
        if (shape == TetrisTypes[0])
        {
            theCube.setTheObjectType(TetrisCube.objectType.TETRIS_4X4);
        }
        else if (shape == TetrisTypes[1])
        {
            theCube.setTheObjectType(TetrisCube.objectType.TETRIS_L);
        }
        else if (shape == TetrisTypes[2])
        {
            theCube.setTheObjectType(TetrisCube.objectType.TETRIS_T);
        }
        else
        {
            theCube.setTheObjectType(TetrisCube.objectType.TETRIS_Z);
        }

        Vector2 currentCubeSIze  = cubeOne.GetComponent <RectTransform>().sizeDelta;
        Vector2 canvasLocalScale = GameObject.FindGameObjectWithTag("Canvas").transform.localScale;

        //Debug.Log(GameObject.FindGameObjectWithTag("Canvas"))

        cubeOne.GetComponent <RectTransform>().sizeDelta   = new Vector2(currentCubeSIze.x * canvasLocalScale.x, currentCubeSIze.y * canvasLocalScale.y);
        cubeTwo.GetComponent <RectTransform>().sizeDelta   = new Vector2(currentCubeSIze.x * canvasLocalScale.x, currentCubeSIze.y * canvasLocalScale.y);
        cubeThree.GetComponent <RectTransform>().sizeDelta = new Vector2(currentCubeSIze.x * canvasLocalScale.x, currentCubeSIze.y * canvasLocalScale.y);
        cubeFour.GetComponent <RectTransform>().sizeDelta  = new Vector2(currentCubeSIze.x * canvasLocalScale.x, currentCubeSIze.y * canvasLocalScale.y);

        cubeOne.transform.localPosition   = new Vector3(cubeOne.transform.localPosition.x * canvasLocalScale.x, cubeOne.transform.localPosition.y * canvasLocalScale.y, 0);
        cubeTwo.transform.localPosition   = new Vector3(cubeTwo.transform.localPosition.x * canvasLocalScale.x, cubeTwo.transform.localPosition.y * canvasLocalScale.y, 0);
        cubeThree.transform.localPosition = new Vector3(cubeThree.transform.localPosition.x * canvasLocalScale.x, cubeThree.transform.localPosition.y * canvasLocalScale.y, 0);
        cubeFour.transform.localPosition  = new Vector3(cubeFour.transform.localPosition.x * canvasLocalScale.x, cubeFour.transform.localPosition.y * canvasLocalScale.y, 0);


        //Set the unit's type
        switch (type)
        {
        case 0:
        {
            //theCube.troopName = "Cavalry";
            foreach (Transform child in theCube.parentCube.transform)
            {
                Image theSprite = child.GetComponent <Image>();
                if (team == 0)
                {
                    theSprite.sprite  = troopImages[2];
                    theCube.troopName = "BlueCavalry";
                }
                else
                {
                    theSprite.sprite  = troopImages[5];
                    theCube.troopName = "RedCavalry";
                }
            }
            break;
        }

        case 1:
        {
            //theCube.troopName = "Bowmen";
            foreach (Transform child in theCube.parentCube.transform)
            {
                Image theSprite = child.GetComponent <Image>();
                if (team == 0)
                {
                    theSprite.sprite  = troopImages[0];
                    theCube.troopName = "BlueInfantry";
                }
                else
                {
                    theSprite.sprite  = troopImages[3];
                    theCube.troopName = "RedInfantry";
                }
            }
            break;
        }

        case 2:
        {
            foreach (Transform child in theCube.parentCube.transform)
            {
                Image theSprite = child.GetComponent <Image>();
                if (team == 0)
                {
                    theSprite.sprite  = troopImages[1];
                    theCube.troopName = "BlueBowmen";
                }
                else
                {
                    theSprite.sprite  = troopImages[4];
                    theCube.troopName = "RedBowmen";
                }
            }
            break;
        }
        }
        ;

        enemyGridSystem enemyGridSystem = GameObject.Find("EnemyTetrisGrid").GetComponent <enemyGridSystem>();

        if (team == 0 || enemyGridSystem.multi)
        {
            //Could use raycast instead
            //Also cause the only thing changing is the movement function, could try to make a switch instead
            //Trigger and entry for bottom left
            EventTrigger       BtmLTrig  = cubeOne.GetComponent <EventTrigger>();
            EventTrigger.Entry BtmLEntry = new EventTrigger.Entry();
            BtmLEntry.eventID = EventTriggerType.Drag;

            BtmLEntry.callback.AddListener((data) =>
            {
                theCube.DragObject(theCube.partOne);
            });
            BtmLTrig.triggers.Add(BtmLEntry);

            //Trigger and entry for bottom Right
            EventTrigger       BtmRTrig  = cubeTwo.GetComponent <EventTrigger>();
            EventTrigger.Entry BtmREntry = new EventTrigger.Entry();
            BtmREntry.eventID = EventTriggerType.Drag;
            BtmREntry.callback.AddListener((data) =>
            {
                theCube.DragObject(theCube.partTwo);
            });
            BtmRTrig.triggers.Add(BtmREntry);

            //Trigger and entry for top Left
            EventTrigger       TopLTrig  = cubeThree.GetComponent <EventTrigger>();
            EventTrigger.Entry TopLEntry = new EventTrigger.Entry();
            TopLEntry.eventID = EventTriggerType.Drag;
            TopLEntry.callback.AddListener((data) =>
            {
                theCube.DragObject(theCube.partThree);
            });
            TopLTrig.triggers.Add(TopLEntry);

            //Trigger and entry for top Right
            EventTrigger       TopRTrig  = cubeFour.GetComponent <EventTrigger>();
            EventTrigger.Entry TopREntry = new EventTrigger.Entry();
            TopREntry.eventID = EventTriggerType.Drag;
            TopREntry.callback.AddListener((data) =>
            {
                theCube.DragObject(theCube.partFour);
            });
            TopRTrig.triggers.Add(TopREntry);
        }

        //Rotate the cubes back if is enemy (event trigger will not trigger if this is not done for enemy)
        if (team == 1)
        {
            cubeOne.transform.localRotation   = Quaternion.Euler(180, 0, 0);
            cubeTwo.transform.localRotation   = Quaternion.Euler(180, 0, 0);
            cubeThree.transform.localRotation = Quaternion.Euler(180, 0, 0);
            cubeFour.transform.localRotation  = Quaternion.Euler(180, 0, 0);
        }

        //Storing into the respective lists
        if (team == 0)
        {
            //playerList[key] = theCube;
            playerList.Add(theCube);
        }
        else
        {
            //enemyList[key] = theCube;
            enemyList.Add(theCube);
        }

        //Increment index for next object
        ++key;
        return(key);
    }