User prompt
make the villager alway move
User prompt
the villager have to alway move
User prompt
Fix Bug: 'ReferenceError: villagers is not defined' in this line: 'var villagerB = villagers[j];' Line Number: 251
User prompt
Fix Bug: 'ReferenceError: villagers is not defined' in this line: 'var villagerA = villagers[i];' Line Number: 250
User prompt
Fix Bug: 'ReferenceError: villagers is not defined' in this line: 'for (var j = i + 1; j < villagers.length; j++) {' Line Number: 249
User prompt
Fix Bug: 'ReferenceError: villagers is not defined' in this line: 'for (var i = 0; i < villagers.length; i++) {' Line Number: 248
User prompt
Fix Bug: 'ReferenceError: villagers is not defined' in this line: 'for (var i = 0; i < villagers.length; i++) {' Line Number: 327
User prompt
Fix Bug: 'TypeError: self.updateResourceDisplay is not a function' in this line: 'self.updateResourceDisplay();' Line Number: 322
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'villagerCountText.setText('Villagers: ' + self.villagers.length);' Line Number: 236
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'villagers')' in this line: 'self.villagers = game.villagers;' Line Number: 226
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'villagerCountText.setText('Villagers: ' + villagers.length);' Line Number: 235
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'villagerCountText.setText('Villagers: ' + villagers.length);' Line Number: 235
User prompt
Fix Bug: 'ReferenceError: villagerCountDisplay is not defined' in this line: 'villagerCountDisplay.update();' Line Number: 318
User prompt
Fix Bug: 'ReferenceError: villagerCountDisplay is not defined' in this line: 'villagerCountDisplay.update();' Line Number: 318
User prompt
Fix Bug: 'TypeError: self.updateVillagerCountDisplay is not a function' in this line: 'self.updateVillagerCountDisplay();' Line Number: 318
User prompt
Fix Bug: 'Uncaught ReferenceError: workplaces is not defined' in this line: 'workplaces.push(workplace);' Line Number: 315
User prompt
Fix Bug: 'Uncaught ReferenceError: workplaces is not defined' in this line: 'workplaces.push(self.createAndAddWorkplace());' Line Number: 306
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'push')' in this line: 'this.workplaces.push(workplace);' Line Number: 302
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'push')' in this line: 'this.houses.push(house);' Line Number: 292
User prompt
Fix Bug: 'Uncaught ReferenceError: villagers is not defined' in this line: 'villagers.push(self.createAndAddVillager(1024, 1366));' Line Number: 284
User prompt
Fix Bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'push')' in this line: 'this.villagers.push(villager);' Line Number: 280
User prompt
improve all the code in 20 pass
User prompt
improve all the code in 10 pass
User prompt
improve all the code
User prompt
improve 8 time
===================================================================
--- original.js
+++ change.js
@@ -65,10 +65,15 @@
Villager.prototype.canFallInLove = function (otherVillager) {
return this.state === 'atHome' && otherVillager.state === 'atHome' && !this.partner && !otherVillager.partner;
};
self.gameResources = resources;
- self.buildHouse = function () {
- self.buildHouse();
+ Villager.prototype.buildHouse = function (houseBuilder) {
+ if (this.canBuildHouse(this.gameResources)) {
+ houseBuilder.build(this);
+ this.gameResources.wood.amount -= 200;
+ this.gameResources.rock.amount -= 200;
+ this.gameResources.food.amount -= 200;
+ }
};
self.collectResource = function () {
self.resourceCollector.collect(self);
};
@@ -194,10 +199,43 @@
this.y = Math.random() * 2732;
};
var houseGraphics = self.createAsset('house', 'House Graphics', .5, .5);
self.isOccupiable = true;
- self.occupy = function (villager) {};
+ House.prototype.occupy = function (villager) {
+ if (!this.isOccupiable) return;
+ this.isOccupiable = false;
+ villager.home = this;
+ this.scheduleVillagerWork(villager);
+ };
});
+var ResourceDisplay = Container.expand(function (resources) {
+ var self = Container.call(this);
+ var resourceDisplayText = new Text2('', {
+ size: 50,
+ fill: "#ffffff"
+ });
+ resourceDisplayText.anchor.set(0.5, 0);
+ resourceDisplayText.x = 2048 / 2 - 800 - 500 + 100;
+ resourceDisplayText.y = 50;
+ LK.gui.topCenter.addChild(resourceDisplayText);
+ self.update = function () {
+ resourceDisplayText.setText('Resources: Wood ' + resources.wood.amount + ' Rock ' + resources.rock.amount + ' Food ' + resources.food.amount);
+ };
+});
+var VillagerCountDisplay = Container.expand(function (villagers) {
+ var self = Container.call(this);
+ var villagerCountText = new Text2('', {
+ size: 50,
+ fill: "#ffffff"
+ });
+ villagerCountText.anchor.set(0.5, 0);
+ villagerCountText.x = 2048 / 2;
+ villagerCountText.y = 50;
+ LK.gui.topCenter.addChild(villagerCountText);
+ self.update = function () {
+ villagerCountText.setText('Villagers: ' + villagers.length);
+ };
+});
var Game = Container.expand(function () {
var self = Container.call(this);
self.handleVillagersFallingInLove = function () {
for (var i = 0; i < villagers.length; i++) {
@@ -226,62 +264,42 @@
var resources = createResources();
self.addChild(resources.wood);
self.addChild(resources.rock);
self.addChild(resources.food);
- self.updateResourceDisplay = function () {
- resourceDisplayText.setText('Resources: Wood ' + resources.wood.amount + ' Rock ' + resources.rock.amount + ' Food ' + resources.food.amount);
- };
- var resourceDisplayText = new Text2('', {
- size: 50,
- fill: "#ffffff"
- });
- self.updateResourceDisplay();
- resourceDisplayText.anchor.set(0.5, 0);
- resourceDisplayText.x = 2048 / 2 - 800 - 500 + 100;
- resourceDisplayText.y = 50;
- LK.gui.topCenter.addChild(resourceDisplayText);
var background = self.createAsset('background', 'Background Graphics', 0, 0);
background.width = 4096 * 0.8;
background.height = 5464 * 0.8;
background.x = (2048 - background.width) / 2;
background.y = (2732 - background.height) / 2 - 400;
self.addChildAt(background, 0);
var resourceCollector = new ResourceCollector();
- self.createAndAddVillager = function (x, y) {
- var villager = new Villager(resources);
+ Game.prototype.createAndAddVillager = function (x, y) {
+ var villager = new Villager(this.resources);
villager.x = x;
villager.y = y;
- self.addChild(villager);
+ this.addChild(villager);
+ this.villagers.push(villager);
return villager;
};
var villagers = [];
villagers.push(self.createAndAddVillager(1024, 1366));
villagers.push(self.createAndAddVillager(1024, 1500));
- self.updateVillagerCountDisplay = function () {
- villagerCountText.setText('Villagers: ' + villagers.length);
- };
- var villagerCountText = new Text2('', {
- size: 50,
- fill: "#ffffff"
- });
- self.updateVillagerCountDisplay();
- villagerCountText.anchor.set(0.5, 0);
- villagerCountText.x = 2048 / 2;
- villagerCountText.y = 50;
- self.createAndAddHouse = function (x, y) {
+ Game.prototype.createAndAddHouse = function (x, y) {
var house = new House();
house.x = x;
house.y = y;
- self.addChild(house);
+ this.addChild(house);
+ this.houses.push(house);
return house;
};
var houses = [];
houses.push(self.createAndAddHouse(2048 / 2, 2732 / 2));
- self.createAndAddWorkplace = function () {
+ Game.prototype.createAndAddWorkplace = function () {
var workplace = new EmployingWorkPlace();
workplace.x = Math.random() * 2048;
workplace.y = Math.random() * 2732;
- self.addChild(workplace);
+ this.addChild(workplace);
+ this.workplaces.push(workplace);
return workplace;
};
var workplaces = [];
workplaces.push(self.createAndAddWorkplace());
A background of a paysage with plain and without tree or montainbut no water see from the top in the air 100m by 100m Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
One human medieval villager in a warcraft 2 style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a house in a warcraft 2 style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A tree a rock and crambery in a RTS style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A heart comic style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A cloud in a comic style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A market in a RTS fantasy style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
An Inn in a RTS fantasy style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
An school in a RTS fantasy style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
An bakery in a RTS fantasy style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A well in a RTS fantasy style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A tree in a rts style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
An apple in a rts style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A rock in a rts style Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A home in a RTS and fantasy style. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A brewery in a fantasy rts style. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A lumberjack in a fantasy rts style. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a marketplace in a fantasy rts style. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
a festival in a fantasy rts style. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.