private void Start() { //player.currShipEnergy = player.ShipEnergy; lootItem = null; goldLoot = 0; battleState = BattleState.creatingMap; coIsRunning = false; isMapFull = false; cleared = false; finded = false; board = new GemControler[col, row + 1]; GenerateBoard(); player = Player.Instance; monster = Monster.Instance; destroyedGemCount = new int[gems.Length]; player.CurrBuff = 0; player.CurrShield = 0; player.ShieldMax = 0; PopoutCreator.Initialize(); mapControler = GameObject.Find("MapControler").GetComponent <MapControler>(); playerImageTransform = GameObject.Find("PlayerImage").transform; enemyImageTransform = GameObject.Find("EnemyImage").transform; player.currShipEnergy = player.ShipEnergy; player.inventory.ForEach(item => { item.DoOnBattleStart(); }); audioSource = GetComponents <AudioSource>(); }
private void DoAttack() { bool isSuperNova = false; Color c = new Color(); //0-attack 1-heal 2-shield 3-buff 4-gold 5-debuff if (destroyedGemCount[3] > 0)//buff { ColorUtility.TryParseHtmlString("#FF8E00FF", out c); int value = destroyedGemCount[3] - 2; player.CurrBuff += value; PopoutCreator.CreatePopoutText("+" + value.ToString(), playerImageTransform, c); isSuperNova = isSuperNova ? true : (destroyedGemCount[3] >= superNovaCounter ? true : false); audioSource[0].clip = audioClips[3]; } if (destroyedGemCount[5] > 0)//debuff { ColorUtility.TryParseHtmlString("#FF8E00FF", out c); int value = destroyedGemCount[5]; monster.CurrBuff -= value; PopoutCreator.CreatePopoutText("+" + value.ToString(), enemyImageTransform, c); isSuperNova = isSuperNova ? true : (destroyedGemCount[5] >= superNovaCounter ? true : false); audioSource[0].clip = audioClips[4]; } if (destroyedGemCount[4] > 0)//gold { ColorUtility.TryParseHtmlString("#F1FF00FF", out c); int value = ((destroyedGemCount[4] - 3) * 20) + 30; player.gold += value; PopoutCreator.CreatePopoutText("+" + value.ToString(), playerImageTransform, c); isSuperNova = isSuperNova ? true : (destroyedGemCount[4] >= superNovaCounter ? true : false); audioSource[0].clip = audioClips[5]; } if (destroyedGemCount[1] > 0)//heal { ColorUtility.TryParseHtmlString("#00FF00FF", out c); int value = ((destroyedGemCount[1] - 3) * 2) + 3; player.HitPoint += value; PopoutCreator.CreatePopoutText("+" + value.ToString(), playerImageTransform, c); isSuperNova = isSuperNova ? true : (destroyedGemCount[1] >= superNovaCounter ? true : false); audioSource[0].clip = audioClips[2]; } if (destroyedGemCount[2] > 0)//shield { ColorUtility.TryParseHtmlString("#1697C5FF", out c); int value = ((destroyedGemCount[2] - 3) * 2) + 3 + player.CurrBuff; value = value > 0 ? value : 0; player.CurrShield += value; PopoutCreator.CreatePopoutText("+" + value.ToString(), playerImageTransform, c); isSuperNova = isSuperNova ? true : (destroyedGemCount[2] >= superNovaCounter ? true : false); audioSource[0].clip = audioClips[1]; } if (destroyedGemCount[0] > 0)//attack { ColorUtility.TryParseHtmlString("#B60101FF", out c); //destroyedGemCount[0] += player.currBuff; //destroyedGemCount[0] = destroyedGemCount[0] >= 0 ? destroyedGemCount[0] : 0; //int value = ((destroyedGemCount[0] - 3) * 2) + 3; int value = 3; for (int a = 1; a <= (destroyedGemCount[0] - 3); a++) { value += a * 2; } value += player.CurrBuff; value = value >= 0 ? value : 0; PopoutCreator.CreatePopoutText("-" + value.ToString(), enemyImageTransform, c); int temp = monster.CurrShield; monster.CurrShield -= value; value -= temp; if (value > 0) { monster.CurrHp -= value; } isSuperNova = isSuperNova ? true : (destroyedGemCount[0] >= superNovaCounter ? true : false); audioSource[0].clip = audioClips[0]; } int i = Random.Range(0, 2); audioSource[0].Play(); if (superNova) { GameObject nova = Instantiate(superNovaAnim); nova.transform.SetParent(novaPosition.transform); nova.GetComponent <RectTransform>().localPosition = Vector3.zero; Destroy(nova, superNovaAnim.GetComponent <Animator>().runtimeAnimatorController.animationClips[0].length - 0.1f); audioSource[1].clip = audioClips[6]; audioSource[1].Play(); player.currShipEnergy += 1; superNova = false; } Array.Clear(destroyedGemCount, 0, destroyedGemCount.Length); if (monster.CurrHp <= 0) { battleState = BattleState.win; monster.Kill(); } }