diff --git a/Libraries/Core/Helpers/RagfairServerHelper.cs b/Libraries/Core/Helpers/RagfairServerHelper.cs index d258cb21..cd1ebf66 100644 --- a/Libraries/Core/Helpers/RagfairServerHelper.cs +++ b/Libraries/Core/Helpers/RagfairServerHelper.cs @@ -79,7 +79,7 @@ public class RagfairServerHelper( if ( ragfairConfig.Dynamic.Blacklist.DamagedAmmoPacks && itemDetails.Value.Parent == BaseClasses.AMMO_BOX && - itemDetails[1]._name.includes("_damaged") + itemDetails.Value.Name.Contains("_damaged") ) { return false; } @@ -92,8 +92,9 @@ public class RagfairServerHelper( * @param itemTemplateId Item tpl to check is blacklisted * @returns True if its blacklsited */ - protected isItemOnCustomFleaBlacklist(itemTemplateId: string): boolean { - return ragfairConfig.dynamic.blacklist.custom.includes(itemTemplateId); + protected bool IsItemOnCustomFleaBlacklist(string itemTemplateId) + { + return ragfairConfig.Dynamic.Blacklist.Custom.Contains(itemTemplateId); } /** @@ -101,8 +102,8 @@ public class RagfairServerHelper( * @param parentId Parent Id to check is blacklisted * @returns true if blacklisted */ - protected isItemCategoryOnCustomFleaBlacklist(itemParentId: string): boolean { - return ragfairConfig.dynamic.blacklist.customItemCategoryList.includes(itemParentId); + protected bool IsItemCategoryOnCustomFleaBlacklist(string itemParentId) { + return ragfairConfig.Dynamic.Blacklist.CustomItemCategoryList.Contains(itemParentId); } /** @@ -110,8 +111,8 @@ public class RagfairServerHelper( * @param traderId * @returns True if id was a trader */ - public isTrader(traderId: string): boolean { - return traderId in databaseService.getTraders(); + public bool IsTrader(string traderId) { + return databaseService.GetTraders().ContainsKey(traderId); } /** @@ -119,71 +120,69 @@ public class RagfairServerHelper( * @param sessionID Player to send items to * @param returnedItems Items to send to player */ - public returnItems(sessionID: string, returnedItems: IItem[]): void { - mailSendService.sendLocalisedNpcMessageToPlayer( + public void ReturnItems(string sessionID, List returnedItems) + { + mailSendService.SendLocalisedNpcMessageToPlayer( sessionID, - traderHelper.getTraderById(Traders.RAGMAN), + traderHelper.GetTraderById(Traders.RAGMAN).ToString(), MessageType.MESSAGE_WITH_ITEMS, RagfairServerHelper.goodsReturnedTemplate, returnedItems, - timeUtil.getHoursAsSeconds( - databaseService.getGlobals().config.RagFair.yourOfferDidNotSellMaxStorageTimeInHour, - ), + timeUtil.GetHoursAsSeconds((int) databaseService.GetGlobals().Configuration.RagFair.YourOfferDidNotSellMaxStorageTimeInHour) ); } - public calculateDynamicStackCount(tplId: string, isWeaponPreset: boolean): number { - var config = ragfairConfig.dynamic; + public int CalculateDynamicStackCount(string tplId, bool isWeaponPreset) + { + var config = ragfairConfig.Dynamic; // Lookup item details - check if item not found - var itemDetails = itemHelper.getItem(tplId); - if (!itemDetails[0]) { - throw new JSType.Error( - localisationService.getText( + var itemDetails = itemHelper.GetItem(tplId); + if (!itemDetails.Key) { + throw new Exception( + localisationService.GetText( "ragfair-item_not_in_db_unable_to_generate_dynamic_stack_count", - tplId, - ), + tplId + ) ); } // Item Types to return one of - if ( - isWeaponPreset || - itemHelper.isOfBaseclasses(itemDetails[1]._id, ragfairConfig.dynamic.showAsSingleStack) + if (isWeaponPreset || + itemHelper.IsOfBaseclasses(itemDetails.Value.Id, ragfairConfig.Dynamic.ShowAsSingleStack) ) { return 1; } // Get max stack count - var maxStackCount = itemDetails[1]._props.StackMaxSize; + var maxStackCount = itemDetails.Value?.Properties?.StackMaxSize; // non-stackable - use different values to calculate stack size - if (!maxStackCount || maxStackCount === 1) { - return Math.round(randomUtil.getInt(config.nonStackableCount.min, config.nonStackableCount.max)); + if (maxStackCount is null or 1) { + return randomUtil.GetInt((int) config.NonStackableCount.Min, (int) config.NonStackableCount.Max); } - var stackPercent = Math.round( - randomUtil.getInt(config.stackablePercent.min, config.stackablePercent.max), - ); + var stackPercent = Math.Round(randomUtil.GetDouble((double) config.StackablePercent.Min, (double) config.StackablePercent.Max)); - return Math.round((maxStackCount / 100) * stackPercent); + return (int) ((maxStackCount / 100) * stackPercent); } /** * Choose a currency at random with bias * @returns currency tpl */ - public getDynamicOfferCurrency(): string { - var currencies = ragfairConfig.dynamic.currencies; - var bias: string[] = []; + public string GetDynamicOfferCurrency() + { + var currencies = ragfairConfig.Dynamic.Currencies; + var bias = new List(); - for (var item in currencies) { - for (let i = 0; i < currencies[item]; i++) { - bias.push(item); + foreach (var item in currencies.Keys) { + for (var i = 0; i < currencies[item]; i++) { + bias.Add(item); } } - return bias[Math.floor(Math.random() * bias.length)]; + return bias[(int) Math.Floor(randomUtil.RandNum(0, 1) * bias.Count)]; } /** @@ -191,9 +190,10 @@ public class RagfairServerHelper( * @param item Preset item * @returns Array of weapon and its children */ - public getPresetItems(item: IItem): IItem[] { - var preset = cloner.clone(databaseService.getGlobals().ItemPresets[item._id]._items); - return itemHelper.reparentItemAndChildren(item, preset); + public List GetPresetItems(Item item) + { + var preset = cloner.Clone(databaseService.GetGlobals().ItemPresets[item.Id].Items); + return itemHelper.ReparentItemAndChildren(item, preset); } /** @@ -201,15 +201,15 @@ public class RagfairServerHelper( * @param item Preset item * @returns */ - public getPresetItemsByTpl(item: IItem): IItem[] { - var presets = []; - for (var itemId in databaseService.getGlobals().ItemPresets) { - if (databaseService.getGlobals().ItemPresets[itemId]._items[0]._tpl === item._tpl) { - var presetItems = cloner.clone(databaseService.getGlobals().ItemPresets[itemId]._items); - presets.push(itemHelper.reparentItemAndChildren(item, presetItems)); + public List GetPresetItemsByTpl(Item item) + { + var presets = new List(); + foreach (var itemId in databaseService.GetGlobals().ItemPresets.Keys) { + if (databaseService.GetGlobals().ItemPresets[itemId].Items[0].Template == item.Template) { + var presetItems = cloner.Clone(databaseService.GetGlobals().ItemPresets[itemId].Items); + presets.AddRange(itemHelper.ReparentItemAndChildren(item, presetItems)); } } - return presets; } }