public void Initialize()
        {
            SessionService.Instance.SubscribeOnce("api_get_member/require_info", delegate
            {
                try
                {
                    var rDataFile = new FileInfo(DataFilename);
                    if (rDataFile.Exists)
                        using (var rReader = new JsonTextReader(rDataFile.OpenText()))
                        {
                            var rData = JArray.Load(rReader);

                            r_Infos = rData.Select(r => r.ToObject<ExpeditionInfo2>()).ToIDTable();
                        }
                }
                finally
                {
                    if (r_Infos == null)
                        r_Infos = new IDTable<ExpeditionInfo2>();

                    r_InitializationLock.Set();
                    r_InitializationLock.Dispose();
                    r_InitializationLock = null;
                }
            });
        }
        public void Initialize()
        {
            SessionService.Instance.SubscribeOnce("api_get_member/require_info", delegate
            {
                try
                {
                    var rDataFile = new FileInfo(DataFilename);
                    if (rDataFile.Exists)
                    {
                        using (var rReader = new JsonTextReader(rDataFile.OpenText()))
                        {
                            var rData = JArray.Load(rReader);

                            r_Infos = rData.Select(r => r.ToObject <ExpeditionInfo2>()).ToIDTable();
                        }
                    }
                }
                finally
                {
                    if (r_Infos == null)
                    {
                        r_Infos = new IDTable <ExpeditionInfo2>();
                    }

                    r_InitializationLock.Set();
                    r_InitializationLock.Dispose();
                    r_InitializationLock = null;
                }
            });
        }
        private static void SaveEncryptionKey([NotNull] string encryptionKey, [NotNull] Item targetIntegrationItem)
        {
            Assert.ArgumentNotNull(encryptionKey, "encryptionKey");
            Assert.ArgumentNotNull(targetIntegrationItem, "targetIntegrationItem");

            IDTable.Add(EncryptionKeyIDTableEntryPrefix, targetIntegrationItem.ID.ToShortID().ToString(), ID.NewID, ID.Null, encryptionKey);
        }
Ejemplo n.º 4
0
        public void Initialize()
        {
            ApiService.SubscribeOnce("api_get_member/require_info", delegate
            {
                try
                {
                    byte[] rContent;
                    if (!DataStore.TryGet("expedition", out rContent))
                    {
                        r_Infos = new IDTable <ExpeditionInfo2>();
                    }
                    else
                    {
                        var rReader = new JsonTextReader(new StreamReader(new MemoryStream(rContent)));
                        var rData   = JArray.Load(rReader);

                        r_Infos = rData.Select(r => r.ToObject <ExpeditionInfo2>()).ToIDTable();
                    }
                }
                finally
                {
                    r_InitializationLock.Set();
                    r_InitializationLock.Dispose();
                    r_InitializationLock = null;
                }
            });
        }
Ejemplo n.º 5
0
 private void PortHandler(port_port api)
 {
     System.Runtime.GCSettings.LargeObjectHeapCompactionMode = System.Runtime.GCLargeObjectHeapCompactionMode.CompactOnce;
     GC.Collect();
     Staff.Current.Admiral.BasicHandler(api.api_basic);
     ConditionHelper.Instance.BeginUpdate();
     Staff.Current.Shipyard.RepairDocks.ForEach(x => x.Ship?.IgnoreNextCondition());
     if (Ships == null)
     {
         Ships = new IDTable <int, Ship>(api.api_ship.Select(x => new Ship(x)));
     }
     else
     {
         Ships.UpdateAll(api.api_ship, x => x.api_id);
     }
     ConditionHelper.Instance.EndUpdate();
     Staff.Current.Admiral.ShipCount = api.api_ship.Length;
     Staff.Current.Shipyard.NDockHandler(api.api_ndock);
     DecksHandler(api.api_deck_port);
     if (Fleets.Any(x => x.MissionState == Fleet.FleetMissionState.Complete))
     {
         Logger.Loggers.MaterialLogger.ForceLog = false;
     }
     Material.MaterialHandler(api.api_material);
     CombinedFleet = (CombinedFleetType)api.api_combined_flag;
     Fleets.ForEach(x => x.CheckHomeportRepairingTime(false));
 }
Ejemplo n.º 6
0
 protected void OnItemSaved(object sender, System.EventArgs args)
 {
     if ((args != null))
     {
         Item item = Event.ExtractParameter(args, 0) as Item;
         Assert.IsNotNull(item, "No item in parameters");
         ID parentID = item.ParentID;
         if (BucketManager.IsItemContainedWithinBucket(item))
         {
             parentID = item.GetParentBucketItemOrParent().ParentID;
         }
         IHasExternalId i = item.GlassCast <IHasExternalId>();
         if (i != null && !string.IsNullOrEmpty(i.ExternalId))
         {
             string prefix = i.TemplateId.GetMatchingPrefix();
             if (IDTable.GetID(prefix, i.ExternalId) == null)
             {
                 IDTable.Add(prefix, i.ExternalId, item.ID, parentID);
             }
         }
         else if (parentID.Equals(RebootConstants.ImageRootID))
         {
             string prefix = RebootConstants.ImageItemPrefix;
             if (IDTable.GetID(prefix, item.Name) == null)
             {
                 IDTable.Add(prefix, item.Name, item.ID, parentID);
             }
         }
     }
 }
