mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-01-09 18:12:52 +08:00
Implement food heal function
Co-authored-by: pris <lilch1022@hotmail.com>
This commit is contained in:
parent
765f569e55
commit
b253e779a2
@ -937,10 +937,20 @@ public class InventoryManager {
|
|||||||
if (target == null) {
|
if (target == null) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
used = player.getTeamManager().reviveAvatar(target) ? 1 : 0;
|
used = player.getTeamManager().reviveAvatar(target) ? 1 : 0;
|
||||||
}
|
}
|
||||||
break;
|
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:
|
case MATERIAL_CHEST:
|
||||||
if (useItem.getRewardBoxId() > 0) {
|
if (useItem.getRewardBoxId() > 0) {
|
||||||
used = handleRewardBox(player, useItem) ? 1 : 0;
|
used = handleRewardBox(player, useItem) ? 1 : 0;
|
||||||
|
@ -457,7 +457,31 @@ public class TeamManager {
|
|||||||
|
|
||||||
return false;
|
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() {
|
public void respawnTeam() {
|
||||||
// Make sure all team members are dead
|
// Make sure all team members are dead
|
||||||
for (EntityAvatar entity : getActiveTeam()) {
|
for (EntityAvatar entity : getActiveTeam()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user