Module: Lich::Gemstone::Infomon::Parser::Pattern
- Defined in:
- lib/gemstone/infomon/parser.rb
Constant Summary collapse
- CharRaceProf =
Regex patterns grouped for Info, Exp, Skill and PSM parsing - calls upsert_batch to reduce db impact
/^Name:\s+(?<name>[A-z\s'-]+)\s+Race:\s+(?<race>[A-z]+|[A-z]+(?: |-)[A-z]+)\s+Profession:\s+(?<profession>[-A-z]+)/.freeze
- CharGenderAgeExpLevel =
/^Gender:\s+(?<gender>[A-z]+)\s+Age:\s+(?<age>[,0-9]+)\s+Expr:\s+(?<experience>[0-9,]+)\s+Level:\s+(?<level>[0-9]+)/.freeze
- Stat =
/^\s*(?<stat>[A-z]+)\s\((?:STR|CON|DEX|AGI|DIS|AUR|LOG|INT|WIS|INF)\):\s+(?<value>[0-9]+)\s\((?<bonus>-?[0-9]+)\)\s+[.]{3}\s+(?<enhanced_value>\d+)\s+\((?<enhanced_bonus>-?\d+)\)/.freeze
- StatEnd =
/^Mana:\s+-?\d+\s+Silver:\s(?<silver>-?[\d,]+)$/.freeze
- Fame =
serves as ExprStart
/^\s+Level: \d+\s+Fame: (?<fame>-?[\d,]+)$/.freeze
- RealExp =
%r{^\s+Experience: [\d,]+\s+Field Exp: (?<fxp_current>[\d,]+)/(?<fxp_max>[\d,]+)$}.freeze
- AscExp =
/^\s+Ascension Exp: (?<ascension_experience>[\d,]+)\s+Recent Deaths: [\d,]+$/.freeze
- TotalExp =
/^\s+Total Exp: (?<total_experience>[\d,]+)\s+Death's Sting: (?<deaths_sting>None|Light|Moderate|Sharp|Harsh|Piercing|Crushing)$/.freeze
- LTE =
/^\s+Long-Term Exp: (?<long_term_experience>[\d,]+)\s+Deeds: (?<deeds>\d+)$/.freeze
- ExprEnd =
/^\s+Exp (?:until lvl|to next TP): -?[\d,]+/.freeze
- SkillStart =
/^\s\w+\s\(at level \d+\), your current skill bonuses and ranks/.freeze
- Skill =
/^\s+(?<name>[[a-zA-Z]\s\-']+)\.+\|\s+(?<bonus>\d+)\s+(?<ranks>\d+)/.freeze
- SpellRanks =
/^\s+(?<name>[\w\s\-']+)\.+\|\s+(?<rank>\d+).*$/.freeze
- SkillEnd =
/^Training Points: \d+ Phy \d+ Mnt/.freeze
- GoalsDetected =
/^Skill goals updated!$/.freeze
- GoalsEnded =
/^Further information can be found in the FAQs\.$/.freeze
- PSMStart =
/^\w+, the following (?<cat>Ascension Abilities|Armor Specializations|Combat Maneuvers|Feats|Shield Specializations|Weapon Techniques) are available:$/.freeze
- PSM =
/^\s+(?<name>[A-z\s\-':]+)\s+(?<command>[a-z]+)\s+(?<ranks>\d+)\/(?<max>\d+).*$/.freeze
- PSMEnd =
/^ Subcategory: all$/.freeze
- Levelup =
Single / low impact - single db write
/^\s+(?<stat>\w+)\s+\(\w{3}\)\s+:\s+(?<value>\d+)\s+(?:\+1)\s+\.\.\.\s+(?<bonus>\d+)(?:\s+\+1)?$/.freeze
- SpellsSolo =
from SPELL command
/^(?<name>Bard|Cleric|Empath|Minor (?:Elemental|Mental|Spiritual)|Major (?:Elemental|Mental|Spiritual)|Paladin|Ranger|Savant|Sorcerer|Wizard)(?: Base)?\.+(?<rank>\d+).*$/.freeze
- Citizenship =
/^You currently have .*? citizenship in (?<town>.*)\.$/.freeze
- NoCitizenship =
/^You don't seem to have citizenship\./.freeze
- Society =
/^\s+You are a (?<standing>Master|member) (?:in|of) the (?<society>Order of Voln|Council of Light|Guardians of Sunfist)(?: at (?:rank|step) (?<rank>[0-9]+))?\.$/.freeze
- NoSociety =
/^\s+You are not a member of any society at this time./.freeze
- SocietyStep =
/^(?:Zarak|Faylanna|Draelox|Marl|Vindar|Taryn|Meaha|Oxanna|Cyndelle) traces the outline of a sigil into the air before you and says|^The High Taskmaster looks at you, consults (?:her|his) notes, and then announces in a loud voice|^The monk concludes ceremoniously,/.freeze
- SocietyJoin =
/^The Grandmaster says, "Welcome to the Order|^The Grandmaster says, "You are now a member of the Guardians of Sunfist|^The Grand Poohbah smiles broadly. "Welcome to the Lodge," he cries/.freeze
- SocietyResign =
/^The Grandmaster says, "I'm sorry to hear that. You are no longer in our service.|^The Poohbah looks at you sternly. "I had high hopes for you," he says, "but if this be your decision, so be it\. I hereby strip you of membership|^The Grandmaster says, "I'm sorry to hear that,.+I wish you well with any of your future endeavors./.freeze
- Warcries =
/^\s+(?<name>(?:Bertrandt's Bellow|Yertie's Yowlp|Gerrelle's Growl|Seanette's Shout|Carn's Cry|Horland's Holler))$/.freeze
- NoWarcries =
/^You must be an active member of the Warrior Guild to use this skill\.$/.freeze
- LearnPSM =
/^You have now achieved rank (?<rank>\d+) of (?<psm>[A-z\s]+), costing \d+ (?<cat>[A-z]+) .*?points\.$/
- LearnTechnique =
Technique covers Specialization (Armor and Shield), Technique (Weapon), and Feat
/^\[You have (?:gained|increased to) rank (?<rank>\d+) of (?<cat>[A-z]+).*: (?<psm>[A-z\s\-':]+)\.\]$/.freeze
- UnlearnPSM =
/^You decide to unlearn rank (?<rank>\d+) of (?<psm>[A-z\s\-':]+), regaining \d+ (?<cat>[A-z]+) .*?points\.$/
- UnlearnTechnique =
/^\[You have decreased to rank (?<rank>\d+) of (?<cat>[A-z]+).*: (?<psm>[A-z\s\-':]+)\.\]$/.freeze
- LostTechnique =
/^\[You are no longer trained in (?<cat>[A-z]+) .*: (?<psm>[A-z\s\-':]+)\.\]$/.freeze
- Resource =
/^(?:Essence|Necrotic Energy|Lore Knowledge|Motes of Tranquility|Devotion|Nature's Grace|Grit|Luck Inspiration|Guile|Vitality): (?<weekly>[0-9,]+)\/50,000 \(Weekly\)\s+(?<total>[0-9,]+)\/200,000 \(Total\)$/.freeze
- Suffused =
/^Suffused (?<type>(?:Essence|Necrotic Energy|Lore Knowledge|Motes of Tranquility|Devotion|Nature's Grace|Grit|Luck Inspiration|Guile|Vitality)): (?<suffused>[0-9,]+)$/.freeze
- VolnFavor =
/^Voln Favor: (?<favor>[-\d,]+)$/.freeze
- CovertArtsCharges =
/^Covert Arts Charges: (?<charges>[-\d,]+)\/200$/.freeze
- GigasArtifactFragments =
/^You are carrying (?<gigas_artifact_fragments>[\d,]+) gigas artifact fragments\.$/.freeze
- RedsteelMarks =
/^(?:\s* Redsteel Marks: |You are carrying) (?<redsteel_marks>[\d,]+)(?: redsteel marks\.)?$/.freeze
- GemstoneDust =
/^You are carrying (?<gemstone_dust>[\d,]+) Dust in your reserves\.$/.freeze
- TicketGeneral =
/^\s*General - (?<tickets>[\d,]+) tickets\.$/.freeze
- TicketBlackscrip =
/^\s*Troubled Waters - (?<blackscrip>[\d,]+) blackscrip\.$/.freeze
- TicketBloodscrip =
/^\s*Duskruin Arena - (?<bloodscrip>[\d,]+) bloodscrip\.$/.freeze
- TicketEtherealScrip =
/^\s*Reim - (?<ethereal_scrip>[\d,]+) ethereal scrip\.$/.freeze
- TicketSoulShards =
/^\s*Ebon Gate - (?<soul_shards>[\d,]+) soul shards\.$/.freeze
- TicketRaikhen =
/^\s*Rumor Woods - (?<raikhen>[\d,]+) raikhen\.$/.freeze
- WealthSilver =
/^You have (?<silver>no|[,\d]+|but one) silver with you\./.freeze
- WealthSilverContainer =
/^You are carrying (?<silver>[\d,]+) silver stored within your /.freeze
- AccountName =
/^Account Name: (?<name>[\w\d\-\_]+)$/.freeze
- AccountSubscription =
/^Account Type: (?<subscription>F2P|Standard|Premium)$/.freeze
- ProfileStart =
/^PERSONAL INFORMATION$/.freeze
- ProfileName =
/^Name: (?<name>[\w\s]+)$/.freeze
- ProfileHouseCHE =
/^[A-Za-z\- ]+? (?:of House of the |of House of |of House |of )(?<house>Argent Aspis|Rising Phoenix|Paupers|Arcane Masters|Brigatta|Twilight Hall|Silvergate Inn|Sovyn|Sylvanfair|Helden Hall|White Haven|Beacon Hall|Rone Academy|Willow Hall|Moonstone Abbey|Obsidian Tower|Cairnfang Manor)(?: Archive)?$|^(?<none>No House affiliation)$/.freeze
- ResignCHE =
/^(?:Once you have resigned from your House, you will be unable to rejoin without being inducted again by the |If you wish to renounce your membership in the |Before you can resign from the )(?<house>Argent Aspis|Rising Phoenix|Paupers|Arcane Masters|Brigatta|Twilight Hall|Silvergate Inn|Sovyn|Sylvanfair|Helden Hall|White Haven|Beacon Hall|Rone Academy|Willow Hall|Moonstone Abbey|Obsidian Tower|Cairnfang Manor)(?: Archive)?|^(?<none>The RESIGN command is for resigning your membership in a House, but you don't currently belong to any of the Cooperative Houses of Elanthia)\.$/.freeze
- SleepActive =
TODO: refactor / streamline?
/^Your mind goes completely blank\.$|^You close your eyes and slowly drift off to sleep\.$|^You slump to the ground and immediately fall asleep\. You must have been exhausted!$|^That is impossible to do while unconscious$/.freeze
- SleepNoActive =
/^Your thoughts slowly come back to you as you find yourself lying on the ground\. You must have been sleeping\.$|^You wake up from your slumber\.$|^You are awoken|^You awake|^You slowly come back to alertness and realize you must have been sleeping\.$/.freeze
- BindActive =
/^An unseen force (?:envelops|entangles) you, restricting (?:all|your) movement|^You are caught fast, the light of (?:Liabo|Lornon|Tilaok|Makiri|the moon) arresting your movements/.freeze
- BindNoActive =
/^The restricting force that envelops you dissolves away\.|^You shake off the immobilization that was restricting your movements!|^The restricting force enveloping you fades away\./.freeze
- SilenceActive =
/^A pall of silence settles over you\.|^The pall of silence settles more heavily over you\./.freeze
- SilenceNoActive =
/^The pall of silence leaves you\./.freeze
- CalmActive =
/^A calm washes over you\./.freeze
- CalmNoActive =
/^You are enraged by .*? attack!|^The feeling of calm leaves you\./.freeze
- CutthroatActive =
/slices deep into your vocal cords!$|^All you manage to do is cough up some blood\.$/.freeze
- CutthroatNoActive =
/^\s*The horrible pain in your vocal cords subsides as you spit out the last of the blood clogging your throat\.$|^That tingles, but there are no head injuries to repair\.$/.freeze
- ThornPoisonStart =
/^One of the vines surrounding .*? lashes out at you, driving a thorn into your skin! You feel poison coursing through your veins\.$/.freeze
- ThornPoisonProgression =
/^You begin to feel a strange fatigue, spreading throughout your body\.$|^The strange lassitude is growing worse, making it difficult to keep up with any strenuous activities\.$|^You find yourself gradually slowing down, your muscles trembling with fatigue\.$|^It\'s getting increasingly difficult to move. It feels almost as if the air itself is growing thick as molasses\.$|^No longer able to fight this odd paralysis, you collapse to the ground, as limp as an old washrag\.$/.freeze
- ThornPoisonDeprogression =
/^With a shaky gasp and trembling muscles, you regain at least some small ability to move, however slowly\.$|Although you can\'t seem to move as quickly as you usually can, you\'re feeling better than you were just moments ago\.$|^Fine coordination is difficult, but at least you can move at something close to your normal speed again\.$|^While you\'re still a bit shaky, your muscles are responding better than they were\.$/.freeze
- ThornPoisonEnd =
/^Your body begins to respond normally again\.$|^Your skin takes on a more pinkish tint\.$/.freeze
- SpellUpMsgs =
Adding spell regexes. Does not save to infomon.db. Used by Spell and by ActiveSpells
/^#{Lich::Common::Spell.upmsgs.join('$|^')}$/o.freeze
- SpellDnMsgs =
/^#{Lich::Common::Spell.dnmsgs.join('$|^')}$/o.freeze
- SpellsongRenewed =
/^Your songs? renews?/.freeze
- All =
Union of all patterns for parsing
Regexp.union(CharRaceProf, CharGenderAgeExpLevel, Stat, StatEnd, Fame, RealExp, AscExp, TotalExp, LTE, ExprEnd, SkillStart, Skill, SpellRanks, SkillEnd, PSMStart, PSM, PSMEnd, Levelup, SpellsSolo, Citizenship, NoCitizenship, Society, NoSociety, SleepActive, SleepNoActive, BindActive, BindNoActive, SilenceActive, SilenceNoActive, CalmActive, CalmNoActive, CutthroatActive, CutthroatNoActive, SpellUpMsgs, SpellDnMsgs, Warcries, NoWarcries, SocietyJoin, SocietyStep, SocietyResign, LearnPSM, UnlearnPSM, LostTechnique, LearnTechnique, UnlearnTechnique, Resource, Suffused, VolnFavor, GigasArtifactFragments, RedsteelMarks, TicketGeneral, TicketBlackscrip, TicketBloodscrip, TicketEtherealScrip, TicketSoulShards, TicketRaikhen, WealthSilver, WealthSilverContainer, GoalsDetected, GoalsEnded, SpellsongRenewed, ThornPoisonStart, ThornPoisonProgression, ThornPoisonDeprogression, ThornPoisonEnd, CovertArtsCharges, AccountName, AccountSubscription, ProfileStart, ProfileName, ProfileHouseCHE, ResignCHE, GemstoneDust)