示例#1
0
        public void TokenizeFactionGroup(FactionGroup group, string key)
        {
            switch (group)
            {
            case FactionGroup.Admin: this.tokens[key] = "Admin"; break;

            case FactionGroup.Alien: this.tokens[key] = "Alien"; break;

            case FactionGroup.Faction: this.tokens[key] = "Faction"; break;

            case FactionGroup.NoFaction: this.tokens[key] = "Unaligned"; break;

            case FactionGroup.Player: this.tokens[key] = "Player"; break;

            case FactionGroup.Polaris: this.tokens[key] = "Polaris"; break;

            case FactionGroup.Predator: this.tokens[key] = "Predator"; break;

            case FactionGroup.Prey: this.tokens[key] = "Prey"; break;

            case FactionGroup.Talon: this.tokens[key] = "Talon"; break;

            case FactionGroup.Zirax: this.tokens[key] = "Zirax"; break;

            default: this.tokens[key] = "Unknown"; break;
            }
        }
示例#2
0
        /// <summary>
        /// Default constructor
        /// </summary>
        public ChatChannelGroup(FactionGroup factionGroup)
        {
            FactionGroup = factionGroup;

            ZoneChannels = new List <ChatChannel> [(int)ZoneId.End];
            Channels     = new Dictionary <string, ChatChannel>(StringComparer.InvariantCultureIgnoreCase);
        }
示例#3
0
 /// <summary>Default constructor</summary>
 public ChatChannelGroup(FactionGroup factionGroup)
 {
     this.FactionGroup = factionGroup;
     this.ZoneChannels = new List <ChatChannel> [5023];
     this.Channels     =
         new Dictionary <string, ChatChannel>(
             (IEqualityComparer <string>)StringComparer.InvariantCultureIgnoreCase);
 }
示例#4
0
 public Faction GetFaction(FactionGroup fact)
 {
     if (fact != FactionGroup.Alliance)
     {
         return(this.HordeFaction);
     }
     return(this.AllianceFaction);
 }
示例#5
0
 public static BattlegroundSide GetBattlegroundSide(this FactionGroup faction)
 {
     if (faction == FactionGroup.Horde)
     {
         return(BattlegroundSide.Horde);
     }
     return(BattlegroundSide.Alliance);
 }
示例#6
0
 public IList <ChatChannel> GetChatChannels(FactionGroup group)
 {
     if (group != FactionGroup.Alliance)
     {
         return(HordeChatChannels);
     }
     return(AllianceChatChannels);
 }
示例#7
0
        private static void AssertSameFaction(ParsedSegment whoList, FactionGroup factionGroup)
        {
            RaceId raceId;

            for (int i = 0; i < whoList.SubSegments["Characters"].List.Count; i++)
            {
                raceId = (RaceId)Enum.Parse(typeof(RaceId), whoList.SubSegments["Characters"].List[i]["Race"].Value.ToString(), true);
                Assert.AreEqual(factionGroup, ArchetypeMgr.GetRace(raceId).Faction.Group);
            }
        }
示例#8
0
 /// <summary>
 /// Gets the appropriate <see cref="T:WCell.RealmServer.Chat.ChatChannelGroup" /> for the given <see cref="F:WCell.RealmServer.Chat.ChatChannelGroup.FactionGroup" />.
 /// </summary>
 /// <param name="faction">the faction</param>
 /// <returns>the appropriate channel manager, or null if an invalid faction is given</returns>
 public static ChatChannelGroup GetGroup(FactionGroup faction)
 {
     if (faction == FactionGroup.Alliance)
     {
         return(ChatChannelGroup.Alliance);
     }
     if (faction == FactionGroup.Horde)
     {
         return(ChatChannelGroup.Horde);
     }
     throw new Exception("Invalid FactionGroup: " + (object)faction);
 }
