Esempio n. 1
0
 public AllegianceNode(ObjectGuid playerGuid, Allegiance allegiance, AllegianceNode monarch = null, AllegianceNode patron = null)
 {
     PlayerGuid = playerGuid;
     Allegiance = allegiance;
     Monarch    = monarch ?? this;
     Patron     = patron;
 }
Esempio n. 2
0
 public AllegianceNode(IPlayer player, Allegiance allegiance, AllegianceNode monarch = null, AllegianceNode patron = null)
 {
     Player     = player;
     Allegiance = allegiance;
     Monarch    = monarch ?? this;
     Patron     = patron;
 }
Esempio n. 3
0
        public void BuildChain(Allegiance allegiance, List <IPlayer> players)
        {
            var vassals = players.Where(p => p.PatronId == PlayerGuid.Full).ToList();

            Vassals = new Dictionary <uint, AllegianceNode>();

            foreach (var vassal in vassals)
            {
                var node = new AllegianceNode(vassal.Guid, allegiance, Monarch, this);
                node.BuildChain(allegiance, players);

                Vassals.Add(vassal.Guid.Full, node);
            }

            CalculateRank();
        }
Esempio n. 4
0
        public void BuildChain(Allegiance allegiance, List <IPlayer> players, Dictionary <uint, List <IPlayer> > patronVassals)
        {
            patronVassals.TryGetValue(PlayerGuid.Full, out var vassals);

            Vassals = new Dictionary <uint, AllegianceNode>();

            if (vassals != null)
            {
                foreach (var vassal in vassals)
                {
                    var node = new AllegianceNode(vassal.Guid, allegiance, Monarch, this);
                    node.BuildChain(allegiance, players, patronVassals);

                    Vassals.Add(vassal.Guid.Full, node);
                }
            }
            CalculateRank();
        }