// this returns a special rule enum so that we can use it later.
    protected SpecialRulesEnum RollStat()
    {
        SpecialRulesEnum[] enumValues = SpecialRulesEnum.GetValues(typeof(SpecialRulesEnum)) as SpecialRulesEnum[];
        int e = UnityEngine.Random.Range(0, enumValues.Length);
        SpecialRulesEnum rule = enumValues[e];

        return(rule);
    }
Exemplo n.º 2
0
 bool HasRule(SpecialRulesEnum rule)
 {
     if (SpecialRules.Contains(rule) || Modifiers.Contains(rule))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Exemplo n.º 3
0
    // this is for calculating how many times we can hit a fleeing enemy or charging enemy
    public int CalcRules(SpecialRulesEnum checker)
    {
        int tempMaxReaction = 0;

        foreach (SpecialRulesEnum mum in SpecialRules)
        {
            if (mum == checker)
            {
                tempMaxReaction++;
            }
        }
        foreach (SpecialRulesEnum mum in Modifiers)
        {
            if (mum == checker)
            {
                tempMaxReaction++;
            }
        }


        return(tempMaxReaction);
    }
    // this puts the stat in the list if it meets our criteria
    protected void AssignStat()
    {
        // start by getting a random stat.
        SpecialRulesEnum pot = RollStat();

        // then test it against stuff.
        switch (pot)
        {
        case SpecialRulesEnum.None:
            if (none > 0)
            {
                AssignStat();
            }
            else
            {
                none++;
            }
            break;

        case SpecialRulesEnum.Counter:
            if (WeaponCategory == WeaponType.Magic)
            {
                AssignStat();
                break;
            }
            else
            {
                myRules.Add(pot);
                break;
            }

        case SpecialRulesEnum.Brace:
            if (WeaponCategory == WeaponType.Magic)
            {
                AssignStat();
                break;
            }
            else
            {
                myRules.Add(pot);
                break;
            }

        case SpecialRulesEnum.Flexible:

            AssignStat();
            break;


        case SpecialRulesEnum.Block:
            if (WeaponCategory == WeaponType.Magic)
            {
                AssignStat();
                break;
            }
            else
            {
                myRules.Add(pot);
                break;
            }

        case SpecialRulesEnum.DisarmingCrits:
            if (WeaponCategory == WeaponType.Magic)
            {
                AssignStat();
                break;
            }
            else
            {
                myRules.Add(pot);
                break;
            }

        case SpecialRulesEnum.ShatteringCrits:
            if (WeaponCategory == WeaponType.Magic)
            {
                AssignStat();
                break;
            }
            else
            {
                myRules.Add(pot);
                break;
            }

        case SpecialRulesEnum.IncreasedCrits:
            if (WeaponCategory == WeaponType.Magic)
            {
                AssignStat();
                break;
            }
            else
            {
                myRules.Add(pot);
                break;
            }

        case SpecialRulesEnum.StunningCrits:
            if (WeaponCategory == WeaponType.Magic)
            {
                AssignStat();
                break;
            }
            else
            {
                myRules.Add(pot);
                break;
            }

        case SpecialRulesEnum.BetterCrits:
            if (WeaponCategory == WeaponType.Magic)
            {
                AssignStat();
                break;
            }
            else
            {
                myRules.Add(pot);
                break;
            }

        case SpecialRulesEnum.Lingering:
            if (WeaponCategory != WeaponType.Magic)
            {
                AssignStat();
                break;
            }
            else
            {
                myRules.Add(pot);
                break;
            }

        case SpecialRulesEnum.Prolonged:
            if (WeaponCategory != WeaponType.Magic)
            {
                AssignStat();
            }
            else
            {
                myRules.Add(pot);
            }
            break;

        case SpecialRulesEnum.Light:
            if (!myRules.Contains(SpecialRulesEnum.Heavy) && !myRules.Contains(SpecialRulesEnum.Light))
            {
                myRules.Add(pot);
            }
            else
            {
                AssignStat();
            }

            break;

        case SpecialRulesEnum.Heavy:
            if (!myRules.Contains(SpecialRulesEnum.Light) && !myRules.Contains(SpecialRulesEnum.ExtraDamage) && heavy > 3)
            {
                myRules.Add(SpecialRulesEnum.ExtraDamage);
                myRules.Add(pot);
            }
            else
            {
                heavy++;
                AssignStat();
            }
            break;

        default:
            AssignStat();
            break;
        }
    }