mirror of
https://github.com/gooba42/adventureland.git
synced 2026-10-14 18:39:27 -05:00
add from and to for item splits
as well as some minor refactoring
This commit is contained in:
+17
-13
@@ -6724,23 +6724,17 @@ function init_io() {
|
|||||||
socket.emit("lostandfound", cfound);
|
socket.emit("lostandfound", cfound);
|
||||||
});
|
});
|
||||||
socket.on("split", function (data) {
|
socket.on("split", function (data) {
|
||||||
var player = players[socket.id];
|
const player = players[socket.id];
|
||||||
var num = data.num;
|
const item = player.items[data.num];
|
||||||
var item = player.items[data.num];
|
|
||||||
var quantity = min(max(parseInt(data.quantity) || 0, 1), (item && item.q) || 1);
|
|
||||||
if (!item) {
|
if (!item) {
|
||||||
return fail_response("no_item");
|
return fail_response("no_item");
|
||||||
}
|
}
|
||||||
if (!G.items[item.name].s) {
|
if (!G.items[item.name].s) {
|
||||||
return fail_response("invalid");
|
return fail_response("invalid");
|
||||||
}
|
}
|
||||||
quantity = min(quantity, G.items[item.name].s || 1);
|
|
||||||
if (!player.esize) {
|
if (!player.esize) {
|
||||||
return fail_response("cant_space");
|
return fail_response("cant_space");
|
||||||
}
|
}
|
||||||
if (item.q == quantity) {
|
|
||||||
return success_response();
|
|
||||||
}
|
|
||||||
if (item.name == "placeholder") {
|
if (item.name == "placeholder") {
|
||||||
return fail_response("item_placeholder");
|
return fail_response("item_placeholder");
|
||||||
}
|
}
|
||||||
@@ -6751,22 +6745,32 @@ function init_io() {
|
|||||||
return fail_response("item_blocked");
|
return fail_response("item_blocked");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let quantity = min(max(parseInt(data.quantity) || 0, 1), (item && item.q) || 1);
|
||||||
|
quantity = min(quantity, G.items[item.name].s);
|
||||||
|
if (quantity >= item.q) {
|
||||||
|
// They requested to split the whole stack...
|
||||||
|
return success_response({ from: data.num, to: data.num, q: quantity });
|
||||||
|
}
|
||||||
|
|
||||||
consume(player, data.num, quantity);
|
consume(player, data.num, quantity);
|
||||||
|
|
||||||
var new_item = cache_item(item);
|
const new_item = cache_item(item);
|
||||||
if (item.q) {
|
if (item.q) {
|
||||||
new_item.q = quantity;
|
new_item.q = quantity;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < player.isize; i++) {
|
let num;
|
||||||
if (!player.items[i]) {
|
for (let i = 0; i < player.isize; i++) {
|
||||||
|
if (player.items[i]) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
player.items[i] = new_item;
|
player.items[i] = new_item;
|
||||||
player.citems[i] = cache_item(new_item);
|
player.citems[i] = cache_item(new_item);
|
||||||
|
num = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
resend(player, "reopen");
|
resend(player, "reopen");
|
||||||
success_response();
|
success_response({ from: data.num, to: num, q: quantity });
|
||||||
});
|
});
|
||||||
socket.on("sell", function (data) {
|
socket.on("sell", function (data) {
|
||||||
var player = players[socket.id];
|
var player = players[socket.id];
|
||||||
|
|||||||
Reference in New Issue
Block a user