Exemple #1
0
        private static void ProcessActions(Event e, Expressions exp)
        {
            var line = new Line(e.ChatLogEntry)
            {
                EventDirection = e.Direction,
                EventSubject   = e.Subject,
                EventType      = e.Type
            };

            LineHelper.SetTimelineTypes(ref line);
            if (LineHelper.IsIgnored(line))
            {
                return;
            }
            var actions = Regex.Match("ph", @"^\.$");

            switch (e.Subject)
            {
            case EventSubject.You:
                switch (e.Direction)
                {
                // casts/uses
                case EventDirection.Self:
                    actions = exp.pActions;
                    if (actions.Success)
                    {
                        line.Source = You;
                        UpdateActions(actions, line, exp, FilterType.You);
                    }
                    break;
                }
                break;

            case EventSubject.Pet:
                switch (e.Direction)
                {
                // casts/uses
                case EventDirection.Self:
                    actions = exp.pActions;
                    if (actions.Success)
                    {
                        UpdateActions(actions, line, exp, FilterType.Pet);
                    }
                    break;
                }
                break;

            case EventSubject.Party:
                switch (e.Direction)
                {
                // casts/uses
                case EventDirection.Self:
                    actions = exp.pActions;
                    if (actions.Success)
                    {
                        UpdateActions(actions, line, exp, FilterType.Party);
                    }
                    break;
                }
                break;

            case EventSubject.PetParty:
                switch (e.Direction)
                {
                // casts/uses
                case EventDirection.Self:
                    actions = exp.pActions;
                    if (actions.Success)
                    {
                        UpdateActions(actions, line, exp, FilterType.PetParty);
                    }
                    break;
                }
                break;

            case EventSubject.Alliance:
                switch (e.Direction)
                {
                // casts/uses
                case EventDirection.Self:
                    actions = exp.pActions;
                    if (actions.Success)
                    {
                        UpdateActions(actions, line, exp, FilterType.Alliance);
                    }
                    break;
                }
                break;

            case EventSubject.PetAlliance:
                switch (e.Direction)
                {
                // casts/uses
                case EventDirection.Self:
                    actions = exp.pActions;
                    if (actions.Success)
                    {
                        UpdateActions(actions, line, exp, FilterType.PetAlliance);
                    }
                    break;
                }
                break;

            case EventSubject.Other:
                switch (e.Direction)
                {
                // casts/uses
                case EventDirection.Self:
                    actions = exp.pActions;
                    if (actions.Success)
                    {
                        UpdateActions(actions, line, exp, FilterType.Other);
                    }
                    break;
                }
                break;

            case EventSubject.PetOther:
                switch (e.Direction)
                {
                // casts/uses
                case EventDirection.Self:
                    actions = exp.pActions;
                    if (actions.Success)
                    {
                        UpdateActions(actions, line, exp, FilterType.PetOther);
                    }
                    break;
                }
                break;

            case EventSubject.Engaged:
            case EventSubject.UnEngaged:
                switch (e.Direction)
                {
                case EventDirection.Self:
                    actions = exp.mActions;
                    if (actions.Success)
                    {
                        _lastNameMonster   = StringHelper.TitleCase(Convert.ToString(actions.Groups["source"].Value));
                        _lastActionMonster = StringHelper.TitleCase(Convert.ToString(actions.Groups["action"].Value));
                        UpdateActionsMonster(actions, line, exp, FilterType.MonsterParty);
                    }
                    break;
                }
                break;
            }
            if (actions.Success)
            {
                return;
            }
            ParsingLogHelper.Log(Logger, "Action", e, exp);
        }
