diff --git a/html5-tower-defense-master/src/js/td-cfg-buildings.js b/html5-tower-defense-master/src/js/td-cfg-buildings.js
index 08667bb..d1e05e1 100644
--- a/html5-tower-defense-master/src/js/td-cfg-buildings.js
+++ b/html5-tower-defense-master/src/js/td-cfg-buildings.js
@@ -84,7 +84,6 @@ _TD.a.push(function (TD) {
"laser_gun": {
damage: 25,
range: 6,
- max_range: 10,
speed: 20,
// bullet_speed: 10, // laser_gun 的 bullet_speed 属性没有用
life: 100,
diff --git a/html5-tower-defense-master/src/js/td-save-load-fix.js b/html5-tower-defense-master/src/js/td-save-load-fix.js
index 719550d..5f36389 100644
--- a/html5-tower-defense-master/src/js/td-save-load-fix.js
+++ b/html5-tower-defense-master/src/js/td-save-load-fix.js
@@ -20,7 +20,20 @@
for (var i = 0; i < map.buildings.length; i++) {
var b = map.buildings[i];
if (!b || !b.grid) continue;
- buildings.push({ type: b.type, mx: b.grid.mx, my: b.grid.my, level: b.level, money: b.money });
+ buildings.push({
+ type: b.type,
+ mx: b.grid.mx,
+ my: b.grid.my,
+ level: b.level,
+ money: b.money,
+ killed: b.killed,
+ damage: b.damage,
+ range: b.range,
+ speed: b.speed,
+ life: b.life,
+ shield: b.shield,
+ upgrade_records: b._upgrade_records || null
+ });
}
}
@@ -158,11 +171,39 @@
var grid = map.getGrid(bi.mx, bi.my);
if (grid) grid.addBuilding(bi.type);
var b = grid && grid.building;
- if (b) {
- if (typeof bi.level !== 'undefined') b.level = bi.level;
- if (typeof bi.money !== 'undefined') b.money = bi.money;
- b.updateBtnDesc && b.updateBtnDesc();
- }
+ if (b) {
+ var hasSavedBuildingAttrs = (
+ typeof bi.damage !== 'undefined' ||
+ typeof bi.range !== 'undefined' ||
+ typeof bi.speed !== 'undefined' ||
+ typeof bi.life !== 'undefined' ||
+ typeof bi.shield !== 'undefined'
+ );
+
+ if (!hasSavedBuildingAttrs && typeof bi.level !== 'undefined' && bi.level > 0 && typeof b.upgrade === 'function') {
+ for (var ul = 0; ul < bi.level; ul++) b.upgrade();
+ } else if (typeof bi.level !== 'undefined') {
+ b.level = bi.level;
+ }
+
+ if (typeof bi.damage !== 'undefined') b.damage = bi.damage;
+ if (typeof bi.range !== 'undefined') b.range = bi.range;
+ if (typeof bi.speed !== 'undefined') b.speed = bi.speed;
+ if (typeof bi.life !== 'undefined') b.life = bi.life;
+ if (typeof bi.shield !== 'undefined') b.shield = bi.shield;
+ if (typeof bi.money !== 'undefined') b.money = bi.money;
+ if (typeof bi.killed !== 'undefined') b.killed = bi.killed;
+ if (bi.upgrade_records) {
+ b._upgrade_records = {};
+ for (var rk in bi.upgrade_records) {
+ if (Object.prototype.hasOwnProperty.call(bi.upgrade_records, rk)) {
+ b._upgrade_records[rk] = bi.upgrade_records[rk];
+ }
+ }
+ }
+ b.range_px = b.range * TD.grid_size;
+ b.updateBtnDesc && b.updateBtnDesc();
+ }
}
}
diff --git a/html5-tower-defense-master/src/js/td-save-load-monsters.js b/html5-tower-defense-master/src/js/td-save-load-monsters.js
index fd0ef5c..3207fe1 100644
--- a/html5-tower-defense-master/src/js/td-save-load-monsters.js
+++ b/html5-tower-defense-master/src/js/td-save-load-monsters.js
@@ -19,7 +19,20 @@ window.__TD_getState = function () {
for (var i = 0; i < map.buildings.length; i++) {
var b = map.buildings[i];
if (!b || !b.grid) continue;
- buildings.push({ type: b.type, mx: b.grid.mx, my: b.grid.my, level: b.level, money: b.money });
+ buildings.push({
+ type: b.type,
+ mx: b.grid.mx,
+ my: b.grid.my,
+ level: b.level,
+ money: b.money,
+ killed: b.killed,
+ damage: b.damage,
+ range: b.range,
+ speed: b.speed,
+ life: b.life,
+ shield: b.shield,
+ upgrade_records: b._upgrade_records || null
+ });
}
}
@@ -157,11 +170,39 @@ window.__TD_loadState = function (s) {
var grid = map.getGrid(bi.mx, bi.my);
if (grid) grid.addBuilding(bi.type);
var b = grid && grid.building;
- if (b) {
- if (typeof bi.level !== 'undefined') b.level = bi.level;
- if (typeof bi.money !== 'undefined') b.money = bi.money;
- b.updateBtnDesc && b.updateBtnDesc();
- }
+ if (b) {
+ var hasSavedBuildingAttrs = (
+ typeof bi.damage !== 'undefined' ||
+ typeof bi.range !== 'undefined' ||
+ typeof bi.speed !== 'undefined' ||
+ typeof bi.life !== 'undefined' ||
+ typeof bi.shield !== 'undefined'
+ );
+
+ if (!hasSavedBuildingAttrs && typeof bi.level !== 'undefined' && bi.level > 0 && typeof b.upgrade === 'function') {
+ for (var ul = 0; ul < bi.level; ul++) b.upgrade();
+ } else if (typeof bi.level !== 'undefined') {
+ b.level = bi.level;
+ }
+
+ if (typeof bi.damage !== 'undefined') b.damage = bi.damage;
+ if (typeof bi.range !== 'undefined') b.range = bi.range;
+ if (typeof bi.speed !== 'undefined') b.speed = bi.speed;
+ if (typeof bi.life !== 'undefined') b.life = bi.life;
+ if (typeof bi.shield !== 'undefined') b.shield = bi.shield;
+ if (typeof bi.money !== 'undefined') b.money = bi.money;
+ if (typeof bi.killed !== 'undefined') b.killed = bi.killed;
+ if (bi.upgrade_records) {
+ b._upgrade_records = {};
+ for (var rk in bi.upgrade_records) {
+ if (Object.prototype.hasOwnProperty.call(bi.upgrade_records, rk)) {
+ b._upgrade_records[rk] = bi.upgrade_records[rk];
+ }
+ }
+ }
+ b.range_px = b.range * TD.grid_size;
+ b.updateBtnDesc && b.updateBtnDesc();
+ }
}
}
diff --git a/html5-tower-defense-master/src/js/td.js b/html5-tower-defense-master/src/js/td.js
index d888ac6..1474abf 100644
--- a/html5-tower-defense-master/src/js/td.js
+++ b/html5-tower-defense-master/src/js/td.js
@@ -268,7 +268,20 @@ var _TD = {
for (var i = 0; i < map.buildings.length; i++) {
var b = map.buildings[i];
if (!b || !b.grid) continue;
- buildings.push({ type: b.type, mx: b.grid.mx, my: b.grid.my, level: b.level, money: b.money });
+ buildings.push({
+ type: b.type,
+ mx: b.grid.mx,
+ my: b.grid.my,
+ level: b.level,
+ money: b.money,
+ killed: b.killed,
+ damage: b.damage,
+ range: b.range,
+ speed: b.speed,
+ life: b.life,
+ shield: b.shield,
+ upgrade_records: b._upgrade_records || null
+ });
}
}
@@ -358,11 +371,39 @@ var _TD = {
var grid = map.getGrid(bi.mx, bi.my);
if (grid) grid.addBuilding(bi.type);
var b = grid && grid.building;
- if (b) {
- if (typeof bi.level !== 'undefined') b.level = bi.level;
- if (typeof bi.money !== 'undefined') b.money = bi.money;
- b.updateBtnDesc && b.updateBtnDesc();
- }
+ if (b) {
+ var hasSavedBuildingAttrs = (
+ typeof bi.damage !== 'undefined' ||
+ typeof bi.range !== 'undefined' ||
+ typeof bi.speed !== 'undefined' ||
+ typeof bi.life !== 'undefined' ||
+ typeof bi.shield !== 'undefined'
+ );
+
+ if (!hasSavedBuildingAttrs && typeof bi.level !== 'undefined' && bi.level > 0 && typeof b.upgrade === 'function') {
+ for (var ul = 0; ul < bi.level; ul++) b.upgrade();
+ } else if (typeof bi.level !== 'undefined') {
+ b.level = bi.level;
+ }
+
+ if (typeof bi.damage !== 'undefined') b.damage = bi.damage;
+ if (typeof bi.range !== 'undefined') b.range = bi.range;
+ if (typeof bi.speed !== 'undefined') b.speed = bi.speed;
+ if (typeof bi.life !== 'undefined') b.life = bi.life;
+ if (typeof bi.shield !== 'undefined') b.shield = bi.shield;
+ if (typeof bi.money !== 'undefined') b.money = bi.money;
+ if (typeof bi.killed !== 'undefined') b.killed = bi.killed;
+ if (bi.upgrade_records) {
+ b._upgrade_records = {};
+ for (var rk in bi.upgrade_records) {
+ if (Object.prototype.hasOwnProperty.call(bi.upgrade_records, rk)) {
+ b._upgrade_records[rk] = bi.upgrade_records[rk];
+ }
+ }
+ }
+ b.range_px = b.range * TD.grid_size;
+ b.updateBtnDesc && b.updateBtnDesc();
+ }
}
}
diff --git a/html5-tower-defense-master/src/td.html b/html5-tower-defense-master/src/td.html
index b59d83a..14ab0d4 100644
--- a/html5-tower-defense-master/src/td.html
+++ b/html5-tower-defense-master/src/td.html
@@ -71,7 +71,20 @@
for (var i = 0; i < map.buildings.length; i++) {
var b = map.buildings[i];
if (!b || !b.grid) continue;
- buildings.push({ type: b.type, mx: b.grid.mx, my: b.grid.my, level: b.level, money: b.money });
+ buildings.push({
+ type: b.type,
+ mx: b.grid.mx,
+ my: b.grid.my,
+ level: b.level,
+ money: b.money,
+ killed: b.killed,
+ damage: b.damage,
+ range: b.range,
+ speed: b.speed,
+ life: b.life,
+ shield: b.shield,
+ upgrade_records: b._upgrade_records || null
+ });
}
}
@@ -209,11 +222,39 @@
var grid = map.getGrid(bi.mx, bi.my);
if (grid) grid.addBuilding(bi.type);
var b = grid && grid.building;
- if (b) {
- if (typeof bi.level !== 'undefined') b.level = bi.level;
- if (typeof bi.money !== 'undefined') b.money = bi.money;
- b.updateBtnDesc && b.updateBtnDesc();
- }
+ if (b) {
+ var hasSavedBuildingAttrs = (
+ typeof bi.damage !== 'undefined' ||
+ typeof bi.range !== 'undefined' ||
+ typeof bi.speed !== 'undefined' ||
+ typeof bi.life !== 'undefined' ||
+ typeof bi.shield !== 'undefined'
+ );
+
+ if (!hasSavedBuildingAttrs && typeof bi.level !== 'undefined' && bi.level > 0 && typeof b.upgrade === 'function') {
+ for (var ul = 0; ul < bi.level; ul++) b.upgrade();
+ } else if (typeof bi.level !== 'undefined') {
+ b.level = bi.level;
+ }
+
+ if (typeof bi.damage !== 'undefined') b.damage = bi.damage;
+ if (typeof bi.range !== 'undefined') b.range = bi.range;
+ if (typeof bi.speed !== 'undefined') b.speed = bi.speed;
+ if (typeof bi.life !== 'undefined') b.life = bi.life;
+ if (typeof bi.shield !== 'undefined') b.shield = bi.shield;
+ if (typeof bi.money !== 'undefined') b.money = bi.money;
+ if (typeof bi.killed !== 'undefined') b.killed = bi.killed;
+ if (bi.upgrade_records) {
+ b._upgrade_records = {};
+ for (var rk in bi.upgrade_records) {
+ if (Object.prototype.hasOwnProperty.call(bi.upgrade_records, rk)) {
+ b._upgrade_records[rk] = bi.upgrade_records[rk];
+ }
+ }
+ }
+ b.range_px = b.range * TD.grid_size;
+ b.updateBtnDesc && b.updateBtnDesc();
+ }
}
}
diff --git a/public/tower-defense/td-pkg-zh-min.js b/public/tower-defense/td-pkg-zh-min.js
index 58fa126..e87c88b 100644
--- a/public/tower-defense/td-pkg-zh-min.js
+++ b/public/tower-defense/td-pkg-zh-min.js
@@ -265,7 +265,20 @@ var _TD = {
for (var i = 0; i < map.buildings.length; i++) {
var b = map.buildings[i];
if (!b || !b.grid) continue;
- buildings.push({ type: b.type, mx: b.grid.mx, my: b.grid.my, level: b.level, money: b.money });
+ buildings.push({
+ type: b.type,
+ mx: b.grid.mx,
+ my: b.grid.my,
+ level: b.level,
+ money: b.money,
+ killed: b.killed,
+ damage: b.damage,
+ range: b.range,
+ speed: b.speed,
+ life: b.life,
+ shield: b.shield,
+ upgrade_records: b._upgrade_records || null
+ });
}
}
return { money: TD.money, life: TD.life, score: TD.score, wave: (scene && scene.wave) || 0, buildings: buildings };
@@ -294,8 +307,36 @@ var _TD = {
if (grid) grid.addBuilding(bi.type);
var b = grid && grid.building;
if (b) {
- if (typeof bi.level !== 'undefined') b.level = bi.level;
+ var hasSavedBuildingAttrs = (
+ typeof bi.damage !== 'undefined' ||
+ typeof bi.range !== 'undefined' ||
+ typeof bi.speed !== 'undefined' ||
+ typeof bi.life !== 'undefined' ||
+ typeof bi.shield !== 'undefined'
+ );
+
+ if (!hasSavedBuildingAttrs && typeof bi.level !== 'undefined' && bi.level > 0 && typeof b.upgrade === 'function') {
+ for (var ul = 0; ul < bi.level; ul++) b.upgrade();
+ } else if (typeof bi.level !== 'undefined') {
+ b.level = bi.level;
+ }
+
+ if (typeof bi.damage !== 'undefined') b.damage = bi.damage;
+ if (typeof bi.range !== 'undefined') b.range = bi.range;
+ if (typeof bi.speed !== 'undefined') b.speed = bi.speed;
+ if (typeof bi.life !== 'undefined') b.life = bi.life;
+ if (typeof bi.shield !== 'undefined') b.shield = bi.shield;
if (typeof bi.money !== 'undefined') b.money = bi.money;
+ if (typeof bi.killed !== 'undefined') b.killed = bi.killed;
+ if (bi.upgrade_records) {
+ b._upgrade_records = {};
+ for (var rk in bi.upgrade_records) {
+ if (Object.prototype.hasOwnProperty.call(bi.upgrade_records, rk)) {
+ b._upgrade_records[rk] = bi.upgrade_records[rk];
+ }
+ }
+ }
+ b.range_px = b.range * TD.grid_size;
b.updateBtnDesc && b.updateBtnDesc();
}
}
@@ -3845,7 +3886,6 @@ _TD.a.push(function (TD) {
"laser_gun": {
damage: 25,
range: 6,
- max_range: 10,
speed: 20,
// bullet_speed: 10, // laser_gun 的 bullet_speed 属性没有用
life: 100,
@@ -4584,5 +4624,3 @@ _TD.a.push(function (TD) {
};
}); // _TD.a.push end
-
-
diff --git a/public/tower-defense/td-pkg-zh.js b/public/tower-defense/td-pkg-zh.js
index 02ce366..ea533c6 100644
--- a/public/tower-defense/td-pkg-zh.js
+++ b/public/tower-defense/td-pkg-zh.js
@@ -3824,7 +3824,6 @@ _TD.a.push(function (TD) {
"laser_gun": {
damage: 25,
range: 6,
- max_range: 10,
speed: 20,
// bullet_speed: 10, // laser_gun 的 bullet_speed 属性没有用
life: 100,
diff --git a/public/tower-defense/td.html b/public/tower-defense/td.html
index 2488021..ef3dfeb 100644
--- a/public/tower-defense/td.html
+++ b/public/tower-defense/td.html
@@ -95,7 +95,20 @@
for (var i = 0; i < map.buildings.length; i++) {
var b = map.buildings[i];
if (!b || !b.grid) continue;
- buildings.push({ type: b.type, mx: b.grid.mx, my: b.grid.my, level: b.level, money: b.money });
+ buildings.push({
+ type: b.type,
+ mx: b.grid.mx,
+ my: b.grid.my,
+ level: b.level,
+ money: b.money,
+ killed: b.killed,
+ damage: b.damage,
+ range: b.range,
+ speed: b.speed,
+ life: b.life,
+ shield: b.shield,
+ upgrade_records: b._upgrade_records || null
+ });
}
}
@@ -190,8 +203,36 @@
grid.addBuilding(bi.type);
var b = grid.building;
if (b) {
- if (typeof bi.level !== 'undefined') b.level = bi.level;
+ var hasSavedBuildingAttrs = (
+ typeof bi.damage !== 'undefined' ||
+ typeof bi.range !== 'undefined' ||
+ typeof bi.speed !== 'undefined' ||
+ typeof bi.life !== 'undefined' ||
+ typeof bi.shield !== 'undefined'
+ );
+
+ if (!hasSavedBuildingAttrs && typeof bi.level !== 'undefined' && bi.level > 0 && typeof b.upgrade === 'function') {
+ for (var ul = 0; ul < bi.level; ul++) b.upgrade();
+ } else if (typeof bi.level !== 'undefined') {
+ b.level = bi.level;
+ }
+
+ if (typeof bi.damage !== 'undefined') b.damage = bi.damage;
+ if (typeof bi.range !== 'undefined') b.range = bi.range;
+ if (typeof bi.speed !== 'undefined') b.speed = bi.speed;
+ if (typeof bi.life !== 'undefined') b.life = bi.life;
+ if (typeof bi.shield !== 'undefined') b.shield = bi.shield;
if (typeof bi.money !== 'undefined') b.money = bi.money;
+ if (typeof bi.killed !== 'undefined') b.killed = bi.killed;
+ if (bi.upgrade_records) {
+ b._upgrade_records = {};
+ for (var rk in bi.upgrade_records) {
+ if (Object.prototype.hasOwnProperty.call(bi.upgrade_records, rk)) {
+ b._upgrade_records[rk] = bi.upgrade_records[rk];
+ }
+ }
+ }
+ b.range_px = b.range * TD.grid_size;
b.updateBtnDesc && b.updateBtnDesc();
}
}