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); }
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; } }); }
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)); }
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); } } } }
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); } }
protected override void DisposeManagedResources() { r_Owner = null; r_Ships = null; base.DisposeManagedResources(); }
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]; } } } }
// 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); }
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)); }
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); }
private bool CanProcessItem(ID id, CallContext context) { if (IDTable.GetKeys(this.IdTablePrefix, id).Length > 0) { return(true); } return(false); }
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]); }
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)); }
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); }
internal static ID GetItemIdFromIDTableEntry(string prefix, string key) { IDTableEntry idTableEntry = IDTable.GetID(prefix, key); if (idTableEntry == null) { return(ID.Null); } return(idTableEntry.ID); }
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); }
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))); }
protected virtual Guid GenerateId(T externalItem) { Guid value = ToGuid(externalItem.Name); if (IDTable.GetKeys(IdTablePrefix, new ID(value)).Any()) { return(Guid.NewGuid()); } return(value); }
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); }
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))); }
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)); } }
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(); }
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)); }
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); } }
// 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); }
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)); }
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()); }
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); }
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(); } } } }
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); } }
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()); }
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) }, }); }
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); }
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)); }