Exemple #2
0
        private static void ProcessBeneficial(Event e, Expressions exp)
        {
            var line = new Line(e.ChatLogEntry)
            {
                EventDirection = e.Direction,
                EventSubject   = e.Subject,
                EventType      = e.Type
            };

            LineHelper.SetTimelineTypes(ref line);
            if (LineHelper.IsIgnored(line))
            {
                return;
            }
            var beneficial = Regex.Match("ph", @"^\.$");

            switch (e.Subject)
            {
            case EventSubject.You:
                switch (e.Direction)
                {
                case EventDirection.Self:
                    line.Target = You;
                    break;
                }
                beneficial = exp.pBeneficialGain;
                if (beneficial.Success)
                {
                    line.Source = You;
                    UpdateBeneficialGain(beneficial, line, exp, FilterType.You);
                }
                break;

            case EventSubject.Pet:
                beneficial = exp.pBeneficialGain;
                if (beneficial.Success)
                {
                    line.Source = _lastNamePet;
                    UpdateBeneficialGain(beneficial, line, exp, FilterType.Pet);
                }
                break;

            case EventSubject.Party:
                beneficial = exp.pBeneficialGain;
                if (beneficial.Success)
                {
                    line.Source = _lastNamePartyFrom;
                    UpdateBeneficialGain(beneficial, line, exp, FilterType.Party);
                }
                break;

            case EventSubject.PetParty:
                beneficial = exp.pBeneficialGain;
                if (beneficial.Success)
                {
                    line.Source = _lastNamePetPartyFrom;
                    UpdateBeneficialGain(beneficial, line, exp, FilterType.PetParty);
                }
                break;

            case EventSubject.Alliance:
                beneficial = exp.pBeneficialGain;
                if (beneficial.Success)
                {
                    line.Source = _lastNameAllianceFrom;
                    UpdateBeneficialGain(beneficial, line, exp, FilterType.Alliance);
                }
                break;

            case EventSubject.PetAlliance:
                beneficial = exp.pBeneficialGain;
                if (beneficial.Success)
                {
                    line.Source = _lastNamePetAllianceFrom;
                    UpdateBeneficialGain(beneficial, line, exp, FilterType.PetAlliance);
                }
                break;

            case EventSubject.Other:
                beneficial = exp.pBeneficialGain;
                if (beneficial.Success)
                {
                    line.Source = _lastNameOtherFrom;
                    UpdateBeneficialGain(beneficial, line, exp, FilterType.Other);
                }
                break;

            case EventSubject.PetOther:
                beneficial = exp.pBeneficialGain;
                if (beneficial.Success)
                {
                    line.Source = _lastNamePetOtherFrom;
                    UpdateBeneficialGain(beneficial, line, exp, FilterType.PetOther);
                }
                break;
            }
            if (beneficial.Success)
            {
                return;
            }
            ParsingLogHelper.Log(Logger, "Beneficial", e, exp);
        }
