mirror of
https://github.com/Melledy/Grasscutter.git
synced 2024-11-26 12:08:17 +00:00
Implement food heal function
Co-authored-by: pris <lilch1022@hotmail.com>
This commit is contained in:
parent
765f569e55
commit
b253e779a2
@ -941,6 +941,16 @@ public class InventoryManager {
|
||||
used = player.getTeamManager().reviveAvatar(target) ? 1 : 0;
|
||||
}
|
||||
break;
|
||||
case MATERIAL_NOTICE_ADD_HP:
|
||||
if (useItem.getItemData().getUseTarget().equals("ITEM_USE_TARGET_SPECIFY_ALIVE_AVATAR")) {
|
||||
if (target == null) {
|
||||
break;
|
||||
}
|
||||
|
||||
int[] SatiationParams = useItem.getItemData().getSatiationParams();
|
||||
used = player.getTeamManager().healAvatar(target, SatiationParams[0], SatiationParams[1]) ? 1 : 0;
|
||||
}
|
||||
break;
|
||||
case MATERIAL_CHEST:
|
||||
if (useItem.getRewardBoxId() > 0) {
|
||||
used = handleRewardBox(player, useItem) ? 1 : 0;
|
||||
|
@ -458,6 +458,30 @@ public class TeamManager {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean healAvatar(Avatar avatar, int healRate, int healAmount) {
|
||||
for (EntityAvatar entity : getActiveTeam()) {
|
||||
if (entity.getAvatar() == avatar) {
|
||||
if (!entity.isAlive()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
entity.setFightProperty(
|
||||
FightProperty.FIGHT_PROP_CUR_HP,
|
||||
(float) Math.min(
|
||||
(entity.getFightProperty(FightProperty.FIGHT_PROP_CUR_HP) +
|
||||
entity.getFightProperty(FightProperty.FIGHT_PROP_MAX_HP) * (float) healRate / 100.0 +
|
||||
(float) healAmount / 100.0),
|
||||
entity.getFightProperty(FightProperty.FIGHT_PROP_MAX_HP)
|
||||
)
|
||||
);
|
||||
getPlayer().sendPacket(new PacketAvatarFightPropUpdateNotify(entity.getAvatar(), FightProperty.FIGHT_PROP_CUR_HP));
|
||||
getPlayer().sendPacket(new PacketAvatarLifeStateChangeNotify(entity.getAvatar()));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void respawnTeam() {
|
||||
// Make sure all team members are dead
|
||||
for (EntityAvatar entity : getActiveTeam()) {
|
||||
|
Loading…
Reference in New Issue
Block a user