public void DiminishingEffects(SecStatistic sec, double value)
 {
     if (sec.diminishingReturns &&
         sec.stats == sec.max / 2)
     {
         sec.stats += Mathf.Log10((float)value);
     }
 }
 public bool CompareStatsLHSisLarger(SecStatistic m_mainSec, PrimStatisic m_enemyPrim)
 {
     if (m_mainSec == null || m_enemyPrim == null)
     {
         return(false);
     }
     if (m_mainSec.stats > m_enemyPrim.stats)
     {
         return(true);
     }
     return(false);
 }
    private void StatsEffected(Entity m_entity)
    {
        List <StatsEffected> stats                  = m_entity.m_statsEffecting;
        List <PrimStatisic>  primStats              = m_entity.m_primStat;
        List <SecStatistic>  secStatistics          = m_entity.m_secStat;
        PrimStatisic         primaryEffectingStat   = null;
        SecStatistic         secondaryEffectingStat = null;
        SecStatistic         secondaryEffectedStat  = null;

        for (int i = 0; i < stats.Count; i++)
        {
            if (stats[i].m_effectingStats[stats[i].indexValueEffecting].Contains(primStats[i].name))
            {
                primaryEffectingStat = primStats[i];
            }
            if (stats[i].m_effectingStats[stats[i].indexValueEffecting].Contains(secStatistics[i].name))
            {
                secondaryEffectingStat = secStatistics[i];
            }
            if (stats[i].m_statsEffected[stats[i].indexValueEffected].Contains(secStatistics[i].name))
            {
                secondaryEffectedStat = secStatistics[i];
            }
            if (primaryEffectingStat == null)
            {
                CalculateStat(primaryEffectingStat, secondaryEffectedStat, stats[i]);
            }
            else if (secondaryEffectingStat == null)
            {
                CalculateStat(secondaryEffectingStat, secondaryEffectedStat, stats[i]);
            }
            primaryEffectingStat   = null;
            secondaryEffectingStat = null;
            secondaryEffectedStat  = null;
        }
    }
 private void CalculateStat(SecStatistic secondEffecting, SecStatistic secondEffected, StatsEffected m_stats)
 {
     secondEffected.stats = m_stats.operate(secondEffecting.stats, secondEffected.stats);
 }
 //Overloaded functions for primary and secondary change in stats.
 private void CalculateStat(PrimStatisic primary, SecStatistic second, StatsEffected m_stats)
 {
     //Uses the operators in the statseffected to return the funcs.
     second.stats = m_stats.operate(primary.stats, second.stats);
 }