void Collect(GameObject brankas) { Brankas brankasScript = brankas.GetComponent <Brankas>(); brankasScript.moneyGraphic.SetActive(true); brankasScript.moneyGraphic.GetComponent <Money> ().Animate(); /* Collect money dari brankas */ // Brankas pasti sudah bisa dicollect brankasScript.status = (int)Brankas.Status.BRANKAS_CLOSED; SendMoney(Mathf.Round(brankasScript.money * Mathf.Min(brankasScript.progress, 100f) / 100f * goingToCollect)); Debug.Log("Collect from brankas " + brankas); //Animator anim = brankas.GetComponent<Animator> (); //ffanim.SetBool ("isOpen", false); Debug.Log("BRANKAS COLLECTED " + brankas); //aliranData [brankas.GetComponent<Brankas> ().id].GetComponent<Animator>().speed = 1; //aliranData [brankas.GetComponent<Brankas> ().id].SetActive(false); brankasScript.progress = 0; progressSendHack [brankasScript.id] = 0; sendHackAnim = aliranData [brankasScript.id].GetComponent <Animator> (); sendHackAnim.Play("alirandata" + (brankasScript.id + 1), -1, progressSendHack [brankasScript.id] / 100); collecting [brankasScript.id] = false; }
void CollectAll() { /* Collect money dari seluruh brankas */ // Cek apakah ada brankas yang kebuka bool anyBrankasOpen = false; goingToCollect = 0; foreach (GameObject brankas in brankasSpawned) { Brankas brankasScript = brankas.GetComponent <Brankas>(); if (brankasScript.status == (int)Brankas.Status.BRANKAS_OPENING || brankasScript.status == (int)Brankas.Status.BRANKAS_OPENED) { anyBrankasOpen = true; break; } } // Kalau tidak ada brankas terbuka, game over if (!anyBrankasOpen) { GameOver(); } else { foreach (GameObject brankas in brankasSpawned) { Brankas brankasScript = brankas.GetComponent <Brankas>(); // Kalau brankas opening/opened (bisa di collect), collect if (brankasScript.status != (int)Brankas.Status.BRANKAS_CLOSED) { goingToCollect++; Collect(brankas); } } } }
void StartHack(int brankasId) { /* Brankas ke-brankasId mulai kebuka */ //int idx = brankasSpawned [brankasId].GetComponent<Brankas>().id; int i = 0; SoundManager.instance.playSFX(SoundManager.COINHACK); while (brankasId != brankasSpawned [i].GetComponent <Brankas> ().id) { i++; } Debug.Log("HAcking"); Brankas brankasScript = brankasSpawned[i].GetComponent <Brankas>(); brankasScript.status = (int)Brankas.Status.BRANKAS_OPENING; }
// Update is called once per frame void Update() { /* Game Loop * SendHack() akan dipanggil setiap levelData.hackDefaultDelay * Hanya akan dicek ketika game sedang play * Tidak boleh mengirim ke brankas yang sedang SendHack(), namun belum StartHack() * Tidak boleh mengirim ke brankas yang sedang dihack (StartHack() sedang jalan) */ if (!ready) { return; } if (levelData.gameStatus == (int)LevelData.GameStatus.GAMESTATUS_PLAY) { hackDelay -= Time.deltaTime; if (hackDelay <= 0 && hacksLeft > 0) { float doubleChance = Random.Range(0f, 1f); bool repeat = false; if (doubleChance <= 0.15f && hacksLeft > 2 && levelData.level >= 4) { repeat = true; } int id = Random.Range(0, brankasSpawned.Count); int idx = brankasSpawned [id].GetComponent <Brankas>().id; if (!sendingHack[idx] && brankasSpawned[id].GetComponent <Brankas>().status == (int)Brankas.Status.BRANKAS_CLOSED) { SendHack(id); sendingHack[idx] = true; collecting [idx] = true; if (repeat) { hackDelay = Random.Range(0.05f, 0.2f); } else { hackDelay = levelData.hackDefaultDelay * Random.Range(0.7f, 1.0f); } hacksLeft--; } } // Hacking left 0, sudah tidak ada hacking berlangsung -> Next level if (hacksLeft <= 0) { bool stillHacking = false; for (int i = 0; i < maxBrankas; i++) { if (sendingHack[i]) { //Debug.Log ("SENDINGHACK"); stillHacking = true; break; } } foreach (GameObject brankas in brankasSpawned) { Brankas brankasScript = brankas.GetComponent <Brankas>(); if (brankasScript.status == (int)Brankas.Status.BRANKAS_OPENING || brankasScript.status == (int)Brankas.Status.BRANKAS_OPENED) { //Debug.Log ("STILLHACKING"); stillHacking = true; break; } } if (!stillHacking) { //Debug.Log("!STILLHACKING"); NextLevel(); } } } if (levelData.gameStatus == (int)LevelData.GameStatus.GAMESTATUS_PLAY) { for (int i = 0; i < maxBrankas; i++) { if (sendingHack [i] && progressSendHack[i] <= 100) { progressSendHack [i] += Time.deltaTime * levelData.sendHackSpeed * levelData.sendHackSpeedMult; //Debug.Log ("PROGRESSING" + progressSendHack[i]); sendHackAnim = aliranData [i].GetComponent <Animator> (); sendHackAnim.Play("alirandata" + (i + 1), -1, progressSendHack [i] / 100); } //Debug.Log (progressSendHack[i]+" "+i); if (sendingHack[i] && progressSendHack [i] > 100) { Debug.Log("Starting Hack " + i); sendingHack [i] = false; StartHack(i); } } } /* * if (platform == 1) { * // Android * Debug.Log("Android"); * if (Input.touchCount > 0 && Input.GetTouch (0).phase == TouchPhase.Began) { * if (levelData.gameStatus == (int)LevelData.GameStatus.GAMESTATUS_PLAY) { * Debug.Log ("COLLECT ALL"); * CollectAll (); * } else if (levelData.gameStatus == (int)LevelData.GameStatus.GAMESTATUS_MENU) { * Debug.Log ("SPACE PRESSED"); * StartCoroutine (Fade (start, false)); * StartCoroutine (Fade (game, true)); * StartGame (); * Debug.Log (levelData.gameStatus); * } else if (Input.GetKeyDown (KeyCode.Space) && levelData.gameStatus == (int)LevelData.GameStatus.GAMESTATUS_END && !inAnimation) { * Debug.Log ("SPACE PRESSED, RETRY"); * StartCoroutine (Fade (end, false)); * StartCoroutine (Fade (game, true)); * StartGame (); * Debug.Log (levelData.gameStatus); * } * } * } * else {*/ // Windows or others if ((Input.GetKeyDown(KeyCode.Space) || (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)) && levelData.gameStatus == (int)LevelData.GameStatus.GAMESTATUS_PLAY) { Debug.Log("COLLECT ALL"); CollectAll(); } else if ((Input.GetKeyDown(KeyCode.Space) || (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)) && levelData.gameStatus == (int)LevelData.GameStatus.GAMESTATUS_MENU) { Debug.Log("SPACE PRESSED"); StartCoroutine(Fade(start, false)); StartCoroutine(Fade(game, true)); StartGame(); Debug.Log(levelData.gameStatus); } else if ((Input.GetKeyDown(KeyCode.Space) || (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)) && levelData.gameStatus == (int)LevelData.GameStatus.GAMESTATUS_END && !inAnimation) { Debug.Log("SPACE PRESSED, RETRY"); StartCoroutine(Fade(end, false)); StartCoroutine(Fade(game, true)); StartGame(); Debug.Log(levelData.gameStatus); } //} }