mirror of
https://github.com/Melledy/Grasscutter.git
synced 2024-12-05 03:03:31 +00:00
63 lines
2.2 KiB
Java
63 lines
2.2 KiB
Java
package emu.grasscutter.server.packet.send;
|
|
|
|
import emu.grasscutter.game.avatar.Avatar;
|
|
import emu.grasscutter.game.entity.GameEntity;
|
|
import emu.grasscutter.game.player.Player;
|
|
import emu.grasscutter.game.props.FightProperty;
|
|
import emu.grasscutter.game.props.LifeState;
|
|
import emu.grasscutter.net.packet.BasePacket;
|
|
import emu.grasscutter.net.packet.PacketOpcodes;
|
|
import emu.grasscutter.net.proto.AvatarLifeStateChangeNotifyOuterClass.AvatarLifeStateChangeNotify;
|
|
import emu.grasscutter.net.proto.PlayerDieTypeOuterClass.PlayerDieType;
|
|
import emu.grasscutter.net.proto.ServerBuffOuterClass;
|
|
import emu.grasscutter.net.proto.ServerBuffOuterClass.ServerBuff;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
public class PacketAvatarLifeStateChangeNotify extends BasePacket {
|
|
|
|
public PacketAvatarLifeStateChangeNotify(Avatar avatar) {
|
|
super(PacketOpcodes.AvatarLifeStateChangeNotify);
|
|
|
|
AvatarLifeStateChangeNotify proto = AvatarLifeStateChangeNotify.newBuilder()
|
|
.setAvatarGuid(avatar.getGuid())
|
|
.setLifeState(avatar.getFightProperty(FightProperty.FIGHT_PROP_CUR_HP) > 0 ? LifeState.LIFE_ALIVE.getValue() : LifeState.LIFE_DEAD.getValue())
|
|
.build();
|
|
|
|
this.setData(proto);
|
|
}
|
|
public PacketAvatarLifeStateChangeNotify(Avatar avatar, int attackerId, LifeState lifeState) {
|
|
super(PacketOpcodes.AvatarLifeStateChangeNotify);
|
|
|
|
AvatarLifeStateChangeNotify proto = AvatarLifeStateChangeNotify.newBuilder()
|
|
.setAvatarGuid(avatar.getGuid())
|
|
.setLifeState(lifeState.getValue())
|
|
.setMoveReliableSeq(attackerId)
|
|
.build();
|
|
|
|
this.setData(proto);
|
|
}
|
|
|
|
public PacketAvatarLifeStateChangeNotify(Avatar avatar, LifeState lifeState, PlayerDieType dieType) {
|
|
this(avatar, lifeState, null, "", dieType);
|
|
}
|
|
|
|
public PacketAvatarLifeStateChangeNotify(Avatar avatar, LifeState lifeState, GameEntity sourceEntity,
|
|
String attackTag, PlayerDieType dieType) {
|
|
super(PacketOpcodes.AvatarLifeStateChangeNotify);
|
|
|
|
AvatarLifeStateChangeNotify.Builder proto = AvatarLifeStateChangeNotify.newBuilder();
|
|
|
|
proto.setAvatarGuid(avatar.getGuid());
|
|
proto.setLifeState(lifeState.getValue());
|
|
if (sourceEntity != null) {
|
|
proto.setSourceEntityId(sourceEntity.getId());
|
|
}
|
|
proto.setDieType(dieType);
|
|
proto.setAttackTag((attackTag));
|
|
|
|
this.setData(proto.build());
|
|
}
|
|
|
|
}
|