Improve hero balance
This commit is contained in:
		| @@ -10,11 +10,7 @@ export namespace Core { | ||||
|         const resourceDiff = calcNeedResources(current, required, totalRequired, storage); | ||||
|         const resourcesAsList = resourceDiff.asList(); | ||||
|  | ||||
|         const sorted = resourcesAsList.filter(x => x.value > 0).sort((x, y) => y.value - x.value); | ||||
|  | ||||
|         if (sorted.length === 0) { | ||||
|             return HeroAllResources; | ||||
|         } | ||||
|         const sorted = resourcesAsList.sort((x, y) => y.value - x.value); | ||||
|  | ||||
|         const maxRequirement = sorted[0]; | ||||
|         const minRequirement = sorted[sorted.length - 1]; | ||||
|   | ||||
| @@ -11,24 +11,33 @@ describe('HeroBalance', function() { | ||||
|         const totalRequired = new Resources(200, 200, 400, 300); | ||||
|         const storage = new ResourceStorage(1000, 1000); | ||||
|         const heroRes = Core.calcHeroResource(current, required, totalRequired, storage); | ||||
|         expect(heroRes).to.equals(ResourceType.Iron); | ||||
|         expect(ResourceType.Iron).to.equals(heroRes); | ||||
|     }); | ||||
|  | ||||
|     it('Get resource if one is enough', function() { | ||||
|     it('Get resource if one is enough, others non equal', function() { | ||||
|         const current = new Resources(100, 100, 100, 500); | ||||
|         const required = new Resources(200, 200, 400, 300); | ||||
|         const totalRequired = new Resources(200, 200, 400, 300); | ||||
|         const storage = new ResourceStorage(1000, 1000); | ||||
|         const heroRes = Core.calcHeroResource(current, required, totalRequired, storage); | ||||
|         expect(heroRes).to.equals(ResourceType.Iron); | ||||
|         expect(ResourceType.Iron).to.equals(heroRes); | ||||
|     }); | ||||
|  | ||||
|     it('Get resource if one is enough, others three equal', function() { | ||||
|         const current = new Resources(100, 100, 100, 500); | ||||
|         const required = new Resources(400, 400, 400, 300); | ||||
|         const totalRequired = new Resources(400, 400, 400, 300); | ||||
|         const storage = new ResourceStorage(1000, 1000); | ||||
|         const heroRes = Core.calcHeroResource(current, required, totalRequired, storage); | ||||
|         expect(ResourceType.Lumber).to.equals(heroRes); | ||||
|     }); | ||||
|  | ||||
|     it('Get resource if all are enough, but storage non optimal', function() { | ||||
|         const current = new Resources(600, 600, 500, 600); | ||||
|         const current = new Resources(500, 400, 300, 600); | ||||
|         const required = new Resources(100, 100, 100, 100); | ||||
|         const totalRequired = new Resources(100, 100, 100, 100); | ||||
|         const storage = new ResourceStorage(1000, 1000); | ||||
|         const heroRes = Core.calcHeroResource(current, required, totalRequired, storage); | ||||
|         expect(heroRes).to.equals(ResourceType.Iron); | ||||
|         expect(ResourceType.Iron).to.equals(heroRes); | ||||
|     }); | ||||
| }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user