升级加体力
parent
8466795034
commit
87616377a1
|
@ -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 {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue