Improve hero balance
This commit is contained in:
parent
57e79b0ba2
commit
3689a55707
@ -10,11 +10,7 @@ export namespace Core {
|
|||||||
const resourceDiff = calcNeedResources(current, required, totalRequired, storage);
|
const resourceDiff = calcNeedResources(current, required, totalRequired, storage);
|
||||||
const resourcesAsList = resourceDiff.asList();
|
const resourcesAsList = resourceDiff.asList();
|
||||||
|
|
||||||
const sorted = resourcesAsList.filter(x => x.value > 0).sort((x, y) => y.value - x.value);
|
const sorted = resourcesAsList.sort((x, y) => y.value - x.value);
|
||||||
|
|
||||||
if (sorted.length === 0) {
|
|
||||||
return HeroAllResources;
|
|
||||||
}
|
|
||||||
|
|
||||||
const maxRequirement = sorted[0];
|
const maxRequirement = sorted[0];
|
||||||
const minRequirement = sorted[sorted.length - 1];
|
const minRequirement = sorted[sorted.length - 1];
|
||||||
|
@ -11,24 +11,33 @@ describe('HeroBalance', function() {
|
|||||||
const totalRequired = new Resources(200, 200, 400, 300);
|
const totalRequired = new Resources(200, 200, 400, 300);
|
||||||
const storage = new ResourceStorage(1000, 1000);
|
const storage = new ResourceStorage(1000, 1000);
|
||||||
const heroRes = Core.calcHeroResource(current, required, totalRequired, storage);
|
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 current = new Resources(100, 100, 100, 500);
|
||||||
const required = new Resources(200, 200, 400, 300);
|
const required = new Resources(200, 200, 400, 300);
|
||||||
const totalRequired = new Resources(200, 200, 400, 300);
|
const totalRequired = new Resources(200, 200, 400, 300);
|
||||||
const storage = new ResourceStorage(1000, 1000);
|
const storage = new ResourceStorage(1000, 1000);
|
||||||
const heroRes = Core.calcHeroResource(current, required, totalRequired, storage);
|
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() {
|
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 required = new Resources(100, 100, 100, 100);
|
||||||
const totalRequired = new Resources(100, 100, 100, 100);
|
const totalRequired = new Resources(100, 100, 100, 100);
|
||||||
const storage = new ResourceStorage(1000, 1000);
|
const storage = new ResourceStorage(1000, 1000);
|
||||||
const heroRes = Core.calcHeroResource(current, required, totalRequired, storage);
|
const heroRes = Core.calcHeroResource(current, required, totalRequired, storage);
|
||||||
expect(heroRes).to.equals(ResourceType.Iron);
|
expect(ResourceType.Iron).to.equals(heroRes);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user