Exemple #3
0
        private static void ProcessItems(Event e, Expressions exp)
        {
            var line = new Line(e.ChatLogItem)
            {
                EventDirection = e.Direction,
                EventSubject   = e.Subject,
                EventType      = e.Type
            };

            LineHelper.SetTimelineTypes(ref line);
            if (LineHelper.IsIgnored(line))
            {
                return;
            }

            Match items = Regex.Match("ph", @"^\.$");

            switch (e.Subject)
            {
            case EventSubject.You:
                switch (e.Direction)
                {
                case EventDirection.Self:
                    items = exp.pItems;
                    if (items.Success)
                    {
                        line.Source    = You;
                        _lastActionYou = Convert.ToString(items.Groups["item"].Value).ToTitleCase();
                        UpdateItems(items, line, exp, FilterType.You);
                    }

                    break;
                }

                break;

            case EventSubject.Pet:
                switch (e.Direction)
                {
                case EventDirection.Self:
                    items = exp.pItems;
                    if (items.Success)
                    {
                        line.Source    = Convert.ToString(items.Groups["source"].Value);
                        _lastNamePet   = line.Source;
                        _lastActionPet = Convert.ToString(items.Groups["item"].Value).ToTitleCase();
                    }

                    break;
                }

                break;

            case EventSubject.Party:
                switch (e.Direction)
                {
                case EventDirection.Self:
                    items = exp.pItems;
                    if (items.Success)
                    {
                        line.Source          = Convert.ToString(items.Groups["source"].Value);
                        _lastNamePartyFrom   = line.Source;
                        _lastActionPartyFrom = Convert.ToString(items.Groups["item"].Value).ToTitleCase();
                        UpdateItems(items, line, exp, FilterType.Party);
                    }

                    break;
                }

                break;

            case EventSubject.PetParty:
                switch (e.Direction)
                {
                case EventDirection.Self:
                    items = exp.pItems;
                    if (items.Success)
                    {
                        line.Source           = Convert.ToString(items.Groups["source"].Value);
                        _lastNamePetPartyFrom = line.Source;
                        _lastActionPet        = Convert.ToString(items.Groups["item"].Value).ToTitleCase();
                    }

                    break;
                }

                break;

            case EventSubject.Alliance:
                switch (e.Direction)
                {
                case EventDirection.Self:
                    items = exp.pItems;
                    if (items.Success)
                    {
                        line.Source             = Convert.ToString(items.Groups["source"].Value);
                        _lastNameAllianceFrom   = line.Source;
                        _lastActionAllianceFrom = Convert.ToString(items.Groups["item"].Value).ToTitleCase();
                        UpdateItems(items, line, exp, FilterType.Alliance);
                    }

                    break;
                }

                break;

            case EventSubject.PetAlliance:
                switch (e.Direction)
                {
                case EventDirection.Self:
                    items = exp.pItems;
                    if (items.Success)
                    {
                        line.Source = Convert.ToString(items.Groups["source"].Value);
                        _lastNamePetAllianceFrom = line.Source;
                        _lastActionPet           = Convert.ToString(items.Groups["item"].Value).ToTitleCase();
                    }

                    break;
                }

                break;

            case EventSubject.Other:
                switch (e.Direction)
                {
                case EventDirection.Self:
                    items = exp.pItems;
                    if (items.Success)
                    {
                        line.Source          = Convert.ToString(items.Groups["source"].Value);
                        _lastNameOtherFrom   = line.Source;
                        _lastActionOtherFrom = Convert.ToString(items.Groups["item"].Value).ToTitleCase();
                        UpdateItems(items, line, exp, FilterType.Other);
                    }

                    break;
                }

                break;

            case EventSubject.PetOther:
                switch (e.Direction)
                {
                case EventDirection.Self:
                    items = exp.pItems;
                    if (items.Success)
                    {
                        line.Source           = Convert.ToString(items.Groups["source"].Value);
                        _lastNamePetOtherFrom = line.Source;
                        _lastActionPet        = Convert.ToString(items.Groups["item"].Value).ToTitleCase();
                    }

                    break;
                }

                break;

            case EventSubject.Engaged:
            case EventSubject.UnEngaged:
                break;
            }

            if (items.Success)
            {
                return;
            }

            ParsingLogHelper.Log(Logger, "Item", e, exp);
        }
        private static void ProcessDamage(Event e, Expressions exp)
        {
            var line = new Line(e.ChatLogEntry)
            {
                EventDirection = e.Direction,
                EventSubject   = e.Subject,
                EventType      = e.Type
            };

            LineHelper.SetTimelineTypes(ref line);
            if (LineHelper.IsIgnored(line))
            {
                return;
            }
            var damage = Regex.Match("ph", @"^\.$");

            switch (e.Subject)
            {
            case EventSubject.You:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    damage = exp.pDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = You;
                        UpdateDamage(damage, line, exp, FilterType.You);
                        break;

                    case false:
                        damage = exp.pDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionYouIsAttack = true;
                            line.Source            = You;
                            UpdateDamage(damage, line, exp, FilterType.You);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.Pet:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    damage = exp.pDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNamePet;
                        UpdateDamage(damage, line, exp, FilterType.Pet);
                        break;

                    case false:
                        damage = exp.pDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionPetIsAttack = true;
                            UpdateDamage(damage, line, exp, FilterType.Pet);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.Party:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    damage = exp.pDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNamePartyFrom;
                        UpdateDamage(damage, line, exp, FilterType.Party);
                        break;

                    case false:
                        damage = exp.pDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionPartyIsAttack = true;
                            UpdateDamage(damage, line, exp, FilterType.Party);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.PetParty:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    damage = exp.pDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNamePetPartyFrom;
                        UpdateDamage(damage, line, exp, FilterType.PetParty);
                        break;

                    case false:
                        damage = exp.pDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionPetPartyIsAttack = true;
                            UpdateDamage(damage, line, exp, FilterType.PetParty);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.Alliance:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    damage = exp.pDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNameAllianceFrom;
                        UpdateDamage(damage, line, exp, FilterType.Alliance);
                        break;

                    case false:
                        damage = exp.pDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionAllianceIsAttack = true;
                            UpdateDamage(damage, line, exp, FilterType.Alliance);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.PetAlliance:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    damage = exp.pDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNamePetAllianceFrom;
                        UpdateDamage(damage, line, exp, FilterType.PetAlliance);
                        break;

                    case false:
                        damage = exp.pDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionPetAllianceIsAttack = true;
                            UpdateDamage(damage, line, exp, FilterType.PetAlliance);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.Other:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    damage = exp.pDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNameOtherFrom;
                        UpdateDamage(damage, line, exp, FilterType.Other);
                        break;

                    case false:
                        damage = exp.pDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionOtherIsAttack = true;
                            UpdateDamage(damage, line, exp, FilterType.Other);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.PetOther:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    damage = exp.pDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNamePetOtherFrom;
                        UpdateDamage(damage, line, exp, FilterType.PetOther);
                        break;

                    case false:
                        damage = exp.pDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionPetOtherIsAttack = true;
                            UpdateDamage(damage, line, exp, FilterType.PetOther);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.Engaged:
            case EventSubject.UnEngaged:
                switch (e.Direction)
                {
                case EventDirection.You:
                    damage = exp.mDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = You;
                        UpdateDamageMonster(damage, line, exp, FilterType.You);
                        break;

                    case false:
                        damage = exp.mDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionYouIsAttack = true;
                            line.Target            = You;
                            UpdateDamageMonster(damage, line, exp, FilterType.You);
                        }
                        break;
                    }
                    break;

                case EventDirection.Pet:
                    damage = exp.mDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = _lastNamePet;
                        UpdateDamageMonster(damage, line, exp, FilterType.Pet);
                        break;

                    case false:
                        damage = exp.mDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionPetIsAttack = true;
                            UpdateDamageMonster(damage, line, exp, FilterType.Pet);
                        }
                        break;
                    }
                    break;

                case EventDirection.Party:
                    damage = exp.mDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = _lastNamePartyTo;
                        UpdateDamageMonster(damage, line, exp, FilterType.Party);
                        break;

                    case false:
                        damage = exp.mDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionPartyIsAttack = true;
                            UpdateDamageMonster(damage, line, exp, FilterType.Party);
                        }
                        break;
                    }
                    break;

                case EventDirection.PetParty:
                    damage = exp.mDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = _lastNamePetPartyTo;
                        UpdateDamageMonster(damage, line, exp, FilterType.PetParty);
                        break;

                    case false:
                        damage = exp.mDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionPetPartyIsAttack = true;
                            UpdateDamageMonster(damage, line, exp, FilterType.PetParty);
                        }
                        break;
                    }
                    break;

                case EventDirection.Alliance:
                    damage = exp.mDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = _lastNameAllianceTo;
                        UpdateDamageMonster(damage, line, exp, FilterType.Alliance);
                        break;

                    case false:
                        damage = exp.mDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionAllianceIsAttack = true;
                            UpdateDamageMonster(damage, line, exp, FilterType.Alliance);
                        }
                        break;
                    }
                    break;

                case EventDirection.PetAlliance:
                    damage = exp.mDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = _lastNamePetAllianceTo;
                        UpdateDamageMonster(damage, line, exp, FilterType.PetAlliance);
                        break;

                    case false:
                        damage = exp.mDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionPetAllianceIsAttack = true;
                            UpdateDamageMonster(damage, line, exp, FilterType.PetAlliance);
                        }
                        break;
                    }
                    break;

                case EventDirection.Other:
                    damage = exp.mDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = _lastNameOtherTo;
                        UpdateDamageMonster(damage, line, exp, FilterType.Other);
                        break;

                    case false:
                        damage = exp.mDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionOtherIsAttack = true;
                            UpdateDamageMonster(damage, line, exp, FilterType.Other);
                        }
                        break;
                    }
                    break;

                case EventDirection.PetOther:
                    damage = exp.mDamage;
                    switch (damage.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = _lastNamePetOtherTo;
                        UpdateDamageMonster(damage, line, exp, FilterType.PetOther);
                        break;

                    case false:
                        damage = exp.mDamageAuto;
                        if (damage.Success)
                        {
                            _lastActionPetOtherIsAttack = true;
                            UpdateDamageMonster(damage, line, exp, FilterType.PetOther);
                        }
                        break;
                    }
                    break;
                }
                break;
            }
            if (damage.Success)
            {
                return;
            }
            ParsingLogHelper.Log(Logger, "Damage", e, exp);
        }
