예제 #1
0
        protected Mission(IDataRecord record)
        {
            id = record.GetValue <int>(k.ID.ToLower());
            _missionIdOnSuccess = record.GetValue <int?>(k.missionIDOnSuccess.ToLower());
            isUnique            = record.GetValue <bool>(k.isUnique.ToLower());
            _periodMinutes      = record.GetValue <int?>(k.periodMinutes.ToLower());
            _missionLevel       = record.GetValue <int?>(k.missionLevel.ToLower());
            title                 = record.GetValue <string>(k.title);
            _description          = record.GetValue <string>(k.description);
            _missionType          = record.GetValue <int>(k.missionType.ToLower());
            durationMinutes       = record.GetValue <int>(k.durationMinutes.ToLower());
            _successMessage       = record.GetValue <string>(k.successMessage.ToLower());
            failMessage           = record.GetValue <string>(k.failMessage.ToLower());
            listable              = record.GetValue <bool>(k.listable);
            rewardFee             = record.GetValue <double>(k.rewardFee.ToLower());
            _locationId           = record.GetValue <int?>("locationid");
            behaviourType         = (MissionBehaviourType)record.GetValue <int>("behaviourtype");
            _difficultyReward     = record.GetValue <int?>("difficultyreward");
            _difficultymultiplier = record.GetValue <double?>("difficultymultiplier");

            missionCategory = MissionDataCache.GetMissionCategoryByType(_missionType);

            InitIssuer(record);

            _myTargets    = new Lazy <List <MissionTarget> >(CollectMyTargets);
            _myDictionary = new Lazy <Dictionary <string, object> >(GenerateMyDictionary);
        }
 public MissionAdministrator(MissionProcessor missionProcessor, MissionDataCache missionDataCache, IStandingHandler standingHandler, MissionInProgress.Factory missionInProgressFactory)
 {
     _missionProcessor         = missionProcessor;
     _missionDataCache         = missionDataCache;
     _standingHandler          = standingHandler;
     _missionInProgressFactory = missionInProgressFactory;
 }
예제 #3
0
        public ZoneDrawStatMap(IFileSystem fileSystem, SaveBitmapHelper saveBitmapHelper, MissionDataCache missionDataCache)
        {
            _fileSystem       = fileSystem;
            _saveBitmapHelper = saveBitmapHelper;
            _missionDataCache = missionDataCache;

            _actions["minerals"] = r => CreateMineralBitmaps();
            RegisterCreator("npc", CreateNPCMap);
            RegisterCreator("altitude", CreateAltitudeBitmap);
            RegisterCreator("slope", CreateSlopeBitmap);
            RegisterCreator("missionTarget", CreateMissionTargetsMap);
            RegisterCreator("decorblock", CreateDecorBlockingMap);
            RegisterCreator("electroplant", CreateElectroPlantMap);
            RegisterCreator("structures", CreateStructuresMap);
            RegisterCreator("wall", CreateWallMap);
            RegisterCreator("wallpossible", CreateWallPossibleMap);
            RegisterCreator("wallplaces", CreateWallPlaces);
            RegisterCreator("passable", () => _zone.CreatePassableBitmap(Color.White));
            RegisterCreator("islandmask", CreateIslandMaskMap);
            RegisterCreator("controlmap", CreateControlMap);
            RegisterCreator("block", CreateBlockingMap);
            RegisterCreator("plants", CreatePlantsMap);
            RegisterCreator("placemo", GenerateMissionSpots);
            RegisterCreator("validatemobjects", ValidateMissionObjectLocations);
            RegisterCreator("rndpointsonly", GenerateRandomPointsOnly);
            RegisterCreator("displayspots", DisplaySpots);
            RegisterCreator("worstspots", DrawWorstSpotsMap);
            RegisterCreator("alltargets", DrawAllTargetsOnZone);
        }
예제 #4
0
        public double GetTypeRelatedExtensionBonus(Character character)
        {
            var extensionSelector = MissionDataCache.GetExtensionSelectorByCategory(missionCategory);
            var specializedBonus  = 0.0;

            switch (extensionSelector)
            {
            case MissionExtensionSelector.combat:
                specializedBonus = character.GetExtensionBonusByName(ExtensionNames.COMBAT_MISSION_SPECIALIST);
                break;

            case MissionExtensionSelector.fieldcraft:
                specializedBonus = character.GetExtensionBonusByName(ExtensionNames.INDUSTRY_MISSION_SPECIALIST);
                break;

            case MissionExtensionSelector.production:
                specializedBonus = character.GetExtensionBonusByName(ExtensionNames.PRODUCTION_MISSION_SPECIALIST);
                break;

            case MissionExtensionSelector.transport:
                specializedBonus = character.GetExtensionBonusByName(ExtensionNames.LOGISTIC_MISSION_SPECIALIST);
                break;

            default:
                return(specializedBonus);
            }

            return(specializedBonus);
        }
예제 #5
0
        public MissionTargetInProgress(MissionDataCache missionDataCache, DeliveryHelper.Factory deliveryHelperFactory, MissionInProgress missionInProgress, MissionTarget missionTarget)
        {
            _missionDataCache      = missionDataCache;
            _deliveryHelperFactory = deliveryHelperFactory;

            myMissionInProgress = missionInProgress;
            myTarget            = missionTarget;
        }
예제 #6
0
 public MissionFilter(Character character, Dictionary <int, DateTime> periodicMissionTimes, ICollection <int> finishedMissionsIds, MissionProcessor missionProcessor, MissionLocation location, MissionDataCache missionDataCache)
 {
     _character            = character;
     _agent                = location.Agent;
     _periodicMissionTimes = periodicMissionTimes;
     _finishedMissionIds   = finishedMissionsIds;
     _missionProcessor     = missionProcessor;
     _location             = location;
     _missionDataCache     = missionDataCache;
 }
예제 #7
0
 public void Logout()
 {
     MissionDataCache.ClearData();
     if (this.StartLogOutAction != null)
     {
         this.StartLogOutAction.Invoke();
     }
     AllPopups.instance.HideAllPopups();
     AllPanels.instance.ShowOrderHallMultiPanel(false);
     Login.instance.ReconnectToMobileServerCharacterSelect();
 }
예제 #8
0
        public int MyMissionLocationId()
        {
            var entity = this.GetOrLoadParentEntity().ThrowIfNull(ErrorCodes.ConsistencyError);

            var location = MissionDataCache.GetLocationByEid(entity.Eid);

            var locationId = -1; //not a mission location, gamma base for example

            if (location != null)
            {
                locationId = location.id;
            }

            return(locationId);
        }
예제 #9
0
 private void MobileClientEvaluateMissionResultHandler(MobileClientEvaluateMissionResult msg)
 {
     if (msg.Result == 0)
     {
         MissionDataCache.AddOrUpdateMissionData(msg.GarrMissionID, msg.SuccessChance);
         if (this.MissionSuccessChanceChangedAction != null)
         {
             this.MissionSuccessChanceChangedAction.Invoke(msg.SuccessChance);
         }
     }
     else
     {
         GARRISON_RESULT result = (GARRISON_RESULT)msg.Result;
         Debug.Log("MobileClientEvaluateMissionResult failed with error " + result.ToString());
     }
 }
