2017-11-28 22:37:06 -05:00
|
|
|
// Copyright (c) 2017 PSForever
|
|
|
|
|
package objects.guidtask
|
|
|
|
|
|
2018-07-14 21:25:44 -04:00
|
|
|
import base.ActorTest
|
2017-11-28 22:37:06 -05:00
|
|
|
import net.psforever.objects._
|
|
|
|
|
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
2018-06-08 21:07:47 -04:00
|
|
|
import net.psforever.types.{CharacterGender, CharacterVoice, PlanetSideEmpire}
|
2017-11-28 22:37:06 -05:00
|
|
|
|
2018-09-23 08:00:58 -04:00
|
|
|
class GUIDTaskUnregisterAvatarTest extends ActorTest {
|
2017-11-28 22:37:06 -05:00
|
|
|
"UnregisterAvatar" in {
|
|
|
|
|
val (guid, uns, taskResolver, probe) = GUIDTaskTest.CommonTestSetup
|
2018-06-08 21:07:47 -04:00
|
|
|
val obj = Player(Avatar("test", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Mute))
|
2017-11-28 22:37:06 -05:00
|
|
|
val obj_wep = Tool(GlobalDefinitions.beamer)
|
|
|
|
|
obj.Slot(0).Equipment = obj_wep
|
|
|
|
|
val obj_wep_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
|
|
|
|
obj_wep.AmmoSlots.head.Box = obj_wep_ammo
|
|
|
|
|
val obj_inv_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
|
|
|
|
obj.Slot(6).Equipment = obj_inv_ammo
|
|
|
|
|
val obj_locker = obj.Slot(5).Equipment.get
|
|
|
|
|
val obj_locker_ammo = AmmoBox(GlobalDefinitions.energy_cell)
|
Let's Move Item, Together (#429)
* mix-in code for akka messaging move item, currently testing on infantry only
* adjusted structure of COntainable so callbacks are separate from message-producing functions, are separate from message-sending functionality; massaged LockerContainer until it could support control agency and created a wrapper for its Equipment interfacing; the control structure starts and stops when PlayerControl starts and stops, and it converts whenever necessary
* added failsafe conditions to Containable, such as blocking certain messages while completing a MoveItem call, or blocking all messages to reset disruptive MoveItem calls; depiction message callbacks for Player, Locker, and Vehicle, to properly depict the manipulation of items; eliminated the old code from WSA
* added useful comments to Containable; moved functionality for deployables, and for container'ing, and dropping logic out from WSA and distributed it appropriately
* handling terminal operations - buying an exosuit and selecting an infantry loadout; starting work on support for more persistent equipment timers local to the avatar (that were removed in this update; see wsa changes)
* linked terminal page/message with routing policy
* tuning vehicle loadout management and display
* separated use time from purchase time and applied a system that limits either if that same event would recur too soon; tuning exosuit and loadout changes
* some ask timeout handling and comments
* normalizing item on ground interactions
* rearranging the project structure
* merged with master; commas removed
* fixing tests
* added description strings to Tasks; adjusted the completion conditions for some Tasks
* a failed purchase will not block future purchases; increased timeout on move-item tasks
* corpses, even one's own, should have properly moveable inventories
* for better persistence, until GlobalDefinitions is renovated, moved the object id->name map onto the avatar object, for the purpose of timers; replaced a use of values in GridInventory for a map conversion
* max loadouts and max exosuit switch use same cooldown now; hopefully better clarifcation regarding held arm position
2020-05-16 12:18:08 -04:00
|
|
|
obj_locker.asInstanceOf[LockerEquipment].Inventory += 0 -> obj_locker_ammo
|
2017-11-28 22:37:06 -05:00
|
|
|
guid.register(obj, "dynamic")
|
|
|
|
|
guid.register(obj_wep, "dynamic")
|
|
|
|
|
guid.register(obj_wep_ammo, "dynamic")
|
|
|
|
|
guid.register(obj_inv_ammo, "dynamic")
|
|
|
|
|
guid.register(obj_locker, "dynamic")
|
|
|
|
|
guid.register(obj_locker_ammo, "dynamic")
|
|
|
|
|
|
|
|
|
|
assert(obj.HasGUID)
|
|
|
|
|
assert(obj_wep.HasGUID)
|
|
|
|
|
assert(obj_wep_ammo.HasGUID)
|
|
|
|
|
assert(obj_inv_ammo.HasGUID)
|
|
|
|
|
assert(obj_locker.HasGUID)
|
|
|
|
|
assert(obj_locker_ammo.HasGUID)
|
|
|
|
|
taskResolver ! TaskResolver.GiveTask(new GUIDTaskTest.RegisterTestTask(probe.ref), List(GUIDTask.UnregisterAvatar(obj)(uns)))
|
|
|
|
|
probe.expectMsg(scala.util.Success)
|
|
|
|
|
assert(!obj.HasGUID)
|
|
|
|
|
assert(!obj_wep.HasGUID)
|
|
|
|
|
assert(!obj_wep_ammo.HasGUID)
|
|
|
|
|
assert(!obj_inv_ammo.HasGUID)
|
|
|
|
|
assert(!obj_locker.HasGUID)
|
|
|
|
|
assert(!obj_locker_ammo.HasGUID)
|
|
|
|
|
}
|
|
|
|
|
}
|