public virtual void CalculatePreCoeffs() { preCoeffs[0].exchangeResult = ExchangeResult.No; preCoeffs[1].exchangeResult = ExchangeResult.No; preCoeffs[0].parry = (UnityEngine.Random.value <= defencePart); preCoeffs[1].parry = (UnityEngine.Random.value <= defencePart); // Предварительные коэффициенты на основе текущего набора оружия switch (weaponSet) { case WeaponSet.SwordShield: preCoeffs[0].damage = UnityEngine.Random.Range(m_Tweakers.DamageBaseMin, m_Tweakers.DamageBaseMax + 1); preCoeffs[0].damage += series.AddSeriesDamage(); preCoeffs[1].damage = 0f; preCoeffs[0].block = (UnityEngine.Random.Range(0f, 1f) <= m_Tweakers.BlockChance); preCoeffs[1].block = (UnityEngine.Random.Range(0f, 1f) <= m_Tweakers.BlockChance); break; case WeaponSet.SwordSword: preCoeffs[0].damage = UnityEngine.Random.Range(m_Tweakers.DamageBaseMin, m_Tweakers.DamageBaseMax + 1); preCoeffs[0].damage += series.AddSeriesDamage(); preCoeffs[1].damage = UnityEngine.Random.Range(m_Tweakers.DamageBaseMin * m_Tweakers.CoefSecondSword, m_Tweakers.DamageBaseMax * m_Tweakers.CoefSecondSword); preCoeffs[1].damage += series.AddSeriesDamage(); preCoeffs[0].block = false; preCoeffs[1].block = false; preCoeffs[0].blockVs2Handed = false; break; case WeaponSet.TwoHandedSword: preCoeffs[0].damage = UnityEngine.Random.Range(m_Tweakers.DamageBaseMin * m_Tweakers.Coef2HandedSword, m_Tweakers.DamageBaseMax * m_Tweakers.Coef2HandedSword); preCoeffs[0].damage += series.AddSeriesDamage(); preCoeffs[1].damage = 0f; preCoeffs[0].block = false; preCoeffs[1].block = false; preCoeffs[0].blockVs2Handed = false; break; } // А также предварительные коэффициенты на основе решения switch (decision) { case Decision.Attack: preCoeffs[0].evade = false; preCoeffs[1].evade = false; break; default: // точно какая-то смена preCoeffs[0].evade = (UnityEngine.Random.Range(0f, 1f) <= m_Tweakers.EvadeOnChangeChance); preCoeffs[1].evade = (UnityEngine.Random.Range(0f, 1f) <= m_Tweakers.EvadeOnChangeChance); preCoeffs[0].block = false; preCoeffs[1].block = false; preCoeffs[0].blockVs2Handed = false; preCoeffs[0].parry = false; preCoeffs[1].parry = false; break; } }