/*
* ioGame
* Copyright (C) 2021 - 2023 渔民小镇 (262610965@qq.com、luoyizhu@gmail.com) . All Rights Reserved.
* # iohao.com . 渔民小镇
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package com.iohao.mmo.client.input;
import com.iohao.game.action.skeleton.protocol.wrapper.ByteValueList;
import com.iohao.game.action.skeleton.protocol.wrapper.StringValue;
import com.iohao.game.action.skeleton.protocol.wrapper.StringValueList;
import com.iohao.game.action.skeleton.protocol.wrapper.WrapperKit;
import com.iohao.game.external.client.AbstractInputCommandRegion;
import com.iohao.game.external.client.command.InputRequestData;
import com.iohao.game.external.client.kit.ScannerKit;
import com.iohao.game.external.client.kit.SplitParam;
import com.iohao.mmo.common.provide.kit.JsonKit;
import com.iohao.mmo.equip.cmd.EquipCmd;
import com.iohao.mmo.equip.proto.*;
import lombok.extern.slf4j.Slf4j;
import java.util.Arrays;
import java.util.List;
/**
* @author 唐斌
* @date 2023-07-30
*/
@Slf4j
public class EquipInputCommandRegion extends AbstractInputCommandRegion {
@Override
public void initInputCommand() {
this.inputCommandCreate.cmd = EquipCmd.cmd;
this.inputCommandCreate.cmdName = "装备模块";
request();
listen();
}
private void listen() {
}
private void request() {
InputRequestData inputRequestData;
// 10-1 获取装备列表信息
ofCommand(EquipCmd.getEquipList).callback(ByteValueList.class, result -> {
List value = result.toList(EquipMessage.class);
log.info("装备列表信息 : {}", JsonKit.toJsonString(value));
}).setDescription("获取装备列表信息");
// 10-2 查询装备信息
inputRequestData = () -> {
ScannerKit.log(() -> log.info("请输入要查询的装备id"));
String id = ScannerKit.nextLine();
// 请求参数
StringValue stringValue = StringValue.of(id);
return stringValue;
};
ofCommand(EquipCmd.getEquip).callback(EquipMessage.class, result -> {
EquipMessage value = result.getValue();
log.info("装备属性信息 : {}", JsonKit.toJsonString(value));
}).setDescription("查询装备信息").setInputRequestData(inputRequestData);
// 10-3 重新随机基础属性
inputRequestData = () -> {
ScannerKit.log(() -> log.info("请输入装备id"));
String id = ScannerKit.nextLine();
// 请求参数
StringValue stringValue = StringValue.of(id);
return stringValue;
};
ofCommand(EquipCmd.resetEquipBasic).callback(EquipShowMessage.class, result -> {
EquipShowMessage value = result.getValue();
log.info("装备信息 : {}", JsonKit.toJsonString(value));
}).setDescription("重新随机装备基础属性").setInputRequestData(inputRequestData);
// 10-4 重新随机词条
inputRequestData = () -> {
ScannerKit.log(() -> log.info("请输入装备id和极品概率增益百分比,格式 [装备id-增益百分比]"));
String inputValue = ScannerKit.nextLine("1-0.3");
SplitParam param = new SplitParam(inputValue);
String id = param.getString(0);
String excellentRateString = param.getString(1);
EquipResetMessage equipResetMessage = new EquipResetMessage();
equipResetMessage.id = id;
equipResetMessage.excellentRateString = excellentRateString;
return equipResetMessage;
};
ofCommand(EquipCmd.resetEquip).callback(EquipShowMessage.class, result -> {
EquipShowMessage value = result.getValue();
log.info("装备属性信息 : {}", JsonKit.toJsonString(value));
}).setDescription("重新随机词条").setInputRequestData(inputRequestData);
// 10-5 批量删除装备
inputRequestData = () -> {
ScannerKit.log(() -> log.info("请输入要删除的装备id,格式 [装备1id-装备2id]"));
String ids = ScannerKit.nextLine("1-1");
List idList = Arrays.asList(ids.split("-"));
// 请求参数
StringValueList listValue = WrapperKit.ofListStringValue(idList);
return listValue;
};
ofCommand(EquipCmd.delEquipBatch).callback(EquipMessage.class, result -> {
EquipMessage value = result.getValue();
log.info("装备属性信息 : {}", JsonKit.toJsonString(value));
}).setDescription("批量删除装备").setInputRequestData(inputRequestData);
// 10-13 根据装备库列表批量随机新的装备
inputRequestData = () -> {
ScannerKit.log(() -> log.info(
"请输入装备库itemTypeId列表,格式 [装备库itemTypeId1-装备库itemTypeId2-装备库itemTypeId3...]"));
String itemTypeIds = ScannerKit.nextLine("1-1");
List itemTypeIdList = Arrays.asList(itemTypeIds.split("-"));
// 请求参数
StringValueList listValue = WrapperKit.ofListStringValue(itemTypeIdList);
return listValue;
};
ofCommand(EquipCmd.randomEquip).callback(ByteValueList.class, result -> {
List value = result.toList(EquipShowMessage.class);
log.info("装备列表信息 : {}", JsonKit.toJsonString(value));
}).setDescription("根据装备库列表批量随机新的装备").setInputRequestData(inputRequestData);
}
}