Ejemplo n.º 7
0
        public static void UpdateAll <T, T2>(this IDTable <int, T> idtable, IEnumerable <T2> source, Func <T2, int> getid)
            where T : GameObject <T2>
        {
            var deletelist = idtable.ToList();
            var addlist    = new List <T>();

            foreach (T2 e in source)
            {
                T item = idtable[getid(e)];
                if (item != null)
                {
                    item.Update(e);
                    deletelist.Remove(item);
                }
                else
                {
                    addlist.Add((T)Activator.CreateInstance(typeof(T), e));
                }
            }
            if (deletelist.Count > 0)
            {
                idtable.RemoveMany(deletelist);
            }
            if (addlist.Count > 0)
            {
                idtable.AddMany(addlist);
            }
        }
Ejemplo n.º 8
0
        protected override void DisposeManagedResources()
        {
            r_Owner = null;
            r_Ships = null;

            base.DisposeManagedResources();
        }
Ejemplo n.º 9
0
        public override void OnDoubleClick(Mobile from)
        {
            if (!Active && !IsChildOf(from.Backpack))
            {
                from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it.
            }
            else
            {
                var list = IDTable.FirstOrDefault(l => l.Any(id => id == ItemID));

                if (list != null)
                {
                    var index = Array.IndexOf(list, ItemID);

                    if (index == 0)
                    {
                        ItemID = list[1];
                    }
                    else
                    {
                        ItemID = list[0];
                    }
                }
            }
        }
Ejemplo n.º 10
0
        // Determines if the item is a Product item.
        private Boolean canProcessItem(ID id)
        {
            var idTable = IDTable.GetKeys(IDTablePrefix, id);
            var result  = (idTable != null && idTable.Length > 0);

            Trace.WriteLineIf(result, String.Format("{0} can be processed.", id), "ProductDataProvider");
            return(result);
        }
Ejemplo n.º 11
0
        internal void UpdateGroups(RawAirForceGroup[] rpGroups)
        {
            if (Table == null)
                Table = new IDTable<AirForceGroup>();

            if (Table.UpdateRawData(rpGroups, r => new AirForceGroup(r), (rpData, rpRawData) => rpData.Update(rpRawData)))
                OnPropertyChanged(nameof(Table));
        }
Ejemplo n.º 12
0
        public IEnumerable <Guid> GetGenreIDs(IEnumerable <int> ids)
        {
            List <Guid> genreIDs =
                (ids.Select(id => IDTable.GetID(typeof(GenreModel).ToString(), id.ToString()))
                 .Where(idTableEntry => idTableEntry != null)
                 .Select(idTableEntry => idTableEntry.ID.Guid)).ToList();

            return(genreIDs);
        }
