int DetermineGoldRequiredToHealPlayer(CharSats player, int index) { int cost = 0; if (player._isDead) { cost += player._maxHP * player._charLevel; } cost += player._maxHP - player._currentHP; return(cost); }
public void FillHealPanel() { for (int i = 0; i < GameManager.Instance._playerStats.Length; i++) { CharSats player = GameManager.Instance._playerStats[i]; _nameTexts[i].text = player._charName; _hpTexts[i].text = player._currentHP.ToString(); _maxTexts[i].text = player._maxHP.ToString(); _costTexts[i].text = DetermineGoldRequiredToHealPlayer(player, i) + "g"; _individualCosts[i] = DetermineGoldRequiredToHealPlayer(player, i); _playerButtons[i].GetComponentInChildren <Text>().text = player._charName; } _goldText.text = GameManager.Instance._currentGold + "g"; }
public void BattleStart(string[] enemiesToSpawn, bool canRetreat, Sprite BG) { if (!_battleActive) { _canRetreat = canRetreat; _battleBG.sprite = BG; _battleActive = true; GameManager.Instance._battleActive = true; _activeBattlers.Clear(); if (GameManager.Instance._inDungeon) { _3DCamera = Camera.main; _3DCamera.enabled = false; _battleCamera.enabled = true; //move the Battle Manager to the FPC camera position... //transform.position = new Vector3(MyCharacterController.Instance.transform.position.x, MyCharacterController.Instance.transform.position.y + 0.55f, MyCharacterController.Instance.transform.position.z); transform.position = Vector3.zero; //Cursor.lockState = CursorLockMode.None; //MyCharacterController.Instance._cursorLocked = false; } else { //move the BattleManager to the camera's position... transform.position = new Vector3(Camera.main.transform.position.x, Camera.main.transform.position.y, transform.position.z); } _battleScene.SetActive(true); AudioManager.Instance.PlayMusic(0); //get the player stats from the GameManager at the start of the battle... for (int i = 0; i < _playerPositions.Length; i++) { if (GameManager.Instance._playerStats[i].gameObject.activeInHierarchy) { foreach (BattleChar player in _playerPrefabs) { if (player._charName == GameManager.Instance._playerStats[i]._charName) { BattleChar newPlayer = Instantiate(player, _playerPositions[i].transform.position, Quaternion.identity); newPlayer.transform.SetParent(_playerPositions[i]); _activeBattlers.Add(newPlayer); CharSats thePlayer = GameManager.Instance._playerStats[i]; _activeBattlers[i]._currentHP = thePlayer._currentHP; _activeBattlers[i]._maxHP = thePlayer._maxHP; _activeBattlers[i]._currentMP = thePlayer._currentMP; _activeBattlers[i]._maxMP = thePlayer._maxMP; _activeBattlers[i]._STR = thePlayer._strength; _activeBattlers[i]._DEF = thePlayer._defense; _activeBattlers[i]._wpnPwr = thePlayer._weaponPwr; _activeBattlers[i]._armPwr = thePlayer._armorPwr; _activeBattlers[i]._equippedWpn = thePlayer._equippedWpn; _activeBattlers[i]._equippedArm = thePlayer._equippedArm; _activeBattlers[i]._hasDied = thePlayer._isDead; } } } } //enemies for (int i = 0; i < enemiesToSpawn.Length; i++) { if (enemiesToSpawn[i] != "") { foreach (BattleChar enemy in _enemyPrefabs) { if (enemy._charName == enemiesToSpawn[i]) { BattleChar newEnemy = Instantiate(enemy, _enemyPositions[i].transform.position, Quaternion.identity); newEnemy.transform.SetParent(_enemyPositions[i]); newEnemy._markerSprite.color = SetEnemyMarkerColor(i); _activeBattlers.Add(newEnemy); } } } } _turnWaiting = true; _currentTurn = Random.Range(0, _activeBattlers.Count); UpdateUIStats(); } }
public void Use(int charToUseOn) { CharSats selectedChar = GameManager.Instance._playerStats[charToUseOn]; if (_isItem) { if (_affectHP) { if (selectedChar._isDead) { selectedChar._currentHP += 5; selectedChar._isDead = false; } else { selectedChar._currentHP = Mathf.Min(selectedChar._currentHP + _amountToChange, selectedChar._maxHP); } } if (_affectMP) { selectedChar._currentMP = Mathf.Min(selectedChar._currentMP + _amountToChange, selectedChar._maxMP); } if (_affectSTR) { selectedChar._strength += _amountToChange; } if (_affectDEF) { selectedChar._defense += _amountToChange; } if (_stopCurse) { GameManager.Instance._isCursed = false; foreach (CharSats player in GameManager.Instance._playerStats) { if (player.gameObject.activeSelf) { player._currentHP = player._maxHP; } } } } if (_isWeapon) { if (selectedChar._equippedWpn != "") { //put the equipped weapon back in inventory GameManager.Instance.AddItem(selectedChar._equippedWpn); selectedChar._equippedWpn = _itemName; selectedChar._weaponPwr = _weaponStr; } else { selectedChar._equippedWpn = _itemName; selectedChar._weaponPwr = _weaponStr; } } if (_isArmor) { if (selectedChar._equippedArm != "") { //put the equipped armor back in inventory GameManager.Instance.AddItem(selectedChar._equippedArm); selectedChar._equippedArm = _itemName; selectedChar._armorPwr = _armorStr; } else { selectedChar._equippedArm = _itemName; selectedChar._armorPwr = _armorStr; } } if (_isLight) { if (GameManager.Instance._inDungeon) { if (_itemName == "Common Torch" || _itemName == "Greater Torch") { OldSchoolFPC.Instance.TurnOnLight("yellow", _intensity, _range, _lifetime); } else { OldSchoolFPC.Instance.TurnOnLight("blue", _intensity, _range, _lifetime); } DungeonHUD.Instance.ShowLightIcon(_lightUIIndex); } } if (_isSpell) { if (_itemName == "Magic Eye") { GetComponent <MagicEye>().FindAllHiddenDoors(); } if (_itemName == "Magic Compass") { DungeonHUD.Instance.TurnOnCompass(); } GameManager.Instance._playerStats[charToUseOn]._currentMP -= _manaCost; } //remove the item from the inventory... GameManager.Instance.RemoveItem(_itemName); GameMenu.Instance._useButton.interactable = false; GameMenu.Instance._dropButton.interactable = false; GameMenu.Instance.UpdateCharStatus(charToUseOn); foreach (Button btn in GameMenu.Instance._selectCharacterButtons) { btn.enabled = true; } }