Exemple #5
0
        private static void ProcessFailed(Event e, Expressions exp)
        {
            var line = new Line(e.ChatLogEntry)
            {
                EventDirection = e.Direction,
                EventSubject   = e.Subject,
                EventType      = e.Type
            };

            LineHelper.SetTimelineTypes(ref line);
            if (LineHelper.IsIgnored(line))
            {
                return;
            }
            var failed = Regex.Match("ph", @"^\.$");

            switch (e.Subject)
            {
            case EventSubject.You:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    failed = exp.pFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = You;
                        UpdateFailed(failed, line, exp, FilterType.You);
                        break;

                    case false:
                        failed = exp.pFailedAuto;
                        if (failed.Success)
                        {
                            line.Source = You;
                            UpdateFailed(failed, line, exp, FilterType.You);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.Pet:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    failed = exp.pFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNamePet;
                        UpdateFailed(failed, line, exp, FilterType.Pet);
                        break;

                    case false:
                        failed = exp.pFailedAuto;
                        if (failed.Success)
                        {
                            UpdateFailed(failed, line, exp, FilterType.Pet);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.Party:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    failed = exp.pFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNamePartyFrom;
                        UpdateFailed(failed, line, exp, FilterType.Party);
                        break;

                    case false:
                        failed = exp.pFailedAuto;
                        if (failed.Success)
                        {
                            UpdateFailed(failed, line, exp, FilterType.Party);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.PetParty:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    failed = exp.pFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNamePetPartyFrom;
                        UpdateFailed(failed, line, exp, FilterType.PetParty);
                        break;

                    case false:
                        failed = exp.pFailedAuto;
                        if (failed.Success)
                        {
                            UpdateFailed(failed, line, exp, FilterType.PetParty);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.Alliance:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    failed = exp.pFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNameAllianceFrom;
                        UpdateFailed(failed, line, exp, FilterType.Alliance);
                        break;

                    case false:
                        failed = exp.pFailedAuto;
                        if (failed.Success)
                        {
                            UpdateFailed(failed, line, exp, FilterType.Alliance);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.PetAlliance:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    failed = exp.pFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNamePetAllianceFrom;
                        UpdateFailed(failed, line, exp, FilterType.PetAlliance);
                        break;

                    case false:
                        failed = exp.pFailedAuto;
                        if (failed.Success)
                        {
                            UpdateFailed(failed, line, exp, FilterType.PetAlliance);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.Other:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    failed = exp.pFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNameOtherFrom;
                        UpdateFailed(failed, line, exp, FilterType.Other);
                        break;

                    case false:
                        failed = exp.pFailedAuto;
                        if (failed.Success)
                        {
                            UpdateFailed(failed, line, exp, FilterType.Other);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.PetOther:
                switch (e.Direction)
                {
                case EventDirection.Engaged:
                case EventDirection.UnEngaged:
                    failed = exp.pFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNamePetOtherFrom;
                        UpdateFailed(failed, line, exp, FilterType.PetOther);
                        break;

                    case false:
                        failed = exp.pFailedAuto;
                        if (failed.Success)
                        {
                            UpdateFailed(failed, line, exp, FilterType.PetOther);
                        }
                        break;
                    }
                    break;
                }
                break;

            case EventSubject.Engaged:
            case EventSubject.UnEngaged:
                switch (e.Direction)
                {
                case EventDirection.You:
                    failed = exp.mFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = You;
                        UpdateFailedMonster(failed, line, exp, FilterType.You);
                        break;

                    case false:
                        failed = exp.mFailedAuto;
                        if (failed.Success)
                        {
                            line.Target = You;
                            UpdateFailedMonster(failed, line, exp, FilterType.You);
                        }
                        break;
                    }
                    break;

                case EventDirection.Pet:
                    failed = exp.mFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = _lastNamePet;
                        UpdateFailedMonster(failed, line, exp, FilterType.Pet);
                        break;

                    case false:
                        failed = exp.mFailedAuto;
                        if (failed.Success)
                        {
                            UpdateFailedMonster(failed, line, exp, FilterType.Pet);
                        }
                        break;
                    }
                    break;

                case EventDirection.Party:
                    failed = exp.mFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = _lastNamePartyTo;
                        UpdateFailedMonster(failed, line, exp, FilterType.Party);
                        break;

                    case false:
                        failed = exp.mFailedAuto;
                        if (failed.Success)
                        {
                            UpdateFailedMonster(failed, line, exp, FilterType.Party);
                        }
                        break;
                    }
                    break;

                case EventDirection.PetParty:
                    failed = exp.mFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = _lastNamePetPartyTo;
                        UpdateFailedMonster(failed, line, exp, FilterType.PetParty);
                        break;

                    case false:
                        failed = exp.mFailedAuto;
                        if (failed.Success)
                        {
                            UpdateFailedMonster(failed, line, exp, FilterType.PetParty);
                        }
                        break;
                    }
                    break;

                case EventDirection.Alliance:
                    failed = exp.mFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = _lastNameAllianceTo;
                        UpdateFailedMonster(failed, line, exp, FilterType.Alliance);
                        break;

                    case false:
                        failed = exp.mFailedAuto;
                        if (failed.Success)
                        {
                            UpdateFailedMonster(failed, line, exp, FilterType.Alliance);
                        }
                        break;
                    }
                    break;

                case EventDirection.PetAlliance:
                    failed = exp.mFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = _lastNamePetAllianceTo;
                        UpdateFailedMonster(failed, line, exp, FilterType.PetAlliance);
                        break;

                    case false:
                        failed = exp.mFailedAuto;
                        if (failed.Success)
                        {
                            UpdateFailedMonster(failed, line, exp, FilterType.PetAlliance);
                        }
                        break;
                    }
                    break;

                case EventDirection.Other:
                    failed = exp.mFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = _lastNameOtherTo;
                        UpdateFailedMonster(failed, line, exp, FilterType.Other);
                        break;

                    case false:
                        failed = exp.mFailedAuto;
                        if (failed.Success)
                        {
                            UpdateFailedMonster(failed, line, exp, FilterType.Other);
                        }
                        break;
                    }
                    break;

                case EventDirection.PetOther:
                    failed = exp.mFailed;
                    switch (failed.Success)
                    {
                    case true:
                        line.Source = _lastNameMonster;
                        line.Target = _lastNamePetOtherTo;
                        UpdateFailedMonster(failed, line, exp, FilterType.PetOther);
                        break;

                    case false:
                        failed = exp.mFailedAuto;
                        if (failed.Success)
                        {
                            UpdateFailedMonster(failed, line, exp, FilterType.PetOther);
                        }
                        break;
                    }
                    break;
                }
                break;
            }
            if (failed.Success)
            {
                return;
            }
            ParsingLogHelper.Log(Logger, "Failed", e, exp);
        }