Ejemplo n.º 13
0
        private bool CanProcessItem(ID id, CallContext context)
        {
            if (IDTable.GetKeys(this.IdTablePrefix, id).Length > 0)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 14
0
        private static IDTableEntry GetEntry(string prefix, ID itemId)
        {
            var keys = IDTable.GetKeys(prefix, itemId);

            if (keys == null || keys.Length == 0)
            {
                return(null);
            }
            return(keys[0]);
        }
Ejemplo n.º 15
0
 public override ID GetParentID(ItemDefinition itemDefinition, CallContext context)
 {
     IDTableEntry[] idList = IDTable.GetKeys(ID_TABLE_PREFIX, itemDefinition.ID);
     if (idList.Length > 0)
     {
         context.Abort();
         return(ID.Parse(_parentItem));
     }
     return(base.GetParentID(itemDefinition, context));
 }
Ejemplo n.º 16
0
 public override bool BlobStreamExists(Guid blobId, CallContext context)
 {
     IDTableEntry[] idList = IDTable.GetKeys(ID_TABLE_PREFIX, new ID(blobId));
     if (idList.Length > 0)
     {
         context.Abort();
         return(true);
     }
     return(false);
 }
Ejemplo n.º 17
0
        internal static ID GetItemIdFromIDTableEntry(string prefix, string key)
        {
            IDTableEntry idTableEntry = IDTable.GetID(prefix, key);

            if (idTableEntry == null)
            {
                return(ID.Null);
            }
            return(idTableEntry.ID);
        }
Ejemplo n.º 18
0
        private string GetIdTableExternalKey(ID id, string prefix)
        {
            var idEntries = IDTable.GetKeys(prefix, id);

            if (idEntries == null || !idEntries.Any() || string.IsNullOrEmpty(idEntries[0].Key))
            {
                return(null);
            }

            return(idEntries[0].Key);
        }
Ejemplo n.º 19
0
 private void MasterHandler(api_start2 api)
 {
     MapAreas = new IDTable <int, MapArea>(api.api_mst_maparea.Select(x => new MapArea(x)));
     MapInfos.UpdateAll(api.api_mst_mapinfo, x => x.api_id);
     ShipTypes   = new IDTable <int, ShipType>(api.api_mst_stype.Select(x => new ShipType(x)));
     ShipInfo    = new IDTable <int, ShipInfo>(api.api_mst_ship.Select(x => new ShipInfo(x)));
     EquipTypes  = new IDTable <int, EquipType>(api.api_mst_slotitem_equiptype.Select(x => new EquipType(x)));
     EquipInfo   = new IDTable <int, EquipInfo>(api.api_mst_slotitem.Select(x => new EquipInfo(x)));
     MissionInfo = new IDTable <int, MissionInfo>(api.api_mst_mission.Select(x => new MissionInfo(x)));
     UseItems    = new IDTable <int, UseItem>(api.api_mst_useitem.Select(x => new UseItem(x)));
 }
Ejemplo n.º 20
0
        protected virtual Guid GenerateId(T externalItem)
        {
            Guid value = ToGuid(externalItem.Name);

            if (IDTable.GetKeys(IdTablePrefix, new ID(value)).Any())
            {
                return(Guid.NewGuid());
            }

            return(value);
        }
Ejemplo n.º 21
0
        public void RemoveID(string prefix, ID id)
        {
            var key = new IdTableIdKey(prefix, id.Guid);

            if (_idById.ContainsKey(key))
            {
                _idById.Remove(key);
            }

            IDTable.RemoveID(prefix, id);
        }
Ejemplo n.º 22
0
 private void MasterHandler(api_start2 api)
 {
     MapAreas = new IDTable<int, MapArea>(api.api_mst_maparea.Select(x => new MapArea(x)));
     MapInfos.UpdateAll(api.api_mst_mapinfo, x => x.api_id);
     ShipTypes = new IDTable<int, ShipType>(api.api_mst_stype.Select(x => new ShipType(x)));
     ShipInfo = new IDTable<int, ShipInfo>(api.api_mst_ship.Select(x => new ShipInfo(x)));
     EquipTypes = new IDTable<int, EquipType>(api.api_mst_slotitem_equiptype.Select(x => new EquipType(x)));
     EquipInfo = new IDTable<int, EquipInfo>(api.api_mst_slotitem.Select(x => new EquipInfo(x)));
     MissionInfo = new IDTable<int, MissionInfo>(api.api_mst_mission.Select(x => new MissionInfo(x)));
     UseItems = new IDTable<int, UseItem>(api.api_mst_useitem.Select(x => new UseItem(x)));
 }
Ejemplo n.º 23
0
        private int GetUnlitID()
        {
            var list = IDTable.FirstOrDefault(l => l.Any(id => id == ItemID));

            if (list != null)
            {
                return(EastFacing ? list[0] : list[1]);
            }

            return(ItemID);
        }
        private void DeleteEntriesToBeRegeneratedWithNewId()
        {
            while (_entriesToBeDeleted.Count > 0)
            {
                var first = _entriesToBeDeleted.First();
                _entriesToBeDeleted.Remove(first);

                IDTable.RemoveKey(first.Prefix, first.Key);
                _log.Log <MigrateIdTableValues>(string.Format("IDTable.RemoveKey({0},{1})", first.Prefix, first.Key));
            }
        }
Ejemplo n.º 25
0
 public override Stream GetBlobStream(Guid blobId, CallContext context)
 {
     IDTableEntry[] idList = IDTable.GetKeys(ID_TABLE_PREFIX, new ID(blobId));
     if (idList.Length > 0)
     {
         IDTableEntry mappedID = idList[0];
         context.Abort();
         return(GetThumbnailStream(mappedID.Key));
     }
     return(null);
 }
        public void Initialize()
        {
            var rDataFile = new FileInfo(DataFilename);
            if (!rDataFile.Exists)
                r_ShipLocking = new IDTable<ShipLocking>();
            else
                using (var rReader = new JsonTextReader(rDataFile.OpenText()))
                    r_ShipLocking = JArray.Load(rReader).Select(r => r.ToObject<ShipLocking>()).ToIDTable();

            ShipLocking = r_ShipLocking.Values.ToList().AsReadOnly();
        }
Ejemplo n.º 27
0
        public override bool SaveItem(ItemDefinition itemDefinition, ItemChanges changes, CallContext context)
        {
            foreach (FieldChange change in changes.FieldChanges)
            {
                if (ShouldApplyChangeToDataStore(change))
                {
                    SaveChangeToDataStore(change, IDTable.GetKeys(IdTablePrefix, itemDefinition.ID).FirstOrDefault().Key);
                }
            }

            return(base.SaveItem(itemDefinition, changes, context));
        }
Ejemplo n.º 28
0
 private void DecksHandler(getmember_deck[] api)
 {
     if (Fleets == null)
     {
         Fleets        = new IDTable <int, Fleet>(api.Select(x => new Fleet(x))).WithSyncBindingEnabled();
         SelectedFleet = 0;
     }
     else
     {
         Fleets.UpdateAll(api, x => x.api_id);
     }
 }
Ejemplo n.º 29
0
        // Get's the parent id
        private ID getParentId(ID childId)
        {
            var keys = IDTable.GetKeys(IDTablePrefix, childId);

            if (keys != null && keys.Length > 0)
            {
                Trace.WriteLine(String.Format("{0}'s parent is {1}", childId, keys[0].ParentID), "ProductDataProvider");
                return(keys[0].ParentID);
            }
            Trace.WriteLine(String.Format("{0} doesn't have a parent", childId), "ProductDataProvider");
            return(null);
        }
Ejemplo n.º 30
0
        public override Sitecore.Data.FieldList GetItemFields(ItemDefinition itemDefinition, VersionUri versionUri, CallContext context)
        {
            IDTableEntry[] idList = IDTable.GetKeys(ID_TABLE_PREFIX, itemDefinition.ID);
            if (idList.Length > 0)
            {
                IDTableEntry mappedID = idList[0];
                context.Abort();
                XmlNode   video = VideoData.SelectSingleNode("/response/videos/video[@key='" + mappedID.Key + "']");
                FieldList list  = new FieldList();
                list.Add(ID.Parse(DISPLAY_NAME_FIELD), video[BOTR_TITLE].InnerText);
                list.Add(ID.Parse(VIDEO_KEY_FIELD), mappedID.Key);
                list.Add(ID.Parse(STATUS_FIELD), video[BOTR_STATUS].InnerText);
                list.Add(ID.Parse(BLOB_FIELD), itemDefinition.ID.ToString());
                list.Add(ID.Parse(TITLE_FIELD), video[BOTR_TITLE].InnerText);
                list.Add(ID.Parse(DESCRIPTION_FIELD), video[BOTR_DESCRIPTION].InnerText);
                list.Add(ID.Parse(KEYWORDS_FIELD), video[BOTR_TAGS].InnerText);
                list.Add(ID.Parse(ALT_FIELD), video[BOTR_TITLE].InnerText);
                list.Add(ID.Parse(EXTENSION_FIELD), EXTENSION);
                list.Add(ID.Parse(MIME_TYPE_FIELD), MIME_TYPE);
                list.Add(ID.Parse(VIDEO_URL_FIELD), video[BOTR_LINK].InnerText);
                XmlNode custom = video[BOTR_CUSTOM];
                if (custom != null && custom[BOTR_CUSTOM_LINK] != null)
                {
                    list.Add(ID.Parse(VIDEO_CUSTOM_URL_FIELD), custom[BOTR_CUSTOM_LINK].InnerText);
                }

                double videoTimestamp = Double.Parse(video[BOTR_DATE].InnerText);
                string videoDate      = Sitecore.DateUtil.ToIsoDate(UnixDateTime.FromUnixTimestamp(videoTimestamp));
                list.Add(ID.Parse(CREATED_FIELD), videoDate);
                list.Add(ID.Parse(UPDATED_FIELD), videoDate);

                //BotR puts width/height data with conversion data. just need the aspect ratio, so grab the first one in the doc
                XmlDocument conversionData  = GetVideoConversionData(mappedID.Key);
                XmlNode     videoConversion = conversionData.SelectSingleNode("/response/conversions/conversion");
                if (videoConversion != null)
                {
                    string heightStr = videoConversion[BOTR_HEIGHT].InnerText;
                    string widthStr  = videoConversion[BOTR_WIDTH].InnerText;
                    double height    = 0;
                    double width     = 0;
                    Double.TryParse(heightStr, out height);
                    Double.TryParse(widthStr, out width);
                    if (height != 0 && width != 0)
                    {
                        int thumbHeight = (int)(THUMBNAIL_SIZE * (height / width));
                        list.Add(ID.Parse(WIDTH_FIELD), THUMBNAIL_SIZE.ToString());
                        list.Add(ID.Parse(HEIGHT_FIELD), thumbHeight.ToString());
                    }
                }
                return(list);
            }
            return(base.GetItemFields(itemDefinition, versionUri, context));
        }
Ejemplo n.º 31
0
 private void ItemsHandler(getmember_slotitem[] api)
 {
     if (Equipments == null)
     {
         Equipments = new IDTable <int, Equipment>(api.Select(x => new Equipment(x)));
     }
     else
     {
         Equipments.UpdateAll(api, x => x.api_id);
     }
     Staff.Current.Admiral.EquipCount = api.Length;
     Ships?.ForEach(x => x.TryUpdateEquip());
 }
Ejemplo n.º 32
0
        public IDTableEntry GetID(string prefix, string key)
        {
            var idTableStringKey = new IdTableStringKey(prefix, key);

            //if (_idByKey.ContainsKey(idTableStringKey))
            //{
            //    return _idByKey[idTableStringKey];
            //}

            _idByKey[idTableStringKey] = IDTable.GetID(prefix, key);

            return(_idByKey[idTableStringKey]);
        }
        private static string GetEncryptionKey([NotNull] Item targetIntegrationItem)
        {
            Assert.ArgumentNotNull(targetIntegrationItem, "targetIntegrationItem");

            IDTableEntry encryptionKeyEntry = IDTable.GetID(EncryptionKeyIDTableEntryPrefix, targetIntegrationItem.ID.ToShortID().ToString());

            if (encryptionKeyEntry == null)
            {
                return(null);
            }

            return(encryptionKeyEntry.CustomData);
        }
Ejemplo n.º 34
0
        public override void Execute(CommandContext context)
        {
            IEnumerable <Type> allGlassBasedModels = null;

            allGlassBasedModels = ReflectionHelper.GetAllTypesThatImplement <GlassBase>(
                new List <string>
            {
                "Projects.Common.Models",
                "Projects.Reboot.Models"
            }
                );
            Database database    = Factory.GetDatabase("master");
            Item     modelFolder = database.GetItem(RebootConstants.ModelRootId);

            foreach (var glassModel in allGlassBasedModels.Where(t => !t.IsAbstract))
            {
                Log.Info(string.Format("Adding model {0} to Sitecore", glassModel.FullName), context);
                string       displayName  = glassModel.Name;
                string       name         = ItemUtil.ProposeValidItemName(glassModel.FullName.Replace(".", "_"));
                string       prefix       = RebootConstants.ModelTemplateId.ToString();
                string       key          = name;
                IDTableEntry idTableEntry = IDTable.GetID(prefix, key);
                if (idTableEntry != null)
                {
                    continue;
                }
                Item model = modelFolder.Add(name, new TemplateID(RebootConstants.ModelTemplateId));
                if (model == null)
                {
                    continue;
                }
                using (new SecurityDisabler())
                {
                    model.Editing.BeginEdit();
                    try
                    {
                        model.Appearance.DisplayName = displayName;
                        model["Model Type"]          = glassModel.AssemblyQualifiedName;
                    }
                    catch (Exception ex)
                    {
                        Log.Error("An error occured while editing Model " + displayName, context);
                        model.Editing.CancelEdit();
                    }
                    finally
                    {
                        model.Editing.EndEdit();
                    }
                }
            }
        }
Ejemplo n.º 35
0
 private void DecksHandler(getmember_deck[] api)
 {
     if (Fleets == null)
     {
         Fleets = new IDTable<int, Fleet>(api.Select(x => new Fleet(x))).WithSyncBindingEnabled();
         SelectedFleet = 0;
     }
     else
     {
         Fleets.UpdateAll(api, x => x.api_id);
     }
 }
Ejemplo n.º 36
0
 private void ItemsHandler(getmember_slotitem[] api)
 {
     if (Equipments == null)
         Equipments = new IDTable<int, Equipment>(api.Select(x => new Equipment(x)));
     else Equipments.UpdateAll(api, x => x.api_id);
     Staff.Current.Admiral.EquipCount = api.Length;
     Ships?.ForEach(x => x.TryUpdateEquip());
 }
Ejemplo n.º 37
0
        internal void UpdateGroups(RawAirForceGroup[] rpGroups)
        {
            if (rpGroups == null)
                return;

            HashSet<int> rRemovedIDs = null;
            if (Table.Count > 0)
                rRemovedIDs = new HashSet<int>(Table.Keys);

            var rUpdate = false;

            var rAreas = rpGroups.GroupBy(r => r.AreaID);
            foreach (var rArea in rAreas)
            {
                var rAreaID = rArea.Key;

                IDTable<AirForceGroup> rGroups;
                if (!Table.TryGetValue(rAreaID, out rGroups))
                    Table.Add(rAreaID, rGroups = new IDTable<AirForceGroup>());

                rUpdate |= rGroups.UpdateRawData(rArea, r => new AirForceGroup(r), (rpData, rpRawData) => rpData.Update(rpRawData));

                if (rRemovedIDs != null)
                    rRemovedIDs.Remove(rAreaID);
            }

            if (rRemovedIDs != null)
                foreach (var rID in rRemovedIDs)
                {
                    Table.Remove(rID);
                    rUpdate = true;
                }

            if (rUpdate)
                OnPropertyChanged(nameof(AllGroups));
        }
        static ExperienceTable()
        {
            Ship = new IDTable<Experience>(new HybridDictionary<int, Experience>(155)
            {
                { 1, new Experience(1, 0, 100) },
                { 2, new Experience(2, 100, 200) },
                { 3, new Experience(3, 300, 300) },
                { 4, new Experience(4, 600, 400) },
                { 5, new Experience(5, 1000, 500) },
                { 6, new Experience(6, 1500, 600) },
                { 7, new Experience(7, 2100, 700) },
                { 8, new Experience(8, 2800, 800) },
                { 9, new Experience(9, 3600, 900) },
                { 10, new Experience(10, 4500, 1000) },
                { 11, new Experience(11, 5500, 1100) },
                { 12, new Experience(12, 6600, 1200) },
                { 13, new Experience(13, 7800, 1300) },
                { 14, new Experience(14, 9100, 1400) },
                { 15, new Experience(15, 10500, 1500) },
                { 16, new Experience(16, 12000, 1600) },
                { 17, new Experience(17, 13600, 1700) },
                { 18, new Experience(18, 15300, 1800) },
                { 19, new Experience(19, 17100, 1900) },
                { 20, new Experience(20, 19000, 2000) },
                { 21, new Experience(21, 21000, 2100) },
                { 22, new Experience(22, 23100, 2200) },
                { 23, new Experience(23, 25300, 2300) },
                { 24, new Experience(24, 27600, 2400) },
                { 25, new Experience(25, 30000, 2500) },
                { 26, new Experience(26, 32500, 2600) },
                { 27, new Experience(27, 35100, 2700) },
                { 28, new Experience(28, 37800, 2800) },
                { 29, new Experience(29, 40600, 2900) },
                { 30, new Experience(30, 43500, 3000) },
                { 31, new Experience(31, 46500, 3100) },
                { 32, new Experience(32, 49600, 3200) },
                { 33, new Experience(33, 52800, 3300) },
                { 34, new Experience(34, 56100, 3400) },
                { 35, new Experience(35, 59500, 3500) },
                { 36, new Experience(36, 63000, 3600) },
                { 37, new Experience(37, 66600, 3700) },
                { 38, new Experience(38, 70300, 3800) },
                { 39, new Experience(39, 74100, 3900) },
                { 40, new Experience(40, 78000, 4000) },
                { 41, new Experience(41, 82000, 4100) },
                { 42, new Experience(42, 86100, 4200) },
                { 43, new Experience(43, 90300, 4300) },
                { 44, new Experience(44, 94600, 4400) },
                { 45, new Experience(45, 99000, 4500) },
                { 46, new Experience(46, 103500, 4600) },
                { 47, new Experience(47, 108100, 4700) },
                { 48, new Experience(48, 112800, 4800) },
                { 49, new Experience(49, 117600, 4900) },
                { 50, new Experience(50, 122500, 5000) },
                { 51, new Experience(51, 127500, 5200) },
                { 52, new Experience(52, 132700, 5400) },
                { 53, new Experience(53, 138100, 5600) },
                { 54, new Experience(54, 143700, 5800) },
                { 55, new Experience(55, 149500, 6000) },
                { 56, new Experience(56, 155500, 6200) },
                { 57, new Experience(57, 161700, 6400) },
                { 58, new Experience(58, 168100, 6600) },
                { 59, new Experience(59, 174700, 6800) },
                { 60, new Experience(60, 181500, 7000) },
                { 61, new Experience(61, 188500, 7300) },
                { 62, new Experience(62, 195800, 7600) },
                { 63, new Experience(63, 203400, 7900) },
                { 64, new Experience(64, 211300, 8200) },
                { 65, new Experience(65, 219500, 8500) },
                { 66, new Experience(66, 228000, 8800) },
                { 67, new Experience(67, 236800, 9100) },
                { 68, new Experience(68, 245900, 9400) },
                { 69, new Experience(69, 255300, 9700) },
                { 70, new Experience(70, 265000, 10000) },
                { 71, new Experience(71, 275000, 10400) },
                { 72, new Experience(72, 285400, 10800) },
                { 73, new Experience(73, 296200, 11200) },
                { 74, new Experience(74, 307400, 11600) },
                { 75, new Experience(75, 319000, 12000) },
                { 76, new Experience(76, 331000, 12400) },
                { 77, new Experience(77, 343400, 12800) },
                { 78, new Experience(78, 356200, 13200) },
                { 79, new Experience(79, 369400, 13600) },
                { 80, new Experience(80, 383000, 14000) },
                { 81, new Experience(81, 397000, 14500) },
                { 82, new Experience(82, 411500, 15000) },
                { 83, new Experience(83, 426500, 15500) },
                { 84, new Experience(84, 442000, 16000) },
                { 85, new Experience(85, 458000, 16500) },
                { 86, new Experience(86, 474500, 17000) },
                { 87, new Experience(87, 491500, 17500) },
                { 88, new Experience(88, 509000, 18000) },
                { 89, new Experience(89, 527000, 18500) },
                { 90, new Experience(90, 545500, 19000) },
                { 91, new Experience(91, 564500, 20000) },
                { 92, new Experience(92, 584500, 22000) },
                { 93, new Experience(93, 606500, 25000) },
                { 94, new Experience(94, 631500, 30000) },
                { 95, new Experience(95, 661500, 40000) },
                { 96, new Experience(96, 701500, 60000) },
                { 97, new Experience(97, 761500, 90000) },
                { 98, new Experience(98, 851500, 148500) },
                { 99, new Experience(99, 1000000, 0) },
                { 100, new Experience(100, 1000000, 10000) },
                { 101, new Experience(101, 1010000, 1000) },
                { 102, new Experience(102, 1011000, 2000) },
                { 103, new Experience(103, 1013000, 3000) },
                { 104, new Experience(104, 1016000, 4000) },
                { 105, new Experience(105, 1020000, 5000) },
                { 106, new Experience(106, 1025000, 6000) },
                { 107, new Experience(107, 1031000, 7000) },
                { 108, new Experience(108, 1038000, 8000) },
                { 109, new Experience(109, 1046000, 9000) },
                { 110, new Experience(110, 1055000, 10000) },
                { 111, new Experience(111, 1065000, 12000) },
                { 112, new Experience(112, 1077000, 14000) },
                { 113, new Experience(113, 1091000, 16000) },
                { 114, new Experience(114, 1107000, 18000) },
                { 115, new Experience(115, 1125000, 20000) },
                { 116, new Experience(116, 1145000, 23000) },
                { 117, new Experience(117, 1168000, 26000) },
                { 118, new Experience(118, 1194000, 29000) },
                { 119, new Experience(119, 1223000, 32000) },
                { 120, new Experience(120, 1255000, 35000) },
                { 121, new Experience(121, 1290000, 39000) },
                { 122, new Experience(122, 1329000, 43000) },
                { 123, new Experience(123, 1372000, 47000) },
                { 124, new Experience(124, 1419000, 51000) },
                { 125, new Experience(125, 1470000, 55000) },
                { 126, new Experience(126, 1525000, 59000) },
                { 127, new Experience(127, 1584000, 63000) },
                { 128, new Experience(128, 1647000, 67000) },
                { 129, new Experience(129, 1714000, 71000) },
                { 130, new Experience(130, 1785000, 75000) },
                { 131, new Experience(131, 1860000, 80000) },
                { 132, new Experience(132, 1940000, 85000) },
                { 133, new Experience(133, 2025000, 90000) },
                { 134, new Experience(134, 2115000, 95000) },
                { 135, new Experience(135, 2210000, 100000) },
                { 136, new Experience(136, 2310000, 105000) },
                { 137, new Experience(137, 2415000, 110000) },
                { 138, new Experience(138, 2525000, 115000) },
                { 139, new Experience(139, 2640000, 120000) },
                { 140, new Experience(140, 2760000, 127000) },
                { 141, new Experience(141, 2887000, 134000) },
                { 142, new Experience(142, 3021000, 141000) },
                { 143, new Experience(143, 3162000, 148000) },
                { 144, new Experience(144, 3310000, 155000) },
                { 145, new Experience(145, 3465000, 163000) },
                { 146, new Experience(146, 3628000, 171000) },
                { 147, new Experience(147, 3799000, 179000) },
                { 148, new Experience(148, 3978000, 187000) },
                { 149, new Experience(149, 4165000, 195000) },
                { 150, new Experience(150, 4360000, 204000) },
                { 151, new Experience(151, 4564000, 213000) },
                { 152, new Experience(152, 4777000, 222000) },
                { 153, new Experience(153, 4999000, 231000) },
                { 154, new Experience(154, 5230000, 240000) },
                { 155, new Experience(155, 5470000, 0) },
            });

            Admiral = new IDTable<Experience>(new HybridDictionary<int, Experience>(120)
            {
                { 1, new Experience(1, 0, 100) },
                { 2, new Experience(2, 100, 200) },
                { 3, new Experience(3, 300, 300) },
                { 4, new Experience(4, 600, 400) },
                { 5, new Experience(5, 1000, 500) },
                { 6, new Experience(6, 1500, 600) },
                { 7, new Experience(7, 2100, 700) },
                { 8, new Experience(8, 2800, 800) },
                { 9, new Experience(9, 3600, 900) },
                { 10, new Experience(10, 4500, 1000) },
                { 11, new Experience(11, 5500, 1100) },
                { 12, new Experience(12, 6600, 1200) },
                { 13, new Experience(13, 7800, 1300) },
                { 14, new Experience(14, 9100, 1400) },
                { 15, new Experience(15, 10500, 1500) },
                { 16, new Experience(16, 12000, 1600) },
                { 17, new Experience(17, 13600, 1700) },
                { 18, new Experience(18, 15300, 1800) },
                { 19, new Experience(19, 17100, 1900) },
                { 20, new Experience(20, 19000, 2000) },
                { 21, new Experience(21, 21000, 2100) },
                { 22, new Experience(22, 23100, 2200) },
                { 23, new Experience(23, 25300, 2300) },
                { 24, new Experience(24, 27600, 2400) },
                { 25, new Experience(25, 30000, 2500) },
                { 26, new Experience(26, 32500, 2600) },
                { 27, new Experience(27, 35100, 2700) },
                { 28, new Experience(28, 37800, 2800) },
                { 29, new Experience(29, 40600, 2900) },
                { 30, new Experience(30, 43500, 3000) },
                { 31, new Experience(31, 46500, 3100) },
                { 32, new Experience(32, 49600, 3200) },
                { 33, new Experience(33, 52800, 3300) },
                { 34, new Experience(34, 56100, 3400) },
                { 35, new Experience(35, 59500, 3500) },
                { 36, new Experience(36, 63000, 3600) },
                { 37, new Experience(37, 66600, 3700) },
                { 38, new Experience(38, 70300, 3800) },
                { 39, new Experience(39, 74100, 3900) },
                { 40, new Experience(40, 78000, 4000) },
                { 41, new Experience(41, 82000, 4100) },
                { 42, new Experience(42, 86100, 4200) },
                { 43, new Experience(43, 90300, 4300) },
                { 44, new Experience(44, 94600, 4400) },
                { 45, new Experience(45, 99000, 4500) },
                { 46, new Experience(46, 103500, 4600) },
                { 47, new Experience(47, 108100, 4700) },
                { 48, new Experience(48, 112800, 4800) },
                { 49, new Experience(49, 117600, 4900) },
                { 50, new Experience(50, 122500, 5000) },
                { 51, new Experience(51, 127500, 5200) },
                { 52, new Experience(52, 132700, 5400) },
                { 53, new Experience(53, 138100, 5600) },
                { 54, new Experience(54, 143700, 5800) },
                { 55, new Experience(55, 149500, 6000) },
                { 56, new Experience(56, 155500, 6200) },
                { 57, new Experience(57, 161700, 6400) },
                { 58, new Experience(58, 168100, 6600) },
                { 59, new Experience(59, 174700, 6800) },
                { 60, new Experience(60, 181500, 7000) },
                { 61, new Experience(61, 188500, 7300) },
                { 62, new Experience(62, 195800, 7600) },
                { 63, new Experience(63, 203400, 7900) },
                { 64, new Experience(64, 211300, 8200) },
                { 65, new Experience(65, 219500, 8500) },
                { 66, new Experience(66, 228000, 8800) },
                { 67, new Experience(67, 236800, 9100) },
                { 68, new Experience(68, 245900, 9400) },
                { 69, new Experience(69, 255300, 9700) },
                { 70, new Experience(70, 265000, 10000) },
                { 71, new Experience(71, 275000, 10400) },
                { 72, new Experience(72, 285400, 10800) },
                { 73, new Experience(73, 296200, 11200) },
                { 74, new Experience(74, 307400, 11600) },
                { 75, new Experience(75, 319000, 12000) },
                { 76, new Experience(76, 331000, 12400) },
                { 77, new Experience(77, 343400, 12800) },
                { 78, new Experience(78, 356200, 13200) },
                { 79, new Experience(79, 369400, 13600) },
                { 80, new Experience(80, 383000, 14000) },
                { 81, new Experience(81, 397000, 14500) },
                { 82, new Experience(82, 411500, 15000) },
                { 83, new Experience(83, 426500, 15500) },
                { 84, new Experience(84, 442000, 16000) },
                { 85, new Experience(85, 458000, 16500) },
                { 86, new Experience(86, 474500, 17000) },
                { 87, new Experience(87, 491500, 17500) },
                { 88, new Experience(88, 509000, 18000) },
                { 89, new Experience(89, 527000, 18500) },
                { 90, new Experience(90, 545500, 19000) },
                { 91, new Experience(91, 564500, 20000) },
                { 92, new Experience(92, 584500, 22000) },
                { 93, new Experience(93, 606500, 25000) },
                { 94, new Experience(94, 631500, 30000) },
                { 95, new Experience(95, 661500, 40000) },
                { 96, new Experience(96, 701500, 60000) },
                { 97, new Experience(97, 761500, 90000) },
                { 98, new Experience(98, 851500, 148500) },
                { 99, new Experience(99, 1000000, 300000) },
                { 100, new Experience(100, 1300000, 300000) },
                { 101, new Experience(101, 1600000, 300000) },
                { 102, new Experience(102, 1900000, 300000) },
                { 103, new Experience(103, 2200000, 400000) },
                { 104, new Experience(104, 2600000, 400000) },
                { 105, new Experience(105, 3000000, 500000) },
                { 106, new Experience(106, 3500000, 500000) },
                { 107, new Experience(107, 4000000, 600000) },
                { 108, new Experience(108, 4600000, 600000) },
                { 109, new Experience(109, 5200000, 700000) },
                { 110, new Experience(110, 5900000, 700000) },
                { 111, new Experience(111, 6600000, 800000) },
                { 112, new Experience(112, 7400000, 800000) },
                { 113, new Experience(113, 8200000, 900000) },
                { 114, new Experience(114, 9100000, 900000) },
                { 115, new Experience(115, 10000000, 1000000) },
                { 116, new Experience(116, 11000000, 1000000) },
                { 117, new Experience(117, 12000000, 1000000) },
                { 118, new Experience(118, 13000000, 1000000) },
                { 119, new Experience(119, 14000000, 1000000) },
                { 120, new Experience(120, 15000000, 0) },
            });
        }
Ejemplo n.º 39
0
 private void UpdateInProgress()
 {
     List<Quest> list = AvilableQuests.Where(x => x.State == QuestState.InProgress || x.State == QuestState.Complete).ToList();
     int mistindexstart = 1001;
     while (list.Count < InProgressCount)
         list.Add(new Quest(new api_quest { api_no = mistindexstart++ }));
     list.Sort();
     QuestInProgress = new IDTable<int, Quest>(list);
 }
Ejemplo n.º 40
0
 private void PortHandler(port_port api)
 {
     System.Runtime.GCSettings.LargeObjectHeapCompactionMode = System.Runtime.GCLargeObjectHeapCompactionMode.CompactOnce;
     GC.Collect();
     Staff.Current.Admiral.BasicHandler(api.api_basic);
     ConditionHelper.Instance.BeginUpdate();
     Staff.Current.Shipyard.RepairDocks.ForEach(x => x.Ship?.IgnoreNextCondition());
     if (Ships == null)
         Ships = new IDTable<int, Ship>(api.api_ship.Select(x => new Ship(x)));
     else Ships.UpdateAll(api.api_ship, x => x.api_id);
     ConditionHelper.Instance.EndUpdate();
     Staff.Current.Admiral.ShipCount = api.api_ship.Length;
     Staff.Current.Shipyard.NDockHandler(api.api_ndock);
     DecksHandler(api.api_deck_port);
     if (Fleets.Any(x => x.MissionState == Fleet.FleetMissionState.Complete))
         Logger.Loggers.MaterialLogger.ForceLog = false;
     Material.MaterialHandler(api.api_material);
     CombinedFleet = (CombinedFleetType)api.api_combined_flag;
     Fleets.ForEach(x => x.CheckHomeportRepairingTime(false));
 }