Esempio n. 1
0
        static void FixBloodlinePrerequisite(BlueprintFeature feat)
        {
            var components = feat.ComponentsArray.Where(c => !(c is PrerequisiteFeature || c is PrerequisiteFeaturesFromList)).ToList();

            foreach (var p in feat.GetComponents <PrerequisiteFeature>())
            {
                BlueprintProgression crossbloodline;
                if (crossbloodForBloodline.TryGetValue(p.Feature as BlueprintProgression, out crossbloodline))
                {
                    var prereq = Helpers.PrerequisiteFeaturesFromList(p.Feature, crossbloodline);
                    prereq.Group = p.Group;
                    components.Add(prereq);
                }
                else
                {
                    components.Add(p);
                }
            }
            foreach (var prereq in feat.GetComponents <PrerequisiteFeaturesFromList>().ToList())
            {
                var features = prereq.Features.ToList();
                foreach (var f in prereq.Features)
                {
                    BlueprintProgression crossbloodline;
                    if (crossbloodForBloodline.TryGetValue(f as BlueprintProgression, out crossbloodline))
                    {
                        features.Add(crossbloodline);
                    }
                }
                var newPrereq = Helpers.PrerequisiteFeaturesFromList(features);
                newPrereq.Group = prereq.Group;
                components.Add(newPrereq);
            }
            feat.SetComponents(components);
        }
 public static void SetFeatureInfo(BlueprintFeature feat, String name, String displayName, String description, String guid, Sprite icon,
                                   FeatureGroup group, params BlueprintComponent[] components)
 {
     feat.name = name;
     feat.SetComponents(components);
     feat.Groups = new [] { group };
     feat.SetNameDescriptionIcon(displayName, description, icon);
     Main.library.AddAsset(feat, guid);
 }