Esempio n. 1
0
    public void RefreshPlayerStats()
    {
        string fightType = PlayerStats.Initiative == 6 ? "(ББ)" : "(ДБ)";

        transform.Find("Initiative Stat Info").Find("Number Text").GetComponent <Text>().text       = PlayerStats.Initiative + fightType;
        transform.Find("Close Combat Dmg Stat Info").Find("Number Text").GetComponent <Text>().text = PlayerStats.CloseCombatDmgPercent + "%";
        //int PercentToNumber = Mathf.RoundToInt(PlayerStats.CurrentNumberWhichIsHundredPercent / 100f * PlayerStats.PenetrationPercent);
        int numberToPercent = BattleMechanics.RoundItUp((float)PlayerStats.Penetration / PlayerStats.CurrentNumberWhichIsHundredPercent * 100f);

        transform.Find("Penetration Stat Info").Find("Number Text").GetComponent <Text>().text         = PlayerStats.Penetration + "(" + numberToPercent + "%)";
        transform.Find("Crit. Strength Stat Info").Find("Number Text").GetComponent <Text>().text      = PlayerStats.PhysCritPowerPercent + "%";
        transform.Find("Distance Combat Dmg Stat Info").Find("Number Text").GetComponent <Text>().text = PlayerStats.DistantCombatDmg + "%";
        numberToPercent = BattleMechanics.RoundItUp((float)PlayerStats.Evasion / PlayerStats.CurrentNumberWhichIsHundredPercent * 100f);
        //PercentToNumber = Mathf.RoundToInt(PlayerStats.CurrentNumberWhichIsHundredPercent / 100f * PlayerStats.EvasionPercent);
        transform.Find("EvasionPercent Stat Info").Find("Number Text").GetComponent <Text>().text = PlayerStats.Evasion + "(" + numberToPercent + "%)";
        numberToPercent = BattleMechanics.RoundItUp((float)PlayerStats.PhysCritChance / PlayerStats.CurrentNumberWhichIsHundredPercent * 100f);
        transform.Find("Crit. Chance Stat Info").Find("Number Text").GetComponent <Text>().text = PlayerStats.PhysCritChance + "(" + numberToPercent + "%)";
        transform.Find("Health Stat Info").Find("Number Text").GetComponent <Text>().text       = PlayerStats.MaxHp + "";
        //PercentToNumber = Mathf.RoundToInt(PlayerStats.CurrentNumberWhichIsHundredPercent / 100f * PlayerStats.PhysArmorPercent);
        numberToPercent = BattleMechanics.RoundItUp((float)PlayerStats.PhysArmor / PlayerStats.CurrentNumberWhichIsHundredPercent * 100f);
        transform.Find("Armor Stat Info").Find("Number Text").GetComponent <Text>().text                = PlayerStats.PhysArmor + "(" + numberToPercent + "%)";
        transform.Find("Magic Dmg Stat Info").Find("Number Text").GetComponent <Text>().text            = PlayerStats.MagicCombatDmg + "";
        transform.Find("Elemental Resistance Stat Info").Find("Number Text").GetComponent <Text>().text = PlayerStats.ElementalResistancePercent + "%";
        transform.Find("Accuracy Stat Info").Find("Number Text").GetComponent <Text>().text             = PlayerStats.AccuracyPercent + "%";
        transform.Find("RDmg Stat Info").Find("Number Text").GetComponent <Text>().text = PlayerStats.RightWeaponMinDmg + "-" + PlayerStats.RightWeaponMaxDmg;
        transform.Find("LDmg Stat Info").Find("Number Text").GetComponent <Text>().text = PlayerStats.LeftWeaponMinDmg + "-" + PlayerStats.LeftWeaponMaxDmg;
    }
Esempio n. 2
0
    public void BeginBattle() //кнопка "Начать бой"
    {
        BattleMechanics.GameStarted = true;
        BeginBattleButton.SetActive(false);
        GameObject.Find("Attack Button").GetComponent <Button>().enabled  = true;
        GameObject.Find("Defence Button").GetComponent <Button>().enabled = true;
        GameObject.Find("Clear Button").GetComponent <Button>().enabled   = true;
        GameObject.Find("Attack Scroll").transform.Find("Button").GetComponent <Button>().enabled = true;
        GameObject.Find("Heal Scroll").transform.Find("Button").GetComponent <Button>().enabled   = true;
        GameObject.Find("Buff Scroll").transform.Find("Button").GetComponent <Button>().enabled   = true;
        GameObject.Find("Sleep Scroll").transform.Find("Button").GetComponent <Button>().enabled  = true;
        GameObject.Find("HP Potion").transform.Find("Button").GetComponent <Button>().enabled     = true;
        GameObject.Find("Balsam Potion").transform.Find("Button").GetComponent <Button>().enabled = true;
        GameObject.Find("Poison Potion").transform.Find("Button").GetComponent <Button>().enabled = true;
        ReadAllInputInfo.GetScrollInfo();
        //PlayerStats.CalculateStats();
        //PlayerStats.MaxToCurrent();
        Text logText = GameObject.Find("Log Field Text").GetComponent <Text>();

        logText.text += "Итак, бой начинается! Выберите себе противника. По умолчанию, выбран первый Монстр(" + BattleMechanics.NpcList[BattleMechanics.SelectedNpc].Name + ").\n\r";
        PlayerStats.PlayerNumbersToPercent();
        BattleMechanics.InitiativeCount();
        //foreach (var skills in NpcMonster.enemySkills)
        //{
        //    logText.text += "\n\rскил №" + skills + " добавлен в список активных скилов.\n\r";
        //}
    }
Esempio n. 3
0
 public PlayerController(Player p, Movement m, BattleMechanics b, CheckpointMananger c, SoundMananger s, AnimatorMananger a)
 {
     _player             = p;
     _movement           = m;
     _battle             = b;
     _checkpointMananger = c;
     _soundMananger      = s;
     _animatorMananger   = a;
 }
Esempio n. 4
0
 private void Start()
 {
     _movement           = new Movement(this);
     _battleMechanics    = new BattleMechanics(this);
     _checkpointMananger = new CheckpointMananger(this);
     _soundMananger      = new SoundMananger(this);
     _animatorMananger   = new AnimatorMananger(this);
     _control            = new PlayerController(this, _movement, _battleMechanics, _checkpointMananger, _soundMananger, _animatorMananger);
     SaveCheckPoint();
 }
Esempio n. 5
0
    private IEnumerator TheBattle()
    {
        Debug.Log(rosterMinions[0]);

        scriptBotonCombate = botonCombate.GetComponent <BattleMechanics>();
        scriptBotonCombate.setMinions(rosterMinions);
        scriptBotonCombate.setTroops(rosterTroops);
        scriptBotonCombate.StartFirstRound();

        yield return(null);
    }
Esempio n. 6
0
 public void WaitTurns() //Если игрок спит/оглушён/напуган, то запускается этот метод
 {
     //int npcId = BattleMechanics.SelectedNpc;
     //NpcMonster npc = BattleMechanics.NpcList[npcId];
     BattleMechanics.TurnPhase();
     if (PlayerStats.SleepinessEffectOnHero || !PlayerStats.StunEffectOnHero || !PlayerStats.TerrorEffectOnHero)
     {
         WaitButton.SetActive(false);
         GameObject.Find("Defence Button").GetComponent <Button>().enabled = true;
     }
 }
Esempio n. 7
0
    void Awake()
    {
        _playerMovement = GetComponent<PlayerMovement>();
        _enemyHealth.GetComponent<EnemyHealth>();
        _battleMechanics = GetComponent<BattleMechanics>();
        _spiritBar = GetComponent<SpiritBar>();
        CurrentHealth = MaxHealth;
        IsDead = false;
        CanSpecial = false;

        Source = GetComponent<AudioSource>();
    }
Esempio n. 8
0
    void Awake()
    {
        _playerMovement = GetComponent <PlayerMovement>();
        _enemyHealth.GetComponent <EnemyHealth>();
        _battleMechanics = GetComponent <BattleMechanics>();
        _spiritBar       = GetComponent <SpiritBar>();
        CurrentHealth    = MaxHealth;
        IsDead           = false;
        CanSpecial       = false;

        Source = GetComponent <AudioSource>();
    }
Esempio n. 9
0
    public void PhysDef() //
    {
        int        npcId = BattleMechanics.SelectedNpc;
        NpcMonster npc   = BattleMechanics.NpcList[npcId];

        PlayerStats.PlayerBattlePhase(2, npc);
        if (npc.CurrentHp == 0 || PlayerStats.CurrentHp == 0)
        {
            BattleMechanics.WhoIsLoosing(npc);
            if (PlayerStats.CurrentHp == 0 || BattleMechanics.GameOver)
            {
                return;
            }
        }
        BattleMechanics.TurnPhase();
        //BattleMechanics.PlayerMadeHisTurn = false;
    }