Exemple #6
0
        private static void ProcessCure(Event e, Expressions exp)
        {
            var line = new Line(e.ChatLogEntry)
            {
                EventDirection = e.Direction,
                EventSubject   = e.Subject,
                EventType      = e.Type
            };

            LineHelper.SetTimelineTypes(ref line);
            if (LineHelper.IsIgnored(line))
            {
                return;
            }
            var cure = Regex.Match("ph", @"^\.$");

            switch (e.Subject)
            {
            case EventSubject.You:
                switch (e.Direction)
                {
                case EventDirection.Self:
                    line.Target = You;
                    break;
                }
                cure = exp.pCure;
                if (cure.Success)
                {
                    line.Source = You;
                    UpdateHealing(cure, line, exp, FilterType.You);
                }
                break;

            case EventSubject.Pet:
                cure = exp.pCure;
                if (cure.Success)
                {
                    line.Source = _lastNamePet;
                    UpdateHealing(cure, line, exp, FilterType.Pet);
                }
                break;

            case EventSubject.Party:
                cure = exp.pCure;
                if (cure.Success)
                {
                    line.Source = _lastNamePartyHealingFrom;
                    UpdateHealing(cure, line, exp, FilterType.Party);
                }
                break;

            case EventSubject.PetParty:
                cure = exp.pCure;
                if (cure.Success)
                {
                    line.Source = _lastNamePetPartyHealingFrom;
                    UpdateHealing(cure, line, exp, FilterType.PetParty);
                }
                break;

            case EventSubject.Alliance:
                cure = exp.pCure;
                if (cure.Success)
                {
                    line.Source = _lastNameAllianceHealingFrom;
                    UpdateHealing(cure, line, exp, FilterType.Alliance);
                }
                break;

            case EventSubject.PetAlliance:
                cure = exp.pCure;
                if (cure.Success)
                {
                    line.Source = _lastNamePetAllianceHealingFrom;
                    UpdateHealing(cure, line, exp, FilterType.PetAlliance);
                }
                break;

            case EventSubject.Other:
                cure = exp.pCure;
                if (cure.Success)
                {
                    line.Source = _lastNameOtherHealingFrom;
                    UpdateHealing(cure, line, exp, FilterType.Other);
                }
                break;

            case EventSubject.PetOther:
                cure = exp.pCure;
                if (cure.Success)
                {
                    line.Source = _lastNamePetOtherHealingFrom;
                    UpdateHealing(cure, line, exp, FilterType.PetOther);
                }
                break;
            }
            if (cure.Success)
            {
                return;
            }
            ParsingLogHelper.Log(Logger, "Cure", e, exp);
        }