Skip to content

Commit

Permalink
Merge branch 'dev' into new-launcher
Browse files Browse the repository at this point in the history
  • Loading branch information
seionmoya committed Jan 19, 2025
2 parents 8128759 + 2bd4f14 commit 6d4ee23
Show file tree
Hide file tree
Showing 69 changed files with 1,663 additions and 702 deletions.
34 changes: 25 additions & 9 deletions Fuyu.Backend.BSG/ItemTemplates/CompoundItemItemProperties.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Runtime.Serialization.DataContracts;
using Fuyu.Common.Hashing;
Expand All @@ -8,16 +9,16 @@ namespace Fuyu.Backend.BSG.ItemTemplates;
public class CompoundItemItemProperties : ItemProperties
{
[DataMember(Name = "Grids")]
public Grid[] Grids = [];
public List<Grid> Grids = [];

[DataMember(Name = "Slots")]
public Slot[] Slots = [];
public List<Slot> Slots = [];

[DataMember(Name = "CanPutIntoDuringTheRaid")]
public bool CanPutIntoDuringTheRaid;

[DataMember(Name = "CantRemoveFromSlotsDuringRaid")]
public EEquipmentSlot[] CantRemoveFromSlotsDuringRaid = [];
public List<EEquipmentSlot> CantRemoveFromSlotsDuringRaid = [];

[DataMember(Name = "ForbidMissingVitalParts")]
public bool ForbidMissingVitalParts;
Expand Down Expand Up @@ -83,11 +84,26 @@ public class SlotProperties
[DataContract]
public class SlotPropertiesFilter
{
[DataMember(Name = "Shift")]
public int Shift { get; set; }

[DataMember(Name = "Filter")]
public MongoId[] Filter { get; set; }
public List<MongoId> Filter { get; set; }

[DataMember(Name = "Shift", EmitDefaultValue = false)]
public int? Shift { get; set; }

[DataMember(Name = "Plate", EmitDefaultValue = false)]
public MongoId? Plate { get; set; }

[DataMember(Name = "armorColliders", EmitDefaultValue = false)]
public List<string> ArmorColliders { get; set; }

[DataMember(Name = "armorPlateColliders", EmitDefaultValue = false)]
public List<string> ArmorPlateColliders { get; set; }

[DataMember(Name = "bluntDamageReduceFromSoftArmor", EmitDefaultValue = false)]
public bool? BluntDamageReduceFromSoftArmor { get; set; }

[DataMember(Name = "locked", EmitDefaultValue = false)]
public bool? Locked { get; set; }
}

[DataContract]
Expand Down Expand Up @@ -138,8 +154,8 @@ public class GridProperties
public class GridPropertiesFilter
{
[DataMember(Name = "Filter")]
public MongoId[] Filter { get; set; }
public List<MongoId> Filter { get; set; }

[DataMember(Name = "ExcludedFilter")]
public MongoId[] ExcludedFilter { get; set; }
public List<MongoId> ExcludedFilter { get; set; }
}
9 changes: 9 additions & 0 deletions Fuyu.Backend.BSG/ItemTemplates/EReloadMode.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
namespace Fuyu.Backend.BSG.ItemTemplates;

public enum EReloadMode
{
ExternalMagazine,
InternalMagazine,
OnlyBarrel,
ExternalMagazineWithInternalReloadSupport
}
23 changes: 23 additions & 0 deletions Fuyu.Backend.BSG/ItemTemplates/MagazineCartridge.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
using System.Runtime.Serialization;
using Fuyu.Common.Hashing;

namespace Fuyu.Backend.BSG.ItemTemplates;

[DataContract]
public class MagazineCartridge
{
[DataMember(Name = "_name")]
public string Name { get; set; }

[DataMember(Name = "_id")]
public MongoId Id { get; set; }

[DataMember(Name = "_parent")]
public MongoId Parent { get; set; }

[DataMember(Name = "max_count")]
public int MaxCount { get; set; }

[DataMember(Name = "_props")]
public SlotProperties Properties { get; set; }
}
31 changes: 12 additions & 19 deletions Fuyu.Backend.BSG/ItemTemplates/MagazineItemProperties.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System.Collections.Generic;
using System.Runtime.Serialization;

namespace Fuyu.Backend.BSG.ItemTemplates;
Expand All @@ -6,43 +7,35 @@ namespace Fuyu.Backend.BSG.ItemTemplates;
public class MagazineItemProperties : GearModItemProperties
{
[DataMember(Name = "magAnimationIndex")]
public int magAnimationIndex;
public int MagAnimationIndex { get; set; }

[DataMember(Name = "Cartridges")]
public object[] Cartridges;
public List<MagazineCartridge> Cartridges { get; set; }

[DataMember(Name = "LoadUnloadModifier")]
public float LoadUnloadModifier;
public float LoadUnloadModifier { get; set; }

[DataMember(Name = "CheckTimeModifier")]
public float CheckTimeModifier;
public float CheckTimeModifier { get; set; }

[DataMember(Name = "CheckOverride")]
public int CheckOverride;
public int CheckOverride { get; set; }

[DataMember(Name = "ReloadMagType")]
public EReloadMode ReloadMagType;
public EReloadMode ReloadMagType { get; set; }

[DataMember(Name = "VisibleAmmoRangesString")]
public string VisibleAmmoRangesString;
public string VisibleAmmoRangesString { get; set; }

[DataMember(Name = "MalfunctionChance")]
public float MalfunctionChance;
public float MalfunctionChance { get; set; }

[DataMember(Name = "MagazineWithBelt")]
public bool MagazineWithBelt;
public bool MagazineWithBelt { get; set; }

[DataMember(Name = "BeltMagazineRefreshCount")]
public int BeltMagazineRefreshCount;
public int BeltMagazineRefreshCount { get; set; }

[DataMember(Name = "IsMagazineForStationaryWeapon")]
public bool IsMagazineForStationaryWeapon;
}

public enum EReloadMode
{
ExternalMagazine,
InternalMagazine,
OnlyBarrel,
ExternalMagazineWithInternalReloadSupport
public bool IsMagazineForStationaryWeapon { get; set; }
}
3 changes: 3 additions & 0 deletions Fuyu.Backend.BSG/ItemTemplates/MedsItemProperties.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.Runtime.Serialization;
using Fuyu.Common.Collections;
using Newtonsoft.Json.Linq;

namespace Fuyu.Backend.BSG.ItemTemplates;

Expand All @@ -14,9 +15,11 @@ public class MedsItemProperties : ItemProperties
public KeyValuePair<EBodyPart, float>[] BodyPartTimeMults { get; set; }

[DataMember(Name = "effects_health")]
[UnionMappings(JTokenType.Object, JTokenType.Array)]
public Union<Dictionary<string, HealthEffect>, object[]> HealthEffects { get; set; }

[DataMember(Name = "effects_damage")]
[UnionMappings(JTokenType.Object, JTokenType.Array)]
public Union<Dictionary<string, DamageEffect>, object[]> DamageEffects { get; set; }

[DataMember(Name = "StimulatorBuffs")]
Expand Down
4 changes: 3 additions & 1 deletion Fuyu.Backend.BSG/ItemTemplates/WeaponItemProperties.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using Fuyu.Backend.BSG.DTO.Common;
using Fuyu.Backend.BSG.Models.Common;
using Fuyu.Common.Collections;
using Newtonsoft.Json.Linq;

namespace Fuyu.Backend.BSG.ItemTemplates;

Expand Down Expand Up @@ -165,7 +166,7 @@ public class WeaponItemProperties : CompoundItemItemProperties
public float AimPlane;

[DataMember(Name = "Chambers")]
public object[] Chambers;
public Slot[] Chambers;

[DataMember(Name = "CenterOfImpact")]
public float CenterOfImpact;
Expand Down Expand Up @@ -249,6 +250,7 @@ public class WeaponItemProperties : CompoundItemItemProperties
public float BaseMalfunctionChance;

[DataMember(Name = "AimSensitivity")]
[UnionMappings(JTokenType.Float, JTokenType.Array)]
public Union<float, float[][]> AimSensitivity = 1f;

[DataMember(Name = "DurabilityBurnRatio")]
Expand Down
4 changes: 4 additions & 0 deletions Fuyu.Backend.BSG/Models/ItemEvents/ProfileChange.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public ProfileChange()
{
UnlockedRecipes = [];
Items = new ItemChanges();
TradersData = [];
}

[DataMember(Name = "experience")]
Expand All @@ -21,4 +22,7 @@ public ProfileChange()

[DataMember(Name = "items")]
public ItemChanges Items { get; set; }

[DataMember(Name = "traderRelations")]
public Dictionary<MongoId, TraderData> TradersData { get; set; }
}
22 changes: 22 additions & 0 deletions Fuyu.Backend.BSG/Models/ItemEvents/TraderData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
using System.Runtime.Serialization;