예제 #10
0
        /// <summary>
        /// map category to issuerAlliance's proper corp ww, ii , ss  etc....
        /// </summary>
        /// <param name="missionCategory"></param>
        /// <param name="issuerCorporationEid"></param>
        /// <param name="issuerAllianceEid"></param>
        public void GetIssuerCorporationByCategory(MissionCategory missionCategory, out long issuerCorporationEid, out long issuerAllianceEid)
        {
            issuerAllianceEid = Agent.OwnerAlliance.Eid;

            var corpNamePostFix = MissionDataCache.GetCorporationPostFixByMissionCategory(missionCategory);

            var corporationEid =
                DefaultCorporationDataCache.GetPureCorporationFromAllianceByPostFix(issuerAllianceEid, corpNamePostFix);

            issuerCorporationEid = corporationEid;

#if DEBUG
            if (MissionResolveTester.isTestMode)
            {
                return;
            }

            var allianceName    = DefaultCorporationDataCache.GetAllianceName(issuerAllianceEid);
            var corporationName = DefaultCorporationDataCache.GetCorporationName(issuerCorporationEid);

            Logger.Info(missionCategory + " " + allianceName + " mapped to " + corporationName);
#endif
        }
예제 #11
0
 public MissionStart(MissionProcessor missionProcessor, MissionDataCache missionDataCache)
 {
     _missionProcessor = missionProcessor;
     _missionDataCache = missionDataCache;
 }
 public MissionData(MissionDataCache missionDataCache)
 {
     _missionDataCache = missionDataCache;
 }
예제 #13
0
 public MissionStartFromZone(MissionDataCache missionDataCache, MissionProcessor missionProcessor)
 {
     _missionDataCache = missionDataCache;
     _missionProcessor = missionProcessor;
 }
예제 #14
0
 public static void Init(MissionDataCache missionDataCache, IStandingHandler standingHandler)
 {
     _missionDataCache = missionDataCache;
     _standingHandler  = standingHandler;
 }
 public MissionReloadCache(MissionDataCache missionDataCache)
 {
     _missionDataCache = missionDataCache;
 }
예제 #16
0
 public DeliveryHelper(MissionDataCache missionDataCache, MissionProcessor missionProcessor)
 {
     _missionDataCache = missionDataCache;
     _missionProcessor = missionProcessor;
 }
 public ZoneDisplayMissionRandomPoints(MissionDataCache missionDataCache)
 {
     _missionDataCache = missionDataCache;
 }
 public MissionFlush(MissionProcessor missionProcessor, MissionDataCache missionDataCache, IZoneManager zoneManager)
 {
     _missionProcessor = missionProcessor;
     _missionDataCache = missionDataCache;
     _zoneManager      = zoneManager;
 }
예제 #19
0
 public MissionListAgents(MissionDataCache missionDataCache)
 {
     _missionDataCache = missionDataCache;
 }
 public FieldTerminal(MissionDataCache missionDataCache, DockingBaseHelper dockingBaseHelper)
 {
     _missionDataCache  = missionDataCache;
     _dockingBaseHelper = dockingBaseHelper;
 }
 public MissionAdminTake(MissionProcessor missionProcessor, MissionDataCache missionDataCache)
 {
     _missionProcessor = missionProcessor;
     _missionDataCache = missionDataCache;
 }
예제 #22
0
 public MissionDeliver(MissionProcessor missionProcessor, MissionDataCache missionDataCache)
 {
     _missionProcessor = missionProcessor;
     _missionDataCache = missionDataCache;
 }
예제 #23
0
 public MissionProcessor(MissionDataCache missionDataCache, MissionAdministrator.Factory missionAdministratorFactory, IStandingHandler standingHandler)
 {
     MissionAdministrator = missionAdministratorFactory(this);
     _missionDataCache    = missionDataCache;
     _standingHandler     = standingHandler;
 }
 public MissionGetOptions(MissionProcessor missionProcessor, MissionDataCache missionDataCache)
 {
     _missionProcessor = missionProcessor;
     _missionDataCache = missionDataCache;
 }
예제 #25
0
 public static void Init(MissionDataCache missionDataCache)
 {
     _missionDataCache = missionDataCache;
 }
 public MissionAdminListAll(MissionDataCache missionDataCache)
 {
     _missionDataCache = missionDataCache;
 }