mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-02-06 01:23:21 +08:00
fix companionship exp
my IDEA lint is not happy on my change
This commit is contained in:
parent
b37c5d89eb
commit
f0df78a81a
@ -242,6 +242,9 @@ public class Inventory implements Iterable<GameItem> {
|
|||||||
case 102: // Adventure exp
|
case 102: // Adventure exp
|
||||||
getPlayer().addExpDirectly(count);
|
getPlayer().addExpDirectly(count);
|
||||||
break;
|
break;
|
||||||
|
case 105: // Companionship exp
|
||||||
|
getPlayer().getServer().getInventoryManager().upgradeAvatarFetterLevel(player, getPlayer().getTeamManager().getCurrentAvatarEntity().getAvatar(), count);
|
||||||
|
break;
|
||||||
case 201: // Primogem
|
case 201: // Primogem
|
||||||
getPlayer().setPrimogems(player.getPrimogems() + count);
|
getPlayer().setPrimogems(player.getPrimogems() + count);
|
||||||
break;
|
break;
|
||||||
|
@ -23,23 +23,7 @@ import emu.grasscutter.game.player.Player;
|
|||||||
import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam;
|
import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam;
|
||||||
import emu.grasscutter.net.proto.MaterialInfoOuterClass.MaterialInfo;
|
import emu.grasscutter.net.proto.MaterialInfoOuterClass.MaterialInfo;
|
||||||
import emu.grasscutter.server.game.GameServer;
|
import emu.grasscutter.server.game.GameServer;
|
||||||
import emu.grasscutter.server.packet.send.PacketAbilityChangeNotify;
|
import emu.grasscutter.server.packet.send.*;
|
||||||
import emu.grasscutter.server.packet.send.PacketAvatarPromoteRsp;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketAvatarPropNotify;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketAvatarSkillChangeNotify;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketAvatarSkillUpgradeRsp;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketAvatarUnlockTalentNotify;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketAvatarUpgradeRsp;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketDestroyMaterialRsp;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketProudSkillChangeNotify;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketProudSkillExtraLevelNotify;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketReliquaryUpgradeRsp;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketSetEquipLockStateRsp;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketStoreItemChangeNotify;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketUnlockAvatarTalentRsp;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketWeaponAwakenRsp;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketWeaponPromoteRsp;
|
|
||||||
import emu.grasscutter.server.packet.send.PacketWeaponUpgradeRsp;
|
|
||||||
import emu.grasscutter.utils.Utils;
|
import emu.grasscutter.utils.Utils;
|
||||||
import it.unimi.dsi.fastutil.ints.Int2IntMap;
|
import it.unimi.dsi.fastutil.ints.Int2IntMap;
|
||||||
import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap;
|
import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap;
|
||||||
@ -659,7 +643,7 @@ public class InventoryManager {
|
|||||||
// Level up
|
// Level up
|
||||||
upgradeAvatar(player, avatar, promoteData, expGain);
|
upgradeAvatar(player, avatar, promoteData, expGain);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void upgradeAvatar(Player player, Avatar avatar, int expGain) {
|
public void upgradeAvatar(Player player, Avatar avatar, int expGain) {
|
||||||
AvatarPromoteData promoteData = GameData.getAvatarPromoteData(avatar.getAvatarData().getAvatarPromoteId(), avatar.getPromoteLevel());
|
AvatarPromoteData promoteData = GameData.getAvatarPromoteData(avatar.getAvatarData().getAvatarPromoteId(), avatar.getPromoteLevel());
|
||||||
if (promoteData == null) {
|
if (promoteData == null) {
|
||||||
@ -668,14 +652,14 @@ public class InventoryManager {
|
|||||||
|
|
||||||
upgradeAvatar(player, avatar, promoteData, expGain);
|
upgradeAvatar(player, avatar, promoteData, expGain);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void upgradeAvatar(Player player, Avatar avatar, AvatarPromoteData promoteData, int expGain) {
|
public void upgradeAvatar(Player player, Avatar avatar, AvatarPromoteData promoteData, int expGain) {
|
||||||
int maxLevel = promoteData.getUnlockMaxLevel();
|
int maxLevel = promoteData.getUnlockMaxLevel();
|
||||||
int level = avatar.getLevel();
|
int level = avatar.getLevel();
|
||||||
int oldLevel = level;
|
int oldLevel = level;
|
||||||
int exp = avatar.getExp();
|
int exp = avatar.getExp();
|
||||||
int reqExp = GameData.getAvatarLevelExpRequired(level);
|
int reqExp = GameData.getAvatarLevelExpRequired(level);
|
||||||
|
|
||||||
while (expGain > 0 && reqExp > 0 && level < maxLevel) {
|
while (expGain > 0 && reqExp > 0 && level < maxLevel) {
|
||||||
// Do calculations
|
// Do calculations
|
||||||
int toGain = Math.min(expGain, reqExp - exp);
|
int toGain = Math.min(expGain, reqExp - exp);
|
||||||
@ -690,7 +674,7 @@ public class InventoryManager {
|
|||||||
reqExp = GameData.getAvatarLevelExpRequired(level);
|
reqExp = GameData.getAvatarLevelExpRequired(level);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Old map for packet
|
// Old map for packet
|
||||||
Map<Integer, Float> oldPropMap = avatar.getFightProperties();
|
Map<Integer, Float> oldPropMap = avatar.getFightProperties();
|
||||||
if (oldLevel != level) {
|
if (oldLevel != level) {
|
||||||
@ -734,6 +718,7 @@ public class InventoryManager {
|
|||||||
avatar.save();
|
avatar.save();
|
||||||
|
|
||||||
player.sendPacket(new PacketAvatarPropNotify(avatar));
|
player.sendPacket(new PacketAvatarPropNotify(avatar));
|
||||||
|
player.sendPacket(new PacketAvatarFetterDataNotify(avatar));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void upgradeAvatarSkill(Player player, long guid, int skillId) {
|
public void upgradeAvatarSkill(Player player, long guid, int skillId) {
|
||||||
|
Loading…
Reference in New Issue
Block a user