namespace Fuyu.Backend.BSG.Models.ItemEvents;

[DataContract]
public class TraderData
{
[DataMember(Name = "salesSum")]
public long? _salesSum { get; set; }

[DataMember(Name = "standing")]
public double? _standing { get; set; }

[DataMember(Name = "loyalty")]
public float? _loyaltyLevel { get; set; }

[DataMember(Name = "unlocked")]
public bool? _unlocked { get; set; }

[DataMember(Name = "disabled")]
public bool? _disabled { get; set; }
}
21 changes: 21 additions & 0 deletions Fuyu.Backend.BSG/Models/ItemEvents/TradingConfirmBuyItemEvent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using System.Runtime.Serialization;
using Fuyu.Backend.BSG.Models.Trading;
using Fuyu.Common.Hashing;

namespace Fuyu.Backend.BSG.Models.ItemEvents;

[DataContract]
public class TradingConfirmBuyItemEvent : TradingConfirmItemEvent
{
[DataMember(Name = "item_id")]
public MongoId ItemId { get; set; }

[DataMember(Name = "count")]
public int Count { get; set; }

[DataMember(Name = "scheme_id")]
public int SchemeId { get; set; }

[DataMember(Name = "scheme_items")]
public TradingItemScheme[] Items { get; set; }
}
19 changes: 0 additions & 19 deletions Fuyu.Backend.BSG/Models/ItemEvents/TradingConfirmItemEvent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,4 @@ public class TradingConfirmItemEvent : BaseItemEvent

