挂机奖励
parent
86858a8c25
commit
b36f434768
|
@ -324,17 +324,17 @@ public class CombatLogic {
|
|||
public void takeAdventureReward(ISession session,int type,int position) throws Exception {
|
||||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
CommonProto.Drop.Builder advetureReward=null;
|
||||
Map<Integer, CommonProto.Drop> adventureFastReward =null;
|
||||
if(type == 2){
|
||||
advetureReward = getAdventureReward(user, position);
|
||||
adventureFastReward = getAdventureReward(user, position);
|
||||
}else{
|
||||
advetureReward = getAdventureFastReward(user,SGameSetting.getGameSetting().getAdventureFastBattle());
|
||||
adventureFastReward = getAdventureFastReward(user, SGameSetting.getGameSetting().getAdventureFastBattle());
|
||||
}
|
||||
FightInfoProto.TakeAventureRewardResponse build = FightInfoProto.TakeAventureRewardResponse.newBuilder().setDrop(advetureReward).build();
|
||||
FightInfoProto.TakeAventureRewardResponse build = FightInfoProto.TakeAventureRewardResponse.newBuilder().setDrop(adventureFastReward.get(1)).setRandomDrop(adventureFastReward.get(2)).build();
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ADVENTURE_REWARD_RESPONSE_VALUE,build,true);
|
||||
}
|
||||
|
||||
private CommonProto.Drop.Builder getAdventureReward(User user, int position) throws Exception {
|
||||
private Map<Integer,CommonProto.Drop> getAdventureReward(User user, int position) throws Exception {
|
||||
AdventureManager adventureManager = user.getAdventureManager();
|
||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||
Map<Integer, AdventureStateInfo> adventureStateInfoMap = adventureManager.getAdventureStateInfoMap();
|
||||
|
@ -342,6 +342,17 @@ public class CombatLogic {
|
|||
SGameSetting gameSetting = SGameSetting.getGameSetting();
|
||||
int adventureRefresh = gameSetting.getAdventureRefresh();
|
||||
int adventureOffline = gameSetting.getAdventureOffline();
|
||||
Map<Integer, Integer> baseItemMap = new HashMap<>();
|
||||
Map<Integer, Integer> baseCardMap = new HashMap<>();
|
||||
Map<Integer, Integer> baseEquipMap = new HashMap<>();
|
||||
Map<Integer,Integer> baseRandomMap = new HashMap<>();
|
||||
|
||||
Map<Integer, Integer> randomItemMap = new HashMap<>();
|
||||
Map<Integer, Integer> randomCardMap = new HashMap<>();
|
||||
Map<Integer, Integer> randomEquipMap = new HashMap<>();
|
||||
Map<Integer,Integer> randomRandomMap = new HashMap<>();
|
||||
CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder();
|
||||
CommonProto.Drop.Builder randomBuilder = CommonProto.Drop.newBuilder();
|
||||
for(AdventureStateInfo adventureStateInfoTmp:adventureStateInfoMap.values()) {
|
||||
int positionTmp = adventureStateInfoTmp.getPosition();
|
||||
if (position != -1 && positionTmp != position) {
|
||||
|
@ -355,32 +366,58 @@ public class CombatLogic {
|
|||
SAdventureConfig sAdventureConfig = SAdventureConfig.getConfig().get(positionTmp);
|
||||
int baseRewardGroup[] = sAdventureConfig.getBaseRewardGroup();
|
||||
int[][] randomRewardGroup = sAdventureConfig.getRandomRewardGroup();
|
||||
ItemUtil.activityDrop(user, dropBuilder, new int[]{baseRewardGroup[adventureStateInfoTmp.getLevel()-1]}, times);
|
||||
ItemUtil.activityDrop(user, dropBuilder, randomRewardGroup[adventureStateInfoTmp.getLevel()-1], times);
|
||||
ItemUtil.combineReward(new int[]{baseRewardGroup[adventureStateInfoTmp.getLevel()-1]}, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
int timesTemp =times;
|
||||
while (timesTemp-->0){
|
||||
ItemUtil.combineReward(randomRewardGroup[adventureStateInfoTmp.getLevel()-1], 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
return dropBuilder;
|
||||
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||
Map<Integer, CommonProto.Drop> result = new HashMap<>(2);
|
||||
result.put(1,baseBuilder.build());
|
||||
result.put(2,randomBuilder.build());
|
||||
return result;
|
||||
}
|
||||
|
||||
private CommonProto.Drop.Builder getAdventureFastReward(User user,int timeDuration) throws Exception {
|
||||
private Map<Integer,CommonProto.Drop> getAdventureFastReward(User user,int timeDuration) throws Exception {
|
||||
AdventureManager adventureManager = user.getAdventureManager();
|
||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||
Map<Integer, AdventureStateInfo> adventureStateInfoMap = adventureManager.getAdventureStateInfoMap();
|
||||
int now = (int)(System.currentTimeMillis()/1000);
|
||||
SGameSetting gameSetting = SGameSetting.getGameSetting();
|
||||
int adventureRefresh = gameSetting.getAdventureRefresh();
|
||||
int times = (now - timeDuration) / adventureRefresh;
|
||||
Map<Integer, Integer> baseItemMap = new HashMap<>();
|
||||
Map<Integer, Integer> baseCardMap = new HashMap<>();
|
||||
Map<Integer, Integer> baseEquipMap = new HashMap<>();
|
||||
Map<Integer,Integer> baseRandomMap = new HashMap<>();
|
||||
|
||||
Map<Integer, Integer> randomItemMap = new HashMap<>();
|
||||
Map<Integer, Integer> randomCardMap = new HashMap<>();
|
||||
Map<Integer, Integer> randomEquipMap = new HashMap<>();
|
||||
Map<Integer,Integer> randomRandomMap = new HashMap<>();
|
||||
CommonProto.Drop.Builder baseBuilder = CommonProto.Drop.newBuilder();
|
||||
CommonProto.Drop.Builder randomBuilder = CommonProto.Drop.newBuilder();
|
||||
for(AdventureStateInfo adventureStateInfoTmp:adventureStateInfoMap.values()) {
|
||||
int positionTmp = adventureStateInfoTmp.getPosition();
|
||||
if (times > 0) {
|
||||
SAdventureConfig sAdventureConfig = SAdventureConfig.getConfig().get(positionTmp);
|
||||
int baseRewardGroup[] = sAdventureConfig.getBaseRewardGroup();
|
||||
int[][] randomRewardGroup = sAdventureConfig.getRandomRewardGroup();
|
||||
ItemUtil.activityDrop(user, dropBuilder, new int[]{baseRewardGroup[adventureStateInfoTmp.getLevel()-1]}, times);
|
||||
ItemUtil.activityDrop(user, dropBuilder, randomRewardGroup[adventureStateInfoTmp.getLevel()-1], times);
|
||||
ItemUtil.combineReward(new int[]{baseRewardGroup[adventureStateInfoTmp.getLevel()-1]}, times,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
int timesTemp =times;
|
||||
while (timesTemp-->0){
|
||||
ItemUtil.combineReward(randomRewardGroup[adventureStateInfoTmp.getLevel()-1], 1f,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||
}
|
||||
}
|
||||
}
|
||||
return dropBuilder;
|
||||
ItemUtil.drop(user,baseBuilder,baseItemMap,baseCardMap,baseEquipMap,baseRandomMap);
|
||||
ItemUtil.drop(user,randomBuilder,randomItemMap,randomCardMap,randomEquipMap,randomRandomMap);
|
||||
Map<Integer, CommonProto.Drop> result = new HashMap<>(2);
|
||||
result.put(1,baseBuilder.build());
|
||||
result.put(2,randomBuilder.build());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -70,6 +70,17 @@ public class ItemUtil {
|
|||
addCard(user, cardMap, dropBuilder);
|
||||
addEquip(user, equipMap, dropBuilder);
|
||||
}
|
||||
|
||||
public static void getactivityDropInfo(int[] dropGroupIds, float dropRatio, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap ,Map<Integer, Integer> randomMap) throws Exception {
|
||||
for (int dropGroupId : dropGroupIds) {
|
||||
SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId);
|
||||
if (sRewardGroup == null) {
|
||||
continue;
|
||||
}
|
||||
selectDrop(sRewardGroup, itemMap, cardMap, equipMap, randomMap, dropRatio);
|
||||
}
|
||||
}
|
||||
|
||||
//掉落组概率
|
||||
public static CommonProto.Drop.Builder drop(User user, Map<int [],Float> dropGroupAndRatioMap) throws Exception {
|
||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||
|
@ -115,7 +126,6 @@ public class ItemUtil {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param user
|
||||
* @param dropGroupIds
|
||||
* @param dropRatio
|
||||
* @return
|
||||
|
@ -136,6 +146,23 @@ public class ItemUtil {
|
|||
return getReward(itemMap,cardMap,equipMap,randomMap);
|
||||
}
|
||||
|
||||
public static void combineReward(int[] dropGroupIds,float dropRatio, Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap){
|
||||
for (int dropGroupId :dropGroupIds){
|
||||
SRewardGroup sRewardGroup = SRewardGroup.getsRewardItemMap().get(dropGroupId);
|
||||
if (sRewardGroup == null){
|
||||
continue;
|
||||
}
|
||||
selectDrop(sRewardGroup,itemMap,cardMap,equipMap,randomMap,dropRatio);
|
||||
}
|
||||
}
|
||||
|
||||
public static void drop(User user,CommonProto.Drop.Builder dropBuilder,Map<Integer, Integer> itemMap, Map<Integer, Integer> cardMap, Map<Integer, Integer> equipMap, Map<Integer, Integer> randomMap) throws Exception {
|
||||
useRandomItem(user, randomMap);
|
||||
addItem(user, itemMap, dropBuilder);
|
||||
addCard(user, cardMap, dropBuilder);
|
||||
addEquip(user, equipMap, dropBuilder);
|
||||
}
|
||||
|
||||
private static String getReward(Map<Integer, Integer> itemMap,Map<Integer, Integer> cardMap,Map<Integer, Integer> equipMap, Map<Integer,Integer> randomMap) {
|
||||
StringBuilder reward= new StringBuilder();
|
||||
for (Map.Entry<Integer, Integer> entry : itemMap.entrySet()){
|
||||
|
|
Loading…
Reference in New Issue