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,9 +5261,11 @@ class WorldSessionActor extends Actor
case Some(obj : Player) => case Some(obj : Player) =>
CancelZoningProcessWithDescriptiveReason("cancel_use") CancelZoningProcessWithDescriptiveReason("cancel_use")
if(obj.isBackpack) { if(obj.isBackpack) {
log.info(s"UseItem: $player looting the corpse of $obj") if(equipment.isEmpty) {
sendResponse(UseItemMessage(avatar_guid, item_used_guid, object_guid, unk2, unk3, unk4, unk5, unk6, unk7, unk8, itemType)) log.info(s"UseItem: $player looting the corpse of $obj")
accessedContainer = Some(obj) sendResponse(UseItemMessage(avatar_guid, item_used_guid, object_guid, unk2, unk3, unk4, unk5, unk6, unk7, unk8, itemType))
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 {
@ -5521,18 +5523,20 @@ class WorldSessionActor extends Actor
} }
case Some(obj : TelepadDeployable) => case Some(obj : TelepadDeployable) =>
continent.GUID(obj.Router) match { if(equipment.isEmpty) {
case Some(vehicle : Vehicle) => continent.GUID(obj.Router) match {
vehicle.Utility(UtilityType.internal_router_telepad_deployable) match { case Some(vehicle : Vehicle) =>
case Some(util : Utility.InternalTelepad) => vehicle.Utility(UtilityType.internal_router_telepad_deployable) match {
CancelZoningProcessWithDescriptiveReason("cancel") case Some(util : Utility.InternalTelepad) =>
UseRouterTelepadSystem(router = vehicle, internalTelepad = util, remoteTelepad = obj, src = obj, dest = util) CancelZoningProcessWithDescriptiveReason("cancel")
case _ => UseRouterTelepadSystem(router = vehicle, internalTelepad = util, remoteTelepad = obj, src = obj, dest = util)
log.error(s"telepad@${object_guid.guid} is not linked to a router - ${vehicle.Definition.Name}, ${obj.Router}") case _ =>
} log.error(s"telepad@${object_guid.guid} is not linked to a router - ${vehicle.Definition.Name}, ${obj.Router}")
case Some(o) => }
log.error(s"telepad@${object_guid.guid} is linked to wrong kind of object - ${o.Definition.Name}, ${obj.Router}") case Some(o) =>
case None => ; log.error(s"telepad@${object_guid.guid} is linked to wrong kind of object - ${o.Definition.Name}, ${obj.Router}")
case None => ;
}
} }
case Some(obj : Utility.InternalTelepad) => case Some(obj : Utility.InternalTelepad) =>
@ -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")