mirror of
https://github.com/psforever/PSF-LoginServer.git
synced 2026-07-16 08:55:18 +00:00
condition for avoiding server-size (all) damage during deconstruction period
This commit is contained in:
parent
002324d671
commit
4b8c77ee72
4 changed files with 16 additions and 3 deletions
|
|
@ -163,7 +163,7 @@ class SessionAvatarHandlers(
|
||||||
case term: Terminal with ProximityUnit => sessionData.terminals.StopUsingProximityUnit(term)
|
case term: Terminal with ProximityUnit => sessionData.terminals.StopUsingProximityUnit(term)
|
||||||
}
|
}
|
||||||
if (sessionData.zoning.zoningStatus == Zoning.Status.Deconstructing) {
|
if (sessionData.zoning.zoningStatus == Zoning.Status.Deconstructing) {
|
||||||
sessionData.zoning.zoningStatus = Zoning.Status.None
|
sessionData.stopDeconstructing()
|
||||||
}
|
}
|
||||||
|
|
||||||
case AvatarResponse.ObjectHeld(slot, _)
|
case AvatarResponse.ObjectHeld(slot, _)
|
||||||
|
|
|
||||||
|
|
@ -211,7 +211,7 @@ class SessionData(
|
||||||
val isMovingPlus = isMoving || isJumping || jumpThrust
|
val isMovingPlus = isMoving || isJumping || jumpThrust
|
||||||
if (isMovingPlus) {
|
if (isMovingPlus) {
|
||||||
if (zoning.zoningStatus == Zoning.Status.Deconstructing) {
|
if (zoning.zoningStatus == Zoning.Status.Deconstructing) {
|
||||||
zoning.zoningStatus = Zoning.Status.None
|
stopDeconstructing()
|
||||||
} else {
|
} else {
|
||||||
zoning.CancelZoningProcessWithDescriptiveReason("cancel_motion")
|
zoning.CancelZoningProcessWithDescriptiveReason("cancel_motion")
|
||||||
}
|
}
|
||||||
|
|
@ -525,7 +525,7 @@ class SessionData(
|
||||||
if (action == ImplantAction.Activation) {
|
if (action == ImplantAction.Activation) {
|
||||||
if (zoning.zoningStatus == Zoning.Status.Deconstructing) {
|
if (zoning.zoningStatus == Zoning.Status.Deconstructing) {
|
||||||
//do not activate; play deactivation sound instead
|
//do not activate; play deactivation sound instead
|
||||||
zoning.zoningStatus == Zoning.Status.None
|
stopDeconstructing()
|
||||||
avatar.implants(slot).collect {
|
avatar.implants(slot).collect {
|
||||||
case implant if implant.active =>
|
case implant if implant.active =>
|
||||||
avatarActor ! AvatarActor.DeactivateImplant(implant.definition.implantType)
|
avatarActor ! AvatarActor.DeactivateImplant(implant.definition.implantType)
|
||||||
|
|
@ -1450,6 +1450,9 @@ class SessionData(
|
||||||
}
|
}
|
||||||
player.Actor ! PlayerControl.ObjectHeld(Player.HandsDownSlot, updateMyHolsterArm = true)
|
player.Actor ! PlayerControl.ObjectHeld(Player.HandsDownSlot, updateMyHolsterArm = true)
|
||||||
zoning.zoningStatus = Zoning.Status.Deconstructing
|
zoning.zoningStatus = Zoning.Status.Deconstructing
|
||||||
|
if (player.death_by == 0) {
|
||||||
|
player.death_by = 1
|
||||||
|
}
|
||||||
terminals.CancelAllProximityUnits()
|
terminals.CancelAllProximityUnits()
|
||||||
zoning.spawn.GoToDeploymentMap()
|
zoning.spawn.GoToDeploymentMap()
|
||||||
case _ => ()
|
case _ => ()
|
||||||
|
|
@ -2776,6 +2779,11 @@ class SessionData(
|
||||||
sendResponse(ChatMsg(ChatMessageType.UNK_227, wideContents=false, "", "@charsaved", None))
|
sendResponse(ChatMsg(ChatMessageType.UNK_227, wideContents=false, "", "@charsaved", None))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def stopDeconstructing(): Unit = {
|
||||||
|
zoning.zoningStatus = Zoning.Status.None
|
||||||
|
player.death_by = math.min(player.death_by, 0)
|
||||||
|
}
|
||||||
|
|
||||||
def failWithError(error: String): Unit = {
|
def failWithError(error: String): Unit = {
|
||||||
log.error(error)
|
log.error(error)
|
||||||
middlewareActor ! MiddlewareActor.Teardown()
|
middlewareActor ! MiddlewareActor.Teardown()
|
||||||
|
|
|
||||||
|
|
@ -2082,6 +2082,7 @@ class ZoningOperations(
|
||||||
player.Health = health
|
player.Health = health
|
||||||
player.Armor = armor
|
player.Armor = armor
|
||||||
}
|
}
|
||||||
|
player.death_by = math.min(player.death_by, 0)
|
||||||
sessionData.vehicles.GetKnownVehicleAndSeat() match {
|
sessionData.vehicles.GetKnownVehicleAndSeat() match {
|
||||||
case (Some(vehicle: Vehicle), Some(seat: Int)) =>
|
case (Some(vehicle: Vehicle), Some(seat: Int)) =>
|
||||||
//if the vehicle is the cargo of another vehicle in this zone
|
//if the vehicle is the cargo of another vehicle in this zone
|
||||||
|
|
|
||||||
|
|
@ -547,6 +547,10 @@ class Player(var avatar: Avatar)
|
||||||
ZoningRequest
|
ZoningRequest
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override def CanDamage: Boolean = {
|
||||||
|
death_by < 1 && super.CanDamage
|
||||||
|
}
|
||||||
|
|
||||||
def DamageModel: DamageResistanceModel = exosuit.asInstanceOf[DamageResistanceModel]
|
def DamageModel: DamageResistanceModel = exosuit.asInstanceOf[DamageResistanceModel]
|
||||||
|
|
||||||
def canEqual(other: Any): Boolean = other.isInstanceOf[Player]
|
def canEqual(other: Any): Boolean = other.isInstanceOf[Player]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue