mirror of
https://github.com/2revoemag/PSF-BotServer.git
synced 2026-07-08 13:04:40 +00:00
Intercontinental Gaslighting (#998)
* diversified building management by injecting behavior; allocated entries for the intercontinental lattice and have begun connecting warp gate entities along the intercontinental lattice; beginnings of warp gate broadcast operations; disabled free merit commendations * allow transit across a predetermined warp gate path, i.e., proper zone-to-zone gating * game variables for modifying warp gate behaviors; moved choice of building game logic into overloaded constructor; only handle the capitol fore dome in more realistic conditions; warp gate state restored primarily b y internal game logic; changes to which and how gates are declared inactive or broadcast at startup * initial work on WarpgateLinkOverrideMessage, even if the packet doesn't seem to do anything; added basic service for rotating cavern zone locks via the galaxy messaging service; moved error checking for lattice connectedness * cavern closing warning messages queued * starting to set up ChatActor for /zlock command, and added /setbaseresources; conditions for correcting broadcast conditions of a locking warp gate pair; system for rotating through locking and unlocking cavern zones only uses two timers now and has an advance command that speeds to the next closing warning or cavern opening * expedited cavern rotations available via '/zonerotate' and '!zonerotate [-list]'; '/zonelock' should work for caverns, though distorting the rotation order to accommodate the cavern being unlocked; configuration arguments exist for the setup of cavern rotations and for the rotation itself * populated cavern lattice connections for a specific rotation order; warp gates will properly activate and deactivate and modify their neighborhood information based on which stage of the rotation; fed up with the blockmap going wrong; added a sanity test for the cavern lattice; Spiker damage calculation changes * adjusted local variable requirements of BuildingActor to integrate retained actors more closely with the Behavior; on the other hand, another value is passed around the logic * bug fixes observed from issues found in logs since 20220520; halved the spawn height when gating to a cavern warpgate * cavern benefits are now represented by enumeration classes rather than additive binary numbers; when facilities change state, benefits are evaluated; when caverns rotate, benefits are evaluated; cavern facility logic added; attempted handling for inventory disarray conditions (untested) * broke down tabs for easier navigation; added test to stop spawning of cavern equipment when not otherwise permitted * code comments, everywhere; correcting issues with cavern rotation timing reports * but is it flying?
This commit is contained in:
parent
546a4e4f0d
commit
ced228509c
63 changed files with 4445 additions and 1235 deletions
|
|
@ -110,6 +110,43 @@ game {
|
|||
standard_armor,
|
||||
agile_armor
|
||||
]
|
||||
|
||||
warp-gates {
|
||||
# When a gating fails, fall back to sanctuary rather than stay in the same zone
|
||||
default-to-sanctuary-destination = yes
|
||||
|
||||
# When a facility next to a warp gate is captured by one faction,
|
||||
# if the facility on the other side of the intercontinental gate pair is owned by a different faction,
|
||||
# that gate pair becomes a broadcast warp gate for those factions
|
||||
broadcast-between-conflicted-factions = yes
|
||||
}
|
||||
|
||||
cavern-rotation = {
|
||||
# The number of hours between any given cavern locking and another cavern unlocking,
|
||||
# not the total number of hours between a single cavern locking and unlocking.
|
||||
hours-between-rotation = 3
|
||||
|
||||
# How many caverns are unlocked at once during rotations
|
||||
# Pay attention to the logs that a corresponding combinational existence found in zonemaps/lattice.json
|
||||
# Examples:
|
||||
# [a,b,c] with 1 requires 'caverns-a' 'caverns-b' 'caverns-c'
|
||||
# [a,b,c] with 2 requires 'caverns-a-b' 'caverns-b-c' 'caverns-a-c'
|
||||
# [a,b,c] with 3 requires 'caverns-a-b-c'
|
||||
# [a,b,c,d] with 3 requires 'caverns-a-b-c' 'caverns-b-c-d' 'caverns-a-c-d' 'caverns-a-b-d'
|
||||
simultaneous-unlocked-zones = 2
|
||||
|
||||
# A list of zone numbers that correspond to the caverns, in a continuous order
|
||||
# in which the caverns are locked and are unlocked.
|
||||
# When left empty, the order of the caverns is traversed as-is provided
|
||||
# For example, for cavern zones with number [23, 24, 25, 26, 27, 28],
|
||||
# the order [23, 24, 26, 23, 24, 25, 26] would eliminate #27 and #28 from the rotation
|
||||
enhanced-rotation-order = [23, 24, 25, 26, 27, 28]
|
||||
|
||||
# If a cavern rotation is forced by the system,
|
||||
# the system will attempt to advance only to the first possible closing warning message at five minutes
|
||||
# When set, however, the next zone unlock is carried out regardless of the amount of time remaining
|
||||
force-rotation-immediately = false
|
||||
}
|
||||
}
|
||||
|
||||
anti-cheat {
|
||||
|
|
|
|||
|
|
@ -1027,7 +1027,7 @@
|
|||
"Map99_Gate_Three"
|
||||
]
|
||||
],
|
||||
"udg01": [
|
||||
"ugd01": [
|
||||
[
|
||||
"N_Redoubt",
|
||||
"N_ATPlant"
|
||||
|
|
@ -1077,7 +1077,7 @@
|
|||
"S_ATPlant"
|
||||
]
|
||||
],
|
||||
"udg02": [
|
||||
"ugd02": [
|
||||
[
|
||||
"N_Redoubt",
|
||||
"N_ATPlant"
|
||||
|
|
@ -1127,7 +1127,7 @@
|
|||
"S_ATPlant"
|
||||
]
|
||||
],
|
||||
"udg03": [
|
||||
"ugd03": [
|
||||
[
|
||||
"NW_Redoubt",
|
||||
"NW_ATPlant"
|
||||
|
|
@ -1177,7 +1177,7 @@
|
|||
"SE_ATPlant"
|
||||
]
|
||||
],
|
||||
"udg04": [
|
||||
"ugd04": [
|
||||
[
|
||||
"N_Redoubt",
|
||||
"N_ATPlant"
|
||||
|
|
@ -1227,7 +1227,7 @@
|
|||
"S_ATPlant"
|
||||
]
|
||||
],
|
||||
"udg05": [
|
||||
"ugd05": [
|
||||
[
|
||||
"NW_Redoubt",
|
||||
"NW_ATPlant"
|
||||
|
|
@ -1281,7 +1281,7 @@
|
|||
"SE_ATPlant"
|
||||
]
|
||||
],
|
||||
"udg06": [
|
||||
"ugd06": [
|
||||
[
|
||||
"N_Redoubt",
|
||||
"N_ATPlant"
|
||||
|
|
@ -1330,5 +1330,423 @@
|
|||
"GW_Cavern6_S",
|
||||
"S_ATPlant"
|
||||
]
|
||||
],
|
||||
"intercontinental": [
|
||||
[
|
||||
"z1/WG_Solsar_to_Amerish",
|
||||
"home2/WG_TRSanc_to_Cyssor"
|
||||
],
|
||||
[
|
||||
"z1/WG_Solsar_to_Cyssor",
|
||||
"z3/WG_Cyssor_to_NCSanc"
|
||||
],
|
||||
[
|
||||
"z1/WG_Solsar_to_Hossin",
|
||||
"z6/WG_Ceryshen_to_Forseral"
|
||||
],
|
||||
[
|
||||
"z1/WG_Solsar_to_Forseral",
|
||||
"i3/Map97_Gate_One"
|
||||
],
|
||||
[
|
||||
"z2/WG_Hossin_to_VSSanc",
|
||||
"home2/WG_TRSanc_to_Forseral"
|
||||
],
|
||||
[
|
||||
"z2/WG_Hossin_to_Solsar",
|
||||
"z4/WG_Ishundar_to_Searhus"
|
||||
],
|
||||
[
|
||||
"z2/WG_Hossin_to_Ceryshen",
|
||||
"z10/WG_Amerish_to_Ceryshen"
|
||||
],
|
||||
[
|
||||
"z2/WG_Hossin_to_Oshur",
|
||||
"z9/WG_Searhus_to_Ishundar"
|
||||
],
|
||||
[
|
||||
"z3/WG_Cyssor_to_Searhus",
|
||||
"z7/WG_Esamir_to_Oshur"
|
||||
],
|
||||
[
|
||||
"z3/WG_Cyssor_to_Solsar",
|
||||
"z4/WG_Ishundar_to_VSSanc"
|
||||
],
|
||||
[
|
||||
"z3/WG_Cyssor_to_TRSanc",
|
||||
"z6/WG_Ceryshen_to_Amerish"
|
||||
],
|
||||
[
|
||||
"z4/WG_Ishundar_to_TRSanc",
|
||||
"z7/WG_Esamir_to_Searhus"
|
||||
],
|
||||
[
|
||||
"z4/WG_Ishundar_to_Ceryshen",
|
||||
"z5/WG_Forseral_to_Ceryshen"
|
||||
],
|
||||
[
|
||||
"z5/WG_Forseral_to_TRSanc",
|
||||
"i2/Map98_Gate_One"
|
||||
],
|
||||
[
|
||||
"z5/WG_Forseral_to_Solsar",
|
||||
"home3/WG_VSSanc_to_Hossin"
|
||||
],
|
||||
[
|
||||
"z5/WG_Forseral_to_Oshur",
|
||||
"z7/WG_Esamir_to_NCSanc"
|
||||
],
|
||||
[
|
||||
"z6/WG_Ceryshen_to_Ishundar",
|
||||
"z9/WG_Searhus_to_Esamir"
|
||||
],
|
||||
[
|
||||
"z6/WG_Ceryshen_to_Hossin",
|
||||
"home3/WG_VSSanc_to_Esamir"
|
||||
],
|
||||
[
|
||||
"z7/WG_Esamir_to_VSSanc",
|
||||
"home1/WG_NCSanc_to_Esamir"
|
||||
],
|
||||
[
|
||||
"z9/WG_Searhus_to_Cyssor",
|
||||
"z10/WG_Amerish_to_NCSanc"
|
||||
],
|
||||
[
|
||||
"z10/WG_Amerish_to_Solsar",
|
||||
"home1/WG_NCSanc_to_Amerish"
|
||||
],
|
||||
[
|
||||
"z10/WG_Amerish_to_Oshur",
|
||||
"i1/Map99_Gate_One"
|
||||
],
|
||||
[
|
||||
"i1/Map99_Gate_Two",
|
||||
"i3/Map97_Gate_Three"
|
||||
],
|
||||
[
|
||||
"i2/Map98_Gate_Three",
|
||||
"i3/Map97_Gate_Two"
|
||||
],
|
||||
[
|
||||
"i4/Map96_Gate_One",
|
||||
"i2/Map98_Gate_Two"
|
||||
],
|
||||
[
|
||||
"i4/Map96_Gate_Two",
|
||||
"i1/Map99_Gate_Three"
|
||||
]
|
||||
],
|
||||
"caverns-c1": [
|
||||
[
|
||||
"c1/GW_Cavern1_N",
|
||||
"z10/GW_Amerish_N"
|
||||
],
|
||||
[
|
||||
"c1/GW_Cavern1_S",
|
||||
"z5/GW_Forseral_N"
|
||||
],
|
||||
[
|
||||
"c1/GW_Cavern1_E",
|
||||
"z1/GW_Solsar_N"
|
||||
],
|
||||
[
|
||||
"c1/GW_Cavern1_W",
|
||||
"z4/GW_Ishundar_N"
|
||||
]
|
||||
],
|
||||
"caverns-c2": [
|
||||
[
|
||||
"c2/GW_Cavern2_N",
|
||||
"z5/GW_Forseral_N"
|
||||
],
|
||||
[
|
||||
"c2/GW_Cavern2_S",
|
||||
"z3/GW_Cyssor_S"
|
||||
],
|
||||
[
|
||||
"c2/GW_Cavern2_E",
|
||||
"z6/GW_Ceryshen_S"
|
||||
],
|
||||
[
|
||||
"c2/GW_Cavern2_W",
|
||||
"z7/GW_Esamir_S"
|
||||
]
|
||||
],
|
||||
"caverns-c3": [
|
||||
[
|
||||
"c3/GW_Cavern3_N",
|
||||
"z7/GW_Esamir_S"
|
||||
],
|
||||
[
|
||||
"c3/GW_Cavern3_S",
|
||||
"z2/GW_Hossin_N"
|
||||
],
|
||||
[
|
||||
"c3/GW_Cavern3_E",
|
||||
"z5/GW_Forseral_N"
|
||||
],
|
||||
[
|
||||
"c3/GW_Cavern3_W",
|
||||
"z9/GW_Searhus_S"
|
||||
]
|
||||
],
|
||||
"caverns-c4": [
|
||||
[
|
||||
"c4/GW_Cavern4_N",
|
||||
"z5/GW_Forseral_N"
|
||||
],
|
||||
[
|
||||
"c4/GW_Cavern4_S",
|
||||
"z10/GW_Amerish_N"
|
||||
],
|
||||
[
|
||||
"c4/GW_Cavern4_E",
|
||||
"z7/GW_Esamir_S"
|
||||
],
|
||||
[
|
||||
"c4/GW_Cavern4_W",
|
||||
"z3/GW_Cyssor_S"
|
||||
]
|
||||
],
|
||||
"caverns-c5": [
|
||||
[
|
||||
"c5/GW_Cavern5_N",
|
||||
"z2/GW_Hossin_N"
|
||||
],
|
||||
[
|
||||
"c5/GW_Cavern5_S",
|
||||
"z1/GW_Solsar_N"
|
||||
],
|
||||
[
|
||||
"c5/GW_Cavern5_E",
|
||||
"z3/GW_Cyssor_S"
|
||||
],
|
||||
[
|
||||
"c5/GW_Cavern5_W",
|
||||
"z9/GW_Searhus_N"
|
||||
]
|
||||
],
|
||||
"caverns-c6": [
|
||||
[
|
||||
"c6/GW_Cavern6_N",
|
||||
"z5/GW_Forseral_S"
|
||||
],
|
||||
[
|
||||
"c6/GW_Cavern6_S",
|
||||
"z2/GW_Hossin_S"
|
||||
],
|
||||
[
|
||||
"c6/GW_Cavern6_E",
|
||||
"z4/GW_Ishundar_S"
|
||||
],
|
||||
[
|
||||
"c6/GW_Cavern6_W",
|
||||
"z3/GW_Cyssor_S"
|
||||
]
|
||||
],
|
||||
"caverns-c1-c2": [
|
||||
[
|
||||
"c1/GW_Cavern1_N",
|
||||
"z9/GW_Searhus_N"
|
||||
],
|
||||
[
|
||||
"c1/GW_Cavern1_S",
|
||||
"z6/GW_Ceryshen_N"
|
||||
],
|
||||
[
|
||||
"c1/GW_Cavern1_E",
|
||||
"z1/GW_Solsar_S"
|
||||
],
|
||||
[
|
||||
"c1/GW_Cavern1_W",
|
||||
"z3/GW_Cyssor_N"
|
||||
],
|
||||
[
|
||||
"c2/GW_Cavern2_N",
|
||||
"z4/GW_Ishundar_S"
|
||||
],
|
||||
[
|
||||
"c2/GW_Cavern2_S",
|
||||
"z2/GW_Hossin_N"
|
||||
],
|
||||
[
|
||||
"c2/GW_Cavern2_E",
|
||||
"z7/GW_Esamir_S"
|
||||
],
|
||||
[
|
||||
"c2/GW_Cavern2_W",
|
||||
"z10/GW_Amerish_S"
|
||||
]
|
||||
],
|
||||
"caverns-c2-c3": [
|
||||
[
|
||||
"c2/GW_Cavern2_N",
|
||||
"z7/GW_Esamir_N"
|
||||
],
|
||||
[
|
||||
"c2/GW_Cavern2_S",
|
||||
"z4/GW_Ishundar_S"
|
||||
],
|
||||
[
|
||||
"c2/GW_Cavern2_E",
|
||||
"z3/GW_Cyssor_S"
|
||||
],
|
||||
[
|
||||
"c2/GW_Cavern2_W",
|
||||
"z2/GW_Hossin_N"
|
||||
],
|
||||
[
|
||||
"c3/GW_Cavern3_N",
|
||||
"z10/GW_Amerish_N"
|
||||
],
|
||||
[
|
||||
"c3/GW_Cavern3_S",
|
||||
"z1/GW_Solsar_N"
|
||||
],
|
||||
[
|
||||
"c3/GW_Cavern3_E",
|
||||
"z6/GW_Ceryshen_N"
|
||||
],
|
||||
[
|
||||
"c3/GW_Cavern3_W",
|
||||
"z5/GW_Forseral_S"
|
||||
]
|
||||
],
|
||||
"caverns-c3-c4": [
|
||||
[
|
||||
"c3/GW_Cavern3_N",
|
||||
"z6/GW_Ceryshen_N"
|
||||
],
|
||||
[
|
||||
"c3/GW_Cavern3_S",
|
||||
"z4/GW_Ishundar_S"
|
||||
],
|
||||
[
|
||||
"c3/GW_Cavern3_E",
|
||||
"z10/GW_Amerish_S"
|
||||
],
|
||||
[
|
||||
"c3/GW_Cavern3_W",
|
||||
"z2/GW_Hossin_S"
|
||||
],
|
||||
[
|
||||
"c4/GW_Cavern4_N",
|
||||
"z5/GW_Forseral_N"
|
||||
],
|
||||
[
|
||||
"c4/GW_Cavern4_S",
|
||||
"z7/GW_Esamir_S"
|
||||
],
|
||||
[
|
||||
"c4/GW_Cavern4_E",
|
||||
"z9/GW_Searhus_N"
|
||||
],
|
||||
[
|
||||
"c4/GW_Cavern4_W",
|
||||
"z3/GW_Cyssor_N"
|
||||
]
|
||||
],
|
||||
"caverns-c4-c5": [
|
||||
[
|
||||
"c4/GW_Cavern4_N",
|
||||
"z4/GW_Ishundar_N"
|
||||
],
|
||||
[
|
||||
"c4/GW_Cavern4_S",
|
||||
"z1/GW_Solsar_S"
|
||||
],
|
||||
[
|
||||
"c4/GW_Cavern4_E",
|
||||
"z3/GW_Cyssor_N"
|
||||
],
|
||||
[
|
||||
"c4/GW_Cavern4_W",
|
||||
"z2/GW_Hossin_N"
|
||||
],
|
||||
[
|
||||
"c5/GW_Cavern5_N",
|
||||
"z10/GW_Amerish_N"
|
||||
],
|
||||
[
|
||||
"c5/GW_Cavern5_S",
|
||||
"z6/GW_Ceryshen_N"
|
||||
],
|
||||
[
|
||||
"c5/GW_Cavern5_E",
|
||||
"z7/GW_Esamir_S"
|
||||
],
|
||||
[
|
||||
"c5/GW_Cavern5_W",
|
||||
"z9/GW_Searhus_N"
|
||||
]
|
||||
],
|
||||
"caverns-c5-c6": [
|
||||
[
|
||||
"c5/GW_Cavern5_N",
|
||||
"z10/GW_Amerish_S"
|
||||
],
|
||||
[
|
||||
"c5/GW_Cavern5_S",
|
||||
"z7/GW_Esamir_S"
|
||||
],
|
||||
[
|
||||
"c5/GW_Cavern5_E",
|
||||
"z2/GW_Hossin_S"
|
||||
],
|
||||
[
|
||||
"c5/GW_Cavern5_W",
|
||||
"z1/GW_Solsar_N"
|
||||
],
|
||||
[
|
||||
"c6/GW_Cavern6_N",
|
||||
"z5/GW_Forseral_N"
|
||||
],
|
||||
[
|
||||
"c6/GW_Cavern6_S",
|
||||
"z3/GW_Cyssor_N"
|
||||
],
|
||||
[
|
||||
"c6/GW_Cavern6_E",
|
||||
"z6/GW_Ceryshen_N"
|
||||
],
|
||||
[
|
||||
"c6/GW_Cavern6_W",
|
||||
"z9/GW_Searhus_N"
|
||||
]
|
||||
],
|
||||
"caverns-c1-c6": [
|
||||
[
|
||||
"c1/GW_Cavern1_N",
|
||||
"z3/GW_Cyssor_S"
|
||||
],
|
||||
[
|
||||
"c1/GW_Cavern1_S",
|
||||
"z1/GW_Solsar_S"
|
||||
],
|
||||
[
|
||||
"c1/GW_Cavern1_E",
|
||||
"z6/GW_Ceryshen_S"
|
||||
],
|
||||
[
|
||||
"c1/GW_Cavern1_W",
|
||||
"z5/GW_Forseral_N"
|
||||
],
|
||||
[
|
||||
"c6/GW_Cavern6_N",
|
||||
"z2/GW_Hossin_S"
|
||||
],
|
||||
[
|
||||
"c6/GW_Cavern6_S",
|
||||
"z10/GW_Amerish_N"
|
||||
],
|
||||
[
|
||||
"c6/GW_Cavern6_E",
|
||||
"z9/GW_Searhus_N"
|
||||
],
|
||||
[
|
||||
"c6/GW_Cavern6_W",
|
||||
"z4/GW_Ishundar_N"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue