// 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 }
// 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(); }
// 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(); }
// 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 }
//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); }