Пример #1
0
    int DetermineGoldRequiredToHealPlayer(CharSats player, int index)
    {
        int cost = 0;

        if (player._isDead)
        {
            cost += player._maxHP * player._charLevel;
        }
        cost += player._maxHP - player._currentHP;

        return(cost);
    }
Пример #2
0
    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";
    }
Пример #3
0
    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();
        }
    }
Пример #4
0
    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;
        }
    }