Files
2026-06-07 21:19:01 -04:00

300 lines
6.3 KiB
Plaintext

# =============================================================================
# Giga + Age of Wonder Compatibility Patch — hyper_relay family [TIER 1]
# Loads after both mods, so these definitions win the merge.
#
# MERGE METHOD (Tier 1 template):
# * Base = Giga's definition — it uses the modern 4.x dismantle API
# (dismantle_cost/dismantle_possible/...), the correct hyper-relay portrait,
# the richer `possible` block, Giga's AI weighting, and already lists
# `giga_hyper_relay_ai_site` in upgrade_from (so Giga's AI relay placement
# keeps working).
# * Graft from AOW = its per-structure enable/disable toggle
# `AOW_trigger_mega_potential = { KEY = hyper_relay }`, added to `potential`
# so AOW's settings menu can still disable the relay. (Defaults to enabled.)
# * upgrade_from = union of both — Giga's is already the superset here.
# Net: nothing from either mod is lost regardless of load order.
# =============================================================================
hyper_relay = {
entity = "hyper_relay_entity"
construction_entity = "hyper_relay_entity"
portrait = "GFX_megastructure_hyper_relay_background"
place_entity_on_planet_plane = no
build_outside_gravity_well = yes
show_galactic_map_icon = no
build_time = 360
show_in_outliner = no
resources = {
category = megastructures_hyper_relay
cost = {
trigger = {
NOT = { has_country_flag = flash_forge_hyper_relay_activated }
}
rare_crystals = 100
influence = 25
}
inline_script = {
script = megastructures/generic_parts/giga_mega_alloy_cost
condition = "NOT = { has_country_flag = flash_forge_hyper_relay_activated }"
alloys = 500
}
upkeep = {
energy = 2
}
}
construction_blocks_and_blocked_by = self_type
build_megastructure_no_cost_localization_key = "FLASH_FORGE_MEGASTRUCTURE"
dismantle_cost = {
category = megastructures_hyper_relay
cost = {
energy = 500
}
}
dismantle_time = 360
dismantle_potential = {
always = yes
}
dismantle_possible = {
can_dismantle_megastructure = {
TECH = tech_hyper_relays
}
}
on_dismantle_complete = {
from = {
add_resource = {
alloys = 500
rare_crystals = 100
mult = modifier:megastructure_dismantle_refund_mult
}
}
}
potential = {
has_technology = tech_hyper_relays
AOW_trigger_mega_potential = { KEY = hyper_relay } # AOW toggle (merged in)
}
possible = {
hidden_trigger = {
exists = starbase
}
custom_tooltip = {
fail_text = "requires_inside_border_or_subject"
OR = {
is_inside_border = from
AND = {
exists = owner
owner = {
is_subject = yes
overlord = { is_same_value = from }
}
}
}
}
custom_tooltip = {
fail_text = "requires_surveyed_system" # or is in my subject's territory
OR = {
NOT = {
any_system_planet = {
is_surveyed = {
who = prev.from
status = no
}
}
}
AND = {
exists = owner
owner = {
is_subject = yes
overlord = { is_same_value = from }
}
}
}
}
custom_tooltip = {
fail_text = "requires_no_existing_hyper_relay"
NOR = {
has_megastructure = hyper_relay
has_megastructure = hyper_relay_ruined
has_megastructure = hyper_relay_restored
}
}
custom_tooltip = {
fail_text = "requires_technology_hyper_relays"
from = { has_technology = tech_hyper_relays }
}
custom_tooltip = {
fail_text = "requires_hyperlane"
count_neighbor_system = {
count > 0
}
}
}
placement_rules = { # those would be ignored since the hyper relay is being "free-placed" between the inner and outer radius of the system
}
# root = system
# from = country
ai_weight = {
weight = value:giga_ai_base_kilo
modifier = {
factor = 3
is_capital_system = yes
}
modifier = {
factor = 1.5
any_neighbor_system = {
OR = {
has_megastructure = hyper_relay
has_megastructure = hyper_relay_restored
}
}
}
modifier = {
factor = 1.5
count_system_colony = {
count > 0
}
}
modifier = {
factor = 0.2
from = {
is_gestalt = no
}
is_capital_system = no
}
}
bypass_type = relay_bypass
on_build_queued = {
fromfrom = {
fleet_event = { id = astral_planes.1010 }
}
}
on_build_unqueued = {
fromfrom = {
fleet_event = { id = astral_planes.1015 }
}
}
on_build_complete = {
fromfromfrom = {
fleet_event = { id = astral_planes.1020 }
}
from = {
country_event = { id = tutorial.2131 }
}
}
}
# Ruined Hyper Relay
## Tags: @ruined
hyper_relay_ruined = {
entity = "hyper_relay_01_destroyed_entity"
portrait = "GFX_megastructure_construction_background"
place_entity_on_planet_plane = no
build_outside_gravity_well = yes
# not a valid bypass. bypass_type = relay_bypass
show_galactic_map_icon = no
show_in_outliner = no
construction_blocks_and_blocked_by = self_type
potential = {
always = no
}
}
# Restored Hyper Relay
## Tags: @restored
hyper_relay_restored = {
entity = "hyper_relay_entity"
construction_entity = "hyper_relay_entity"
portrait = "GFX_megastructure_construction_background"
place_entity_on_planet_plane = no
# build_outside_gravity_well = yes
show_galactic_map_icon = no
bypass_type = relay_bypass
show_in_outliner = no
potential = {
has_technology = tech_hyper_relays
}
dismantle_cost = {
category = megastructures_hyper_relay
cost = {
energy = 500
}
}
dismantle_time = 360
dismantle_potential = {
always = yes
}
dismantle_possible = {
can_dismantle_megastructure = {
TECH = tech_hyper_relays
}
}
on_dismantle_complete = {
from = {
add_resource = {
alloys = 500
rare_crystals = 100
mult = modifier:megastructure_dismantle_refund_mult
}
}
}
possible = {
custom_tooltip = {
fail_text = "requires_tech_hyper_drive_2"
from = { has_technology = tech_hyper_drive_2 }
}
}
upgrade_from = {
hyper_relay_ruined
giga_hyper_relay_ai_site
}
build_time = 180
resources = {
category = megastructures_hyper_relay
cost = {
alloys = 500
rare_crystals = 100
energy = 500
}
upkeep = {
energy = 2
}
}
construction_blocks_and_blocked_by = self_type
on_build_start = {
fromfrom = {
set_graphical_culture = root.from
}
}
on_build_complete = {
if = {
limit = { exists = from } #does not always exist when upgraded from script via "finish_upgrade = yes"
from = {
country_event = { id = tutorial.2131 }
}
}
}
}