Flaky Facility Faction Fix (#751)

* constantly starting at full power

* created a token control agency for llu sockets
This commit is contained in:
Fate-JH 2021-04-07 14:11:47 -04:00 committed by GitHub
parent ee969b2737
commit 41b3eb5f66
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 37 additions and 11 deletions

View file

@ -355,6 +355,8 @@ class ChatActor(
val soi2 = building.Definition.SOIRadius * building.Definition.SOIRadius
Vector3.DistanceSquared(building.Position, position) < soi2
}
case Some(all) if all.toLowerCase.startsWith("all") =>
session.zone.Buildings.values
case Some(x) =>
session.zone.Buildings.values.find { _.Name.equalsIgnoreCase(x) }.toList
case _ =>

View file

@ -6833,7 +6833,7 @@ class SessionActor(middlewareActor: typed.ActorRef[MiddlewareActor.Command], con
//silo capacity
sendResponse(PlanetsideAttributeMessage(amenityId, 45, silo.CapacitorDisplay))
//warning lights
sendResponse(PlanetsideAttributeMessage(silo.Owner.GUID, 47, if (silo.LowNtuWarningOn) 1 else 0))
sendResponse(PlanetsideAttributeMessage(silo.Owner.GUID, 47, silo.LowNtuWarningOn))
if (silo.NtuCapacitor == 0) {
sendResponse(PlanetsideAttributeMessage(silo.Owner.GUID, 48, 1))
}

View file

@ -1,6 +1,6 @@
package net.psforever.objects.serverobject.llu
import akka.actor.ActorContext
import akka.actor.{ActorContext, Props}
import net.psforever.objects.GlobalDefinitions
import net.psforever.objects.serverobject.structures.Amenity
import net.psforever.types.Vector3
@ -24,9 +24,10 @@ object CaptureFlagSocket {
Constructor(GlobalDefinitions.llm_socket, pos)(id, context)
}
def Constructor(tdef: CaptureFlagSocketDefinition, pos: Vector3)(id: Int, context: ActorContext) : CaptureFlagSocket = {
def Constructor(tdef: CaptureFlagSocketDefinition, pos: Vector3)(id: Int, context: ActorContext): CaptureFlagSocket = {
val obj = CaptureFlagSocket(tdef)
obj.Position = pos
obj.Actor = context.actorOf(Props(classOf[CaptureFlagSocketControl], obj), s"${obj.Definition.Name}_$id")
obj
}
}

View file

@ -0,0 +1,20 @@
// Copyright (c) 2020 PSForever
package net.psforever.objects.serverobject.llu
import akka.actor.Actor
import net.psforever.objects.serverobject.affinity.FactionAffinityBehavior
/**
* An `Actor` that handles messages being dispatched to a lattice logic unit (LLU) socket.
* Actually does nothing lol
* @param socket the socket entity being governed
*/
class CaptureFlagSocketControl(socket: CaptureFlagSocket)
extends Actor
with FactionAffinityBehavior.Check {
def FactionObject = socket
def receive: Receive = {
case _ => ;
}
}

View file

@ -15,6 +15,7 @@ class ResourceSilo extends Amenity with CommonNtuContainer {
// For the NTU display bar
private var capacitorDisplay: Long = 0
NtuCapacitor = Definition.MaxNtuCapacitor
def MaxNtuCapacitor : Float = Definition.MaxNtuCapacitor

View file

@ -32,9 +32,10 @@ class ResourceSiloControl(resourceSilo: ResourceSilo)
var panelAnimationFunc: (ActorRef, Float) => Unit = PanelAnimation
def receive: Receive = {
case "startup" =>
case Service.Startup() =>
resourceSilo.Owner match {
case building: Building =>
UpdateChargeLevel(amount = 0)
building.Actor ! (if (resourceSilo.NtuCapacitor <= 0f ) {
BuildingActor.NtuDepleted()
} else {

View file

@ -663,7 +663,7 @@ class Zone(val id: String, val map: ZoneMap, zoneNumber: Int) {
.flatMap(_.Amenities.filter(_.Definition == GlobalDefinitions.resource_silo))
.collect {
case silo: ResourceSilo =>
silo.Actor ! "startup"
silo.Actor ! Service.Startup()
}
//some painfields need to look for their closest door
buildings.values

View file

@ -621,12 +621,13 @@ object Zones {
def initResourceSilos(zone: Zone): Unit = {
// todo: load silo charge from database
zone.Buildings.values.flatMap {
_.Amenities.collect {
case silo: ResourceSilo =>
silo.Actor ! ResourceSilo.UpdateChargeLevel(silo.MaxNtuCapacitor)
}
}
// todo: load silo charge from this function call
// zone.Buildings.values.flatMap {
// _.Amenities.collect {
// case silo: ResourceSilo =>
// silo.Actor ! ResourceSilo.UpdateChargeLevel(silo.MaxNtuCapacitor)
// }
// }
}
}