Ejemplo n.º 1
0
        protected virtual void ApplyStatusEffects(IList <UnitTemplate.StatusEffectProperty> list, Entity target)
        {
            for (int i = 0; i < list.Count; i++)
            {
                Unit.Upgrades.GetElements(list[i].Upgrade, out var template, out var data);

                float rate;

                if (template == null || data == null)
                {
                    rate = 0f;
                }
                else
                {
                    rate = data.Value / 1f / ItemsUpgradesCore.Max;
                }

                var probability = list[i].Probability.Sample(rate);

                if (StatusEffect.CheckProbability(probability))
                {
                    StatusEffect.Afflict(list[i].Data, target, this.Unit);
                }
                else
                {
                }
            }
        }
 void DoDamageCallback(Damage.Result result)
 {
     if (StatusEffect.CheckProbability(probabilty + Attack.Power.Percentage))
     {
         StatusEffect.Afflict(data, result.Target, result.Source);
     }
 }
 void TookDamageCallback(Damage.Result result)
 {
     if (result.Method == Damage.Method.Contact)
     {
         if (StatusEffect.CheckProbability(probabilty))
         {
             StatusEffect.Afflict(data, result.Source, this.Entity);
         }
     }
 }
Ejemplo n.º 4
0
        void HitCallback(Collider2D collider)
        {
            var entity = collider.gameObject.GetComponent <Entity>();

            if (entity == null)
            {
            }
            else if (Owner is Base && entity is Base) //Very Crude, Don't judge me
            {
            }
            else
            {
                if (StatusEffect.CheckProbability(probabilty))
                {
                    StatusEffect.Afflict(data, entity, Owner);
                }
            }
        }