public JournalSwitchSuitLoadout(JObject evt) : base(evt, JournalTypeEnum.SwitchSuitLoadout)
 {
     SuitID = ulong.MaxValue;
     // Limit search to this class only using DeclaredOnly.
     evt.ToObjectProtected(this.GetType(), true, false, System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.DeclaredOnly, this); // read fields named in this structure matching JSON names
     SuitFriendlyName = ItemData.GetSuit(SuitName, SuitName_Localised)?.Name ?? SuitName_Localised;
     SuitName         = SuitName.ToLower();                                                                                                                                                                                           // normalise
     SuitLoadout.NormaliseModules(Modules);
 }
Beispiel #2
0
        public List <SuitLoadout> GetSuitLoadouts()
        {
            JObject loadouts = json.I("loadouts").Object();

            if (loadouts != null)
            {
                var list = new List <SuitLoadout>();
                foreach (var kvploadouts in loadouts)
                {
                    JObject data = kvploadouts.Value.Object();
                    if (data != null)
                    {
                        SuitLoadout m = new SuitLoadout()
                        {
                            SuitID          = data["suit"].I("suitId").Long(),
                            SuitName        = data["suit"].I("name").Str(),
                            SuitLocName     = data["suit"].I("locName").Str(),
                            LoadoutID       = data["id"].Long(),
                            UserLoadoutName = data["name"].Str()
                        };

                        JObject slots = data["slots"].Object();

                        if (slots != null)
                        {
                            m.slots = new List <SuitSlot>();
                            foreach (var kvp in slots)
                            {
                                var sl = new SuitSlot()
                                {
                                    SlotName       = kvp.Key,
                                    Name           = kvp.Value["name"].Str(),
                                    LocName        = kvp.Value["locName"].Str(),
                                    LocDescription = kvp.Value["locDescription"].Str(),
                                    ID             = kvp.Value["id"].Long(),
                                    WeaponRackID   = kvp.Value["weaponrackId"].Long()
                                };

                                m.slots.Add(sl);
                            }
                        }

                        list.Add(m);
                    }
                }

                return(list);
            }
            return(null);
        }