[DataMember(Name = "tid")]
public MongoId TraderId { get; set; }

[DataMember(Name = "items")]
public TradingItemScheme[] Items { get; set; }

[DataMember(Name = "price")]
public int Price { get; set; }
}

[DataContract]
public class TradingItemScheme
{
[DataMember(Name = "id")]
public MongoId Id { get; set; }

[DataMember(Name = "count")]
public int Count { get; set; }

[DataMember(Name = "scheme_id")]
public int SchemeId { get; set; }
}
14 changes: 14 additions & 0 deletions Fuyu.Backend.BSG/Models/ItemEvents/TradingConfirmSellItemEvent.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System.Runtime.Serialization;
using Fuyu.Backend.BSG.Models.Trading;

namespace Fuyu.Backend.BSG.Models.ItemEvents;

[DataContract]
public class TradingConfirmSellItemEvent : TradingConfirmItemEvent
{
[DataMember(Name = "items")]
public TradingItemScheme[] Items { get; set; }

[DataMember(Name = "price")]
public int Price { get; set; }
}
5 changes: 3 additions & 2 deletions Fuyu.Backend.BSG/Models/Items/ItemInfo.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Runtime.Serialization;
using System.Collections.Generic;
using System.Runtime.Serialization;
using Fuyu.Common.Hashing;

namespace Fuyu.Backend.BSG.Models.Items;
Expand All @@ -10,5 +11,5 @@ public class ItemInfo
public MongoId Id { get; set; }

[DataMember(Name = "Items")]
public ItemInstance[] Items { get; set; }
public List<ItemInstance> Items { get; set; }
}
11 changes: 10 additions & 1 deletion Fuyu.Backend.BSG/Models/Items/ItemInstance.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
using System;
using System.Data;
using System.Linq;
using System.Runtime.Serialization;
using Fuyu.Backend.BSG.Services;
using Fuyu.Common.Collections;
using Fuyu.Common.Hashing;
using Newtonsoft.Json.Linq;

namespace Fuyu.Backend.BSG.Models.Items;

Expand All @@ -24,21 +26,28 @@ public ItemInstance()
public MongoId TemplateId { get; set; }

// emits when 'null'
// NOTE: This is a string instead of a MongoId as "hideout" is valid
[DataMember(Name = "parentId", EmitDefaultValue = false)]
public MongoId? ParentId { get; set; }
public string ParentId { get; set; }

// emits when 'null'
[DataMember(Name = "slotId", EmitDefaultValue = false)]
public string SlotId { get; set; }

// emits when 'null'
[DataMember(Name = "location", EmitDefaultValue = false)]
[UnionMappings(JTokenType.Object, JTokenType.Integer)]
public Union<LocationInGrid, int> Location { get; set; }

// emits when 'null'
[DataMember(Name = "upd", EmitDefaultValue = false)]
public ItemUpdatable Updatable { get; set; }

/// <summary>
/// Do not access directly, use <see cref="ItemService.CalculateItemSize(System.Collections.Generic.List{ItemInstance})"/>
/// </summary>
public ValueTuple<int, int>? Size { get; set; }

public T GetOrCreateUpdatable<T>() where T : class
{
if (Updatable == null)
Expand Down
2 changes: 2 additions & 0 deletions Fuyu.Backend.BSG/Models/Profiles/HideoutInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using Fuyu.Backend.BSG.Models.Profiles.Hideout;
using Fuyu.Common.Collections;
using Fuyu.Common.Hashing;
using Newtonsoft.Json.Linq;

namespace Fuyu.Backend.BSG.Models.Profiles;

Expand All @@ -27,5 +28,6 @@ public class HideoutInfo
public Dictionary<EHideoutCustomizationType, MongoId?> GlobalCustomization { get; set; }

[DataMember]
[UnionMappings(JTokenType.Object, JTokenType.Array)]
public Union<Dictionary<string, MongoId>, object[]> MannequinPoses { get; set; }
}
Loading

0 comments on commit 6d4ee23

Please sign in to comment.