示例#1
0
 public List<ResourceAmount> ListResourcesWithTag(Resource.ResourceTags tag)
 {
     Dictionary<string, ResourceAmount> resources = ListResources();
     return (from pair in resources where pair.Value.ResourceType.Tags.Contains(tag) select pair.Value).ToList();
 }
示例#2
0
 public ResourceAmount(Resource resourceType, int numResources)
 {
     ResourceType = resourceType;
     NumResources = numResources;
 }
示例#3
0
        public int CountResourcesWithTag(Resource.ResourceTags tag)
        {
            List<ResourceAmount> resources = ListResourcesWithTag(tag);
            int amounts = 0;

            foreach (ResourceAmount amount in resources)
            {
                amounts += amount.NumResources;
            }

            return amounts;
        }
示例#4
0
 public SearchFreeStockpileAct(CreatureAI creature, string StockpileBlackboardName, string VoxelBlackboardName, Resource itemToStock) :
     base(creature)
 {
     Name = "Search Stockpile " + StockpileBlackboardName;
     this.StockpileBlackboardName = StockpileBlackboardName;
     this.VoxelBlackboardName     = VoxelBlackboardName;
     Item = itemToStock;
 }
示例#5
0
 public ResourceAmount(Resource resource)
 {
     ResourceType = resource;
     NumResources = 1;
 }
示例#6
0
        public static Resource GenerateTrinket(ResourceType baseMaterial, float quality)
        {
            Resource toReturn = new Resource(Resources[ResourceType.Trinket]);

            string[] names =
            {
                "Ring",
                "Pendant",
                "Earrings",
                "Crown",
                "Brace",
                "Figure",
                "Staff"
            };

            Point[] tiles =
            {
                new Point(0, 0),
                new Point(0, 1),
                new Point(0, 2),
                new Point(0, 3),
                new Point(2, 0),
                new Point(2, 1),
                new Point(2, 2)
            };

            float[] values =
            {
                1.5f,
                1.8f,
                1.6f,
                3.0f,
                2.0f,
                3.5f,
                4.0f
            };

            int item = PlayState.Random.Next(names.Count());

            string name = names[item];
            Point tile = tiles[item];
            toReturn.MoneyValue = values[item]*Resources[baseMaterial].MoneyValue * 3 * quality;

            string qualityType = "";

            if (quality < 0.5f)
            {
                qualityType = "Very poor";
            }
            else if (quality < 0.75)
            {
                qualityType = "Poor";
            }
            else if (quality < 1.0f)
            {
                qualityType = "Mediocre";
            }
            else if (quality < 1.25f)
            {
                qualityType = "Good";
            }
            else if (quality < 1.75f)
            {
                qualityType = "Excellent";
            }
            else if(quality < 2.0f)
            {
                qualityType = "Masterwork";
            }
            else
            {
                qualityType = "Legendary";
            }

            toReturn.Type = baseMaterial + " " + name + " (" + qualityType + ")";

            if (Resources.ContainsKey(toReturn.Type))
            {
                return Resources[toReturn.Type];
            }
            toReturn.Tint = Resources[baseMaterial].Tint;
            toReturn.Image = new NamedImageFrame(ContentPaths.Entities.DwarfObjects.crafts, 32, tile.X, tile.Y);
            Add(toReturn);
            toReturn.ShortName = baseMaterial + " " + names[item];
            return toReturn;
        }
示例#7
0
        public static void Add(Resource resource)
        {
            Resources[resource.ResourceName] = resource;

            EntityFactory.RegisterEntity(resource.ResourceName + " Resource", (position, data) => new ResourceEntity(resource.Type, position));
        }
示例#8
0
 public ResourceAmount(Resource resourceType, int numResources)
 {
     ResourceType = resourceType.Type;
     NumResources = numResources;
 }
示例#9
0
 public ResourceAmount(Resource resource)
 {
     ResourceType = resource.Type;
     NumResources = 1;
 }
示例#10
0
 public Strawman(ComponentManager manager, Vector3 position, Resource Resource) :
     base("Strawman", manager, position, Resource, new SpriteSheet(ContentPaths.Entities.Furniture.interior_furniture, 32, 32), new Point(1, 5))
 {
 }