Esempio n. 10
0
 public void ChangeWeaponTypeToCloseCombat()
 {
     if (PlayerStats.Initiative == 6 && BattleMechanics.GameStarted)
     {
         BattleMechanics.LogText.text += "\n\rУ Героя и так Ближний Бой.\n\r";
         return;
     }
     PlayerStats.Initiative     = 6;
     PlayerStats.DistanceAttack = false;
     if (BattleMechanics.GameStarted)
     {
         BattleMechanics.LogText.text += "\n\rГерой меняет своё оружие на Ближний Бой.\n\r";
         PlayerStats.MadeTurn          = true;
         PlayerStats.WeaponSwitch      = true;
         BattleMechanics.TurnPhase();
         BattleMechanics.InitiativeCount();
     }
 }
Esempio n. 11
0
    // Start is called before the first frame update
    void Start()
    {
        uiControllerInstance = uiController.GetComponent <UiController>();
        scriptBotonCombate   = botonCombate.GetComponent <BattleMechanics>();
        minionsCount         = 0;
        score          = 0;
        screenbounds   = GetScreenBounds();
        battlePosition = battlePlaceTransform.position;
        mapPosition    = mapPlaceTransform.position;
        randomNumber   = 0;
        inBattle       = false;


        rosterMinions.Add(new Undead());
        rosterMinions.Add(new Undead());
        rosterMinions.Add(new Undead());

        TextLairUpdate();
    }
Esempio n. 12
0
    public void CalculateDmg()
    {
        string weaponLvlText = transform.Find("Weapon Lvl InputField").Find("Text").GetComponent <Text>().text;
        int    weaponLvl;

        if (int.TryParse(weaponLvlText, out weaponLvl))
        {
        }
        else
        {
            return;
        }
        for (int i = 1; i < weaponLvl; i++)
        {
            int tempMaxDmg = _maxDmg;
            _minDmg = _maxDmg + 1;
            float roundedNumber = tempMaxDmg * 2.5f;
            _maxDmg = (int)BattleMechanics.RoundItUp(roundedNumber);
        }
        DisplayDmgText();
    }
Esempio n. 13
0
    public void PhysAttack() //
    {
        Text       logText = GameObject.Find("Log Field Text").GetComponent <Text>();
        int        npcId   = BattleMechanics.SelectedNpc;
        NpcMonster npc     = BattleMechanics.NpcList[npcId];

        if (npc.CurrentHp == 0)
        {
            logText.text += npc.Name + " уже недееспособен. Выберите другого противника.\n\r";
            return;
        }
        PlayerStats.PlayerBattlePhase(1, npc);
        if (npc.CurrentHp == 0 || PlayerStats.CurrentHp == 0)
        {
            BattleMechanics.WhoIsLoosing(npc);
            if (BattleMechanics.GameOver)
            {
                return;
            }
        }
        BattleMechanics.TurnPhase();
        //BattleMechanics.PlayerMadeHisTurn = false;
    }
