/// <summary> /// Loads a guild and it's members from the database /// </summary> /// <param name="id"></param> /// <returns></returns> public static Guild LoadGuild(Guid id) { if (!Guilds.TryGetValue(id, out Guild found)) { using (var context = DbInterface.CreatePlayerContext()) { var guild = context.Guilds.Where(g => g.Id == id).Include(g => g.Bank).FirstOrDefault(); if (guild != null) { //Load Members var members = context.Players.Where(p => p.DbGuild.Id == id).ToDictionary(t => t.Id, t => new Tuple <Guid, string, int, int, Guid, Guid>(t.Id, t.Name, t.GuildRank, t.Level, t.ClassId, t.MapId)); foreach (var member in members) { var gmember = new GuildMember(member.Value.Item1, member.Value.Item2, member.Value.Item3, member.Value.Item4, ClassBase.GetName(member.Value.Item5), MapBase.GetName(member.Value.Item6)); guild.Members.AddOrUpdate(member.Key, gmember, (key, oldValue) => gmember); } SlotHelper.ValidateSlots(guild.Bank, guild.BankSlotsCount); guild.Bank = guild.Bank.OrderBy(bankSlot => bankSlot?.Slot).ToList(); Guilds.AddOrUpdate(id, guild, (key, oldValue) => guild); return(guild); } } } else { return(found); } return(null); }
//Methods public void Update() { if (mCharacterWindow.IsHidden) { return; } mCharacterName.Text = Globals.Me.Name; mCharacterLevelAndClass.Text = Strings.Character.levelandclass.ToString( Globals.Me.Level, ClassBase.GetName(Globals.Me.Class) ); //Load Portrait //UNCOMMENT THIS LINE IF YOU'D RATHER HAVE A FACE HERE GameTexture faceTex = Globals.ContentManager.GetTexture(GameContentManager.TextureType.Face, Globals.Me.Face); var entityTex = Globals.ContentManager.GetTexture( GameContentManager.TextureType.Entity, Globals.Me.MySprite ); /* UNCOMMENT THIS BLOCK IF YOU"D RATHER HAVE A FACE HERE if (Globals.Me.Face != "" && Globals.Me.Face != _currentSprite && faceTex != null) * { * _characterPortrait.Texture = faceTex; * _characterPortrait.SetTextureRect(0, 0, faceTex.GetWidth(), faceTex.GetHeight()); * _characterPortrait.SizeToContents(); * Align.Center(_characterPortrait); * _characterPortrait.IsHidden = false; * for (int i = 0; i < Options.EquipmentSlots.Count; i++) * { * _paperdollPanels[i].Hide(); * } * } * else */ if (Globals.Me.MySprite != "" && Globals.Me.MySprite != mCurrentSprite && entityTex != null) { for (var z = 0; z < Options.PaperdollOrder[1].Count; z++) { var paperdoll = ""; var type = GameContentManager.TextureType.Paperdoll; if (Options.EquipmentSlots.IndexOf(Options.PaperdollOrder[1][z]) > -1) { var equipment = Globals.Me.MyEquipment; if (equipment[Options.EquipmentSlots.IndexOf(Options.PaperdollOrder[1][z])] > -1 && equipment[Options.EquipmentSlots.IndexOf(Options.PaperdollOrder[1][z])] < Options.MaxInvItems) { var itemNum = Globals.Me .Inventory[equipment[Options.EquipmentSlots.IndexOf(Options.PaperdollOrder[1][z])]] .ItemId; if (ItemBase.Get(itemNum) != null) { var itemdata = ItemBase.Get(itemNum); if (Globals.Me.Gender == 0) { paperdoll = itemdata.MalePaperdoll; } else { paperdoll = itemdata.FemalePaperdoll; } } } } else if (Options.PaperdollOrder[1][z] == "Player") { PaperdollPanels[z].Show(); PaperdollPanels[z].Texture = entityTex; PaperdollPanels[z].SetTextureRect(0, 0, entityTex.GetWidth() / 4, entityTex.GetHeight() / 4); PaperdollPanels[z].SizeToContents(); Align.Center(PaperdollPanels[z]); } if (paperdoll == "" && Options.PaperdollOrder[1][z] == Options.Equipment.HairSlot) { paperdoll = Globals.Me.CustomSpriteLayers[(int)Enums.CustomSpriteLayers.Hair]; type = GameContentManager.TextureType.Hair; } if (string.IsNullOrWhiteSpace(paperdoll) && !string.IsNullOrWhiteSpace(PaperdollTextures[z]) && Options.PaperdollOrder[1][z] != "Player") { PaperdollPanels[z].Texture = null; PaperdollPanels[z].Hide(); PaperdollTextures[z] = ""; } else if (paperdoll != "" && paperdoll != PaperdollTextures[z]) { var paperdollTex = Globals.ContentManager.GetTexture( type, paperdoll ); PaperdollPanels[z].Texture = paperdollTex; if (paperdollTex != null) { PaperdollPanels[z] .SetTextureRect( 0, 0, PaperdollPanels[z].Texture.GetWidth() / 4, PaperdollPanels[z].Texture.GetHeight() / 4 ); PaperdollPanels[z] .SetSize( PaperdollPanels[z].Texture.GetWidth() / 4, PaperdollPanels[z].Texture.GetHeight() / 4 ); PaperdollPanels[z] .SetPosition( mCharacterContainer.Width / 2 - PaperdollPanels[z].Width / 2, mCharacterContainer.Height / 2 - PaperdollPanels[z].Height / 2 ); } PaperdollPanels[z].Show(); PaperdollTextures[z] = paperdoll; } } } else if (Globals.Me.MySprite != mCurrentSprite && Globals.Me.Face != mCurrentSprite) { mCharacterPortrait.IsHidden = true; for (var i = 0; i < Options.EquipmentSlots.Count; i++) { PaperdollPanels[i].Hide(); } } mAttackLabel.SetText( Strings.Character.stat0.ToString(Strings.Combat.stat0, Globals.Me.Stat[(int)Stats.Attack]) ); mDefenseLabel.SetText( Strings.Character.stat2.ToString(Strings.Combat.stat2, Globals.Me.Stat[(int)Stats.Defense]) ); mSpeedLabel.SetText( Strings.Character.stat4.ToString(Strings.Combat.stat4, Globals.Me.Stat[(int)Stats.Speed]) ); mAbilityPwrLabel.SetText( Strings.Character.stat1.ToString(Strings.Combat.stat1, Globals.Me.Stat[(int)Stats.AbilityPower]) ); mMagicRstLabel.SetText( Strings.Character.stat3.ToString(Strings.Combat.stat3, Globals.Me.Stat[(int)Stats.MagicResist]) ); mPointsLabel.SetText(Strings.Character.points.ToString(Globals.Me.StatPoints)); mAddAbilityPwrBtn.IsHidden = Globals.Me.StatPoints == 0 || Globals.Me.Stat[(int)Stats.AbilityPower] == Options.MaxStatValue; mAddAttackBtn.IsHidden = Globals.Me.StatPoints == 0 || Globals.Me.Stat[(int)Stats.Attack] == Options.MaxStatValue; mAddDefenseBtn.IsHidden = Globals.Me.StatPoints == 0 || Globals.Me.Stat[(int)Stats.Defense] == Options.MaxStatValue; mAddMagicResistBtn.IsHidden = Globals.Me.StatPoints == 0 || Globals.Me.Stat[(int)Stats.MagicResist] == Options.MaxStatValue; mAddSpeedBtn.IsHidden = Globals.Me.StatPoints == 0 || Globals.Me.Stat[(int)Stats.Speed] == Options.MaxStatValue; for (var i = 0; i < Options.EquipmentSlots.Count; i++) { if (Globals.Me.MyEquipment[i] > -1 && Globals.Me.MyEquipment[i] < Options.MaxInvItems) { if (Globals.Me.Inventory[Globals.Me.MyEquipment[i]].ItemId != Guid.Empty) { Items[i] .Update( Globals.Me.Inventory[Globals.Me.MyEquipment[i]].ItemId, Globals.Me.Inventory[Globals.Me.MyEquipment[i]].StatBuffs ); } else { Items[i].Update(Guid.Empty, mEmptyStatBoost); } } else { Items[i].Update(Guid.Empty, mEmptyStatBoost); } } }
private static string GetCommandText(SetClassCommand command, MapInstance map) { return(Strings.EventCommandList.setclass.ToString(ClassBase.GetName(command.ClassId))); }