示例#9
0
 public static void LoadFactionsEditorFiles()
 {
     try
     {
         DbcStores.InitFiles();
         ChrClasses.LoadData();
         ChrRaces.LoadData();
         Faction.LoadData();
         FactionGroup.LoadData();
         FactionTemplate.LoadData();
     }
     catch (System.Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
示例#10
0
		public CharacterPool(FactionGroup faction)
		{
			Setup.EnsureBasicSetup();

			if (faction == FactionGroup.Alliance)
			{
				DefaultArchetype = AllianceArchetype;
			}
			else
			{
				DefaultArchetype = HordeArchetype;
			}

			m_chars = new TestCharacter[100];
			m_count = 0;

			DefaultIsNew = true;
			allPools.Add(this);
		}
示例#11
0
        public CharacterPool(FactionGroup faction)
        {
            Setup.EnsureBasicSetup();

            if (faction == FactionGroup.Alliance)
            {
                DefaultArchetype = AllianceArchetype;
            }
            else
            {
                DefaultArchetype = HordeArchetype;
            }

            m_chars = new TestCharacter[100];
            m_count = 0;

            DefaultIsNew = true;
            allPools.Add(this);
        }
示例#12
0
        internal void Init()
        {
            if (Id == FactionId.Alliance || Entry.ParentId == FactionId.Alliance)
            {
                IsAlliance = true;
                Group      = FactionGroup.Alliance;
            }
            else if (Id == FactionId.Horde || Entry.ParentId == FactionId.Horde)
            {
                IsHorde = true;
                Group   = FactionGroup.Horde;
            }

            foreach (Faction faction in FactionMgr.ByTemplateId.Where(
                         faction => faction != null))
            {
                if (IsPlayer && faction.Template.FriendGroup.HasAnyFlag(FactionGroupMask.Player))
                {
                    Friends.Add(faction);
                    faction.Friends.Add(this);
                }

                if (Template.FriendGroup.HasAnyFlag(faction.Template.FactionGroup))
                {
                    Friends.Add(faction);
                }
            }

            foreach (FactionId friendlyFaction in Template.FriendlyFactions)
            {
                Faction faction = FactionMgr.Get(friendlyFaction);
                if (faction != null)
                {
                    Friends.Add(faction);
                    faction.Friends.Add(this);
                }
            }

            Friends.Add(this);
            foreach (Faction faction in FactionMgr.ByTemplateId.Where(
                         faction => faction != null))
            {
                if (IsPlayer && faction.Template.EnemyGroup.HasAnyFlag(FactionGroupMask.Player))
                {
                    Enemies.Add(faction);
                    faction.Enemies.Add(this);
                }

                if (Template.EnemyGroup.HasAnyFlag(faction.Template.FactionGroup))
                {
                    Enemies.Add(faction);
                }
            }

            foreach (FactionId enemyFaction in Template.EnemyFactions)
            {
                Faction faction = FactionMgr.Get(enemyFaction);
                if (faction != null)
                {
                    if (!Template.Flags.HasAnyFlag(FactionTemplateFlags.Flagx400))
                    {
                        Enemies.Add(faction);
                    }
                    faction.Enemies.Add(this);
                }
            }

            foreach (Faction faction in FactionMgr.ByTemplateId.Where(
                         faction => faction != null))
            {
                if (!Friends.Contains(faction) && !Enemies.Contains(faction))
                {
                    Neutrals.Add(faction);
                }
            }

            if (Id == FactionId.Prey)
            {
                Enemies.Clear();
            }
            IsNeutral = Enemies.Count == 0 && Friends.Count == 0;
        }
示例#13
0
		internal void Init()
		{
			if (Id == FactionId.Alliance || Entry.ParentId == FactionId.Alliance)
			{
				IsAlliance = true;
				Group = FactionGroup.Alliance;
			}
			else if (Id == FactionId.Horde || Entry.ParentId == FactionId.Horde)
			{
				IsHorde = true;
				Group = FactionGroup.Horde;
			}

			// friends 
			foreach (var faction in FactionMgr.ByTemplateId.Where(faction => faction != null))
			{
				if (IsPlayer && faction.Template.FriendGroup.HasAnyFlag(FactionGroupMask.Player))
				{
					Friends.Add(faction);
					faction.Friends.Add(this);
				}

				if (!Template.FriendGroup.HasAnyFlag(faction.Template.FactionGroup))
					continue;

				Friends.Add(faction);
			}


			var friends = Template.FriendlyFactions;
			foreach (var factionId in friends)
			{
				var friend = FactionMgr.Get(factionId);
				if (friend == null) continue;
				Friends.Add(friend);
				friend.Friends.Add(this);
			}

			// we are friends with ourselves
			Friends.Add(this);

			// enemies
			foreach (var faction in FactionMgr.ByTemplateId.Where(faction => faction != null))
			{
				if (IsPlayer && faction.Template.EnemyGroup.HasAnyFlag(FactionGroupMask.Player))
				{
					Enemies.Add(faction);
					faction.Enemies.Add(this);
				}

				if (!Template.EnemyGroup.HasAnyFlag(faction.Template.FactionGroup)) continue;

				Enemies.Add(faction);
			}

			var enemies = Template.EnemyFactions;
			for (var j = 0; j < enemies.Length; j++)
			{
				var enemy = FactionMgr.Get(enemies[j]);
				if (enemy == null)
					continue;

				if (!Template.Flags.HasAnyFlag(FactionTemplateFlags.Flagx400))
				{
					Enemies.Add(enemy);
				}

				
				enemy.Enemies.Add(this);
			}

			// neutrals 
			foreach (var faction in FactionMgr.ByTemplateId.Where(faction => faction != null))
			{
				if( !Friends.Contains(faction) && !Enemies.Contains(faction))
					Neutrals.Add(faction);
			}

			if (Id == FactionId.Prey)
			{
				// For some reason, prey has predators as enemy (but they shouldnt ever attack)
				Enemies.Clear();
			}

		    IsNeutral = Enemies.Count == 0 && Friends.Count == 0;
		}
示例#14
0
		/// <summary>
		/// Default constructor
		/// </summary>
		public ChatChannelGroup(FactionGroup factionGroup)
		{
			FactionGroup = factionGroup;

			ZoneChannels = new List<ChatChannel>[(int)ZoneId.End];
			Channels = new Dictionary<string, ChatChannel>(StringComparer.InvariantCultureIgnoreCase);
		}
示例#15
0
文件: Zone.cs 项目: remixod/netServer
		public IList<ChatChannel> GetChatChannels(FactionGroup group)
		{
			return group == FactionGroup.Alliance ? AllianceChatChannels : HordeChatChannels;
		}
示例#16
0
文件: Faction.cs 项目: pallmall/WCell
		internal void Init()
		{
			if (Id == FactionId.Alliance || Entry.ParentId == FactionId.Alliance)
			{
				IsAlliance = true;
				Group = FactionGroup.Alliance;
			}
			else if (Id == FactionId.Horde || Entry.ParentId == FactionId.Horde)
			{
				IsHorde = true;
				Group = FactionGroup.Horde;
			}

			// friends 
			for (var i = 0; i < FactionMgr.ByTemplateId.Length; i++)
			{
				var faction = FactionMgr.ByTemplateId[i];
				if (faction != null)
				{
                    if (Template.FriendGroup.Has(faction.Template.FactionGroup))
                    {
                        Friends.Add(faction);
                        if (IsPlayer && faction.Template.EnemyGroup != 0)
                        {
                            faction.Friends.Add(this);
                        }
                    }
				}
			}

			var friends = Template.FriendlyFactions;
			for (var j = 0; j < friends.Length; j++)
			{
				var friend = FactionMgr.Get(friends[j]);
				if (friend != null)
				{
					Friends.Add(friend);
					friend.Friends.Add(this);
				}
			}

			// we are friends with ourselves
			Friends.Add(this);

			// enemies
			foreach (var faction in FactionMgr.ByTemplateId)
			{
				if (faction != null)
				{
					if (Template.EnemyGroup.Has(faction.Template.FactionGroup))
					{
						Enemies.Add(faction);
						if (IsPlayer && faction.Template.EnemyGroup != 0)
						{
							faction.Enemies.Add(this);
						}
					}
				}
			}

			var enemies = Template.EnemyFactions;
			for (var j = 0; j < friends.Length; j++)
			{
				var enemy = FactionMgr.Get(enemies[j]);
				if (enemy != null)
				{
					Enemies.Add(enemy);
					enemy.Enemies.Add(this);
				}
			}

			// neutrals 
			foreach (var faction in FactionMgr.ByTemplateId)
			{
				if (faction != null && !Friends.Contains(faction) && !Enemies.Contains(faction))
				{
					Neutrals.Add(faction);
				}
			}

			if (Id == FactionId.Prey)
			{
				// For some reason, prey has predators as enemy (but they shouldnt ever attack)
				Enemies.Clear();
			}

		    IsNeutral = Enemies.Count == 0 && Friends.Count == 0;
		}
示例#17
0
        internal void Init()
        {
            if (Id == FactionId.Alliance || Entry.ParentId == FactionId.Alliance)
            {
                IsAlliance = true;
                Group      = FactionGroup.Alliance;
            }
            else if (Id == FactionId.Horde || Entry.ParentId == FactionId.Horde)
            {
                IsHorde = true;
                Group   = FactionGroup.Horde;
            }

            // friends
            foreach (var faction in FactionMgr.ByTemplateId.Where(faction => faction != null))
            {
                if (IsPlayer && faction.Template.FriendGroup.HasAnyFlag(FactionGroupMask.Player))
                {
                    Friends.Add(faction);
                    faction.Friends.Add(this);
                }

                if (!Template.FriendGroup.HasAnyFlag(faction.Template.FactionGroup))
                {
                    continue;
                }

                Friends.Add(faction);
            }


            var friends = Template.FriendlyFactions;

            foreach (var factionId in friends)
            {
                var friend = FactionMgr.Get(factionId);
                if (friend == null)
                {
                    continue;
                }
                Friends.Add(friend);
                friend.Friends.Add(this);
            }

            // we are friends with ourselves
            Friends.Add(this);

            // enemies
            foreach (var faction in FactionMgr.ByTemplateId.Where(faction => faction != null))
            {
                if (IsPlayer && faction.Template.EnemyGroup.HasAnyFlag(FactionGroupMask.Player))
                {
                    Enemies.Add(faction);
                    faction.Enemies.Add(this);
                }

                if (!Template.EnemyGroup.HasAnyFlag(faction.Template.FactionGroup))
                {
                    continue;
                }

                Enemies.Add(faction);
            }

            var enemies = Template.EnemyFactions;

            for (var j = 0; j < enemies.Length; j++)
            {
                var enemy = FactionMgr.Get(enemies[j]);
                if (enemy == null)
                {
                    continue;
                }

                if (!Template.Flags.HasAnyFlag(FactionTemplateFlags.Flagx400))
                {
                    Enemies.Add(enemy);
                }


                enemy.Enemies.Add(this);
            }

            // neutrals
            foreach (var faction in FactionMgr.ByTemplateId.Where(faction => faction != null))
            {
                if (!Friends.Contains(faction) && !Enemies.Contains(faction))
                {
                    Neutrals.Add(faction);
                }
            }

            if (Id == FactionId.Prey)
            {
                // For some reason, prey has predators as enemy (but they shouldnt ever attack)
                Enemies.Clear();
            }

            IsNeutral = Enemies.Count == 0 && Friends.Count == 0;
        }
示例#18
0
        internal void Init()
        {
            if (this.Id == FactionId.Alliance || this.Entry.ParentId == FactionId.Alliance)
            {
                this.IsAlliance = true;
                this.Group      = FactionGroup.Alliance;
            }
            else if (this.Id == FactionId.Horde || this.Entry.ParentId == FactionId.Horde)
            {
                this.IsHorde = true;
                this.Group   = FactionGroup.Horde;
            }

            foreach (Faction faction in ((IEnumerable <Faction>)FactionMgr.ByTemplateId).Where <Faction>(
                         (Func <Faction, bool>)(faction => faction != null)))
            {
                if (this.IsPlayer && faction.Template.FriendGroup.HasAnyFlag(FactionGroupMask.Player))
                {
                    this.Friends.Add(faction);
                    faction.Friends.Add(this);
                }

                if (this.Template.FriendGroup.HasAnyFlag(faction.Template.FactionGroup))
                {
                    this.Friends.Add(faction);
                }
            }

            foreach (FactionId friendlyFaction in this.Template.FriendlyFactions)
            {
                Faction faction = FactionMgr.Get(friendlyFaction);
                if (faction != null)
                {
                    this.Friends.Add(faction);
                    faction.Friends.Add(this);
                }
            }

            this.Friends.Add(this);
            foreach (Faction faction in ((IEnumerable <Faction>)FactionMgr.ByTemplateId).Where <Faction>(
                         (Func <Faction, bool>)(faction => faction != null)))
            {
                if (this.IsPlayer && faction.Template.EnemyGroup.HasAnyFlag(FactionGroupMask.Player))
                {
                    this.Enemies.Add(faction);
                    faction.Enemies.Add(this);
                }

                if (this.Template.EnemyGroup.HasAnyFlag(faction.Template.FactionGroup))
                {
                    this.Enemies.Add(faction);
                }
            }

            foreach (FactionId enemyFaction in this.Template.EnemyFactions)
            {
                Faction faction = FactionMgr.Get(enemyFaction);
                if (faction != null)
                {
                    if (!this.Template.Flags.HasAnyFlag(FactionTemplateFlags.Flagx400))
                    {
                        this.Enemies.Add(faction);
                    }
                    faction.Enemies.Add(this);
                }
            }

            foreach (Faction faction in ((IEnumerable <Faction>)FactionMgr.ByTemplateId).Where <Faction>(
                         (Func <Faction, bool>)(faction => faction != null)))
            {
                if (!this.Friends.Contains(faction) && !this.Enemies.Contains(faction))
                {
                    this.Neutrals.Add(faction);
                }
            }

            if (this.Id == FactionId.Prey)
            {
                this.Enemies.Clear();
            }
            this.IsNeutral = this.Enemies.Count == 0 && this.Friends.Count == 0;
        }
示例#19
0
 private static void AssertSameFaction(ParsedSegment whoList, FactionGroup factionGroup)
 {
     RaceId raceId;
     for (int i = 0; i < whoList.SubSegments["Characters"].List.Count; i++)
     {
         raceId = (RaceId)Enum.Parse(typeof(RaceId), whoList.SubSegments["Characters"].List[i]["Race"].Value.ToString(), true);
         Assert.AreEqual(factionGroup, ArchetypeMgr.GetRace(raceId).Faction.Group);
     }
 }
示例#20
0
 public IList <ChatChannel> GetChatChannels(FactionGroup group)
 {
     return(group == FactionGroup.Alliance ? AllianceChatChannels : HordeChatChannels);
 }
 public SynchronizedCharacterList(FactionGroup group, ICollection <Character> chrs)
     : base(chrs)
 {
     FactionGroup = group;
 }
示例#22
0
 public Faction GetFaction(FactionGroup fact)
 {
     return(fact == FactionGroup.Alliance ? AllianceFaction : HordeFaction);
 }
 public SynchronizedCharacterList(FactionGroup group)
     : base(5)
 {
     FactionGroup = group;
 }
示例#24
0
		public Faction GetFaction(FactionGroup fact)
		{
			return fact == FactionGroup.Alliance ? AllianceFaction : HordeFaction;
		}
 public SynchronizedCharacterList(int capacity, FactionGroup group)
     : base(capacity)
 {
     FactionGroup = group;
 }
示例#26
0
		/// <summary>
		/// Gets the appropriate <see cref="ChatChannelGroup"/> for the given <see cref="FactionGroup"/>.
		/// </summary>
		/// <param name="faction">the faction</param>
		/// <returns>the appropriate channel manager, or null if an invalid faction is given</returns>
		public static ChatChannelGroup GetGroup(FactionGroup faction)
		{
		    if (faction == FactionGroup.Alliance)
			{
				return Alliance;
			}
		    if (faction == FactionGroup.Horde)
		    {
		        return Horde;
		    }

		    throw new Exception("Invalid FactionGroup: " + faction);
		}
示例#27
0
 public SynchronizedCharacterList(FactionGroup group, ICollection <Character> chrs)
     : base((IEnumerable <Character>)chrs)
 {
     this.FactionGroup = group;
 }