tying up some quirky cases where the the wrong tools elicited unexpected reactions from amenities (#385)

This commit is contained in:
Fate-JH 2020-04-19 20:19:39 -04:00 committed by GitHub
parent 2f6af23207
commit 484fcbf56d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 20 deletions

View file

@ -158,10 +158,12 @@ class PlayerControl(player : Player) extends Actor
} }
} }
case CommonMessages.Use(user, Some(item : Tool)) if item.Definition == GlobalDefinitions.medicalapplicator && !player.isAlive => case CommonMessages.Use(user, Some(item : Tool)) if item.Definition == GlobalDefinitions.medicalapplicator =>
//revive //revive
if(user != player && user.isAlive && !user.isMoving && if(user != player &&
!player.isBackpack && user.Faction == player.Faction &&
user.isAlive && !user.isMoving &&
!player.isAlive && !player.isBackpack &&
item.Magazine >= 25) { item.Magazine >= 25) {
sender ! CommonMessages.Progress( sender ! CommonMessages.Progress(
4, 4,

View file

@ -5261,10 +5261,12 @@ class WorldSessionActor extends Actor
case Some(obj : Player) => case Some(obj : Player) =>
CancelZoningProcessWithDescriptiveReason("cancel_use") CancelZoningProcessWithDescriptiveReason("cancel_use")
if(obj.isBackpack) { if(obj.isBackpack) {
if(equipment.isEmpty) {
log.info(s"UseItem: $player looting the corpse of $obj") log.info(s"UseItem: $player looting the corpse of $obj")
sendResponse(UseItemMessage(avatar_guid, item_used_guid, object_guid, unk2, unk3, unk4, unk5, unk6, unk7, unk8, itemType)) sendResponse(UseItemMessage(avatar_guid, item_used_guid, object_guid, unk2, unk3, unk4, unk5, unk6, unk7, unk8, itemType))
accessedContainer = Some(obj) accessedContainer = Some(obj)
} }
}
else if(!unk3 && player.isAlive) { //potential kit use else if(!unk3 && player.isAlive) { //potential kit use
ValidObject(item_used_guid) match { ValidObject(item_used_guid) match {
case Some(kit : Kit) => case Some(kit : Kit) =>
@ -5521,6 +5523,7 @@ class WorldSessionActor extends Actor
} }
case Some(obj : TelepadDeployable) => case Some(obj : TelepadDeployable) =>
if(equipment.isEmpty) {
continent.GUID(obj.Router) match { continent.GUID(obj.Router) match {
case Some(vehicle : Vehicle) => case Some(vehicle : Vehicle) =>
vehicle.Utility(UtilityType.internal_router_telepad_deployable) match { vehicle.Utility(UtilityType.internal_router_telepad_deployable) match {
@ -5534,6 +5537,7 @@ class WorldSessionActor extends Actor
log.error(s"telepad@${object_guid.guid} is linked to wrong kind of object - ${o.Definition.Name}, ${obj.Router}") log.error(s"telepad@${object_guid.guid} is linked to wrong kind of object - ${o.Definition.Name}, ${obj.Router}")
case None => ; case None => ;
} }
}
case Some(obj : Utility.InternalTelepad) => case Some(obj : Utility.InternalTelepad) =>
continent.GUID(obj.Telepad) match { continent.GUID(obj.Telepad) match {
@ -5547,8 +5551,7 @@ class WorldSessionActor extends Actor
case Some(obj) => case Some(obj) =>
CancelZoningProcessWithDescriptiveReason("cancel_use") CancelZoningProcessWithDescriptiveReason("cancel_use")
log.warn(s"UseItem: don't know how to handle $obj; taking a shot in the dark") log.warn(s"UseItem: don't know how to handle $obj")
sendResponse(UseItemMessage(avatar_guid, item_used_guid, object_guid, unk2, unk3, unk4, unk5, unk6, unk7, unk8, itemType))
case None => case None =>
log.error(s"UseItem: can not find object $object_guid") log.error(s"UseItem: can not find object $object_guid")