diff --git a/src/main/java/com/hivekion/room/bean/BattleRootTask.java b/src/main/java/com/hivekion/room/bean/BattleRootTask.java index 7170479..b14dae1 100644 --- a/src/main/java/com/hivekion/room/bean/BattleRootTask.java +++ b/src/main/java/com/hivekion/room/bean/BattleRootTask.java @@ -2,6 +2,7 @@ package com.hivekion.room.bean; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.extra.spring.SpringUtil; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.hivekion.Global; import com.hivekion.common.entity.ResponseCmdInfo; @@ -41,8 +42,8 @@ public class BattleRootTask extends AbtParentTask { private ISupplierRequestService supplierRequestService; - private static final Double TEAM_SPREED = 1.2D; - private static final Double PERSON_SPREED = 3D; + private static final Integer DEATH_SPREED = 3; + private static final Integer INJURED_SPREED = 3; private static final Double AMMUNITION_SPREED = 2.6D; private static final Double FOOD_SPREED = 2.3D; private static final Double WATER_SPREED = 3.6D; @@ -84,30 +85,33 @@ public class BattleRootTask extends AbtParentTask { // statisticBean.getAmmunition().getCurrent() //初始化本次战斗任务各种资源数 - battleParams.put("ammunition",Double.valueOf(statisticBean.getAmmunition().getCurrent()).toString()); battleParams.put("food",Double.valueOf(statisticBean.getFood().getCurrent()).toString()); battleParams.put("fuel",Double.valueOf(statisticBean.getFuel().getCurrent()).toString()); battleParams.put("medical",Double.valueOf(statisticBean.getMedical().getCurrent()).toString()); battleParams.put("water",Double.valueOf(statisticBean.getWater().getCurrent()).toString()); - battleParams.put("person",Double.valueOf(statisticBean.getPerson().getCurrent()).toString()); + battleParams.put("death",Double.valueOf(statisticBean.getPerson().getDeath()).toString()); + battleParams.put("injured",Double.valueOf(statisticBean.getPerson().getInjured()).toString()); battleParams.put("teamLat",statisticBean.getTeam().getLat().toString()); battleParams.put("teamLng",statisticBean.getTeam().getLng().toString()); battleParams.put("duringTime",Long.valueOf(initDuringTime).toString()); redisUtil.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(),battleParams); log.info("===============================初始化本次战斗任务各种资源数===================================="); double suppleAmount =statisticBean.getAmmunition().getTotal(); - double supplePerson =statisticBean.getPerson().getTotal(); + int suppleDeath =statisticBean.getPerson().getDeath(); + int suppleInjured =statisticBean.getPerson().getInjured(); final Map suppleFlagMap = new HashMap<>(); suppleFlagMap.put("ammunition",false); - suppleFlagMap.put("person",false); + suppleFlagMap.put("death",false); + suppleFlagMap.put("injured",false); //定时检查统计各种资源消耗量 this.createBattleTaskOnTimingHandle(new BizTaskOnTiming() { @Override public void execTask() { log.info("===============================定时检查统计各种资源消耗量 begin===================================="); - Double personConsume = null; + Long deathConsume = null; + Long injuredConsume = null; Double ammunitionConsume = null; Double foodConsume = null; Double waterConsume = null; @@ -126,11 +130,13 @@ public class BattleRootTask extends AbtParentTask { double fuel = Double.valueOf(battleParams.get("fuel").toString()); double medical = Double.valueOf(battleParams.get("medical").toString()); double water = Double.valueOf(battleParams.get("water").toString()); - double person = Double.valueOf(battleParams.get("person").toString()); + long death = Long.valueOf(battleParams.get("death").toString()); + long injured = Long.valueOf(battleParams.get("injured").toString()); teamLat = battleParams.get( "teamLat").toString(); teamLng = battleParams.get( "teamLng").toString(); // - personConsume = intervalDuringTime * PERSON_SPREED; + deathConsume = DEATH_SPREED * intervalDuringTime; + injuredConsume = INJURED_SPREED * intervalDuringTime; ammunitionConsume = intervalDuringTime * AMMUNITION_SPREED; foodConsume = intervalDuringTime * FOOD_SPREED; waterConsume = intervalDuringTime * WATER_SPREED; @@ -142,7 +148,8 @@ public class BattleRootTask extends AbtParentTask { battleParams.put("fuel",Double.valueOf(fuel - fuelConsume).toString()); battleParams.put("medical",Double.valueOf(medical - medicalConsume).toString()); battleParams.put("water",Double.valueOf(water - waterConsume).toString()); - battleParams.put("person",Double.valueOf(person - personConsume).toString()); + battleParams.put("death",Long.valueOf(death - deathConsume).toString()); + battleParams.put("injured",Long.valueOf(injured - injuredConsume).toString()); battleParams.put("duringTime",Long.valueOf(duringTime).toString()); redisUtil.hset(scenarioTask.getScenarioId() + "-" + roomId + "-" + scenarioTask.getResourceId(), battleParams); }catch (Exception ex){ @@ -151,7 +158,8 @@ public class BattleRootTask extends AbtParentTask { try { //推送消耗數據 ResponseCmdInfo sendConsumeMsg = new ResponseCmdInfo<>(); - jsonObject.put("personConsume", personConsume); + jsonObject.put("deathConsume", deathConsume); + jsonObject.put("injuredConsume", injuredConsume); jsonObject.put("ammunitionConsume", ammunitionConsume); jsonObject.put("foodConsume", foodConsume); jsonObject.put("waterConsume", waterConsume); @@ -167,9 +175,10 @@ public class BattleRootTask extends AbtParentTask { try { LocalDateTime currentDateTime = new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); - String person = SpringUtil.getBean(Environment.class).getProperty("battle.person.warn"); + String death = SpringUtil.getBean(Environment.class).getProperty("battle.death.warn"); + String injured = SpringUtil.getBean(Environment.class).getProperty("battle.injured.warn"); String ammunition = SpringUtil.getBean(Environment.class).getProperty("battle.ammunition.warn"); - log.info("===========person ammunition======={}====={}========",person,ammunition); + log.info("===========person ammunition==={}===={}====={}========",death,injured,ammunition); // String food = SpringUtil.getBean(Environment.class).getProperty("battle.food.warn"); // String water = SpringUtil.getBean(Environment.class).getProperty("battle.water.warn"); // String fuel = SpringUtil.getBean(Environment.class).getProperty("battle.fuel.warn"); @@ -180,7 +189,7 @@ public class BattleRootTask extends AbtParentTask { SupplierRequest supplierRequest = new SupplierRequest(); supplierRequest.setId(IdUtils.simpleUUID()); supplierRequest.setFromResourceId(scenarioTask.getResourceId()); - supplierRequest.setSupplierNum(suppleAmount); + supplierRequest.setSupplierNum(String.valueOf(suppleAmount)); supplierRequest.setSupplierType("ammunition"); supplierRequest.setGeneralTime(currentDateTime); supplierRequest.setLat(jsonObject.get("teamLat").toString()); @@ -188,17 +197,29 @@ public class BattleRootTask extends AbtParentTask { supplierRequestService.save(supplierRequest); suppleFlagMap.put("ammunition",true) ; } - if(Double.valueOf(battleParams.get("person").toString()) <= Double.valueOf(person) && suppleFlagMap.get("person") == false){ + if(Long.valueOf(battleParams.get("death").toString()) <= Long.valueOf(death) && suppleFlagMap.get("death") == false){ SupplierRequest supplierRequest = new SupplierRequest(); supplierRequest.setId(IdUtils.simpleUUID()); supplierRequest.setFromResourceId(scenarioTask.getResourceId()); - supplierRequest.setSupplierNum(supplePerson); - supplierRequest.setSupplierType("person"); + supplierRequest.setSupplierNum(String.valueOf(suppleDeath)); + supplierRequest.setSupplierType("death"); supplierRequest.setGeneralTime(currentDateTime); supplierRequest.setLat(jsonObject.get("teamLat").toString()); supplierRequest.setLng(jsonObject.get("teamLng").toString()); supplierRequestService.save(supplierRequest); - suppleFlagMap.put("person",true) ; + suppleFlagMap.put("death",true) ; + } + if(Long.valueOf(battleParams.get("injured").toString()) <= Long.valueOf(injured) && suppleFlagMap.get("injured") == false){ + SupplierRequest supplierRequest = new SupplierRequest(); + supplierRequest.setId(IdUtils.simpleUUID()); + supplierRequest.setFromResourceId(scenarioTask.getResourceId()); + supplierRequest.setSupplierNum(String.valueOf(suppleInjured)); + supplierRequest.setSupplierType("injured"); + supplierRequest.setGeneralTime(currentDateTime); + supplierRequest.setLat(jsonObject.get("teamLat").toString()); + supplierRequest.setLng(jsonObject.get("teamLng").toString()); + supplierRequestService.save(supplierRequest); + suppleFlagMap.put("injured",true) ; } }catch (Exception ex){ ex.printStackTrace();