public static void Serialize(Stream stream, MemberAuthenticationResultView instance) { int mask = 0; using (var bytes = new MemoryStream()) { if (instance.AuthToken != null) { StringProxy.Serialize(bytes, instance.AuthToken); } else { mask |= 1; } BooleanProxy.Serialize(bytes, instance.IsAccountComplete); if (instance.LuckyDraw != null) { LuckyDrawUnityViewProxy.Serialize(bytes, instance.LuckyDraw); } else { mask |= 2; } EnumProxy <MemberAuthenticationResult> .Serialize(bytes, instance.MemberAuthenticationResult); if (instance.MemberView != null) { MemberViewProxy.Serialize(bytes, instance.MemberView); } else { mask |= 4; } if (instance.PlayerStatisticsView != null) { PlayerStatisticsViewProxy.Serialize(bytes, instance.PlayerStatisticsView); } else { mask |= 8; } DateTimeProxy.Serialize(bytes, instance.ServerTime); Int32Proxy.Serialize(stream, ~mask); bytes.WriteTo(stream); } }
public static UberStrikeItemGearView Deserialize(Stream bytes) { var mask = Int32Proxy.Deserialize(bytes); var view = new UberStrikeItemGearView(); view.ArmorPoints = Int32Proxy.Deserialize(bytes); view.ArmorWeight = Int32Proxy.Deserialize(bytes); if ((mask & 1) != 0) { view.CustomProperties = DictionaryProxy <string, string> .Deserialize(bytes, StringProxy.Deserialize, StringProxy.Deserialize); } if ((mask & 2) != 0) { view.Description = StringProxy.Deserialize(bytes); } view.ID = Int32Proxy.Deserialize(bytes); view.IsConsumable = BooleanProxy.Deserialize(bytes); view.ItemClass = EnumProxy <UberStrikeItemClass> .Deserialize(bytes); if ((mask & 4) != 0) { view.ItemProperties = DictionaryProxy <ItemPropertyType, int> .Deserialize(bytes, EnumProxy <ItemPropertyType> .Deserialize, Int32Proxy.Deserialize); } view.LevelLock = Int32Proxy.Deserialize(bytes); view.MaxDurationDays = Int32Proxy.Deserialize(bytes); if ((mask & 8) != 0) { view.Name = StringProxy.Deserialize(bytes); } if ((mask & 16) != 0) { view.PrefabName = StringProxy.Deserialize(bytes); } if ((mask & 32) != 0) { view.Prices = ListProxy <ItemPriceView> .Deserialize(bytes, ItemPriceViewProxy.Deserialize); } view.ShopHighlightType = EnumProxy <ItemShopHighlightType> .Deserialize(bytes); return(view); }
// Token: 0x060011F0 RID: 4592 RVA: 0x0001DB8C File Offset: 0x0001BD8C public static Coroutine IsDuplicateMemberName(string username, Action <bool> callback, Action <Exception> handler) { Coroutine result; using (MemoryStream memoryStream = new MemoryStream()) { StringProxy.Serialize(memoryStream, username); result = MonoInstance.Mono.StartCoroutine(SoapClient.MakeRequest("IUserWebServiceContract", "UserWebService", "IsDuplicateMemberName", memoryStream.ToArray(), delegate(byte[] data) { if (callback != null) { callback(BooleanProxy.Deserialize(new MemoryStream(data))); } }, handler)); } return(result); }
// Token: 0x060011C3 RID: 4547 RVA: 0x0001D5C0 File Offset: 0x0001B7C0 public static Coroutine VerifyReceipt(string hashedReceipt, Action <bool> callback, Action <Exception> handler) { Coroutine result; using (MemoryStream memoryStream = new MemoryStream()) { StringProxy.Serialize(memoryStream, hashedReceipt); result = MonoInstance.Mono.StartCoroutine(SoapClient.MakeRequest("IShopWebServiceContract", "ShopWebService", "VerifyReceipt", memoryStream.ToArray(), delegate(byte[] data) { if (callback != null) { callback(BooleanProxy.Deserialize(new MemoryStream(data))); } }, handler)); } return(result); }
public static void Serialize(Stream stream, AuthenticateApplicationView instance) { int mask = 0; using (var bytes = new MemoryStream()) { if (instance.CommServer != null) { PhotonViewProxy.Serialize(bytes, instance.CommServer); } else { mask |= 1; } if (instance.EncryptionInitVector != null) { StringProxy.Serialize(bytes, instance.EncryptionInitVector); } else { mask |= 2; } if (instance.EncryptionPassPhrase != null) { StringProxy.Serialize(bytes, instance.EncryptionPassPhrase); } else { mask |= 4; } if (instance.GameServers != null) { ListProxy <PhotonView> .Serialize(bytes, instance.GameServers, PhotonViewProxy.Serialize); } else { mask |= 8; } BooleanProxy.Serialize(bytes, instance.IsEnabled); BooleanProxy.Serialize(bytes, instance.WarnPlayer); Int32Proxy.Serialize(stream, ~mask); bytes.WriteTo(stream); } }
// Token: 0x060011AF RID: 4527 RVA: 0x0001D12C File Offset: 0x0001B32C public static Coroutine GetContactsByGroups(string authToken, bool populateFacebookIds, Action <List <ContactGroupView> > callback, Action <Exception> handler) { Coroutine result; using (MemoryStream memoryStream = new MemoryStream()) { StringProxy.Serialize(memoryStream, authToken); BooleanProxy.Serialize(memoryStream, populateFacebookIds); result = MonoInstance.Mono.StartCoroutine(SoapClient.MakeRequest("IRelationshipWebServiceContract", "RelationshipWebService", "GetContactsByGroups", memoryStream.ToArray(), delegate(byte[] data) { if (callback != null) { callback(ListProxy <ContactGroupView> .Deserialize(new MemoryStream(data), new ListProxy <ContactGroupView> .Deserializer <ContactGroupView>(ContactGroupViewProxy.Deserialize))); } }, handler)); } return(result); }
// Token: 0x060012D6 RID: 4822 RVA: 0x00020AE8 File Offset: 0x0001ECE8 public void SendIsInSniperMode(bool on) { using (MemoryStream memoryStream = new MemoryStream()) { BooleanProxy.Serialize(memoryStream, on); Dictionary <byte, object> customOpParameters = new Dictionary <byte, object> { { this.__id, memoryStream.ToArray() } }; if (this.sendOperation != null) { this.sendOperation(19, customOpParameters, true, 0, false); } } }
// Token: 0x0600118B RID: 4491 RVA: 0x0001C9A0 File Offset: 0x0001ABA0 public static Coroutine CheckFacebookSession(string cmuneAuthToken, string facebookIDString, Action <bool> callback, Action <Exception> handler) { Coroutine result; using (MemoryStream memoryStream = new MemoryStream()) { StringProxy.Serialize(memoryStream, cmuneAuthToken); StringProxy.Serialize(memoryStream, facebookIDString); result = MonoInstance.Mono.StartCoroutine(SoapClient.MakeRequest("IFacebookWebServiceContract", "FacebookWebService", "CheckFacebookSession", memoryStream.ToArray(), delegate(byte[] data) { if (callback != null) { callback(BooleanProxy.Deserialize(new MemoryStream(data))); } }, handler)); } return(result); }
// Token: 0x060011C4 RID: 4548 RVA: 0x0001D644 File Offset: 0x0001B844 public static Coroutine UseConsumableItem(string authToken, int itemId, Action <bool> callback, Action <Exception> handler) { Coroutine result; using (MemoryStream memoryStream = new MemoryStream()) { StringProxy.Serialize(memoryStream, authToken); Int32Proxy.Serialize(memoryStream, itemId); result = MonoInstance.Mono.StartCoroutine(SoapClient.MakeRequest("IShopWebServiceContract", "ShopWebService", "UseConsumableItem", memoryStream.ToArray(), delegate(byte[] data) { if (callback != null) { callback(BooleanProxy.Deserialize(new MemoryStream(data))); } }, handler)); } return(result); }
// Token: 0x06001195 RID: 4501 RVA: 0x0001CAB8 File Offset: 0x0001ACB8 public static Coroutine BanPermanently(string authToken, int targetCmid, Action <bool> callback, Action <Exception> handler) { Coroutine result; using (MemoryStream memoryStream = new MemoryStream()) { StringProxy.Serialize(memoryStream, authToken); Int32Proxy.Serialize(memoryStream, targetCmid); result = MonoInstance.Mono.StartCoroutine(SoapClient.MakeRequest("IModerationWebServiceContract", "ModerationWebService", "BanPermanently", memoryStream.ToArray(), delegate(byte[] data) { if (callback != null) { callback(BooleanProxy.Deserialize(new MemoryStream(data))); } }, handler)); } return(result); }
public static void Serialize(Stream stream, PublicProfileView instance) { int mask = 0; using (var bytes = new MemoryStream()) { EnumProxy <MemberAccessLevel> .Serialize(bytes, instance.AccessLevel); Int32Proxy.Serialize(bytes, instance.Cmid); EnumProxy <EmailAddressStatus> .Serialize(bytes, instance.EmailAddressStatus); if (instance.FacebookId != null) { StringProxy.Serialize(bytes, instance.FacebookId); } else { mask |= 1; } if (instance.GroupTag != null) { StringProxy.Serialize(bytes, instance.GroupTag); } else { mask |= 2; } BooleanProxy.Serialize(bytes, instance.IsChatDisabled); DateTimeProxy.Serialize(bytes, instance.LastLoginDate); if (instance.Name != null) { StringProxy.Serialize(bytes, instance.Name); } else { mask |= 4; } Int32Proxy.Serialize(stream, ~mask); bytes.WriteTo(stream); } }
// Token: 0x060012DD RID: 4829 RVA: 0x00020E74 File Offset: 0x0001F074 public void SendRemoveProjectile(int projectileId, bool explode) { using (MemoryStream memoryStream = new MemoryStream()) { Int32Proxy.Serialize(memoryStream, projectileId); BooleanProxy.Serialize(memoryStream, explode); Dictionary <byte, object> customOpParameters = new Dictionary <byte, object> { { this.__id, memoryStream.ToArray() } }; if (this.sendOperation != null) { this.sendOperation(26, customOpParameters, true, 0, false); } } }
// Token: 0x0600126A RID: 4714 RVA: 0x0001EC78 File Offset: 0x0001CE78 public void SendModerationMutePlayer(int durationInMinutes, int mutedCmid, bool disableChat) { using (MemoryStream memoryStream = new MemoryStream()) { Int32Proxy.Serialize(memoryStream, durationInMinutes); Int32Proxy.Serialize(memoryStream, mutedCmid); BooleanProxy.Serialize(memoryStream, disableChat); Dictionary <byte, object> customOpParameters = new Dictionary <byte, object> { { this.__id, memoryStream.ToArray() } }; if (this.sendOperation != null) { this.sendOperation(13, customOpParameters, true, 0, false); } } }
// Token: 0x060011C0 RID: 4544 RVA: 0x0001D414 File Offset: 0x0001B614 public static Coroutine BuyBundle(string authToken, int bundleId, ChannelType channel, string hashedReceipt, Action <bool> callback, Action <Exception> handler) { Coroutine result; using (MemoryStream memoryStream = new MemoryStream()) { StringProxy.Serialize(memoryStream, authToken); Int32Proxy.Serialize(memoryStream, bundleId); EnumProxy <ChannelType> .Serialize(memoryStream, channel); StringProxy.Serialize(memoryStream, hashedReceipt); result = MonoInstance.Mono.StartCoroutine(SoapClient.MakeRequest("IShopWebServiceContract", "ShopWebService", "BuyBundle", memoryStream.ToArray(), delegate(byte[] data) { if (callback != null) { callback(BooleanProxy.Deserialize(new MemoryStream(data))); } }, handler)); } return(result); }
// Token: 0x060012DB RID: 4827 RVA: 0x00020D4C File Offset: 0x0001EF4C public void SendEmitProjectile(Vector3 origin, Vector3 direction, byte slot, int projectileID, bool explode) { using (MemoryStream memoryStream = new MemoryStream()) { Vector3Proxy.Serialize(memoryStream, origin); Vector3Proxy.Serialize(memoryStream, direction); ByteProxy.Serialize(memoryStream, slot); Int32Proxy.Serialize(memoryStream, projectileID); BooleanProxy.Serialize(memoryStream, explode); Dictionary <byte, object> customOpParameters = new Dictionary <byte, object> { { this.__id, memoryStream.ToArray() } }; if (this.sendOperation != null) { this.sendOperation(24, customOpParameters, true, 0, false); } } }
// Token: 0x060012DF RID: 4831 RVA: 0x00020F6C File Offset: 0x0001F16C public void SendActivateQuickItem(QuickItemLogic logic, int robotLifeTime, int scrapsLifeTime, bool isInstant) { using (MemoryStream memoryStream = new MemoryStream()) { EnumProxy <QuickItemLogic> .Serialize(memoryStream, logic); Int32Proxy.Serialize(memoryStream, robotLifeTime); Int32Proxy.Serialize(memoryStream, scrapsLifeTime); BooleanProxy.Serialize(memoryStream, isInstant); Dictionary <byte, object> customOpParameters = new Dictionary <byte, object> { { this.__id, memoryStream.ToArray() } }; if (this.sendOperation != null) { this.sendOperation(28, customOpParameters, true, 0, false); } } }
byte[] IUserWebServiceContract.IsDuplicateMemberName(byte[] data) { try { using (var bytes = new MemoryStream(data)) { var username = StringProxy.Deserialize(bytes); var result = OnIsDuplicateMemberName(username); using (var outBytes = new MemoryStream()) { BooleanProxy.Serialize(outBytes, result); return(outBytes.ToArray()); } } } catch (Exception ex) { Log.Error("Unable to handle IsDuplicateMemberName request:"); Log.Error(ex); return(null); } }
public static GameRoomDataView Deserialize(Stream bytes) { int mask = Int32Proxy.Deserialize(bytes); var view = new GameRoomDataView(); view.ConnectedPlayers = Int32Proxy.Deserialize(bytes); view.GameFlags = Int32Proxy.Deserialize(bytes); view.GameMode = EnumProxy <GameModeType> .Deserialize(bytes); if ((mask & 1) != 0) { view.Guid = StringProxy.Deserialize(bytes); } view.IsPasswordProtected = BooleanProxy.Deserialize(bytes); view.IsPermanentGame = BooleanProxy.Deserialize(bytes); view.KillLimit = Int32Proxy.Deserialize(bytes); view.LevelMax = ByteProxy.Deserialize(bytes); view.LevelMin = ByteProxy.Deserialize(bytes); view.MapID = Int32Proxy.Deserialize(bytes); if ((mask & 2) != 0) { view.Name = StringProxy.Deserialize(bytes); } view.Number = Int32Proxy.Deserialize(bytes); view.PlayerLimit = Int32Proxy.Deserialize(bytes); if ((mask & 4) != 0) { view.Server = ConnectionAddressViewProxy.Deserialize(bytes); } view.TimeLimit = Int32Proxy.Deserialize(bytes); return(view); }
public static void Serialize(Stream stream, LuckyDrawSetUnityView instance) { int mask = 0; using (var bytes = new MemoryStream()) { Int32Proxy.Serialize(bytes, instance.CreditsAttributed); BooleanProxy.Serialize(bytes, instance.ExposeItemsToPlayers); Int32Proxy.Serialize(bytes, instance.Id); if (instance.ImageUrl != null) { StringProxy.Serialize(bytes, instance.ImageUrl); } else { mask |= 1; } Int32Proxy.Serialize(bytes, instance.LuckyDrawId); if (instance.LuckyDrawSetItems != null) { ListProxy <BundleItemView> .Serialize(bytes, instance.LuckyDrawSetItems, BundleItemViewProxy.Serialize); } else { mask |= 2; } Int32Proxy.Serialize(bytes, instance.PointsAttributed); Int32Proxy.Serialize(bytes, instance.SetWeight); Int32Proxy.Serialize(stream, ~mask); bytes.WriteTo(stream); } }
public static void Serialize(Stream stream, UberStrikeItemQuickView instance) { int mask = 0; using (var bytes = new MemoryStream()) { EnumProxy <QuickItemLogic> .Serialize(bytes, instance.BehaviourType); Int32Proxy.Serialize(bytes, instance.CoolDownTime); if (instance.CustomProperties != null) { DictionaryProxy <string, string> .Serialize(bytes, instance.CustomProperties, StringProxy.Serialize, StringProxy.Serialize); } else { mask |= 1; } if (instance.Description != null) { StringProxy.Serialize(bytes, instance.Description); } else { mask |= 2; } Int32Proxy.Serialize(bytes, instance.ID); BooleanProxy.Serialize(bytes, instance.IsConsumable); EnumProxy <UberStrikeItemClass> .Serialize(bytes, instance.ItemClass); if (instance.ItemProperties != null) { DictionaryProxy <ItemPropertyType, int> .Serialize(bytes, instance.ItemProperties, EnumProxy <ItemPropertyType> .Serialize, Int32Proxy.Serialize); } else { mask |= 4; } Int32Proxy.Serialize(bytes, instance.LevelLock); Int32Proxy.Serialize(bytes, instance.MaxDurationDays); Int32Proxy.Serialize(bytes, instance.MaxOwnableAmount); if (instance.Name != null) { StringProxy.Serialize(bytes, instance.Name); } else { mask |= 8; } if (instance.PrefabName != null) { StringProxy.Serialize(bytes, instance.PrefabName); } else { mask |= 16; } if (instance.Prices != null) { ListProxy <ItemPriceView> .Serialize(bytes, instance.Prices, ItemPriceViewProxy.Serialize); } else { mask |= 32; } EnumProxy <ItemShopHighlightType> .Serialize(bytes, instance.ShopHighlightType); Int32Proxy.Serialize(bytes, instance.UsesPerGame); Int32Proxy.Serialize(bytes, instance.UsesPerLife); Int32Proxy.Serialize(bytes, instance.UsesPerRound); Int32Proxy.Serialize(bytes, instance.WarmUpTime); Int32Proxy.Serialize(stream, ~mask); bytes.WriteTo(stream); } }
public static void Serialize(Stream stream, UberStrikeItemFunctionalView instance) { int mask = 0; using (var bytes = new MemoryStream()) { if (instance.CustomProperties != null) { DictionaryProxy <string, string> .Serialize(bytes, instance.CustomProperties, new DictionaryProxy <string, string> .Serializer <string>(StringProxy.Serialize), new DictionaryProxy <string, string> .Serializer <string>(StringProxy.Serialize)); } else { mask |= 1; } if (instance.Description != null) { StringProxy.Serialize(bytes, instance.Description); } else { mask |= 2; } Int32Proxy.Serialize(bytes, instance.ID); BooleanProxy.Serialize(bytes, instance.IsConsumable); EnumProxy <UberStrikeItemClass> .Serialize(bytes, instance.ItemClass); if (instance.ItemProperties != null) { DictionaryProxy <ItemPropertyType, int> .Serialize(bytes, instance.ItemProperties, EnumProxy <ItemPropertyType> .Serialize, Int32Proxy.Serialize); } else { mask |= 4; } Int32Proxy.Serialize(bytes, instance.LevelLock); Int32Proxy.Serialize(bytes, instance.MaxDurationDays); if (instance.Name != null) { StringProxy.Serialize(bytes, instance.Name); } else { mask |= 8; } if (instance.PrefabName != null) { StringProxy.Serialize(bytes, instance.PrefabName); } else { mask |= 16; } if (instance.Prices != null) { ListProxy <ItemPriceView> .Serialize(bytes, instance.Prices, ItemPriceViewProxy.Serialize); } else { mask |= 32; } EnumProxy <ItemShopHighlightType> .Serialize(bytes, instance.ShopHighlightType); Int32Proxy.Serialize(stream, ~mask); bytes.WriteTo(stream); } }
public static UberStrikeItemWeaponView Deserialize(Stream bytes) { int mask = Int32Proxy.Deserialize(bytes); var view = new UberStrikeItemWeaponView(); view.AccuracySpread = Int32Proxy.Deserialize(bytes); view.CombatRange = Int32Proxy.Deserialize(bytes); view.CriticalStrikeBonus = Int32Proxy.Deserialize(bytes); if ((mask & 1) != 0) { view.CustomProperties = DictionaryProxy <string, string> .Deserialize(bytes, StringProxy.Deserialize, StringProxy.Deserialize); } view.DamageKnockback = Int32Proxy.Deserialize(bytes); view.DamagePerProjectile = Int32Proxy.Deserialize(bytes); view.DefaultZoomMultiplier = Int32Proxy.Deserialize(bytes); if ((mask & 2) != 0) { view.Description = StringProxy.Deserialize(bytes); } view.HasAutomaticFire = BooleanProxy.Deserialize(bytes); view.ID = Int32Proxy.Deserialize(bytes); view.IsConsumable = BooleanProxy.Deserialize(bytes); view.ItemClass = EnumProxy <UberStrikeItemClass> .Deserialize(bytes); if ((mask & 4) != 0) { view.ItemProperties = DictionaryProxy <ItemPropertyType, int> .Deserialize(bytes, EnumProxy <ItemPropertyType> .Deserialize, Int32Proxy.Deserialize); } view.LevelLock = Int32Proxy.Deserialize(bytes); view.MaxAmmo = Int32Proxy.Deserialize(bytes); view.MaxDurationDays = Int32Proxy.Deserialize(bytes); view.MaxZoomMultiplier = Int32Proxy.Deserialize(bytes); view.MinZoomMultiplier = Int32Proxy.Deserialize(bytes); view.MissileBounciness = Int32Proxy.Deserialize(bytes); view.MissileForceImpulse = Int32Proxy.Deserialize(bytes); view.MissileTimeToDetonate = Int32Proxy.Deserialize(bytes); if ((mask & 8) != 0) { view.Name = StringProxy.Deserialize(bytes); } if ((mask & 16) != 0) { view.PrefabName = StringProxy.Deserialize(bytes); } if ((mask & 32) != 0) { view.Prices = ListProxy <ItemPriceView> .Deserialize(bytes, ItemPriceViewProxy.Deserialize); } view.ProjectileSpeed = Int32Proxy.Deserialize(bytes); view.ProjectilesPerShot = Int32Proxy.Deserialize(bytes); view.RateOfFire = Int32Proxy.Deserialize(bytes); view.RecoilKickback = Int32Proxy.Deserialize(bytes); view.RecoilMovement = Int32Proxy.Deserialize(bytes); view.SecondaryActionReticle = Int32Proxy.Deserialize(bytes); view.ShopHighlightType = EnumProxy <ItemShopHighlightType> .Deserialize(bytes); view.SplashRadius = Int32Proxy.Deserialize(bytes); view.StartAmmo = Int32Proxy.Deserialize(bytes); view.Tier = Int32Proxy.Deserialize(bytes); view.WeaponSecondaryAction = Int32Proxy.Deserialize(bytes); return(view); }
public static void Serialize(Stream stream, UberStrikeItemWeaponView instance) { int mask = 0; using (var bytes = new MemoryStream()) { Int32Proxy.Serialize(bytes, instance.AccuracySpread); Int32Proxy.Serialize(bytes, instance.CombatRange); Int32Proxy.Serialize(bytes, instance.CriticalStrikeBonus); if (instance.CustomProperties != null) { DictionaryProxy <string, string> .Serialize(bytes, instance.CustomProperties, new DictionaryProxy <string, string> .Serializer <string>(StringProxy.Serialize), new DictionaryProxy <string, string> .Serializer <string>(StringProxy.Serialize)); } else { mask |= 1; } Int32Proxy.Serialize(bytes, instance.DamageKnockback); Int32Proxy.Serialize(bytes, instance.DamagePerProjectile); Int32Proxy.Serialize(bytes, instance.DefaultZoomMultiplier); if (instance.Description != null) { StringProxy.Serialize(bytes, instance.Description); } else { mask |= 2; } BooleanProxy.Serialize(bytes, instance.HasAutomaticFire); Int32Proxy.Serialize(bytes, instance.ID); BooleanProxy.Serialize(bytes, instance.IsConsumable); EnumProxy <UberStrikeItemClass> .Serialize(bytes, instance.ItemClass); if (instance.ItemProperties != null) { DictionaryProxy <ItemPropertyType, int> .Serialize(bytes, instance.ItemProperties, EnumProxy <ItemPropertyType> .Serialize, Int32Proxy.Serialize); } else { mask |= 4; } Int32Proxy.Serialize(bytes, instance.LevelLock); Int32Proxy.Serialize(bytes, instance.MaxAmmo); Int32Proxy.Serialize(bytes, instance.MaxDurationDays); Int32Proxy.Serialize(bytes, instance.MaxZoomMultiplier); Int32Proxy.Serialize(bytes, instance.MinZoomMultiplier); Int32Proxy.Serialize(bytes, instance.MissileBounciness); Int32Proxy.Serialize(bytes, instance.MissileForceImpulse); Int32Proxy.Serialize(bytes, instance.MissileTimeToDetonate); if (instance.Name != null) { StringProxy.Serialize(bytes, instance.Name); } else { mask |= 8; } if (instance.PrefabName != null) { StringProxy.Serialize(bytes, instance.PrefabName); } else { mask |= 16; } if (instance.Prices != null) { ListProxy <ItemPriceView> .Serialize(bytes, instance.Prices, ItemPriceViewProxy.Serialize); } else { mask |= 32; } Int32Proxy.Serialize(bytes, instance.ProjectileSpeed); Int32Proxy.Serialize(bytes, instance.ProjectilesPerShot); Int32Proxy.Serialize(bytes, instance.RateOfFire); Int32Proxy.Serialize(bytes, instance.RecoilKickback); Int32Proxy.Serialize(bytes, instance.RecoilMovement); Int32Proxy.Serialize(bytes, instance.SecondaryActionReticle); EnumProxy <ItemShopHighlightType> .Serialize(bytes, instance.ShopHighlightType); Int32Proxy.Serialize(bytes, instance.SplashRadius); Int32Proxy.Serialize(bytes, instance.StartAmmo); Int32Proxy.Serialize(bytes, instance.Tier); Int32Proxy.Serialize(bytes, instance.WeaponSecondaryAction); Int32Proxy.Serialize(stream, ~mask); bytes.WriteTo(stream); } }