示例#1
0
        /// <summary>
        /// Перегружаем оператор сложения
        /// </summary>
        /// <param name="s1"></param>
        /// <param name="s2"></param>
        /// <returns>Возвращает сумму статов</returns>
        public static PlayerStates operator +(PlayerStates s1, PlayerStates s2)
        {
            PlayerStates result = new PlayerStates() {
                maxHealth                  = s1.maxHealth                  + s2.maxHealth,
                health                     = s1.health                     + s2.health,
                maxEnergy                  = s1.maxEnergy                  + s2.maxEnergy,
                energy                     = s1.energy                     + s2.energy,
                maxMana                    = s1.maxMana                    + s2.maxMana,
                mana                       = s1.mana                       + s2.mana,
                damageMelee                = s1.damageMelee                + s2.damageMelee,
                damageRanged               = s1.damageRanged               + s2.damageRanged,
                damageMagic                = s1.damageMagic                + s2.damageMagic,
                criticalDamageMelee        = s1.criticalDamageMelee        + s2.criticalDamageMelee,
                criticalDamageRanged       = s1.criticalDamageRanged       + s2.criticalDamageRanged,
                criticalDamageMagic        = s1.criticalDamageMagic        + s2.criticalDamageMagic,
                chanceCriticalDamageMelee  = s1.chanceCriticalDamageMelee  + s2.chanceCriticalDamageMelee,
                chanceCriticalDamageRanged = s1.chanceCriticalDamageRanged + s2.chanceCriticalDamageRanged,
                chanceCriticalDamageMagic  = s1.chanceCriticalDamageMagic  + s2.chanceCriticalDamageMagic,
                protectionMelee            = s1.protectionMelee            + s2.protectionMelee,
                protectionRanged           = s1.protectionRanged           + s2.protectionRanged,
                protectionMagic            = s1.protectionMagic            + s2.protectionMagic
            };

            if (result.health > result.maxHealth)
                result.health = result.maxHealth;

            if (result.mana > result.maxMana)
                result.mana = result.maxMana;

            if (result.energy > result.maxEnergy)
                result.energy = result.maxEnergy;

            return result;
        }
示例#2
0
        //private float timeStamp;
        void Start()
        {
            states         = new PlayerStates();
            damage         = new PlayerStates();
            specifications = new PlayerSpecifications();

                specifications.strength     = 3;
                specifications.stamina      = 4;
                specifications.intelligence = 0;
                specifications.agility      = 4;

                damage.health = 50f; // урон в 2 ед.

                states.damageMelee               = 2f;
                states.chanceCriticalDamageMelee = 0.05f;
                states.criticalDamageMelee       = 0.2f;
                states.health                    = 30f;
                states.maxHealth                 = 30f;

            base.OnStart();
        }
示例#3
0
        /// <summary>
        /// Возвращает полученный и "усвоенный" урон
        /// </summary>
        /// <param name="defenderStates">Статы защищающейся стороны</param>
        /// <param name="defenderSpecifications">навыки защищающейся стороны</param>
        /// <param name="damage">урон-по умолчанию, который сторона получает</param>
        /// <returns>Возвращает полученный урон</returns>
        public static PlayerStates doProtection(PlayerStates         defenderStates,
												PlayerSpecifications defenderSpecifications,
												PlayerStates damage)
        {
            return damage;
        }
示例#4
0
        /// <summary>
        /// Урон, который посылает атакующая сторона
        /// </summary>
        /// <param name="attackerStates">статы атакующей стороны</param>
        /// <param name="attackerSpecifications">характеристики атакующей стороны</param>
        /// <param name="defaultAttack">значение атаки-по умолчанию предмета</param>
        /// <returns>Возвращает наносимый урон</returns>
        public static PlayerStates createDamage(PlayerStates         attackerStates,
												PlayerSpecifications attackerSpecifications,
												PlayerStates defaultAttack)
        {
            return defaultAttack;
        }
示例#5
0
 /// <summary>
 /// Наносит урон this
 /// </summary>
 /// <param name="value">Значение наносимого урона</param>
 public override void getDamage(PlayerStates value)
 {
     states -= AttackCalculator.doProtection(getStates(),getSpecifications(),value); // пытаемся защититься нанесённому урону
 }
示例#6
0
 /// <summary>
 /// Увеличивает текущие статы AI на набор value
 /// </summary>
 /// <param name="value">набор статов, изменяющих значение</param>
 public abstract void getDamage(PlayerStates value);