private void Start() { if (!File.Exists(Application.persistentDataPath + "/Save/Save.xml")) { Debug.Log("FFFF"); CreateXML(); } if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("mainScene") || SceneManager.GetActiveScene() == SceneManager.GetSceneByName("SaphireFloors1") || SceneManager.GetActiveScene() == SceneManager.GetSceneByName("EmeraldFloors1") || SceneManager.GetActiveScene() == SceneManager.GetSceneByName("GoldenFloors1") || SceneManager.GetActiveScene() == SceneManager.GetSceneByName("rubyFloors1") || SceneManager.GetActiveScene() == SceneManager.GetSceneByName("SilverFloors1") || SceneManager.GetActiveScene() == SceneManager.GetSceneByName("TopazFloors1")) { block = FindObjectOfType <Block>(); perfectTimer = GameObject.FindGameObjectWithTag("PerfectTimer").GetComponent <PerfectTimer>(); GameObject scoreLine = GameObject.FindGameObjectWithTag("ScoreLine"); scoreLine.GetComponent <Slider>().value = 0; } if (SceneManager.GetActiveScene() == SceneManager.GetSceneByName("Piramid1") || SceneManager.GetActiveScene() == SceneManager.GetSceneByName("Piramid2")) { blockSelection = GameObject.FindGameObjectWithTag("BlockSelection"); okButton = GameObject.FindGameObjectWithTag("OK"); cancelButton = GameObject.FindGameObjectWithTag("Cancel"); sample = GameObject.FindGameObjectWithTag("Sample"); piramid = GameObject.FindGameObjectWithTag("Piramid"); sample.SetActive(true); if (Player.score != 0) { sample.GetComponent <Platform>().Score = Player.score; sample.GetComponent <Platform>().BlockMaterialNum = Player.currentBlockMaterialNum; int goodEdgesCount = CalcGENbyScore(); sample.GetComponent <Platform>().SetRandomGoodEdgePositions(goodEdgesCount); sample.GetComponent <Platform>().InsertBlock(); piramid.GetComponent <Piramid>().RefreshNeighborEdgesCount(); //piramid.GetComponent<Piramid>().HighlightBlocks(sample.GetComponent<Platform>().BlockMaterialNum); } piramid.GetComponent <Piramid>().TurnHighLightsOFF(); piramid.GetComponent <Piramid>().HighlightBlocks(sample.GetComponent <Platform>().BlockMaterialNum); ShowSelectBlockUI(); if (isChoosingPlatform) { HideSelectBlockUI(); } Debug.Log("start"); } CalcMaxScore(); }
public void CatchBlock() { Vector3 leftCorner = transform.position; leftCorner.x -= catchSkill; Vector3 rightCorner = transform.position; rightCorner.x += catchSkill; Collider2D findedCollider = Physics2D.OverlapArea(leftCorner, rightCorner); if (findedCollider != null && findedCollider.GetComponent <Block>()) { Block newBlock = findedCollider.GetComponent <Block>(); if (newBlock.rigidBodyBlock.velocity.y <= 0) { isKeep = true; int coef = 1; if (tag.Equals("LastBuilder")) { Player.isChoosingPlatform = true; SceneManager.LoadScene("Piramid1"); } block = newBlock; if (System.Math.Abs(newBlock.transform.position.x - transform.position.x) < catchSkill / 2 && block.ParentBuilder != this) { Debug.Log("Add time for Perfect Timer"); Player.perfectTimer.Timer = 7; block.SetStrandartMaskPosition(); block.blockSpriteActive.SetActive(true); block.blockSpriteActiveBack.SetActive(true); block.transform.rotation = transform.rotation; coef = 2; } if (block.ParentBuilder != this) { player.LevelNum++; if (Player.perfectTimer.Timer > 0) { Player.PerfectCoef++; } Player.score += coef * Player.PerfectCoef; GameObject scoreLine = GameObject.FindGameObjectWithTag("ScoreLine"); float val = (float)(Player.score) / ((float)(Player.currentMaxScore) / 2F); scoreLine.GetComponent <Slider>().value = val; } block.ParentBuilder = this; Debug.Log("Is Catched"); string blockOffset = "Block offset to builder by " + (System.Math.Abs(newBlock.transform.position.x - transform.position.x)).ToString(); Debug.Log(blockOffset); block.IsFly = false; block.rigidBodyBlock.velocity = Vector3.zero; block.MaxRotationAngle = 40; block.IsSwing = true; PerfectTimer pt = GameObject.FindGameObjectWithTag("PerfectTimer").GetComponent <PerfectTimer>(); if (pt.Timer > 0) { block.SwingAngle = System.Math.Abs(newBlock.transform.position.x - transform.position.x) * 0.2F; //Player.score += 2 * player.PerfectCoef; } else { block.SwingAngle = System.Math.Abs(newBlock.transform.position.x - transform.position.x) * 0.4F; //Player.score += 1; } float swingSpeedCoef = 2F; if (pt.Timer > 0) { block.SwingSpeed = block.SwingAngle * swingSpeedCoef; } else { block.SwingSpeed = block.SwingAngle; } string score = "Score: " + (Player.score).ToString(); Debug.Log(Player.score); } } }