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; }
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"; //} }
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; }
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(); }
private IEnumerator TheBattle() { Debug.Log(rosterMinions[0]); scriptBotonCombate = botonCombate.GetComponent <BattleMechanics>(); scriptBotonCombate.setMinions(rosterMinions); scriptBotonCombate.setTroops(rosterTroops); scriptBotonCombate.StartFirstRound(); yield return(null); }
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; } }
void Awake() { _playerMovement = GetComponent<PlayerMovement>(); _enemyHealth.GetComponent<EnemyHealth>(); _battleMechanics = GetComponent<BattleMechanics>(); _spiritBar = GetComponent<SpiritBar>(); CurrentHealth = MaxHealth; IsDead = false; CanSpecial = false; Source = GetComponent<AudioSource>(); }
void Awake() { _playerMovement = GetComponent <PlayerMovement>(); _enemyHealth.GetComponent <EnemyHealth>(); _battleMechanics = GetComponent <BattleMechanics>(); _spiritBar = GetComponent <SpiritBar>(); CurrentHealth = MaxHealth; IsDead = false; CanSpecial = false; Source = GetComponent <AudioSource>(); }
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; }
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(); } }
// 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(); }
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(); }
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; }
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(); //после использования скила монстр атакует в ответ }