37 lines
1.1 KiB
Plaintext
37 lines
1.1 KiB
Plaintext
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}
|
|
}
|
|
} |