Removed Unnecessary Mod Files; Updated Mods

This commit is contained in:
2024-03-20 06:40:41 -04:00
parent 7f0caa168b
commit 290378b961
185 changed files with 14333 additions and 8374 deletions
@@ -1,49 +0,0 @@
[smart_terrain]
squad_id = 1
max_population = 3
respawn_params = respawn@katacomb_smart_terrain
respawn_idle = 43200
[respawn@katacomb_smart_terrain] ;-- Type: faction {greh} = faction base
spawn_greh@veteran
spawn_greh@advanced
spawn_greh@novice
spawn_heli_strong
spawn_heli_weak
[spawn_greh@novice]
spawn_squads = greh_sim_squad_novice, greh_sim_squad_novice
spawn_num = {+mortal_sin -kat_greh_sabaoth_mortal_sin} 3, 0
[spawn_greh@advanced]
spawn_squads = greh_sim_squad_advanced, greh_sim_squad_veteran
spawn_num = {+mortal_sin -kat_greh_sabaoth_mortal_sin} 3, 0
[spawn_greh@veteran]
spawn_squads = greh_sim_squad_advanced, greh_sim_squad_veteran
spawn_num = {+mortal_sin -kat_greh_sabaoth_mortal_sin} 2, 0
[spawn_heli_strong]
spawn_helicopter = simulation_monolith_helicopter_strong
spawn_num = {!down_to_earth_functor !heli_exist_on_level} 1, 0
[spawn_heli_weak]
spawn_helicopter = simulation_monolith_helicopter_weak
spawn_num = {=down_to_earth_functor !heli_exist_on_level} 1, 0
[exclusive]
kat_greh_sabaoth = katacomb_hospital\kat_greh_sabaoth.ltx
kat_greh_tech = katacomb_hospital\kat_greh_tech.ltx
kat_greh_trader = katacomb_hospital\kat_greh_trader.ltx
kat_greh_guide = katacomb_hospital\kat_greh_guide.ltx
kat_hosp_z1_minigunner_excl = katacomb_hospital\katacomb_smart_terrain_logic.ltx
kat_hosp_z3_minigunner_excl = katacomb_hospital\katacomb_smart_terrain_logic.ltx
kat_greh_squad_guard_mlr_1 = katacomb_hospital\kat_greh_mlr_characters_logic.ltx
kat_greh_squad_guard_mlr_2 = katacomb_hospital\kat_greh_mlr_characters_logic.ltx
kat_greh_squad_guard_mlr_3 = katacomb_hospital\kat_greh_mlr_characters_logic.ltx
kat_greh_squad_guard_mlr_4 = katacomb_hospital\kat_greh_mlr_characters_logic.ltx
kat_greh_squad_guard_mlr_5 = katacomb_hospital\kat_greh_mlr_characters_logic.ltx
kat_greh_squad_guard_mlr_6 = katacomb_hospital\kat_greh_mlr_characters_logic.ltx
@@ -1,21 +0,0 @@
[smart_terrain]
squad_id = 10
max_population = 3
respawn_params = respawn@lim_smart_terrain_9
respawn_idle = 345600
[respawn@lim_smart_terrain_9] ;-- Type: faction {monolith} = stronghold
spawn_heli_strong
spawn_heli_weak
[spawn_heli_strong]
spawn_helicopter = simulation_monolith_helicopter_strong
spawn_num = {!down_to_earth_functor !heli_exist_on_level} 1, 0
[spawn_heli_weak]
spawn_helicopter = simulation_monolith_helicopter_weak
spawn_num = {=down_to_earth_functor !heli_exist_on_level} 1, 0
;[exclusive]
@@ -1,42 +0,0 @@
;Determines the spawn percentage per each anomaly and max number of them
[spawn_properties]
spawn_percent = 0.2
anomaly_max_number = 2
anomaly_max_active = 38 ; Unused
;Determines the range of anomaly radius
[radius_properties]
min_radius = 1
max_radius = 1
;Determines the list of anomalies that can be spawned
[anomaly_types]
;zone_mine_zharka
zone_mine_point
zone_mine_umbra
zone_mine_cdf
zone_mine_blast
zone_mine_vortex
zone_mine_gold
zone_mine_thorn
;zone_field_radioactive_weak
;zone_field_radioactive_average
;zone_field_radioactive_strong
;zone_radioactive_weak
;zone_radioactive_average
;zone_radioactive_strong
zone_mine_acidic_weak
;zone_mine_acidic_average
;zone_mine_acidic_strong
zone_mine_electric_weak
;zone_mine_electric_average
;zone_mine_electric_strong
zone_mine_thermal_weak
;zone_mine_thermal_average
;zone_mine_thermal_strong
zone_mine_gravitational_weak
zone_mine_gravitational_average
;Determines the smarts around which anomalies will be created
[available_smarts]
katacomb_smart_terrain
@@ -1,41 +0,0 @@
;Determines the spawn percentage per each anomaly and max number of them
[spawn_properties]
spawn_percent = 0.2
anomaly_max_number = 2
anomaly_max_active = 38 ; Unused
;Determines the range of anomaly radius
[radius_properties]
min_radius = 1
max_radius = 1
;Determines the list of anomalies that can be spawned
[anomaly_types]
;zone_mine_zharka
zone_mine_point
zone_mine_darkness
zone_mine_radar
zone_mine_blast
zone_mine_vortex
zone_mine_gold
;zone_field_radioactive_weak
;zone_field_radioactive_average
;zone_field_radioactive_strong
;zone_radioactive_weak
;zone_radioactive_average
;zone_radioactive_strong
zone_mine_acidic_weak
;zone_mine_acidic_average
;zone_mine_acidic_strong
zone_mine_electric_weak
;zone_mine_electric_average
;zone_mine_electric_strong
zone_mine_thermal_weak
;zone_mine_thermal_average
;zone_mine_thermal_strong
zone_mine_gravitational_weak
zone_mine_gravitational_average
;Determines the smarts around which anomalies will be created
[available_smarts]
katacomb_smart_terrain
@@ -1,42 +0,0 @@
;Determines the spawn percentage per each anomaly and max number of them
[spawn_properties]
spawn_percent = 0.2
anomaly_max_number = 2
anomaly_max_active = 38 ; Unused
;Determines the range of anomaly radius
[radius_properties]
min_radius = 1
max_radius = 1
;Determines the list of anomalies that can be spawned
[anomaly_types]
;zone_mine_zharka
zone_mine_point
zone_mine_umbra
zone_mine_cdf
zone_mine_blast
zone_mine_vortex
zone_mine_gold
zone_mine_thorn
;zone_field_radioactive_weak
;zone_field_radioactive_average
;zone_field_radioactive_strong
;zone_radioactive_weak
;zone_radioactive_average
;zone_radioactive_strong
zone_mine_acidic_weak
;zone_mine_acidic_average
;zone_mine_acidic_strong
zone_mine_electric_weak
;zone_mine_electric_average
;zone_mine_electric_strong
zone_mine_thermal_weak
;zone_mine_thermal_average
;zone_mine_thermal_strong
zone_mine_gravitational_weak
zone_mine_gravitational_average
;Determines the smarts around which anomalies will be created
[available_smarts]
katacomb_smart_terrain
@@ -1,468 +0,0 @@
ENABLE_DYNAMIC_RADIATION_ZONES = true
ENABLE_DYNAMIC_RADIATION_ZONES_NPP = true
local blacklisted_smarts = {
l01_escape = {
esc_smart_terrain_3_16 = true,
esc_smart_terrain_2_12 = true,
esc_smart_terrain_5_7 = true,
esc_smart_terrain_4_9 = true
},
y04_pole = {
},
k00_marsh = {
mar_smart_terrain_base = true,
mar_smart_terrain_5_8 = true,
mar_smart_terrain_doc_2 = true
},
k01_darkscape = {
ds2_domik_st = true
},
l02_garbage = {
gar_smart_terrain_3_5 = true,
gar_smart_terrain_6_3 = true
},
l04_darkvalley = {
val_smart_terrain_7_3 = true,
val_smart_terrain_7_4 = true,
val_smart_terrain_7_5 = true,
val_smart_terrain_8_6 = true,
val_smart_terrain_7_8 = true, --Smart Z position is too low
val_smart_terrain_8_9 = true --Smart Z position is too low
},
l03_agroprom = {
agr_smart_terrain_1_6 = true,
agr_smart_terrain_1_6_near_1 = true,
agr_smart_terrain_1_6_near_2 = true
},
l08_yantar = {
yan_smart_terrain_3_6 = true,
yan_smart_terrain_6_4 = true,
},
l06_rostok = {
},
l05_bar = {
bar_dolg_bunker = true,
bar_dolg_general = true,
bar_visitors = true,
bar_zastava = true,
bar_zastava_2 = true,
},
k02_trucks_cemetery = {
trc_sim_20 = true
},
l09_deadcity = {
cit_killers = true,
},
l07_military = {
mil_smart_terrain_7_10 = true,
mil_smart_terrain_7_8 = true,
mil_smart_terrain_7_7 = true,
mil_smart_terrain_7_12 = true
},
l10_red_forest = {
red_smart_terrain_3_2 = true
},
l10_radar = {
},
l10_limansk = {
},
jupiter = {
jup_a6 = true,
jup_b41 = true
},
l11_pripyat = {
mlr_terrain = true,
pri_monolith = true,
},
pripyat = {
pri_a18_smart_terrain = true,
kbo_terrain = true,
pri_b306 = true,
pri_a16 = true,
pri_a16_mlr_copy = true,
pri_a28_base = true,
pri_b36_smart_terrain = true
},
l11_hospital = {
},
zaton = {
zat_b40_smart_terrain = true,
zat_b18 = true,
zat_stalker_base_smart = true,
zat_sim_27 = true
},
l12_stancia = {
},
l12_stancia_2 = {
},
l13_generators = {
},
l12u_sarcofag = {
sar_monolith_general = true
}
}
local radiation_field_level_settings = {
l01_escape = {
Name = "l01_escape",
Radiation_field = "zone_radioactive_very_weak",
Chance_to_spawn = 25,
Radius = 15
},
y04_pole = {
Name = "y04_pole",
Radiation_field = "zone_radioactive_very_weak",
Chance_to_spawn = 25,
Radius = 15
},
k00_marsh = {
Name = "k00_marsh",
Radiation_field = "zone_radioactive_very_weak",
Chance_to_spawn = 25,
Radius = 15
},
k01_darkscape = {
Name = "k01_darkscape",
Radiation_field = "zone_radioactive_very_weak",
Chance_to_spawn = 25,
Radius = 15
},
l02_garbage = {
Name = "l02_garbage",
Radiation_field = "zone_radioactive_weak",
Chance_to_spawn = 30,
Radius = 16
},
l04_darkvalley = {
Name = "l04_darkvalley",
Radiation_field = "zone_radioactive_weak",
Chance_to_spawn = 30,
Radius = 16
},
l03_agroprom = {
Name = "l03_agroprom",
Radiation_field = "zone_radioactive_weak",
Chance_to_spawn = 30,
Radius = 16
},
l08_yantar = {
Name = "l08_yantar",
Radiation_field = "zone_radioactive_below_average",
Chance_to_spawn = 35,
Radius = 16
},
l06_rostok = {
Name = "l06_rostok",
Radiation_field = "zone_radioactive_below_average",
Chance_to_spawn = 35,
Radius = 16
},
l05_bar = {
Name = "l05_bar",
Radiation_field = "zone_radioactive_below_average",
Chance_to_spawn = 35,
Radius = 10
},
k02_trucks_cemetery = {
Name = "k02_trucks_cemetery",
Radiation_field = "zone_radioactive_below_average",
Chance_to_spawn = 35,
Radius = 18
},
l09_deadcity = {
Name = "l09_deadcity",
Radiation_field = "zone_radioactive_below_average",
Chance_to_spawn = 35,
Radius = 15
},
l07_military = {
Name = "l07_military",
Radiation_field = "zone_radioactive_below_average",
Chance_to_spawn = 35,
Radius = 18
},
l10_red_forest = {
Name = "l10_red_forest",
Radiation_field = "zone_radioactive_average",
Chance_to_spawn = 40,
Radius = 12
},
l10_radar = {
Name = "l10_radar",
Radiation_field = "zone_radioactive_average",
Chance_to_spawn = 40,
Radius = 24
},
l10_limansk = {
Name = "l10_limansk",
Radiation_field = "zone_radioactive_average",
Chance_to_spawn = 40,
Radius = 24
},
jupiter = {
Name = "jupiter",
Radiation_field = "zone_radioactive_above_average",
Chance_to_spawn = 45,
Radius = 22
},
l11_pripyat = {
Name = "l11_pripyat",
Radiation_field = "zone_radioactive_above_average",
Chance_to_spawn = 0,
Radius = 24
},
pripyat = {
Name = "pripyat",
Radiation_field = "zone_radioactive_above_average",
Chance_to_spawn = 45,
Radius = 24
},
l11_hospital = {
Name = "l11_hospital",
Radiation_field = "zone_radioactive_above_average",
Chance_to_spawn = 0,
Radius = 1
},
zaton = {
Name = "zaton",
Radiation_field = "zone_radioactive_above_average",
Chance_to_spawn = 45,
Radius = 22
},
l12_stancia = {
Name = "l12_stancia",
Radiation_field = "zone_radioactive_strong",
Chance_to_spawn = 50,
Radius = 28
},
l12_stancia_2 = {
Name = "l12_stancia_2",
Radiation_field = "zone_radioactive_strong",
Chance_to_spawn = 50,
Radius = 28
},
l13_generators = {
Name = "l13_generators",
Radiation_field = "zone_radioactive_strong",
Chance_to_spawn = 50,
Radius = 28
}
}
--Some anomlies will affect new game start point, like scientist bunker in Yantar. They should be capped.
local blacklisted_static_radiation_anomalies = {
-- l01_escape
esc_zone_field_radioactive_weak_0000 = 80,
esc_zone_field_radioactive_weak_0011 = 75,
esc_zone_field_radioactive_weak_0012 = 75,
esc_zone_field_radioactive_weak_0013 = 75,
--k00_marsh
mar_zone_field_radioactive_weak_0007 = 80,
--pripyat
pripyat_zone_field_radioactive_weak_0001 = 5,
--l04_darkvalley
val_zone_field_radioactive_weak_baza_freedom_0016 = 3,
val_zone_field_radioactive_weak_baza_freedom_0018 = 3,
val_zone_field_radioactive_weak_baza_freedom_0019 = 3,
--l03_agroprom
agr_zone_field_radioactive_average_000 = 20,
--l07_military
mil_zone_field_radioactive_strong = 25,
mil_zone_field_radioactive_strong_3 = 50,
--zaton
zaton_zone_field_radioactive_average_0007 = 20,
zaton_zone_field_radioactive_average_0008 = 20,
zaton_zone_field_radioactive_average_0013 = 20,
--Name of level: l02_garbage
gar_zone_field_radioactive_weak_0001 = 50,
gar_zone_field_radioactive_weak_0002 = 40
}
--Underground maps should not be affected by dynamic radiations and wind behaviour
local underground_maps = {
l03u_agr_underground = true,
l08u_brainlab = true,
l10u_bunker = true,
jupiter_underground = true,
l04u_labx18 = true,
labx8 = true,
l12u_sarcofag = true,
l12u_control_monolith = true,
l13u_warlab = true
}
--Radiation zones the player is in
local radiation_zones = {}
--Table for state management
local radiation_table = {}
--Hack for a wonderful bug in the LUA interpreter itself possibly. IT IS CURSED!
environmental_radiation = 0
--Hack for icon removal
local ico_n_removed = false
local ico_p_removed = false
function spawn_radiation_fields_at_new_game()
printf("spawn_radiation_fields_at_new_game()")
for k, v in pairs (radiation_field_level_settings) do
run_script = 1
spawn_radiation_fields_for_level(v)
end
run_script = 0
end
--Creates new radiation fields for the current level
function spawn_radiation_fields_for_level(current_level_settings)
if run_script ~= 1 then
return
end
--printf("spawn_radiation_fields_for_level: "..current_level_settings.Name.." ************************************************")
--printf("get_smart_terrains_of_level: "..current_level_settings.Name)
local smarts_of_level = get_smart_terrains_of_level(current_level_settings.Name)
printf("get blacklisted smarts")
local blacklisted_smarts_for_level = blacklisted_smarts[current_level_settings.Name]
printf("Iterate through smarts")
for ksmart, smart in pairs (smarts_of_level) do
local name_of_smart = smart:name()
if (not blacklisted_smarts_for_level[name_of_smart]) then
if (math.random(1, 100) <= current_level_settings.Chance_to_spawn) then
printf("Spawn default radiation zone for smart: "..name_of_smart)
create_radiation_field(
current_level_settings.Radiation_field,
smart.position,
smart.m_game_vertex_id,
level.vertex_id(smart.position),
current_level_settings.Radius)
end
else
printf("Smart: "..name_of_smart.." is black listed, skip")
end
end
end
--Creates a new radiation field
function create_radiation_field(anomaly_type, position, game_vertex_id, level_vertex_id, radius)
printf("create_radiation_field: "..anomaly_type.." Radius: "..radius.. " *****************")
printf("spawn anomaly")
local se_obj = alife( ):create(anomaly_type, position, level_vertex_id, game_vertex_id)
if (not se_obj) then
printf("NO ANOMALY WERE SPAWNED")
return
end
local data = utils_stpk.get_anom_zone_data( se_obj )
if (not data) then
printf( "Error: Unable to set dynamic anomaly properties" )
return
end
data.shapes[1] = {}
data.shapes[1].shtype = 0
data.shapes[1].offset = vector( ):set( 0, 0, 0 ) -- Leave for compatibility with CoC 1.4.22, delete later
data.shapes[1].center = vector( ):set( 0, 0, 0 )
data.shapes[1].radius = radius
utils_stpk.set_anom_zone_data(data, se_obj)
printf(se_obj.id)
printf("Radiation field was spawned succesfully")
end
--Get smart terrains if the level
function get_smart_terrains_of_level(level_name)
printf("get_smart_terrains_of_level("..level_name..")")
smarts_of_level = {}
for id,smart in pairs(db.smart_terrain_by_id) do
cvertex = smart and game_graph():vertex(smart.m_game_vertex_id)
if (cvertex and alife():level_name(cvertex:level_id()) == level_name) then
table.insert(smarts_of_level, smart)
end
end
return smarts_of_level
end
function initialize_radiation_table()
if (not radiation_table.dosimeter_volume) then
radiation_table.dosimeter_volume = 1
printf("INITIALIZE - dosimeter_volume")
end
if (not radiation_table.wind_alert_state) then
--radiation_table.wind_alert_state = WIND_ALERT_STATES.NoAlert
--printf("INITIALIZE - wind_alert_state")
end
end
function on_game_load()
--Initialize radiation_table of not initialized
initialize_radiation_table()
if (ENABLE_DYNAMIC_RADIATION_ZONES) then
if (not radiation_table.dynamic_radiation_zones_generated) then
--spawn dynamic radiation fields
spawn_radiation_fields_at_new_game()
radiation_table.dynamic_radiation_zones_generated = true
end
end
if (not radiation_table.static_radiation_fields_resized) then
--Resize both original and new radiation fields
--resize_radiation_fields()
radiation_table.static_radiation_fields_resized = true
end
if (ENABLE_DYNAMIC_RADIATION_ZONES_NPP) then
if (not radiation_table.dynamic_radiation_zones_generated_npp) then
--Spawn special radiation fields for NPP interrior
spawn_radiation_fields_for_level(special_spawn_l12u_sarcofag)
radiation_table.dynamic_radiation_zones_generated_npp = true
end
end
--Reset icon removal flags
ico_n_removed = false
ico_p_removed = false
end
function save_state(m_data)
m_data.radiation_table = radiation_table
end
function load_state(m_data)
radiation_table = m_data.radiation_table or {}
end
function on_game_start()
RegisterScriptCallback("on_game_load", on_game_load)
RegisterScriptCallback("save_state", save_state)
RegisterScriptCallback("load_state", load_state)
end
@@ -1,41 +0,0 @@
;Determines the spawn percentage per each anomaly and max number of them
[spawn_properties]
spawn_percent = 0.2
anomaly_max_number = 2
anomaly_max_active = 38 ; Unused
;Determines the range of anomaly radius
[radius_properties]
min_radius = 1
max_radius = 1
;Determines the list of anomalies that can be spawned
[anomaly_types]
;zone_mine_zharka
zone_mine_point
zone_mine_darkness
zone_mine_radar
zone_mine_blast
zone_mine_vortex
zone_mine_gold
;zone_field_radioactive_weak
;zone_field_radioactive_average
;zone_field_radioactive_strong
;zone_radioactive_weak
;zone_radioactive_average
;zone_radioactive_strong
zone_mine_acidic_weak
;zone_mine_acidic_average
;zone_mine_acidic_strong
zone_mine_electric_weak
;zone_mine_electric_average
;zone_mine_electric_strong
zone_mine_thermal_weak
;zone_mine_thermal_average
;zone_mine_thermal_strong
zone_mine_gravitational_weak
zone_mine_gravitational_average
;Determines the smarts around which anomalies will be created
[available_smarts]
katacomb_smart_terrain
@@ -1,468 +0,0 @@
ENABLE_DYNAMIC_RADIATION_ZONES = true
ENABLE_DYNAMIC_RADIATION_ZONES_NPP = true
local blacklisted_smarts = {
l01_escape = {
esc_smart_terrain_3_16 = true,
esc_smart_terrain_2_12 = true,
esc_smart_terrain_5_7 = true,
esc_smart_terrain_4_9 = true
},
y04_pole = {
},
k00_marsh = {
mar_smart_terrain_base = true,
mar_smart_terrain_5_8 = true,
mar_smart_terrain_doc_2 = true
},
k01_darkscape = {
ds2_domik_st = true
},
l02_garbage = {
gar_smart_terrain_3_5 = true,
gar_smart_terrain_6_3 = true
},
l04_darkvalley = {
val_smart_terrain_7_3 = true,
val_smart_terrain_7_4 = true,
val_smart_terrain_7_5 = true,
val_smart_terrain_8_6 = true,
val_smart_terrain_7_8 = true, --Smart Z position is too low
val_smart_terrain_8_9 = true --Smart Z position is too low
},
l03_agroprom = {
agr_smart_terrain_1_6 = true,
agr_smart_terrain_1_6_near_1 = true,
agr_smart_terrain_1_6_near_2 = true
},
l08_yantar = {
yan_smart_terrain_3_6 = true,
yan_smart_terrain_6_4 = true,
},
l06_rostok = {
},
l05_bar = {
bar_dolg_bunker = true,
bar_dolg_general = true,
bar_visitors = true,
bar_zastava = true,
bar_zastava_2 = true,
},
k02_trucks_cemetery = {
trc_sim_20 = true
},
l09_deadcity = {
cit_killers = true,
},
l07_military = {
mil_smart_terrain_7_10 = true,
mil_smart_terrain_7_8 = true,
mil_smart_terrain_7_7 = true,
mil_smart_terrain_7_12 = true
},
l10_red_forest = {
red_smart_terrain_3_2 = true
},
l10_radar = {
},
l10_limansk = {
},
jupiter = {
jup_a6 = true,
jup_b41 = true
},
l11_pripyat = {
mlr_terrain = true,
pri_monolith = true,
},
pripyat = {
pri_a18_smart_terrain = true,
kbo_terrain = true,
pri_b306 = true,
pri_a16 = true,
pri_a16_mlr_copy = true,
pri_a28_base = true,
pri_b36_smart_terrain = true
},
l11_hospital = {
},
zaton = {
zat_b40_smart_terrain = true,
zat_b18 = true,
zat_stalker_base_smart = true,
zat_sim_27 = true
},
l12_stancia = {
},
l12_stancia_2 = {
},
l13_generators = {
},
l12u_sarcofag = {
sar_monolith_general = true
}
}
local radiation_field_level_settings = {
l01_escape = {
Name = "l01_escape",
Radiation_field = "zone_radioactive_very_weak",
Chance_to_spawn = 25,
Radius = 15
},
y04_pole = {
Name = "y04_pole",
Radiation_field = "zone_radioactive_very_weak",
Chance_to_spawn = 25,
Radius = 15
},
k00_marsh = {
Name = "k00_marsh",
Radiation_field = "zone_radioactive_very_weak",
Chance_to_spawn = 25,
Radius = 15
},
k01_darkscape = {
Name = "k01_darkscape",
Radiation_field = "zone_radioactive_very_weak",
Chance_to_spawn = 25,
Radius = 15
},
l02_garbage = {
Name = "l02_garbage",
Radiation_field = "zone_radioactive_weak",
Chance_to_spawn = 30,
Radius = 16
},
l04_darkvalley = {
Name = "l04_darkvalley",
Radiation_field = "zone_radioactive_weak",
Chance_to_spawn = 30,
Radius = 16
},
l03_agroprom = {
Name = "l03_agroprom",
Radiation_field = "zone_radioactive_weak",
Chance_to_spawn = 30,
Radius = 16
},
l08_yantar = {
Name = "l08_yantar",
Radiation_field = "zone_radioactive_below_average",
Chance_to_spawn = 35,
Radius = 16
},
l06_rostok = {
Name = "l06_rostok",
Radiation_field = "zone_radioactive_below_average",
Chance_to_spawn = 35,
Radius = 16
},
l05_bar = {
Name = "l05_bar",
Radiation_field = "zone_radioactive_below_average",
Chance_to_spawn = 35,
Radius = 10
},
k02_trucks_cemetery = {
Name = "k02_trucks_cemetery",
Radiation_field = "zone_radioactive_below_average",
Chance_to_spawn = 35,
Radius = 18
},
l09_deadcity = {
Name = "l09_deadcity",
Radiation_field = "zone_radioactive_below_average",
Chance_to_spawn = 35,
Radius = 15
},
l07_military = {
Name = "l07_military",
Radiation_field = "zone_radioactive_below_average",
Chance_to_spawn = 35,
Radius = 18
},
l10_red_forest = {
Name = "l10_red_forest",
Radiation_field = "zone_radioactive_average",
Chance_to_spawn = 40,
Radius = 12
},
l10_radar = {
Name = "l10_radar",
Radiation_field = "zone_radioactive_average",
Chance_to_spawn = 40,
Radius = 24
},
l10_limansk = {
Name = "l10_limansk",
Radiation_field = "zone_radioactive_average",
Chance_to_spawn = 40,
Radius = 24
},
jupiter = {
Name = "jupiter",
Radiation_field = "zone_radioactive_above_average",
Chance_to_spawn = 45,
Radius = 22
},
l11_pripyat = {
Name = "l11_pripyat",
Radiation_field = "zone_radioactive_above_average",
Chance_to_spawn = 0,
Radius = 24
},
pripyat = {
Name = "pripyat",
Radiation_field = "zone_radioactive_above_average",
Chance_to_spawn = 45,
Radius = 24
},
l11_hospital = {
Name = "l11_hospital",
Radiation_field = "zone_radioactive_above_average",
Chance_to_spawn = 0,
Radius = 1
},
zaton = {
Name = "zaton",
Radiation_field = "zone_radioactive_above_average",
Chance_to_spawn = 45,
Radius = 22
},
l12_stancia = {
Name = "l12_stancia",
Radiation_field = "zone_radioactive_strong",
Chance_to_spawn = 50,
Radius = 28
},
l12_stancia_2 = {
Name = "l12_stancia_2",
Radiation_field = "zone_radioactive_strong",
Chance_to_spawn = 50,
Radius = 28
},
l13_generators = {
Name = "l13_generators",
Radiation_field = "zone_radioactive_strong",
Chance_to_spawn = 50,
Radius = 28
}
}
--Some anomlies will affect new game start point, like scientist bunker in Yantar. They should be capped.
local blacklisted_static_radiation_anomalies = {
-- l01_escape
esc_zone_field_radioactive_weak_0000 = 80,
esc_zone_field_radioactive_weak_0011 = 75,
esc_zone_field_radioactive_weak_0012 = 75,
esc_zone_field_radioactive_weak_0013 = 75,
--k00_marsh
mar_zone_field_radioactive_weak_0007 = 80,
--pripyat
pripyat_zone_field_radioactive_weak_0001 = 5,
--l04_darkvalley
val_zone_field_radioactive_weak_baza_freedom_0016 = 3,
val_zone_field_radioactive_weak_baza_freedom_0018 = 3,
val_zone_field_radioactive_weak_baza_freedom_0019 = 3,
--l03_agroprom
agr_zone_field_radioactive_average_000 = 20,
--l07_military
mil_zone_field_radioactive_strong = 25,
mil_zone_field_radioactive_strong_3 = 50,
--zaton
zaton_zone_field_radioactive_average_0007 = 20,
zaton_zone_field_radioactive_average_0008 = 20,
zaton_zone_field_radioactive_average_0013 = 20,
--Name of level: l02_garbage
gar_zone_field_radioactive_weak_0001 = 50,
gar_zone_field_radioactive_weak_0002 = 40
}
--Underground maps should not be affected by dynamic radiations and wind behaviour
local underground_maps = {
l03u_agr_underground = true,
l08u_brainlab = true,
l10u_bunker = true,
jupiter_underground = true,
l04u_labx18 = true,
labx8 = true,
l12u_sarcofag = true,
l12u_control_monolith = true,
l13u_warlab = true
}
--Radiation zones the player is in
local radiation_zones = {}
--Table for state management
local radiation_table = {}
--Hack for a wonderful bug in the LUA interpreter itself possibly. IT IS CURSED!
environmental_radiation = 0
--Hack for icon removal
local ico_n_removed = false
local ico_p_removed = false
function spawn_radiation_fields_at_new_game()
printf("spawn_radiation_fields_at_new_game()")
for k, v in pairs (radiation_field_level_settings) do
run_script = 1
spawn_radiation_fields_for_level(v)
end
run_script = 0
end
--Creates new radiation fields for the current level
function spawn_radiation_fields_for_level(current_level_settings)
if run_script ~= 1 then
return
end
--printf("spawn_radiation_fields_for_level: "..current_level_settings.Name.." ************************************************")
--printf("get_smart_terrains_of_level: "..current_level_settings.Name)
local smarts_of_level = get_smart_terrains_of_level(current_level_settings.Name)
printf("get blacklisted smarts")
local blacklisted_smarts_for_level = blacklisted_smarts[current_level_settings.Name]
printf("Iterate through smarts")
for ksmart, smart in pairs (smarts_of_level) do
local name_of_smart = smart:name()
if (not blacklisted_smarts_for_level[name_of_smart]) then
if (math.random(1, 100) <= current_level_settings.Chance_to_spawn) then
printf("Spawn default radiation zone for smart: "..name_of_smart)
create_radiation_field(
current_level_settings.Radiation_field,
smart.position,
smart.m_game_vertex_id,
level.vertex_id(smart.position),
current_level_settings.Radius)
end
else
printf("Smart: "..name_of_smart.." is black listed, skip")
end
end
end
--Creates a new radiation field
function create_radiation_field(anomaly_type, position, game_vertex_id, level_vertex_id, radius)
printf("create_radiation_field: "..anomaly_type.." Radius: "..radius.. " *****************")
printf("spawn anomaly")
local se_obj = alife( ):create(anomaly_type, position, level_vertex_id, game_vertex_id)
if (not se_obj) then
printf("NO ANOMALY WERE SPAWNED")
return
end
local data = utils_stpk.get_anom_zone_data( se_obj )
if (not data) then
printf( "Error: Unable to set dynamic anomaly properties" )
return
end
data.shapes[1] = {}
data.shapes[1].shtype = 0
data.shapes[1].offset = vector( ):set( 0, 0, 0 ) -- Leave for compatibility with CoC 1.4.22, delete later
data.shapes[1].center = vector( ):set( 0, 0, 0 )
data.shapes[1].radius = radius
utils_stpk.set_anom_zone_data(data, se_obj)
printf(se_obj.id)
printf("Radiation field was spawned succesfully")
end
--Get smart terrains if the level
function get_smart_terrains_of_level(level_name)
printf("get_smart_terrains_of_level("..level_name..")")
smarts_of_level = {}
for id,smart in pairs(db.smart_terrain_by_id) do
cvertex = smart and game_graph():vertex(smart.m_game_vertex_id)
if (cvertex and alife():level_name(cvertex:level_id()) == level_name) then
table.insert(smarts_of_level, smart)
end
end
return smarts_of_level
end
function initialize_radiation_table()
if (not radiation_table.dosimeter_volume) then
radiation_table.dosimeter_volume = 1
printf("INITIALIZE - dosimeter_volume")
end
if (not radiation_table.wind_alert_state) then
--radiation_table.wind_alert_state = WIND_ALERT_STATES.NoAlert
--printf("INITIALIZE - wind_alert_state")
end
end
function on_game_load()
--Initialize radiation_table of not initialized
initialize_radiation_table()
if (ENABLE_DYNAMIC_RADIATION_ZONES) then
if (not radiation_table.dynamic_radiation_zones_generated) then
--spawn dynamic radiation fields
spawn_radiation_fields_at_new_game()
radiation_table.dynamic_radiation_zones_generated = true
end
end
if (not radiation_table.static_radiation_fields_resized) then
--Resize both original and new radiation fields
--resize_radiation_fields()
radiation_table.static_radiation_fields_resized = true
end
if (ENABLE_DYNAMIC_RADIATION_ZONES_NPP) then
if (not radiation_table.dynamic_radiation_zones_generated_npp) then
--Spawn special radiation fields for NPP interrior
spawn_radiation_fields_for_level(special_spawn_l12u_sarcofag)
radiation_table.dynamic_radiation_zones_generated_npp = true
end
end
--Reset icon removal flags
ico_n_removed = false
ico_p_removed = false
end
function save_state(m_data)
m_data.radiation_table = radiation_table
end
function load_state(m_data)
radiation_table = m_data.radiation_table or {}
end
function on_game_start()
RegisterScriptCallback("on_game_load", on_game_load)
RegisterScriptCallback("save_state", save_state)
RegisterScriptCallback("load_state", load_state)
end
@@ -1,2 +0,0 @@
Credits go to the author CS Eden who made and these Optionals.
@@ -1,16 +0,0 @@
Install the required optional matching your installation:
Arrival - Semitone
Dynamic Anomalies Overhaul - MrDemonized
Do NOT use both at the same time since they would overlap each other and are not the exact same. Load it after Arrival/DAO so the patch overwrites the default file.
Patch to hopefully prevent any dynamic anomalies spawned by these two addons from hindering the player while trying to speak to the Sin NPCs in the Hospital.
In case this still doesn't work, open the l11_hospital.ltx file using any sort of notepad, and change the following values
spawn_percent = 0.2 ---> spawn_percent = 0.0
anomaly_max_number = 2 ---> anomaly_max_number = 0
min_radius = 1 ---> min_radius = 0
max_radius = 1 ---> max_radius = 0
This will deactivate the anomalies spawn for this map and this map only. This solution is a failsafe for people who still want to enjoy Arrival OR DAO
while having the Re:Done Hospital addon active.
@@ -1,2 +0,0 @@
To install: Open Optional folder and move over gamedata to install folder.
+1 -1
View File
@@ -3,7 +3,7 @@ gameName=stalkeranomaly
modid=0
version=d2024.2.13.0
newestVersion=
category="16,"
category="15,"
nexusFileStatus=1
installationFile=E:/Modding/Modlists/Divergent/downloads/Redone_Limansk_Hospital_0.9.1.2.zip
repository=Nexus