升级加体力

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();
ItemUtil.itemCost(user, sLevelDifficultyConfig.getCost());
//玩家升级
userLevelUp(playerInfoManager,sLevelDifficultyConfig.getExp());
userLevelUp(user,sLevelDifficultyConfig.getExp());
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sLevelDifficultyConfig.getRandomReward(), 1, 0);
LevelDifficulty levelDifficulty = levelDifficultyManager.getLevelDifficultyInfosMap().get(fightId);
if (levelDifficulty.getState() != Global.FIGHT_CLEARANCE){
@ -1309,7 +1309,8 @@ public class MapLogic {
* @param playerInfoManager
* @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) {
return;
}
@ -1328,7 +1329,8 @@ public class MapLogic {
}
while (curExp >= levelUpExp && curExp <= maxExp) {
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) {
levelUpExp = Integer.MAX_VALUE;
} 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();
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);
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[] energyRecoverSpeed = SGameSetting.getGameSetting().getEnergyRecoverSpeed();
if ((updateTime -lastUpdateEnergyTime)/60 >=energyRecoverSpeed[1]){
if(itemNum < playerInfoManager.getMaxStamina()){
int addValue = (updateTime - lastUpdateEnergyTime)/60/energyRecoverSpeed[1] * energyRecoverSpeed[0];
if(addValue != 0){
int curEnergy = MathUtils.setBetweenWithMax(itemNum + addValue,0,SGameSetting.getGameSetting().getInitialEnergy());
item.setItemNum(curEnergy>playerInfoManager.getMaxStamina()?playerInfoManager.getMaxStamina():curEnergy);
if ((updateTime - lastUpdateEnergyTime) / 60 >= energyRecoverSpeed[1]) {
if (itemNum < playerInfoManager.getMaxStamina()) {
int addValue = (updateTime - lastUpdateEnergyTime) / 60 / energyRecoverSpeed[1] * energyRecoverSpeed[0];
if (addValue != 0) {
int curEnergy = MathUtils.setBetweenWithMax(itemNum + addValue, 0, SGameSetting.getGameSetting().getInitialEnergy());
item.setItemNum(curEnergy > playerInfoManager.getMaxStamina() ? playerInfoManager.getMaxStamina() : curEnergy);
setLastUpdateEnergyTime(item, updateTime, lastUpdateEnergyTime);
}
}else {
} else {
setLastUpdateEnergyTime(item, updateTime, lastUpdateEnergyTime);
}
}

View File

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

View File

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