Esempio n. 14
0
 private void Start()
 {
     FightButtonScript = FightButton.GetComponent <BattleMechanics>();
 }
    /* 1 - свиток маг атаки
     * 2 - свиток восстановления
     * 3 - свиток усиления хар.
     * 4 - свиток сна
     */

    void ScrollMechanics(int option, int npcId)
    {
        Text       logText = GameObject.Find("Log Field Text").GetComponent <Text>();
        NpcMonster npc     = BattleMechanics.NpcList[npcId];

        if (npc.CurrentHp == 0 && (option == 1 || option == 4))
        {
            logText.text += npc.Name + " уже недееспособен. Выберите другого противника.\n\r";
            return;
        }
        PlayerStats.PlayerBattlePhase(3, npc);
        if (PlayerStats.CurrentHp == 0)
        {
            BattleMechanics.WhoIsLoosing(npc);
            return;
        }
        //BattleMechanics.PlayerSkillAndBuffCountersCheck();
        switch (option)
        {
        case 1:
            PlayerStats.PlayerMagicAttack(npc, ScrollEffects.ScrollMult, ScrollEffects.ScrollDmg);
            break;

        case 2:
            ScrollEffects.HpScrollMechanic(ScrollEffects.ScrollHp);
            logText.text += "\n\rИспользован свиток лечения. ХП Героя возросло на " + ScrollEffects.ScrollHp +
                            ", теперь у Героя " + PlayerStats.CurrentHp + " ХП.\n\r";
            break;

        case 3:
            if (!PlayerStats.BuffIsActivated)
            {
                ScrollEffects.BoostScrollMechanic(ScrollEffects.ScrollBuff);
                logText.text +=
                    "\n\rИспользован свиток усиления характеристик на 3 хода. Характеристики возросли на " +
                    ScrollEffects.ScrollBuff + ".\n\r";
            }
            else
            {
                logText.text         += "\n\rСвиток усиления характеристик уже действует. Эффект продлён до 3 ходов\n\r";
                PlayerStats.BuffTurns = 3;
            }
            break;

        case 4:
            ScrollEffects.SleepScrollMechanic(npc);
            logText.text += "\n\rИспользован свиток сна. " + npc.Name + " засыпает на 2 хода\n\r";
            break;
        }
        if (npc.CurrentHp == 0) //если боевой свиток убил моба
        {
            //if (BattleMechanics.eZombie)
            //{
            //    BattleMechanics.EnemySkillZombieDied();
            //    logText.text += "Магия убила зомби. Теперь на место зомби встал хозяин.\n\r";
            //    return;
            //}
            if (npc.Reincarnation)
            {
                npc.EnemyReincarnation();
            }
            else
            {
                BattleMechanics.WhoIsLoosing(npc);
            }
        }
        //if (option != 1)//в методе PlayerBattlePhase уже есть атака монстра
        BattleMechanics.AfterPlayerAction();
    }
    public void UseSkillbyID()
    {
        Text       logText = GameObject.Find("Log Field Text").GetComponent <Text>();
        NpcMonster npc     = BattleMechanics.NpcList[BattleMechanics.SelectedNpc];

        if (npc.CurrentHp == 0)
        {
            logText.text += npc.Name + " уже недееспособен. Выберите другого противника.\n\r";
            return;
        }

        switch (skillId)
        {
        //скилы, которые атакуют сразу
        //оружейные:
        case 2:     //Удар в печень
        case 4:     //Оружие вон
        case 6:     //Саблезуб
        case 7:     //Камикадзе
        case 15:    //Стрела к олено
        case 16:    //Рыцарский хук
        case 17:    //Безумец
        case 18:    //Разряд
        case 19:    //Выпад
        case 20:    //Тишина
        case 21:    //Невозмутимость
        //щитовые:
        case 27:    //Электро
        case 28:    //Всем лежать!
            if (npc.CurrentHp == 0)
            {
                logText.text += npc.Name + " уже недееспособен. Выберите другого противника.\n\r";
                return;
            }
            PlayerStats.PlayerSkillEffects(skillId, npc);     //используем скил
            PlayerStats.PlayerBattlePhase(1, npc);
            break;

        //просто включают пассивки
        //оружейные:
        case 8:     //Кровотечение
        case 9:     //Вампир
        case 10:    //Костолом
        case 11:    //Дуэлянт
        case 22:    //пассивка "Безумца"
        case 23:    //Ярость
        case 24:    //Пожиратель душ
        case 25:    //Крушитель
        //щитовые:
        case 29:    //Месть
        case 30:    //Везунчик
        case 31:    //Зеркало
        case 32:    //Хранитель
        case 33:    //Стратег
        case 34:    //Дубовая голова

        //моментальное использование скила без проматывания хода
        //оружейные скилы:
        case 3:                                           //Зверь
        case 5:                                           //Берсерк
        //щитовые:
        case 12:                                          //Шипы
        case 13:                                          //Антимагия
        case 26:                                          //Накопитель
            PlayerStats.PlayerSkillEffects(skillId, npc); //используем скил
            return;
            //BattleMechanics.PlayerBattlePhase(3, npc);
            //break;
        }
        if (npc.CurrentHp == 0 || PlayerStats.CurrentHp == 0)
        {
            BattleMechanics.WhoIsLoosing(npc);
            if (PlayerStats.CurrentHp == 0 || BattleMechanics.GameOver)
            {
                return;
            }
        }
        BattleMechanics.AfterPlayerAction(); //после использования скила монстр атакует в ответ
    }