public void AddMedal(string strDef, MedalCombatAbility combatAbility, MedalAbility ability) { var medalCombatAbilities = new List <MedalCombatAbility>(); if (combatAbility.Attribute == "PSM") { foreach (var s in "PSM") { medalCombatAbilities.Add(new MedalCombatAbility { Attribute = s.ToString(), Direction = combatAbility.Direction, Duration = combatAbility.Duration, Tier = combatAbility.Tier, IsPlayerAffected = combatAbility.IsPlayerAffected, IsEnemyAffected = combatAbility.IsEnemyAffected, }); } } else if (combatAbility.Attribute == "UR") { foreach (var s in "UR") { medalCombatAbilities.Add(new MedalCombatAbility { Attribute = s.ToString(), Direction = combatAbility.Direction, Duration = combatAbility.Duration, Tier = combatAbility.Tier, IsPlayerAffected = combatAbility.IsPlayerAffected, IsEnemyAffected = combatAbility.IsEnemyAffected, }); } } else { medalCombatAbilities.Add(combatAbility); } switch (strDef) { case "strength": case "STR": foreach (var combat in medalCombatAbilities) { ability.STR.Add(combat); } break; case "defense": case "DEF": foreach (var combat in medalCombatAbilities) { ability.DEF.Add(combat); } break; default: Debug.Log("Something went wrong... " + strDef); break; } }
public bool AddToRaiseLowerMedal(string duration, string section, MedalAbility ability, string selfTarget = "") { var addResults = AddToRaiseLowerRegex.Matches(section); if (addResults.Count > 0) { foreach (Match addResult in addResults) { var direction = addResult.Groups[1].Value; var targetBool = string.IsNullOrEmpty(selfTarget) || selfTarget.Equals("self") ? true : false; var index = 3; for (int i = 0; i < 4; ++i) { var attribute = addResult.Groups[index].Value; var strDef = addResult.Groups[index + 1].Value; if (attribute != "" || strDef != "") { var amount = !string.IsNullOrEmpty(addResult.Groups[index + 2].Value) ? addResult.Groups[index + 2].Value : (index + 2) + 3 < addResult.Groups.Count && !string.IsNullOrEmpty(addResult.Groups[(index + 2) + 3].Value) ? addResult.Groups[(index + 2) + 3].Value : (index + 2) + 6 < addResult.Groups.Count && !string.IsNullOrEmpty(addResult.Groups[(index + 2) + 6].Value) ? addResult.Groups[(index + 2) + 6].Value : (index + 2) + 9 < addResult.Groups.Count && !string.IsNullOrEmpty(addResult.Groups[(index + 2) + 9].Value) ? addResult.Groups[(index + 2) + 9].Value : ""; if (attribute == "") { attribute = "Normal"; } if (strDef == "" && (index + 1) + 3 < addResult.Groups.Count) { strDef = addResult.Groups[(index + 1) + 3].Value; } if (strDef == "" && (index + 1) + 6 < addResult.Groups.Count) { strDef = addResult.Groups[(index + 1) + 6].Value; } if (strDef == "" && (index + 1) + 9 < addResult.Groups.Count) { strDef = addResult.Groups[(index + 1) + 9].Value; } var medalCombatAbility = new MedalCombatAbility() { Direction = direction, Attribute = attribute.Replace("-", ""), Tier = amount, Duration = duration, IsPlayerAffected = targetBool, IsEnemyAffected = !targetBool, }; // !! Medal Add Here !! this.AddMedal(strDef, medalCombatAbility, ability); } index += 3; } } return(true); } return(false); }
public bool SetRaiseLowerMedal(string duration, string section, MedalAbility ability, string selfTarget = "") { var setResults = SetRaiseLowerRegex.Matches(section); if (setResults.Count > 0) { foreach (Match setResult in setResults) { var targetBool = string.IsNullOrEmpty(selfTarget) || selfTarget.Equals("self") ? true : false; int.TryParse(setResult.Groups[2].Value, out var amount); var direction = amount > 0 ? "Raises" : "Lowers"; var index = 2; for (int i = 0; i < 4; ++i) { if (index > 2 && !string.IsNullOrEmpty(setResult.Groups[index].Value)) { int.TryParse(setResult.Groups[index].Value, out amount); direction = amount > 0 ? "Raises" : "Lowers"; } var attribute = setResult.Groups[index + 1].Value; var strDef = setResult.Groups[index + 2].Value; if (attribute != "" || strDef != "") { if (attribute == "") { attribute = "Normal"; } if (strDef == "" && (index + 2) + 3 < setResult.Groups.Count) { strDef = setResult.Groups[(index + 2) + 3].Value; } if (strDef == "" && (index + 2) + 6 < setResult.Groups.Count) { strDef = setResult.Groups[(index + 2) + 6].Value; } if (strDef == "" && (index + 2) + 9 < setResult.Groups.Count) { strDef = setResult.Groups[(index + 2) + 9].Value; } var medalCombatAbility = new MedalCombatAbility() { Direction = direction, Attribute = attribute.Replace("-", ""), Tier = amount.ToString().Replace("-", ""), Duration = duration, IsPlayerAffected = targetBool, IsEnemyAffected = !targetBool, }; // !! Medal Add Here !! this.AddMedal(strDef, medalCombatAbility, ability); } index += 3; } } ability.SetStrDef = "SetStrDef"; return(true); } return(false); }
private void OlderParseRaiseLowerBased(GroupCollection resultGroups, MedalAbility ability) { #region Vars var direction = resultGroups[1].Value; var target = !string.IsNullOrEmpty(resultGroups[1].Value) ? resultGroups[1].Value : !string.IsNullOrEmpty(resultGroups[5].Value) && resultGroups[5].Value.Contains("target") ? resultGroups[5].Value : !string.IsNullOrEmpty(resultGroups[9].Value) && resultGroups[9].Value.Contains("target") ? resultGroups[9].Value : ""; //var attribute1 = resultGroups[3].Value; //var strDef1 = resultGroups[4].Value; //var attribute2 = resultGroups[7].Value; //var strDef2 = resultGroups[8].Value; var allAttributes = !string.IsNullOrEmpty(resultGroups[5].Value) && resultGroups[5].Value.Contains("attribute") ? resultGroups[5].Value : !string.IsNullOrEmpty(resultGroups[9].Value) && resultGroups[9].Value.Contains("attribute") ? resultGroups[9].Value : ""; var duration = resultGroups[11].Value; #endregion var index = 3; for (int i = 0; i < 2; ++i) { var attribute = resultGroups[index].Value; var strDef = resultGroups[index + 1].Value; if (attribute != "" || strDef != "") { var amount = !string.IsNullOrEmpty(resultGroups[index + 3].Value) ? resultGroups[index + 3].Value : (index + 3) + 4 < resultGroups.Count && !string.IsNullOrEmpty(resultGroups[(index + 3) + 4].Value) ? resultGroups[(index + 3) + 4].Value : ""; if (attribute == "") { attribute = "Normal"; } if (strDef == "" && (index + 1) + 4 < resultGroups.Count) { strDef = resultGroups[(index + 1) + 4].Value; } var medalCombatAbility = new MedalCombatAbility() { Direction = direction, Attribute = attribute.Replace("-", ""), Tier = amount, Duration = duration, IsPlayerAffected = string.IsNullOrEmpty(target), IsEnemyAffected = !string.IsNullOrEmpty(target), }; // !! Medal Add Here !! AddMedal(strDef, medalCombatAbility, ability); } index += 4; } }