初次提交

This commit is contained in:
李玉东 2025-09-14 18:25:11 +08:00
parent 8012dca7bb
commit 203139a7eb
2 changed files with 26 additions and 3 deletions

View File

@ -56,10 +56,10 @@ public class ScenarioTaskServiceImpl extends
public void start(Integer id, String roomId) { public void start(Integer id, String roomId) {
Scenario currentScenario = scenarioService.getScenarioById(id); Scenario currentScenario = scenarioService.getScenarioById(id);
//想定当前持续时间 //想定当前持续时间
redisUtil.hset(roomId + "_" + id, "duringTime", 0); redisUtil.hset(roomId + "_" + id, "duringTime", "0");
//想定当前状态 //想定当前状态
redisUtil.hset(roomId + "_" + id, "states", "running"); redisUtil.hset(roomId + "_" + id, "states", "running");
//想定物资信息

View File

@ -41,7 +41,9 @@ public class TaskLogicServiceImpl implements TaskLogicService {
private final WebClient webClient = WebClient.create(); private final WebClient webClient = WebClient.create();
@Resource @Resource
private StatisticService statisticService; private StatisticService statisticService;
private final double fuelUseUpPerSecond = 0.1; private final static double fuelUseUpPerSecond = 0.1;
private final static double medicalUseUpPerSecond = 0.1;
private final static double ammunitionUsePerSecond = 0.1;
@Override @Override
public void handleMoveTask(ScenarioTask scenarioTask, Scenario currentScenario, String roomId, public void handleMoveTask(ScenarioTask scenarioTask, Scenario currentScenario, String roomId,
@ -136,6 +138,20 @@ public class TaskLogicServiceImpl implements TaskLogicService {
@Override @Override
public void handleBattleTask(ScenarioTask task, Scenario scenario, String roomId) { public void handleBattleTask(ScenarioTask task, Scenario scenario, String roomId) {
StatisticBean statistic = getStatistic(task, scenario, roomId);
int duringTime = getCurrentDuringTime(scenario, roomId);
long seconds =
duringTime - Duration.between(task.getStartTime(), scenario.getStartTime())
.getSeconds();
if (seconds > 0) {
statistic.getMedical()
.setCurrent(statistic.getMedical().getTotal() - seconds * medicalUseUpPerSecond);
statistic.getAmmunition()
.setCurrent(statistic.getAmmunition().getTotal() - seconds * ammunitionUsePerSecond);
setStatistic(task, scenario, roomId, statistic);
}
} }
@ -166,6 +182,13 @@ public class TaskLogicServiceImpl implements TaskLogicService {
StatisticBean bean) { StatisticBean bean) {
redisUtil.hset(roomId + "_" + scenario.getId(), redisUtil.hset(roomId + "_" + scenario.getId(),
"resourceId_statistic_" + task.getResourceId(), bean); "resourceId_statistic_" + task.getResourceId(), bean);
//推送到前端
ResponseCmdInfo<Map<String, Object>> cmdInfo = new ResponseCmdInfo<>();
Map<String, Object> dataMap = new HashMap<>();
cmdInfo.setData(dataMap);
dataMap.put("resourceId", task.getResourceId());
dataMap.put("statistic", bean);
Global.sendCmdInfoQueue.add(cmdInfo);
} }
private int getCurrentDuringTime(Scenario scenario, String roomId) { private int getCurrentDuringTime(Scenario scenario, String roomId) {