升级加体力

back_recharge
gaojie 2019-04-17 18:02:51 +08:00
parent 8466795034
commit 87616377a1
4 changed files with 25 additions and 22 deletions

View File

@ -1259,7 +1259,7 @@ public class MapLogic {
PlayerManager playerInfoManager = user.getPlayerInfoManager(); PlayerManager playerInfoManager = user.getPlayerInfoManager();
ItemUtil.itemCost(user, sLevelDifficultyConfig.getCost()); ItemUtil.itemCost(user, sLevelDifficultyConfig.getCost());
//玩家升级 //玩家升级
userLevelUp(playerInfoManager,sLevelDifficultyConfig.getExp()); userLevelUp(user,sLevelDifficultyConfig.getExp());
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sLevelDifficultyConfig.getRandomReward(), 1, 0); CommonProto.Drop.Builder drop = ItemUtil.drop(user, sLevelDifficultyConfig.getRandomReward(), 1, 0);
LevelDifficulty levelDifficulty = levelDifficultyManager.getLevelDifficultyInfosMap().get(fightId); LevelDifficulty levelDifficulty = levelDifficultyManager.getLevelDifficultyInfosMap().get(fightId);
if (levelDifficulty.getState() != Global.FIGHT_CLEARANCE){ if (levelDifficulty.getState() != Global.FIGHT_CLEARANCE){
@ -1309,7 +1309,8 @@ public class MapLogic {
* @param playerInfoManager * @param playerInfoManager
* @param addExp * @param addExp
*/ */
public void userLevelUp( PlayerManager playerInfoManager, int addExp) throws Exception { public void userLevelUp(User user , int addExp) throws Exception {
PlayerManager playerInfoManager = user.getPlayerInfoManager();
if (addExp <= 0) { if (addExp <= 0) {
return; return;
} }
@ -1328,7 +1329,8 @@ public class MapLogic {
} }
while (curExp >= levelUpExp && curExp <= maxExp) { while (curExp >= levelUpExp && curExp <= maxExp) {
playerInfoManager.setLevel(playerInfoManager.getLevel() + 1); playerInfoManager.setLevel(playerInfoManager.getLevel() + 1);
// sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(playerInfoManager.getLevel() + 1); SPlayerLevelConfig sPlayerLevelConfig1 = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(playerInfoManager.getLevel());
MapManager.getEnergy(user, sPlayerLevelConfig1.getAddEnergy());
if (sPlayerLevelConfig == null) { if (sPlayerLevelConfig == null) {
levelUpExp = Integer.MAX_VALUE; levelUpExp = Integer.MAX_VALUE;
} else { } else {

View File

@ -193,26 +193,28 @@ public class MapManager extends MongoBase {
} }
public static void getEnergy(User user) throws Exception { public static void getEnergy(User user, int addEnergy) throws Exception {
PlayerManager playerInfoManager = user.getPlayerInfoManager(); PlayerManager playerInfoManager = user.getPlayerInfoManager();
Map<Integer, Item> itemMap = user.getItemManager().getItemMap();
int itemNum =0;
if (itemMap.containsKey(Global.STAMINA)) {
itemNum = itemMap.get(Global.STAMINA).getItemNum();
}
Item item = user.getItemManager().getItemMap().get(Global.STAMINA); Item item = user.getItemManager().getItemMap().get(Global.STAMINA);
int updateTime = (int)(System.currentTimeMillis()/1000); int itemNum = item.getItemNum();
if (addEnergy != 0) {
// user.getItemManager().addItem(new Item(Global.STAMINA,addEnergy));
item.setItemNum(itemNum + addEnergy);
return;
}
int updateTime = (int) (System.currentTimeMillis() / 1000);
int lastUpdateEnergyTime = item.getEndingTime(); int lastUpdateEnergyTime = item.getEndingTime();
int[] energyRecoverSpeed = SGameSetting.getGameSetting().getEnergyRecoverSpeed(); int[] energyRecoverSpeed = SGameSetting.getGameSetting().getEnergyRecoverSpeed();
if ((updateTime -lastUpdateEnergyTime)/60 >=energyRecoverSpeed[1]){ if ((updateTime - lastUpdateEnergyTime) / 60 >= energyRecoverSpeed[1]) {
if(itemNum < playerInfoManager.getMaxStamina()){ if (itemNum < playerInfoManager.getMaxStamina()) {
int addValue = (updateTime - lastUpdateEnergyTime)/60/energyRecoverSpeed[1] * energyRecoverSpeed[0]; int addValue = (updateTime - lastUpdateEnergyTime) / 60 / energyRecoverSpeed[1] * energyRecoverSpeed[0];
if(addValue != 0){ if (addValue != 0) {
int curEnergy = MathUtils.setBetweenWithMax(itemNum + addValue,0,SGameSetting.getGameSetting().getInitialEnergy()); int curEnergy = MathUtils.setBetweenWithMax(itemNum + addValue, 0, SGameSetting.getGameSetting().getInitialEnergy());
item.setItemNum(curEnergy>playerInfoManager.getMaxStamina()?playerInfoManager.getMaxStamina():curEnergy); item.setItemNum(curEnergy > playerInfoManager.getMaxStamina() ? playerInfoManager.getMaxStamina() : curEnergy);
setLastUpdateEnergyTime(item, updateTime, lastUpdateEnergyTime); setLastUpdateEnergyTime(item, updateTime, lastUpdateEnergyTime);
} }
}else { } else {
setLastUpdateEnergyTime(item, updateTime, lastUpdateEnergyTime); setLastUpdateEnergyTime(item, updateTime, lastUpdateEnergyTime);
} }
} }

View File

@ -85,8 +85,7 @@ public class SweepLogic {
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sLevelDifficultyConfig.getRandomReward(), 1, 0); CommonProto.Drop.Builder drop = ItemUtil.drop(user, sLevelDifficultyConfig.getRandomReward(), 1, 0);
dropList.add(drop.build()); dropList.add(drop.build());
} }
PlayerManager playerInfoManager = user.getPlayerInfoManager(); MapLogic.getInstance().userLevelUp(user,sLevelDifficultyConfig.getExp() * sweepTimes);
MapLogic.getInstance().userLevelUp(playerInfoManager,sLevelDifficultyConfig.getExp() * sweepTimes);
FightInfoProto.SweepRightResponse.Builder builder = FightInfoProto.SweepRightResponse.newBuilder(); FightInfoProto.SweepRightResponse.Builder builder = FightInfoProto.SweepRightResponse.newBuilder();
builder.addAllDrop(dropList); builder.addAllDrop(dropList);
levelDifficulty.setChallengeTimes(levelDifficulty.getChallengeTimes() +sweepTimes); levelDifficulty.setChallengeTimes(levelDifficulty.getChallengeTimes() +sweepTimes);

View File

@ -369,7 +369,7 @@ public class ItemUtil {
} }
for (Map.Entry<Integer, Integer> userItem : useItemMap.entrySet()) { for (Map.Entry<Integer, Integer> userItem : useItemMap.entrySet()) {
if ((userItem.getKey() == Global.STAMINA)){ if ((userItem.getKey() == Global.STAMINA)){
MapManager.getEnergy(user); MapManager.getEnergy(user,0);
} }
Item temporaryItem = temporaryItemList.get(userItem.getKey()); Item temporaryItem = temporaryItemList.get(userItem.getKey());
int needCount = userItem.getValue(); int needCount = userItem.getValue();
@ -403,7 +403,7 @@ public class ItemUtil {
if (itemMap.size() !=0 ){ if (itemMap.size() !=0 ){
for (Map.Entry<Integer, Item> entry :itemMap.entrySet()){ for (Map.Entry<Integer, Item> entry :itemMap.entrySet()){
if (entry.getKey() ==Global.STAMINA){ if (entry.getKey() ==Global.STAMINA){
MapManager.getEnergy(user); MapManager.getEnergy(user,0);
} }
itemList.add(CBean2Proto.getItem(entry.getValue(),-1)); itemList.add(CBean2Proto.getItem(entry.getValue(),-1));
} }
@ -508,7 +508,7 @@ public class ItemUtil {
Item temporaryItem = temporaryItemList.get(entry.getKey()); Item temporaryItem = temporaryItemList.get(entry.getKey());
if (temporaryItem == null || temporaryItem.getItemNum() < entry.getValue()) { if (temporaryItem == null || temporaryItem.getItemNum() < entry.getValue()) {
if ((entry.getKey() == Global.STAMINA)){ if ((entry.getKey() == Global.STAMINA)){
MapManager.getEnergy(user); MapManager.getEnergy(user,0);
} }
Item item = user.getItemManager().getItem(entry.getKey()); Item item = user.getItemManager().getItem(entry.getKey());
if (item == null) { if (item == null) {