objectdef MRStringHelpers { static member:string GetLastWord(string spellName) { variable int tokenCount = ${spellName.Count[" "]} return ${spellName.Token[${tokenCount:Inc}, " "].Trim} } static member:bool IsRomanNumearl(string value) { variable int currentIndex for (currentIndex:Set[1] ; ${currentIndex} < ${value.Length} ; currentIndex:Inc) { if !${value.Mid[${currentIndex}, 1].Equal["i"]} && !${value.Mid[${currentIndex}, 1].Equal["v"]} && !${value.Mid[${currentIndex}, 1].Equal["x"]} { return FALSE } } return TRUE } static member:string StripRomanNumerals(string spellName) { variable string lastWord = ${MRStringHelpers.GetLastWord[${spellName}]} if ${MRStringHelpers.IsRomanNumearl[${lastWord}]} { variable int baseStringLength baseStringLength:Set[${spellName.Length} - ${lastWord.Length}] return ${spellName.Mid[1, ${baseStringLength}].Trim} } return ${spellName} } }