// Update is called once per frame void FixedUpdate() { Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); Collider2D hitCollider = Physics2D.OverlapPoint(mousePosition); if (phase == Phase.Setting) { if (Input.GetButtonDown("PhaseSwitch")) { phase = Phase.Action; } if (hitCollider == null) { if (Input.GetMouseButtonDown(0) && createNum > 0) { createNum--; GameObject blockStone = (GameObject)Instantiate(Resources.Load("BlockStone")); blockStone.transform.position = new Vector3(Mathf.Round(mousePosition.x), mousePosition.y, 1); GameObject obj = (GameObject)Instantiate(Resources.Load("Object")); blockStone.transform.parent = obj.transform; } return; } //////////////////////bomb if (Input.GetMouseButtonDown(2)) { if (hitCollider.gameObject.tag == "Block") { if (bombNum > 0) { bombNum--; GameObject bomb = (GameObject)Instantiate(Resources.Load("Bomb")); BombScript bombManager = bomb.GetComponent <BombScript>(); bombManager.attach(hitCollider.transform); } else if (timeBombNum > 0) { timeBombNum--; GameObject bomb = (GameObject)Instantiate(Resources.Load("Bomb")); BombScript bombManager = bomb.GetComponent <BombScript>(); bombManager.attach(hitCollider.transform); bombManager.time = 0.1f; bombManager.isTimed = true; } } } /////////////////////////wood/steal if (hitCollider.gameObject.tag == "Block") { BlockScript block = hitCollider.gameObject.GetComponent <BlockScript> (); if (block.type == BlockScript.BlockType.Stone) { if (replaceWoodNum > 0 || replaceSteelNum > 0) { if (Input.GetMouseButtonDown(0) && replaceWoodNum > 0) { replaceWoodNum--; block.IfMouseClick(BlockScript.BlockType.Wood); } else if (Input.GetMouseButtonDown(1) && replaceSteelNum > 0) { replaceSteelNum--; block.IfMouseClick(BlockScript.BlockType.Steel); } else { block.IfMouseOver(); } } } /////////////////////////bomb timer } else if (hitCollider.gameObject.tag == "Bomb") { float delta = 1 * Input.GetAxis("Mouse ScrollWheel"); BombScript bomb = hitCollider.gameObject.GetComponent <BombScript>(); if (delta < 0 && bomb.time == 0) { Destroy(bomb.gameObject); bombNum++; } else { bomb.time = Mathf.Clamp(bomb.time + delta, 0, 10); } if (bomb.time >= 0.1f && !bomb.isTimed && timeBombNum > 0) { bomb.isTimed = true; bombNum++; timeBombNum--; } } } else if (phase == Phase.Action) { if (Input.GetButtonDown("Suicide")) { GameObject.Find("Player").GetComponent <PlayerScript>().die("Suicide"); } if (hitCollider == null) { return; } if (hitCollider.gameObject.tag == "Block") { BlockScript block = hitCollider.gameObject.GetComponent <BlockScript> (); GameObject playerObject = GameObject.Find("Player"); Vector3 blockPosition = block.transform.position; Vector3 playerPosition = playerObject.transform.position; float dist = Vector3.Distance(blockPosition, playerPosition); PlayerScript player = playerObject.GetComponent <PlayerScript>(); if (block.type == BlockScript.BlockType.Wood && dist < 1.2 && player.onPlatform) { if (Input.GetMouseButtonDown(1)) { Destroy(block.gameObject); } else { block.IfMouseOver(); } } } } }