mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-01-20 02:24:45 +00:00
test repairs
This commit is contained in:
parent
e27e827552
commit
bb3c0f5d91
|
|
@ -5,7 +5,7 @@ import akka.actor.Props
|
|||
import akka.routing.RandomPool
|
||||
import actor.base.ActorTest
|
||||
import net.psforever.objects._
|
||||
import net.psforever.objects.guid.{GUIDTask, TaskResolver}
|
||||
import net.psforever.objects.guid.{NumberPoolHub, TaskResolver}
|
||||
import net.psforever.objects.zones.{Zone, ZoneMap}
|
||||
import net.psforever.packet.game.objectcreate.{DroppedItemData, ObjectClass, ObjectCreateMessageParent, PlacementData}
|
||||
import net.psforever.packet.game.{ObjectCreateMessage, PlayerStateMessageUpstream}
|
||||
|
|
@ -17,6 +17,7 @@ import scala.concurrent.duration._
|
|||
import akka.actor.typed.scaladsl.adapter._
|
||||
import net.psforever.actors.zone.ZoneActor
|
||||
import net.psforever.objects.avatar.Avatar
|
||||
import net.psforever.objects.guid.source.LimitedNumberSource
|
||||
|
||||
class AvatarService1Test extends ActorTest {
|
||||
"AvatarService" should {
|
||||
|
|
@ -511,10 +512,13 @@ class AvatarReleaseTest extends ActorTest {
|
|||
val zone = new Zone("test", new ZoneMap("test-map"), 0) {
|
||||
override def SetupNumberPools() = { AddPool("dynamic", 1 to 10) }
|
||||
}
|
||||
val guid1: NumberPoolHub = new NumberPoolHub(new LimitedNumberSource(100))
|
||||
zone.GUID(guid1)
|
||||
val service = system.actorOf(Props(classOf[AvatarService], zone), "release-test-service")
|
||||
val taskResolver = system.actorOf(Props[TaskResolver](), "release-test-resolver")
|
||||
zone.actor = system.spawn(ZoneActor(zone), "release-test-zone")
|
||||
val obj = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
|
||||
guid1.register(obj)
|
||||
guid1.register(obj.Slot(5).Equipment.get)
|
||||
obj.Continent = "test"
|
||||
obj.Release
|
||||
|
||||
|
|
@ -523,7 +527,6 @@ class AvatarReleaseTest extends ActorTest {
|
|||
expectNoMessage(100 milliseconds) //spacer
|
||||
|
||||
service ! Service.Join("test")
|
||||
taskResolver ! GUIDTask.RegisterObjectTask(obj)(zone.GUID)
|
||||
assert(zone.Corpses.isEmpty)
|
||||
zone.Population ! Zone.Corpse.Add(obj)
|
||||
expectNoMessage(200 milliseconds) //spacer
|
||||
|
|
@ -561,10 +564,13 @@ class AvatarReleaseEarly1Test extends ActorTest {
|
|||
val zone = new Zone("test", new ZoneMap("test-map"), 0) {
|
||||
override def SetupNumberPools() = { AddPool("dynamic", 1 to 10) }
|
||||
}
|
||||
val guid1: NumberPoolHub = new NumberPoolHub(new LimitedNumberSource(100))
|
||||
zone.GUID(guid1)
|
||||
val service = system.actorOf(Props(classOf[AvatarService], zone), "release-test-service")
|
||||
val taskResolver = system.actorOf(Props[TaskResolver](), "release-test-resolver")
|
||||
zone.actor = system.spawn(ZoneActor(zone), "release-test-zone")
|
||||
val obj = Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
|
||||
guid1.register(obj)
|
||||
guid1.register(obj.Slot(5).Equipment.get)
|
||||
obj.Continent = "test"
|
||||
obj.Release
|
||||
|
||||
|
|
@ -573,7 +579,6 @@ class AvatarReleaseEarly1Test extends ActorTest {
|
|||
expectNoMessage(100 milliseconds) //spacer
|
||||
|
||||
service ! Service.Join("test")
|
||||
taskResolver ! GUIDTask.RegisterObjectTask(obj)(zone.GUID)
|
||||
assert(zone.Corpses.isEmpty)
|
||||
zone.Population ! Zone.Corpse.Add(obj)
|
||||
expectNoMessage(200 milliseconds) //spacer
|
||||
|
|
@ -612,14 +617,19 @@ class AvatarReleaseEarly2Test extends ActorTest {
|
|||
val zone = new Zone("test", new ZoneMap("test-map"), 0) {
|
||||
override def SetupNumberPools() = { AddPool("dynamic", 1 to 10) }
|
||||
}
|
||||
val guid1: NumberPoolHub = new NumberPoolHub(new LimitedNumberSource(100))
|
||||
zone.GUID(guid1)
|
||||
val service = system.actorOf(Props(classOf[AvatarService], zone), "release-test-service")
|
||||
val taskResolver = system.actorOf(Props[TaskResolver](), "release-test-resolver")
|
||||
zone.actor = system.spawn(ZoneActor(zone), "release-test-zone")
|
||||
val objAlt =
|
||||
Player(
|
||||
Avatar(0, "TestCharacter2", PlanetSideEmpire.NC, CharacterGender.Male, 1, CharacterVoice.Voice1)
|
||||
) //necessary clutter
|
||||
val obj = Player(Avatar(0, "TestCharacter1", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
|
||||
objAlt.GUID = PlanetSideGUID(3)
|
||||
objAlt.Slot(5).Equipment.get.GUID = PlanetSideGUID(4)
|
||||
val obj = Player(Avatar(0, "TestCharacter", PlanetSideEmpire.VS, CharacterGender.Female, 1, CharacterVoice.Voice1))
|
||||
guid1.register(obj)
|
||||
guid1.register(obj.Slot(5).Equipment.get)
|
||||
obj.Continent = "test"
|
||||
obj.Release
|
||||
|
||||
|
|
@ -628,7 +638,6 @@ class AvatarReleaseEarly2Test extends ActorTest {
|
|||
expectNoMessage(100 milliseconds) //spacer
|
||||
|
||||
service ! Service.Join("test")
|
||||
taskResolver ! GUIDTask.RegisterObjectTask(obj)(zone.GUID)
|
||||
assert(zone.Corpses.isEmpty)
|
||||
zone.Population ! Zone.Corpse.Add(obj)
|
||||
expectNoMessage(200 milliseconds) //spacer
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@ object DamageModifiers {
|
|||
val distance = Vector3.Distance(data.hit_pos, data.target.Position)
|
||||
val radius = profile.DamageRadius
|
||||
if (distance <= radius) {
|
||||
damage * (1f - (profile.DamageAtEdge * distance / radius)).toInt
|
||||
damage - (damage * profile.DamageAtEdge * distance / radius).toInt
|
||||
} else {
|
||||
0
|
||||
}
|
||||
|
|
|
|||
|
|
@ -451,7 +451,7 @@ class Zone(val id: String, val map: ZoneMap, zoneNumber: Int) {
|
|||
* `false`, if the new pool can not be created because the system has already been started
|
||||
*/
|
||||
def AddPool(name: String, pool: Seq[Int]): Boolean = {
|
||||
if (accessor == Default.Actor) {
|
||||
if (accessor == Default.Actor || accessor == null) {
|
||||
guid.AddPool(name, pool.toList)
|
||||
true
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -64,14 +64,7 @@ class DamageCalculationsTests extends Specification {
|
|||
}
|
||||
|
||||
"degrade over distance damage modifier (no degrade)" in {
|
||||
val resprojectile2 = ResolvedProjectile(
|
||||
ProjectileResolution.Splash,
|
||||
projectile,
|
||||
SourceEntry(target),
|
||||
target.DamageModel,
|
||||
Vector3(10, 0, 0)
|
||||
)
|
||||
DamageModifiers.DistanceDegrade.Calculate(100, resprojectile2) == 100 mustEqual true
|
||||
DamageModifiers.DistanceDegrade.Calculate(100, resprojectile) == 100 mustEqual true
|
||||
}
|
||||
|
||||
"degrade over distance damage modifier (some degrade)" in {
|
||||
|
|
@ -109,7 +102,14 @@ class DamageCalculationsTests extends Specification {
|
|||
}
|
||||
|
||||
"degrade at radial distance damage modifier (some degrade)" in {
|
||||
val damage = DamageModifiers.RadialDegrade.Calculate(100, resprojectile)
|
||||
val resprojectile2 = ResolvedProjectile(
|
||||
ProjectileResolution.Splash,
|
||||
projectile,
|
||||
SourceEntry(target),
|
||||
target.DamageModel,
|
||||
Vector3(12, 0, 0)
|
||||
)
|
||||
val damage = DamageModifiers.RadialDegrade.Calculate(100, resprojectile2)
|
||||
damage < 100 && damage > 0 mustEqual true
|
||||
}
|
||||
|
||||
|
|
@ -119,7 +119,7 @@ class DamageCalculationsTests extends Specification {
|
|||
projectile,
|
||||
SourceEntry(target),
|
||||
target.DamageModel,
|
||||
Vector3(1000, 0, 0)
|
||||
Vector3(100, 0, 0)
|
||||
)
|
||||
DamageModifiers.RadialDegrade.Calculate(100, resprojectile2) == 0 mustEqual true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -110,7 +110,8 @@ class ZoneTest extends Specification {
|
|||
zone.AddPool("pool2", (51 to 75).toList)
|
||||
|
||||
val obj = new TestObject()
|
||||
guid1.register(obj, "pool2").isSuccess mustEqual true
|
||||
val registration = guid1.register(obj, "pool2")
|
||||
registration.isSuccess mustEqual true
|
||||
guid1.WhichPool(obj).contains("pool2") mustEqual true
|
||||
|
||||
zone.GUID(new NumberPoolHub(new LimitedNumberSource(150))) mustEqual false
|
||||
|
|
@ -214,13 +215,15 @@ class ZonePopulationTest extends ActorTest {
|
|||
override def SetupNumberPools() = {}
|
||||
}
|
||||
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||
val player = Player(avatar)
|
||||
player.GUID = PlanetSideGUID(1)
|
||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||
expectNoMessage(200 milliseconds)
|
||||
|
||||
assert(zone.Players.isEmpty)
|
||||
assert(zone.LivePlayers.isEmpty)
|
||||
zone.Population ! Zone.Population.Join(avatar)
|
||||
zone.Population ! Zone.Population.Spawn(avatar, Player(avatar), null)
|
||||
zone.Population ! Zone.Population.Spawn(avatar, player, null)
|
||||
expectNoMessage(Duration.create(200, "ms"))
|
||||
assert(zone.Players.size == 1)
|
||||
assert(zone.Players.head == avatar)
|
||||
|
|
@ -232,10 +235,12 @@ class ZonePopulationTest extends ActorTest {
|
|||
override def SetupNumberPools() = {}
|
||||
}
|
||||
val avatar = Avatar(1, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||
val player = Player(avatar)
|
||||
player.GUID = PlanetSideGUID(1)
|
||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||
receiveOne(Duration.create(200, "ms")) //consume
|
||||
zone.Population ! Zone.Population.Join(avatar)
|
||||
zone.Population ! Zone.Population.Spawn(avatar, Player(avatar), null)
|
||||
zone.Population ! Zone.Population.Spawn(avatar, player, null)
|
||||
expectNoMessage(Duration.create(100, "ms"))
|
||||
|
||||
assert(zone.Players.size == 1)
|
||||
|
|
@ -251,6 +256,7 @@ class ZonePopulationTest extends ActorTest {
|
|||
val zone = new Zone("test", new ZoneMap(""), 0) { override def SetupNumberPools() = {} }
|
||||
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||
val player = Player(avatar)
|
||||
player.GUID = PlanetSideGUID(1)
|
||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||
expectNoMessage(200 milliseconds)
|
||||
zone.Population ! Zone.Population.Join(avatar)
|
||||
|
|
@ -271,6 +277,7 @@ class ZonePopulationTest extends ActorTest {
|
|||
val zone = new Zone("test", new ZoneMap(""), 0) { override def SetupNumberPools() = {} }
|
||||
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||
val player = Player(avatar)
|
||||
player.GUID = PlanetSideGUID(1)
|
||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||
expectNoMessage(200 milliseconds)
|
||||
zone.Population ! Zone.Population.Join(avatar)
|
||||
|
|
@ -318,7 +325,9 @@ class ZonePopulationTest extends ActorTest {
|
|||
val zone = new Zone("test", new ZoneMap(""), 0) { override def SetupNumberPools() = {} }
|
||||
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||
val player1 = Player(avatar)
|
||||
player1.GUID = PlanetSideGUID(1)
|
||||
val player2 = Player(avatar)
|
||||
player2.GUID = PlanetSideGUID(2)
|
||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||
expectNoMessage(200 milliseconds)
|
||||
zone.Population ! Zone.Population.Join(avatar)
|
||||
|
|
@ -344,6 +353,7 @@ class ZonePopulationTest extends ActorTest {
|
|||
val zone = new Zone("test", new ZoneMap(""), 0) { override def SetupNumberPools() = {} }
|
||||
val avatar = Avatar(0, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||
val player = Player(avatar)
|
||||
player.GUID = PlanetSideGUID(1)
|
||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||
expectNoMessage(200 milliseconds)
|
||||
|
||||
|
|
@ -364,10 +374,12 @@ class ZonePopulationTest extends ActorTest {
|
|||
override def SetupNumberPools() = {}
|
||||
}
|
||||
val avatar = Avatar(2, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5)
|
||||
val player = Player(avatar)
|
||||
player.GUID = PlanetSideGUID(1)
|
||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||
expectNoMessage(200 milliseconds)
|
||||
zone.Population ! Zone.Population.Join(avatar)
|
||||
zone.Population ! Zone.Population.Spawn(avatar, Player(avatar), null)
|
||||
zone.Population ! Zone.Population.Spawn(avatar, player, null)
|
||||
expectNoMessage(Duration.create(100, "ms"))
|
||||
|
||||
assert(zone.Players.size == 1)
|
||||
|
|
@ -388,6 +400,7 @@ class ZonePopulationTest extends ActorTest {
|
|||
override def SetupNumberPools() = {}
|
||||
}
|
||||
val player = Player(Avatar(3, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
|
||||
player.GUID = PlanetSideGUID(1)
|
||||
player.Release
|
||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||
expectNoMessage(200 milliseconds)
|
||||
|
|
@ -404,6 +417,7 @@ class ZonePopulationTest extends ActorTest {
|
|||
override def SetupNumberPools() = {}
|
||||
}
|
||||
val player = Player(Avatar(4, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
|
||||
player.GUID = PlanetSideGUID(1)
|
||||
player.Release
|
||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||
expectNoMessage(200 milliseconds)
|
||||
|
|
@ -422,10 +436,13 @@ class ZonePopulationTest extends ActorTest {
|
|||
override def SetupNumberPools() = {}
|
||||
}
|
||||
val player1 = Player(Avatar(5, "Chord1", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
|
||||
player1.GUID = PlanetSideGUID(1)
|
||||
player1.Release
|
||||
val player2 = Player(Avatar(6, "Chord2", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
|
||||
player2.GUID = PlanetSideGUID(2)
|
||||
player2.Release
|
||||
val player3 = Player(Avatar(7, "Chord3", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
|
||||
player3.GUID = PlanetSideGUID(3)
|
||||
player3.Release
|
||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||
expectNoMessage(200 milliseconds)
|
||||
|
|
@ -450,6 +467,7 @@ class ZonePopulationTest extends ActorTest {
|
|||
override def SetupNumberPools() = {}
|
||||
}
|
||||
val player = Player(Avatar(8, "Chord", PlanetSideEmpire.TR, CharacterGender.Male, 0, CharacterVoice.Voice5))
|
||||
player.GUID = PlanetSideGUID(1)
|
||||
//player.Release !!important
|
||||
zone.actor = system.spawn(ZoneActor(zone), ZoneTest.TestName)
|
||||
expectNoMessage(200 milliseconds)
|
||||
|
|
|
|||
Loading…
Reference in a new issue