コード例 #1
0
        void AttemptToStartProcessing(string line)
        {
            _grangerDebug.Log("attempting to start processing horse due to line: " + line);
            //clean up if there is still non-timed out process
            VerifyAndApplyProcessing();

            //it is unknown if smiled at horse or something else
            //attempt to extract the name of game object
            try
            {
                //[20:48:42] You smile at Adolescent diseased Mountainheart.
                _grangerDebug.Log("extracting object name");
                string objectNameWithPrefixes = line.Remove(0, 13).Replace(".", "");
                if (!GrangerHelpers.IsBlacklistedCreatureName(objectNameWithPrefixes) && GrangerHelpers.HasAgeInName(objectNameWithPrefixes))
                {
                    _grangerDebug.Log("object asumed to be a horse");
                    var ahSkill = _playerMan.GetAhSkill();
                    var currentGroup = _playerMan.GetCurrentServerGroup();
                    if (ahSkill != null && currentGroup != WurmServer.ServerInfo.ServerGroup.Unknown)
                    {
                        _grangerDebug.Log("building new horse object and moving to processor");

                        _isProcessing = true;
                        _startedProcessingOn = DateTime.Now;
                        _verifyList = new ProcessorVerifyList();
                        _newHorse = new HorseBuilder
                        {
                            Name = GrangerHelpers.ExtractHorseName(objectNameWithPrefixes),
                            Age = GrangerHelpers.ExtractHorseAge(objectNameWithPrefixes),
                            ServerGroup = currentGroup,
                            InspectSkill = ahSkill.Value,
                            //IsDiseased =
                            //    (GrangerHelpers.LineContainsDiseased(objectNameWithPrefixes) != null)
                        };

                        var fat = GrangerHelpers.LineContainsFat(objectNameWithPrefixes);
                        if (fat != null) _newHorse.SecondaryInfo = HorseEntity.SecondaryInfoTag.Fat;

                        var starving = GrangerHelpers.LineContainsStarving(objectNameWithPrefixes);
                        if (starving != null) _newHorse.SecondaryInfo = HorseEntity.SecondaryInfoTag.Starving;

                        var diseased = GrangerHelpers.LineContainsDiseased(objectNameWithPrefixes);
                        if (diseased != null) _newHorse.SecondaryInfo = HorseEntity.SecondaryInfoTag.Diseased;

                        _verifyList.Name = true;
                        _grangerDebug.Log("finished building");
                    }
                    else
                    {
                        Popup.Schedule("CAN'T PROCESS HORSE", "Cannot gather data for " + _playerMan.PlayerName + " yet, please try again once Granger fully loads.", 5000);
                        _grangerDebug.Log("processing horse cancelled, still waiting for AH skill or server group searches to finish (skill: " + ahSkill + " ; server group: " + currentGroup);
                    }
                }
                else _grangerDebug.Log(objectNameWithPrefixes + " cannot be added. Only named creatures can be added to Granger.");
            }
            catch (Exception _e)
            {
                //this shouldn't happen, there is always something player is smiling at, unless error happened elsewhere
                _grangerDebug.Log("! Granger: error while BeginProcessing, event: " + line, true, _e);
            }
        }
コード例 #2
0
 private string GetVerifyListData(ProcessorVerifyList verifyList)
 {
                     //get { return (Name && (Gender || Parents || Traits || CaredBy)); }
     return string.Format("(name: {0}, Gender: {1}, Parents: {2}, Traits: {3}, CaredBy: {4})",
         verifyList.Name, verifyList.Gender, verifyList.Parents, verifyList.Traits, verifyList.CaredBy);
 }