金币经验掉落
This commit is contained in:
@@ -7,6 +7,9 @@ const gameDataModule = require('./modules/gameData');
|
||||
const fightHerosModule = require('./modules/fightHeros');
|
||||
const herosModule = require('./modules/heros');
|
||||
const inventoryModule = require('./modules/inventory');
|
||||
const itemsModule = require('./modules/items');
|
||||
const talsModule = require('./modules/tals');
|
||||
const equipsModule = require('./modules/equips');
|
||||
const responseModule = require('./modules/response');
|
||||
|
||||
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }); // 使用当前云环境
|
||||
@@ -72,13 +75,7 @@ exports.main = async (event, context) => {
|
||||
if (spendValidation) return spendValidation;
|
||||
result = await gameDataModule.spendDataField(db, wxContext.OPENID, params.field, params.amount);
|
||||
break;
|
||||
|
||||
case 'data_set':
|
||||
const setValidation = responseModule.validateRequiredParams(params, ['field', 'value']);
|
||||
if (setValidation) return setValidation;
|
||||
result = await gameDataModule.setDataField(db, wxContext.OPENID, params.field, params.value);
|
||||
break;
|
||||
|
||||
|
||||
case 'data_reset':
|
||||
result = await gameDataModule.resetData(db, wxContext.OPENID);
|
||||
break;
|
||||
@@ -159,7 +156,7 @@ exports.main = async (event, context) => {
|
||||
result = await herosModule.getOwnedHeroIds(db, wxContext.OPENID);
|
||||
break;
|
||||
|
||||
// ==================== 库存管理 (items, tals, equips) ====================
|
||||
// ==================== 库存管理 (通用接口) ====================
|
||||
case 'inventory_get':
|
||||
const invGetValidation = responseModule.validateRequiredParams(params, ['type']);
|
||||
if (invGetValidation) return invGetValidation;
|
||||
@@ -209,40 +206,139 @@ exports.main = async (event, context) => {
|
||||
result = await inventoryModule.getOwnedItems(db, wxContext.OPENID, params.type);
|
||||
break;
|
||||
|
||||
// ==================== 兼容旧接口 ====================
|
||||
case 'load':
|
||||
result = await authModule.login(db, wxContext);
|
||||
// ==================== 物品管理 (items) ====================
|
||||
case 'items_get':
|
||||
result = await itemsModule.getItems(db, wxContext.OPENID);
|
||||
break;
|
||||
|
||||
case 'save':
|
||||
// 兼容旧的保存接口
|
||||
if (params.data) {
|
||||
const tasks = [];
|
||||
if (params.data.data) tasks.push(gameDataModule.updateData(db, wxContext.OPENID, params.data.data));
|
||||
if (params.data.fight_heros) tasks.push(fightHerosModule.updateFightHeros(db, wxContext.OPENID, params.data.fight_heros));
|
||||
if (params.data.heros) {
|
||||
// 批量更新英雄
|
||||
for (const heroId in params.data.heros) {
|
||||
tasks.push(herosModule.updateHero(db, wxContext.OPENID, parseInt(heroId), params.data.heros[heroId]));
|
||||
}
|
||||
}
|
||||
if (params.data.items) tasks.push(inventoryModule.updateInventory(db, wxContext.OPENID, 'items', params.data.items));
|
||||
if (params.data.tals) tasks.push(inventoryModule.updateInventory(db, wxContext.OPENID, 'tals', params.data.tals));
|
||||
if (params.data.equips) tasks.push(inventoryModule.updateInventory(db, wxContext.OPENID, 'equips', params.data.equips));
|
||||
|
||||
const results = await Promise.all(tasks);
|
||||
const hasError = results.some(r => r.code !== 200);
|
||||
|
||||
if (hasError) {
|
||||
result = responseModule.error(-1, "Partial save failed", { results });
|
||||
} else {
|
||||
result = responseModule.success({ results }, "All data saved successfully");
|
||||
}
|
||||
} else {
|
||||
result = responseModule.badRequest("No data to save");
|
||||
}
|
||||
case 'item_get':
|
||||
const itemIdValidation = responseModule.validateRequiredParams(params, ['item_id']);
|
||||
if (itemIdValidation) return itemIdValidation;
|
||||
result = await itemsModule.getItem(db, wxContext.OPENID, params.item_id);
|
||||
break;
|
||||
|
||||
case 'item_add':
|
||||
const addItemValidation = responseModule.validateRequiredParams(params, ['item_id', 'count']);
|
||||
if (addItemValidation) return addItemValidation;
|
||||
result = await itemsModule.addItem(db, wxContext.OPENID, params.item_id, params.count);
|
||||
break;
|
||||
|
||||
case 'item_consume':
|
||||
const consumeItemValidation = responseModule.validateRequiredParams(params, ['item_id', 'count']);
|
||||
if (consumeItemValidation) return consumeItemValidation;
|
||||
result = await itemsModule.consumeItem(db, wxContext.OPENID, params.item_id, params.count);
|
||||
break;
|
||||
|
||||
case 'item_set':
|
||||
const setItemValidation = responseModule.validateRequiredParams(params, ['item_id', 'count']);
|
||||
if (setItemValidation) return setItemValidation;
|
||||
result = await itemsModule.setItem(db, wxContext.OPENID, params.item_id, params.count);
|
||||
break;
|
||||
|
||||
case 'items_update':
|
||||
const updateItemsValidation = responseModule.validateRequiredParams(params, ['data']);
|
||||
if (updateItemsValidation) return updateItemsValidation;
|
||||
const itemsMerge = params.merge !== false;
|
||||
result = await itemsModule.updateItems(db, wxContext.OPENID, params.data, itemsMerge);
|
||||
break;
|
||||
|
||||
case 'items_reset':
|
||||
result = await itemsModule.resetItems(db, wxContext.OPENID);
|
||||
break;
|
||||
|
||||
case 'items_owned':
|
||||
result = await itemsModule.getOwnedItems(db, wxContext.OPENID);
|
||||
break;
|
||||
|
||||
// ==================== 天赋管理 (tals) ====================
|
||||
case 'tals_get':
|
||||
result = await talsModule.getTals(db, wxContext.OPENID);
|
||||
break;
|
||||
|
||||
case 'tal_get':
|
||||
const talIdValidation = responseModule.validateRequiredParams(params, ['tal_id']);
|
||||
if (talIdValidation) return talIdValidation;
|
||||
result = await talsModule.getTal(db, wxContext.OPENID, params.tal_id);
|
||||
break;
|
||||
|
||||
case 'tal_add':
|
||||
const addTalValidation = responseModule.validateRequiredParams(params, ['tal_id', 'count']);
|
||||
if (addTalValidation) return addTalValidation;
|
||||
result = await talsModule.addTal(db, wxContext.OPENID, params.tal_id, params.count);
|
||||
break;
|
||||
|
||||
case 'tal_consume':
|
||||
const consumeTalValidation = responseModule.validateRequiredParams(params, ['tal_id', 'count']);
|
||||
if (consumeTalValidation) return consumeTalValidation;
|
||||
result = await talsModule.consumeTal(db, wxContext.OPENID, params.tal_id, params.count);
|
||||
break;
|
||||
|
||||
case 'tal_set':
|
||||
const setTalValidation = responseModule.validateRequiredParams(params, ['tal_id', 'count']);
|
||||
if (setTalValidation) return setTalValidation;
|
||||
result = await talsModule.setTal(db, wxContext.OPENID, params.tal_id, params.count);
|
||||
break;
|
||||
|
||||
case 'tals_update':
|
||||
const updateTalsValidation = responseModule.validateRequiredParams(params, ['data']);
|
||||
if (updateTalsValidation) return updateTalsValidation;
|
||||
const talsMerge = params.merge !== false;
|
||||
result = await talsModule.updateTals(db, wxContext.OPENID, params.data, talsMerge);
|
||||
break;
|
||||
|
||||
case 'tals_reset':
|
||||
result = await talsModule.resetTals(db, wxContext.OPENID);
|
||||
break;
|
||||
|
||||
case 'tals_owned':
|
||||
result = await talsModule.getOwnedTals(db, wxContext.OPENID);
|
||||
break;
|
||||
|
||||
// ==================== 装备管理 (equips) ====================
|
||||
case 'equips_get':
|
||||
result = await equipsModule.getEquips(db, wxContext.OPENID);
|
||||
break;
|
||||
|
||||
case 'equip_get':
|
||||
const equipIdValidation = responseModule.validateRequiredParams(params, ['equip_id']);
|
||||
if (equipIdValidation) return equipIdValidation;
|
||||
result = await equipsModule.getEquip(db, wxContext.OPENID, params.equip_id);
|
||||
break;
|
||||
|
||||
case 'equip_add':
|
||||
const addEquipValidation = responseModule.validateRequiredParams(params, ['equip_id', 'count']);
|
||||
if (addEquipValidation) return addEquipValidation;
|
||||
result = await equipsModule.addEquip(db, wxContext.OPENID, params.equip_id, params.count);
|
||||
break;
|
||||
|
||||
case 'equip_consume':
|
||||
const consumeEquipValidation = responseModule.validateRequiredParams(params, ['equip_id', 'count']);
|
||||
if (consumeEquipValidation) return consumeEquipValidation;
|
||||
result = await equipsModule.consumeEquip(db, wxContext.OPENID, params.equip_id, params.count);
|
||||
break;
|
||||
|
||||
case 'equip_set':
|
||||
const setEquipValidation = responseModule.validateRequiredParams(params, ['equip_id', 'count']);
|
||||
if (setEquipValidation) return setEquipValidation;
|
||||
result = await equipsModule.setEquip(db, wxContext.OPENID, params.equip_id, params.count);
|
||||
break;
|
||||
|
||||
case 'equips_update':
|
||||
const updateEquipsValidation = responseModule.validateRequiredParams(params, ['data']);
|
||||
if (updateEquipsValidation) return updateEquipsValidation;
|
||||
const equipsMerge = params.merge !== false;
|
||||
result = await equipsModule.updateEquips(db, wxContext.OPENID, params.data, equipsMerge);
|
||||
break;
|
||||
|
||||
case 'equips_reset':
|
||||
result = await equipsModule.resetEquips(db, wxContext.OPENID);
|
||||
break;
|
||||
|
||||
case 'equips_owned':
|
||||
result = await equipsModule.getOwnedEquips(db, wxContext.OPENID);
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
const availableCommands = [
|
||||
'login', 'user_info', 'version', 'upgrade',
|
||||
@@ -250,6 +346,9 @@ exports.main = async (event, context) => {
|
||||
'fight_heros_get', 'fight_hero_set', 'fight_heros_update', 'fight_heros_active', 'fight_heros_swap', 'fight_heros_reset',
|
||||
'heros_get', 'hero_get', 'hero_add', 'hero_update', 'hero_property_set', 'hero_levelup', 'hero_delete', 'heros_owned',
|
||||
'inventory_get', 'inventory_item_get', 'inventory_item_add', 'inventory_item_consume', 'inventory_item_set', 'inventory_update', 'inventory_reset', 'inventory_owned',
|
||||
'items_get', 'item_get', 'item_add', 'item_consume', 'item_set', 'items_update', 'items_reset', 'items_owned',
|
||||
'tals_get', 'tal_get', 'tal_add', 'tal_consume', 'tal_set', 'tals_update', 'tals_reset', 'tals_owned',
|
||||
'equips_get', 'equip_get', 'equip_add', 'equip_consume', 'equip_set', 'equips_update', 'equips_reset', 'equips_owned',
|
||||
'load', 'save'
|
||||
];
|
||||
result = responseModule.unknownCommand(cmd, availableCommands);
|
||||
|
||||
Reference in New Issue
Block a user