Ejemplo n.º 1
0
        public SocialGroupCreationResultEnum SetGuildEmblem(Character character, NetworkGuildEmblem emblem)
        {
            var potion = character.Inventory.TryGetItem(ItemManager.Instance.TryGetTemplate(ItemIdEnum.POTION_DE_CHANGEMENT_DE_BLASON_DE_GUILDE_13270));

            if (potion == null)
            {
                return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_REQUIREMENT_UNMET);
            }

            if (GuildManager.Instance.DoesEmblemExist(emblem))
            {
                return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_EMBLEM_ALREADY_EXISTS);
            }

            character.Inventory.RemoveItem(potion, 1);

            Emblem.ChangeEmblem(emblem);

            foreach (var taxCollector in TaxCollectors)
            {
                taxCollector.RefreshLook();
                taxCollector.Map.Refresh(taxCollector);
            }

            foreach (var member in Members.Where(x => x.IsConnected))
            {
                member.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_MESSAGE, 382);
                GuildHandler.SendGuildMembershipMessage(member.Character.Client, member.Character.GuildMember);

                member.Character.RefreshActor();
            }

            return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_OK);
        }
Ejemplo n.º 2
0
        public GuildCreationResultEnum CreateGuild(Character character, string name, Stump.DofusProtocol.Types.GuildEmblem emblem)
        {
            GuildCreationResultEnum result;

            if (this.DoesNameExist(name))
            {
                result = GuildCreationResultEnum.GUILD_CREATE_ERROR_NAME_ALREADY_EXISTS;
            }
            else
            {
                if (this.DoesEmblemExist(emblem))
                {
                    result = GuildCreationResultEnum.GUILD_CREATE_ERROR_EMBLEM_ALREADY_EXISTS;
                }
                else
                {
                    BasePlayerItem basePlayerItem = character.Inventory.TryGetItem(Singleton <ItemManager> .Instance.TryGetTemplate(GuildManager.GUILDALOGEMME_ID));
                    if (basePlayerItem == null)
                    {
                        result = GuildCreationResultEnum.GUILD_CREATE_ERROR_REQUIREMENT_UNMET;
                    }
                    else
                    {
                        character.Inventory.RemoveItem(basePlayerItem, 1u, true);
                        character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_MESSAGE, 22, new object[]
                        {
                            1,
                            basePlayerItem.Template.Id
                        });
                        Guild guild = this.CreateGuild(name);
                        if (guild == null)
                        {
                            result = GuildCreationResultEnum.GUILD_CREATE_ERROR_CANCEL;
                        }
                        else
                        {
                            guild.Emblem.ChangeEmblem(emblem);
                            GuildMember guildMember;
                            if (!guild.TryAddMember(character, out guildMember))
                            {
                                this.DeleteGuild(guild);
                                result = GuildCreationResultEnum.GUILD_CREATE_ERROR_CANCEL;
                            }
                            else
                            {
                                character.GuildMember = guildMember;
                                character.RefreshActor();
                                result = GuildCreationResultEnum.GUILD_CREATE_OK;
                            }
                        }
                    }
                }
            }
            return(result);
        }
Ejemplo n.º 3
0
 public bool DoesEmblemExist(NetworkGuildEmblem emblem) => m_guilds.Any(x => x.Value.Emblem.DoesEmblemMatch(emblem));
Ejemplo n.º 4
0
        public SocialGroupCreationResultEnum CreateGuild(Character character, string name, NetworkGuildEmblem emblem)
        {
            var guildalogemme = character.Inventory.TryGetItem(ItemManager.Instance.TryGetTemplate(ItemIdEnum.GUILDALOGEMME_1575));

            if (guildalogemme == null && !character.IsGameMaster())
            {
                return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_REQUIREMENT_UNMET);
            }

            if (!Regex.IsMatch(name, "^\\b[A-Z][A-Za-z\\s-']{4,30}\\b$", RegexOptions.Compiled) || Regex.IsMatch(name, "^\\s\\s$"))
            {
                return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_NAME_INVALID);
            }

            if (emblem.symbolShape >= 324)
            {
                return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_EMBLEM_INVALID);
            }

            if (DoesNameExist(name))
            {
                return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_NAME_ALREADY_EXISTS);
            }

            if (DoesEmblemExist(emblem))
            {
                return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_EMBLEM_ALREADY_EXISTS);
            }

            if (!character.IsGameMaster())
            {
                character.Inventory.RemoveItem(guildalogemme, 1);
            }

            var guild = CreateGuild(name);

            if (guild == null)
            {
                return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_CANCEL);
            }

            guild.Emblem.ChangeEmblem(emblem);

            GuildMember member;

            if (!guild.TryAddMember(character, out member))
            {
                DeleteGuild(guild);
                return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_CANCEL);
            }

            character.GuildMember = member;
            character.RefreshActor();

            return(SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_OK);
        }
Ejemplo n.º 5
0
        public SocialGroupCreationResultEnum CreateAlliance(Character character, string allianceName, string allianceTag, Stump.DofusProtocol.Types.GuildEmblem emblem)
        {
            SocialGroupCreationResultEnum result;

            if (this.DoesNameExist(allianceName))
            {
                result = SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_NAME_ALREADY_EXISTS;
            }
            else
            {
                if (this.DoesTagExist(allianceTag))
                {
                    result = SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_TAG_ALREADY_EXISTS;
                }
                else
                {
                    if (this.DoesEmblemExist(emblem))
                    {
                        result = SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_EMBLEM_ALREADY_EXISTS;
                    }
                    else
                    {
                        var basePlayerItem = character.Inventory.TryGetItem(Singleton <ItemManager> .Instance.TryGetTemplate(AllianceManager.ALLIOGEMME_ID));
                        if (basePlayerItem == null)
                        {
                            result = SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_REQUIREMENT_UNMET;
                        }
                        else
                        {
                            character.Inventory.RemoveItem(basePlayerItem, 1, true);
                            character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_MESSAGE, 22, new object[] { 1, basePlayerItem.Template.Id });

                            var alliance = this.CreateAlliance(allianceName, allianceTag);
                            if (alliance == null)
                            {
                                result = SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_CANCEL;
                            }
                            else
                            {
                                alliance.Emblem.ChangeEmblem(emblem);
                                if (!alliance.TryAddGuild(character.Guild))
                                {
                                    this.DeleteAlliance(alliance);
                                    result = SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_CANCEL;
                                }
                                else
                                {
                                    character.RefreshActor();
                                    result = SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_OK;
                                }
                            }
                        }
                    }
                }
            }

            return(result);
        }
Ejemplo n.º 6
0
 public bool DoesEmblemExist(Stump.DofusProtocol.Types.GuildEmblem emblem)
 {
     return(this.m_alliances.Any(entry => entry.Value.Emblem.DoesEmblemMatch(emblem)));
 }
Ejemplo n.º 7
0
 public bool DoesEmblemExist(Stump.DofusProtocol.Types.GuildEmblem emblem)
 {
     return(this.m_guilds.Any((System.Collections.Generic.KeyValuePair <int, Guild> x) => x.Value.Emblem.DoesEmblemMatch(emblem)));
 }