0127挂机奖励2.0

back_recharge
duhui 2021-01-22 16:18:03 +08:00
parent 0a6a81c40c
commit 9317e9ea24
2 changed files with 19 additions and 20 deletions

View File

@ -4,6 +4,7 @@ import com.ljsd.common.mogodb.MongoBase;
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import config.SGameSetting;
import manager.STableManager;
import util.TimeUtils;
import java.util.HashMap;
import java.util.HashSet;
@ -14,7 +15,7 @@ public class MainLevelManager extends MongoBase {
private int fightId; // 当前关卡id
private int state; //状态 -1表示有等级卡
private int startTime;
private int startTime;// 给前端展示的挂机时长
private int lastTime; //上一个关卡记时时间
private Map<Integer,Integer> fightStateInfo = new HashMap<>();
private Map<Integer,HashSet<String>> bossIds = new HashMap<>();
@ -27,28 +28,35 @@ public class MainLevelManager extends MongoBase {
public void updateStateInfo(){
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
// 默认刷新时间 60
int adventureRefresh = gameSetting.getAdventureRefresh();
int timeDuration = (int)(System.currentTimeMillis()/1000) - lastTime;
// 当前时间-最后领取时间
int timeDuration = TimeUtils.nowInt() - lastTime;
// 距离上次领取时间算出次数
int times = timeDuration / adventureRefresh;
// 不足一次的随机
int mod = timeDuration % adventureRefresh;
// 冒险最大时长小时【12】*60*60/领取单位分【60】
int adventureOffline = gameSetting.getAdventureOffline()*60*60/adventureRefresh;
// 先算余数,不足一次的补足一次
if(mod!=0){
times += 1;
startTime-=mod;
updateString("startTime",startTime);
}
// 不足一次的补足一次
if(times<1){
times=1;
startTime-=adventureRefresh;
updateString("startTime",startTime);
}
int adventurenTimes = ((int) (System.currentTimeMillis() / 1000) - lastTime) / STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getAdventureRefresh();
if(adventureOffline<=adventurenTimes){
// 更新时间
if(adventureOffline <= times){
times=0;
}else {
// 修改最后时间
updateString("lastTime",TimeUtils.nowInt()+times*adventureRefresh);
}
fightStateInfo.put(fightId,times);
updateString("fightStateInfo." + fightId,times);
}
public void setState(int state){
@ -62,7 +70,7 @@ public class MainLevelManager extends MongoBase {
}
this.fightId = fightId;
this.state = state;
this.lastTime = (int)(System.currentTimeMillis()/1000);
this.lastTime = TimeUtils.nowInt();
updateString("fightId",fightId);
updateString("state",state);
updateString("lastTime",lastTime);
@ -70,7 +78,6 @@ public class MainLevelManager extends MongoBase {
public void afterTakeStateReward(boolean needReset,int lastTakes,int time){
fightStateInfo.clear();
int now = (int)(System.currentTimeMillis()/1000);
SGameSetting gameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
if(needReset){
this.startTime = time;

View File

@ -947,16 +947,12 @@ public class CombatLogic {
if (!viewBaseReward){
ItemUtil.combineRewardByMainLine(user,true,sMainLevelConfig.getRandomReward(), times,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,itemObj,BIReason.ADVENTURE_RANDOM_REWARDD);
}
/*while (!viewBaseReward&&timesTemp-->0){
ItemUtil.combineReward(user,true,sMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,itemObj,BIReason.ADVENTURE_RANDOM_REWARDD);
}*/
takeTimes+=times;
}
int fightId = mainLevelManager.getFightId();
SMainLevelConfig targetMainLevelConfig = SMainLevelConfig.config.get(fightId);
int lastTime = mainLevelManager.getLastTime();
// int now = (int) (System.currentTimeMillis() / 1000);
int times = (time - lastTime)/STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getAdventureRefresh();
int times = (time - lastTime)/gameSetting.getAdventureRefresh();
int maxTimes = adventureOffline - takeTimes;
int lastTimeTakes=0;
boolean reset = maxTimes<times;
@ -967,10 +963,6 @@ public class CombatLogic {
if (!viewBaseReward){
ItemUtil.combineRewardByMainLine(user,true,targetMainLevelConfig.getRandomReward(), times,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,itemObj,BIReason.ADVENTURE_RANDOM_REWARDD);
}
/*int timesTemp =times;
while (!viewBaseReward&&timesTemp-->0){
ItemUtil.combineReward(user,true,targetMainLevelConfig.getRandomReward(), 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap,itemObj,BIReason.ADVENTURE_RANDOM_REWARDD);
}*/
lastTimeTakes=times;
}
ItemUtil.extraAddItem(user,baseItemMap,BIReason.ADVENTURE_BASE_REWARD);