// 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); }
bool HasRule(SpecialRulesEnum rule) { if (SpecialRules.Contains(rule) || Modifiers.Contains(rule)) { return(true); } else { return(false); } }
// 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; } }