public static void WriteObjectReferenceToPacket( MBObjectBase value, CompressionInfo.UnsignedInteger compressionInfo) { MBAPI.IMBNetwork.WriteUintToPacket(value != null ? value.Id.InternalValue : 0U, ref compressionInfo); DebugNetworkEventStatistics.AddDataToStatistic(compressionInfo.GetNumBits()); }
public static MissionWeapon ReadMissileWeaponReferenceFromPacket( MBObjectManager objectManager, ref bool bufferReadValid) { MBObjectBase mbObjectBase = GameNetworkMessage.ReadObjectReferenceFromPacket(objectManager, CompressionBasic.GUIDCompressionInfo, ref bufferReadValid); short num = (short)GameNetworkMessage.ReadIntFromPacket(CompressionMission.WeaponUsageIndexCompressionInfo, ref bufferReadValid); return(new MissionWeapon(mbObjectBase as ItemObject, (ItemModifier)null, (Banner)null, (short)1) { CurrentUsageIndex = (int)num }); }
public static GameObject ToGameObject(this MBObjectBase mbObject) { switch (mbObject) { case CultureObject culture: return(new GameObject { GameObjectType = GameObjectType.Culture, StringId = culture.StringId }); case Kingdom kingdom: return(new GameObject { GameObjectType = GameObjectType.Kingdom, StringId = kingdom.StringId }); case Clan clan: return(new GameObject { GameObjectType = GameObjectType.Clan, StringId = clan.StringId }); case Hero hero: return(new GameObject { GameObjectType = GameObjectType.Hero, StringId = hero.StringId }); case CharacterObject character: return(new GameObject { GameObjectType = GameObjectType.Character, StringId = character.StringId }); default: return(null); } }
public static Clan ToClan(this MBObjectBase mbObject) { switch (mbObject) { case Kingdom kingdom: return(kingdom.RulingClan); case Clan clan: return(clan); case Hero hero when hero.Clan != null: return(hero.Clan); case CharacterObject character when character.HeroObject?.Clan != null: return(character.HeroObject.Clan); default: return(null); } }
public static Kingdom ToKingdom(this MBObjectBase mbObject) { switch (mbObject) { case Kingdom kingdom: return(kingdom); case Clan clan when clan.Kingdom != null: return(clan.Kingdom); case Hero hero when hero.Clan?.Kingdom != null: return(hero.Clan.Kingdom); case CharacterObject character when character.HeroObject?.Clan?.Kingdom != null: return(character.HeroObject.Clan.Kingdom); default: return(null); } }
public static CultureObject ToCulture(this MBObjectBase mbObject) { switch (mbObject) { case Kingdom kingdom: return(kingdom.Culture); case Clan clan: return(clan.Culture); case Hero hero: return(hero.Culture); case CharacterObject character: return(character.Culture); default: return(null); } }
public static Hero ToHero(this MBObjectBase mbObject) { switch (mbObject) { case Kingdom kingdom: return(kingdom.Leader); case Clan clan: return(clan.Leader); case Hero hero: return(hero); case CharacterObject character when character.IsHero: return(character.HeroObject); default: return(null); } }
public static MissionWeapon ReadWeaponReferenceFromPacket( MBObjectManager objectManager, ref bool bufferReadValid) { if (GameNetworkMessage.ReadBoolFromPacket(ref bufferReadValid)) { return(MissionWeapon.Invalid); } MBObjectBase mbObjectBase1 = GameNetworkMessage.ReadObjectReferenceFromPacket(objectManager, CompressionBasic.GUIDCompressionInfo, ref bufferReadValid); int num1 = GameNetworkMessage.ReadIntFromPacket(CompressionGeneric.ItemDataValueCompressionInfo, ref bufferReadValid); int num2 = GameNetworkMessage.ReadIntFromPacket(CompressionMission.WeaponReloadPhaseCompressionInfo, ref bufferReadValid); short num3 = (short)GameNetworkMessage.ReadIntFromPacket(CompressionMission.WeaponUsageIndexCompressionInfo, ref bufferReadValid); int num4 = GameNetworkMessage.ReadBoolFromPacket(ref bufferReadValid) ? 1 : 0; Banner banner = (Banner)null; if (num4 != 0) { string bannerKey = GameNetworkMessage.ReadStringFromPacket(ref bufferReadValid); if (bufferReadValid) { banner = new Banner(bannerKey); } } ItemObject primaryItem1 = mbObjectBase1 as ItemObject; bool flag = GameNetworkMessage.ReadBoolFromPacket(ref bufferReadValid); MissionWeapon missionWeapon; if (bufferReadValid & flag) { MBObjectBase mbObjectBase2 = GameNetworkMessage.ReadObjectReferenceFromPacket(objectManager, CompressionBasic.GUIDCompressionInfo, ref bufferReadValid); int num5 = GameNetworkMessage.ReadIntFromPacket(CompressionGeneric.ItemDataValueCompressionInfo, ref bufferReadValid); ItemObject primaryItem2 = mbObjectBase2 as ItemObject; missionWeapon = new MissionWeapon(primaryItem1, (ItemModifier)null, banner, (short)num1, (short)num2, new MissionWeapon?(new MissionWeapon(primaryItem2, (ItemModifier)null, banner, (short)num5))); } else { missionWeapon = new MissionWeapon(primaryItem1, (ItemModifier)null, banner, (short)num1, (short)num2, new MissionWeapon?()); } missionWeapon.CurrentUsageIndex = (int)num3; return(missionWeapon); }
/* Variables */ /** * <summary> * Check whether a variable <paramref name="name"/> is stored upon <paramref name="object"/>. * </summary> * <returns> * <see langword="true"/> if it exists, else <see langword="false"/>. * </returns> * <example> * <code> * foreach (var skill in SkillObject.All) * if (!skill.HasVariable("CustomModifiers")) * RecalculateCustomModifiers(skill); * </code> * </example> * <param name="object">A game object.</param> * <param name="name">The variable's name.</param> */ internal static bool HasVariable(this MBObjectBase @object, string name) { if (name is null !) { throw new ArgumentNullException(nameof(name)); }