Ejemplo n.º 1
0
    public void AddResilience(DamageType damage, DamageResilience newRes)
    {
        var curRes = CheckVulnerability(damage);

        if (curRes != newRes && GetResiliencePriority(curRes, newRes) == newRes)
        {
            damageRelationships.Add(new DamageTypeReslience(damage, newRes));
        }
    }
Ejemplo n.º 2
0
    public DamageResilience CheckVulnerability(DamageType type)
    {
        DamageResilience ret = DamageResilience.NORMAL;
        var relationship     = damageRelationships.FindAll(x => x.first == type);

        if (relationship == null)
        {
            return(DamageResilience.NORMAL);
        }
        foreach (var relItem in relationship)
        {
            ret = GetResiliencePriority(ret, relItem.second);
        }
        return(ret);
    }
Ejemplo n.º 3
0
 DamageResilience GetResiliencePriority(DamageResilience a, DamageResilience b)
 {
     if (a == DamageResilience.REFLECT || b == DamageResilience.REFLECT)
     {
         return(DamageResilience.REFLECT);
     }
     if (a == DamageResilience.ABSORB || b == DamageResilience.ABSORB)
     {
         return(DamageResilience.ABSORB);
     }
     if (a == DamageResilience.IMMUNE || b == DamageResilience.IMMUNE)
     {
         return(DamageResilience.IMMUNE);
     }
     if (a == DamageResilience.RESIST || b == DamageResilience.RESIST)
     {
         return(DamageResilience.RESIST);
     }
     if (a == DamageResilience.WEAK || b == DamageResilience.WEAK)
     {
         return(DamageResilience.WEAK);
     }
     return(DamageResilience.NORMAL);
 }