Ejemplo n.º 1
0
        public static BasicResource GetResource(int index)
        {
            if ((index < 0) || (index >= Count))
            {
                return(null);
            }

            if (resourcesDict.ContainsKey(index))
            {
                return(resourcesDict[index]);
            }

            if (rawResources[index] == null)
            {
                return(null);
            }

            // Lazy-load the requested resource
            Performance.Push("Load resource " + index);
            BasicResource res = CreateResource(index);

            resourcesDict.Add(index, res);
            Performance.Pop();

            Log.Write(LogType.Resources, LogSeverity.Debug, "Created resource of type '" + res.GetType().Name + "' for index " + index);

            return(res);
        }
Ejemplo n.º 2
0
 internal bool TryUseResources(List <goods> needGoods)
 {
     foreach (var good in needGoods)
     {
         BasicResource resource = Resourcen.Find(x => x.ResourceName == good.ProductName);
         if (resource == null)
         {
             Debug.Log($"Resource {good.ProductName} nicht gefunden.");
             return(false);
         }
         else
         {
             if (resource.CurrentAmount < good.Amount)
             {
                 Debug.Log($"Nicht genügend Resourcen von {good.ProductName} vorhanden.");
                 return(false);
             }
         }
     }
     foreach (var good in needGoods)
     {
         AddResource(good.ProductName, -good.Amount);
     }
     return(true);
 }
Ejemplo n.º 3
0
        public void Setup()
        {
            _basicResource = new BasicResource
            {
                Name = "Pat Smith"
            };

            _formatter = new HalJsonMediaTypeFormatter();
        }
Ejemplo n.º 4
0
        private void ApplyRequirements(Buyable buyable)
        {
            foreach (BuyRequirement req in buyable.Requirements)
            {
                BasicResource res = Resources.Find(o => o.GetType() == req.RequiredResource);

                if (res == null)
                {
                    throw new KeyNotFoundException("Resource not found");
                }
                res.Amount -= req.AmountRequired;
            }
        }
Ejemplo n.º 5
0
    public int GetResourceAmount(string resourceToGet)
    {
        BasicResource resource = Resourcen.Find(x => x.ResourceName == resourceToGet);

        if (resource == null)
        {
            return(-1);
        }
        else
        {
            return(resource.CurrentAmount);
        }
    }
Ejemplo n.º 6
0
        public static void WriteWarFile(string outputFile, bool forceStrongTyped)
        {
            using (BinaryWriter writer = new BinaryWriter(File.Create(outputFile)))
            {
                writer.Write(fileID);
                writer.Write(rawResources.Count);

                uint offsetOfOffsetTable = (uint)writer.BaseStream.Position;
                // Write empty offset table
                for (int i = 0; i < rawResources.Count; i++)
                {
                    writer.Write((int)0);
                }

                uint curOffset = (uint)writer.BaseStream.Position;

                // Write each resource and remember offset
                for (int i = 0; i < rawResources.Count; i++)
                {
                    if (rawResources[i] == null)
                    {
                        offsets[i] = 0xFFFFFFFF;
                        continue;
                    }

                    offsets[i] = curOffset;

                    if (forceStrongTyped)
                    {
                        // Force loading of resource
                        BasicResource res = GetResource(i);
                        res.WriteToStream(writer);
                    }
                    else
                    {
                        WriteResource(writer, rawResources[i]);
                    }

                    curOffset = (uint)writer.BaseStream.Position;
                }

                // Write full offset table
                writer.BaseStream.Seek(offsetOfOffsetTable, SeekOrigin.Begin);
                for (int i = 0; i < rawResources.Count; i++)
                {
                    writer.Write(offsets[i]);
                }
            }
        }
        public void roundTrip_basic_typeAndDataCorrect()
        {
            // arrange
            var test = new BasicResource
            {
                Name = "Pat Smith"
            };

            // act
            var result = TestHelpers.Format.PerformRoundTrip <BasicResource>(test, _formatter);

            // assert
            result.Name.Should().Be("Pat Smith");
            result.Should().BeOfType(typeof(BasicResource));
        }
Ejemplo n.º 8
0
        public bool CanBuyUnit(Buyable buyable)
        {
            foreach (BuyRequirement req in buyable.Requirements)
            {
                BasicResource res = Resources.Find(o => o.GetType() == req.RequiredResource);

                if (res == null)
                {
                    throw new KeyNotFoundException("Resource not found");
                }

                if (!(res.Amount >= req.AmountRequired))
                {
                    return(false);
                }
            }
            return(true);
        }
Ejemplo n.º 9
0
    public bool AddResource(string resourceToAdd, int resourceAmount)
    {
        BasicResource resource = Resourcen.Find(x => x.ResourceName == resourceToAdd);

        if (resource == null)
        {
            Debug.Log($"Resource {resourceToAdd} nicht gefunden.");
            return(false);
        }
        else
        {
            if (resource.addAmount(resourceAmount))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
    }
Ejemplo n.º 10
0
    public bool TryUseResources(string resourceToUse, int resourceAmount)
    {
        BasicResource resource = Resourcen.Find(x => x.ResourceName == resourceToUse);

        if (resource == null)
        {
            Debug.Log($"Resource {resourceToUse} nicht gefunden.");
            return(false);
        }
        else
        {
            if (resource.CurrentAmount > resourceAmount)
            {
                resource.CurrentAmount -= resourceAmount;
                return(true);
            }
            {
                Debug.Log($"Nicht genügend Resourcen von {resourceToUse} vorhanden.");
                return(false);
            }
        }
    }
Ejemplo n.º 11
0
 /// <summary>
 /// Create a resource.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.Resources.IResourceOperations.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Required. The name of the resource group. The name is case
 /// insensitive.
 /// </param>
 /// <param name='identity'>
 /// Required. Resource identity.
 /// </param>
 /// <param name='parameters'>
 /// Required. Create or update resource parameters.
 /// </param>
 /// <returns>
 /// Resource information.
 /// </returns>
 public static Task <ResourceCreateOrUpdateResult> CreateOrUpdateAsync(this IResourceOperations operations, string resourceGroupName, ResourceIdentity identity, BasicResource parameters)
 {
     return(operations.CreateOrUpdateAsync(resourceGroupName, identity, parameters, CancellationToken.None));
 }
Ejemplo n.º 12
0
 /// <summary>
 /// Create a resource.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.Resources.IResourceOperations.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Required. The name of the resource group. The name is case
 /// insensitive.
 /// </param>
 /// <param name='identity'>
 /// Required. Resource identity.
 /// </param>
 /// <param name='parameters'>
 /// Required. Create or update resource parameters.
 /// </param>
 /// <returns>
 /// Resource information.
 /// </returns>
 public static ResourceCreateOrUpdateResult CreateOrUpdate(this IResourceOperations operations, string resourceGroupName, ResourceIdentity identity, BasicResource parameters)
 {
     return(Task.Factory.StartNew((object s) =>
     {
         return ((IResourceOperations)s).CreateOrUpdateAsync(resourceGroupName, identity, parameters);
     }
                                  , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }