Esempio n. 1
0
        /// <summary>
        /// Retuns the requested target
        ///
        /// Since the mission in progress is needed for the target we return that as well to avoid further lookups
        /// </summary>
        /// <returns></returns>
        private bool GetTargetInProgress_and_missionInProgress(Character character, int targetId, int missionId, Guid missionGuid, out MissionTargetInProgress targetInProgress, out MissionInProgress missionInProgress)
        {
            targetInProgress = null;

            // oldschool version
            //
            //myMissionAdministrator.FindMissionInProgressByMissionId(character, missionId, out missionInProgress);

            MissionAdministrator.FindMissionInProgressByMissionGuid(character, missionGuid, out missionInProgress);

            if (missionInProgress == null)
            {
                Logger.Warning("mission was not found for character: " + character.Id + " missionID:" + missionId);
                return(false);
            }

            if (missionInProgress.MissionId != missionId)
            {
                Logger.Warning("WTF??!!! " + missionInProgress);
            }

            if (!missionInProgress.GetTargetInProgress(targetId, out targetInProgress))
            {
                Logger.Error("mission target was not found for caharcter: " + character.Id + " missionID:" + missionId + " targetID:" + targetId);
                return(false);
            }

            if (targetInProgress.completed)
            {
                Logger.Info("target already completed. missionID: " + missionId + " targetID:" + targetId + " characterID:" + character.Id);
                return(false);
            }

            return(true);
        }
Esempio n. 2
0
        private MissionTargetInProgress GetSourceTargetForPrimaryDefinition(MissionInProgress missionInProgress)
        {
            if (ValidPrimaryLinkSet)
            {
                MissionTargetInProgress sourceTargetInProgress;
                if (missionInProgress.GetTargetInProgress(PrimaryDefinitionLinkId, out sourceTargetInProgress))
                {
                    return(sourceTargetInProgress);
                }
                else
                {
                    Logger.Error("primarydefinitionfromindex is set, but target not found. target:" + this + " mission:" + missionInProgress);
                }
            }

            return(null);
        }
Esempio n. 3
0
        private MissionTargetInProgress GetSourceTargetForSecondaryDefinition(MissionInProgress missionInProgress)
        {
            if (ValidSecondaryLinkSet)
            {
                MissionTargetInProgress sourceTargetInProgress;
                if (missionInProgress.GetTargetInProgress(SecondaryDefinitionLinkId, out sourceTargetInProgress))
                {
                    return(sourceTargetInProgress);
                }
                else
                {
                    Logger.Error("secondarydefinitionfromindex is set, but target not found. target:" + this + " mission:" + missionInProgress);
                    throw new PerpetuumException(ErrorCodes.ConsistencyError);
                }
            }

            return(null);
        }