Beispiel #1
0
        public override bool Link(GameDataLists lists)
        {
            LinkedCard = lists.cards.Find(x => (x.LinkedName.Name.GetCodeName() == CardName));
            if (LinkedCard == null)
            {
                Logger.WriteLine("FAILED link: GameDataReward, Id:{0}, Card:{1}, no matching card name", Id, CardName);
                return(false);
            }

            return(true);
        }
Beispiel #2
0
        public override bool Link(GameDataLists lists)
        {
            LinkedPlace = lists.placeNames.Find(x => (x.Name.GetCodeName() == Name));
            if (LinkedPlace == null)
            {
                Logger.WriteLine("FAILED link: GameDataMap, MapCode:{0}, Name:{1}, no matching place name", MapCode, Name);
                return(false);
            }

            return(true);
        }
Beispiel #3
0
        public override bool Link(GameDataLists lists)
        {
            if (LinkedOwner != null && LinkedOwner.LinkedNpc != null)
            {
                LinkedMap = lists.maps.Find(x => (x.MapCode == MapCode));
                if (LinkedMap == null)
                {
                    Logger.WriteLine("FAILED link: GameDataNpcLocation, NpcBaseId:{0}, MapCode:{1}, no matching Map", Id, MapCode);
                    return(false);
                }
            }

            return(true);
        }
Beispiel #4
0
        public override bool Link(GameDataLists lists)
        {
            LinkedType = lists.cardTypes.Find(x => (x.Type.GetCodeName() == cardType));
            // null is allowed LinkType value

            LinkedName = lists.cardNames.Find(x => (x.Id == Id));
            if (LinkedName == null)
            {
                Logger.WriteLine("FAILED link: GameDataCard, Id:{1}, no matching Name", Id);
                return(false);
            }

            return(true);
        }
Beispiel #5
0
        public override bool Link(GameDataLists lists)
        {
            LinkedRules = new List <GameDataRule>();
            foreach (var ruleId in RuleIds)
            {
                var LinkedRule = lists.rules.Find(x => (x.Id == ruleId));
                if (LinkedRule == null)
                {
                    Logger.WriteLine("FAILED link: GameDataTournament, Id:{0}, ruleId:{1}, no matching rule Id", Id, ruleId);
                    return(false);
                }

                LinkedRules.Add(LinkedRule);
            }

            return(true);
        }
Beispiel #6
0
        public override bool Link(GameDataLists lists)
        {
            LinkedNpc = lists.npcs.Find(x => (x.Id == TriadId));
            if (LinkedNpc == null)
            {
                Logger.WriteLine("FAILED link: GameDataNpcTriadId, NpcBaseId:{0}, TriadId:{1}, no matching NPC", Id, TriadId);
                return(false);
            }

            LinkedLocation = lists.npcLocations.Find(x => (x.Id == Id));
            if (LinkedLocation == null)
            {
                Logger.WriteLine("Warning: GameDataNpcTriadId, NpcBaseId:{0}, no matching Location", Id);
                //Logger.WriteLine("FAILED link: GameDataNpcTriadId, NpcBaseId:{0}, no matching Location", Id);
                //return false;
            }
            else
            {
                LinkedLocation.LinkedOwner = this;
            }

            LinkedName = lists.npcNames.Find(x => (x.Id == Id));
            if (LinkedName == null)
            {
                Logger.WriteLine("FAILED link: GameDataNpcTriadId, NpcBaseId:{0}, no matching Name", Id);
                return(false);
            }

            if (LinkedName.Name.GetCodeName().StartsWith("Wyra"))
            {
                int a = 1;
                a++;
            }

            return(true);
        }
Beispiel #7
0
 public override bool Link(GameDataLists lists)
 {
     // no child nodes
     return(true);
 }
Beispiel #8
0
        public override bool Link(GameDataLists lists)
        {
            LinkedNpcId = lists.npcTriadIds.Find(x => (x.TriadId == Id));
            if (LinkedNpcId == null)
            {
                // removed NPC? ignore and fail this entire entry
                Logger.WriteLine("Warning: GameDataNpc, TriadId:{0}, no matching NPC", Id);
                return(true);
            }

            LinkedCardsFixed = new List <GameDataCard>();
            foreach (var cardName in CardsFixed)
            {
                var LinkedCard = lists.cards.Find(x => (x.LinkedName.Name.GetCodeName() == cardName));
                if (LinkedCard == null)
                {
                    Logger.WriteLine("FAILED link: GameDataNpc, TriadId:{0}, Card:{1}, no matching card name", Id, cardName);
                    return(false);
                }

                LinkedCardsFixed.Add(LinkedCard);
            }

            LinkedCardsVariable = new List <GameDataCard>();
            foreach (var cardName in CardsVariable)
            {
                var LinkedCard = lists.cards.Find(x => (x.LinkedName.Name.GetCodeName() == cardName));
                if (LinkedCard == null)
                {
                    Logger.WriteLine("FAILED link: GameDataNpc, TriadId:{0}, Card:{1}, no matching card name", Id, cardName);
                    return(false);
                }

                LinkedCardsVariable.Add(LinkedCard);
            }

            LinkedRules = new List <GameDataRule>();
            foreach (var ruleName in Rules)
            {
                var LinkedRule = lists.rules.Find(x => (x.Name.GetCodeName() == ruleName));
                if (LinkedRule == null)
                {
                    Logger.WriteLine("FAILED link: GameDataNpc, TriadId:{0}, Rule:{1}, no matching rule name", Id, ruleName);
                    return(false);
                }

                LinkedRules.Add(LinkedRule);
            }

            LinkedRewards = new List <GameDataReward>();
            foreach (var itemName in Rewards)
            {
                var LinkedReward = lists.rewards.Find(x => (x.CardName == itemName));
                if (LinkedReward == null && itemName.EndsWith(" Card"))
                {
                    var itemName2 = itemName.Substring(0, itemName.Length - 5);

                    LinkedReward = lists.rewards.Find(x => (x.CardName == itemName2));
                    if (LinkedReward == null)
                    {
                        var itemName3 = "The " + itemName2;
                        LinkedReward = lists.rewards.Find(x => (x.CardName == itemName3));
                    }
                }

                if (LinkedReward == null)
                {
                    Logger.WriteLine("FAILED link: GameDataNpc, TriadId:{0}, Reward:{1}, no matching item name", Id, itemName);
                    return(false);
                }

                LinkedRewards.Add(LinkedReward);
            }

            return(true);
        }
Beispiel #9
0
 public virtual bool Link(GameDataLists lists)
 {
     return(false);
 }