diff --git a/README.md b/README.md index 3c44b1de..59be9174 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,6 @@ Much of the modpack is focused on Story mode, meaning Warfare mode and all other - Complete system overhauls, such as **Weapon Parts Overhaul**, **Western Goods**, **Stealth Overhaul**, **Anomaly Ballistics Overhaul**, **Mags Redux**, **Body Health System Realistic Overhaul** and more! - Expanded arsenals, featuring **Boomsticks and Sharpsticks** as the main mod introducing new weapons - New areas to explore, featuring **New Levels** as the mod. -- Total GUI overhaul, featuring **Enhanced Graphical User Interface** including custom touch-ups to personalize the menus - Complete graphical overhaul which brings the game closer to modern standards. - Immersive overhauled SFX that introduces a realistic approach to the nature of the Zone. - Gorgeous animation overhauls that introduce a fresh and new feel to every vanilla weapon in the game. diff --git a/mods/Arrival - Busy Hands Bug Fix/gamedata/scripts/drx_da_main.script b/mods/Arrival - Busy Hands Bug Fix/gamedata/scripts/drx_da_main.script new file mode 100644 index 00000000..18e459f8 --- /dev/null +++ b/mods/Arrival - Busy Hands Bug Fix/gamedata/scripts/drx_da_main.script @@ -0,0 +1,3753 @@ +-- Put your Lua here +-- Dynamic Anomaly Generator by DoctorX +-- Revisited by demonized, 2022 +-- Edited by S.e.m.i.t.o.n.e. for Arrival Mod + +-- Creating anomalies at the start of level after emission/psi-storm and removing anomalies after emission/psi-storm instead of just disabling them, allowing for truly dynamic generation +-- Anomalies behaviour: +-- enable/disable with randomized periods, duration and cooldowns for every single anomaly +-- behaviour if actor is near an anomaly +-- behaviour on hit +-- Spawning artefacts in new anomaly zones + +--============================================================= +-- +-- Dynamic Anomaly Generator (drx_da_main.script) +-- CoC 1.5b r4 - DoctorX Dynamic Anomalies 2.1 +-- +-- - Generates randomly placed anomalies on specified smart terrains +-- - Setting file: configs\drx\drx_da_config.ltx +-- +-- Created by: DoctorX +-- Last revised: April 02, 2018 +-- +--============================================================= + +-- Imports +local clamp = clamp +local time_global = time_global + +local get_start_time = level.get_start_time +local get_game_time = game.get_game_time + +local level_vertex_id = level.vertex_id +local level_vertex_position = level.vertex_position + +local abs = math.abs +local ceil = math.ceil +local cos = math.cos +local floor = math.floor +local max = math.max +local min = math.min +local random = math.random +local sin = math.sin +local sqrt = math.sqrt + +local CreateTimeEvent = demonized_time_events.CreateTimeEvent +local RemoveTimeEvent = demonized_time_events.RemoveTimeEvent +local process_queue = demonized_concurrent_queues.process_queue +local remove_queue = demonized_concurrent_queues.remove_queue + +local add_speed = speed.add_speed +local remove_speed = speed.remove_speed + +-- MCM +-- Load the defaults +local function load_defaults() + local t = {} + local op = drx_da_main_mcm.op + for i, v in ipairs(op.gr) do + if v.def ~= nil then + t[v.id] = v.def + end + end + return t +end + +local settings = load_defaults() + +local function load_settings() + settings = load_defaults() + if ui_mcm then + for k, v in pairs(settings) do + settings[k] = ui_mcm.get("drx_da/" .. k) + end + end +end + +-- UTILS +--Recursive print of tables similar to PHP print_r function +local print_r = print_r or function(t) + local print_r_cache={} + local function sub_print_r(t,indent) + if (print_r_cache[tostring(t)]) then + printf(indent.."*"..tostring(t)) + else + print_r_cache[tostring(t)]=true + if (type(t)=="table") then + for pos,val in pairs(t) do + if (type(val)=="table") then + printf(indent.."["..pos.."] => "..tostring(t).." {") + sub_print_r(val,indent..string.rep(" ",string.len(pos)+8)) + printf(indent..string.rep(" ",string.len(pos)+6).."}") + else + printf(indent.."["..pos.."] => "..tostring(val)) + end + end + else + printf(indent..tostring(t)) + end + end + end + sub_print_r(t," ") +end + +--Protected function call to prevent crashes to desktop +--Prints error in console if occured, otherwise proceed normally +--Use for test only, slower than usual +local try = try or function(func, ...) + local status, error_or_result = pcall(func, ...) + if not status then + printf(error_or_result) + return false, status, error_or_result + else + return error_or_result, status + end +end + +-- Shuffle table, Fisher-Yates shuffle with preserving original table +local function shuffle(t) + local s = {} + for i = 1, #t do s[i] = t[i] end + for i = #t, 2, -1 do + local j = random(i) + s[i], s[j] = s[j], s[i] + end + return s +end + +-- Get time elapsed from the start of the game in IRL seconds +local time_factor = 6 +local function get_time_elapsed() + --trace(time_factor) + return floor(get_game_time():diffSec(get_start_time()) / time_factor * 10) * 0.1 +end + +local function round(amount) + return floor(amount + 0.5) +end + +local og_printf = printf +local function printf(str, ...) + if settings.debug_mode then + og_printf("DRX DA: " .. str, ...) + end +end + +--EMA smoothing for changing values, frame independent +local default_smoothing = 11.5 +local smoothed_values = {} + +local function ema(key, value, def, steps, delta) + local steps = steps or default_smoothing + local delta = delta or steps + local smoothing_alpha = 2.0 / (steps + 1) + + smoothed_values[key] = smoothed_values[key] and smoothed_values[key] + min(smoothing_alpha * (delta / steps), 1) * (value - smoothed_values[key]) or def or value + + --printf("EMA fired, key %s, target %s, current %s, going %s", key, value, smoothed_values[key], (value > smoothed_values[key] and "up" or "down")) + return smoothed_values[key] +end + +local get_safe_sound_object = xr_sound.get_safe_sound_object +local function play_sound_on_actor(snd, volume, frequency, obj) + if not snd then + printf("snd is nil") + return + end + local actor = db.actor + local snd = get_safe_sound_object(snd) + if snd then + if obj and obj:id() ~= AC_ID then + snd:play_at_pos(obj, obj:position(), 0, sound_object.s3d) + else + snd:play(actor, 0, sound_object.s2d) + end + snd.volume = volume or 1 + snd.frequency = frequency or 1 + return snd + end +end + +-- Table of current active effects, contains tables of these { +-- timer = time_elapsed + timer in seconds, how long effect will be applied +-- effect = function(), the function of the effect +-- effect_function - string, dump of effect function to store in m_data +-- effect_args - array, args to effect_function +-- on_end = function(), the function on the expiration of effect +-- on_end_function - string, dump of on_end function to store in m_data +-- on_end_args - array, args to on_end_function +-- key - string, custom key to set in timed_effects table, otherwise will be used first available one +-- not_save - boolean, do not save in mdata } +-- this is the complex function intended to have persistence between saves, moving to different maps and so on, use if needed +-- no upvalues are allowed in the functions, best to reference globals by _G. lookup +-- The precision for both cooldown and timed effects is 0.1 or 100ms, making more precise timer or timed effect is pointless +local time_elapsed = 0 +timed_effects = {} +function add_timed_effect(timer, effect_function, effect_args, on_end_function, on_end_args, key, not_save) + printf("current_time %s, adding effect %s", time_elapsed, time_elapsed + (timer or 0)) + + local dump = string.dump + local load = loadstring + local unpack = unpack + local table_insert = table.insert + + local effect_args = effect_args or {} + local on_end_args = on_end_args or {} + local effect = { + timer = time_elapsed + (timer or 0), + effect = effect_function and function() + effect_function(unpack(effect_args)) + end, + effect_function = effect_function and dump(effect_function), + effect_args = effect_args, + on_end = on_end_function and function() + on_end_function(unpack(on_end_args)) + end, + on_end_function = on_end_function and dump(on_end_function), + on_end_args = on_end_args, + save = not not_save + } + + if key then + timed_effects[key] = effect + else + table_insert(timed_effects, effect) + end +end + +-- This is the simpler version of the function above if you do not care about persistence and saving states +function add_simple_timed_effect(timer, effect_function, on_end_function, key, overwrite_mode) + -- printf("current_time %s, adding effect %s", time_elapsed, time_elapsed + (timer or 0)) + + if key and timed_effects[key] then + if overwrite_mode == false or overwrite_mode == 0 then + -- printf("can't add effect %s, already exists", k) + return + elseif overwrite_mode == 1 then + timed_effects[key].timer = time_elapsed + (timer or 0) + return + end + end + + local dump = string.dump + local load = loadstring + local unpack = unpack + local table_insert = table.insert + + local effect = { + timer = time_elapsed + (timer or 0), + effect = effect_function, + on_end = on_end_function + } + + if effect.on_end then + -- printf("effect has on end function %s", effect.on_end) + end + + if key then + timed_effects[key] = effect + else + table_insert(timed_effects, effect) + end +end + +function remove_timed_effect(key, on_end) + if not timed_effects[key] then return end + + printf("removing effect, key %s", key) + if on_end and timed_effects[key].on_end then + printf("removing effect, firing on end, key %s", key) + timed_effects[key].on_end() + end + timed_effects[key] = nil +end + +-- Processing the effects +-- Whatever lowest time is set for effect, it will be processed at least once on process cycle +local function process_timed_effects() + local pairs = pairs + local printf = printf + for key, props in pairs(timed_effects) do + if props.effect then + props.effect() + end + -- printf("effect %s, timer %s, current_time %s", key, props.timer, time_elapsed) + if props.timer < time_elapsed then + printf("removing effect, effect timer %s, current_time %s", props.timer, time_elapsed) + if props.on_end then + props.on_end() + end + timed_effects[key] = nil + end + end +end + +-- Callbacks +callbacks = {} +function register_callback(callback, callback_function, on_end_function, key) + if key and callbacks[key] then + UnregisterScriptCallback(callbacks[key].callback, callbacks[key].func) + end + + local t = { + callback = callback, + func = callback_function, + on_end = on_end_function + } + + local key = key or (#callbacks + 1) + callbacks[key] = t + printf("registering callback %s, key %s", callback, key) + RegisterScriptCallback(callbacks[key].callback, callbacks[key].func) + return key +end + +function unregister_callback(key) + if not callbacks[key] then return end + printf("unregistering callback %s, %s", key, callbacks[key].callback) + UnregisterScriptCallback(callbacks[key].callback, callbacks[key].func) + if callbacks[key].on_end then + callbacks[key].on_end() + end + callbacks[key] = nil +end + +function unregister_callbacks() + for i, props in pairs(callbacks) do + unregister_callback(i) + end +end + +-- Get psy table to manipulate psy health values +local actor_psy_table = {} +function get_actor_psy_table() + if is_not_empty(actor_psy_table) then return end + + local m_data = alife_storage_manager.get_state() + arszi_psy.save_state(m_data) + actor_psy_table = m_data.psy_table +end + +function set_psy_health(amount) + if actor_psy_table.actor_psy_health then + actor_psy_table.actor_psy_health = amount <= 1 and amount or 1 + end +end + +function change_psy_health(amount) + if actor_psy_table.actor_psy_health then + set_psy_health(actor_psy_table.actor_psy_health + amount) + end +end + +-- DRX DA + +-- Location of the settings file: +local ini = ini_file("drx\\drx_da_config.ltx") + +-- Table of levels that will have reduced chance to spawn anomalies +reduced_chance_levels = { + k00_marsh = true, + l03u_agr_underground = true, + l04_darkvalley = true, + l04u_labx18 = true, + l05_bar = true, + l10_radar = true, + jupiter_underground = true, + jupiter = true, + l11_pripyat = true, + pripyat = true, + zaton = true, +} + +anomaly_radii = { + zone_field_radioactive = {min = 5, max = 8}, + zone_field_radioactive_average = {min = 5, max = 8}, + zone_field_radioactive_strong = {min = 5, max = 8}, + zone_field_radioactive_weak = {min = 5, max = 8}, + zone_radioactive = {min = 4, max = 6}, + zone_radioactive_average = {min = 4, max = 6}, + zone_radioactive_strong = {min = 4, max = 6}, + zone_radioactive_weak = {min = 4, max = 6}, + + zone_mine_acid = {min = 2, max = 3}, + zone_mine_acidic_weak = {min = 2, max = 3}, + zone_mine_acidic_average = {min = 2, max = 3}, + zone_mine_acidic_strong = {min = 2, max = 3}, + zone_mine_blast = {min = 2, max = 3}, + zone_mine_umbra = {min = 2, max = 3}, + zone_mine_electra = {min = 2, max = 3}, + zone_mine_electric_weak = {min = 2, max = 3}, + zone_mine_electric_average = {min = 2, max = 3}, + zone_mine_electric_strong = {min = 2, max = 3}, + zone_mine_flash = {min = 3, max = 3}, + zone_mine_ghost = {min = 2, max = 3}, + zone_mine_gold = {min = 2, max = 3}, + zone_mine_thorn = {min = 2, max = 3}, + zone_mine_seed = {min = 3, max = 3}, + zone_mine_shatterpoint = {min = 6, max = 8}, + zone_mine_gravitational_weak = {min = 2, max = 3}, + zone_mine_gravitational_average = {min = 3, max = 5}, + zone_mine_gravitational_strong = {min = 4, max = 6}, + zone_mine_sloth = {min = 3, max = 4}, + zone_mine_mefistotel = {min = 3, max = 4}, + zone_mine_net = {min = 2, max = 3}, + zone_mine_point = {min = 2, max = 3}, + zone_mine_cdf = {min = 2, max = 3}, + zone_mine_sphere = {min = 4, max = 5}, + zone_mine_springboard = {min = 4, max = 6}, + zone_mine_thermal_weak = {min = 1, max = 2}, + zone_mine_thermal_average = {min = 1, max = 2}, + zone_mine_thermal_strong = {min = 1, max = 2}, + zone_mine_vapour = {min = 1, max = 2}, + zone_mine_vortex = {min = 3, max = 5}, + zone_mine_zharka = {min = 1, max = 2}, +} + +updated_anomaly_levels = {} +last_surge_time = 0 + +function init_anomaly_table_on_level(level_name) + local level_name = level_name or level.name() + if not updated_anomaly_levels[level_name] then updated_anomaly_levels[level_name] = {} end + if not updated_anomaly_levels[level_name].cleaned_old_anomalies then updated_anomaly_levels[level_name].cleaned_old_anomalies = false end + if not updated_anomaly_levels[level_name].anomalies then updated_anomaly_levels[level_name].anomalies = {} end + if not updated_anomaly_levels[level_name].anomalies_properties then updated_anomaly_levels[level_name].anomalies_properties = {} end + if not updated_anomaly_levels[level_name].anomalies_by_smart then updated_anomaly_levels[level_name].anomalies_by_smart = {} end + if not updated_anomaly_levels[level_name].smart_by_anomalies then updated_anomaly_levels[level_name].smart_by_anomalies = {} end + if not updated_anomaly_levels[level_name].anomaly_types_by_smart then updated_anomaly_levels[level_name].anomaly_types_by_smart = {} end + if not updated_anomaly_levels[level_name].available_smarts_reduced then updated_anomaly_levels[level_name].available_smarts_reduced = {} end + if not updated_anomaly_levels[level_name].artefacts then updated_anomaly_levels[level_name].artefacts = {} end + if not updated_anomaly_levels[level_name].time then updated_anomaly_levels[level_name].time = -1 end + if not updated_anomaly_levels[level_name].disabled then updated_anomaly_levels[level_name].disabled = false end +end + +function init_anomaly_table_global(current_level) + init_anomaly_table_on_level(current_level) + for k, v in pairs(updated_anomaly_levels) do + init_anomaly_table_on_level(k) + end +end + +local obj_restrictions = {} +local in_restrictions = {} +local smart_restrictions = {} + +function clean_restriction_tables() + empty_table(obj_restrictions) + empty_table(in_restrictions) + empty_table(smart_restrictions) +end + +function get_obj_restrictions(clean) + if clean then + clean_restriction_tables() + end + + if is_not_empty(obj_restrictions) then return obj_restrictions end + + local alife = alife() + local alife_level_name = alife.level_name + local alife_object = alife.object + local gg = game_graph() + local gg_vertex = gg.vertex + local level_name = level.name() + local get_monster_data = utils_stpk.get_monster_data + local get_stalker_data = utils_stpk.get_stalker_data + + local function get_nearest_smart_id(se_obj) + local dist + local min_dist + local nearest + local nearest_name + + for name,smart in pairs( SIMBOARD.smarts_by_names ) do + local dist = smart.position:distance_to(se_obj.position) + if (not min_dist) then + min_dist = dist + nearest = smart + nearest_name = name + elseif (dist < min_dist) then + min_dist = dist + nearest = smart + nearest_name = name + end + end + if (nearest) then + if (simulation_objects.is_on_the_same_level(nearest, se_obj)) then + return nearest.id, nearest_name + end + end + end + + local restrictions = { + ["dynamic_out_restrictions"] = true, + ["dynamic_in_restrictions"] = true, + ["base_out_restrictors"] = true, + ["base_in_restrictors"] = true, + } + + for i = 1, 65534 do + local se_obj = alife_object(alife, i) + if se_obj then + local cls = se_obj:clsid() + if IsMonster(_, cls) then + local se_obj_level = alife_level_name(alife, gg_vertex(gg, se_obj.m_game_vertex_id):level_id()) + if true or se_obj_level == level_name then + local monster_data = get_monster_data(se_obj) + if monster_data then + -- printf(".") + -- printf("monster_data for %s, %s, level %s", se_obj:section_name(), se_obj.id, se_obj_level) + for k, v in spairs(restrictions) do + -- printf("[%s] => %s", k, v) + if monster_data[k] and type(monster_data[k]) == "table" then + -- printf("..") + for k1, v1 in spairs(monster_data[k]) do + if not obj_restrictions[se_obj.id] then obj_restrictions[se_obj.id] = {} end + if not obj_restrictions[se_obj.id][k] then obj_restrictions[se_obj.id][k] = {} end + obj_restrictions[se_obj.id][k][v1] = true + in_restrictions[v1] = true + local nearest_smart_id, nearest_smart_name = get_nearest_smart_id(se_obj) + if nearest_smart_name then + -- printf("%s", nearest_smart_name) + smart_restrictions[nearest_smart_name] = v1 + end + -- printf("[%s] => %s", k1, v1) + end + end + end + end + end + end + end + end + -- print_r(smart_restrictions) + -- print_r(obj_restrictions) + return obj_restrictions +end + +function remove_all_restrictions(level_name) + local alife_release_id = alife_release_id + local gg = game_graph() + local gg_vertex = gg.vertex + local invert_table = invert_table + local is_not_empty = is_not_empty + local IsMonster = IsMonster + local load_var = load_var + local pairs = pairs + local printf = printf + local sim = alife() + local sim_level_name = sim.level_name + local sim_object = sim.object + local sim_release = sim.release + local sim_remove_in_restriction = sim.remove_in_restriction + local sim_remove_out_restriction = sim.remove_out_restriction + local spairs = spairs + local strformat = strformat + local type = type + + local globally = not level_name + + local get_monster_data = utils_stpk.get_monster_data + local get_stalker_data = utils_stpk.get_stalker_data + + local restrictions = { + ["dynamic_out_restrictions"] = true, + ["dynamic_in_restrictions"] = true, + -- ["base_out_restrictors"] = true, + -- ["base_in_restrictors"] = true, + } + + local anomalies_ids = {} + + for i = 1, 65534 do + local se_obj = sim_object(sim, i) + if se_obj then + local cls = se_obj:clsid() + if IsMonster(_, cls) or IsStalker(_, cls) then + local se_obj_level = sim_level_name(sim, gg_vertex(gg, se_obj.m_game_vertex_id):level_id()) + if globally or se_obj_level == level_name then + if not anomalies_ids[se_obj_level] then + anomalies_ids[se_obj_level] = updated_anomaly_levels[se_obj_level] and invert_table(updated_anomaly_levels[se_obj_level].anomalies) or {} + end + local monster_data = IsMonster(_, cls) and get_monster_data(se_obj) or get_stalker_data(se_obj) + if monster_data then + for k, v in pairs(restrictions) do + if monster_data[k] and type(monster_data[k]) == "table" then + for k1, v1 in pairs(monster_data[k]) do + if anomalies_ids[se_obj_level][v1] then + printf("removed restriction %s for level %s", se_obj:name(), se_obj_level) + sim_remove_in_restriction(sim, se_obj, v1) + sim_remove_out_restriction(sim, se_obj, v1) + end + end + end + end + end + end + end + end + end + + -- for i = 1, 65534 do + -- local obj = level.object_by_id(i) + -- if obj and obj ~= 0 and IsMonster(obj) then + -- printf("removing restrictions for %s, %s", obj:section(), i) + -- obj:remove_all_restrictions() + -- end + -- end +end + +function get_anomaly_obj(id, level_name) + local level_name = level_name or level.name() + local obj = alife():object(id) + + if not obj or obj == 0 or obj.id == 0 then + -- printf("Error, anomaly game object not found by id %s, level %s", id, level_name) + return + end + + if not IsAnomaly(_, obj:clsid()) then + -- printf("Error, object is not an anomaly, %s, %s, on level %s", obj:section_name(), obj.id, level_name) + return + end + + local sim = alife() + local sim_level_name = sim.level_name + local gg = game_graph() + local gg_vertex = gg.vertex + local obj_level = sim_level_name(sim, gg_vertex(gg, obj.m_game_vertex_id):level_id()) + if obj_level ~= level_name then + -- printf("Error, anomaly game object found by id %s but on different level %s, requested level %s", id, obj_level, level_name) + return + end + + return obj +end + +function get_anomaly_smart(id, level_name) + local obj = get_anomaly_obj(id, level_name) + if obj then + return updated_anomaly_levels[level_name].smart_by_anomalies[id] + end +end + +function get_anomalies_by_smart(level_name) + local level_name = level_name or level.name() + if not updated_anomaly_levels[level_name].anomalies_by_smart or is_empty(updated_anomaly_levels[level_name].anomalies_by_smart) then + local sim = alife() + local gg = game_graph() + for _, id in pairs(updated_anomaly_levels[level_name].anomalies) do + local se_obj = alife_object(id) + if se_obj then + for smart_name, smart in pairs(SIMBOARD.smarts_by_names) do + if smart and smart.m_game_vertex_id == se_obj.m_game_vertex_id then + printf("adding anomaly %s to smart %s", se_obj:section_name(), smart_name) + if not updated_anomaly_levels[level_name].anomalies_by_smart then + updated_anomaly_levels[level_name].anomalies_by_smart = {} + end + + if not updated_anomaly_levels[level_name].smart_by_anomalies then + updated_anomaly_levels[level_name].smart_by_anomalies = {} + end + + if not updated_anomaly_levels[level_name].anomalies_by_smart[smart_name] then + updated_anomaly_levels[level_name].anomalies_by_smart[smart_name] = {} + end + + if not updated_anomaly_levels[level_name].anomaly_types_by_smart[smart_name] then + updated_anomaly_levels[level_name].anomaly_types_by_smart[smart_name] = "" + end + + updated_anomaly_levels[level_name].anomalies_by_smart[smart_name][id] = true + updated_anomaly_levels[level_name].smart_by_anomalies[id] = smart_name + end + end + end + end + end +end + +function disable_anomaly_obj(id, level_name) + local obj = get_anomaly_obj(id, level_name) + if obj then + local g_obj = level.object_by_id(id) + if g_obj and g_obj ~= 0 and g_obj:id() ~= 0 then + printf("disabling anomaly %s, %s, level %s", g_obj:section(), g_obj:id(), level_name) + g_obj:disable_anomaly() + end + end +end + +function disable_anomalies_on_level(level_name) + local level_name = level_name or level.name() + for _, id in pairs(updated_anomaly_levels[level_name].anomalies) do + disable_anomaly_obj(id, level_name) + end +end + +function enable_anomaly_obj(id, level_name) + local obj = get_anomaly_obj(id, level_name) + if obj then + local g_obj = level.object_by_id(id) + if g_obj and g_obj ~= 0 and g_obj:id() ~= 0 then + printf("enabling anomaly %s, %s, level %s", g_obj:section(), g_obj:id(), level_name) + g_obj:enable_anomaly() + end + end +end + +function enable_anomalies_on_level(level_name) + local level_name = level_name or level.name() + for _, id in pairs(updated_anomaly_levels[level_name].anomalies) do + enable_anomaly_obj(id, level_name) + end +end + +function remove_anomaly_obj(id, level_name) + local obj = get_anomaly_obj(id, level_name) + if obj then + if not IsAnomaly(_, obj:clsid()) then + printf("Error, object is not an anomaly, %s, %s, on level %s", obj:section_name(), obj.id, level_name) + return + end + + printf("removing anomaly object %s, %s, on level %s", obj:section_name(), obj.id, level_name) + -- obj:disable_anomaly() + + local db_tables = { + db.actor_inside_zones, + db.anim_obj_by_name, + db.anomaly_by_name, + db.bridge_by_name, + db.camp_storage, + db.campfire_by_name, + db.campfire_table_by_smart_names, + db.dynamic_ltx, + db.heli, + db.heli_enemies, + db.info_restr, + db.level_doors, + db.no_weap_zones, + db.offline_objects, + db.script_ids, + db.signal_light, + db.smart_terrain_by_id, + db.spawned_vertex_by_id, + db.storage, + db.story_by_id, + db.story_object, + db.used_level_vertex_ids, + db.zone_by_name, + } + + for i = 1, #db_tables do + if is_not_empty(db_tables[i]) then + db_tables[i][obj.id] = nil + db_tables[i][obj:name()] = nil + end + end + bind_anomaly_field.fields_by_names[obj:name()] = nil + + local g_obj = level.object_by_id(id) + if g_obj and g_obj ~= 0 and g_obj:id() ~= 0 then + g_obj:destroy_object() + else + alife_record(obj, false) + alife():release(obj, true) + end + end +end + +-- Delete old anomalies persisting from old code +function clean_old_dynamic_anomalies_on_level(level_name) + if not updated_anomaly_levels[level_name].cleaned_old_anomalies then + local load_var = load_var + local pairs = pairs + local sim = alife() + local sim_level_name = sim.level_name + local gg = game_graph() + local gg_vertex = gg.vertex + local strformat = strformat + + local fully_cleaned = true + + for smart_name, v in pairs(SIMBOARD.smarts_by_names) do + local smart_level = sim_level_name(sim, gg_vertex(gg, v.m_game_vertex_id):level_id()) + if smart_level == level_name then + for j = 1, 1000 do + local anom_id = load_var(db.actor, strformat("drx_da_anom_id_%s_%s", smart_name, j), nil) + if anom_id then + if not in_restrictions[anom_id] then + remove_anomaly_obj(anom_id, level_name) + else + printf("Error, can't remove old anomaly %s, level %s, in restriction", anom_id, level_name) + fully_cleaned = false + end + end + end + end + end + updated_anomaly_levels[level_name].cleaned_old_anomalies = fully_cleaned + else + printf("old anomalies already cleaned on level %s", level_name) + end +end + +-- Clean dynamic anomalies on level, normally after surge on level change or forcefully +function clean_dynamic_anomalies_on_level_func(level_name) + local t = updated_anomaly_levels[level_name] + if not t then + printf("Error, updated_anomaly_levels table not found for %s", level_name) + return + end + + local t = t.anomalies + for i, id in pairs(t) do + if t[i] and not in_restrictions[t[i]] then + remove_anomaly_obj(t[i], level_name) + + for k, v in pairs(updated_anomaly_levels[level_name].anomalies_by_smart) do + v[t[i]] = nil + updated_anomaly_levels[level_name].anomaly_types_by_smart[k] = nil + if is_empty(v) then + updated_anomaly_levels[level_name].anomalies_by_smart[k] = nil + updated_anomaly_levels[level_name].available_smarts_reduced[k] = nil + end + end + + updated_anomaly_levels[level_name].smart_by_anomalies[t[i]] = nil + updated_anomaly_levels[level_name].anomalies_properties[t[i]] = nil + t[i] = nil + else + printf("Error, can't remove anomaly %s, level %s, in restriction", t[i], level_name) + end + end + + clean_old_dynamic_anomalies_on_level(level_name) + printf("Anomalies cleaned on level %s", level_name) +end + +function clean_dynamic_anomalies_on_level(level_name, dont_clean_restrictions) + get_anomalies_by_smart(level_name) + remove_all_restrictions(level_name) + + get_obj_restrictions(not dont_clean_restrictions) + -- disable_anomalies_on_level(level_name) + -- remove_restrictions(level_name) + + clean_dynamic_anomalies_on_level_func(level_name) + -- enable_anomalies_on_level(level_name) + -- clean_restriction_tables() +end + +function clean_dynamic_anomalies_global() + remove_all_restrictions() + get_obj_restrictions(true) + + unregister_anomalies_behaviour() + + local alife_release_id = alife_release_id + local gg = game_graph() + local gg_vertex = gg.vertex + local level_name = level.name() + local load_var = load_var + local pairs = pairs + local printf = printf + local sim = alife() + local sim_level_name = sim.level_name + local sim_object = sim.object + local sim_release = sim.release + local alife_record = alife_record + local strformat = strformat + + for k, v in pairs(updated_anomaly_levels) do + get_anomalies_by_smart(k) + clean_artefacts_on_level(k) + if k == level_name then + disable_anomalies_on_level(level_name) + v.disabled = true + -- clean_dynamic_anomalies_on_level_func(level_name) + else + for k1, v1 in pairs(v.anomalies) do + if not in_restrictions[v1] then + local se_obj = sim_object(sim, v1) + if se_obj then + if IsAnomaly(_, se_obj:clsid()) then + printf("Deleting anomaly %s, %s globally, level %s", se_obj:section_name(), v1, k) + alife_record(se_obj ,false) + alife():release(se_obj, true) + else + printf("Error, object is not an anomaly, %s, %s, on level %s", se_obj:section_name(), v1, k) + end + end + + for k2, v2 in pairs(v.anomalies_by_smart) do + v2[v1] = nil + v.anomaly_types_by_smart[k2] = nil + if is_empty(v2) then + v.anomalies_by_smart[k2] = nil + v.available_smarts_reduced[k2] = nil + end + end + + v.smart_by_anomalies[v1] = nil + v.anomalies_properties[v1] = nil + v.anomalies[k1] = nil + else + printf("can't delete anomaly %s globally, level %s, in restriction", v1, k) + end + end + + -- Old anomalies + if not v.cleaned_old_anomalies then + local fully_cleaned = true + + for smart_name, v in pairs(SIMBOARD.smarts_by_names) do + local smart_level = sim_level_name(sim, gg_vertex(gg, v.m_game_vertex_id):level_id()) + if smart_level == k then + for j = 1, 1000 do + local anom_id = load_var(db.actor, strformat("drx_da_anom_id_%s_%s", smart_name, j), nil) + if anom_id then + if not in_restrictions[anom_id] then + local o = alife_object(anom_id) + if o then + alife_record(o ,false) + alife():release(o, true) + end + else + printf("Error, can't remove old anomaly %s, level %s, in restriction", anom_id, k) + fully_cleaned = false + end + end + end + end + end + v.cleaned_old_anomalies = fully_cleaned + else + printf("old anomalies already cleaned on level %s", k) + end + end + end + printf("Cleaned dynamic anomalies globally") + if settings.save_after_cleanup then + CreateTimeEvent("drx_da_save_after_cleanup", 0, 0.1, function() + exec_console_cmd("save " .. (user_name() or "") .. " - DAO tempsave") + return true + end) + end +end + +function drx_da_spawn_anomaly_on_smart(level_file, smart_name, anomaly_type, level_name, position_data) + -- Get the smart terrain: + local smart = SIMBOARD.smarts_by_names[smart_name] + if not smart then + printf("Error: Unable to create dynamic anomaly field for %s, the specified smart location does not exist", smart_name) + return false + end + + -- Select a location for the current anomaly: + local pos = drx_da_generate_position(smart_name, anomaly_type, position_data) + if pos then + + -- Get the new level vertex id for the generated position: + local lvid = level_vertex_id(pos) + + -- Spawn the anomaly: + local anom_id = drx_da_spawn_anomaly(anomaly_type, pos, lvid, smart.m_game_vertex_id, level_file) + + -- Return the anomaly id: + if anom_id then + printf("Dynamic anomaly field %s spawned at %s, level %s", anomaly_type, smart_name, level_name) + return anom_id + end + else + printf("Error: failed to generate position") + end +end + +function get_level_data(level_name) + local level_file_name = "hazardous_anomalies\\regions\\" .. level_name .. ".ltx" + local level_file = ini_file(level_file_name) + if not level_file then + printf("ltx file not found: %s", level_file_name) + return false + end + + -- Get the percent chance for anomalies to spawn: + local spawn_percent = level_file:r_float_ex("spawn_properties", "spawn_percent") or 0 + if not spawn_percent or spawn_percent <= 0 then + printf("Dynamic anomalies not spawned, spawn chance is 0") + return false + end + + -- Determine the maximum amount of anomalies spawned in each anomaly field: + local anomaly_max_number = level_file:r_float_ex("spawn_properties", "anomaly_max_number") or 0 + if not anomaly_max_number or anomaly_max_number < 1 then + printf("Dynamic anomalies not spawned, max anomaly count is 0") + return false + end + + -- Determine the maximum amount of anomalies active in each anomaly field: + local anomaly_max_active = level_file:r_float_ex("spawn_properties", "anomaly_max_active") or 0 + if not anomaly_max_active or anomaly_max_active < 1 then + printf("Dynamic anomalies not spawned, max active count is 0") + return false + end + + return { + level_file = level_file, + spawn_percent = spawn_percent, + anomaly_max_number = anomaly_max_number, + anomaly_max_active = anomaly_max_active, + } +end + +function generate_random_anomaly_properties() + return { + time_active = random(6500, 15000), + time_cooldown = random(2200, 3800), + active = true, + } +end + +function drx_da_spawn_anomalies_on_level(level_name) + local level_data = get_level_data(level_name) + if not level_data then + printf("Error, unable to get data for %s", level_name) + return + end + + local level_file = level_data.level_file + local spawn_percent = level_data.spawn_percent + local anomaly_max_number = level_data.anomaly_max_number * settings.anomaly_amount_modifier + local anomaly_max_active = level_data.anomaly_max_active + + local pairs = pairs + local collect_section = utils_data.collect_section + local size_table = size_table + local invert_table = invert_table + local is_not_empty = is_not_empty + local is_empty = is_empty + local table_remove = table.remove + + -- Build a list of available smart terrains: + local smart_list = collect_section(level_file, "available_smarts") + + if is_not_empty(smart_list) then + if reduced_chance_levels[level_name] then + local t = {} + for k, v in pairs(smart_list) do + if random(100) <= 50 then + t[#t + 1] = v + end + end + smart_list = t + end + end + + -- Build a list of available smart terrains with reduced amount: + local smart_list_reduced = collect_section(level_file, "available_smarts_reduced") + if is_not_empty(smart_list_reduced) then + smart_list_reduced = invert_table(smart_list_reduced) + for k, v in pairs(smart_list_reduced) do + smart_list[#smart_list + 1] = k + end + end + + -- Build a list of available anomalies: + local anomaly_list = collect_section(level_file, "anomaly_types") + if settings.disable_new_anomalies then + local t = {} + for _, v in pairs(anomaly_list) do + if not drx_da_main_mcm.new_anomalies_sections[v] then + t[#t + 1] = v + else + printf("disable all new anomalies, found section %s", v) + end + end + anomaly_list = t + else + local t = {} + for k, v in pairs(anomaly_list) do + if drx_da_main_mcm.new_anomalies_sections[v] then + if drx_da_main_mcm.is_enabled_anomaly(v) then + t[#t + 1] = v + else + printf("anomaly %s is not enabled", v) + end + else + t[#t + 1] = v + end + end + anomaly_list = t + end + + -- Combine radiation fields to one type + -- local rad_fields = {} + -- for i = #anomaly_list, 1, -1 do + -- if anomalies_radiation_fields[anomaly_list[i]] then + -- rad_fields[#rad_fields + 1] = anomaly_list[i] + -- table_remove(anomaly_list, i) + -- end + -- end + -- if is_not_empty(rad_fields) then + -- anomaly_list[#anomaly_list + 1] = "zone_radiation_field" + -- end + + -- Build anomalies table + if is_not_empty(smart_list) then + local anomalies = updated_anomaly_levels[level_name].anomalies or {} + local anomalies_by_smart = updated_anomaly_levels[level_name].anomalies_by_smart or {} + local smart_by_anomalies = updated_anomaly_levels[level_name].smart_by_anomalies or {} + local anomaly_types_by_smart = updated_anomaly_levels[level_name].anomaly_types_by_smart or {} + local anomalies_properties = updated_anomaly_levels[level_name].anomalies_properties or {} + local available_smarts_reduced = updated_anomaly_levels[level_name].available_smarts_reduced or {} + + for i, smart_name in pairs(smart_list) do + if (true or not smart_restrictions[smart_name]) and random() <= settings.anomaly_zone_spawn_chance then + -- Choose an anomaly type to spawn: + if anomaly_list and #anomaly_list >= 1 then + local anomaly_type = anomaly_list[random(#anomaly_list)] + + -- if anomaly_type == "zone_radiation_field" then + -- anomaly_type = rad_fields[math.random(#rad_fields)] + -- end + + printf("picked anomaly type %s", anomaly_type) + + if not anomalies_by_smart[smart_name] then anomalies_by_smart[smart_name] = {} end + local j = size_table(anomalies_by_smart[smart_name]) + + -- Store position data of generated anomalies + local position_data = kd_tree.buildTreeVectors() + + if j > 0 then + for k, v in pairs(anomalies_by_smart[smart_name]) do + local se_obj = get_anomaly_obj(k) + if se_obj then + local pos = se_obj.position + if pos then + position_data:insertAndRebuild({x = pos.x, y = pos.y, z = pos.z}) + end + end + end + end + + while j < (smart_list_reduced[smart_name] and random(3) or anomaly_max_number) do + if random() <= (smart_list_reduced[smart_name] and 0.5 or spawn_percent) then + local anom_id = drx_da_spawn_anomaly_on_smart(level_file, smart_name, anomaly_type, level_name, position_data) + if anom_id then + anomalies[#anomalies + 1] = anom_id + anomalies_by_smart[smart_name][anom_id] = true + smart_by_anomalies[anom_id] = smart_name + anomaly_types_by_smart[smart_name] = anomaly_type + available_smarts_reduced[smart_name] = smart_list_reduced[smart_name] + anomalies_properties[anom_id] = generate_random_anomaly_properties() + end + end + j = j + 1 + end + else + printf("No dynamic anomaly types specified for level %s", level_name) + end + else + printf("no anomalies spawn on smart %s, level %s in restriction", smart_name, level_name) + end + end + return #anomalies > 0 + end +end + +-- \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ +-- //////////////////////////////////////////////////////////////////////////////////////////////// +-- +-- drx_da_spawn_anomaly function +-- +-- ------------------------------------------------------------------------------------------------ +-- +-- Description: +-- - Spawns an anomaly at the specified location +-- +-- Usage: +-- drx_da_spawn_anomaly( anom_type, pos, lvid, gvid ) +-- +-- Parameters: +-- anom_type (type: string, anomaly type name) +-- - Type of anomaly to spawn +-- pos (type: vector) +-- - Positional data for the anomaly +-- lvid (type: int, level vertex id) +-- - Level vertex id +-- gvid (type: int, game vertex id) +-- - Game vertex id +-- +-- Return value (type: object id): +-- Returns the id of the spawned anomaly +-- Returns nil on failure +-- +-- ------------------------------------------------------------------------------------------------ +-- Created by DoctorX +-- for DoctorX Dynamic Anomalies 2.0 +-- Last modified March 02, 2018 +-- ------------------------------------------------------------------------------------------------ +-- Spawn a single anomaly: +function drx_da_spawn_anomaly(anom_type, pos, lvid, gvid, level_file) + local function abort_creation(se_obj_id, anom_type) + CreateTimeEvent("drx_da_abort_creation" .. se_obj_id, "drx_da_abort_creation" .. se_obj_id, 0.2, function() + local obj = alife():object(se_obj_id) + if obj then + printf("Error, anomaly %s failed to spawn correctly, releasing", anom_type) + alife_record(obj ,false) + alife():release(obj, true) + end + return true + end) + end + + local min_radius = (level_file:r_float_ex("radius_properties", "min_radius") or 2) + local max_radius = (level_file:r_float_ex("radius_properties", "max_radius") or 3) + + -- Spawn the anomaly: + local se_obj = alife():create(anom_type, pos, lvid, gvid) + if (not se_obj) then + printf("Error: Unable to spawn dynamic anomaly") + return + end + + -- Set anomaly properties: + local data = utils_stpk.get_anom_zone_data(se_obj) + if (not data) then + printf("Error: Unable to set dynamic anomaly properties") + abort_creation(se_obj.id, anom_type) + 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 = anomaly_radii[anom_type] and random(anomaly_radii[anom_type].min, anomaly_radii[anom_type].max) or random(min_radius, max_radius) + utils_stpk.set_anom_zone_data(data, se_obj) + + -- Return the anomaly id: + return se_obj.id, se_obj +end + +-- \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ +-- //////////////////////////////////////////////////////////////////////////////////////////////// +-- +-- drx_da_generate_position function +-- +-- ------------------------------------------------------------------------------------------------ +-- +-- Description: +-- - Generates a random position vector on the ground within a smart terrain location +-- +-- Usage: +-- drx_da_generate_position( smart_name ) +-- +-- Parameters: +-- smart_name (type: string, smart terrain name) +-- - Name of the smart terrain +-- +-- Ini requirements: +-- drx\drx_da_config.ltx +-- [location_offset] +-- max_offset_x (type: float, meters) +-- - Magnitude of maximum offset from smart terrain center in x (north-south) direction +-- max_offset_y (type: float, meters) +-- - Magnitude of maximum offset from smart terrain center in y (up-down) direction +-- max_offset_z (type: float, meters) +-- - Magnitude of maximum offset from smart terrain center in z (east-west) direction +-- max_tries (type: int) +-- - Maximum number of iterations to try generating a spawn position before aborting +-- +-- Return value (type: vector): +-- Returns the generated positional data +-- Returns nil on failure +-- +-- ------------------------------------------------------------------------------------------------ +-- Created by DoctorX, (modification of method suggested by Alundaio) +-- for DoctorX Dynamic Anomalies 2.0 +-- Last modified January 31, 2018 +-- ------------------------------------------------------------------------------------------------ + +-- Table of small levels to adjust spawn extra to underground levels +small_levels = { + y04_pole = true, + l11_hospital = true, +} + +-- Table of anomalies to ignore distance check +anomalies_distance_check_ignore = { + zone_field_radioactive = true, + zone_field_radioactive_above_average = true, + zone_field_radioactive_average = true, + zone_field_radioactive_below_average = true, + zone_field_radioactive_lethal = true, + zone_field_radioactive_strong = true, + zone_field_radioactive_very_weak = true, + zone_field_radioactive_weak = true, + zone_radioactive = true, + zone_radioactive_above_average = true, + zone_radioactive_average = true, + zone_radioactive_below_average = true, + zone_radioactive_lethal = true, + zone_radioactive_strong = true, + zone_radioactive_very_weak = true, + zone_radioactive_weak = true, +} + +-- Table of radiation fields +anomalies_radiation_fields = { + zone_field_radioactive = true, + zone_field_radioactive_above_average = true, + zone_field_radioactive_average = true, + zone_field_radioactive_below_average = true, + zone_field_radioactive_lethal = true, + zone_field_radioactive_strong = true, + zone_field_radioactive_very_weak = true, + zone_field_radioactive_weak = true, + zone_radioactive = true, + zone_radioactive_above_average = true, + zone_radioactive_average = true, + zone_radioactive_below_average = true, + zone_radioactive_lethal = true, + zone_radioactive_strong = true, + zone_radioactive_very_weak = true, + zone_radioactive_weak = true, +} + +-- Generate positional data: +function drx_da_generate_position(smart_name, anomaly_type, position_data) + + -- Get the smart terrain: + local smart = SIMBOARD.smarts_by_names[smart_name] + if (not smart) then + printf("Error: Unable to generate positional data, specified smart location does not exist") + return + end + + -- Get maximum offset values: + local max_offset_x = settings.anomaly_zone_anomalies_distance_max or ini:r_float_ex("location_offset", "max_offset_x") or 40 + local max_offset_y = ini:r_float_ex("location_offset", "max_offset_y") or 0 + local max_offset_z = settings.anomaly_zone_anomalies_distance_max or ini:r_float_ex("location_offset", "max_offset_z") or 40 + local num_tries = (ini:r_float_ex("location_offset", "max_tries") or 64) + + -- Reduce offset by 2 times for underground + if level_weathers.bLevelUnderground or small_levels[level.name()] then + max_offset_x = floor(max_offset_x * 0.5) + max_offset_y = floor(max_offset_y * 0.5) + max_offset_z = floor(max_offset_z * 0.5) + end + + -- Try to generate valid positional data on the ground: + local pos = vector():set(0, 0, 0) + local valid_lvid = false + while ((valid_lvid ~= true) and (num_tries > 0)) do + + -- Randomly offset anomaly x-position from center of smart terrain: + local offset_x = max_offset_x * random() + if (random() <= 0.5) then + offset_x = -(offset_x) + end + local pos_x = (smart.position.x + offset_x) + + -- Randomly offset anomaly y-position from center of smart terrain: + local offset_y = (max_offset_y * random()) + if (random() <= 0.5) then + offset_y = -(offset_y) + end + local pos_y = (smart.position.y + offset_y) + + -- Randomly offset anomaly z-position from center of smart terrain: + local offset_z = max_offset_z * random() + if (random() <= 0.5) then + offset_z = -(offset_z) + end + local pos_z = (smart.position.z + offset_z) + + -- Set anomaly position at location vertex and check if valid: + pos = vector():set(pos_x, pos_y, pos_z) + local lvid = level_vertex_id(pos) + if (lvid < 4294967295) then + pos = level_vertex_position(lvid) + + -- Don't check distance for certain anomalies + if anomaly_type and anomalies_distance_check_ignore[anomaly_type] then + valid_lvid = true + else + -- If position data exists and distance of generated position is more than anomaly radius - valid + try(function() + if anomaly_type and anomaly_radii[anomaly_type] and position_data and position_data.root then + local nearest = position_data:nearest(pos) + if nearest and nearest[1] and nearest[1][2] then + local distance = sqrt(nearest[1][2]) - anomaly_radii[anomaly_type].max * 2 + if distance >= settings.anomaly_zone_anomalies_distance_min then + printf("Anomaly type %s, Position data valid, distance %s, saving %s, %s, %s", anomaly_type, distance, pos_x, pos_y, pos_z) + position_data:insertAndRebuild({x = pos_x, y = pos_y, z = pos_z}) + valid_lvid = true + else + printf("Anomaly type %s, Position data invalid, too close, distance %s, %s, %s, %s", anomaly_type, distance, pos_x, pos_y, pos_z) + valid_lvid = false + end + else + printf("Anomaly type %s, Can't check position data %s, %s, %s", anomaly_type, pos_x, pos_y, pos_z) + position_data:insertAndRebuild({x = pos_x, y = pos_y, z = pos_z}) + valid_lvid = true + end + else + if position_data then + printf("Anomaly type %s, Position data provided, saving %s, %s, %s", anomaly_type, pos_x, pos_y, pos_z) + position_data:insertAndRebuild({x = pos_x, y = pos_y, z = pos_z}) + end + valid_lvid = true + end + end) + end + end + + -- Decrement the number of tries left: + num_tries = (num_tries - 1) + if ((num_tries <= 0) and (valid_lvid ~= true)) then + printf("Error: Unable to generate valid lvid pos, aborting") + return + end + end + + -- Return the position vector: + return pos +end + +function clean_artefacts_on_level(level_name) + local level_name = level_name or level.name() + + init_anomaly_table_on_level(level_name) + local artefacts = updated_anomaly_levels[level_name].artefacts + if is_not_empty(artefacts) then + for k, v in pairs(artefacts) do + local o = alife_object(k) + if o then safe_release_manager.release(o) end + printf("releasing artefact %s, sec %s, level_name %s", k, v, level_name) + artefacts[k] = nil + end + end +end + +-- Spawn single artefact on smart +function spawn_artefact_on_smart(level_file, smart_name, picked_artefact, level_name) + local level_name = level_name or level.name() + + if not picked_artefact then + printf("Error: Unable to create artefact %s, is nil", picked_artefact) + return false + end + + -- Get the smart terrain: + local smart = SIMBOARD.smarts_by_names[smart_name] + if not smart then + printf("Error: Unable to create artefact for %s, the specified smart location does not exist", smart_name) + return false + end + + -- Select a location for the current artefact: + local pos = drx_da_generate_position(smart_name) + if pos then + + -- Correct y position so the artefact wouldnt fall OOB + pos = vector():set(pos.x, (level_weathers.bLevelUnderground or small_levels[level.name()]) and pos.y + 1 or pos.y + 7, pos.z) + + -- Get the new level vertex id for the generated position: + local lvid = level_vertex_id(pos) + + -- Spawn the artefact: + local artefact = alife_create(picked_artefact, pos, lvid, smart.m_game_vertex_id) + + -- Return the anomaly id: + if artefact then + printf("Artefact %s, id %s spawned at %s, level %s", picked_artefact, artefact.id, smart_name, level_name) + return artefact.id + end + else + printf("Error: failed to generate position") + end +end + +-- Spawn artefacts on level +function spawn_artefacts_on_level(level_name) + local level_name = level_name or level.name() + + local level_data = get_level_data(level_name) + if not level_data then + printf("Error, unable to get data for %s", level_name) + return + end + + local level_file = level_data.level_file + + -- Build a list of available smart terrains: + local smart_list = {} + for k, v in pairs(updated_anomaly_levels[level_name].anomaly_types_by_smart) do + if not updated_anomaly_levels[level_name].available_smarts_reduced[k] then + smart_list[#smart_list + 1] = k + end + end + smart_list = invert_table(smart_list) + + local pairs = pairs + local collect_section = utils_data.collect_section + local size_table = size_table + + local allowed_artefacts = drx_da_main_artefacts.allowed_artefacts + local allowed_artefacts_flipped = invert_table(allowed_artefacts) + local anomaly_type_to_artefacts = drx_da_main_artefacts.anomaly_type_to_artefacts + local artefacts_map_tiers = drx_da_main_artefacts.artefacts_map_tiers[level_name] and shuffle(drx_da_main_artefacts.artefacts_map_tiers[level_name]) + local artefacts_map_chances = drx_da_main_artefacts.artefacts_map_chances and drx_da_main_artefacts.artefacts_map_chances[level_name] + + -- Build anomalies table + if is_not_empty(smart_list) then + printf("%s has smarts with anomalies, try to spawn artefacts", level_name) + local artefacts = updated_anomaly_levels[level_name].artefacts or {} + local anomalies_by_smart = updated_anomaly_levels[level_name].anomalies_by_smart + for smart_name, _ in pairs(anomalies_by_smart) do + printf("checking smart %s for spawning artefacts", smart_name) + if is_not_empty(anomalies_by_smart[smart_name]) and smart_list[smart_name] then + printf("try to spawn artefacts on smart %s", smart_name) + for i = 1, settings.max_artefacts_per_zone do + + -- Increased chance by 2 times for underground levels + local dice_roll = random(100) + local chance = artefacts_map_chances or ceil(settings.artefacts_spawn_chance * ((level_weathers.bLevelUnderground or small_levels[level_name]) and 2 or 1)) + printf("artefacts dice roll %s, chance %s, spawn %s", dice_roll, chance, dice_roll <= chance) + + if dice_roll <= chance then + -- Choose an artefact to spawn: + local anomaly_type = updated_anomaly_levels[level_name].anomaly_types_by_smart[smart_name] + local picked_artefact = (function() + + local res + if artefacts_map_tiers and random(100) > settings.random_artefact_spawn_chance then + local tries = 40 + while tries > 0 and (not res or not allowed_artefacts_flipped[res]) do + if anomaly_type_to_artefacts[anomaly_type] then + local t = {} + for k, v in pairs(artefacts_map_tiers) do + if anomaly_type_to_artefacts[anomaly_type][v] then + t[#t + 1] = v + end + end + printf("picking artefact by level %s, anomaly zone %s has defined arty list", level_name, anomaly_type) + res = t[random(#t)] + else + printf("picking artefact by level %s", level_name) + res = artefacts_map_tiers[random(#artefacts_map_tiers)] + end + + if not allowed_artefacts_flipped[res] then + printf("artefact is not allowed to spawn, repicking") + end + + tries = tries - 1 + end + else + printf("picking random artefacts") + res = allowed_artefacts[random(#allowed_artefacts)] + end + + if not res then + printf("failed to pick artefact by level, pick random from allowed, level_name %s, anomaly_type %s, has artefacts_map_tiers %s, has anomaly_type_to_artefacts %s", level_name, anomaly_type, artefacts_map_tiers ~= nil, anomaly_type_to_artefacts[anomaly_type] ~= nil) + res = allowed_artefacts[random(#allowed_artefacts)] + end + + return res + end)() + + -- Artefact Variationizer compatibility + if artefact_variationizer then + local av = artefact_variationizer + picked_artefact = av.get_artefact_base(picked_artefact) + if av.valid_artys[picked_artefact] then + local variationizer_tier = av.artefact_chances[random(#av.artefact_chances)] + local arty = av.artefact_by_variationizer_tier[picked_artefact][variationizer_tier] + picked_artefact = arty[random(#arty)] + end + end + + printf("picked artefact to spawn %s, anomaly_type %s, smart %s level %s", picked_artefact, anomaly_type, smart_name, level_name) + local artefact_id = spawn_artefact_on_smart(level_file, smart_name, picked_artefact, level_name) + if artefact_id then + artefacts[artefact_id] = picked_artefact + else + printf("error, unabled to spawn artefact %s, anomaly_type %s, smart %s level %s", picked_artefact, anomaly_type, smart_name, level_name) + end + end + end + end + end + return size_table(artefacts) > 0 + else + printf("%s has no smarts with anomalies, dont spawn artefacts", level_name) + end +end + +-- Update dynamic anomalies: +function drx_da_update_dynamic_anomalies(force) + + -- Verify db.actor is available: + if not db.actor then + printf("Error: Cannot update anomalies, db.actor not available") + return false + end + + -- Get surge manager: + local surgeman = surge_manager.get_surge_manager() + if not surgeman then + printf("Error: Cannot update anomalies, surge manager not available") + return false + end + + local level_name = level.name() + init_anomaly_table_on_level(level_name) + + if last_surge_time > updated_anomaly_levels[level_name].time or force then + clean_dynamic_anomalies_on_level(level_name) + clean_artefacts_on_level(level_name) + CreateTimeEvent("drx_da_spawn_anomalies_on_level", "drx_da_spawn_anomalies_on_level", 0.3, function() + local anomalies = drx_da_spawn_anomalies_on_level(level_name) + if not anomalies then + printf("Error, failed to spawn anomalies") + build_anomalies_pos_tree() + return true + end + + printf("updated anomalies on level %s", level_name) + updated_anomaly_levels[level_name].time = last_surge_time + updated_anomaly_levels[level_name].disabled = false + build_anomalies_pos_tree() + if settings.enable_anomalies_behaviour or level_weathers.bLevelUnderground then register_anomalies_behaviour() end + spawn_artefacts_on_level(level_name) + return true + end) + else + printf("anomalies not updated on level %s, no emission happened, last_surge_time %s, level update time %s", level_name, last_surge_time, updated_anomaly_levels[level_name].time) + if settings.enable_anomalies_behaviour or level_weathers.bLevelUnderground then register_anomalies_behaviour() end + end + + return true +end + +-- Scripts to run when the game loads: +local tg = 0 +local tg_interval = 5000 + +function drx_da_actor_on_update_callback() + local t = time_global() + if t < tg then return end + tg = t + tg_interval + + load_settings() + get_actor_psy_table() + init_anomaly_table_global(level.name()) + + printf("saved level %s, current level %s", alife_storage_manager.get_state().drx_da_previous_level, level.name()) + if level.name() == alife_storage_manager.get_state().drx_da_previous_level then + local level_name = level.name() + if level_name and updated_anomaly_levels[level_name] and updated_anomaly_levels[level_name].disabled then + if last_surge_time > updated_anomaly_levels[level_name].time then + clean_dynamic_anomalies_on_level(level_name) + updated_anomaly_levels[level_name].disabled = false + end + end + + printf("on the same level, only register behaviour") + if settings.enable_anomalies_behaviour or level_weathers.bLevelUnderground then register_anomalies_behaviour() end + unregister_drx_da() + build_anomalies_pos_tree() + RegisterScriptCallback("actor_on_update", actor_on_update) + return + else + local level_name = alife_storage_manager.get_state().drx_da_previous_level + if level_name and updated_anomaly_levels[level_name] and updated_anomaly_levels[level_name].disabled then + if last_surge_time > updated_anomaly_levels[level_name].time then + clean_dynamic_anomalies_on_level(level_name) + updated_anomaly_levels[level_name].disabled = false + end + end + end + + get_anomalies_by_smart(level.name()) + + -- Update dynamic anomalies: + local updated = drx_da_update_dynamic_anomalies() + unregister_drx_da() + build_anomalies_pos_tree() + RegisterScriptCallback("actor_on_update", actor_on_update) +end + +function unregister_drx_da() + printf("anomalies updated, unregistering") + UnregisterScriptCallback("actor_on_update", drx_da_actor_on_update_callback) +end + +function unregister_anomalies_behaviour() + remove_queue("drx_da_anomalies_behaviour") +end + +-- Sections to ignore on/off switch behaviour +anomalies_do_not_register_behaviour = { + zone_mine_ghost = true +} + +function register_anomalies_behaviour() + local level_name = level.name() + if is_empty(updated_anomaly_levels[level_name]) or is_empty(updated_anomaly_levels[level_name].anomalies) then + printf("anomalies behaviour, anomalies not found for level %s", level_name) + return + end + + if is_empty(updated_anomaly_levels[level_name].anomalies_properties) or + size_table(updated_anomaly_levels[level_name].anomalies_properties) ~= size_table(updated_anomaly_levels[level_name].anomalies) + then + for k, v in pairs(updated_anomaly_levels[level_name].anomalies) do + updated_anomaly_levels[level_name].anomalies_properties[v] = generate_random_anomaly_properties() + end + end + + printf("anomalies behaviour, turning on behaviour for level %s", level_name) + + for k, v in pairs(updated_anomaly_levels[level_name].anomalies_properties) do + v.update_time = time_global() + end + + local get_object = level.object_by_id + local time_global = time_global + + process_queue("drx_da_anomalies_behaviour", updated_anomaly_levels[level_name].anomalies_properties, function(id, props, i) + local t = time_global() + + -- if is_empty(props) then + -- printf("Error, anomaly behaviour not found for %s, level %s", id, level_name) + -- return true + -- end + + local obj = get_object(id) + if not obj then return end + + -- Remove from queue if its in do_not_register_behaviour table + if anomalies_do_not_register_behaviour[obj:section()] then return true end + + if props.active then + if t - props.update_time > props.time_active then + -- printf("anomaly disabled, id %s, i %s, t %s, u %s", id, i, t, props.update_time) + props.update_time = t + props.active = false + obj:disable_anomaly() + end + else + if t - props.update_time > props.time_cooldown then + -- printf("anomaly enabled, id %s, i %s, t %s, u %s", id, i, t, props.update_time) + props.update_time = t + props.active = true + obj:enable_anomaly() + end + end + end, nil, 5) +end + +anomalies_pos_tree = nil +detectable_anomalies_pos_tree = nil +detectable_anomalies_ids = {} +anomalies_obj_to_pos = {} +anomalies_sec_to_obj = {} + +common_sec = { + zone_mine_electric = "zone_mine_electric", + zone_mine_electric_weak = "zone_mine_electric", + zone_mine_electric_average = "zone_mine_electric", + zone_mine_electric_strong = "zone_mine_electric", + zone_mine_static = "zone_mine_electric", + zone_mine_static_weak = "zone_mine_electric", + zone_mine_static_average = "zone_mine_electric", + zone_mine_static_strong = "zone_mine_electric", + zone_witches_galantine = "zone_mine_electric", + zone_witches_galantine_weak = "zone_mine_electric", + zone_witches_galantine_average = "zone_mine_electric", + zone_witches_galantine_strong = "zone_mine_electric", +} + +function build_anomalies_pos_tree() + local alife_release_id = alife_release_id + local gg = game_graph() + local gg_vertex = gg.vertex + local level_name = level.name() + local load_var = load_var + local pairs = pairs + local printf = printf + local sim = alife() + local sim_level_name = sim.level_name + local sim_object = sim.object + local sim_release = sim.release + local alife_record = alife_record + local strformat = strformat + + local level_name = level.name() + + local objects = {} + local obj_to_pos = {} + local sec_to_obj = {} + + + + for i = 1, 65534 do + local obj = get_anomaly_obj(i, level_name) + if obj then + table.insert(objects, obj) + obj_to_pos[i] = { + id = i, + section = obj:section_name(), + position = obj.position + } + local sec = obj:section_name() + sec = common_sec[sec] or sec + if not sec_to_obj[sec] then sec_to_obj[sec] = {} end + table.insert(sec_to_obj[sec], { + id = i, + section = obj:section_name(), + position = obj.position + }) + end + end + + -- try(function() + -- anomalies_pos_tree = kd_tree.buildTreeSeObjects(objects) + -- anomalies_obj_to_pos = anomalies_pos_tree and obj_to_pos + -- end) + + empty_table(detectable_anomalies_ids) + local t = {} + for k, v in pairs(sec_to_obj) do + if sec_to_obj[k] then + local ids = {} + for k1, v1 in pairs(sec_to_obj[k]) do + ids[#ids + 1] = v1.id + if not anomaly_detector_ignore[v1.section] then + detectable_anomalies_ids[v1.id] = v1.position + t[#t + 1] = v1.id + end + end + anomalies_sec_to_obj[k] = kd_tree.buildTreeSeObjectIds(ids) + end + end + detectable_anomalies_pos_tree = kd_tree.buildTreeSeObjectIds(t) +end + +-- Rays +local function ray_main(pos1, pos2, args) + local pos1 = vector():set(pos1.x or pos1[1], pos1.y or pos1[2], pos1.z or pos1[3]) + local pos2 = vector():set(pos2.x or pos2[1], pos2.y or pos2[2], pos2.z or pos2[3]) + local args = args or {} + + local pick = ray_pick() + pick:set_position(pos1) + pick:set_direction(pos2:sub(pos1):normalize()) + pick:set_flags(args.flags or 2) + pick:set_range(args.range or 200) + if args.ignore_object then + pick:set_ignore_object(args.ignore_object) + end + pick:query() + + return pick +end + +anomalies_vars = { + -- Quick lookup of sine values by degrees + sin_lut = (function() + local t = {} + for i = 0, 360 do + t[i] = sin(i * 0.0174533) + end + return t + end)(), + + -- Quick lookup of cosine values by degrees + cos_lut = (function() + local t = {} + for i = 0, 360 do + t[i] = cos(i * 0.0174533) + end + return t + end)(), + + -- Current anomaly factors + factors = {}, + add_factor = function(self, anomaly, actor, distance_to_sqr, radius_sqr, section, factor) + self.factors[anomaly.object:name()] = { + section = section or anomaly.object:section(), + factor = factor or 1 - distance_to_sqr / radius_sqr + } + end, + remove_factor = function(self, anomaly, actor, distance_to_sqr, radius_sqr) + self.factors[anomaly.object:name()] = nil + end, + find_max_factor = function(self, anomaly, actor, distance_to_sqr, radius_sqr, condition) + if is_empty(self.factors) then + return 1 - distance_to_sqr / radius_sqr + end + + local factor = 0 + if condition == nil or condition == true then + condition = function() return true end + elseif condition == false then + condition = function() return false end + end + + for k, v in pairs(self.factors) do + if v.factor > factor and condition(v) then + factor = v.factor + end + end + return factor + end, + find_factor_sum = function(self, anomaly, actor, distance_to_sqr, radius_sqr, condition) + if is_empty(self.factors) then + return 1 - distance_to_sqr / radius_sqr + end + + local factor = 0 + if condition == nil or condition == true then + condition = function() return true end + elseif condition == false then + condition = function() return false end + end + + for k, v in pairs(self.factors) do + if condition(v) then + factor = factor + v.factor + end + end + return factor + end, + + zone_mine_gravitational_weak_tg = 0, + zone_mine_electric_tg = 0, + zone_mine_electric_pp_effectors = { + {code = 98324, file = "electra_mine.ppe", factor = 0.5}, + {code = 98325, file = "electra.ppe", factor = 1}, + }, + zone_mine_electric_factor_function = function(factors) + return factors.section == "zone_mine_electric" + end +} + +-- Defined radius of anomalies behaviour +anomalies_near_actor_radii = { + zone_mine_umbra = anomaly_radii.zone_mine_umbra.max * 3.5, + zone_mine_gold = anomaly_radii.zone_mine_gold.max * 3, + zone_mine_thorn = anomaly_radii.zone_mine_thorn.max * 3, + zone_mine_shatterpoint = anomaly_radii.zone_mine_shatterpoint.max * 6, + zone_mine_seed = anomaly_radii.zone_mine_seed.max * 5, + zone_mine_sphere = anomaly_radii.zone_mine_sphere.max * 2, + zone_mine_sloth = anomaly_radii.zone_mine_sloth.max * 2, + zone_mine_ghost = anomaly_radii.zone_mine_ghost.max * 5, +} + +-- Special anomalies behaviour if the actor is near an anomaly +anomalies_near_actor_functions = { + + -- Umbral Cluster, spawns poltergeist behind the actor + zone_mine_umbra = function(anomaly, actor, distance_to_sqr, radius_sqr) + if not anomaly.spawn_time then anomaly.spawn_time = 0 end + if time_elapsed < anomaly.spawn_time then return end + + local spawn_cooldown = 300 + local spawn_max_amount = 2 + local spawn_table = { + "m_poltergeist_normal_tele", + "m_poltergeist_normal_flame", + } + + printf("trying to spawn poltergeist") + + if random() * 100 <= 1.5 then + anomaly.spawn_time = time_elapsed + spawn_cooldown + for i = 1, ceil(random() ^ 2 * spawn_max_amount) do + local actor_position = actor:position() + local spawn_position = vector():set(actor_position.x - random_float(5, 7), actor_position.y, actor_position.z - random_float(5, 7)) + local spawn_section = spawn_table[random(#spawn_table)] + + alife_create(spawn_section, spawn_position, level_vertex_id(spawn_position), alife():actor().m_game_vertex_id) + end + end + end, + + -- Seed, multiplies if standing near + zone_mine_seed = function(anomaly, actor, distance_to_sqr, radius_sqr) + if not anomaly.spawn_time then anomaly.spawn_time = 0 end + if time_elapsed < anomaly.spawn_time then return end + + local spawn_cooldown = 300 + local spawn_max_amount = 1 + local spawn_table = { + "zone_mine_seed", + } + + printf("trying to multiply seed anomaly") + + if random() * 100 <= 0.5 then + anomaly.spawn_time = time_elapsed + spawn_cooldown + for i = 1, ceil(random() ^ 2 * spawn_max_amount) do + local actor_position = actor:position() + local spawn_position = vector():set(actor_position.x - random_float(5, 7), actor_position.y, actor_position.z - random_float(5, 7)) + local spawn_section = spawn_table[random(#spawn_table)] + + local se_obj = alife_create(spawn_section, spawn_position, level_vertex_id(spawn_position), alife():actor().m_game_vertex_id) + local data = utils_stpk.get_object_data(se_obj) + if (data) then + data.object_flags = 31 + data.restrictor_type = 0 + data.shapes = {} + data.shapes[1] = {} + data.shapes[1].shtype = 0 + data.shapes[1].offset = VEC_ZERO + data.shapes[1].center = VEC_ZERO + data.shapes[1].radius = 3 + utils_stpk.set_object_data(data,se_obj) + end + end + end + end, + + -- Sloth, lower speed by 80% near it + zone_mine_sloth = function(anomaly, actor, distance_to_sqr, radius_sqr) + local key ="zone_mine_sloth_speed" + local steps_in = 70 + local steps_out = 22 + + add_simple_timed_effect(1, function() + add_speed(key, ema(key, 0.2, 1, steps_in), false, true) + RemoveTimeEvent(key, key) + end, function() + CreateTimeEvent(key, key, 0, function() + add_speed(key, ema(key, 1, 1, steps_out, device().time_delta * 0.1), false, true) + if smoothed_values[key] >= 0.98 then + remove_speed(key) + return true + end + end) + end, key, 1) + end, + + -- No Gravity, lower speed by 50% near it + zone_no_gravity = function(anomaly, actor, distance_to_sqr, radius_sqr) + local key ="zone_no_gravity" + local steps_in = 70 + local steps_out = 22 + + add_simple_timed_effect(1, function() + add_speed(key, ema(key, 0.6, 1, steps_in), false, true) + RemoveTimeEvent(key, key) + end, function() + CreateTimeEvent(key, key, 0, function() + add_speed(key, ema(key, 1, 1, steps_out, device().time_delta * 0.1), false, true) + if smoothed_values[key] >= 0.98 then + remove_speed(key) + return true + end + end) + end, key, 1) + end, + + -- Ghost, spawns phantoms when close + zone_mine_ghost = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomaly.spawn_time = anomaly.spawn_time or 0 + + if time_elapsed < anomaly.spawn_time then return end + + local spawn_cooldown = 300 + local spawn_max_amount = 2 + local spawn_table = { + "m_phantom_zombi", + "m_phantom_bloodsucker", + } + + printf("trying to spawn phantom") + + if random() * 100 <= 15 then + anomaly.spawn_time = time_elapsed + spawn_cooldown + for i = 1, ceil(random() ^ 2 * spawn_max_amount) do + local actor_position = actor:position() + local spawn_position = vector():set(actor_position.x - random_float(5, 7), actor_position.y, actor_position.z - random_float(5, 7)) + + phantom_manager.spawn_phantom(spawn_position) + end + end + end, + + -- Net, lower speed by 50% near it + zone_mine_net = function(anomaly, actor, distance_to_sqr, radius_sqr) + local key ="zone_mine_net_speed" + local steps_in = 70 + local steps_out = 22 + + add_simple_timed_effect(1, function() + add_speed(key, ema(key, 0.5, 1, steps_in), false, true) + RemoveTimeEvent(key, key) + end, function() + CreateTimeEvent(key, key, 0, function() + add_speed(key, ema(key, 1, 1, steps_out, device().time_delta * 0.1), false, true) + if smoothed_values[key] >= 0.98 then + remove_speed(key) + return true + end + end) + end, key, 1) + end, + + -- Cognitive Dissonance Field, negative psy aura + zone_mine_cdf = function(anomaly, actor, distance_to_sqr, radius_sqr) + local h = hit() + h.power = level_environment.is_actor_immune() and 0 or (1 - distance_to_sqr / radius_sqr) * 0.004 + if h.power > 0 then + h.type = hit.telepatic + h.impulse = 0 + h.direction = VEC_Z + h.draftsman = actor + + actor:hit(h) + + -- Artefacts protection + local hit_additional = 0 + actor:iterate_belt( function(owner, obj) + local sec = obj:section() + local cond = obj:condition() + local immunities_sec = SYS_GetParam(0, sec, "hit_absorbation_sect", sec) + local prot = SYS_GetParam(2, immunities_sec, "telepatic_immunity", 0) * cond + + -- Optional modifier for viability + prot = prot * 10 + hit_additional = hit_additional + prot + end) + + -- Final modifier + local hit_modifier = hit_additional >= 0 and 1 + hit_additional or 1 / (1 - hit_additional) + local actor_hit_power = h.power / hit_modifier * 0.375 + change_psy_health(-actor_hit_power) + end + end, + + -- Sphere, add 50-100% bullet damage resist + zone_mine_sphere = function(anomaly, actor, distance_to_sqr, radius_sqr) + local key = "zone_mine_sphere" + + if not callbacks[key] then + register_callback("actor_on_before_hit", function(s_hit, bone_id, flags) + if s_hit.type == hit.fire_wound then + s_hit.power = s_hit.power * random_float(0, 0.5) + play_sound_on_actor("eugenium_anomaly\\sphere\\sphere_blowout", 0.9, random_float(0.95, 1.05)) + local gibs = particles_object("artefact\\artefact_gravi") + if gibs and not gibs:playing() then + gibs:play_at_pos(actor:position()) + end + end + end, nil, key) + end + + add_simple_timed_effect(1, nil, function() + unregister_callback(key) + end, key, 1) + end, + + -- Springboard, camera effect dependant on distance + zone_mine_gravitational_weak = function(anomaly, actor, distance_to_sqr, radius_sqr, power_modifier) + local key = "zone_mine_gravitational_weak" + local tg = time_global() + + if tg < anomalies_vars.zone_mine_gravitational_weak_tg and timed_effects[key] then return end + anomalies_vars.zone_mine_gravitational_weak_tg = tg + 1000 + + local power_modifier = (power_modifier or 2) * settings.gravitational_shake_modifier + local earthquake_cam_eff = 98323 + if power_modifier > 0 then + local power = (1.03 - distance_to_sqr / radius_sqr) * power_modifier + level.add_cam_effector("camera_effects\\earthquake_40.anm", earthquake_cam_eff, false, "", 0, false, power) + end + + add_simple_timed_effect(1, nil, function() + level.remove_cam_effector(earthquake_cam_eff) + end, key, 1) + end, + + zone_mine_gravitational_average = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_gravitational_weak(anomaly, actor, distance_to_sqr, radius_sqr, 1) + end, + + zone_mine_gravitational_strong = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_gravitational_weak(anomaly, actor, distance_to_sqr, radius_sqr, 1) + end, + + zone_mine_vortex = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_gravitational_weak(anomaly, actor, distance_to_sqr, radius_sqr, 1) + end, + + zone_mine_springboard = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_gravitational_weak(anomaly, actor, distance_to_sqr, radius_sqr, 1) + end, + + zone_mine_blast = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_gravitational_weak(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_gravi_zone = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_gravitational_weak(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_mosquito_bald = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_gravitational_weak(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_mosquito_bald_weak = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_gravitational_weak(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_mosquito_bald_weak_noart = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_gravitational_weak(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_mosquito_bald_average = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_gravitational_weak(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_mosquito_bald_strong = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_gravitational_weak(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_mosquito_bald_strong_noart = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_gravitational_weak(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + -- Electra, static field + zone_mine_electric = function(anomaly, actor, distance_to_sqr, radius_sqr, effector_modifier) + local hit_type_shock = HitTypeID["Shock"] + local hit_power = level_environment.is_actor_immune() and 0 or (1 - distance_to_sqr / radius_sqr) ^ 2 * settings.electric_field_modifier + local distance_to = distance_to_sqr ^ 0.5 + local reduction_coeff = 1 + + local anom_pos = anomaly.object:position() + -- anom_pos = level_vertex_id(anom_pos) + -- anom_pos = level_vertex_position(anom_pos) + local anom_pos_adjusted = vector():set(anom_pos.x, anom_pos.y + 0.3, anom_pos.z) + local actor_pos = utils_obj.safe_bone_pos(actor, "bip01_spine") + -- local actor_pos = actor:position() + -- actor_pos = vector():set(actor_pos.x, actor_pos.y + 0.5, actor_pos.z) + local anom_to_actor_ray = ray_main(anom_pos_adjusted, actor_pos, {range = distance_to}) + local actor_to_anom_ray = ray_main(actor_pos, anom_pos, {range = distance_to}) + + if anom_to_actor_ray and actor_to_anom_ray then + local anom_to_actor_distance = anom_to_actor_ray:get_distance() + local actor_to_anom_distance = actor_to_anom_ray:get_distance() + + local obstacle_distance = 0 + + if anom_to_actor_distance > 0 then + obstacle_distance = distance_to - anom_to_actor_distance - actor_to_anom_distance + reduction_coeff = clamp((1 - obstacle_distance / radius_sqr ^ 0.5) ^ 3.5, 0, 1) + end + + -- _G.printf("reduction coeff due to obstacle - %s", reduction_coeff) + -- _G.printf("anom_to_actor_distance - %s", anom_to_actor_distance) + -- _G.printf("actor_to_anom_distance - %s", actor_to_anom_distance) + -- _G.printf("obstacle_distance - %s", obstacle_distance) + -- _G.printf("combined distance - %s", anom_to_actor_distance + obstacle_distance + actor_to_anom_distance) + -- _G.printf("input distance - %s", distance_to) + end + + hit_power = hit_power * reduction_coeff + + if hit_power > 0 then + local hit_additional = 0 + + -- Outfit protection + local outfit = actor:item_in_slot(7) + if outfit then + local c_obj = outfit:cast_CustomOutfit() + local prot = c_obj and c_obj:GetDefHitTypeProtection(hit_type_shock) or 0 + + -- Optional modifier for less viability + prot = prot * 1 + hit_additional = hit_additional + prot + end + + -- Helmet protection + local helm = actor:item_in_slot(12) + if helm then + local c_obj = helm:cast_Helmet() + local prot = c_obj and c_obj:GetDefHitTypeProtection(hit_type_shock) or 0 + + -- Optional modifier for less viability + prot = prot * 1 + hit_additional = hit_additional + prot + end + + -- Artefacts protection + local artefacts_protection = 0 + actor:iterate_belt( function(owner, obj) + local sec = obj:section() + local cond = obj:condition() + local immunities_sec = SYS_GetParam(0, sec, "hit_absorbation_sect", sec) + local prot = SYS_GetParam(2, immunities_sec, "shock_immunity", 0) * cond + + -- Optional modifier for viability + prot = prot * 5 + artefacts_protection = artefacts_protection + prot + hit_additional = hit_additional + prot + end) + + -- Final modifier + local hit_modifier = hit_additional >= 0 and 1 + hit_additional or 1 / (1 - hit_additional) + local actor_hit_power = hit_power / hit_modifier * 0.0015 + -- printf("hit %s", actor_hit_power) + actor:change_health(-actor_hit_power) + + -- Affect condition of items + if outfit then + local obj = outfit + local sec = obj:section() + local cond = obj:condition() + if cond > 0.01 then + local immunities_sec = SYS_GetParam(0, sec, "immunities_sect", sec) + local shock_immunity = SYS_GetParam(2, immunities_sec, "shock_immunity", 0) * cond + shock_immunity = shock_immunity + artefacts_protection + + local hit_modifier = shock_immunity >= 0 and 1 + shock_immunity or 1 / (1 - shock_immunity) + obj:set_condition(cond - hit_power / hit_modifier * 0.00015) + end + end + + if helm then + local obj = helm + local sec = obj:section() + local cond = obj:condition() + if cond > 0.01 then + local immunities_sec = SYS_GetParam(0, sec, "immunities_sect", sec) + local shock_immunity = SYS_GetParam(2, immunities_sec, "shock_immunity", 0) * cond + shock_immunity = shock_immunity + artefacts_protection + + local hit_modifier = shock_immunity >= 0 and 1 + shock_immunity or 1 / (1 - shock_immunity) + obj:set_condition(cond - hit_power / hit_modifier * 0.00015) + end + end + end + + anomalies_vars:add_factor(anomaly, actor, distance_to_sqr, radius_sqr, "zone_mine_electric", (1 - distance_to_sqr / radius_sqr) ^ 2 * reduction_coeff) + local mine_factor = clamp(anomalies_vars:find_factor_sum(anomaly, actor, distance_to_sqr, radius_sqr, anomalies_vars.zone_mine_electric_factor_function), 0, 1) + + -- PPE effector + local effector_modifier = effector_modifier or 0.66 + local effector_power = (mine_factor + 0.05) * effector_modifier + local pps = anomalies_vars.zone_mine_electric_pp_effectors + for i = 1, #pps do + local key = "zone_mine_electric" .. pps[i].code + + if not timed_effects[key] then + level.add_pp_effector(pps[i].file, pps[i].code, true) + end + level.set_pp_effector_factor(pps[i].code, effector_power * pps[i].factor) + + add_simple_timed_effect(0.2, nil, function() + level.remove_pp_effector(pps[i].code) + end, key, 1) + end + + -- PDA glitching, set value for binder, patch binder, see below + pda_glitch_value = clamp(mine_factor ^ 0.5, 0, 1) + add_simple_timed_effect(0.2, nil, function() + pda_glitch_value = nil + end, "zone_mine_electric_pda_glitch", 1) + end, + + zone_mine_electric_weak = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_electric(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_mine_electric_average = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_electric(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_mine_electric_strong = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_electric(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_mine_static = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_electric(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_mine_static_weak = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_electric(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_mine_static_average = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_electric(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_mine_static_strong = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_electric(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_witches_galantine = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_electric(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_witches_galantine_weak = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_electric(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_witches_galantine_average = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_electric(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + zone_witches_galantine_strong = function(anomaly, actor, distance_to_sqr, radius_sqr) + anomalies_near_actor_functions.zone_mine_electric(anomaly, actor, distance_to_sqr, radius_sqr) + end, + + + -- Ball Lightning, charges batteries + zone_mine_point = function(anomaly, actor, distance_to_sqr, radius_sqr) + for i = 8, 10 do + local item = actor:item_in_slot(i) + if item then + local cond = item:condition() + if cond > 0.01 then + item:set_condition(cond + 0.0006 * (1 - distance_to_sqr / radius_sqr) ^ 2) + end + end + end + + anomalies_vars:add_factor(anomaly, actor, distance_to_sqr, radius_sqr, "zone_mine_electric", (1 - distance_to_sqr / radius_sqr) ^ 2) + local mine_factor = clamp(anomalies_vars:find_factor_sum(anomaly, actor, distance_to_sqr, radius_sqr, anomalies_vars.zone_mine_electric_factor_function), 0, 1) + + -- PDA glitching, set value for binder, patch binder, see below + pda_glitch_value = clamp(mine_factor ^ 0.5, 0, 1) + add_simple_timed_effect(0.2, nil, function() + pda_glitch_value = nil + end, "zone_mine_electric_pda_glitch", 1) + end, + + -- Liquid Gold, drains stamina and thirst + zone_mine_gold = function(anomaly, actor, distance_to_sqr, radius_sqr) + local change_modifier = 1 - distance_to_sqr / radius_sqr + if not anomaly.trigger_threshold then anomaly.trigger_threshold = 0 end + + anomaly.trigger_threshold = anomaly.trigger_threshold + change_modifier * 0.5 + if anomaly.trigger_threshold >= 1 then + thirst_sleep_changer.change_thirst_small(0.01) + anomaly.trigger_threshold = 0 + end + + actor:change_power(-change_modifier * 0.002) + end, + +} +-- Special behaviour for anomalies after spawn +anomalies_spawn_functions = { + + -- Ghost, wandering path along its start position + zone_mine_ghost = function(anomaly) + if anomaly.spawn_position then + local spawn_position = anomaly.spawn_position + local obj = anomaly.object + local id = obj:id() + local obj_set_anomaly_position = obj.set_anomaly_position + local vector = vector() + local vector_set = vector.set + local key = obj:name() + + local sin_lut = anomalies_vars.sin_lut + local cos_lut = anomalies_vars.cos_lut + + local i = random_choice(0, 45, 90, 135, 180) + local i_step = random_choice(1, 2, 3) + local j = 0 + local j_step = 1 + if i_step == 1 then + j_step = random_choice(2, 3) + elseif i_step == 2 then + j_step = random_choice(1, 3) + elseif i_step == 3 then + j_step = random_choice(2, 4) + end + + local full_circle = 360 + + local function generate_distance() + return random() * 5.5 + 1.5 + end + + local x_modifier = generate_distance() * random_choice(1, -1) + local z_modifier = generate_distance() * random_choice(1, -1) + + local function wrap(i) + return i >= full_circle and i % full_circle or i + end + + local max_offset_y = 0.5 + local max_offset_y_low = spawn_position.y - max_offset_y + local max_offset_y_high = spawn_position.y + max_offset_y + + local prev_pos_x = spawn_position.x + local prev_pos_y = spawn_position.y + local prev_pos_z = spawn_position.z + register_callback("actor_on_update", function() + local obj_l = get_object_by_id(id) + if not (obj_l and obj_l:name() == key) then + unregister_callback(key) + return + end + if i >= full_circle then + i = i % full_circle + end + + if j >= full_circle then + j = j % full_circle + end + + local offset_x = spawn_position.x + sin_lut[i] * x_modifier + local offset_z = spawn_position.z + sin_lut[j] * z_modifier + local offset_y = spawn_position.y + + -- Adjust to height by checking lvid + local lvid = level_vertex_id(vector_set(vector, offset_x, offset_y, offset_z)) + if (lvid < 4294967295) then + local pos_y = level_vertex_position(lvid).y + if abs(pos_y - prev_pos_y) < max_offset_y then + offset_y = pos_y + end + -- offset_y = clamp(pos_y, max_offset_y_low, max_offset_y_high) + end + + obj_set_anomaly_position(obj, vector_set(vector, offset_x, offset_y, offset_z)) + prev_pos_x = offset_x + prev_pos_y = offset_y + prev_pos_z = offset_z + + local delta = min(50, device().time_delta) / 22 -- Frame independent movement, less than 20 fps will be slower due to prevent sudden pops + i = floor(i + i_step * delta) + j = floor(j + j_step * delta) + end, nil, key) + end + end, + + -- Sphere, wandering path along its start position + zone_mine_sphere = function(anomaly) + if anomaly.spawn_position then + local spawn_position = anomaly.spawn_position + local obj = anomaly.object + local id = obj:id() + local obj_set_anomaly_position = obj.set_anomaly_position + local vector = vector() + local vector_set = vector.set + local key = obj:name() + + local sin_lut = anomalies_vars.sin_lut + local cos_lut = anomalies_vars.cos_lut + + local i = random_choice(0, 45, 90, 135, 180) + local i_step = random_choice(1, 2, 3) + local j = 0 + local j_step = 1 + if i_step == 1 then + j_step = random_choice(2, 3) + elseif i_step == 2 then + j_step = random_choice(1, 3) + elseif i_step == 3 then + j_step = random_choice(2, 4) + end + + local full_circle = 360 + + local function generate_distance() + return random() * 0.5 + 1.0 + end + + local x_modifier = generate_distance() * random_choice(1, -1) + local z_modifier = generate_distance() * random_choice(1, -1) + + local function wrap(i) + return i >= full_circle and i % full_circle or i + end + + local max_offset_y = 0.5 + local max_offset_y_low = spawn_position.y - max_offset_y + local max_offset_y_high = spawn_position.y + max_offset_y + + local prev_pos_x = spawn_position.x + local prev_pos_y = spawn_position.y + local prev_pos_z = spawn_position.z + register_callback("actor_on_update", function() + local obj_l = get_object_by_id(id) + if not (obj_l and obj_l:name() == key) then + unregister_callback(key) + return + end + if i >= full_circle then + i = i % full_circle + end + + if j >= full_circle then + j = j % full_circle + end + + local offset_x = spawn_position.x + sin_lut[i] * x_modifier + local offset_z = spawn_position.z + sin_lut[j] * z_modifier + local offset_y = spawn_position.y + + -- Adjust to height by checking lvid + local lvid = level_vertex_id(vector_set(vector, offset_x, offset_y, offset_z)) + if (lvid < 4294967295) then + local pos_y = level_vertex_position(lvid).y + if abs(pos_y - prev_pos_y) < max_offset_y then + offset_y = pos_y + end + -- offset_y = clamp(pos_y, max_offset_y_low, max_offset_y_high) + end + + obj_set_anomaly_position(obj, vector_set(vector, offset_x, offset_y, offset_z)) + prev_pos_x = offset_x + prev_pos_y = offset_y + prev_pos_z = offset_z + + local delta = min(50, device().time_delta) / 22 -- Frame independent movement, less than 20 fps will be slower due to prevent sudden pops + i = floor(i + i_step * delta) + j = floor(j + j_step * delta) + end, nil, key) + end + end, + + -- Point, wandering path along its start position + zone_mine_point = function(anomaly) + if anomaly.spawn_position then + local spawn_position = anomaly.spawn_position + local obj = anomaly.object + local id = obj:id() + local obj_set_anomaly_position = obj.set_anomaly_position + local vector = vector() + local vector_set = vector.set + local key = obj:name() + + local sin_lut = anomalies_vars.sin_lut + local cos_lut = anomalies_vars.cos_lut + + local i = random_choice(0, 45, 90, 135, 180) + local i_step = random_choice(1, 2, 3) + local j = 0 + local j_step = 1 + if i_step == 1 then + j_step = random_choice(2, 3) + elseif i_step == 2 then + j_step = random_choice(1, 3) + elseif i_step == 3 then + j_step = random_choice(2, 4) + end + + local full_circle = 360 + + local function generate_distance() + return random() * 2.5 + 4.5 + end + + local x_modifier = generate_distance() * random_choice(1, -1) + local z_modifier = generate_distance() * random_choice(1, -1) + + local function wrap(i) + return i >= full_circle and i % full_circle or i + end + + local max_offset_y = 0.5 + local max_offset_y_low = spawn_position.y - max_offset_y + local max_offset_y_high = spawn_position.y + max_offset_y + + local prev_pos_x = spawn_position.x + local prev_pos_y = spawn_position.y + local prev_pos_z = spawn_position.z + register_callback("actor_on_update", function() + local obj_l = get_object_by_id(id) + if not (obj_l and obj_l:name() == key) then + unregister_callback(key) + return + end + + + if i >= full_circle then + i = i % full_circle + end + + if j >= full_circle then + j = j % full_circle + end + + local offset_x = spawn_position.x + sin_lut[i] * x_modifier + local offset_z = spawn_position.z + sin_lut[j] * z_modifier + local offset_y = spawn_position.y + + -- Adjust to height by checking lvid + local lvid = level_vertex_id(vector_set(vector, offset_x, offset_y, offset_z)) + if (lvid < 4294967295) then + local pos_y = level_vertex_position(lvid).y + if abs(pos_y - prev_pos_y) < max_offset_y then + offset_y = pos_y + end + -- offset_y = clamp(pos_y, max_offset_y_low, max_offset_y_high) + end + + obj_set_anomaly_position(obj, vector_set(vector, offset_x, offset_y, offset_z)) + prev_pos_x = offset_x + prev_pos_y = offset_y + prev_pos_z = offset_z + + local delta = min(50, device().time_delta) / 22 -- Frame independent movement, less than 20 fps will be slower due to prevent sudden pops + i = floor(i + i_step * delta) + j = floor(j + j_step * delta) + end, nil, key) + end + end, + + -- Umbral Cluster, wandering path along its start position + zone_mine_umbra = function(anomaly) + if anomaly.spawn_position then + local spawn_position = anomaly.spawn_position + local obj = anomaly.object + local id = obj:id() + local obj_set_anomaly_position = obj.set_anomaly_position + local vector = vector() + local vector_set = vector.set + local key = obj:name() + + local sin_lut = anomalies_vars.sin_lut + local cos_lut = anomalies_vars.cos_lut + + local i = random_choice(0, 45, 90, 135, 180) + local i_step = random_choice(1, 2, 3) + local j = 0 + local j_step = 1 + if i_step == 1 then + j_step = random_choice(2, 3) + elseif i_step == 2 then + j_step = random_choice(1, 3) + elseif i_step == 3 then + j_step = random_choice(2, 4) + end + + local full_circle = 360 + + local function generate_distance() + return random() * 0.3 + 0.5 + end + + local x_modifier = generate_distance() * random_choice(1, -1) + local z_modifier = generate_distance() * random_choice(1, -1) + + local function wrap(i) + return i >= full_circle and i % full_circle or i + end + + local max_offset_y = 0.5 + local max_offset_y_low = spawn_position.y - max_offset_y + local max_offset_y_high = spawn_position.y + max_offset_y + + local prev_pos_x = spawn_position.x + local prev_pos_y = spawn_position.y + local prev_pos_z = spawn_position.z + register_callback("actor_on_update", function() + local obj_l = get_object_by_id(id) + if not (obj_l and obj_l:name() == key) then + unregister_callback(key) + return + end + + if i >= full_circle then + i = i % full_circle + end + + if j >= full_circle then + j = j % full_circle + end + + local offset_x = spawn_position.x + sin_lut[i] * x_modifier + local offset_z = spawn_position.z + sin_lut[j] * z_modifier + local offset_y = spawn_position.y + + -- Adjust to height by checking lvid + local lvid = level_vertex_id(vector_set(vector, offset_x, offset_y, offset_z)) + if (lvid < 4294967295) then + local pos_y = level_vertex_position(lvid).y + if abs(pos_y - prev_pos_y) < max_offset_y then + offset_y = pos_y + end + -- offset_y = clamp(pos_y, max_offset_y_low, max_offset_y_high) + end + + obj_set_anomaly_position(obj, vector_set(vector, offset_x, offset_y, offset_z)) + prev_pos_x = offset_x + prev_pos_y = offset_y + prev_pos_z = offset_z + + local delta = min(50, device().time_delta) / 22 -- Frame independent movement, less than 20 fps will be slower due to prevent sudden pops + i = floor(i + i_step * delta) + j = floor(j + j_step * delta) + end, nil, key) + end + end, +} + +-- Special behaviour for anomalies after destroy +anomalies_destroy_functions = { + + -- Ghost, destroy callback for wandering + zone_mine_ghost = function(anomaly) + local key = anomaly.object:name() + unregister_callback(key) + end, + + zone_mine_sphere = function(anomaly) + local key = anomaly.object:name() + unregister_callback(key) + end, + + zone_mine_point = function(anomaly) + local key = anomaly.object:name() + unregister_callback(key) + end, + + zone_mine_umbra = function(anomaly) + local key = anomaly.object:name() + unregister_callback(key) + end, + +} + +anomaly_detector_ignore = { + zone_field_radioactive = true, + zone_field_radioactive_above_average = true, + zone_field_radioactive_average = true, + zone_field_radioactive_below_average = true, + zone_field_radioactive_lethal = true, + zone_field_radioactive_strong = true, + zone_field_radioactive_very_weak = true, + zone_field_radioactive_weak = true, + zone_radioactive = true, + zone_radioactive_above_average = true, + zone_radioactive_average = true, + zone_radioactive_below_average = true, + zone_radioactive_lethal = true, + zone_radioactive_strong = true, + zone_radioactive_very_weak = true, + zone_radioactive_weak = true, + zone_field_acidic = true, + zone_field_acidic_average = true, + zone_field_acidic_strong = true, + zone_field_acidic_weak = true, + zone_field_psychic = true, + zone_field_psychic_average = true, + zone_field_psychic_strong = true, + zone_field_psychic_weak = true, + zone_field_thermal = true, + zone_field_thermal_average = true, + zone_field_thermal_strong = true, + zone_field_thermal_weak = true, + zone_mine_field = true, + zone_mine_field_soc = true, + campfire = true, + campfire_base = true, + campfire_base_noshadow = true, + zone_base = true, + zone_base_noshadow = true, + zone_burning_fuzz = true, + zone_burning_fuzz1 = true, + zone_burning_fuzz_weak = true, + zone_burning_fuzz_average = true, + zone_burning_fuzz_strong = true, + zone_buzz = true, + zone_buzz_weak = true, + zone_buzz_average = true, + zone_buzz_strong = true, + zone_emi = true, + zone_liana = true, + zone_student = true, + zone_teleport = true, + zone_zhar = true, + + -- MP items + mp_af_electra_flash = true, + mp_zone_witches_galantine = true, + mp_af_cta_green = true, + mp_af_cta_blue = true, + mp_medkit = true, + mp_medkit_scientic = true, + mp_medkit_army = true, + mp_energy_drink = true, + mp_bandage = true, + mp_antirad = true, + mp_drug_coagulant = true, + mp_drug_radioprotector = true, + mp_medkit_old = true, + mp_antirad_old = true, + mp_detector_advanced = true, + mp_device_torch = true, + mp_players_rukzak = true, + mp_wood_stolb_fixed = true, + mp_wood_stolb_fixed_immunities = true, + mp_explosive_fuelcan = true, + mp_explosive_tank = true, + mp_explosive_barrel = true, + +} + +function find_nearest_anomaly(force_enabled) + local actor = db.actor + local actor_pos = actor:position() + local actor_pos_distance = actor_pos.distance_to_sqr + local distance = math.huge + local anom_id + local anom_pos + local anom_sec + + local pairs = pairs + local level_object_by_id = level.object_by_id + local level_name = level.name() + + for id, _ in pairs(detectable_anomalies_ids) do + local obj = level_object_by_id(id) + if obj then + local enabled = true + + if not force_enabled then + local props = updated_anomaly_levels[level_name].anomalies_properties[id] + if props and props.active ~= nil then + enabled = props.active + end + end + + if enabled then + local pos = obj:position() + local d = actor_pos_distance(actor_pos, pos) + if d < distance then + distance = d + anom_id = id + anom_pos = pos + anom_sec = obj:section() + end + end + end + end + + return distance, anom_id, anom_sec, anom_pos +end + +detector_functions = { + -- Play sound + play_anomaly_sound = function(self, anomaly, actor, distance_to_sqr, radius_sqr) + if not anomaly.sound_threshold then anomaly.sound_threshold = 0 end + anomaly.sound_threshold = anomaly.sound_threshold + (1 - distance_to_sqr / radius_sqr) ^ 2 + if anomaly.sound_threshold > 1 then + play_sound_on_actor("detectors\\da-2_beep1") + anomaly.sound_threshold = 0 + end + end, + + -- Store anomaly factors to find biggest one for correct display of anomaly_detector bars + detector_anomaly_factors = {}, + detector_anomaly_add_factor = function(self, anomaly, actor, distance_to_sqr, radius_sqr, custom_callback) + self.detector_anomaly_factors[anomaly.object:name()] = 1 - distance_to_sqr / radius_sqr + end, + detector_anomaly_remove_factor = function(self, anomaly, actor, distance_to_sqr, radius_sqr, custom_callback) + self.detector_anomaly_factors[anomaly.object:name()] = nil + end, + detector_anomaly_find_max_factor = function(self, anomaly, actor, distance_to_sqr, radius_sqr, custom_callback) + if is_empty(self.detector_anomaly_factors) then + return 1 - distance_to_sqr / radius_sqr + end + + local factor = 0 + for k, v in pairs(self.detector_anomaly_factors) do + if v > factor then + factor = v + end + end + return factor + end, + + detector_anomaly = function(self, anomaly, actor, distance_to_sqr, radius_sqr, custom_callback) + if not custom_callback then return end + if actor:active_detector() then + local sec = anomaly.section + + self:detector_anomaly_add_factor(anomaly, actor, distance_to_sqr, radius_sqr, custom_callback) + local factor = self:detector_anomaly_find_max_factor(anomaly, actor, distance_to_sqr, radius_sqr, custom_callback) + + local ui = tasks_measure.get_UI() + if ui and ui.step <= 0 then + for i = 1, ui.step_tot do + ui.m_seg[i]:InitTextureEx(i <= min(ui.step_tot, ceil(factor * 10)) and "green_seg_ano" or "green_black_ano", "hud\\p3d") + end + end + + -- Play sound when detector is active + if game_difficulties.get_game_factor("notify_anomaly") + and (drx_da_main_mcm.new_anomalies_sections[sec] or drx_da_main_mcm.variations_anomalies_sections[sec]) + or (not game_difficulties.get_game_factor("notify_anomaly") and actor:active_detector()) + then + self:play_anomaly_sound(anomaly, actor, distance_to_sqr, radius_sqr) + end + else + local ui = tasks_measure.get_UI() + if ui and ui.step <= 0 then + for i = 1, ui.step_tot do + ui.m_seg[i]:InitTextureEx("green_black_ano", "hud\\p3d") + end + end + end + end, + + detector_scientific = function(self, anomaly, actor, distance_to_sqr, radius_sqr, custom_callback) + if custom_callback then return end + local sec = anomaly.section + if drx_da_main_mcm.new_anomalies_sections[sec] or drx_da_main_mcm.variations_anomalies_sections[sec] then + self:play_anomaly_sound(anomaly, actor, distance_to_sqr, radius_sqr) + end + end +} + +function notify_anomaly(anomaly, actor, distance_to_sqr, radius_sqr, custom_callback) + local detector = actor:item_in_slot(9) + local sec = detector and detector:section() + if sec and detector_functions[sec] then + detector_functions[sec](detector_functions, anomaly, actor, distance_to_sqr, radius_sqr, custom_callback) + elseif game_difficulties.get_game_factor("notify_anomaly") and (drx_da_main_mcm.new_anomalies_sections[anomaly.section] or drx_da_main_mcm.variations_anomalies_sections[anomaly.section]) and not custom_callback then + detector_functions:play_anomaly_sound(anomaly, actor, distance_to_sqr, radius_sqr) + end +end + +bind_anomaly_field_spawn = bind_anomaly_field.anomaly_field_binder.net_spawn +bind_anomaly_field.anomaly_field_binder.net_spawn = function(self, se_abstract) + if not bind_anomaly_field_spawn(self, se_abstract) then + return false + end + + self.spawn_position = self.object:position() + self.section = self.object:section() + + if not anomaly_detector_ignore[self.section] then + detectable_anomalies_ids[self.object:id()] = self.spawn_position + end + + local section = self.section + if anomalies_spawn_functions[section] then + anomalies_spawn_functions[section](self) + end + + -- Update callback similar to binder update, but works even if anomaly is disabled + self.on_update_timer_default = 100 + self.on_update_timer_max = 7500 + self.on_update_timer = self.on_update_timer_default + self.on_update_time = time_global() + random(self.on_update_timer_default, self.on_update_timer_default * 10) + + self.update_key = self.object:name() .. "_update" + + local anom_zone_data = utils_stpk.get_anom_zone_data(alife_object(self.object:id())) + if anom_zone_data and anom_zone_data.shapes[1] and anom_zone_data.shapes[1].radius then + self.radius_sqr = anomalies_near_actor_radii[section] or ((anom_zone_data.shapes[1].radius + 1) * 2) + self.radius_sqr = self.radius_sqr * self.radius_sqr + -- printf("getting anom radius from net packet, %s", self.radius_sqr) + else + self.radius_sqr = get_anomaly_behaviour_radius(section) + end + self.radius = sqrt(self.radius_sqr) + self.behaviour_radius_sqr = get_anomaly_behaviour_radius(section) + local level_name = level.name() + + register_callback("actor_on_update", function() + local tg = time_global() + if tg < self.on_update_time then return end + + -- Get behaviour radius and check if actor inside it, then apply effect + local actor = db.actor + local radius_sqr = self.radius_sqr + local distance_to_sqr = self.object:position():distance_to_sqr(actor:position()) + if distance_to_sqr <= radius_sqr then + + -- Beep near anoms even if disabled for anomaly_detector + if not ( + anomaly_detector_ignore[self.section] + or ( + level_name + and updated_anomaly_levels[level_name] + and updated_anomaly_levels[level_name].disabled + and updated_anomaly_levels[level_name].anomalies_properties + and updated_anomaly_levels[level_name].anomalies_properties[self.object:id()] + ) + ) then + local og_dyn_anomalies = bind_anomaly_field.dyn_anomalies + if not og_dyn_anomalies then + notify_anomaly(self, actor, distance_to_sqr, radius_sqr, true) + else + local level_name = level.name() + if og_dyn_anomalies[level_name] and og_dyn_anomalies[level_name][self.object:id()] ~= nil then + if og_dyn_anomalies[level_name][self.object:id()] then + notify_anomaly(self, actor, distance_to_sqr, radius_sqr, true) + end + else + notify_anomaly(self, actor, distance_to_sqr, radius_sqr, true) + end + end + end + self.on_update_timer = self.on_update_timer_default + else + detector_functions.detector_anomaly_remove_factor(detector_functions, self, actor, distance_to_sqr, radius_sqr, true) + self.on_update_timer = clamp(self.on_update_timer_default * (distance_to_sqr / radius_sqr * 0.5), self.on_update_timer_default, self.on_update_timer_max) + + -- _G.printf("%s, on_update_timer %s", self.object:name(), self.on_update_timer) + end + + self.on_update_time = tg + self.on_update_timer + end, nil, self.update_key) + + return true +end + +bind_anomaly_field_destroy = bind_anomaly_field.anomaly_field_binder.net_destroy +bind_anomaly_field.anomaly_field_binder.net_destroy = function(self) + local section = self.section + + detectable_anomalies_ids[self.object:id()] = nil + anomalies_vars.remove_factor(anomalies_vars, self, actor, distance_to_sqr, radius_sqr) + detector_functions.detector_anomaly_remove_factor(detector_functions, self, actor, distance_to_sqr, radius_sqr, true) + + if anomalies_destroy_functions[section] then + anomalies_destroy_functions[section](self) + end + + unregister_callback(self.update_key) + + bind_anomaly_field_destroy(self) +end + +-- Behaviour radius in priorities +-- 1. anomalies_near_actor_radii[section] -- specially defined behaviour radius +-- 2. anomaly_radii[section].max -- defined hit radius of anomaly +-- 3. max_radius -- max hit radius defined in level config +-- 4. 3 -- default radius +-- 5. p.2,3,4 or 5 is then added 1 and multiplied by 2 +function get_anomaly_behaviour_radius(section) + local radius = anomalies_near_actor_radii[section] or (((anomaly_radii[section] and anomaly_radii[section].max or max_radius or 3) + 1) * 2) + local radius_sqr = radius * radius + return radius_sqr +end + +-- Special behaviour is actor near an anomaly +bind_anomaly_field_update = bind_anomaly_field.anomaly_field_binder.update +bind_anomaly_field.anomaly_field_binder.update = function(self, delta) + bind_anomaly_field_update(self, delta) + if not self.object then return end + + local section = self.section + if anomalies_near_actor_functions[section] or (additional_articles_to_category.encyclopedia_anomalies[section] and not opened_articles.encyclopedia_anomalies[additional_articles_to_category.encyclopedia_anomalies[section]]) then + + -- Get behaviour radius and check if actor inside it, then apply effect + local actor = db.actor + local radius_sqr = self.radius_sqr + local distance_to_sqr = self.object:position():distance_to_sqr(actor:position()) + if distance_to_sqr <= radius_sqr then + -- Open anomaly article + open_anomaly_article(section) + + -- Beep near anoms if option enabled or have Svarog or Anomaly Detector + if not anomaly_detector_ignore[section] then + notify_anomaly(self, actor, distance_to_sqr, radius_sqr, false) + end + + -- Behaviour near actor + if anomalies_near_actor_functions[section] then + anomalies_near_actor_functions[section](self, actor, distance_to_sqr, radius_sqr) + end + + -- printf("actor near anomaly %s, firing effect, delta %s", section, delta) + else + anomalies_vars.remove_factor(anomalies_vars, self, actor, distance_to_sqr, radius_sqr) + end + end + if npc_on_near_anomalies_functions[section] then + if not self.iterate_nearest_func then + self.iterate_nearest_func = function(obj) + if obj + and (IsStalker(obj) or IsMonster(obj)) + and (obj.alive and obj:alive()) + and obj:id() ~= AC_ID + and obj:position():distance_to_sqr(self.object:position()) <= self.radius_sqr + then + npc_on_near_anomalies_functions[section](self, obj, db.actor) + end + end + end + level.iterate_nearest(self.object:position(), self.radius, self.iterate_nearest_func) + end +end + +-- Apply glitches and flickers to active items near electrical anomalies +-- See above how value is set +pda_glitch_value = nil +process_glitch = item_device.device_binder.process_glitch +item_device.device_binder.process_glitch = function(self, id, section, condition) + process_glitch(self, id, section, condition) + if pda_glitch_value then + self.object:set_psy_factor(pda_glitch_value) + end +end + +process_flicker = item_device.device_binder.process_flicker +item_device.device_binder.process_flicker = function(self, force) + process_flicker(self, pda_glitch_value and pda_glitch_value > 0.4 or force) +end + +process_torch = item_device.device_binder.process_torch +item_device.device_binder.process_torch = function(self, id, section, condition) + process_torch(self, id, section, condition) + + -- Beef's NVG integration + if z_beefs_nvgs then + if self.N_V then + z_beefs_nvgs.nvg_glitch(clamp(pda_glitch_value or 0, 0, 0.9)) + else + z_beefs_nvgs.nvg_glitch(0) + end + end +end + +local actor_on_update_time = 0 +local actor_on_update_timer = 100 +function actor_on_update() + local tg = time_global() + if tg < actor_on_update_time then return end + actor_on_update_time = tg + actor_on_update_timer + + time_elapsed = get_time_elapsed() + process_timed_effects() +end + +function actor_on_interaction(typ, obj, name) + -- check if emission happened globally + if typ == "anomalies" and (name == "emission_end" or name == "psi_storm_end") then + + local level_name = level.name() + init_anomaly_table_on_level(level_name) + + -- 50/50 chance to remove anomalies globally or just update artefacts + if random(100) <= 50 then + CreateTimeEvent("clean_dynamic_anomalies_global", "clean_dynamic_anomalies_global", 0.5, function() + last_surge_time = get_time_elapsed() + + printf("surge happened globally at %s", last_surge_time) + printf("update on level %s after emission", level.name()) + + clean_dynamic_anomalies_global() + build_anomalies_pos_tree() + return true + end) + else + printf("surge happened globally at %s", get_time_elapsed()) + printf("update artefacts on level %s after emission", level.name()) + clean_artefacts_on_level(level.name()) + spawn_artefacts_on_level(level.name()) + build_anomalies_pos_tree() + end + end +end + +function actor_on_item_take(obj) + local level_name = level.name() + local id = obj:id() + if updated_anomaly_levels[level_name] and updated_anomaly_levels[level_name].artefacts and updated_anomaly_levels[level_name].artefacts[id] then + printf("taken created artefact %s, id %s, level_name %s", updated_anomaly_levels[level_name].artefacts[id], id, level_name) + updated_anomaly_levels[level_name].artefacts[id] = nil + end +end + +function npc_on_item_take(npc, obj) + actor_on_item_take(obj) +end + +-- Anomalies special hit behaviour +anomalies_hit_functions = { + + -- Flash special hit behaviour - Time travel + zone_mine_flash = function(s_hit, bone_id, flags, actor) + printf("change_time") + local health = actor.health + local change_hours = random(2, 5) + local change_minutes = random(1, 59) + + level.change_game_time(0, change_hours, change_minutes) + level_weathers.get_weather_manager():select_weather(true) + surge_manager.get_surge_manager().time_forwarded = true + psi_storm_manager.get_psi_storm_manager().time_forwarded = true + + s_hit.power = 0.001 + CreateTimeEvent("zone_mine_flash", "zone_mine_flash", 0.05, function() + local new_health = actor.health + actor:set_health_ex(health) + actor:change_health(-random_float(0.01, 0.04)) + + -- Change thirst and sleep, params are from vanilla actor_status_sleep/thirst scripts + local sleep_params = { + step = 27, + check_after_sec = 300, + } + + local thirst_params = { + step = 30, + check_after_sec = 300 + } + + local change_sleep_amount = (change_hours * 3600 + change_minutes * 60) / sleep_params.check_after_sec * sleep_params.step * 0.01 + local change_thirst_amount = (change_hours * 3600 + change_minutes * 60) / thirst_params.check_after_sec * thirst_params.step * 0.01 + + thirst_sleep_changer.change_sleep(round(change_sleep_amount)) + thirst_sleep_changer.change_thirst(round(change_thirst_amount)) + return true + end) + end, + + -- Radiation field: drain batteries of active items + -- zone_field_radioactive = function(s_hit, bone_id, flags, actor) + -- if s_hit.power <= 0 then return end + -- for i = 8, 10 do + -- local item = actor:item_in_slot(i) + -- if item then + -- local cond = item:condition() + -- if cond > 0.01 then + -- item:set_condition(cond - 0.03 * s_hit.power) + -- end + -- end + -- end + -- end, + -- zone_field_radioactive_weak = function(s_hit, bone_id, flags, actor) + -- anomalies_hit_functions.zone_field_radioactive(s_hit, bone_id, flags, actor) + -- end, + -- zone_field_radioactive_average = function(s_hit, bone_id, flags, actor) + -- anomalies_hit_functions.zone_field_radioactive(s_hit, bone_id, flags, actor) + -- end, + -- zone_field_radioactive_strong = function(s_hit, bone_id, flags, actor) + -- anomalies_hit_functions.zone_field_radioactive(s_hit, bone_id, flags, actor) + -- end, + -- zone_radioactive = function(s_hit, bone_id, flags, actor) + -- anomalies_hit_functions.zone_field_radioactive(s_hit, bone_id, flags, actor) + -- end, + -- zone_radioactive_weak = function(s_hit, bone_id, flags, actor) + -- anomalies_hit_functions.zone_field_radioactive(s_hit, bone_id, flags, actor) + -- end, + -- zone_radioactive_average = function(s_hit, bone_id, flags, actor) + -- anomalies_hit_functions.zone_field_radioactive(s_hit, bone_id, flags, actor) + -- end, + -- zone_radioactive_strong = function(s_hit, bone_id, flags, actor) + -- anomalies_hit_functions.zone_field_radioactive(s_hit, bone_id, flags, actor) + -- end, + +} + +-- Anomalies special hit behaviour on monster +anomalies_monster_hit_functions = { + + -- Flash special hit behaviour - Time travel + zone_mine_flash = function(monster, s_hit, bone_id, flags, actor) + printf("flash got hit %s", monster:section()) + s_hit.power = 0 + flags.ret_value = false + safe_release_manager.release(alife_object(monster:id())) + end, + + -- Reduce power for Rebounder + -- zone_mine_sphere = function(monster, s_hit, bone_id, flags, actor) + -- local sec = monster:section() + -- printf("rebounder got hit %s", sec) + -- s_hit.power = 0 + -- flags.ret_value = false + + -- local immunities_sec = SYS_GetParam(0, sec, "protections_sect", sec) + -- local hit_power = SYS_GetParam(2, "zone_mine_sphere", "max_start_power", 1) * SYS_GetParam(2, immunities_sec, "hit_fraction_monster", 1) + + -- monster:change_health(-hit_power) + -- end, + +} + +-- Also used for monsters, filter for npcs or monsters specifically in functions bodies +npc_on_near_anomalies_functions = { + + -- Rebounder effect for NPCs + zone_mine_sphere = function(anomaly, npc, actor) + local key = "zone_mine_sphere_" .. npc:name() + if not callbacks[key] then + register_callback(IsStalker(npc) and "npc_on_before_hit" or "monster_on_before_hit", function(npc_hit, s_hit, bone_id, flags) + if s_hit.type == hit.fire_wound and npc_hit:name() == npc:name() then + s_hit.power = s_hit.power * random_float(0, 0.5) + play_sound_on_actor("eugenium_anomaly\\sphere\\sphere_blowout", 1, random_float(0.95, 1.05), anomaly.object) + local gibs = particles_object("artefact\\artefact_gravi") + if gibs and not gibs:playing() then + gibs:play_at_pos(npc_hit:position()) + end + end + end, nil, key) + end + + add_simple_timed_effect(0.7, nil, function() + unregister_callback(key) + end, key, 1) + end, + +} + +function actor_on_before_hit(s_hit, bone_id, flags) + if not s_hit.draftsman then return end + + local sec = s_hit.draftsman:section() + if anomalies_hit_functions[sec] then + anomalies_hit_functions[sec](s_hit, bone_id, flags, db.actor) + end +end + +function monster_on_before_hit(monster, s_hit, bone_id, flags) + if not s_hit.draftsman then return end + + local sec = s_hit.draftsman:section() + if anomalies_monster_hit_functions[sec] then + anomalies_monster_hit_functions[sec](monster, s_hit, bone_id, flags, db.actor) + end +end + +function load_state(m_data) + local dump = string.dump + local load = loadstring + local unpack = unpack + + local t = m_data.drx_da_effects or {} + for key, effect in pairs(t) do + if t[key].effect_function then + local effect = load(t[key].effect_function) + t[key].effect = function() + effect(unpack(t[key].effect_args)) + end + end + if t[key].on_end_function then + local on_end = load(t[key].on_end_function) + t[key].on_end = function() + on_end(unpack(t[key].on_end_args)) + end + end + end + timed_effects = t + + last_surge_time = m_data.drx_da_last_surge_time or 0 + updated_anomaly_levels = m_data.drx_da_updated_anomaly_levels or {} + if m_data.drx_da_opened_articles then opened_articles = m_data.drx_da_opened_articles end + RegisterScriptCallback("actor_on_update", drx_da_actor_on_update_callback) +end + +function actor_on_first_update() + load_state(alife_storage_manager.get_state()) +end + +function save_anomalies(m_data) + local t = {} + for key, effect in pairs(timed_effects) do + if effect.save then + t[key] = {} + copy_table(t[key], effect) + t[key].effect = nil + t[key].on_end = nil + end + end + m_data.drx_da_effects = t + + m_data.drx_da_updated_anomaly_levels = updated_anomaly_levels + m_data.drx_da_last_surge_time = last_surge_time + m_data.drx_da_opened_articles = opened_articles +end + +function save_level(m_data) + m_data.drx_da_previous_level = level.name() +end + +function on_before_level_changing() + printf("saving previous_level") + alife_storage_manager.get_state().drx_da_previous_level = level.name() + UnregisterScriptCallback("save_state", save_level) +end + +local function on_option_change() + load_settings() + if settings.delete_dynamic_anomalies then + unregister_anomalies_behaviour() + clean_dynamic_anomalies_global() + build_anomalies_pos_tree() + if ui_mcm then + ui_mcm.set("drx_da/delete_dynamic_anomalies", false) + end + return + end + + unregister_anomalies_behaviour() + if updated_anomaly_levels[level.name()] and not updated_anomaly_levels[level.name()].disabled then + if settings.enable_anomalies_behaviour or level_weathers.bLevelUnderground then + register_anomalies_behaviour() + else + enable_anomalies_on_level() + end + end +end + +-- Register callback scripts: +function on_game_start() + RegisterScriptCallback("actor_on_before_hit", actor_on_before_hit) + RegisterScriptCallback("monster_on_before_hit", monster_on_before_hit) + RegisterScriptCallback("actor_on_item_take", actor_on_item_take) + RegisterScriptCallback("npc_on_item_take", npc_on_item_take) + RegisterScriptCallback("actor_on_interaction", actor_on_interaction) + RegisterScriptCallback("on_before_level_changing", on_before_level_changing) + RegisterScriptCallback("save_state", save_anomalies) + RegisterScriptCallback("save_state", save_level) + -- RegisterScriptCallback("load_state", load_state) + RegisterScriptCallback("actor_on_first_update", actor_on_first_update) + RegisterScriptCallback("on_game_load", load_settings) + RegisterScriptCallback("on_option_change", on_option_change) +end + +-- Patches +-- Encyclopedia articles about new anomalies + +-- Table contains category and entries in game section => article string id format +additional_articles_to_category = { + encyclopedia_anomalies = { + zone_mine_cdf = "encyclopedia_anomalies_cdf", + zone_mine_umbra = "encyclopedia_anomalies_umbra", + zone_mine_flash = "encyclopedia_anomalies_flash", + zone_mine_ghost = "encyclopedia_anomalies_ghost", + zone_mine_gold = "encyclopedia_anomalies_gold", + zone_mine_thorn = "encyclopedia_anomalies_thorn", + zone_mine_seed = "encyclopedia_anomalies_seed", + zone_mine_shatterpoint = "encyclopedia_anomalies_shatterpoint", + zone_mine_sloth = "encyclopedia_anomalies_sloth", + zone_mine_mefistotel = "encyclopedia_anomalies_mefistotel", + zone_mine_net = "encyclopedia_anomalies_net", + zone_mine_point = "encyclopedia_anomalies_point", + zone_mine_sphere = "encyclopedia_anomalies_sphere", + } +} + +-- Table contains opened articles after interacting with anomalies +opened_articles = { + encyclopedia_anomalies = {} +} + +-- Open anomaly article +function open_anomaly_article(section) + -- If there is no article to begin with - return + if not additional_articles_to_category.encyclopedia_anomalies[section] then + printf("article not found for %s", section) + return + end + + -- If already opened - return + if opened_articles.encyclopedia_anomalies[additional_articles_to_category.encyclopedia_anomalies[section]] then + printf("article already opened for %s", section) + return + end + + -- Return if the player didn't spend 3 hours in the zone + if not (has_alife_info("actor_spent_2_hrs_in_zone") or utils_obj.is_time_spent_in_zone(0,0,2)) then + printf("youre too stupid for article boy") + return + end + + -- Add statistics and notify + game_statistics.increment_statistic("articles") + actor_menu.set_notification(nil, "ui_inGame2_notify_article", 20, "device\\pda\\pda_guide_2") + + -- Add to already opened articles + opened_articles.encyclopedia_anomalies[additional_articles_to_category.encyclopedia_anomalies[section]] = true + + -- Instance of the pda_ui object. + local pda_ui = ui_pda_encyclopedia_tab.get_ui() + pda_ui:InitCategories() + pda_ui:SelectCategory("encyclopedia_anomalies") + pda_ui:SelectArticle(additional_articles_to_category.encyclopedia_anomalies[section]) + if pda_ui.article_list and pda_ui.article_list.GetSelectedIndex then + pda_ui.article_list:SetSelectedIndex(pda_ui.article_list:GetSelectedIndex() + 1) + end + + if zz_Encyclopedia_messages_restored or zz_encyclopedia_messages_restored or encyclopedia_messages_restored then + -- Article and category texts. + local message = game.translate_string("pda_encyclopedia_notify") + --printf("Monkeyzz " .. categories[index_c].section) + local text_c = game.translate_string("encyclopedia_anomalies") + local text_a = game.translate_string(additional_articles_to_category.encyclopedia_anomalies[section]) + -- Other information. + local header = game.translate_string("st_tip") + local texture = news_manager.tips_icons["guide_unlock"] or "ui_inGame2_Poslednie_razrabotki" + db.actor:give_game_news(header, strformat(message, text_c, text_a), texture, 0, 5000, 0) + end +end + +-- Patch article list +InitArticles = ui_pda_encyclopedia_tab.pda_encyclopedia_tab.InitArticles +ui_pda_encyclopedia_tab.pda_encyclopedia_tab.InitArticles = function(self, section_c) + InitArticles(self, section_c) + + -- If not existing list - return + if is_empty(opened_articles[section_c]) then return end + + local n = self.article_list:GetSize() + for article, _ in pairs(opened_articles[section_c]) do + local clr = ui_pda_encyclopedia_tab.UpdateColor(article) + local item = ui_pda_encyclopedia_tab.pda_encyclopedia_entry(article, n, clr) + self.article_list:AddExistingItem(item) + n = n + 1 + end +end + +-- Extra Utils +function reset_timers() + last_surge_time = 0 + for k, v in pairs(updated_anomaly_levels) do + v.time = -1 + printf("time resetted for %s", k) + end + printf("last_surge_time is 0") +end + +function print_anomalies() + return print_r(updated_anomaly_levels) +end + +function debug_spawn_anomaly(sec) + local gvid = db.actor:game_vertex_id() + local r = level.get_target_dist and level.get_target_dist() or 3 + local pos = vector():set(db.actor:position()) + pos:add(device().cam_dir:mul(r)) + pos = vector():set(pos.x,db.actor:position().y,pos.z) + local lvid = level.vertex_id(pos) + + local level_name = level.name() + local level_data = get_level_data(level_name) + if not level_data then + printf("Error, unable to get data for %s", level_name) + return + end + + local level_file = level_data.level_file + + drx_da_spawn_anomaly(sec, pos, lvid, gvid, level_file) + build_anomalies_pos_tree() +end + +-- Buggy consecutive update leading to softlocks and crashes +-- Refresh anomalies on level after surge, in concurrent fashion +function update_dynamic_anomalies_on_level_after_surge(level_name) + local level_name = level_name or level.name() + + -- Clean all anomalies in one action first + clean_dynamic_anomalies_global() + + local function generate_anomalies() + local level_data = get_level_data(level_name) + if not level_data then + printf("Error, unable to get data for %s", level_name) + return + end + + local level_file = level_data.level_file + local spawn_percent = level_data.spawn_percent + local anomaly_max_number = level_data.anomaly_max_number + local anomaly_max_active = level_data.anomaly_max_active + + -- Build a list of available smart terrains: + local smart_list = utils_data.collect_section(level_file, "available_smarts") + + local pairs = pairs + local collect_section = utils_data.collect_section + local size_table = size_table + + local to_generate = {} + + -- Build anomalies table + if is_not_empty(smart_list) then + local anomalies = updated_anomaly_levels[level_name].anomalies or {} + local anomalies_by_smart = updated_anomaly_levels[level_name].anomalies_by_smart or {} + local smart_by_anomalies = updated_anomaly_levels[level_name].smart_by_anomalies or {} + + for i, smart_name in pairs(smart_list) do + if true or not smart_restrictions[smart_name] then + -- Choose an anomaly type to spawn: + local anomaly_list = collect_section(level_file, "anomaly_types") + if anomaly_list and #anomaly_list >= 1 then + local anomaly_type = anomaly_list[random(#anomaly_list)] + printf("picked anomaly type %s", anomaly_type) + + if not anomalies_by_smart[smart_name] then anomalies_by_smart[smart_name] = {} end + local j = size_table(anomalies_by_smart[smart_name]) + while j < anomaly_max_number do + if random() <= spawn_percent then + to_generate[#to_generate + 1] = { + anomaly_type = anomaly_type, + level_file = level_file, + smart_name = smart_name, + level_name = level_name + } + end + j = j + 1 + end + else + printf("No dynamic anomaly types specified for level %s", level_name) + end + else + printf("no anomalies spawn on smart %s, level %s in restriction", smart_name, level_name) + end + end + end + return to_generate + end + + local anomalies = generate_anomalies() + if is_not_empty(anomalies) then + local tg_interval = 100 + local tg = time_global() + 500 + + local anomalies_ids = {} + process_queue("drx_da_spawn_anomalies_on_level", anomalies, function(k, anomaly) + local t = time_global() + if t < tg then return end + tg = t + tg_interval + + local anom_id = drx_da_spawn_anomaly_on_smart(anomaly.level_file, anomaly.smart_name, anomaly.anomaly_type, level_name) + if anom_id then + updated_anomaly_levels[level_name].anomalies[#updated_anomaly_levels[level_name].anomalies + 1] = anom_id + updated_anomaly_levels[level_name].anomalies_by_smart[anomaly.smart_name][anom_id] = true + updated_anomaly_levels[level_name].anomaly_types_by_smart[anomaly.smart_name] = anomaly.anomaly_type + updated_anomaly_levels[level_name].smart_by_anomalies[anom_id] = anomaly.smart_name + end + return true + end, function() + printf("anomalies updated after surge on level %s", level_name) + end) + end +end diff --git a/mods/Arrival - Busy Hands Bug Fix/meta.ini b/mods/Arrival - Busy Hands Bug Fix/meta.ini new file mode 100644 index 00000000..2a8eda29 --- /dev/null +++ b/mods/Arrival - Busy Hands Bug Fix/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2024.3.30.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=Arrival_busy_hands_bug_fix.rar +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=false +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2024-03-31T02:57:45Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/Body Health System Realistic Overhaul/README.MD b/mods/Body Health System Realistic Overhaul/README.MD new file mode 100644 index 00000000..2a3fd0e6 --- /dev/null +++ b/mods/Body Health System Realistic Overhaul/README.MD @@ -0,0 +1,243 @@ +I always disliked how BHS worked. Where medkits give temporary hp and most random items heal certain parts. + +This mod is my attempt at making BHS fun and immersive instead of just "use a if b, use c if d". + +The github link: + +Currently in active development to balance the items and the system. + +MORE UP-TO-DATE Description on Moddb page + +**MOD IS CONSTANTLY BEING DEVELOPED SO EXPECT CHANGES TO HAPPEN FREQUENTLY.** + +# NOW INCLUDES AN EXPERIMENTL TARKOV-LIKE HP SYSTEM. READ 0.8 CHANGELOG FOR MORE INFO + +**An overview of the mod and plans below.** + +# General points: + +## The goals of the mod: + +- Make healing limbs take considerably longer. +- Remove temporary HP. +- Add painkillers and painkilling properties. Think of tarkov. +- Make medkits the main source of healing, like they should be. +- Make the system highly configurable. + +## **Stuff that this mod already has:** + +- No temp hp System. Replaced by painkillers instead. Exactly the same purpose as tarkov basically. Allow you to use the destroyed limbs and remove the nasty effects. +- To complement painkiller system weapon sway mod is integrated. Painkillers reduce weapon sway like if the limb is healed by that amount. +- Medkits either heal all parts at once OR they heal set amount of HP, going one HP at a time for the lowest HP limb(potentially more efficient, which makes a lot of sense). +- Broken limb system. If HP of the limb reaches 0 you need to use a surgical kit, then splint with a splint(all configurable and can turn off). +- Reworked sleep healing to heal more logically(you heal lowest limbs first). Can disable that. +- Health multiplier to enable more gradual healing. Limb HP by default is 11 torso, head; 5 for the rest - kinda low. - Experimental. Realistically would do nothing but increase the number of HP steps so it looks smoother but makes it hard to see real HP -- UNSUPPORTED - TOO MANY PROBLEMS +- Weapon sway depending on arms damage and painkiller effect +- Slower medkit usage and healing rate. +- Campfire heal for limbs(adapting script) +- Artefact healing for limbs(same thing) + +## **Stuff i will add:** + +- More effects on limb damage. Instead of instadeath increase received damage, stuff like that - need ideas +- Heal limbs one-by-one only like in EFT(maybe) + +All new items are sold by medics. Some new items also added to flea market and butcher's shop. +As well as a lot of different traders that don't have medics nearby. + +Keep in mind that in the more-or-less finished version **everything will be optional modules**. While in development i wont split it into modules so my workload is more sane. + +Suggestions and ideas related to BHS are appreciated, as i myself am trying to figure out how to balance things out. + +# Balancing for meds: + +- All medkits heal twice as slow. Overall they heal exactly the same amount, just slower. New time is 66.8 seconds. +- Survival kit modified using same logic as medkits, but with radiation and healing boosted to match heal speed of basic medkit. New time is 90 seconds. +- Rebirth modded to last twice as long. Same idea as medkits. New time is 14 seconds. +- Bandages apply their effect instantly instead of over time. + +## As for limb damage: + +Keep in mind these values: Legs and Arms have 10HP per limb. Torso and Head have 22HP per limb. +That is double of what basic BHS has to make 1HP matter less in the system making balancing easier. +No, boosting HP does not make limbs survive more damage. Everything is scaled. + +--- + +- ### Heal One System(Healing one HP at a time for one limb): + + - Basic medkit: 21 HP total over the duration. Can heal two arms/legs to full or torso/head once + - Army and Cheese: 42 HP total over the duration. Can heal all arms/legs to full or both torso and head to full. + - Stimpacks: Mirror what medkits heal over their duration, but faster. + - Survival kit: 63 HP total over 90 seconds. + - Coagulant(Vinca/Barvinok): Heals 11 HP over 438 seconds. Cant heal over your HP level. (If you are at 50% then it can only heal limbs to 50%) + - Rebirth: 63 HP total over 17 seconds. Cant heal over your HP level. (If you are at 50% then it can only heal limbs to 50%) + - Propital: 30 HP total over 180 seconds. Cant heal over your HP level. + +--- +- ### Heal All System(Healing one HP at a time for all limbs) - LEGACY: + + - Basic medkit: Head/Torso - 11 HP, Legs/Arms - 5 HP total over the duration. Can heal two arms/legs to full or torso/head once + - Army and Cheese: Head/Torso - 16 HP, Legs/Arms - 7 HP total over the duration. Can heal all arms/legs to full or both torso and head to full. + - Stimpacks: Mirror what medkits heal over their duration, but faster. + - Rebirth: Head/Torso - 22 HP, Legs/Arms - 10 HP over 17 seconds. Cant heal over your HP level. (If you are at 50% then it can only heal limbs to 50%) + +--- +- ### Surgery system and kits(In order to restore a limb to 1 HP surgical tools are required): + + - Surgical tools: Slow use, restores one limb to be splinted in 10 seconds. One use and needs a bandage. Will cause damage on use. + - CMS: Slow use, 5 charges. Restores one limb to be splinted in 10 seconds. Can be configured to restore a limb without a splint required. More weight-efficient + +--- + +- ### Splints: + + - Splint: Slow use, restores a limb to full 1HP in 10 seconds. One charge. + - Aluminium splint: Slow use, restores a limb to full 1HP in 10 seconds. Three charges. More weight-efficient + +--- + +- ### Painkillers(**Keep in mind that painkiller system doubles the painkiller power for torso and head because they have double the HP over legs and arms**) + + - Morphine: 9 painkiller power for 305 seconds. + - Rebirth: 9 painkiller power for 305 seconds. + - Salicidic acid: 7 painkiller power for 180 seconds. + - Fentanyl: 4 painkiller power for 202 seconds. + - Analgetic(Diclofenac Sodium): 5 painkiller power for 305 seconds. + - SJ6 stimulator: 7 painkiller power for 600 seconds. + - SJ1 stimulator: 4 painkiller power for 600 seconds. + - Analgin painkiller: 2 painkiller power for 180 seconds. + - Ibuprofen: 4 painkiller power for 290 seconds. + - Yadulin: 4 painkiller power for 505 seconds. + - Adrenalin(Epinephrine): 2 painkiller power for 2184 seconds. + - Army Medkit: 4 painkiller power for 128 seconds. + - Cheese Medkit: 3 painkiller power for 128 seconds. + - Stimpack: 2 painkiller power for 128 seconds. + - Army Stimpack: 4 painkiller power for 128 seconds. + - Sci Stimpack: 3 painkiller power for 128 seconds. + - Cocaine: 2 painkiller power for 1644 seconds. + - Joint: 1 painkiller power for 420 seconds. + - Marijuana: 1 painkiller power for 652 seconds. + - Bottled vodkas: 1 painkiller power for 300 seconds. + - Quality vodka: 2 painkiller power for 300 seconds. + - Zone vodka(bottle_metal): 2 painkiller power for 300 seconds. + +--- + +**Credits:** + +- bvcx for detailed description mod. +- ilrathCXV for campfire and artefact healing scripts. +- DokBrok for BHS Evolution mod that inspired this one. +- TheParaziT - for base injector animation. Extended them to all injectors. +- Uknown person who ported all the animations from gunslinger + +--- + +# Latest changelog: + +## 0.86E Update + +- Actor damage balancer update to match gamma 0.91 + +## 0.86D Update + +- Reduced weapon out delay for bandages(Mirror of Enhanced anims - medical) + +## 0.86C Update + +- Skinning without a knife out is done with a hunting knife, always. Fix for gamma tomahawk. + +## 0.86B Update + +- Crafting recipes added + +## 0.86A Update + +- Fomod made to better convey information + +## 0.86 Update + +- New default BHS hud - thanks to chilichocolate +- Fix for painkiller effect not being recalculated after healing +- Dynamic damage threshold adjustement based on damagescale(no visible effect) +- Small fix for torso surgery display +- Fomod installer. Yes, it has finally happened, folks. + +## 0.85A Hotfix + +- Fix for leftover variable (gamma users) + +## 0.85 Hotfix + +- Rewritten all mechanics on healing, splinting and surgery to match the quality of the latest additions. +- Removed some hard to maintain features. + +## 0.81B(C) Hotfix + +- Fix for missing model crash after removing the mod(nowscript will remove akvatabs and other vanilla changed items too) +- Fix for forgotten sounds + +## 0.81 Hotfix + +- Included forgotten .ppe file for latest ADB version. +- Updated included FDDA Enhanced Animations mod + +## 0.8 Beta: + +### Additions and rebalancing: + +- **New Experimental BHS mode. Tarkov-like limb system. Vanilla HP only acts as a wellness indicator and cannot be healed with medkits. Only vinca and the usual ways of resting, artefacts,etc. Enables below feature automatically.** +- Above can be buggy when the system prevents a death, as a callback fires but is cancelled by the script. Depends on installed mods. An alternative way can be used if this proves too buggy. +- **Combined with the above change - damage bleedthrugh from destroyed limbs to every other limb. If you take damage in the destroyed limb the damage is split between all the other limbs. Can be turned on/off** +- Limb damage multiplier added to MCM menu. +- Small-ish balancing changes to painkillers that are too much to list. +- Added bone breaking sound effect and feedback to notify the player when their limb(s) reach 0 HP. +- Update/reworked the damage system. Changes should not be noticeable unless you go into code. +- Fall damage multiplier added to mcm. Fall damage should be goddamn scary. +- Explosives are **VERY** scary and do damage to all limbs. You really dont want to experience it. +- Update hit detection to more accurately tell what limb was hit. +- Removed legacy features. +- Grok's Actor Damage Balancer and Progressive Rad Damages compatibility patches.(Gamma requires both) +- Non-medical enhanced animations separated into a sister mod. FDDA enhanced animations. + +### Fixes: + +- Fixed FDDA anims crash. Mod is fully DLTX now. +- Fixed arm/legs minimal hp settings to correctly apply. +- General bugfixing of everything not touched by changes, which is not much. + +## 0.63 Beta: + +- Dynamic item spawns,item rewards,new game loadouts DLTX item injection +- Safe deletion utility to safely delete all new items +- Loot injection for new items. Now they can be looted from bodies. + +## Hotfix 0.6A: + +- Fixed mutant harvest animation +- Added FDDA MCM unlocker for gamma users + +## 0.6 Beta: + +### Additions and rebalancing: + +- Bandages and tourniquets now work instantly instead of over time. +- Vodka's are now painkillers of different power. +- To be able to sprint with broken legs you now need painkiller power 3 and above. Vodkas provide up to 2. +- Psy mechanics for SJ stims. Now they lower your max psy health but increase resistance and regeneration the lower your psy health is. (EXPERIMENTAL) +- A lot more traders sell new items now, and old ones should be fixed, hopefully. +- Compatibility patch for Coffee if the zone to use better anims. +- Damage to limbs increased by 25%. Hopefully losing limbs will be more frequent. + +### Fixes: + +- Painkillers active time is now tracked a lot better, so level transitions wont extend their duration. Nor saving/loading will extend/decrease it. Deviation will be very small % wise. +- Detailed description compatibility now has fixed encoding for dot symbols +- Default detailed description script fixes(included by default, not compat) +- Artefact healing now wont work if you dont have PBA mod installed. Meaning if you want to use it in base anomaly you need to patch it. I would do that if i had vanilla classnames and values for them - it is not hard at all. +- General bugfixing for main script +- DLTX bugfixing to make sure included mods are not overwritten by standalone versions of same mods. +- Animation files bugfixing to change as little as possible compared to base FDDA + asnen's. Now should be 100% compatible as no old anims are overwritten or deleted. +- Damage threshold lowered back to 3% like default. Now consumable items are tracked and wont deal damage to limbs +- Renamed Enchaned UI compat to "Enhanced GUI". Got confused about names diff --git a/mods/Body Health System Realistic Overhaul/gamedata/configs/items/items/mod_animations_settings_slowermeds_bhsro.ltx b/mods/Body Health System Realistic Overhaul/gamedata/configs/items/items/mod_animations_settings_slowermeds_bhsro.ltx index beec9a10..0ecac36c 100644 --- a/mods/Body Health System Realistic Overhaul/gamedata/configs/items/items/mod_animations_settings_slowermeds_bhsro.ltx +++ b/mods/Body Health System Realistic Overhaul/gamedata/configs/items/items/mod_animations_settings_slowermeds_bhsro.ltx @@ -26,7 +26,7 @@ tm = 10000 speed = 0.8 helm = true -![survival_kit] +[survival_kit] snd = interface\item_usage\bandage_surginst anm = item_ga_bandage cam = itemuse_anm_effects\bandage.anm diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_aaugmentin.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_aaugmentin.ogf deleted file mode 100644 index 99237680..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_aaugmentin.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ffa658b1a9b38405317294e28417051cb9e065139a20f3928d6e3ea39c894641 -size 40993 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_alusplint.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_alusplint.ogf deleted file mode 100644 index 1076f621..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_alusplint.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2eb51c7d532aa54fd3a3245b2d7dec22b491e64024ab5cbeb191513415b1d0f8 -size 20208 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_car.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_car.ogf deleted file mode 100644 index 4f6b9162..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_car.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eed745c95ecd2f0edf62635ebc0ab5657811ea69f7158b93dc60fdd99739a13a -size 102828 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_ibuprofen.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_ibuprofen.ogf deleted file mode 100644 index 72199f37..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_ibuprofen.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:87b6961656fdd2a6174d9b9249ceebbbdd230c8c28f57da5d077cbc14203edc3 -size 40992 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_medical_pile.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_medical_pile.ogf deleted file mode 100644 index 3dfd0617..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_medical_pile.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8410f2139aab6be75e526496435cf87f6631a8e8e4d81a8a5fa11ae220c60e3b -size 190554 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_splint.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_splint.ogf deleted file mode 100644 index 01bc5f6c..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_splint.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:acdbc03c89051b20520bfb2479339a22dfc7a7d794a9bc7ac0b2915dc643cde9 -size 99846 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_adrenaline.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_adrenaline.ogf deleted file mode 100644 index 0f886fe1..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_adrenaline.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:694b09981ab4987c0a0161e52babc959aaff8ae32a4332b56e62395eabf5cacb -size 45467 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_etg.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_etg.ogf deleted file mode 100644 index 1da533ef..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_etg.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:afd8b21b841a751408994ea7c6927b92b45c3c3412ef3b057e2403f1f03bcbee -size 45455 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_morphine.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_morphine.ogf deleted file mode 100644 index ff05091a..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_morphine.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:15b55eac4046b51d1698d31cba220785b29f4b2e443f89b528ad5b392408d6a3 -size 45465 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_propital.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_propital.ogf deleted file mode 100644 index d44cfd0f..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_propital.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7c2ee3d6ce25c7337c87bf95fd24ee36abf8b97e6442f9100a1554e409bce221 -size 45465 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_sj1.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_sj1.ogf deleted file mode 100644 index 24d4a326..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_sj1.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4bbb5750ba8a74bd90dc14fe8356760b499590ef89e6c3638b0a91b353fcca81 -size 45455 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_sj6.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_sj6.ogf deleted file mode 100644 index d9c58f76..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_sj6.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:763158970bfc6e4c536386295b33beff386ab5804624a2e7ddf386a5f8c5c052 -size 45455 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_zagustin.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_zagustin.ogf deleted file mode 100644 index 73d5259c..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_stim_zagustin.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8bd729340e90a15c1110193e1a433430ee58065ab5367b86496280088133afc2 -size 45465 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_surgical_kit.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_surgical_kit.ogf deleted file mode 100644 index 3c5426b3..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_surgical_kit.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d1f42a7988ffa1350b3a2d6ee7fe6cd6564b44fbe1abb4f3651bafc2a076cc9c -size 155846 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_surv12.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_surv12.ogf deleted file mode 100644 index 2dd3cce6..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_surv12.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4af3fb539c7e863b2adcfcdcb25c6f43e95f282ca74f4a5cbdb04aef95fb859e -size 284580 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_tourniquet.ogf b/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_tourniquet.ogf deleted file mode 100644 index 260dc6a1..00000000 --- a/mods/Body Health System Realistic Overhaul/gamedata/meshes/dynamics/weapons/wpn_eat/eft_meds/itm_tourniquet.ogf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bc07c0533fb34de5561d134b77c48d058834499bb022ec4f985939bae1038a12 -size 141458 diff --git a/mods/Body Health System Realistic Overhaul/gamedata/scripts/enhanced_animations_mcm.script b/mods/Body Health System Realistic Overhaul/gamedata/scripts/enhanced_animations_mcm.script index 75f22f36..e062afe3 100644 --- a/mods/Body Health System Realistic Overhaul/gamedata/scripts/enhanced_animations_mcm.script +++ b/mods/Body Health System Realistic Overhaul/gamedata/scripts/enhanced_animations_mcm.script @@ -3,11 +3,11 @@ function on_mcm_load() op = { id= "EA_settings" ,sh=true ,gr={ { id= "friendlyfire" ,type= "slide" ,link= "ui_options_slider_disguise" ,text= "FDDA" ,size= {512,50} ,spacing= 20 }, {id = "enable_animations", type = "check", val = 1, def = true}, - {id = "enable_backpack_addon", type = "check", val = 1, def = false}, - {id = "enable_crouch_toggle_backpack_addon", type = "check", val = 1, def = false}, + --{id = "enable_backpack_addon", type = "check", val = 1, def = false}, + --{id = "enable_crouch_toggle_backpack_addon", type = "check", val = 1, def = false}, {id = "mutant_loot", type = "check", val = 1, def = true}, - {id = "take_item_anim", type = "check", val = 1, def = false}, - {id = "take_dist", type = "track" , val = 2, min = 0 , max = 1.0, def = 0.12, step = 0.01}, + --{id = "take_item_anim", type = "check", val = 1, def = false}, + --{id = "take_dist", type = "track" , val = 2, min = 0 , max = 1.0, def = 0.12, step = 0.01}, {id = "ea_debug", type = "check", val = 1, def = false}, } } diff --git a/mods/Body Health System Realistic Overhaul/gamedata/textures/ui/ui_body_health_system3.dds b/mods/Body Health System Realistic Overhaul/gamedata/textures/ui/ui_body_health_system3.dds index 65b945b0..3fd3bab4 100644 --- a/mods/Body Health System Realistic Overhaul/gamedata/textures/ui/ui_body_health_system3.dds +++ b/mods/Body Health System Realistic Overhaul/gamedata/textures/ui/ui_body_health_system3.dds @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:562097c82ba85af3bef484b4640a91f3fbf72e60d1c38b6c67afeb8f351e1115 +oid sha256:05969fd20bfa90f9dac97bd033530e2848e656e1f3f941c66e26255965758888 size 1048704 diff --git a/mods/Duty Expansion/gamedata/configs/creatures/duty_girl.ltx b/mods/Duty Expansion/gamedata/configs/creatures/duty_girl.ltx new file mode 100644 index 00000000..e429d9d6 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/creatures/duty_girl.ltx @@ -0,0 +1,25 @@ +[stalker_duty_girl]:sim_default_duty_4 +character_profile = stalker_duty_girl +story_id = stalker_duty_girl +immunities_sect = stalker_immunities_duty_girl + +[stalker_immunities_duty_girl] +burn_immunity = 0.5 +strike_immunity = 0.5 +shock_immunity = 0.5 +wound_immunity = 0.5 +radiation_immunity = 0.6 +telepatic_immunity = 0.8 +chemical_burn_immunity = 0.5 +explosion_immunity = 0.7 +fire_wound_immunity = 0.5 + + +[red_duty_outpost_trader]:sim_default_duty_3 +character_profile = red_duty_outpost_trader + +[red_duty_outpost_medic]:sim_default_duty_3 +character_profile = red_duty_outpost_medic + +[red_duty_outpost_guide]:sim_default_duty_3 +character_profile = red_duty_outpost_guide diff --git a/mods/Duty Expansion/gamedata/configs/creatures/spawn_sections_truck.ltx b/mods/Duty Expansion/gamedata/configs/creatures/spawn_sections_truck.ltx new file mode 100644 index 00000000..70bfa75d --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/creatures/spawn_sections_truck.ltx @@ -0,0 +1,14 @@ + +#include "duty_girl.ltx" + +[trucks_cemetery_bandit_trader]:stalker +$spawn = "respawn\trucks_cemetery_bandit_trader" +character_profile = trucks_cemetery_bandit_trader +community = stalker +story_id = trucks_cemetery_bandit_trader + +[trucks_cemetery_bandit_mechanic]:stalker +$spawn = "respawn\trucks_cemetery_bandit_mechanic" +character_profile = trucks_cemetery_bandit_mechanic +community = stalker +story_id = trucks_cemetery_bandit_mechanic diff --git a/mods/Duty Expansion/gamedata/configs/gameplay/character_desc_duty_girl.xml b/mods/Duty Expansion/gamedata/configs/gameplay/character_desc_duty_girl.xml new file mode 100644 index 00000000..7d032cd1 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/gameplay/character_desc_duty_girl.xml @@ -0,0 +1,97 @@ + + + stalker_duty_girl + stalker_duty_girl_name + ui_npc_duty_girl + dolg + characters_voice\human\woman\ + actors\mnp_npc_remeik\duty_girl + + + [spawn] \n + wpn_groza \n + + + + + + 10000 + 1000 + + hello_dialog + duty_girl_first_meet + + duty_girl_hunting_chimera_init + duty_girl_hunting_chimera_move + duty_girl_hunting_chimera_done + + duty_girl_monolith_elite_init + duty_girl_monolith_elite_join + duty_girl_monolith_elite_done + + duty_girl_loot_stash_init + + duty_girl_capture_the_brirge_init + duty_girl_capture_the_brirge_join + duty_girl_capture_the_brirge_done + + dm_is_actor_companion_dialog + dm_companion_patrol + + duty_girl_companion_join_dialog + duty_girl_companion_leave_dialog + duty_girl_chat + + actor_break_dialog + + + +#include "gameplay\profiles\character_desc_dolg_special.xml" + GENERATE_NAME_senior_sergeant + ui_inGame2_dutygas_2 + red_duty_outpost_trader + characters_voice\human\dolg_1\ + actors\stalker_dolg\stalker_dolggas2a + + hello_dialog + + dm_init_trader + dm_broker_dialog + dm_ordered_task_dialog + dm_ordered_task_completed_dialog + dm_important_documents + buy_route + + red_duty_outpost_trader_concern_hostile + + actor_break_dialog + + + +#include "gameplay\profiles\character_desc_dolg_special.xml" + GENERATE_NAME_senior_sergeant + ui_npc_small_dolg_2_face_2 + red_duty_outpost_medic + characters_voice\human\dolg_1\ + actors\stalker_dolg\stalker_dolg_2_face_2 + + hello_dialog + + dm_init_medic + dm_medic_general + dm_ordered_task_dialog + dm_ordered_task_completed_dialog + actor_break_dialog + + + +#include "gameplay\profiles\character_desc_dolg_special.xml" + GENERATE_NAME_senior_sergeant + ui_inGame2_neutral_2_gp5 + red_duty_outpost_guide + characters_voice\human\dolg_1\ + actors\stalker_dolg\stalker_dolg_2a_gp5 + + hello_dialog + actor_break_dialog + diff --git a/mods/Duty Expansion/gamedata/configs/gameplay/character_desc_truck.xml b/mods/Duty Expansion/gamedata/configs/gameplay/character_desc_truck.xml new file mode 100644 index 00000000..2ecf3ff6 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/gameplay/character_desc_truck.xml @@ -0,0 +1,84 @@ + + + +#include "gameplay\character_desc_duty_girl.xml" + +#include "gameplay\supplies\character_items.xml" + + + + GENERATE_NAME_bandit + ui_inGame2_bandit_4 + + No information is available. + + trucks_cemetery_bandit_trader + banditstalker_terrain + characters_voice\human\bandit_2\ + + 1700 + + -500 + + actors\mnp_npc_remeik\trader_band_klatbiche + + + [spawn] \n + wpn_beretta \n + ammo_9x19_pbp = 5 \n + +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" + dm_init_trader + dm_ordered_task_dialog + dm_ordered_task_completed_dialog + buy_route + dm_bribe + actor_break_dialog + + + + + + GENERATE_NAME_bandit + ui_inGame2_bandit_4 + + No information is available. + + trucks_cemetery_bandit_mechanic + banditstalker_terrain + characters_voice\human\bandit_2\ + + + 1700 + + 0 + + actors\mnp_npc_remeik\meschanic_band_klatbiche + + + [spawn] \n + wpn_spas12 \n + ammo_12x76_zhekan = 4 \n + +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" + trucks_cemetery_bandit_mechanic_start + dm_init_trader + dm_init_mechanic + dm_ordered_task_dialog + dm_ordered_task_completed_dialog + dm_encrypted_pda + awr_tech_dialog_drink_1 + dm_tech_repair + actor_break_dialog + + + + diff --git a/mods/Duty Expansion/gamedata/configs/gameplay/dialogs_duty_girl.xml b/mods/Duty Expansion/gamedata/configs/gameplay/dialogs_duty_girl.xml new file mode 100644 index 00000000..f657f935 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/gameplay/dialogs_duty_girl.xml @@ -0,0 +1,152 @@ + + + dialogs_duty_girl.duty_girl_companion_join_dialog_con + dialogs_duty_girl.duty_girl_companion_join_dialog + + + + dialogs_duty_girl.duty_girl_companion_leave_dialog_con + dialogs_duty_girl.duty_girl_companion_leave_dialog + + + + dialogs_duty_girl.duty_girl_actor_ask_companion_dialog_con + dialogs_duty_girl.duty_girl_actor_ask_companion_dialog + + + + duty_girl_first_meet + dialogs_duty_girl.duty_girl_first_meet + + + + duty_girl_first_meet + + + duty_girl_chat_0 + 1 + + + duty_girl_chat_1 + 10 + 20 + 30 + 40 + 50 + + + duty_girl_hunting_chimera_done + duty_girl_chat_hunting_chimera_0 + 11 + + + duty_girl_chat_hunting_chimera_1 + 50 + + + duty_girl_monolith_elite_done + duty_girl_chat_monolith_elite_0 + 21 + + + duty_girl_chat_monolith_elite_1 + 50 + + + duty_girl_capture_the_brirge_done + duty_girl_chat_capture_the_brirge_0 + 31 + + + duty_girl_chat_capture_the_brirge_1 + 50 + + + duty_girl_capture_the_brirge_done + duty_girl_chat_capture_the_brirge_2 + 41 + + + duty_girl_chat_capture_the_brirge_3 + 50 + + + duty_girl_chat_2 + + + + + + dialogs_duty_girl.duty_girl_no_more_quest_suggest_companion_con + dialogs_duty_girl.duty_girl_no_more_quest_suggest_companion + + + + + dialogs_duty_girl.duty_girl_hunting_chimera_init_con + dialogs_duty_girl.duty_girl_hunting_chimera_init + + + dialogs_duty_girl.duty_girl_hunting_chimera_move_con + dialogs_duty_girl.duty_girl_hunting_chimera_move + + + dialogs_duty_girl.duty_girl_hunting_chimera_done_con + dialogs_duty_girl.duty_girl_hunting_chimera_done + + + + dialogs_duty_girl.duty_girl_monolith_elite_init_con + dialogs_duty_girl.duty_girl_monolith_elite_init + + + + dialogs_duty_girl.duty_girl_monolith_elite_join_con + + + dialogs_duty_girl.get_phrase_monolith_elite_join_0 + 1 + + + dialogs_duty_girl.get_phrase_monolith_elite_join_1 + dialogs_duty_girl.action_monolith_elite_join + + + + + + dialogs_duty_girl.duty_girl_monolith_elite_done_con + dialogs_duty_girl.duty_girl_monolith_elite_done + + + + dialogs_duty_girl.duty_girl_loot_stash_init_con + dialogs_duty_girl.duty_girl_loot_stash_init + + + + dialogs_duty_girl.duty_girl_capture_the_brirge_init_con + dialogs_duty_girl.duty_girl_capture_the_brirge_init + + + + dialogs_duty_girl.duty_girl_capture_the_brirge_join_con + + + dialogs_duty_girl.get_phrase_capture_the_brirge_join_0 + 1 + + + dialogs_duty_girl.get_phrase_capture_the_brirge_join_1 + dialogs_duty_girl.action_capture_the_brirge_join + + + + + + dialogs_duty_girl.duty_girl_capture_the_brirge_done_con + dialogs_duty_girl.duty_girl_capture_the_brirge_done + + diff --git a/mods/Duty Expansion/gamedata/configs/gameplay/dialogs_duty_outpost.xml b/mods/Duty Expansion/gamedata/configs/gameplay/dialogs_duty_outpost.xml new file mode 100644 index 00000000..0a56a415 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/gameplay/dialogs_duty_outpost.xml @@ -0,0 +1,42 @@ + + + dialogs_duty_girl.red_duty_outpost_trader_concern_hostile + + + + dialogs_duty_girl.meet_guid_duty_outpost + + + + dialogs_duty_girl.travel_guid_duty_outpost + + + + red_bridge_outpost + dialogs_duty_girl.travel_guid_duty_outpost_from_others_1000 + + + + red_bridge_outpost + dialogs_duty_girl.travel_guid_duty_outpost_from_others_2000 + + + + red_bridge_outpost + dialogs_duty_girl.travel_guid_duty_outpost_from_others_3000 + + + + red_bridge_outpost + dialogs_duty_girl.travel_guid_duty_outpost_from_others_4000 + + + + red_bridge_outpost + dialogs_duty_girl.travel_guid_duty_outpost_from_others_5000 + + + + red_bridge_outpost + dialogs_duty_girl.travel_guid_duty_outpost_from_others_6000 + \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/configs/gameplay/dialogs_truck.xml b/mods/Duty Expansion/gamedata/configs/gameplay/dialogs_truck.xml new file mode 100644 index 00000000..c825ea95 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/gameplay/dialogs_truck.xml @@ -0,0 +1,29 @@ + + +#include "gameplay\dialogs_duty_girl.xml" +#include "gameplay\dialogs_duty_outpost.xml" + + + + + npc_phrase + 1 + + + actor_phrase + dialogs.break_dialog + + + + + + + + + trucks_cemetery_bandit_mechanic_start_0 + + + + + + diff --git a/mods/Duty Expansion/gamedata/configs/gameplay/npc_profile_duty_girl.xml b/mods/Duty Expansion/gamedata/configs/gameplay/npc_profile_duty_girl.xml new file mode 100644 index 00000000..3220a14d --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/gameplay/npc_profile_duty_girl.xml @@ -0,0 +1,20 @@ +п»ї +stalker_duty_girl +stalker_duty_girl + + + +red_duty_outpost_trader +red_duty_outpost_trader + + + +red_duty_outpost_medic +red_duty_outpost_medic + + + +red_duty_outpost_guide +red_duty_outpost_guide + + diff --git a/mods/Duty Expansion/gamedata/configs/gameplay/npc_profile_mlr.xml b/mods/Duty Expansion/gamedata/configs/gameplay/npc_profile_mlr.xml new file mode 100644 index 00000000..3b339551 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/gameplay/npc_profile_mlr.xml @@ -0,0 +1,363 @@ +п»ї + + +#include "gameplay\npc_profile_duty_girl.xml" + + +mil_freedom_barman_mlr +mil_freedom_barman_mlr + + + +dasc_tech_mlr +dasc_tech_mlr + + + +devushka +devushka + + + +dasc_trade_mlr +dasc_trade_mlr + + + +bodyguard_duty_medic_bar_general +bodyguard_duty_medic_bar_general + + + +ds_killer_guide_main_base +ds_killer_guide_main_base + + + +zaton_killer_guide_station +zaton_killer_guide_station + + + +ds_killer_medic_mlr +ds_killer_medic_mlr + + + +mil_freedom_medic +mil_freedom_medic + + + +zat_tech_mlr +zat_tech_mlr + + + +bar_informator_mlr +bar_informator_mlr + + + +bandit_main_base_medic_mlr +bandit_main_base_medic_mlr + + + +agr_1_6_medic_army_mlr +agr_1_6_medic_army_mlr + + + +agr_1_6_barman_army_mlr +agr_1_6_barman_army_mlr + + + +merc_pri_a18_mech_mlr +merc_pri_a18_mech_mlr + + + +merc_pri_grifon_mlr +merc_pri_grifon_mlr + + + +pri_a16_mech_mlr +pri_a16_mech_mlr + + + +zat_stancia_trader_merc +zat_stancia_trader_merc + + + +zat_stancia_mech_merc +zat_stancia_mech_merc + + + +jup_cont_trader_bandit +jup_cont_trader_bandit + + + +jup_cont_mech_bandit +jup_cont_mech_bandit + + + +army_south_mechan_mlr +army_south_mechan_mlr + + + +monolith_bridge_trader_mlr +monolith_bridge_trader_mlr + + + +pri_special_trader_mlr +pri_special_trader_mlr + + + +mil_freedom_guid +mil_freedom_guid + + + +esc_3_16_military_trader +esc_3_16_military_trader + + + +guid_marsh_mlr +guid_marsh_mlr + + + +guid_dv_mal_mlr +guid_dv_mal_mlr + + + +guid_pri_a15_mlr +guid_pri_a15_mlr + + + +trader_pri_a15_mlr +trader_pri_a15_mlr + + + +guid_zan_stalker_locman +guid_zan_stalker_locman + + + +guid_jup_stalker_garik +guid_jup_stalker_garik + + + +guid_bar_stalker_navigator +guid_bar_stalker_navigator + + + +hunter_gar_trader +hunter_gar_trader + + + +cit_killers_merc_barman_mlr +cit_killers_merc_barman_mlr + + + +baraholka_trader_night +baraholka_trader_night + + + +baraholka_trader +baraholka_trader + + + +trucks_cemetery_bandit_trader +trucks_cemetery_bandit_trader + + + +trucks_cemetery_bandit_mechanic +trucks_cemetery_bandit_mechanic + + + +yan_povar_army_mlr +yan_povar_army_mlr + + + +mechanic_army_yan_mlr +mechanic_army_yan_mlr + + + +esc_main_base_trader_mlr +esc_main_base_trader_mlr + + + +trader_monolith_jup_depo +trader_monolith_jup_depo + + + +mechanic_monolith_jup_depo +mechanic_monolith_jup_depo + + + +trader_monolith_kbo +trader_monolith_kbo + + + +mechanic_monolith_kbo +mechanic_monolith_kbo + + + +lider_monolith_haron +lider_monolith_haron + + + +bar_dolg_medic +bar_dolg_medic + + + +agr_u_bandit_boss +agr_u_bandit_boss + + + +red_greh_trader +red_greh_trader + + + +red_greh_tech +red_greh_tech + + + + + +total_duty_one_h +total_duty_one_h + + + +total_freeman_one_h +total_freeman_one_h + + + +total_stalker_left_one +total_stalker_left_one + + + +total_stalker_right_one +total_stalker_right_one + + + +total_group_stalkers_1 +total_group_stalkers_1 + + + +total_group_stalkers_2 +total_group_stalkers_2 + + + +total_group_stalkers_3 +total_group_stalkers_3 + + + +total_group_stalkers_4 +total_group_stalkers_4 + + + +total_group_bandits_1 +total_group_bandits_1 + + + +total_group_bandits_2 +total_group_bandits_2 + + + +total_group_bandits_3 +total_group_bandits_3 + + + +total_group_bandits_4 +total_group_bandits_4 + + + +total_stalker_one_n +total_stalker_one_n + + + +total_soldier_one_n +total_soldier_one_n + + + +total_stalker_one_with_mutant +total_stalker_one_with_mutant + + + +total_duty_one_with_zombies +total_duty_one_with_zombies + + + +total_group_bandits_with_bloodsucker_1 +total_group_bandits_with_bloodsucker_1 + + + +total_group_bandits_with_bloodsucker_2 +total_group_bandits_with_bloodsucker_2 + + + +total_two_soldiers_with_burer_1 +total_two_soldiers_with_burer_1 + + + +total_two_soldiers_with_burer_2 +total_two_soldiers_with_burer_2 + + + \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/configs/items/items/items_z_duty_outpost.ltx b/mods/Duty Expansion/gamedata/configs/items/items/items_z_duty_outpost.ltx new file mode 100644 index 00000000..ef6e7c33 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/items/items/items_z_duty_outpost.ltx @@ -0,0 +1,99 @@ + +[duty_outpost_physic_object] +GroupControlSection = spawn_group +$spawn = "physics\destroyable_object" +class = O_DSTR_S +remove_time = 60 +script_binding = bind_physic_object.init + + +[duty_outpost_box_1a]:duty_outpost_physic_object +visual = dynamics\box\box_1a.ogf +fixed_bones = link + +[duty_outpost_box_1b]:duty_outpost_physic_object +visual = dynamics\box\box_1b.ogf +fixed_bones = link + +[duty_outpost_box_1c]:duty_outpost_physic_object +visual = dynamics\box\box_1c.ogf +fixed_bones = link + +[duty_outpost_child_bench]:duty_outpost_physic_object +visual = dynamics\stul\child_bench.ogf +fixed_bones = link + +[duty_outpost_taburet_wood_01]:duty_outpost_physic_object +visual = dynamics\stul\taburet_wood_01.ogf +fixed_bones = link + +[duty_outpost_konteyner_03b]:duty_outpost_physic_object +visual = dynamics\box\konteyner_03b.ogf +fixed_bones = link + +[duty_outpost_sleepbag]:duty_outpost_physic_object +visual = dynamics\equipments\mattress02.ogf +fixed_bones = bone02_(1) + +[duty_outpost_transiver]:duty_outpost_physic_object +visual = dynamics\el_tehnika\transiver.ogf +fixed_bones = link + +[duty_outpost_rupor]:duty_outpost_physic_object +visual = dynamics\el_tehnika\rupor.ogf +fixed_bones = link +custom_data = scripts\red_forest\red_bridge_outpost_rupor.ltx + +[duty_outpost_priemnik_gorizont]:duty_outpost_physic_object +visual = dynamics\el_tehnika\priemnik_gorizont.ogf +fixed_bones = link +custom_data = scripts\red_forest\red_bridge_outpost_radio.ltx + + +[duty_outpost_light_sharnir]:duty_outpost_physic_object +visual = dynamics\light\light_sharnir_1.ogf +fixed_bones = link,sharnir,provod +custom_data = scripts\red_forest\light_white_12m_glass.ltx + + + + +[duty_outpost_med_stolik_01]:duty_outpost_physic_object +visual = dynamics\medical_object\med_stolik_01.ogf +fixed_bones = link,wheel_left_1,wheel_left_2,wheel_right_1,wheel_right_2 + +[duty_outpost_item_aptechka]:duty_outpost_physic_object +visual = dynamics\equipments\medical\item_aptechka.ogf +fixed_bones = link + +[duty_outpost_drug_psyhodelin]:duty_outpost_physic_object +visual = dynamics\equipments\medical\drug_psyhodelin.ogf +fixed_bones = bone01 + +[duty_outpost_drug_stim1]:duty_outpost_physic_object +visual = dynamics\equipments\medical\stim1.ogf +fixed_bones = bone01 + +[duty_outpost_drug_stim2]:duty_outpost_physic_object +visual = dynamics\equipments\medical\stim2.ogf +fixed_bones = bone01 + + + + +[duty_outpost_toolkit_nato]:duty_outpost_physic_object +visual = dynamics\repair\toolkit_nato.ogf +fixed_bones = bone01 + +[duty_outpost_toolkit_p]:duty_outpost_physic_object +visual = dynamics\repair\toolkit_p.ogf +fixed_bones = bone01 + +[duty_outpost_toolkit_s]:duty_outpost_physic_object +visual = dynamics\repair\toolkit_s.ogf +fixed_bones = bone01 + +[duty_outpost_toolkit_wp]:duty_outpost_physic_object +visual = dynamics\repair\toolkit_wp.ogf +fixed_bones = bone01 + diff --git a/mods/Duty Expansion/gamedata/configs/misc/duty_outpost_object.ltx b/mods/Duty Expansion/gamedata/configs/misc/duty_outpost_object.ltx new file mode 100644 index 00000000..b91fb76e --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/misc/duty_outpost_object.ltx @@ -0,0 +1,43 @@ +[dynamic_object_configs] +smart = red_smart_terrain_bridge +condlist_0 = {+red_bridge_outpost} true + +[exclusive] +light_tower_1 = duty_outpost_light_sharnir | -114.50,3.50,-257.00 | 0,180,90 | condlist_0 +light_tower_2 = duty_outpost_light_sharnir | -114.50,7.75,-257.00 | 0,180,90 | condlist_0 + +light_tunnel_1 = duty_outpost_light_sharnir | -121.70,2.50,-229.00 | 0,0,90 | condlist_0 +light_tunnel_2 = duty_outpost_light_sharnir | -103.00,2.50,-204.62 | 0,90,90 | condlist_0 +light_tunnel_3 = duty_outpost_light_sharnir | -105.22,2.50,-186.00 | 0,0,90 | condlist_0 + +tunnel_1 = duty_outpost_child_bench | -101.50,-0.81,-200.90 | 0,90,0 | condlist_0 +tunnel_2 = duty_outpost_taburet_wood_01 | -104.30,-0.81,-183.40 | 0,0,0 | condlist_0 +tunnel_3 = duty_outpost_sleepbag | -102.90,-0.81,-182.70 | 0,-90,0 | condlist_0 +tunnel_4 = duty_outpost_sleepbag | -101.50,-0.81,-182.70 | 0,-90,0 | condlist_0 +tunnel_5 = duty_outpost_sleepbag | -100.10,-0.81,-182.70 | 0,-90,0 | condlist_0 + +medic_1 = duty_outpost_med_stolik_01 | -104.30,-0.81,-182.70 | 0,90,0 | condlist_0 +medic_2 = duty_outpost_item_aptechka | -104.50,0.16,-182.50 | 0,-90,0 | condlist_0 +medic_3 = duty_outpost_drug_psyhodelin | -104.10,0.16,-182.50 | 0,180,0 | condlist_0 +medic_4 = duty_outpost_drug_stim1 | -104.50,0.16,-182.80 | 0,0,0 | condlist_0 +medic_5 = duty_outpost_drug_stim2 | -104.30,0.16,-182.80 | 0,0,0 | condlist_0 +medic_6 = duty_outpost_drug_stim2 | -104.10,0.16,-182.80 | 0,0,0 | condlist_0 + +radio = duty_outpost_priemnik_gorizont | -101.50,-0.81,-202.30 | 0,45,0 | condlist_0 + +tower_1 = duty_outpost_box_1b | -115.20,0.47,-255.00 | 0,10,0 | condlist_0 +tower_2 = duty_outpost_box_1b | -115.20,0.71,-255.00 | 0,10,0 | condlist_0 +tower_3 = duty_outpost_box_1b | -116.50,0.47,-254.50 | 0,90,0 | condlist_0 +tower_4 = duty_outpost_box_1b | -116.50,0.71,-254.50 | 0,90,0 | condlist_0 +tower_5 = duty_outpost_box_1b | -116.50,0.95,-254.50 | 0,90,0 | condlist_0 +tower_6 = duty_outpost_box_1b | -117.50,0.47,-254.50 | 0,90,0 | condlist_0 +tower_7 = duty_outpost_box_1c | -117.50,0.71,-254.50 | 0,90,0 | condlist_0 +tower_8 = duty_outpost_box_1c | -117.50,0.95,-254.50 | 0,90,0 | condlist_0 +tower_9 = duty_outpost_transiver | -115.25,1.38,-254.50 | 0,-90,0 | condlist_0 +tower_10 = duty_outpost_rupor | -114.50,7.50,-253.63 | 0,90,0 | condlist_0 + +trader_1 = duty_outpost_toolkit_nato | -114.90,1.29,-256.25 | 0,90,0 | condlist_0 +trader_2 = duty_outpost_toolkit_nato | -114.90,1.29,-256.70 | 0,90,0 | condlist_0 +trader_3 = duty_outpost_toolkit_p | -114.90,1.02,-256.25 | 0,90,0 | condlist_0 +trader_4 = duty_outpost_toolkit_s | -114.90,1.02,-256.70 | 0,90,0 | condlist_0 + diff --git a/mods/Duty Expansion/gamedata/configs/misc/mod_offline_combat_simulator_duty_expansion.ltx b/mods/Duty Expansion/gamedata/configs/misc/mod_offline_combat_simulator_duty_expansion.ltx new file mode 100644 index 00000000..d586b183 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/misc/mod_offline_combat_simulator_duty_expansion.ltx @@ -0,0 +1,7 @@ +![ignore_list] +squad_red_duty_outpost_trader +squad_red_duty_outpost_medic +squad_red_duty_outpost_guide +squad_red_duty_outpost_guard_1 +squad_red_duty_outpost_guard_2 + diff --git a/mods/Duty Expansion/gamedata/configs/misc/sound/script_sound_z_combat.ltx b/mods/Duty Expansion/gamedata/configs/misc/sound/script_sound_z_combat.ltx new file mode 100644 index 00000000..642e2607 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/misc/sound/script_sound_z_combat.ltx @@ -0,0 +1,21 @@ + +[fight] +type = npc +actor_stereo = false +npc_prefix = true +path = fight\attack\attack_ +avail_communities = bandit, csky, dolg, freedom, army, stalker, monolith, killer, army_npc, isg, renegade +shuffle = rnd +idle = 3,5,100 +is_combat_sound = true + +[fight_enemy] +type = npc +actor_stereo = false +npc_prefix = true +path = fight\enemy\enemy_ +avail_communities = bandit, csky, dolg, freedom, army, stalker, monolith, killer, army_npc, isg, renegade +shuffle = rnd +idle = 3,5,100 +is_combat_sound = true + diff --git a/mods/Duty Expansion/gamedata/configs/misc/sound/script_sound_z_duty_outpost.ltx b/mods/Duty Expansion/gamedata/configs/misc/sound/script_sound_z_duty_outpost.ltx new file mode 100644 index 00000000..6c361265 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/misc/sound/script_sound_z_duty_outpost.ltx @@ -0,0 +1,14 @@ + +[red_bridge_outpost_radio] +type = 3d +path = radio\_channel_1\track_ +shuffle = rnd +idle = 5,15,100 +levels = l10_red_forest + +[red_bridge_outpost_bar_dolg_speech] +type = 3d +path = characters_voice\scenario\bar\mega_ +shuffle = rnd +idle = 5,15,100 +levels = l10_red_forest \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/configs/misc/squad_descr/squad_descr_z_duty_girl.ltx b/mods/Duty Expansion/gamedata/configs/misc/squad_descr/squad_descr_z_duty_girl.ltx new file mode 100644 index 00000000..4e0f9f29 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/misc/squad_descr/squad_descr_z_duty_girl.ltx @@ -0,0 +1,52 @@ +[squad_duty_girl]:online_offline_group +npc = stalker_duty_girl +faction = dolg +story_id = squad_duty_girl +logic = scripts\squad_duty_girl.ltx + +;---------------------------------------------------------------------------------------------------- +; Quests +;---------------------------------------------------------------------------------------------------- +[squad_duty_girl_hunting_chimera]:online_offline_group +npc = chimera_strong4 +faction = monster +story_id = squad_duty_girl_hunting_chimera +logic = scripts\task_duty_girl\squad_duty_girl_hunting_chimera.ltx + +[squad_duty_girl_monolith_elite_mono]:online_offline_group +npc_random = sim_default_monolith_4,sim_default_monolith_3 +npc_in_squad = 9 +faction = monolith +story_id = squad_duty_girl_monolith_elite_mono +logic = scripts\task_duty_girl\squad_duty_girl_monolith_elite.ltx + +[squad_duty_girl_monolith_elite_duty]:online_offline_group +npc_random = sim_default_duty_3 +npc_in_squad = 8 +faction = dolg +story_id = squad_duty_girl_monolith_elite_duty +logic = scripts\task_duty_girl\squad_duty_girl_monolith_elite.ltx + +[squad_duty_girl_capture_the_brirge_mono_1]:online_offline_group +npc_random = sim_default_monolith_4,sim_default_monolith_3,sim_default_monolith_3,sim_default_monolith_2 +npc_in_squad = 10 +faction = monolith +story_id = squad_duty_girl_capture_the_brirge_mono_1 +logic = scripts\task_duty_girl\squad_duty_girl_capture_the_brirge.ltx + +[squad_duty_girl_capture_the_brirge_mono_2]:squad_duty_girl_capture_the_brirge_mono_1 +story_id = squad_duty_girl_capture_the_brirge_mono_2 + +[squad_duty_girl_capture_the_brirge_duty]:online_offline_group +npc_random = sim_default_duty_3 +npc_in_squad = 6 +faction = dolg +story_id = squad_duty_girl_capture_the_brirge_duty +logic = scripts\task_duty_girl\squad_duty_girl_capture_the_brirge.ltx + +[squad_duty_girl_capture_the_brirge_lone]:online_offline_group +npc_random = sim_default_stalker_3 +npc_in_squad = 3 +faction = stalker +story_id = squad_duty_girl_capture_the_brirge_lone +logic = scripts\task_duty_girl\squad_duty_girl_capture_the_brirge.ltx diff --git a/mods/Duty Expansion/gamedata/configs/misc/squad_descr/squad_descr_z_duty_outpost.ltx b/mods/Duty Expansion/gamedata/configs/misc/squad_descr/squad_descr_z_duty_outpost.ltx new file mode 100644 index 00000000..666da341 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/misc/squad_descr/squad_descr_z_duty_outpost.ltx @@ -0,0 +1,57 @@ + +[squad_red_duty_outpost_trader]:online_offline_group +npc = red_duty_outpost_trader +faction = dolg +story_id = squad_red_duty_outpost_trader +logic = scripts\red_forest\squad_red_duty_outpost.ltx + +[squad_red_duty_outpost_medic]:online_offline_group +npc = red_duty_outpost_medic +faction = dolg +story_id = squad_red_duty_outpost_medic +logic = scripts\red_forest\squad_red_duty_outpost.ltx + +[squad_red_duty_outpost_guide]:online_offline_group +npc = red_duty_outpost_guide +faction = dolg +story_id = squad_red_duty_outpost_guide +logic = scripts\red_forest\squad_red_duty_outpost.ltx + + +[squad_red_duty_outpost_guard_1]:online_offline_group +npc_random = sim_default_duty_4,sim_default_duty_3,sim_default_duty_3,sim_default_duty_2,sim_default_duty_2,sim_default_duty_1,sim_default_duty_1 +npc_in_squad = 7 +faction = dolg +story_id = squad_red_duty_outpost_guard_1 +target_smart = red_smart_terrain_bridge + +[squad_red_duty_outpost_guard_2]:squad_red_duty_outpost_guard_1 +story_id = squad_red_duty_outpost_guard_2 + +[squad_red_duty_outpost_visitor_1]:online_offline_group +npc_random = sim_default_stalker_4,sim_default_stalker_3,sim_default_stalker_2,sim_default_stalker_1 +npc_in_squad = 3 +faction = stalker +story_id = squad_red_duty_outpost_visitor_1 +target_smart = red_smart_terrain_bridge + +[squad_red_duty_outpost_visitor_2]:online_offline_group +npc_random = sim_default_stalker_4,sim_default_stalker_3,sim_default_stalker_2,sim_default_stalker_1 +npc_in_squad = 3 +faction = stalker +story_id = squad_red_duty_outpost_visitor_2 +target_smart = red_smart_terrain_bridge + +[squad_red_duty_outpost_visitor_3]:online_offline_group +npc_random = sim_default_duty_4,sim_default_duty_3,sim_default_duty_2,sim_default_duty_1 +npc_in_squad = 3 +faction = dolg +story_id = squad_red_duty_outpost_visitor_3 +target_smart = red_smart_terrain_bridge + +[squad_red_duty_outpost_visitor_4]:online_offline_group +npc_random = sim_default_csky_4,sim_default_csky_3,sim_default_csky_2,sim_default_csky_1 +npc_in_squad = 3 +faction = csky +story_id = squad_red_duty_outpost_visitor_4 +target_smart = red_smart_terrain_bridge \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/configs/misc/squad_descr/squad_descr_z_misc_encounter.ltx b/mods/Duty Expansion/gamedata/configs/misc/squad_descr/squad_descr_z_misc_encounter.ltx new file mode 100644 index 00000000..fc14d39a --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/misc/squad_descr/squad_descr_z_misc_encounter.ltx @@ -0,0 +1,67 @@ + +[squad_lure_prey_controller_1]:online_offline_group +npc = m_controller_normal +faction = monster +story_id = squad_lure_prey_controller_1 +logic = scripts\misc_encounter\squad_lure_prey.ltx + +[squad_lure_prey_controller_2]:online_offline_group +npc = m_controller_normal +faction = monster +story_id = squad_lure_prey_controller_2 +logic = scripts\misc_encounter\squad_lure_prey.ltx + +[squad_lure_prey_phantom]:online_offline_group +npc = sim_default_stalker_2 +faction = stalker +story_id = squad_lure_prey_phantom +logic = scripts\misc_encounter\squad_lure_prey.ltx + +[squad_bloodsucker_val_1]:online_offline_group +npc = bloodsucker_weak,bloodsucker_weak,bloodsucker_weak,bloodsucker_weak,bloodsucker_normal,bloodsucker_normal +faction = monster +story_id = squad_bloodsucker_val_1 +logic = scripts\misc_encounter\squad_bloodsucker_val.ltx +on_death = %=script(gameplay_misc_encounter:bloodsucker_val_dead)% + +[squad_bloodsucker_val_2]:online_offline_group +npc = bloodsucker_weak,bloodsucker_weak,bloodsucker_weak,bloodsucker_normal,bloodsucker_normal,bloodsucker_normal +faction = monster +story_id = squad_bloodsucker_val_2 +logic = scripts\misc_encounter\squad_bloodsucker_val.ltx +on_death = %=script(gameplay_misc_encounter:bloodsucker_val_dead)% + +[squad_bloodsucker_val_3]:online_offline_group +npc = bloodsucker_normal,bloodsucker_normal,bloodsucker_normal,bloodsucker_strong,bloodsucker_strong,bloodsucker_strong +faction = monster +story_id = squad_bloodsucker_val_3 +logic = scripts\misc_encounter\squad_bloodsucker_val.ltx +on_death = %=script(gameplay_misc_encounter:bloodsucker_val_dead)% + +[squad_sleeping_bloodsucker_jup_1]:online_offline_group +npc_random = bloodsucker_weak,bloodsucker_weak,bloodsucker_weak,bloodsucker_normal,bloodsucker_normal,bloodsucker_normal +npc_in_squad = 6 +faction = monster +story_id = squad_sleeping_bloodsucker_jup_1 +logic = scripts\misc_encounter\squad_sleeping_snork.ltx + +[squad_sleeping_bloodsucker_jup_2]:online_offline_group +npc_random = bloodsucker_normal,bloodsucker_normal,bloodsucker_normal,bloodsucker_strong,bloodsucker_strong,bloodsucker_strong +npc_in_squad = 6 +faction = monster +story_id = squad_sleeping_bloodsucker_jup_2 +logic = scripts\misc_encounter\squad_sleeping_snork.ltx + +[squad_sleeping_bloodsucker_jup_3]:online_offline_group +npc_random = bloodsucker_normal,bloodsucker_normal,bloodsucker_normal,bloodsucker_strong,bloodsucker_strong,bloodsucker_strong +npc_in_squad = 6 +faction = monster +story_id = squad_sleeping_bloodsucker_jup_3 +logic = scripts\misc_encounter\squad_sleeping_snork.ltx + +[squad_sleeping_gigant]:online_offline_group +npc_random = gigant_normal +npc_in_squad = 4 +faction = monster +story_id = squad_sleeping_gigant +logic = scripts\misc_encounter\squad_sleeping_gigant.ltx \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/configs/misc/task/tm_z_duty_girl.ltx b/mods/Duty Expansion/gamedata/configs/misc/task/tm_z_duty_girl.ltx new file mode 100644 index 00000000..a242efca --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/misc/task/tm_z_duty_girl.ltx @@ -0,0 +1,30 @@ + +[duty_girl_base] +icon = ui_inGame2_Mesta_evakuatsii +storyline = true +prior = 1000 +status_functor = duty_girl_task_status +target_functor = duty_girl_task_target +title_functor = duty_girl_task_target +descr_functor = duty_girl_task_target + +[duty_girl_hunting_chimera]:duty_girl_base +on_init = %+duty_girl_hunting_chimera_init% +on_complete = %+duty_girl_hunting_chimera_done% +on_fail = %+duty_girl_hunting_chimera_fail% + +[duty_girl_monolith_elite]:duty_girl_base +on_init = %+duty_girl_monolith_elite_init% +on_complete = %+duty_girl_monolith_elite_done% +on_fail = %+duty_girl_monolith_elite_fail% + +[duty_girl_loot_stash]:duty_girl_base +on_init = %+duty_girl_loot_stash_init% +on_complete = %+duty_girl_loot_stash_done% +on_fail = %+duty_girl_loot_stash_fail% + +[duty_girl_capture_the_brirge]:duty_girl_base +on_init = %+duty_girl_capture_the_brirge_init% +on_complete = %+duty_girl_capture_the_brirge_done% +on_fail = %+duty_girl_capture_the_brirge_fail% + diff --git a/mods/Duty Expansion/gamedata/configs/misc/task/tm_z_duty_outpost.ltx b/mods/Duty Expansion/gamedata/configs/misc/task/tm_z_duty_outpost.ltx new file mode 100644 index 00000000..03cf6900 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/misc/task/tm_z_duty_outpost.ltx @@ -0,0 +1,76 @@ + +[red_duty_outpost_trader_task_1] +icon = ui_iconsTotal_mutant +storyline = false +prior = 35 +repeat_timeout = 21600 +stage_complete = 1 +title = red_duty_outpost_trader_task_1_name +descr = red_duty_outpost_trader_task_1_text +job_descr = red_duty_outpost_trader_task_1_about +task_complete_descr = red_duty_outpost_trader_task_1_finish +on_job_descr = %=setup_assault_task(red_duty_outpost_trader_task_1)% +precondition = {=validate_assault_task(red_duty_outpost_trader_task_1:2:1:nil:false:true:nil)} true, false +target_functor = assault_task_target_functor +status_functor = assault_task_status_functor +status_functor_params = monster, monster_predatory_day, monster_predatory_night, monster_vegetarian, monster_zombied_day, monster_zombied_night, monster_special +condlist_0 = {!task_giver_alive(red_duty_outpost_trader_task_1)} fail +on_complete = %=reward_random_money(4500:6000) =complete_task_inc_goodwill(50:dolg) =inc_task_stage(red_duty_outpost_trader_task_1)% +on_fail = %=fail_task_dec_goodwill(50:dolg)% + +[red_duty_outpost_trader_task_2] +icon = ui_inGame2_Odin_vistrel +storyline = false +prior = 45 +repeat_timeout = 21600 +stage_complete = 1 +title = red_duty_outpost_trader_task_2_name +descr = red_duty_outpost_trader_task_2_text +job_descr = red_duty_outpost_trader_task_2_about +task_complete_descr = red_duty_outpost_trader_task_2_finish +on_job_descr = %=setup_bounty_task(red_duty_outpost_trader_task_2:false:true:bandit:monolith:killer)% +target_functor = general_bounty_task +status_functor = bounty_task +condlist_0 = {!task_giver_alive(red_duty_outpost_trader_task_2)} fail +on_complete = %=reward_random_money(8500:9000) =complete_task_inc_goodwill(50:dolg) =inc_task_stage(red_duty_outpost_trader_task_2) =drx_sl_unregister_task_giver(red_duty_outpost_trader_task_2) =drx_sl_reset_stored_task(red_duty_outpost_trader_task_2)% +on_fail = %=fail_task_dec_goodwill(25:dolg) =drx_sl_unregister_task_giver(red_duty_outpost_trader_task_2) =drx_sl_reset_stored_task(red_duty_outpost_trader_task_2)% + +[red_duty_outpost_trader_task_3] +icon = ui_iconsTotal_find_item +storyline = false +prior = 90 +repeat_timeout = 21600 +stage_complete = 1 +title = red_duty_outpost_trader_task_3_name +title_functor = general_fetch_task +descr = red_duty_outpost_trader_task_3_text +descr_functor = general_fetch_task +job_descr = red_duty_outpost_trader_task_3_about +fetch_descr = red_duty_outpost_trader_task_3_about +fetch_func = %=setup_fetch_task(red_duty_outpost_trader_task_3_fetch:mutant_meat:10:10)% +target_functor = general_fetch_task +status_functor = actor_has_fetch_item +task_complete_descr = red_duty_outpost_trader_task_3_finish +condlist_0 = {!task_giver_alive(red_duty_outpost_trader_task_3)} fail +on_complete = %=fetch_reward_and_remove(red_duty_outpost_trader_task_3_fetch:2) =complete_task_inc_goodwill(50:dolg) =inc_task_stage(red_duty_outpost_trader_task_3) =pstor_reset(red_duty_outpost_trader_task_3_fetch)% +on_fail = %=pstor_reset(red_duty_outpost_trader_task_3_fetch)% + +[red_duty_outpost_trader_task_4] +icon = ui_iconsTotal_find_item +storyline = false +prior = 90 +repeat_timeout = 21600 +stage_complete = 1 +title = red_duty_outpost_trader_task_4_name +title_functor = general_fetch_task +descr = red_duty_outpost_trader_task_4_text +descr_functor = general_fetch_task +job_descr = red_duty_outpost_trader_task_4_about +fetch_descr = red_duty_outpost_trader_task_4_about +fetch_func = %=setup_fetch_task(red_duty_outpost_trader_task_4_fetch:mutant_parts_rare:1:1)% +target_functor = general_fetch_task +status_functor = actor_has_fetch_item +task_complete_descr = red_duty_outpost_trader_task_4_finish +condlist_0 = {!task_giver_alive(red_duty_outpost_trader_task_4)} fail +on_complete = %=fetch_reward_and_remove(red_duty_outpost_trader_task_4_fetch:2) =complete_task_inc_goodwill(50:dolg) =inc_task_stage(red_duty_outpost_trader_task_4) =pstor_reset(red_duty_outpost_trader_task_4_fetch)% +on_fail = %=pstor_reset(red_duty_outpost_trader_task_4_fetch)% diff --git a/mods/Duty Expansion/gamedata/configs/scripts/misc_encounter/squad_bloodsucker_val.ltx b/mods/Duty Expansion/gamedata/configs/scripts/misc_encounter/squad_bloodsucker_val.ltx new file mode 100644 index 00000000..b2e2aeb8 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/scripts/misc_encounter/squad_bloodsucker_val.ltx @@ -0,0 +1,130 @@ +[section@squad] +target@base = val_smart_terrain_1_2 + +[section@logic] +logic@krov_a_1 +logic@krov_a_2 +logic@krov_a_3 +logic@krov_a_4 +logic@krov_a_5 +logic@krov_a_6 +logic@krov_b_1 +logic@krov_b_2 +logic@krov_b_3 +logic@krov_b_4 +logic@krov_b_5 +logic@krov_b_6 +logic@krov_c_1 +logic@krov_c_2 +logic@krov_c_3 +logic@krov_c_4 +logic@krov_c_5 +logic@krov_c_6 + +;------------------------------ +; Logic +;------------------------------ +[logic@base] +net_spawn = pt1 + +[logic@krov_a_1]:logic@base +active = mob_home@krov_a_1 +[logic@krov_a_2]:logic@base +active = mob_home@krov_a_2 +[logic@krov_a_3]:logic@base +active = mob_home@krov_a_3 +[logic@krov_a_4]:logic@base +active = mob_home@krov_a_4 +[logic@krov_a_5]:logic@base +active = mob_home@krov_a_5 +[logic@krov_a_6]:logic@base +active = mob_home@krov_a_6 + +[logic@krov_b_1]:logic@base +active = mob_home@krov_b_1 +[logic@krov_b_2]:logic@base +active = mob_home@krov_b_2 +[logic@krov_b_3]:logic@base +active = mob_home@krov_b_3 +[logic@krov_b_4]:logic@base +active = mob_home@krov_b_4 +[logic@krov_b_5]:logic@base +active = mob_home@krov_b_5 +[logic@krov_b_6]:logic@base +active = mob_home@krov_b_6 + +[logic@krov_c_1]:logic@base +active = mob_home@krov_c_1 +[logic@krov_c_2]:logic@base +active = mob_home@krov_c_2 +[logic@krov_c_3]:logic@base +active = mob_home@krov_c_3 +[logic@krov_c_4]:logic@base +active = mob_home@krov_c_4 +[logic@krov_c_5]:logic@base +active = mob_home@krov_c_5 +[logic@krov_c_6]:logic@base +active = mob_home@krov_c_6 + +;------------------------------ +; Scheme +;------------------------------ +[mob_home@base] +target = %=mutant_path()% +move_animation = walk +wait_animation = {-me_misc_bloodsucker_val_aggro} bloodsucker_sleep, stand +combat_ignore_cond = {-me_misc_bloodsucker_val_aggro} true +enemy_ignore_cond = {-me_misc_bloodsucker_val_aggro} true + +on_sound1 = actor|WPN_shoot|10|0| {-me_misc_bloodsucker_val_aggro} %+me_misc_bloodsucker_val_aggro% +on_sound2 = actor|WPN_hit|5|0| {-me_misc_bloodsucker_val_aggro} %+me_misc_bloodsucker_val_aggro% +on_sound3 = actor|WPN_empty|5|0| {-me_misc_bloodsucker_val_aggro} %+me_misc_bloodsucker_val_aggro% +on_sound4 = actor|WPN_reload|5|0| {-me_misc_bloodsucker_val_aggro} %+me_misc_bloodsucker_val_aggro% +on_sound5 = actor|MST_damage|10|0| {-me_misc_bloodsucker_val_aggro} %+me_misc_bloodsucker_val_aggro% +on_sound6 = actor|MST_die|10|0| {-me_misc_bloodsucker_val_aggro} %+me_misc_bloodsucker_val_aggro% + +on_info1 = {-me_misc_bloodsucker_val_aggro =dist_to_actor_le(5) =script(gameplay_misc_encounter:actor_sprint) !script(gameplay_misc_encounter:ray_cast_to_actor_le:5)} %+me_misc_bloodsucker_val_aggro% + + + + +[mob_home@krov_a_1]:mob_home@base +pt1 = pos:172.2,0.10,-273.7 dir:0 +[mob_home@krov_a_2]:mob_home@base +pt1 = pos:172.9,0.10,-272.3 dir:45 +[mob_home@krov_a_3]:mob_home@base +pt1 = pos:171.5,0.10,-271.6 dir:-90 +[mob_home@krov_a_4]:mob_home@base +pt1 = pos:172.2,0.10,-270.2 dir:-135 +[mob_home@krov_a_5]:mob_home@base +pt1 = pos:171.5,0.10,-268.8 dir:90 +[mob_home@krov_a_6]:mob_home@base +pt1 = pos:172.9,0.10,-268.1 dir:45 + +[mob_home@krov_b_1]:mob_home@base +pt1 = pos:172.9,0.10,-264.6 dir:180 +[mob_home@krov_b_2]:mob_home@base +pt1 = pos:175.0,0.10,-264.6 dir:180 +[mob_home@krov_b_3]:mob_home@base +pt1 = pos:175.7,0.10,-266.0 dir:90 +[mob_home@krov_b_4]:mob_home@base +pt1 = pos:174.3,0.10,-268.8 dir:0 +[mob_home@krov_b_5]:mob_home@base +pt1 = pos:174.3,0.10,-271.6 dir:135 +[mob_home@krov_b_6]:mob_home@base +pt1 = pos:175.7,0.10,-273.7 dir:90 + +[mob_home@krov_c_1]:mob_home@base +pt1 = pos:171.5,0.10,-277.9 dir:-45 +[mob_home@krov_c_2]:mob_home@base +pt1 = pos:172.9,0.10,-278.6 dir:90 +[mob_home@krov_c_3]:mob_home@base +pt1 = pos:174.3,0.10,-278.6 dir:0 +[mob_home@krov_c_4]:mob_home@base +pt1 = pos:175.7,0.10,-277.2 dir:0 +[mob_home@krov_c_5]:mob_home@base +pt1 = pos:175.0,0.10,-275.8 dir:0 +[mob_home@krov_c_6]:mob_home@base +pt1 = pos:172.9,0.10,-276.5 dir:180 + + diff --git a/mods/Duty Expansion/gamedata/configs/scripts/misc_encounter/squad_lure_prey.ltx b/mods/Duty Expansion/gamedata/configs/scripts/misc_encounter/squad_lure_prey.ltx new file mode 100644 index 00000000..a19cc158 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/scripts/misc_encounter/squad_lure_prey.ltx @@ -0,0 +1,107 @@ +[section@squad] +target@base = rad2_prip_teleport + +[section@logic] +logic@boss_1 +logic@boss_2 +logic@bait + +;------------------------------ +; Logic +;------------------------------ +[logic@base] +net_spawn = pt1 + +[logic@boss_1]:logic@base +suitable = {=check_squad_name(squad_lure_prey_controller_1)} true +active = mob_home@boss_1 +on_death = death@boss_1 + +[logic@boss_2]:logic@base +suitable = {=check_squad_name(squad_lure_prey_controller_2)} true +active = mob_home@boss_2 +on_death = death@boss_2 + +[logic@bait]:logic@base +suitable = {=check_squad_name(squad_lure_prey_phantom)} true +active = {+me_lure_prey_bait_1} beh@bait_1, {+me_lure_prey_bait_2} beh@bait_2, {+me_lure_prey_bait_3} beh@bait_3, {+me_lure_prey_bait_4} beh@bait_4, beh@bait_5 + + +;------------------------------ +; Scheme +;------------------------------ +[mob_home@boss] +target = %=mutant_path()% nil +before_hit = gameplay_misc_encounter@lure_prey_before_hit +combat_ignore_cond = {-me_lure_prey_argo} %=script(gameplay_misc_encounter:kill_common_enemy)% true +enemy_ignore_cond = {-me_lure_prey_argo} true + +[mob_home@boss_1]:mob_home@boss +pt1 = pos:660.8,-43.80,168.7 dir:0 +on_info1 = {+me_lure_prey_argo -me_lure_prey_boss} %+me_lure_prey_boss =create_squad(squad_lure_prey_controller_2:rad2_prip_teleport)% +on_info2 = {-me_lure_prey_argo =see_actor()} %+me_lure_prey_argo% + +[mob_home@boss_2]:mob_home@boss +pt1 = pos:603.4,-43.80,184.8 dir:-90 + +[death@boss_1] +on_info1 = {!squad_exist(squad_lure_prey_controller_2) +me_lure_prey_bait_1} %-me_lure_prey_bait_1% +on_info2 = {!squad_exist(squad_lure_prey_controller_2) +me_lure_prey_bait_2} %-me_lure_prey_bait_2% +on_info3 = {!squad_exist(squad_lure_prey_controller_2) +me_lure_prey_bait_3} %-me_lure_prey_bait_3% +on_info4 = {!squad_exist(squad_lure_prey_controller_2) +me_lure_prey_bait_4} %-me_lure_prey_bait_4% +on_info5 = {!squad_exist(squad_lure_prey_controller_2) +me_lure_prey_argo} %-me_lure_prey_argo% +on_info6 = {!squad_exist(squad_lure_prey_controller_2)} %+me_lure_prey_dead% + +[death@boss_2] +on_info1 = {!squad_exist(squad_lure_prey_controller_1) +me_lure_prey_bait_1} %-me_lure_prey_bait_1% +on_info2 = {!squad_exist(squad_lure_prey_controller_1) +me_lure_prey_bait_2} %-me_lure_prey_bait_2% +on_info3 = {!squad_exist(squad_lure_prey_controller_1) +me_lure_prey_bait_3} %-me_lure_prey_bait_3% +on_info4 = {!squad_exist(squad_lure_prey_controller_1) +me_lure_prey_bait_4} %-me_lure_prey_bait_4% +on_info5 = {!squad_exist(squad_lure_prey_controller_1) +me_lure_prey_argo} %-me_lure_prey_argo% +on_info6 = {!squad_exist(squad_lure_prey_controller_1)} %+me_lure_prey_dead% + + +[beh@base] +dont_keep_items = true +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +combat_ignore_keep_when_attacked = true +path_end = loop +walk_dist = 0 +jog_dist = 0 +run_anim = rush +meet = no_meet +before_hit = invulnerable +combat_ignore_cond = true +enemy_ignore_cond = true + +[beh@bait]:beh@base +target = %=animpoint()% nil +on_info3 = %=script(gameplay_misc_encounter:lure_prey_set_stalker)% +on_info4 = {+me_lure_prey_argo =squad_exist(squad_lure_prey_phantom)} %=remove_squad(squad_lure_prey_phantom)% +on_info5 = {!squad_exist(squad_lure_prey_controller_1) =squad_exist(squad_lure_prey_phantom)} %=remove_squad(squad_lure_prey_phantom)% + +[beh@bait_1]:beh@bait +pt1 = 999999,hello_wpn | pos:660.1,-43.80,182.0 dir:90 +on_info1 = {=dist_to_actor_le(20) -me_lure_prey_argo} %+me_lure_prey_argo% + +[beh@bait_2]:beh@bait +pt1 = 999999,hello_wpn | pos:603.4,-43.80,184.8 dir:90 +on_info1 = {=dist_to_actor_le(10) -me_lure_prey_bait_1} %+me_lure_prey_bait_1% +on_info2 = {+me_lure_prey_bait_1} %=script(xr_logic_ex:set_position:beh@bait_1:pt1)% beh@bait_1 + +[beh@bait_3]:beh@bait +pt1 = 999999,hello_wpn | pos:557.9,-42.00,172.9 dir:290 +on_info1 = {=dist_to_actor_le(10) -me_lure_prey_bait_2} %+me_lure_prey_bait_2% +on_info2 = {+me_lure_prey_bait_2} %=script(xr_logic_ex:set_position:beh@bait_2:pt1)% beh@bait_2 + +[beh@bait_4]:beh@bait +pt1 = 999999,hello_wpn | pos:528.5,-39.50,131.6 dir:150 +on_info1 = {=dist_to_actor_le(10) -me_lure_prey_bait_3} %+me_lure_prey_bait_3% +on_info2 = {+me_lure_prey_bait_3} %=script(xr_logic_ex:set_position:beh@bait_3:pt1)% beh@bait_3 + +[beh@bait_5]:beh@bait +pt1 = 999999,hello_wpn | pos:560.0,-44.00,51.8 dir:210 +on_info1 = {=dist_to_actor_le(10) -me_lure_prey_bait_4} %+me_lure_prey_bait_4% +on_info2 = {+me_lure_prey_bait_4} %=script(xr_logic_ex:set_position:beh@bait_4:pt1)% beh@bait_4 diff --git a/mods/Duty Expansion/gamedata/configs/scripts/misc_encounter/squad_sleeping_snork.ltx b/mods/Duty Expansion/gamedata/configs/scripts/misc_encounter/squad_sleeping_snork.ltx new file mode 100644 index 00000000..04a3e1fa --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/scripts/misc_encounter/squad_sleeping_snork.ltx @@ -0,0 +1,128 @@ +[section@squad] +target@base = jup_b47 + +[section@logic] +logic@mutant_1 +logic@mutant_2 +logic@mutant_3 +logic@mutant_4 +logic@mutant_5 +logic@mutant_6 +logic@mutant_7 +logic@mutant_8 +logic@mutant_9 +logic@mutant_10 +logic@mutant_11 +logic@mutant_12 +[test] +logic@mutant_13 +logic@mutant_14 +logic@mutant_15 +logic@mutant_16 +logic@mutant_17 +logic@mutant_18 + +;------------------------------ +; Logic +;------------------------------ +[logic@base] +net_spawn = pt1 + +[logic@mutant_1]:logic@base +active = mob_home@mutant_1 +[logic@mutant_2]:logic@base +active = mob_home@mutant_2 +[logic@mutant_3]:logic@base +active = mob_home@mutant_3 +[logic@mutant_4]:logic@base +active = mob_home@mutant_4 +[logic@mutant_5]:logic@base +active = mob_home@mutant_5 +[logic@mutant_6]:logic@base +active = mob_home@mutant_6 +[logic@mutant_7]:logic@base +active = mob_home@mutant_7 +[logic@mutant_8]:logic@base +active = mob_home@mutant_8 +[logic@mutant_9]:logic@base +active = mob_home@mutant_9 +[logic@mutant_10]:logic@base +active = mob_home@mutant_10 +[logic@mutant_11]:logic@base +active = mob_home@mutant_11 +[logic@mutant_12]:logic@base +active = mob_home@mutant_12 +[logic@mutant_13]:logic@base +active = mob_home@mutant_13 +[logic@mutant_14]:logic@base +active = mob_home@mutant_14 +[logic@mutant_15]:logic@base +active = mob_home@mutant_15 +[logic@mutant_16]:logic@base +active = mob_home@mutant_16 +[logic@mutant_17]:logic@base +active = mob_home@mutant_17 +[logic@mutant_18]:logic@base +active = mob_home@mutant_18 + +;------------------------------ +; Scheme +;------------------------------ +[mob_home@base] +target = %=mutant_path()% +move_animation = walk +wait_animation = {-me_sleeping_snork_fight} bloodsucker_sleep, stand +combat_ignore_cond = {-me_sleeping_snork_fight} true +enemy_ignore_cond = {-me_sleeping_snork_fight} true + +on_sound1 = actor|WPN_shoot|10|0| {-me_sleeping_snork_fight} %+me_sleeping_snork_fight% +on_sound2 = actor|WPN_hit|5|0| {-me_sleeping_snork_fight} %+me_sleeping_snork_fight% +on_sound3 = actor|WPN_empty|5|0| {-me_sleeping_snork_fight} %+me_sleeping_snork_fight% +on_sound4 = actor|WPN_reload|5|0| {-me_sleeping_snork_fight} %+me_sleeping_snork_fight% +on_sound5 = actor|MST_damage|10|0| {-me_sleeping_snork_fight} %+me_sleeping_snork_fight% +on_sound6 = actor|MST_die|10|0| {-me_sleeping_snork_fight} %+me_sleeping_snork_fight% + +on_info1 = {-me_sleeping_snork_fight =dist_to_actor_le(5) =script(gameplay_misc_encounter:actor_sprint) !script(gameplay_misc_encounter:ray_cast_to_actor_le:5)} %+me_sleeping_snork_fight% + + + + +[mob_home@mutant_1]:mob_home@base +pt1 = pos:398.3,39.34,-191.1 dir:-90 +[mob_home@mutant_2]:mob_home@base +pt1 = pos:400.4,39.34,-192.5 dir:45 +[mob_home@mutant_3]:mob_home@base +pt1 = pos:398.3,39.37,-195.3 dir:-90 +[mob_home@mutant_4]:mob_home@base +pt1 = pos:399.0,39.34,-199.5 dir:-135 +[mob_home@mutant_5]:mob_home@base +pt1 = pos:400.4,39.34,-202.3 dir:90 +[mob_home@mutant_6]:mob_home@base +pt1 = pos:398.3,39.34,-204.4 dir:45 + +[mob_home@mutant_7]:mob_home@base +pt1 = pos:401.1,39.34,-205.8 dir:45 +[mob_home@mutant_8]:mob_home@base +pt1 = pos:400.4,39.34,-210.7 dir:45 +[mob_home@mutant_9]:mob_home@base +pt1 = pos:398.3,39.34,-212.8 dir:45 +[mob_home@mutant_10]:mob_home@base +pt1 = pos:400.4,39.34,-214.2 dir:45 +[mob_home@mutant_11]:mob_home@base +pt1 = pos:399.0,39.34,-215.6 dir:45 +[mob_home@mutant_12]:mob_home@base +pt1 = pos:401.1,39.34,-215.6 dir:45 + +[mob_home@mutant_13]:mob_home@base +pt1 = pos:172.9,0.10,-268.1 dir:45 +[mob_home@mutant_14]:mob_home@base +pt1 = pos:172.9,0.10,-268.1 dir:45 +[mob_home@mutant_15]:mob_home@base +pt1 = pos:172.9,0.10,-268.1 dir:45 +[mob_home@mutant_16]:mob_home@base +pt1 = pos:172.9,0.10,-268.1 dir:45 +[mob_home@mutant_17]:mob_home@base +pt1 = pos:172.9,0.10,-268.1 dir:45 +[mob_home@mutant_18]:mob_home@base +pt1 = pos:172.9,0.10,-268.1 dir:45 + diff --git a/mods/Duty Expansion/gamedata/configs/scripts/red_forest/light_white_12m_glass.ltx b/mods/Duty Expansion/gamedata/configs/scripts/red_forest/light_white_12m_glass.ltx new file mode 100644 index 00000000..b249c100 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/scripts/red_forest/light_white_12m_glass.ltx @@ -0,0 +1,14 @@ +[logic] +active = ph_idle@base + +[ph_idle@base] +on_info = %=script(xr_dynamic_object:light:lights_white_12m_glass:bone_lamp:1)% + +[lights_white_12m_glass] +range = 12 +color = 4294960053 +shadow = true +;volumetric = true +;volumetric_quality = 0.7 +;volumetric_distance = 2.5 +;volumetric_intensity = 0.6 \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/configs/scripts/red_forest/red_bridge_outpost_logic.ltx b/mods/Duty Expansion/gamedata/configs/scripts/red_forest/red_bridge_outpost_logic.ltx new file mode 100644 index 00000000..2201fa65 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/scripts/red_forest/red_bridge_outpost_logic.ltx @@ -0,0 +1,377 @@ + +[logic@base] +net_spawn = pt1 + +;================================================== +[beh@base] +target = waypoint +path_end = loop +walk_dist = 0 +jog_dist = 0 +run_anim = patrol +meet = meet@base + +[meet@base] +close_snd_hello = {=check_npc_name(monolith)} nil, {=is_wounded} nil, {!is_squad_commander} nil, {=actor_enemy} nil, {=actor_has_weapon} meet_hide_weapon, meet_hello +close_snd_bye = nil +close_anim = nil +close_victim = nil +close_distance = 0 +far_anim = nil +far_victim = nil +far_distance = 0 +meet_on_talking = false +use = {=is_squad_commander !has_enemy !actor_enemy =dist_to_actor_le(3)} true + +[beh@animpoint]:beh@base +target = %=animpoint()% nil + + + + +[logic@guard]:logic@base +suitable = {=npc_squad_name(squad_red_duty_outpost_guard) !surge_started()} true +prior = 200 + +[logic@guard_1]:logic@guard +active = beh@guard_carrier +[logic@guard_2]:logic@guard +active = beh@guard_patrol +[logic@guard_3]:logic@guard +active = beh@guard_truck_1 +[logic@guard_4]:logic@guard +active = beh@guard_truck_2 +[logic@guard_5]:logic@guard +active = beh@guard_truck_3 +[logic@guard_6]:logic@guard +active = beh@guard_truck_4 +[logic@guard_7]:logic@guard +active = beh@guard_tower_1 +[logic@guard_8]:logic@guard +active = beh@guard_tower_2 +[logic@guard_9]:logic@guard +active = beh@guard_bridge_1 +[logic@guard_10]:logic@guard +active = beh@guard_bridge_2 +[logic@guard_11]:logic@guard +active = beh@guard_bridge_3 +[logic@guard_12]:logic@guard +active = beh@guard_path_1 +[logic@guard_13]:logic@guard +active = beh@guard_path_2 +[logic@guard_14]:logic@guard +active = beh@guard_path_3 + + +[beh@guard]:beh@animpoint +meet = no_meet + +[beh@guard_carrier]:beh@guard +pt1 = 10000,dynamite | pos:-104.3,0.00,-239.4 dir:-90 +pt2 = 10000,dynamite | pos:-115.5,-0.15,-251.3 dir:180 +pt3 = 10000,dynamite | pos:-115.5,0.47,-258.3 dir:180 + +[beh@guard_patrol]:beh@guard +pt1 = 10000,guard | pos:-111.3,-0.22,-252.7 dir:0 +pt2 = 10000,guard | pos:-94.5,0.28,-275.1 dir:-150 + +[beh@guard_truck_1]:beh@guard +pt1 = 999999,binocular | pos:-101.5,1.75,-249.2 dir:-45 +[beh@guard_truck_2]:beh@guard +pt1 = 999999,guard | pos:-100.1,0.06,-246.4 dir:-60 +[beh@guard_truck_3]:beh@guard +pt1 = 999999,guard | pos:-116.9,-0.44,-246.4 dir:-90 +[beh@guard_truck_4]:beh@guard +pt1 = 999999,animpoint_stay_wall | pos:-101.5,0.02,-240.8 dir:45 animpoint:pos + +[beh@guard_tower_1]:beh@guard +pt1 = 10000,guard | pos:-122.5,4.72,-252.7 dir:90 +pt2 = 10000,guard | pos:-114.8,4.72,-252.7 dir:-90 +[beh@guard_tower_2]:beh@guard +pt1 = 999999,binocular | pos:-122.5,4.72,-261.1 dir:90 + + +[beh@guard_bridge_1]:beh@guard +pt1 = 999999,guard | pos:-125.3,0.27,-272.3 dir:90 +[beh@guard_bridge_2]:beh@guard +pt1 = 999999,guard | pos:-120.4,0.18,-265.3 dir:90 +[beh@guard_bridge_3]:beh@guard +pt1 = 999999,guard | pos:-112.0,0.27,-273.0 dir:90 + + +[beh@guard_path_1]:beh@guard +pt1 = 999999,guard | pos:-93.1,0.38,-280.7 dir:-150 +[beh@guard_path_2]:beh@guard +pt1 = 999999,guard | pos:-102.9,0.12,-281.4 dir:-135 +[beh@guard_path_3]:beh@guard +pt1 = 999999,guard | pos:-109.9,-0.18,-287.7 dir:-135 + + + + + +[logic@surge_tower]:logic@base +suitable = {=surge_started() =npc_squad_name(squad_red_duty_outpost_guard)} true +prior = 200 + +[logic@surge_tower_1]:logic@surge_tower +active = beh@surge_tower_1 +[logic@surge_tower_2]:logic@surge_tower +active = beh@surge_tower_2 +[logic@surge_tower_3]:logic@surge_tower +active = beh@surge_tower_3 +[logic@surge_tower_4]:logic@surge_tower +active = beh@surge_tower_4 +[logic@surge_tower_5]:logic@surge_tower +active = beh@surge_tower_5 +[logic@surge_tower_6]:logic@surge_tower +active = beh@surge_tower_6 +[logic@surge_tower_7]:logic@surge_tower +active = beh@surge_tower_7 +[logic@surge_tower_8]:logic@surge_tower +active = beh@surge_tower_8 +[logic@surge_tower_9]:logic@surge_tower +active = beh@surge_tower_9 +[logic@surge_tower_10]:logic@surge_tower +active = beh@surge_tower_10 +[logic@surge_tower_11]:logic@surge_tower +active = beh@surge_tower_11 +[logic@surge_tower_12]:logic@surge_tower +active = beh@surge_tower_12 +[logic@surge_tower_13]:logic@surge_tower +active = beh@surge_tower_13 +[logic@surge_tower_14]:logic@surge_tower +active = beh@surge_tower_14 + + +[beh@surge_tower]:beh@animpoint +run_anim = rush +meet = no_meet + +[beh@surge_tower_1]:beh@surge_tower +pt1 = 999999,animpoint_sit | pos:-116.2,4.72,-254.8 dir:180 animpoint:pos +[beh@surge_tower_2]:beh@surge_tower +pt1 = 999999,animpoint_sit | pos:-115.5,4.72,-256.2 dir:90 animpoint:pos +[beh@surge_tower_3]:beh@surge_tower +pt1 = 999999,animpoint_sit | pos:-116.9,4.72,-259.0 dir:0 animpoint:pos +[beh@surge_tower_4]:beh@surge_tower +pt1 = 999999,animpoint_sit | pos:-119.7,4.72,-256.2 dir:-90 animpoint:pos +[beh@surge_tower_5]:beh@surge_tower +pt1 = 999999,animpoint_sit | pos:-119.0,4.72,-254.8 dir:180 animpoint:pos +[beh@surge_tower_6]:beh@surge_tower +pt1 = 999999,animpoint_sit | pos:-119.7,4.72,-259.0 dir:-45 animpoint:pos +[beh@surge_tower_7]:beh@surge_tower +pt1 = 999999,animpoint_sit | pos:-116.2,0.47,-256.2 dir:180 animpoint:pos +[beh@surge_tower_8]:beh@surge_tower +pt1 = 999999,animpoint_sit | pos:-115.5,0.47,-257.6 dir:90 animpoint:pos +[beh@surge_tower_9]:beh@surge_tower +pt1 = 999999,animpoint_sit | pos:-119.0,0.47,-259.0 dir:-90 animpoint:pos +[beh@surge_tower_10]:beh@surge_tower +pt1 = 999999,animpoint_sit | pos:-119.0,0.47,-257.6 dir:-90 animpoint:pos +[beh@surge_tower_11]:beh@surge_tower +pt1 = 999999,guard | pos:-117.6,0.47,-257.6 +[beh@surge_tower_12]:beh@surge_tower +pt1 = 999999,guard | pos:-116.9,0.47,-257.6 +[beh@surge_tower_13]:beh@surge_tower +pt1 = 999999,guard | pos:-117.6,0.47,-258.3 +[beh@surge_tower_14]:beh@surge_tower +pt1 = 999999,guard | pos:-116.9,0.47,-258.3 + + + + +[logic@visitor]:logic@base +suitable = {+red_bridge_outpost} true +prior = 100 + +[beh@visitor]:beh@animpoint + + + + +[logic@visitor_1]:logic@visitor +active = beh@visitor_1 +[logic@visitor_2]:logic@visitor +active = beh@visitor_2 +[logic@visitor_3]:logic@visitor +active = beh@visitor_3 +[logic@visitor_4]:logic@visitor +active = beh@visitor_4 +[logic@visitor_5]:logic@visitor +active = beh@visitor_5 +[logic@visitor_6]:logic@visitor +active = beh@visitor_6 +[logic@visitor_7]:logic@visitor +active = beh@visitor_7 +[logic@visitor_8]:logic@visitor +active = beh@visitor_8 + +[beh@visitor_1]:beh@visitor +pt1 = 999999,animpoint_sit_all@random,state | pos:-103.6,-0.81,-203.0 dir:0 animpoint:pos +[beh@visitor_2]:beh@visitor +pt1 = 999999,animpoint_sit_normal@random,state | pos:-102.2,-0.81,-201.6 dir:-90 animpoint:pos +[beh@visitor_3]:beh@visitor +pt1 = 999999,animpoint_sit_normal@random,state | pos:-102.2,-0.81,-200.9 dir:-90 animpoint:pos +[beh@visitor_4]:beh@visitor +pt1 = 999999,animpoint_sit_normal@random,state | pos:-102.2,-0.81,-200.2 dir:-90 animpoint:pos +[beh@visitor_5]:beh@visitor +pt1 = 999999,animpoint_sit_all@random,state | pos:-102.2,-0.81,-198.8 dir:135 animpoint:pos +[beh@visitor_6]:beh@visitor +pt1 = 999999,animpoint_sit_all@random,state | pos:-103.6,-0.81,-198.8 dir:180 animpoint:pos +[beh@visitor_7]:beh@visitor +pt1 = 999999,animpoint_sit_all@random,state | pos:-105.0,-0.81,-198.8 dir:225 animpoint:pos +[beh@visitor_8]:beh@visitor +pt1 = 999999,fold_arms | pos:-102.9,-0.81,-198.1 dir:180 animpoint:pos + + + + +[logic@visitor_10]:logic@visitor +active = beh@visitor_10 +[logic@visitor_11]:logic@visitor +active = beh@visitor_11 +[logic@visitor_12]:logic@visitor +active = beh@visitor_12 +[logic@visitor_13]:logic@visitor +active = beh@visitor_13 +[logic@visitor_14]:logic@visitor +active = beh@visitor_14 + +[beh@campfire]:beh@visitor +turn_on_campfire = true + +[beh@visitor_10]:beh@campfire +pt1 = 999999,animpoint_sit_ass@random@roast,state | pos:-92.4,-0.81,-193.9 look:-93.8,-0.81,-192.5 animpoint:pos +[beh@visitor_11]:beh@campfire +pt1 = 999999,animpoint_sit_ass@random@roast,state | pos:-91.7,-0.81,-191.8 look:-93.8,-0.81,-192.5 animpoint:pos +[beh@visitor_12]:beh@campfire +pt1 = 999999,animpoint_sit_ass@random@roast,state | pos:-93.1,-0.81,-190.4 look:-93.8,-0.81,-192.5 animpoint:pos +[beh@visitor_13]:beh@campfire +pt1 = 999999,animpoint_sit_ass@random@roast,state | pos:-95.2,-0.81,-190.4 look:-93.8,-0.81,-192.5 animpoint:pos +[beh@visitor_14]:beh@campfire +pt1 = 999999,animpoint_stay_wall@random,state | pos:-96.6,-0.81,-193.9 dir:180 animpoint:pos + + + + +[logic@customer_1]:logic@visitor +active = beh@customer_1 +[logic@customer_2]:logic@visitor +active = beh@customer_2 + +[beh@customer_1]:beh@visitor +pt1 = 999999,animpoint_sit_normal_weapon,state | pos:-119.0,0.47,-256.2 dir:90 animpoint:pos +[beh@customer_2]:beh@visitor +pt1 = 999999,animpoint_sit_normal_weapon,state | pos:-119.0,0.47,-255.5 dir:90 animpoint:pos + + + + +[logic@wounded_1]:logic@visitor +active = beh@wounded_1 +[logic@wounded_2]:logic@visitor +active = beh@wounded_2 +[logic@wounded_3]:logic@visitor +active = beh@wounded_3 + +[beh@wounded]:beh@visitor +meet = no_meet + +[beh@wounded_1]:beh@wounded +pt1 = 999999,wounded_heavy | pos:-102.9,-0.70,-182.7 dir:90 animpoint:pos +[beh@wounded_2]:beh@wounded +pt1 = 999999,wounded_heavy | pos:-101.5,-0.70,-182.7 dir:90 animpoint:pos +[beh@wounded_3]:beh@wounded +pt1 = 999999,wounded_heavy | pos:-100.1,-0.70,-182.7 dir:90 animpoint:pos + + + + +[logic@research]:logic@base +suitable = {-red_bridge_outpost} false, {=is_night()} false, {=npc_community(csky)} true, {=npc_community(ecolog)} true +prior = 110 + +[logic@research_1]:logic@research +active = beh@research_1 +[logic@research_2]:logic@research +active = beh@research_2 + +[beh@research_1]:beh@visitor +pt1 = 999999,scaner_stand | pos:-128.1,-6.13,-273.0 dir:30 +on_info = {=surge_started()} beh@surge_1 +[beh@research_2]:beh@visitor +pt1 = 999999,scaner_crouch | pos:-126.7,-5.52,-271.6 dir:60 +on_info = {=surge_started()} beh@surge_2 + + + + +[logic@drunk]:logic@visitor +suitable = {+red_bridge_outpost =is_night()} true +prior = 110 +active = beh@drunk + +[beh@drunk]:beh@visitor +pt1 = 999999,drunk_behindwall | pos:-102.2,0.04,-236.7 dir:210 animpoint:pos +on_info = {=surge_started()} beh@surge_3 + + + + +[logic@outside_1]:logic@visitor +active = beh@outside_1 +[logic@outside_2]:logic@visitor +active = beh@outside_2 +[logic@outside_3]:logic@visitor +active = beh@outside_3 + +[beh@outside_1]:beh@visitor +pt1 = 999999,animpoint_stay_wall@random,state | pos:-104.2,-0.12,-246.4 dir:-90 animpoint:pos +on_info = {=surge_started()} beh@surge_4 +[beh@outside_2]:beh@visitor +pt1 = 999999,animpoint_sit_high@random,state | pos:-104.2,-0.10,-245.0 dir:-90 animpoint:pos +on_info = {=surge_started()} beh@surge_5 +[beh@outside_3]:beh@visitor +pt1 = 999999,animpoint_sit_normal@random,state | pos:-105.1,-0.15,-245.0 dir:90 animpoint:pos +on_info = {=surge_started()} beh@surge_6 + + + + + + +[beh@surge]:beh@visitor +run_anim = rush + +[beh@surge_1]:beh@surge +pt1 = 999999,animpoint_sit | pos:-116.2,-0.64,-225.4 dir:0 animpoint:pos +on_info = {!surge_started()} beh@research_1 +[beh@surge_2]:beh@surge +pt1 = 999999,animpoint_sit | pos:-114.8,-0.64,-224.7 dir:90 animpoint:pos +on_info = {!surge_started()} beh@research_2 +[beh@surge_3]:beh@surge +pt1 = 999999,animpoint_sit | pos:-114.8,-0.64,-223.3 dir:90 animpoint:pos +on_info = {!surge_started()} beh@drunk +[beh@surge_4]:beh@surge +pt1 = 999999,animpoint_sit | pos:-113.4,-0.64,-219.8 dir:60 animpoint:pos +on_info = {!surge_started()} beh@outside_1 +[beh@surge_5]:beh@surge +pt1 = 999999,animpoint_sit | pos:-120.4,-0.64,-223.3 dir:-90 animpoint:pos +on_info = {!surge_started()} beh@outside_2 +[beh@surge_6]:beh@surge +pt1 = 999999,animpoint_sit | pos:-120.4,-0.64,-221.9 dir:-90 animpoint:pos +on_info = {!surge_started()} beh@outside_3 +[beh@surge_7]:beh@surge +pt1 = 999999,animpoint_sit | pos:-119.7,-0.64,-219.8 dir:-90 animpoint:pos +[beh@surge_8]:beh@surge +pt1 = 999999,animpoint_sit | pos:-119.0,-0.64,-217.7 dir:-90 animpoint:pos +[beh@surge_9]:beh@surge +pt1 = 999999,animpoint_sit | pos:-117.6,-0.64,-216.3 dir:-90 animpoint:pos + + + + + + + + diff --git a/mods/Duty Expansion/gamedata/configs/scripts/red_forest/red_bridge_outpost_radio.ltx b/mods/Duty Expansion/gamedata/configs/scripts/red_forest/red_bridge_outpost_radio.ltx new file mode 100644 index 00000000..6f2a227b --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/scripts/red_forest/red_bridge_outpost_radio.ltx @@ -0,0 +1,18 @@ +[logic] +active = ph_idle@play + +[ph_idle@base] +nonscript_usable = true + +[ph_idle@play]:ph_idle@base +on_info = %=play_sound(red_bridge_outpost_radio)% +tips = Use +on_use = %=stop_sound()% ph_idle@stop + +[ph_idle@stop]:ph_idle@base +tips = Use +on_use = ph_idle@play + +[collide] +ignore_static + diff --git a/mods/Duty Expansion/gamedata/configs/scripts/red_forest/red_bridge_outpost_rupor.ltx b/mods/Duty Expansion/gamedata/configs/scripts/red_forest/red_bridge_outpost_rupor.ltx new file mode 100644 index 00000000..f0d72a0b --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/scripts/red_forest/red_bridge_outpost_rupor.ltx @@ -0,0 +1,14 @@ +[logic] +active = {=is_day()} ph_idle@play, ph_idle@stop + +[ph_idle@play] +nonscript_usable = false +on_info = {=is_day()} %=play_sound(red_bridge_outpost_bar_dolg_speech)%, %=stop_sound()% ph_idle@stop + +[ph_idle@stop] +nonscript_usable = false +on_info = {=is_day()} ph_idle@play + +[collide] +ignore_static + diff --git a/mods/Duty Expansion/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_bridge.ltx b/mods/Duty Expansion/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_bridge.ltx new file mode 100644 index 00000000..f49a78fc --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_bridge.ltx @@ -0,0 +1,143 @@ +[smart_terrain] +squad_id = 11 +max_population = 12 +respawn_idle = 86400 + +;faction_controlled = army, bandit, csky, dolg, ecolog, freedom, killer, monolith, stalker, renegade, greh +;default_faction = bandit +;faction_respawn_num = 2 + +respawn_params = respawn@red_smart_terrain_bridge + +[respawn@red_smart_terrain_bridge] +spawn@npc_1 +spawn@npc_2 +spawn@npc_3 +spawn@guard_1 +spawn@guard_2 +spawn@visitor_1 +spawn@visitor_2 +spawn@visitor_3 +spawn@visitor_4 +spawn@outpost +spawn@general + +[spawn@npc_1] +spawn_squads = squad_red_duty_outpost_trader +spawn_num = {+red_bridge_outpost !squad_exist(squad_red_duty_outpost_trader)} 1, 0 + +[spawn@npc_2] +spawn_squads = squad_red_duty_outpost_medic +spawn_num = {+red_bridge_outpost !squad_exist(squad_red_duty_outpost_medic)} 1, 0 + +[spawn@npc_3] +spawn_squads = squad_red_duty_outpost_guide +spawn_num = {+red_bridge_outpost !squad_exist(squad_red_duty_outpost_guide)} 1, 0 + +[spawn@guard_1] +spawn_squads = squad_red_duty_outpost_guard_1 +spawn_num = {+red_bridge_outpost !squad_exist(squad_red_duty_outpost_guard_1)} 1, 0 + +[spawn@guard_2] +spawn_squads = squad_red_duty_outpost_guard_2 +spawn_num = {+red_bridge_outpost !squad_exist(squad_red_duty_outpost_guard_2)} 1, 0 + +[spawn@visitor_1] +spawn_squads = squad_red_duty_outpost_visitor_1 +spawn_num = {+red_bridge_outpost !squad_exist(squad_red_duty_outpost_visitor_1)} 1, 0 + +[spawn@visitor_2] +spawn_squads = squad_red_duty_outpost_visitor_2 +spawn_num = {+red_bridge_outpost !squad_exist(squad_red_duty_outpost_visitor_2)} 1, 0 + +[spawn@visitor_3] +spawn_squads = squad_red_duty_outpost_visitor_3 +spawn_num = {+red_bridge_outpost !squad_exist(squad_red_duty_outpost_visitor_3)} 1, 0 + +[spawn@visitor_4] +spawn_squads = squad_red_duty_outpost_visitor_4 +spawn_num = {+red_bridge_outpost !squad_exist(squad_red_duty_outpost_visitor_4)} 1, 0 + +[spawn@outpost] +spawn_squads = stalker_sim_squad_advanced, stalker_sim_squad_veteran, duty_sim_squad_advanced, duty_sim_squad_veteran, csky_sim_squad_advanced, csky_sim_squad_veteran, ecolog_sim_squad_advanced, ecolog_sim_squad_veteran +spawn_num = {+red_bridge_outpost} 2, 0 + +[spawn@general] +spawn_squads = monolith_sim_squad_novice, monolith_sim_squad_advanced, monolith_sim_squad_veteran +spawn_num = {-red_bridge_outpost} 2, 0 + + +[on_changing_level] +on_info1 = %=script(gameplay_duty_outpost:clean_mess) =script(xr_dynamic_object:dynamic_object:misc\duty_outpost_object.ltx)% +on_info2 = %=script(gameplay_duty_outpost:reinforce_squad:squad_red_duty_outpost_guard_1:1)% +on_info3 = %=script(gameplay_duty_outpost:reinforce_squad:squad_red_duty_outpost_guard_2:1)% +on_info4 = %=script(gameplay_duty_outpost:reinforce_squad:squad_red_duty_outpost_visitor_1:1)% +on_info5 = %=script(gameplay_duty_outpost:reinforce_squad:squad_red_duty_outpost_visitor_2:1)% +on_info6 = %=script(gameplay_duty_outpost:reinforce_squad:squad_red_duty_outpost_visitor_3:1)% +on_info7 = %=script(gameplay_duty_outpost:reinforce_squad:squad_red_duty_outpost_visitor_4:1)% + +[exclusive] +guard_1 = red_forest\red_bridge_outpost_logic.ltx +guard_2 = red_forest\red_bridge_outpost_logic.ltx +guard_3 = red_forest\red_bridge_outpost_logic.ltx +guard_4 = red_forest\red_bridge_outpost_logic.ltx +guard_5 = red_forest\red_bridge_outpost_logic.ltx +guard_6 = red_forest\red_bridge_outpost_logic.ltx +guard_7 = red_forest\red_bridge_outpost_logic.ltx +guard_8 = red_forest\red_bridge_outpost_logic.ltx +guard_9 = red_forest\red_bridge_outpost_logic.ltx +guard_10 = red_forest\red_bridge_outpost_logic.ltx +guard_11 = red_forest\red_bridge_outpost_logic.ltx +guard_12 = red_forest\red_bridge_outpost_logic.ltx +guard_13 = red_forest\red_bridge_outpost_logic.ltx +guard_14 = red_forest\red_bridge_outpost_logic.ltx + +surge_tower_1 = red_forest\red_bridge_outpost_logic.ltx +surge_tower_2 = red_forest\red_bridge_outpost_logic.ltx +surge_tower_3 = red_forest\red_bridge_outpost_logic.ltx +surge_tower_4 = red_forest\red_bridge_outpost_logic.ltx +surge_tower_5 = red_forest\red_bridge_outpost_logic.ltx +surge_tower_6 = red_forest\red_bridge_outpost_logic.ltx +surge_tower_7 = red_forest\red_bridge_outpost_logic.ltx +surge_tower_8 = red_forest\red_bridge_outpost_logic.ltx +surge_tower_9 = red_forest\red_bridge_outpost_logic.ltx +surge_tower_10 = red_forest\red_bridge_outpost_logic.ltx +surge_tower_11 = red_forest\red_bridge_outpost_logic.ltx +surge_tower_12 = red_forest\red_bridge_outpost_logic.ltx +surge_tower_13 = red_forest\red_bridge_outpost_logic.ltx +surge_tower_14 = red_forest\red_bridge_outpost_logic.ltx + + + + +customer_1 = red_forest\red_bridge_outpost_logic.ltx +customer_2 = red_forest\red_bridge_outpost_logic.ltx + +wounded_1 = red_forest\red_bridge_outpost_logic.ltx +wounded_2 = red_forest\red_bridge_outpost_logic.ltx +wounded_3 = red_forest\red_bridge_outpost_logic.ltx + +research_1 = red_forest\red_bridge_outpost_logic.ltx +research_2 = red_forest\red_bridge_outpost_logic.ltx + +drunk = red_forest\red_bridge_outpost_logic.ltx + +outside_1 = red_forest\red_bridge_outpost_logic.ltx +outside_2 = red_forest\red_bridge_outpost_logic.ltx +outside_3 = red_forest\red_bridge_outpost_logic.ltx + +visitor_1 = red_forest\red_bridge_outpost_logic.ltx +visitor_2 = red_forest\red_bridge_outpost_logic.ltx +visitor_3 = red_forest\red_bridge_outpost_logic.ltx +visitor_4 = red_forest\red_bridge_outpost_logic.ltx +visitor_5 = red_forest\red_bridge_outpost_logic.ltx +visitor_6 = red_forest\red_bridge_outpost_logic.ltx +visitor_7 = red_forest\red_bridge_outpost_logic.ltx +visitor_8 = red_forest\red_bridge_outpost_logic.ltx + + +visitor_10 = red_forest\red_bridge_outpost_logic.ltx +visitor_11 = red_forest\red_bridge_outpost_logic.ltx +visitor_12 = red_forest\red_bridge_outpost_logic.ltx +visitor_13 = red_forest\red_bridge_outpost_logic.ltx +visitor_14 = red_forest\red_bridge_outpost_logic.ltx diff --git a/mods/Duty Expansion/gamedata/configs/scripts/red_forest/squad_red_duty_outpost.ltx b/mods/Duty Expansion/gamedata/configs/scripts/red_forest/squad_red_duty_outpost.ltx new file mode 100644 index 00000000..a072481e --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/scripts/red_forest/squad_red_duty_outpost.ltx @@ -0,0 +1,86 @@ +[section@squad] +target@base = red_smart_terrain_bridge + +[section@logic] +logic@trader +logic@medic +logic@guide + + +[logic@base] +post_combat_time = 0,0 +combat_type = camper +net_spawn = pt1 +dont_keep_items = true + +[logic@trader]:logic@base +suitable = {=check_npc_name(red_duty_outpost_trader)} true +level_spot = trader +trade = items\trade\trade_duty.ltx +active = beh@trader + +[logic@medic]:logic@base +suitable = {=check_npc_name(red_duty_outpost_medic)} true +level_spot = medic +trade = items\trade\trade_generic_medic.ltx +active = beh@medic + +[logic@guide]:logic@base +suitable = {=check_npc_name(red_duty_outpost_guide)} true +level_spot = quest_npc +active = beh@guide + +;================================================== +[beh@base] +dont_keep_items = true +gather_items_enabled = false +target = waypoint +path_end = loop +walk_dist = 0 +jog_dist = 0 +run_anim = patrol +meet = no_meet +before_hit = invulnerable + +combat_ignore_cond = {!is_enemy_actor !fighting_dist_le(40)} true +enemy_ignore_cond = {!is_enemy_actor !fighting_dist_le(40)} true + +[beh@animpoint]:beh@base +target = %=animpoint()% nil + + +[beh@trader]:beh@animpoint +pt1 = 10000,fold_arms | pos:-117.6,0.47,-255.5 dir:180 animpoint:pos +meet = meet@base + +[beh@medic]:beh@animpoint +pt1 = 10000,animpoint_sit_normal | pos:-103.6,-0.82,-183.4 dir:90 animpoint:pos +meet = meet@base + +[beh@guide]:beh@animpoint +pt1 = 10000,binocular | pos:-119.7,4.72,-257.6 dir:90 animpoint:pos +meet = meet@guide + + +[meet@base] +close_snd_hello = meet_hello +close_snd_bye = nil +close_anim = nil +close_victim = nil +close_distance = 0 +far_anim = nil +far_victim = nil +far_distance = 0 +meet_on_talking = false +use = true + + +[meet@no_sound]:meet@base +close_snd_hello = nil + + +[meet@guide]:meet@base +close_anim = talk_default +close_distance = 3 +close_victim = actor + diff --git a/mods/Duty Expansion/gamedata/configs/scripts/squad_duty_girl.ltx b/mods/Duty Expansion/gamedata/configs/scripts/squad_duty_girl.ltx new file mode 100644 index 00000000..357e69c2 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/scripts/squad_duty_girl.ltx @@ -0,0 +1,209 @@ +[section@squad] +target@1 = {!has_task(duty_girl_hunting_chimera)} nil, {+duty_girl_hunting_chimera_dead} nil, {-duty_girl_hunting_chimera_move} gar_smart_terrain_6_3, gar_smart_terrain_2_4 +target@2 = {=has_task(duty_girl_monolith_elite) !check_task_stage(duty_girl_monolith_elite:3)} mil_smart_terrain_4_5 +target@4 = {=has_task(duty_girl_capture_the_brirge) !check_task_stage(duty_girl_capture_the_brirge:3)} red_smart_terrain_5_5 +target@z = {=between_time(6:18)} bar_zastava_2, {=between_time(19:23)} bar_dolg_general, bar_dolg_bunker + +[section@logic] +logic@idle + +logic@drink +logic@guard +logic@surge +logic@sleep + +logic@hunt_chimera +logic@monolith_elite +logic@capture_the_brirge + + +[beh@base] +dont_keep_items = true +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +combat_ignore_keep_when_attacked = true +target = waypoint +path_end = loop +walk_dist = 0 +jog_dist = 0 +run_anim = patrol +meet = meet@base +danger_ignore = true + + +[beh@animpoint]:beh@base +target = %=animpoint()% nil + +[beh@rush_at_10] +jog_dist = 10 +jog_anim = rush + + +[logic@base] +post_combat_time = 0,0 +level_spot = special +net_spawn = pt1 + +[logic@idle]:logic@base +suitable = true +active = beh@idle +prior = 0 +combat_type = camper + +[logic@guard]:logic@base +suitable = {=npc_on_level(l05_bar) =between_time(6:18)} true +active = beh@guard +prior = 100 + +[logic@drink]:logic@base +suitable = {=npc_on_level(l05_bar) =between_time(19:23)} true +active = beh@drink +prior = 100 + +[logic@surge]:logic@base +suitable = {=npc_on_level(l05_bar) =surge_started} true +active = {=between_time(6:18)} beh@surge_1, beh@surge_2 +prior = 400 + +[logic@sleep]:logic@base +suitable = {=npc_on_level(l05_bar) =between_time(0:5)} true +active = beh@sleep +prior = 500 + + + +[beh@idle]:beh@base +target = %=script(xr_logic_ex:state_idle:guard)% nil +meet = meet@idle + +[beh@guard]:beh@animpoint,beh@rush_at_10 +pt1 = 999999,guard | pos:85.4,0.0,137.9 dir:90 +meet = meet@idle + +[beh@drink]:beh@animpoint,beh@rush_at_10 +pt1 = 999999,animpoint_sit_low@random | pos:207.9,0.00,85.4 dir:135 animpoint:pos + +[beh@surge_1]:beh@animpoint +pt1 = 999999,sit_ass | pos:208.6,-0.62,114.1 dir:-90 +run_anim = rush +[beh@surge_2]:beh@animpoint +pt1 = 999999,sit_ass | pos:95.2,0.091,103.6 dir:90 +run_anim = rush + +[beh@sleep]:beh@animpoint,beh@rush_at_10 +pt1 = 999999,sleep | pos:218.4,-5.13,123.2 dir:0 +meet = meet@sleep + + + + +[logic@hunt_chimera]:logic@base +suitable = {=npc_on_level(l02_garbage) =has_task(duty_girl_hunting_chimera) -duty_girl_hunting_chimera_dead} true +active = {-duty_girl_hunting_chimera_move} beh@hunt_chimera_1, beh@hunt_chimera_2 +prior = 100 +combat_type = camper + +[beh@hunt_chimera_1]:beh@animpoint,beh@rush_at_10 +pt1 = 999999,use_pda | pos:102.9,3.64,161.0 dir:45 +on_info1 = {+duty_girl_hunting_chimera_move !npc_talking} beh@hunt_chimera_2 + +[beh@hunt_chimera_2]:beh@animpoint +pt1 = 999999,hide_na | pos:-235.2,0.42,11.2 dir:90 +run_anim = {=dist_to_beh(30)} sneak_run, {=dist_to_beh(60)} raid, rush +meet = no_meet +on_info1 = {-duty_girl_hunting_chimera_fight -duty_girl_hunting_chimera_hunt_1 =check_time_speech() =reach_beh()} %=speech(duty_girl_hunting_chimera_hunt_1:5) +duty_girl_hunting_chimera_hunt_1% +on_info2 = {-duty_girl_hunting_chimera_fight -duty_girl_hunting_chimera_hunt_2 =check_time_speech() =reach_beh()} %=speech(duty_girl_hunting_chimera_hunt_2:5) +duty_girl_hunting_chimera_hunt_2% +on_info3 = {-duty_girl_hunting_chimera_fight -duty_girl_hunting_chimera_hunt_3 =check_time_speech() =reach_beh()} %=speech(duty_girl_hunting_chimera_hunt_3:5) +duty_girl_hunting_chimera_hunt_3% + + + + +[logic@monolith_elite]:logic@base +suitable = {=npc_on_level(l07_military) =has_task(duty_girl_monolith_elite) -duty_girl_monolith_elite_dead} true +active = {-duty_girl_monolith_elite_join} beh@monolith_elite_1, {-duty_girl_monolith_elite_move} beh@monolith_elite_2, beh@monolith_elite_3 +prior = 100 +combat_type = camper + +[beh@monolith_elite_1]:beh@animpoint,beh@rush_at_10 +pt1 = 999999,guard_na | pos:-92.4,-20.66,219.8 dir:0 +on_info1 = {+duty_girl_monolith_elite_join !npc_talking !has_enemy} beh@monolith_elite_2 +on_info2 = {+duty_girl_monolith_elite_move} beh@monolith_elite_3 +combat_ignore_cond = {=enemy_squad(squad_duty_girl_monolith_elite)} true, {!fighting_dist_le(40)} true +enemy_ignore_cond = {=enemy_squad(squad_duty_girl_monolith_elite)} true, {!fighting_dist_le(40)} true + +[beh@monolith_elite_2]:beh@animpoint,beh@rush_at_10 +pt1 = 999999,guard_na | pos:-92.4,-20.66,219.8 dir:0 +meet = no_meet +on_info1 = {-duty_girl_monolith_elite_move -duty_girl_monolith_elite_move_1 =check_time_speech() =reach_beh()} %=speech(duty_girl_monolith_elite_move_1:5) +duty_girl_monolith_elite_move_1% +on_info2 = {-duty_girl_monolith_elite_move -duty_girl_monolith_elite_move_2 =check_time_speech() =reach_beh()} %=speech(duty_girl_monolith_elite_move_2:5) +duty_girl_monolith_elite_move_2% +on_info3 = {-duty_girl_monolith_elite_move -duty_girl_monolith_elite_move_3 =check_time_speech() =reach_beh()} %=speech(duty_girl_monolith_elite_move_3:5) +duty_girl_monolith_elite_move_3% +on_info4 = {-duty_girl_monolith_elite_move +duty_girl_monolith_elite_move_3} %+duty_girl_monolith_elite_move% +on_info5 = {+duty_girl_monolith_elite_move} beh@monolith_elite_3 +combat_ignore_cond = true +enemy_ignore_cond = true + +[beh@monolith_elite_3]:beh@animpoint +pt1 = 999999,hide | pos:-56.0,-19.94,354.9 dir:45 +run_anim = assault +meet = no_meet + + + + +[logic@capture_the_brirge]:logic@base +suitable = {=npc_on_level(l10_red_forest) =has_task(duty_girl_capture_the_brirge) -duty_girl_capture_the_brirge_dead} true +active = {-duty_girl_capture_the_brirge_join} beh@capture_the_brirge_1, {-duty_girl_capture_the_brirge_move} beh@capture_the_brirge_2, beh@capture_the_brirge_3 +prior = 100 +combat_type = camper + +[beh@capture_the_brirge_1]:beh@animpoint,beh@rush_at_10 +pt1 = 999999,guard_na | pos:-15.4,-0.85,-328.3 dir:-90 +on_info1 = {+duty_girl_capture_the_brirge_join !npc_talking !has_enemy} beh@capture_the_brirge_2 +on_info2 = {+duty_girl_capture_the_brirge_move} beh@capture_the_brirge_3 +combat_ignore_cond = {=enemy_squad(squad_duty_girl_capture_the_brirge)} true +enemy_ignore_cond = {=enemy_squad(squad_duty_girl_capture_the_brirge)} true + +[beh@capture_the_brirge_2]:beh@animpoint,beh@rush_at_10 +pt1 = 999999,guard_na | pos:-15.4,-0.85,-328.3 dir:-90 +meet = no_meet +on_info1 = {-duty_girl_capture_the_brirge_move -duty_girl_capture_the_brirge_move_1 =check_time_speech() =reach_beh()} %=speech(duty_girl_capture_the_brirge_move_1:5) +duty_girl_capture_the_brirge_move_1% +on_info2 = {-duty_girl_capture_the_brirge_move -duty_girl_capture_the_brirge_move_2 =check_time_speech() =reach_beh()} %=speech(duty_girl_capture_the_brirge_move_2:5) +duty_girl_capture_the_brirge_move_2% +on_info3 = {-duty_girl_capture_the_brirge_move -duty_girl_capture_the_brirge_move_3 =check_time_speech() =reach_beh()} %=speech(duty_girl_capture_the_brirge_move_3:5) +duty_girl_capture_the_brirge_move_3% +on_info4 = {-duty_girl_capture_the_brirge_move +duty_girl_capture_the_brirge_move_3} %+duty_girl_capture_the_brirge_move% +on_info5 = {+duty_girl_capture_the_brirge_move} beh@capture_the_brirge_3 +combat_ignore_cond = true +enemy_ignore_cond = true + +[beh@capture_the_brirge_3]:beh@animpoint +pt1 = 999999,hide | pos:-106.4,0.46,-291.2 dir:-30 +run_anim = assault +meet = no_meet + + + + +[meet@base] +close_snd_hello = meet_hello +close_snd_bye = nil +close_anim = nil +close_victim = nil +close_distance = 0 +far_anim = nil +far_victim = nil +far_distance = 0 +meet_on_talking = false +use = true + +[meet@idle]:meet@base +close_anim = guard_na +close_distance = 3 +close_victim = actor + +[meet@sleep]:meet@base +close_snd_hello = nil +close_anim = talk_default +close_victim = actor + + + diff --git a/mods/Duty Expansion/gamedata/configs/scripts/task_duty_girl/squad_duty_girl_capture_the_brirge.ltx b/mods/Duty Expansion/gamedata/configs/scripts/task_duty_girl/squad_duty_girl_capture_the_brirge.ltx new file mode 100644 index 00000000..7331ab52 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/scripts/task_duty_girl/squad_duty_girl_capture_the_brirge.ltx @@ -0,0 +1,341 @@ +[section@squad] +target@base = {=check_squad_section(squad_duty_girl_capture_the_brirge_mono)} red_smart_terrain_bridge, red_smart_terrain_5_5 +condlist = {+duty_girl_capture_the_brirge_dead !actor_on_level(l10_red_forest)} %=script(task_duty_girl:capture_the_brirge_spawn_outpost) =squad_self_release()% + +[section@logic] +logic@monolith_frontline_1 +logic@monolith_frontline_2 +logic@monolith_frontline_3 +logic@monolith_frontline_4 +logic@monolith_frontline_5 +logic@monolith_frontline_6 +logic@monolith_frontline_7 +logic@monolith_frontline_8 +logic@monolith_frontline_9 +logic@monolith_frontline_10 + +logic@monolith_1 +logic@monolith_2 +logic@monolith_3 +logic@monolith_4 +logic@monolith_5 +logic@monolith_6 +logic@monolith_7 +logic@monolith_8 +logic@monolith_9 +logic@monolith_10 + +logic@duty_1 +logic@duty_2 +logic@duty_3 +logic@duty_4 +logic@duty_5 +logic@duty_6 +logic@duty_7 +logic@duty_8 +logic@duty_9 + +logic@duty_combat_1 +logic@duty_combat_2 +logic@duty_combat_3 +logic@duty_combat_4 +logic@duty_combat_5 +logic@duty_combat_6 +logic@duty_combat_7 +logic@duty_combat_8 +logic@duty_combat_9 + + + + +[logic@base] +post_combat_time = 0,0 +net_spawn = pt1 + +[logic@combat_camper] +combat_type = camper + +[logic@monolith]:logic@base +suitable = {=check_npc_name(sim_default_monolith)} true + +[logic@monolith_frontline]:logic@monolith +prior = 100 + +[logic@monolith_frontline_1]:logic@monolith_frontline,logic@combat_camper +active = beh@monolith_frontline_1 +[logic@monolith_frontline_2]:logic@monolith_frontline +active = beh@monolith_frontline_2 +[logic@monolith_frontline_3]:logic@monolith_frontline,logic@combat_camper +active = beh@monolith_frontline_3 +[logic@monolith_frontline_4]:logic@monolith_frontline +active = beh@monolith_frontline_4 +[logic@monolith_frontline_5]:logic@monolith_frontline +active = beh@monolith_frontline_5 +[logic@monolith_frontline_6]:logic@monolith_frontline,logic@combat_camper +active = beh@monolith_frontline_6 +[logic@monolith_frontline_7]:logic@monolith_frontline +active = beh@monolith_frontline_7 +[logic@monolith_frontline_8]:logic@monolith_frontline +active = beh@monolith_frontline_8 +prior = 50 +[logic@monolith_frontline_9]:logic@monolith_frontline +active = beh@monolith_frontline_9 +prior = 50 +[logic@monolith_frontline_10]:logic@monolith_frontline +active = beh@monolith_frontline_10 +prior = 50 + + + +[logic@monolith_1]:logic@monolith +active = beh@monolith_1 +[logic@monolith_2]:logic@monolith +active = beh@monolith_2 +[logic@monolith_3]:logic@monolith +active = beh@monolith_3 +[logic@monolith_4]:logic@monolith +active = beh@monolith_4 +[logic@monolith_5]:logic@monolith +active = beh@monolith_5 +[logic@monolith_6]:logic@monolith +active = beh@monolith_6 +[logic@monolith_7]:logic@monolith +active = beh@monolith_7 +[logic@monolith_8]:logic@monolith +active = beh@monolith_8 +[logic@monolith_9]:logic@monolith +active = beh@monolith_9 +[logic@monolith_10]:logic@monolith +active = beh@monolith_10 + + + + +[logic@duty]:logic@base,logic@combat_camper +suitable = {-duty_girl_capture_the_brirge_move =check_npc_name(sim_default_duty)} true + +[logic@lone]:logic@base,logic@combat_camper +suitable = {-duty_girl_capture_the_brirge_move =check_npc_name(sim_default_stal)} true + +[logic@duty_1]:logic@duty +active = beh@duty_1 +[logic@duty_2]:logic@duty +active = beh@duty_2 +[logic@duty_3]:logic@duty +active = beh@duty_3 +[logic@duty_4]:logic@duty +active = beh@duty_4 +[logic@duty_5]:logic@duty +active = beh@duty_5 +[logic@duty_6]:logic@duty +active = beh@duty_6 +[logic@duty_7]:logic@lone +active = beh@duty_7 +[logic@duty_8]:logic@lone +active = beh@duty_8 +[logic@duty_9]:logic@lone +active = beh@duty_9 + + +[logic@duty_combat]:logic@base +suitable = {+duty_girl_capture_the_brirge_move =check_npc_name(sim_default_duty)} true + +[logic@lone_combat]:logic@base +suitable = {+duty_girl_capture_the_brirge_move =check_npc_name(sim_default_stal)} true + +[logic@duty_combat_1]:logic@duty_combat +active = {-duty_girl_capture_the_brirge_dead} beh@duty_combat_1, beh@duty_guard_1 +[logic@duty_combat_2]:logic@duty_combat +active = {-duty_girl_capture_the_brirge_dead} beh@duty_combat_2, beh@duty_guard_2 +[logic@duty_combat_3]:logic@duty_combat +active = {-duty_girl_capture_the_brirge_dead} beh@duty_combat_3, beh@duty_guard_3 +[logic@duty_combat_4]:logic@duty_combat +active = {-duty_girl_capture_the_brirge_dead} beh@duty_combat_4, beh@duty_guard_4 +[logic@duty_combat_5]:logic@duty_combat +active = {-duty_girl_capture_the_brirge_dead} beh@duty_combat_5, beh@duty_guard_5 +[logic@duty_combat_6]:logic@duty_combat +active = {-duty_girl_capture_the_brirge_dead} beh@duty_combat_6, beh@duty_guard_6 +[logic@duty_combat_7]:logic@lone_combat +active = {-duty_girl_capture_the_brirge_dead} beh@duty_combat_7, beh@duty_guard_7 +[logic@duty_combat_8]:logic@lone_combat +active = {-duty_girl_capture_the_brirge_dead} beh@duty_combat_8, beh@duty_guard_8 +[logic@duty_combat_9]:logic@lone_combat +active = {-duty_girl_capture_the_brirge_dead} beh@duty_combat_9, beh@duty_guard_9 + +;================================================== +[beh@base] +dont_keep_items = true +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +combat_ignore_keep_when_attacked = true +target = waypoint +path_end = loop +walk_dist = 0 +jog_dist = 0 +run_anim = patrol +meet = no_meet + +before_hit = task_duty_girl@capture_the_brirge_hit +danger_ignore = true + + + +[beh@animpoint]:beh@base +target = %=animpoint()% nil + +[beh@combat_camper_stand] +combat_camper_state_fire = threat_fire +combat_camper_state_look = threat +combat_ignore_cond = {!reach_beh()} true, {-duty_girl_capture_the_brirge_move =enemy_squad(squad_duty_girl_capture_the_brirge)} true + +[beh@monolith_frontline]:beh@animpoint +run_anim = assault +combat_ignore_cond = {-duty_girl_capture_the_brirge_move =enemy_squad(squad_duty_girl_capture_the_brirge)} true +enemy_ignore_cond = {-duty_girl_capture_the_brirge_move =enemy_squad(squad_duty_girl_capture_the_brirge)} true +;combat_ignore_cond = true +;enemy_ignore_cond = true + +[beh@monolith_frontline_1]:beh@monolith_frontline,beh@combat_camper_stand +pt1 = 999999,guard | pos:-101.5,1.75,-249.2 dir:180 +[beh@monolith_frontline_2]:beh@monolith_frontline +pt1 = 999999,hide | pos:-102.9,2.73,-249.2 dir:180 +[beh@monolith_frontline_3]:beh@monolith_frontline,beh@combat_camper_stand +pt1 = 999999,guard | pos:-121.8,4.72,-261.8 dir:-150 +[beh@monolith_frontline_4]:beh@monolith_frontline +pt1 = 999999,hide | pos:-113.4,4.72,-261.8 dir:-150 +[beh@monolith_frontline_5]:beh@monolith_frontline +pt1 = 999999,guard | pos:-114.1,0.10,-265.3 dir:-150 +[beh@monolith_frontline_6]:beh@monolith_frontline,beh@combat_camper_stand +pt1 = 999999,guard | pos:-110.6,-0.40,-248.5 dir:-150 +[beh@monolith_frontline_7]:beh@monolith_frontline +pt1 = 999999,guard | pos:-107.8,-0.30,-242.9 dir:-150 +[beh@monolith_frontline_8]:beh@monolith_frontline +pt1 = 999999,hide | pos:-111.3,-0.12,-259.7 dir:-150 +[beh@monolith_frontline_9]:beh@monolith_frontline +pt1 = 999999,hide | pos:-113.4,-0.02,-261.8 dir:-150 +[beh@monolith_frontline_10]:beh@monolith_frontline +pt1 = 999999,hide | pos:-114.8,-0.19,-251.3 dir:-150 + + +[beh@monolith]:beh@animpoint +run_anim = assault +combat_ignore_cond = {!fighting_dist_le(40)} true, {-duty_girl_capture_the_brirge_move =enemy_squad(squad_duty_girl_capture_the_brirge)} true +enemy_ignore_cond = {!fighting_dist_le(40)} true, {-duty_girl_capture_the_brirge_move =enemy_squad(squad_duty_girl_capture_the_brirge)} true +;combat_ignore_cond = true +;enemy_ignore_cond = true + +[beh@monolith_1]:beh@monolith +pt1 = 999999,hide | pos:-98.0,0.00,-235.2 dir:180 +[beh@monolith_2]:beh@monolith +pt1 = 999999,hide | pos:-99.4,0.00,-233.8 dir:180 +[beh@monolith_3]:beh@monolith +pt1 = 999999,hide | pos:-100.1,0.00,-235.9 dir:180 +[beh@monolith_4]:beh@monolith +pt1 = 999999,hide | pos:-101.5,0.00,-236.6 dir:180 +[beh@monolith_5]:beh@monolith +pt1 = 999999,hide | pos:-120.4,-0.64,-224.7 dir:180 +[beh@monolith_6]:beh@monolith +pt1 = 999999,hide | pos:-120.4,-0.64,-222.6 dir:180 +[beh@monolith_7]:beh@monolith +pt1 = 999999,hide | pos:-116.9,-0.64,-225.4 dir:180 +[beh@monolith_8]:beh@monolith +pt1 = 999999,hide | pos:-112.7,-0.64,-217.0 dir:180 +[beh@monolith_9]:beh@monolith +pt1 = 999999,hide | pos:-114.8,-0.64,-223.3 dir:180 +[beh@monolith_10]:beh@monolith +pt1 = 999999,hide | pos:-116.2,-0.64,-220.5 dir:180 + + + + +[beh@duty]:beh@animpoint +run_anim = rush +combat_ignore_cond = {=is_enemy_actor()} true, {!dist_to_beh(30)} true + +[beh@duty_1]:beh@duty +pt1 = 999999,salut | pos:-13.3,-0.80,-326.2 dir:90 +on_info = {+duty_girl_capture_the_brirge_move} beh@duty_combat_1 +[beh@duty_2]:beh@duty +pt1 = 999999,salut | pos:-13.3,-0.80,-327.6 dir:90 +on_info = {+duty_girl_capture_the_brirge_move} beh@duty_combat_2 +[beh@duty_3]:beh@duty +pt1 = 999999,salut | pos:-13.3,-0.80,-329.0 dir:90 +on_info = {+duty_girl_capture_the_brirge_move} beh@duty_combat_3 +[beh@duty_4]:beh@duty +pt1 = 999999,salut | pos:-13.3,-0.80,-330.4 dir:90 +on_info = {+duty_girl_capture_the_brirge_move} beh@duty_combat_4 +[beh@duty_5]:beh@duty +pt1 = 999999,hide | pos:-9.1,-1.00,-320.6 dir:0 +on_info = {+duty_girl_capture_the_brirge_move} beh@duty_combat_5 +[beh@duty_6]:beh@duty +pt1 = 999999,hide | pos:-11.9,-1.00,-321.3 dir:30 +on_info = {+duty_girl_capture_the_brirge_move} beh@duty_combat_6 +[beh@duty_7]:beh@duty +pt1 = 999999,hide | pos:-11.2,3.00,-323.4 dir:30 +on_info = {+duty_girl_capture_the_brirge_move} beh@duty_combat_7 +[beh@duty_8]:beh@duty +pt1 = 999999,hide | pos:-9.8,-0.98,-333.9 dir:180 +on_info = {+duty_girl_capture_the_brirge_move} beh@duty_combat_8 +[beh@duty_9]:beh@duty +pt1 = 999999,hide | pos:-19.6,-0.82,-326.9 dir:30 +on_info = {+duty_girl_capture_the_brirge_move} beh@duty_combat_9 + + + + +[beh@duty_combat]:beh@animpoint +combat_ignore_cond = {=is_enemy_actor()} true +run_anim = assault + +[beh@duty_combat_1]:beh@duty_combat +pt1 = 999999,hide | pos:-109.9,0.38,-293.3 dir:-30 +on_info = {+duty_girl_capture_the_brirge_dead} beh@duty_guard_1 +[beh@duty_combat_2]:beh@duty_combat +pt1 = 999999,hide | pos:-108.5,0.40,-292.6 dir:-30 +on_info = {+duty_girl_capture_the_brirge_dead} beh@duty_guard_2 +[beh@duty_combat_3]:beh@duty_combat +pt1 = 999999,hide | pos:-112.7,-0.22,-287.7 dir:-30 +on_info = {+duty_girl_capture_the_brirge_dead} beh@duty_guard_3 +[beh@duty_combat_4]:beh@duty_combat +pt1 = 999999,hide | pos:-102.2,0.25,-284.2 dir:-30 +on_info = {+duty_girl_capture_the_brirge_dead} beh@duty_guard_4 +[beh@duty_combat_5]:beh@duty_combat +pt1 = 999999,hide | pos:-95.2,2.85,-303.1 dir:-30 +on_info = {+duty_girl_capture_the_brirge_dead} beh@duty_guard_5 +[beh@duty_combat_6]:beh@duty_combat +pt1 = 999999,hide | pos:-84.7,2.27,-294.0 dir:0 +on_info = {+duty_girl_capture_the_brirge_dead} beh@duty_guard_6 +[beh@duty_combat_7]:beh@duty_combat +pt1 = 999999,hide | pos:-84.0,2.48,-292.6 dir:30 +on_info = {+duty_girl_capture_the_brirge_dead} beh@duty_guard_7 +[beh@duty_combat_8]:beh@duty_combat +pt1 = 999999,hide | pos:-84.0,2.24,-284.9 dir:30 +on_info = {+duty_girl_capture_the_brirge_dead} beh@duty_guard_8 +[beh@duty_combat_9]:beh@duty_combat +pt1 = 999999,hide | pos:-91.7,0.12,-271.6 dir:30 +on_info = {+duty_girl_capture_the_brirge_dead} beh@duty_guard_9 + + +[beh@duty_guard]:beh@animpoint +combat_ignore_cond = {=is_enemy_actor()} true + +[beh@duty_guard_1]:beh@duty_guard +pt1 = 999999,sit_ass | pos:-104.3,0.30,-269.5 look:-105.7,0.30,-270.9 +[beh@duty_guard_2]:beh@duty_guard +pt1 = 999999,sit_ass | pos:-104.3,0.30,-270.9 look:-105.7,0.30,-270.9 +[beh@duty_guard_3]:beh@duty_guard +pt1 = 999999,sit_ass | pos:-104.3,0.30,-272.3 look:-105.7,0.30,-270.9 +[beh@duty_guard_4]:beh@duty_guard +pt1 = 999999,sit_ass | pos:-107.1,0.30,-268.8 look:-105.7,0.30,-270.9 +[beh@duty_guard_5]:beh@duty_guard +pt1 = 999999,sit_ass | pos:-107.8,0.30,-270.2 look:-105.7,0.30,-270.9 +[beh@duty_guard_6]:beh@duty_guard +pt1 = 999999,sit_ass | pos:-107.8,0.30,-271.6 look:-105.7,0.30,-270.9 +[beh@duty_guard_7]:beh@duty_guard +pt1 = 999999,sit_ass | pos:-107.1,0.30,-273.0 look:-105.7,0.30,-270.9 +[beh@duty_guard_8]:beh@duty_guard +pt1 = 999999,sit_ass | pos:-105.7,0.30,-273.7 look:-105.7,0.30,-270.9 +[beh@duty_guard_9]:beh@duty_guard +pt1 = 999999,sit_ass | pos:-105.0,0.30,-268.8 look:-105.7,0.30,-270.9 + diff --git a/mods/Duty Expansion/gamedata/configs/scripts/task_duty_girl/squad_duty_girl_hunting_chimera.ltx b/mods/Duty Expansion/gamedata/configs/scripts/task_duty_girl/squad_duty_girl_hunting_chimera.ltx new file mode 100644 index 00000000..c417582e --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/scripts/task_duty_girl/squad_duty_girl_hunting_chimera.ltx @@ -0,0 +1,34 @@ +[section@squad] +target@base = gar_smart_terrain_2_4 + +[section@logic] +logic@general + +[logic@base] +net_spawn = pt1 + +[logic@general]:logic@base +active = mob_home@general + +;================================================== +[mob_home@base] +target = %=mutant_path% +before_hit = task_duty_girl@hunting_chimera_hit +combat_ignore_cond = {+duty_girl_hunting_chimera_fight} false, {=fighting_dist_le(20)} false, true +enemy_ignore_cond = {+duty_girl_hunting_chimera_fight} false, {=fighting_dist_le(20)} false, true +on_info1 = {-duty_girl_hunting_chimera_fight =see_actor() =dist_to_actor_le(20)} %+duty_girl_hunting_chimera_fight% +on_sound1 = actor|WPN_shoot|30|0| {-duty_girl_hunting_chimera_fight} %+duty_girl_hunting_chimera_fight% +on_sound2 = actor|WPN_hit|10|0| {-duty_girl_hunting_chimera_fight} %+duty_girl_hunting_chimera_fight% +on_sound3 = actor|WPN_empty|10|0| {-duty_girl_hunting_chimera_fight} %+duty_girl_hunting_chimera_fight% +on_sound4 = actor|WPN_reload|10|0| {-duty_girl_hunting_chimera_fight} %+duty_girl_hunting_chimera_fight% + +[mob_home@general]:mob_home@base +pt1 = pos:-271.6,0.42,23.8 dir:0 +move_animation = run +wait_animation = sleep +on_info = {!dist_to_beh(100)} mob_home@return + +[mob_home@return]:mob_home@base +pt1 = pos:-271.6,0.42,23.8 dir:0 +on_info = {=dist_to_beh(20)} mob_home@general +combat_ignore_cond = true diff --git a/mods/Duty Expansion/gamedata/configs/scripts/task_duty_girl/squad_duty_girl_monolith_elite.ltx b/mods/Duty Expansion/gamedata/configs/scripts/task_duty_girl/squad_duty_girl_monolith_elite.ltx new file mode 100644 index 00000000..4280bf5f --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/scripts/task_duty_girl/squad_duty_girl_monolith_elite.ltx @@ -0,0 +1,196 @@ +[section@squad] +target@base = {=check_squad_section(squad_duty_girl_monolith_elite_mono)} mil_smart_terrain_2_6, mil_smart_terrain_4_5 +condlist = {+duty_girl_monolith_elite_dead !actor_on_level(l07_military)} %=squad_self_release()% + +[section@logic] +logic@monolith_1 +logic@monolith_2 +logic@monolith_3 +logic@monolith_4 +logic@monolith_5 +logic@monolith_6 +logic@monolith_7 +logic@monolith_8 +logic@monolith_9 + +logic@duty_1 +logic@duty_2 +logic@duty_3 +logic@duty_4 +logic@duty_5 +logic@duty_6 + +logic@duty_combat_1 +logic@duty_combat_2 +logic@duty_combat_3 +logic@duty_combat_4 +logic@duty_combat_5 +logic@duty_combat_6 + + + + +[logic@base] +post_combat_time = 0,0 +net_spawn = pt1 + +[logic@combat_camper] +combat_type = camper + +[logic@monolith]:logic@base +suitable = {=check_npc_name(sim_default_monolith)} true + +[logic@monolith_1]:logic@monolith,logic@combat_camper +active = beh@monolith_1 +[logic@monolith_2]:logic@monolith,logic@combat_camper +active = beh@monolith_2 +[logic@monolith_3]:logic@monolith,logic@combat_camper +active = beh@monolith_3 +[logic@monolith_4]:logic@monolith +active = beh@monolith_4 +[logic@monolith_5]:logic@monolith +active = beh@monolith_5 +[logic@monolith_6]:logic@monolith +active = beh@monolith_6 +[logic@monolith_7]:logic@monolith +active = beh@monolith_7 +[logic@monolith_8]:logic@monolith +active = beh@monolith_8 +[logic@monolith_9]:logic@monolith +active = beh@monolith_9 + +;================================================== +[beh@base] +dont_keep_items = true +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +combat_ignore_keep_when_attacked = true +target = waypoint +path_end = loop +walk_dist = 0 +jog_dist = 0 +run_anim = patrol +meet = no_meet + + + +[beh@animpoint]:beh@base +target = %=animpoint()% nil + +[beh@monolith]:beh@animpoint +before_hit = task_duty_girl@monolith_elite_hit +run_anim = rush +combat_ignore_cond = {-duty_girl_monolith_elite_move =enemy_squad(squad_duty_girl_monolith_elite)} true +enemy_ignore_cond = {-duty_girl_monolith_elite_move =enemy_squad(squad_duty_girl_monolith_elite)} true + +[beh@monolith_1]:beh@monolith +pt1 = 999999,hide | pos:-58.8,-12.53,396.9 dir:180 +[beh@monolith_2]:beh@monolith +pt1 = 999999,hide | pos:-80.5,-8.89,404.6 dir:180 +[beh@monolith_3]:beh@monolith +pt1 = 999999,hide | pos:-123.2,-14.45,380.1 dir:180 +[beh@monolith_4]:beh@monolith +pt1 = 999999,hide | pos:-85.4,-10.55,391.3 dir:180 +[beh@monolith_5]:beh@monolith +pt1 = 999999,hide | pos:-87.5,-10.71,391.3 dir:180 +[beh@monolith_6]:beh@monolith +pt1 = 999999,hide | pos:-86.1,-10.50,392.0 dir:180 +[beh@monolith_7]:beh@monolith +pt1 = 999999,hide | pos:-72.8,-13.48,387.8 dir:180 +[beh@monolith_8]:beh@monolith +pt1 = 999999,hide | pos:-69.3,-15.30,387.1 dir:180 +[beh@monolith_9]:beh@monolith +pt1 = 999999,hide | pos:-71.4,-14.19,387.8 dir:180 + + + + +[logic@duty]:logic@base,logic@combat_camper +suitable = {-duty_girl_monolith_elite_move =check_npc_name(sim_default_duty)} true + +[logic@duty_1]:logic@duty +active = beh@duty_1 +[logic@duty_2]:logic@duty +active = beh@duty_2 +[logic@duty_3]:logic@duty +active = beh@duty_3 +[logic@duty_4]:logic@duty +active = beh@duty_4 +[logic@duty_5]:logic@duty +active = beh@duty_5 +[logic@duty_6]:logic@duty +active = beh@duty_6 + + +[logic@duty_combat]:logic@base +suitable = {+duty_girl_monolith_elite_move =check_npc_name(sim_default_duty)} true + +[logic@duty_combat_1]:logic@duty_combat +active = {-duty_girl_monolith_elite_dead} beh@duty_combat_1, beh@duty_guard_1 +[logic@duty_combat_2]:logic@duty_combat +active = {-duty_girl_monolith_elite_dead} beh@duty_combat_2, beh@duty_guard_2 +[logic@duty_combat_3]:logic@duty_combat +active = {-duty_girl_monolith_elite_dead} beh@duty_combat_3, beh@duty_guard_3 +[logic@duty_combat_4]:logic@duty_combat +active = {-duty_girl_monolith_elite_dead} beh@duty_combat_4, beh@duty_guard_4 +[logic@duty_combat_5]:logic@duty_combat +active = {-duty_girl_monolith_elite_dead} beh@duty_combat_5, beh@duty_guard_5 +[logic@duty_combat_6]:logic@duty_combat +active = {-duty_girl_monolith_elite_dead} beh@duty_combat_6, beh@duty_guard_6 + + +[beh@duty]:beh@animpoint +before_hit = task_duty_girl@monolith_elite_hit +run_anim = rush +combat_ignore_cond = {+duty_girl_monolith_elite_move} true +enemy_ignore_cond = {+duty_girl_monolith_elite_move} true + +[beh@duty_1]:beh@duty +pt1 = 999999,salut | pos:-93.8,-20.71,221.2 dir:180 +[beh@duty_2]:beh@duty +pt1 = 999999,salut | pos:-92.4,-20.58,221.2 dir:180 +[beh@duty_3]:beh@duty +pt1 = 999999,salut | pos:-91.0,-20.44,221.2 dir:180 +[beh@duty_4]:beh@duty +pt1 = 999999,hide | pos:-97.3,-20.09,226.1 dir:0 +[beh@duty_5]:beh@duty +pt1 = 999999,hide | pos:-87.5,-19.15,223.3 dir:0 +[beh@duty_6]:beh@duty +pt1 = 999999,hide | pos:-90.3,-20.72,214.9 dir:180 + + + + +[beh@duty_combat]:beh@animpoint +before_hit = task_duty_girl@monolith_elite_hit +run_anim = assault + +[beh@duty_combat_1]:beh@duty_combat +pt1 = 999999,hide | pos:-105.0,-9.60,327.6 dir:0 +on_info = {+duty_girl_monolith_elite_dead} beh@duty_guard_1 +[beh@duty_combat_2]:beh@duty_combat +pt1 = 999999,hide | pos:-100.1,-10.38,329.0 dir:0 +on_info = {+duty_girl_monolith_elite_dead} beh@duty_guard_2 +[beh@duty_combat_3]:beh@duty_combat +pt1 = 999999,hide | pos:-83.3,-15.29,329.0 dir:0 +on_info = {+duty_girl_monolith_elite_dead} beh@duty_guard_3 +[beh@duty_combat_4]:beh@duty_combat +pt1 = 999999,hide | pos:-46.9,-16.30,340.9 dir:0 +on_info = {+duty_girl_monolith_elite_dead} beh@duty_guard_4 +[beh@duty_combat_5]:beh@duty_combat +pt1 = 999999,hide | pos:-52.5,-17.41,322.7 dir:0 +on_info = {+duty_girl_monolith_elite_dead} beh@duty_guard_5 +[beh@duty_combat_6]:beh@duty_combat +pt1 = 999999,hide | pos:-37.8,-13.05,332.5 dir:0 +on_info = {+duty_girl_monolith_elite_dead} beh@duty_guard_6 + + + + +[beh@duty_guard_1]:beh@monolith_1 +[beh@duty_guard_2]:beh@monolith_2 +[beh@duty_guard_3]:beh@monolith_3 +[beh@duty_guard_4]:beh@monolith_4 +[beh@duty_guard_5]:beh@monolith_5 +[beh@duty_guard_6]:beh@monolith_6 diff --git a/mods/Duty Expansion/gamedata/configs/text/eng/text_duty_girl.xml b/mods/Duty Expansion/gamedata/configs/text/eng/text_duty_girl.xml new file mode 100644 index 00000000..e1b04a10 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/text/eng/text_duty_girl.xml @@ -0,0 +1,279 @@ + + + + Anna + + + + + + I need an extra hand in the next mission. Can you help me? + + + Sure. Lead the way. + + + Aren't you having a good time with her? Sorry, I'm busy now. + + + + I think we should part ways for now. + + + Are you sure? + + + Yes. There is something I must deal with alone. + + + Nevermind. One second thought, two would be better. + + + Alright. Good hunting. I will return to Rostok. Remember to drop by from time to time. + + + + We have different enemies and friends. Is there any way for us to hunt together? + + + My presence can convince the Ukrainian troops to leave you alone. But don't try anything stupid. I won't help if you piss them off. In return, make sure anarchists don't give me trouble. Then I think we can get along. + + + My presence can convince the Ukrainian troops to leave you alone. But don't try anything stupid. I won't help if you piss them off. In return, make sure anarchists and mercenaries don't give me trouble. Then I think we can get along. + + + I can convince free stalkers and Clear Sky members that you're not a threat. You better act accordingly too. I won't help if you piss them off. Then I think we're fine to get along. + + + You don't have many enemies, ehh? I think we can get along if you can convince anarchists and mercenaries to not attack me. + + + + Better stock up more ammo when we can. + + + You know, you could leave the Zone. Settle down, start over, marry a girl... + + + + You don't look good. Better treat your wound soon. + + + You have sight of radiation. Are you okay? + + + A new day, and we are still alive. That's great. + + + It's morning. Time to kick some mutant's asses. + + + Morning. I guess those freedoms are still dreaming of bloodsuckers. + + + Night is comming. The Zone is even more dangerous now but coming along is opportunity. + + + Night falls. Should we rest for while? + + + How many mutants you have killed today? + + + + I want to ask you something. + + + Yes? + + + Nevermind. + + + + + You were eager to kill the chimera. It was because of your father? + + + Yeah, kind of. You know, most of Duty members, me included, are those who lost their friends, their family to the Zone. Such memories won't be forgotten easily. + + + + Those men seem to follow your commands. + + + I know medicine and usually help wounded people, so they seem to like me. Or maybe I'm not as strict as other Duty officers. + + + + Why did the Monolith want to block the route? + + + They are monolithians. They always prevent people from reaching the center of the Zone. I think those we fought were fresh victims of the Brain Scorcher. Experienced stalkers will try to cross the Brain Scorcher's psy field to reach the center of the Zone. Many things could happen, mutant attacks that break their protection equipment, unable to cross the field on time, etc. The route is dangerous, but at the same time it also leads to new areas that haven't been scanned by anyone. + + + + I saw there were some free stalkes joining us in the fight at the bridge. + + + Maybe they were influenced by our action of reopening the route, having their friends stuck in the north, so they came to help. Or maybe they just came for the reward. Regardless, any help is welcome. + + + + + It has been years since I last saw a girl. + + + I guess you will see me around more often. + + + I haven't seen you before. Are you a new recruit? + + + I joined Duty one year ago. It was a field recruitment. My father was a free stalker and I'm with him. One day, we were attacked by a chimera. I managed to survive by hiding in a truck cabin, but he didn't make it. He was killed when trying to protect me. Then a Duty expedition squad found and rescued me. So I joined them, since I had nowhere else to go and I want to revenge for my father. I have been trained and fighting alongside with them since then. Now our commission is over, we return to the base waiting for the next orders. + + + What a sad story. I'm sorry to hear that. + + + I'm fine. Hey, you were the guy running around asking for work lately, weren't you? I'm currently in charge of some Duty's special operations. If you need work, I might have some for you. + + + + Do you have any work that I can help? + + + I'm going to go hunting now. There is a chimera that has been bothering Barman for a while. Join me and I will share you half of the bounty. See me at the Flea Market. + + + + + I'm ready. + + + I just saw it chasing some bandits from distance. I'm glad to see you. It was a big one, I would have to abandon the mission if you didn't come to help. It must has returned to it's lair by now. Follow me and stay close. + + + + Look. It is a black chimera. + + + It isn't aware of us. Good. + + + You better make the first shot count. + + + Phew! That was close. + + + + The monster is dead. + + + You're tougher than I thought. I'm looking for some good fighters for my mission, and you're a good addition. I will explain it in details, but I think you should prepare some better gears. Here, take the reward. + + + + + Do you have any work that I can help? + + + Yeah. There is one. Quite a dangerous one, I'm afraid. Just recently, a group of monolithians appeared in Army Warehouses blocking the path to the Red Forest. They aren't any monolithians, scouts reported that they are very well armed. People cry to reopen the route so here we are. We will gather at the abandoned house in the Army Warehouse. See you there. + + + + I come to join you. + + + Good to see you. Here is your supplies. Prepare yourself and tell me when when you're ready. + + + I'm ready. + + + + Buckle up men. It won't be easy. + + + Remember to keep your head down and follow my hand signals. + + + Move. + + + This is it. Good work, men! + + + Damn, he was spotted. + + + Everyone, attack. + + + + I come to collect my reward. + + + Yeah, here you are. I knew I can count on you. Your contributions today will be known among Duty men. + + + + Do you have any work that I can help? + + + I haven't got anything yet. But perhaps you would be interested in this. You did well in the recent mission and I think the reward is quite underpaid. These are the coordinates obtained from the PDA of one of the monolith fighters. A stash, no doubt. No one has secured it yet, we have to prepare for the next move. So consider it a bonus for you. + + + Thanks. + + + + Do you have any work that I can help? + + + The Monolith has come again. They captured the outpost near the bridge in the Red Forest. We will drive them away, at the same time capture it and establish a forward outpost to maintain the route. Our rallying point is the bus stop in the Red Forest. See you there. + + + + I come to join you. + + + We scouted ahead. Our foe has less skilled fighters, but they come by the number. Spotted around 10 men but I'm sure they have backup hiding around. It will be tougher than the previous fight. Take your supply and be ready. + + + I'm ready. + + + + Be careful, they are even tougher than before. + + + Don't advance too far. Stay together. + + + Move. + + + Looks like that was the last one. Good work, people! + + + Damn, he was spotted. + + + Everyone, attack. + + + + I come to collect my reward. + + + Thanks for your help. Our men are on the way here and the outpost will be operational soon. My mission is over. I think I will be idle for a while. If you need an extra hand in your missions, you just need to ask. + + + + + + \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/configs/text/eng/text_duty_girl_quest.xml b/mods/Duty Expansion/gamedata/configs/text/eng/text_duty_girl_quest.xml new file mode 100644 index 00000000..1c9b0f48 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/text/eng/text_duty_girl_quest.xml @@ -0,0 +1,48 @@ + + + + Hunting Chimera + + + I agreed to help Anna hunt a Chimera. See her at the Flea Market. + + + I agreed to help Anna hunt a Chimera. We are attacking the monster's lair. + + + The monster is dead. Return for reward. + + + + Clean The Route To The North + + + Duty is about to launch an attack against a highly ranked monolith squad. Any help is welcome with a promise of reward. + + + The attack has begun. Help Duty to fight against enemies. + + + The attack was successful. Time to collect my reward. + + + + Bonus Reward + + + A stash coordinate was given to me as a bonus for assisting Duty in the previous mission. + + + + Capture The Brirge + + + Duty want to capture the brirge in the Red Forest. They are about to strike. Any help is welcome with a promise of reward. + + + The attack has begun. Help Duty to fight against enemies. + + + The attack was successful. Time to collect my reward. + + \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/configs/text/eng/text_duty_outpost.xml b/mods/Duty Expansion/gamedata/configs/text/eng/text_duty_outpost.xml new file mode 100644 index 00000000..85ccbec9 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/text/eng/text_duty_outpost.xml @@ -0,0 +1,116 @@ + + + + + There are stalkers from different communities here. Don't they cause troubles? + + + Don't worry. The area is under Duty control. Those who are friends of Duty are protected here and fighting is forbidden. You better don't cause troubles for yourself too. + + + + Destroy the Mutants + + + I've agreed to clear out a lair of mutants for the outpost leader. + + + There is still a mutant lair that we haven't had any squad to assign. Can you take care of it? + + + Good work. Another tick to the task list. + + + + Kill the Stalker + + + I've agreed to take care of a stalker for the outpost leader. + + + I have a high priority target that needs removal. He was found attacking local stalkers and scientists. A reward is promised for any one who can take him out. + + + I don't like killing but that scum deserves it. Here's the reward. + + + + Find %s + + + The outpost leader asked me to hunt for a certain amount of mutant meat worth of food. Bring him %s for a reward. + + + The supply line to our point is very dangerous. I want to focus more on weapons and ammo and less on things that we can secure in the area, such as food. There are a lot of edible mutants around here. Hunt them down and bring back %s. Then I will have a reward for you. + + + Yeah, I prefer these than dry MREs. Good work. + + + + Find %s + + + Some scientists are looking for a rare mutant part called %s. + + + Some of the scientists keep asking for a %s. It's from a dangerous mutant which my boys usually tear to pieces with bullets and grenades. See if you can secure one. + + + Finally, someone bring back a sample in one piece. + + + + + Where can you escort me? + + + To the Bar in Rostok for one thousand, the Skadovsk in Zaton for two thousand, the Garbage for three thousand, Yantar for four thousand, the Military Base in Agroprom for five thousand, the Rookie Village in the Cordon for six thousand, and the Great Swamp for six thousand. + + + + I need to be led somewhere. + + + Yeah, where? + + + To Rostok. %c[d_orange][1000 RU] + + + To Zaton. %c[d_orange][2000 RU] + + + To the Garbage. %c[d_orange][3000 RU] + + + To Yantar. %c[d_orange][4000 RU] + + + To Agroprom. %c[d_orange][5000 RU] + + + To the Cordon. %c[d_orange][6000 RU] + + + To the Great Swamp. %c[d_orange][6000 RU] + + + I've changed my mind. + + + + Do you know the Duty Outpost in the Red Forest? I want to go there. + + + + Yes. It will be %c[d_orange]%s RU%c[255,160,160,190]. + + + Bring me there. %c[d_orange][%s RU] + + + I've changed my mind. + + + \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/configs/text/rus/text_duty_girl.xml b/mods/Duty Expansion/gamedata/configs/text/rus/text_duty_girl.xml new file mode 100644 index 00000000..b583c374 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/text/rus/text_duty_girl.xml @@ -0,0 +1,279 @@ + + + + Анна + + + + + + Мне не помешала бы поддержка в поле. Составишь компанию? + + + Конечно. Веди. + + + А с ней ты разве не хорошо проводишь время? Извини, я сейчас занята. + + + + Думаю, нам надо разойтись. + + + Ты уверен? + + + Да. Дальше я пойду один. + + + Нет, я передумал. Если так подумать, лучше держаться вместе. + + + Ладно. Удачной охоты. Я вернусь на Росток. Не забывай заглядывать время от времени. + + + + У нас разные враги и друзья. Нам это не помешает? + + + Мое присутствие поможет убедить военных оставить вас в покое. Но не делай глупостей. Я не стану тебе помогать, если ты их разозлишь. В свою очередь, позаботься о том, чтобы анархисты не доставляли мне проблем. Тогда, думаю, мы сможем поладить. + + + Мое присутствие может убедить военных оставить вас в покое. Но не делай глупостей. Я не стану тебе помогать, если ты их разозлишь. В свою очередь, позаботься о том, чтобы анархисты и наёмники не доставляли мне проблем. Тогда, думаю, мы сможем поладить. + + + Я могу убедить одиночек и "Чистое небо", что ты не представляешь угрозы. Тебе лучше вести себя соответственно. Я не стану помогать, если ты их разозлишь. Тогда, думаю, мы сможем поладить. + + + А у тебя не так уж много врагов, а? Думаю, мы сможем поладить, если ты сможешь убедить анархистов и наемников не нападать на меня. + + + + Лучше запастись патронами, когда будет возможность. + + + Знаешь, ты ведь можешь уехать из Зоны. Остепениться, начать все сначала, на девушке жениться... + + + + Ты неважно выглядишь. Надо поскорее обработать рану. + + + Ты получил дозу радиации. Нормально себя чувствуешь? + + + Начинается новый день, а мы все еще живы. Есть место оптимизму! + + + Уже утро. Пришло время надирать мутантам задницы. + + + С добрым утром. А эти из "Свободы", наверное, всё ещё сны про сосычей досматривают. + + + Ночь надвигается. Зона теперь еще опаснее, но и возможностей становится больше. + + + Ночь надвигается. Может, отдохнем немного? + + + Сколько мутантов ты убил сегодня? + + + + Мне надо тебе кое-что сказать... + + + Что такое? + + + Нет, неважно. + + + + + Ты так стремилась убить эту химеру. Это все из-за твоего отца? + + + Да, вроде того. Понимаешь, большинство ребят в "Долге", я в том числе - это те, кто потерял в Зоне своих друзей, родных. Такие вещи непросто забываются. + + + + Эти ребята, похоже, следуют твоим приказам. + + + Я разбираюсь в медицине и обычно помогаю раненым, так что, похоже, я им нравлюсь. А может, я не такая строгая, как другие офицеры в "Долге". + + + + Зачем монолитовцам перекрывать маршрут? + + + Они монолитовцы. Они всегда мешают другим добраться до центра Зоны. Думаю, те, с кем мы сражались, были недавними жертвами Выжигателя мозгов. Опытные сталкеры иногда пытаюстся пройти через пси-поле Выжигателя мозгов, чтобы достичь центра Зоны. Многое может случиться: мутанты нападут и повредят защитное оборудование, не смогут вовремя пройти через поле, ещё что. Маршрут опасен, но зато он ведет к новым, малоизученным территориям. + + + + В схватке у моста я заметил, что к нам присоединились несколько одиночек. + + + Может быть, их заинтересовала наша операция по восстановлению маршрута, их друзья застряли на севере, поэтому они пришли помочь. А может, просто в погоне за наживой. В любом случае, мы рады всякой помощи. + + + + + Ого! Я уже давно не видал девушек. + + + Ну, меня ты, похоже, будешь видеть часто. + + + Я тебя раньше не видел. Ты из новобранцев? + + + Я вступила в "Долг" год назад. Набирали в полевых условиях. Мой отец был вольным сталкером, а я путешествовала с ним. Однажды на нас напала химера. Мне удалось выжить, спрятавшись в кабине грузовика, но он погиб. Погиб, пытаясь защитить меня. Затем экспедиционный отряд "Долга" нашёл меня и спас. Я присоединилась к ним, потому что мне просто некуда было больше податься и я хотела отомстить за своего отца. С тех пор я тренировалась и сражалась бок о бок с ними. А теперь наше задание выполнено, мы возвращаемся на базу и ожидаем дальнейших приказов. + + + Тяжкая история. Сочувствую. + + + Я справлюсь. Эй, это ведь ты в последнее время носишься вокруг и ищешь работу? Я сейчас отвечаю за некоторые боевые операции "Долга". Если нужна работа, у меня, может, найдется что-нибудь для тебя. + + + + Есть для меня задания? + + + Я собираюсь на охоту. Есть одна химера, которая давно беспокоит Бармена. Пойдёшь со мной - получишь половину награды. Встретимся на Барахолке. + + + + + Я готов. + + + Я только что видела, как она преследовала бандитов. Хорошо, что ты объявился. Здоровенная тварь, мне пришлось бы бросить задание, если бы ты не подоспел. Похоже, она уже вернулась в свое логово. Иди за мной и не отставай. + + + + Смотри! Это чёрная химера! + + + Нас не учуяла. Хорошо. + + + Смотри не промахнись. + + + Фуф! Ещё бы чуть-чуть и всё. + + + + Тварь издохла. + + + А ты крепче, чем кажешься. Я ищу хороших бойцов для одной боевой операции, и ты неплохо впишешься. Подробности я расскажу на базе, и думаю, тебе стоит подготовить снаряжение получше. Держи свою награду. + + + + + Есть для меня задания? + + + Да. Есть одно. И, боюсь, довольно опасное. Совсем недавно группа монолитовцев появилась на Армейских складах, заблокировав проход к Рыжему лесу. Разведка докладывает, что они вооружены самым лучшим образом. Сталкеры просят снова открыть путь в лес, и эта задача падает на нас. Мы собираемся в заброшенном доме на Армейских складах. Встретимся там. + + + + Готов присоединиться к операции. + + + Рада тебя видеть. Бери припасы. Сообщай, когда будешь готов. + + + Я готов. + + + + Приготовиться! Будет жарко. + + + Не высовываемся и следуем моим командам. + + + Вперёд! + + + Вот и всё. Отличная работа! + + + Чёрт, заметили. + + + В атаку! + + + + Я за наградой. + + + Вот, держи. Я знала, что на тебя можно положиться. "Долг" не забудет твой вклад в общее дело. + + + + Есть для меня задания? + + + Пока ничего. Но кое-что узнать тебе будет, наверное, интересно. Ты отлично показал себя на последнем задании, и мне кажется, награда не была соответствующей. Вот координаты с КПК одного из монолитовцев. Вне всяких сомнений, это тайник. Из наших никто его не обыскивал, времени мало, готовимся к другим операциям. Считай это своего рода премией. + + + Спасибо. + + + + Есть задания для меня? + + + Снова объявился "Монолит". Захватили стратегическую точку у моста в Рыжем лесу. Выкурим их оттуда и разобьём передовой форпост для охраны маршрута. Точка сбора - автобусная остановка в Рыжем лесу. Встретимся там. + + + + Готов присоединиться к операции. + + + Мы провели рекогносцировку. У противника менее тренированные бойцы, чем в прошлый раз, но берут числом. Мы насчитали около десятка, однако, я уверена, что в засаде сидит ещё столько же. Бой будет пожарче предыдущего. Держи припасы. Проверяй снаряжение и высупаем. + + + Я готов. + + + + Осторожнее, этот бой будет не из простых. + + + Вперёд не лезем! Держим строй! + + + Вперёд! + + + Похоже, последний. Хорошая работа, бойцы! + + + Чёрт, заметили! + + + В атаку! + + + + Я за наградой. + + + Спасибо за помощь. Наши силы уже выдвинулись на позицию, скоро мы установим здесь форпост. Свою боевую задачу я выполнила. Думаю, отдохну немного. Если тебе нужна какая помощь в Зоне, вызываюсь добровольцем. + + + + + + \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/configs/text/rus/text_duty_girl_quest.xml b/mods/Duty Expansion/gamedata/configs/text/rus/text_duty_girl_quest.xml new file mode 100644 index 00000000..b427d259 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/text/rus/text_duty_girl_quest.xml @@ -0,0 +1,48 @@ + + + + Охота на химеру + + + Я согласился помочь Анне охотиться на химеру. Встречаемся на Барахолке. + + + Я согласился помочь Анне охотиться на химеру. Атакуем логово монстра. + + + Тварь мертва. Время возврашаться за наградой. + + + + Очистить путь на север + + + "Долг" собирается атаковать элитный отряд "Монолита". Они рады любой помощи и готовы дать награду за неё. + + + Атака началась. Нужно помочь "Долгу" сражаться с противником. + + + Операция завершилась успешно. Время идти за наградой. + + + + Премия + + + В качестве премии за помощь "Долгу" в выполнении боевой операции мне выдали координаты тайника. + + + + Захват моста + + + "Долгу" необходимо захватить мост в Рыжем лесу. Они готовы атаковать. Они рады любой помощи и готовы дать награду за неё. + + + Атака началась. Нужно помочь "Долгу" сражаться с противником. + + + Операция завершилась успешно. Время идти за наградой. + + \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/configs/text/rus/text_duty_outpost.xml b/mods/Duty Expansion/gamedata/configs/text/rus/text_duty_outpost.xml new file mode 100644 index 00000000..64df9cf4 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/text/rus/text_duty_outpost.xml @@ -0,0 +1,116 @@ + + + + + Здесь сталкеры из разных группировок. Неприятности бывают? + + + Не беспокойся. Область под контролем "Долга". Друзья "Долга" здесь под защитой и любая враждебность под запретом. От тебя, надеюсь, тоже неприятностей не будет. + + + + Уничтожить мутантов + + + Я согласился помочь командиру форпоста разобраться с мутантами. + + + В округе есть гнездо мутантов, к которому мы ещё не смогли отправить отряд. Возьмёшься? + + + Хорошая работа. Ещё одна галочка в журнале. + + + + Ликвидировать сталкера + + + Я согласился помочь командиру форпоста ликвидировать сталкера. + + + Есть важная цель, которую необходимо уничтожить. Один субъект нападает на местных сталкеров и учёных. За ликвидацию данного субъекта назначена награда. + + + Не люблю убийства, но этот подонок заслужил своё. Вот твоя награда. + + + + Найти %s + + + Командир форпоста попросил поохотиться на мутантов и собрать немного мяса. Мне нужно принести %s. За выполнение задания обещано вознаграждение. + + + Линия снабжения к нашему форпосту очень опасна. В приоритете оружие и патроны, провиант решено добывать в полевых условиях. В округе много мутантов, мясо которых пригодно в пищу. Сейчас мне нужно %s. За выполнение задания полагается вознаграждение. + + + Уж лучше это, чем сухпайки. Отличная работа. + + + + Найти %s + + + Учёным совершенно необходимо предоставить %s для проведения исследований. + + + Да учёные тут всё хотят изучить %s. Мои бойцы обычно разбираются с мутантами жёстко и "образцов" от них остаётся мало. Посмотрим, сможешь ли ты раздобыть, что нужно. + + + Наконец хоть кто-то смог оставить от твари кусок достаточного размера. + + + + + Куда можешь меня отвести? + + + До Бара на "Ростке" за тысячу, до "Скадовска" на Затоне за две тысячи, до Свалки за три тысячи, до Янтаря за одну, к военным на Агропроме за пять тысяч, до Деревни новичков на Кордоне за шесть тысяч, и до Болот за шесть тысяч. + + + + Мне нужен проводник. + + + Куда тебя отвести? + + + На "Росток". %c[d_orange][1000 рублей] + + + На Затон. %c[d_orange][2000 рублей] + + + На Свалку. %c[d_orange][3000 рублей] + + + На Янтарь. %c[d_orange][4000 рублей] + + + На Агропром. %c[d_orange][5000 рублей] + + + На Кордон. %c[d_orange][6000 рублей] + + + На Болота. %c[d_orange][6000 рублей] + + + Я передумал. + + + + Знаешь дорогу до форпоста "Долга" в Рыжем Лесу? Мне надо туда. + + + + Да. За %c[d_orange]%s рублей%c[255,160,160,190] проведу. + + + Веди. %c[d_orange][%s рублей] + + + Я передумал. + + + \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/configs/ui/textures_descr/ui_icons_npc_duty_girl.xml b/mods/Duty Expansion/gamedata/configs/ui/textures_descr/ui_icons_npc_duty_girl.xml new file mode 100644 index 00000000..518f7f00 --- /dev/null +++ b/mods/Duty Expansion/gamedata/configs/ui/textures_descr/ui_icons_npc_duty_girl.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/mods/Duty Expansion/gamedata/meshes/actors/mnp_npc_remeik/duty_girl.ogf b/mods/Duty Expansion/gamedata/meshes/actors/mnp_npc_remeik/duty_girl.ogf new file mode 100644 index 00000000..07323769 --- /dev/null +++ b/mods/Duty Expansion/gamedata/meshes/actors/mnp_npc_remeik/duty_girl.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5084ac9efbc3c3e609278409579781da43d2b39d54fd9e93ecb6a3243d2fe1e0 +size 2292034 diff --git a/mods/Duty Expansion/gamedata/scripts/dialogs_duty_girl.script b/mods/Duty Expansion/gamedata/scripts/dialogs_duty_girl.script new file mode 100644 index 00000000..f16cf0f7 --- /dev/null +++ b/mods/Duty Expansion/gamedata/scripts/dialogs_duty_girl.script @@ -0,0 +1,624 @@ +local HI = has_alife_info +local GI = give_info +local DI = disable_info +local GT = game.translate_string + +function NI(str) + return not (has_alife_info(str)) +end + + +local saved_dialog +function add_dialog(p_id,id,phrase_id,cond,act) + if not ( saved_dialog ) then + return + end + + local phrase = saved_dialog:AddPhrase(phrase_id,tostring(id),tostring(p_id),-10000) + if not ( phrase ) then + return + end + + local phrase_script = phrase:GetPhraseScript() + if ( cond ) then + if ( type(cond) == "table" ) then + for key, value in pairs(cond) do + if (utils_data.findfunction(value,_G)) then + phrase_script:AddPrecondition(value) + else + printe("!ERROR dialog_manager | No such function exists '%s'",value) + end + end + else + if (utils_data.findfunction(cond,_G)) then + phrase_script:AddPrecondition(cond) + else + printe("!ERROR dialog_manager | No such function exists '%s'",cond) + end + end + end + + if ( act ) then + if ( type(act) == "table" ) then + for key, value in pairs(act) do + if (utils_data.findfunction(value,_G)) then + phrase_script:AddAction(value) + else + printe("!ERROR dialog_manager | No such function exists '%s'",value) + end + end + else + if (utils_data.findfunction(act,_G)) then + phrase_script:AddAction(act) + else + printe("!ERROR dialog_manager | No such function exists '%s'",act) + end + end + end + return phrase_script +end + +--[[---------------------------------------------------------------------------------------------------- + General +------------------------------------------------------------------------------------------------------]] +function duty_girl_companion_join_dialog_con(a,b,dialog_name,pre_pid,cur_pid) + if (NI("duty_girl_capture_the_brirge_done")) then + return false + end + if (dialogs_axr_companion.is_actor_companion(a,b)) then + return false + end + return true +end + +function duty_girl_companion_join_dialog(dialog) + saved_dialog = dialog + add_dialog("",0,"duty_girl_companion_join_0") + add_dialog(0,1,"duty_girl_companion_join_1","dialogs_duty_girl.duty_girl_companion_join_1_con","dialogs_axr_companion.become_actor_companion") + add_dialog(0,2,"duty_girl_companion_join_2","dialogs_duty_girl.duty_girl_companion_join_2_con") +end + +function duty_girl_companion_join_1_con(a,b) + return not duty_girl_companion_join_2_con(a,b) +end + +function duty_girl_companion_join_2_con(a,b) + local npc = get_story_object("devushka") + if (npc and npc:alive() and dialogs_axr_companion.is_actor_companion(db.actor,npc)) then + return true + end + return false +end + + + + +function duty_girl_companion_leave_dialog_con(a,b,dialog_name,pre_pid,cur_pid) + if (dialogs_axr_companion.is_actor_companion(a,b)) then + return true + end + return false +end + +function duty_girl_companion_leave_dialog(dialog) + saved_dialog = dialog + add_dialog("",0,"duty_girl_companion_leave_0") + add_dialog(0,1,"duty_girl_companion_leave_1") + add_dialog(1,2,"duty_girl_companion_leave_2") + add_dialog(1,3,"duty_girl_companion_leave_3") + add_dialog(2,4,"duty_girl_companion_leave_4",nil,"dialogs_axr_companion.remove_companions_from_squad") +end + + + + +function duty_girl_actor_ask_companion_dialog_con(a,b,dialog_name,pre_pid,cur_pid) + local str = db.actor and character_community(db.actor) or "" + if (str and string.find(str,"dolg")) then + return false + end + return true +end + +function duty_girl_actor_ask_companion_dialog(dialog) + +end + +function duty_girl_first_meet(dialog) + saved_dialog = dialog + add_dialog("",0,"duty_girl_first_meet_0") + add_dialog(0,1,"duty_girl_first_meet_1") + add_dialog(1,2,"duty_girl_first_meet_2") + add_dialog(2,3,"duty_girl_first_meet_3") + add_dialog(3,4,"duty_girl_first_meet_4") + add_dialog(4,5,"duty_girl_first_meet_5",nil,"dialogs_duty_girl.GI_duty_girl_first_meet") +end + +--[[---------------------------------------------------------------------------------------------------- + Quests +------------------------------------------------------------------------------------------------------]] +--[[---------------------------------------------------------------------------------------------------- + duty_girl_hunting_chimera +------------------------------------------------------------------------------------------------------]] +function duty_girl_hunting_chimera_init_con(a,b,dialog_name,pre_pid,cur_pid) + if (HI("duty_girl_hunting_chimera_done") or HI("duty_girl_hunting_chimera_fail")) then + return false + end + return HI("duty_girl_first_meet") and NI("duty_girl_hunting_chimera_init") +end +function duty_girl_hunting_chimera_init(dialog) + saved_dialog = dialog + add_dialog("",0,"duty_girl_hunting_chimera_init_0") + add_dialog(0,1,"duty_girl_hunting_chimera_init_1",nil,"dialogs_duty_girl.duty_girl_hunting_chimera") +end + +function duty_girl_hunting_chimera_move_con(a,b,dialog_name,pre_pid,cur_pid) + if (HI("duty_girl_hunting_chimera_done") or HI("duty_girl_hunting_chimera_fail")) then + return false + end + local npc = dialogs.who_is_npc(a,b) + return HI("duty_girl_hunting_chimera_init") and NI("duty_girl_hunting_chimera_move") and xr_conditions.npc_on_level(db.actor,npc,{"l02_garbage"}) +end +function duty_girl_hunting_chimera_move(dialog) + saved_dialog = dialog + add_dialog("",0,"duty_girl_hunting_chimera_move_0") + add_dialog(0,1,"duty_girl_hunting_chimera_move_1",nil,"dialogs_duty_girl.GI_duty_girl_hunting_chimera_move") +end + +function duty_girl_hunting_chimera_done_con(a,b,dialog_name,pre_pid,cur_pid) + if (HI("duty_girl_hunting_chimera_done") or HI("duty_girl_hunting_chimera_fail")) then + return false + end + return HI("duty_girl_hunting_chimera_dead") and NI("duty_girl_hunting_chimera_reward") +end +function duty_girl_hunting_chimera_done(dialog) + saved_dialog = dialog + add_dialog("",0,"duty_girl_hunting_chimera_done_0") + local action = { + "dialogs_duty_girl.give_money_8000", + "dialogs_duty_girl.GI_duty_girl_hunting_chimera_reward", + } + add_dialog(0,1,"duty_girl_hunting_chimera_done_1",nil,action) +end + +--[[---------------------------------------------------------------------------------------------------- + duty_girl_monolith_elite +------------------------------------------------------------------------------------------------------]] +function duty_girl_monolith_elite_init_con(a,b,dialog_name,pre_pid,cur_pid) + if (HI("duty_girl_monolith_elite_done") or HI("duty_girl_monolith_elite_fail")) then + return false + end + local npc = dialogs.who_is_npc(a,b) + return HI("duty_girl_hunting_chimera_done") and NI("duty_girl_monolith_elite_init") and xr_conditions.npc_on_level(db.actor,npc,{"l05_bar"}) +end +function duty_girl_monolith_elite_init(dialog) + saved_dialog = dialog + add_dialog("",0,"duty_girl_monolith_elite_init_0") + add_dialog(0,1,"duty_girl_monolith_elite_init_1",nil,"dialogs_duty_girl.duty_girl_monolith_elite") +end + +function duty_girl_monolith_elite_join_con(a,b,dialog_name,pre_pid,cur_pid) + if (HI("duty_girl_monolith_elite_done") or HI("duty_girl_monolith_elite_fail")) then + return false + end + + local npc = dialogs.who_is_npc(a,b) + return HI("duty_girl_monolith_elite_init") and NI("duty_girl_monolith_elite_join") and xr_conditions.npc_on_level(db.actor,npc,{"l07_military"}) +end + +function duty_girl_monolith_elite_done_con(a,b,dialog_name,pre_pid,cur_pid) + if (HI("duty_girl_monolith_elite_done") or HI("duty_girl_monolith_elite_fail")) then + return false + end + + return HI("duty_girl_monolith_elite_dead") and NI("duty_girl_monolith_elite_reward") +end + +function duty_girl_monolith_elite_done(dialog) + saved_dialog = dialog + add_dialog("",0,"duty_girl_monolith_elite_done_0") + local action = { + "dialogs_duty_girl.give_money_12000", + "dialogs_duty_girl.GI_duty_girl_monolith_elite_reward", + } + add_dialog(0,1,"duty_girl_monolith_elite_done_1",nil,action) +end + +--[[---------------------------------------------------------------------------------------------------- + duty_girl_loot_stash +------------------------------------------------------------------------------------------------------]] +function duty_girl_loot_stash_init_con(a,b,dialog_name,pre_pid,cur_pid) + if (HI("duty_girl_loot_stash_done")) then + return false + end + + local npc = dialogs.who_is_npc(a,b) + return HI("duty_girl_monolith_elite_done") and NI("duty_girl_loot_stash_init") and xr_conditions.npc_on_level(db.actor,npc,{"l05_bar"}) +end +function duty_girl_loot_stash_init(dialog) + saved_dialog = dialog + add_dialog("",0,"duty_girl_loot_stash_init_0") + add_dialog(0,1,"duty_girl_loot_stash_init_1",nil,"dialogs_duty_girl.duty_girl_loot_stash") + add_dialog(1,2,"duty_girl_loot_stash_init_2") +end + +--[[---------------------------------------------------------------------------------------------------- + duty_girl_capture_the_brirge +------------------------------------------------------------------------------------------------------]] +function duty_girl_capture_the_brirge_init_con(a,b,dialog_name,pre_pid,cur_pid) + if (HI("duty_girl_capture_the_brirge_done")) then + return false + end + local npc = dialogs.who_is_npc(a,b) + return HI("duty_girl_loot_stash_done") and NI("duty_girl_capture_the_brirge_init") and xr_conditions.npc_on_level(db.actor,npc,{"l05_bar"}) +end +function duty_girl_capture_the_brirge_init(dialog) + saved_dialog = dialog + add_dialog("",0,"duty_girl_capture_the_brirge_init_0") + add_dialog(0,1,"duty_girl_capture_the_brirge_init_1",nil,"dialogs_duty_girl.duty_girl_capture_the_brirge") +end + +function duty_girl_capture_the_brirge_join_con(a,b,dialog_name,pre_pid,cur_pid) + if (HI("duty_girl_capture_the_brirge_done") or HI("duty_girl_capture_the_brirge_fail")) then + return false + end + + local npc = dialogs.who_is_npc(a,b) + return HI("duty_girl_capture_the_brirge_init") and NI("duty_girl_capture_the_brirge_join") and xr_conditions.npc_on_level(db.actor,npc,{"l10_red_forest"}) +end + +function duty_girl_capture_the_brirge_done_con(a,b,dialog_name,pre_pid,cur_pid) + if (HI("duty_girl_capture_the_brirge_done") or HI("duty_girl_capture_the_brirge_fail")) then + return false + end + + return HI("duty_girl_capture_the_brirge_dead") and NI("duty_girl_capture_the_brirge_reward") +end + +function duty_girl_capture_the_brirge_done(dialog) + saved_dialog = dialog + add_dialog("",0,"duty_girl_capture_the_brirge_done_0") + local action = { + "dialogs_duty_girl.give_money_20000", + "dialogs_duty_girl.GI_duty_girl_capture_the_brirge_reward", + } + add_dialog(0,1,"duty_girl_capture_the_brirge_done_1",nil,action) +end + +--[[---------------------------------------------------------------------------------------------------- + Others +------------------------------------------------------------------------------------------------------]] +function red_duty_outpost_trader_concern_hostile(dialog) + saved_dialog = dialog + add_dialog("",0,"red_duty_outpost_trader_concern_hostile_0") + add_dialog(0,1,"red_duty_outpost_trader_concern_hostile_1") +end + +function meet_guid_duty_outpost(dialog) + saved_dialog = dialog + add_dialog("",0,"meet_guid_duty_outpost_list_0") + add_dialog(0,1,"meet_guid_duty_outpost_list_1") +end + +function travel_guid_duty_outpost(dialog) + saved_dialog = dialog + local action = {} + + add_dialog("",0,"travel_guid_duty_outpost_0") + add_dialog(0,1,"travel_guid_duty_outpost_1") + + action = { "dialogs_duty_girl.lost_money_1000","dialogs_mlr.l05_bar_guid" } + add_dialog(1,2,"travel_guid_duty_outpost_2","dialogs_duty_girl.have_money_1000",action) + + action = { "dialogs_duty_girl.lost_money_2000","dialogs_mlr.zaton_guid" } + add_dialog(1,3,"travel_guid_duty_outpost_3","dialogs_duty_girl.have_money_2000",action) + + action = { "dialogs_duty_girl.lost_money_3000","dialogs_mlr.garbage_guid" } + add_dialog(1,4,"travel_guid_duty_outpost_4","dialogs_duty_girl.have_money_3000",action) + + action = { "dialogs_duty_girl.lost_money_4000","dialogs_mlr.yantar_guid" } + add_dialog(1,5,"travel_guid_duty_outpost_5","dialogs_duty_girl.have_money_4000",action) + + action = { "dialogs_duty_girl.lost_money_5000","dialogs_mlr.agroprom_guid_military" } + add_dialog(1,6,"travel_guid_duty_outpost_6","dialogs_duty_girl.have_money_5000",action) + + action = { "dialogs_duty_girl.lost_money_6000","dialogs_mlr.escape_village_guid" } + add_dialog(1,7,"travel_guid_duty_outpost_7","dialogs_duty_girl.have_money_6000",action) + + action = { "dialogs_duty_girl.lost_money_6000","dialogs_mlr.marsh_guid" } + add_dialog(1,8,"travel_guid_duty_outpost_8","dialogs_duty_girl.have_money_6000",action) + add_dialog(1,9,"travel_guid_duty_outpost_9") +end + +function travel_guid_duty_outpost_from_others_1(str) + return strformat(game.translate_string("travel_guid_duty_outpost_from_others_1"),str) +end + +function travel_guid_duty_outpost_from_others_2(str) + return strformat(game.translate_string("travel_guid_duty_outpost_from_others_2"),str) +end + +function travel_guid_duty_outpost_from_others_1000(dialog) + saved_dialog = dialog + local txt, action = "", {} + + add_dialog("",0,"travel_guid_duty_outpost_from_others_0") + + txt = travel_guid_duty_outpost_from_others_1(1000) + add_dialog(0,1,txt) + + txt = travel_guid_duty_outpost_from_others_2(1000) + action = {"dialogs_duty_girl.lost_money_1000","dialogs_duty_girl.change_lvl_to_duty_outpost"} + add_dialog(1,2,txt,"dialogs_duty_girl.have_money_1000",action) + + add_dialog(1,3,"travel_guid_duty_outpost_from_others_3") +end + +function travel_guid_duty_outpost_from_others_2000(dialog) + saved_dialog = dialog + local txt, action = "", {} + + add_dialog("",0,"travel_guid_duty_outpost_from_others_0") + + txt = travel_guid_duty_outpost_from_others_1(2000) + add_dialog(0,1,txt) + + txt = travel_guid_duty_outpost_from_others_2(2000) + action = {"dialogs_duty_girl.lost_money_2000","dialogs_duty_girl.change_lvl_to_duty_outpost"} + add_dialog(1,2,txt,"dialogs_duty_girl.have_money_2000",action) + + add_dialog(1,3,"travel_guid_duty_outpost_from_others_3") +end + +function travel_guid_duty_outpost_from_others_3000(dialog) + saved_dialog = dialog + local txt, action = "", {} + + add_dialog("",0,"travel_guid_duty_outpost_from_others_0") + + txt = travel_guid_duty_outpost_from_others_1(3000) + add_dialog(0,1,txt) + + txt = travel_guid_duty_outpost_from_others_2(3000) + action = {"dialogs_duty_girl.lost_money_3000","dialogs_duty_girl.change_lvl_to_duty_outpost"} + add_dialog(1,2,txt,"dialogs_duty_girl.have_money_3000",action) + + add_dialog(1,3,"travel_guid_duty_outpost_from_others_3") +end + +function travel_guid_duty_outpost_from_others_4000(dialog) + saved_dialog = dialog + local txt, action = "", {} + + add_dialog("",0,"travel_guid_duty_outpost_from_others_0") + + txt = travel_guid_duty_outpost_from_others_1(4000) + add_dialog(0,1,txt) + + txt = travel_guid_duty_outpost_from_others_2(4000) + action = {"dialogs_duty_girl.lost_money_4000","dialogs_duty_girl.change_lvl_to_duty_outpost"} + add_dialog(1,2,txt,"dialogs_duty_girl.have_money_4000",action) + + add_dialog(1,3,"travel_guid_duty_outpost_from_others_3") +end + +function travel_guid_duty_outpost_from_others_5000(dialog) + saved_dialog = dialog + local txt, action = "", {} + + add_dialog("",0,"travel_guid_duty_outpost_from_others_0") + + txt = travel_guid_duty_outpost_from_others_1(5000) + add_dialog(0,1,txt) + + txt = travel_guid_duty_outpost_from_others_2(5000) + action = {"dialogs_duty_girl.lost_money_5000","dialogs_duty_girl.change_lvl_to_duty_outpost"} + add_dialog(1,2,txt,"dialogs_duty_girl.have_money_5000",action) + + add_dialog(1,3,"travel_guid_duty_outpost_from_others_3") +end + +function travel_guid_duty_outpost_from_others_6000(dialog) + saved_dialog = dialog + local txt, action = "", {} + + add_dialog("",0,"travel_guid_duty_outpost_from_others_0") + + txt = travel_guid_duty_outpost_from_others_1(6000) + add_dialog(0,1,txt) + + txt = travel_guid_duty_outpost_from_others_2(6000) + action = {"dialogs_duty_girl.lost_money_6000","dialogs_duty_girl.change_lvl_to_duty_outpost"} + add_dialog(1,2,txt,"dialogs_duty_girl.have_money_6000",action) + + add_dialog(1,3,"travel_guid_duty_outpost_from_others_3") +end + +--[[---------------------------------------------------------------------------------------------------- + Task +------------------------------------------------------------------------------------------------------]] +function duty_girl_hunting_chimera() + task_manager.get_task_manager():give_task("duty_girl_hunting_chimera") +end + +function duty_girl_monolith_elite() + task_manager.get_task_manager():give_task("duty_girl_monolith_elite") +end + +function duty_girl_loot_stash() + task_manager.get_task_manager():give_task("duty_girl_loot_stash") +end + +function duty_girl_capture_the_brirge() + task_manager.get_task_manager():give_task("duty_girl_capture_the_brirge") +end + +--[[---------------------------------------------------------------------------------------------------- + Info +------------------------------------------------------------------------------------------------------]] +function GI_duty_girl_first_meet(a,b) + return GI("duty_girl_first_meet") +end + +function GI_duty_girl_hunting_chimera_move(a,b) + return GI("duty_girl_hunting_chimera_move") +end + +function GI_duty_girl_hunting_chimera_reward(a,b) + return GI("duty_girl_hunting_chimera_reward") +end + +function GI_duty_girl_monolith_elite_join(a,b) + return GI("duty_girl_monolith_elite_join") +end + +function GI_duty_girl_monolith_elite_reward(a,b) + return GI("duty_girl_monolith_elite_reward") +end + +function GI_duty_girl_capture_the_brirge_reward(a,b) + return GI("duty_girl_capture_the_brirge_reward") +end + +--[[---------------------------------------------------------------------------------------------------- + Phrases +------------------------------------------------------------------------------------------------------]] +function get_phrase_monolith_elite_join_0(a,b) + return NI("duty_girl_monolith_elite_supply") and + GT("duty_girl_monolith_elite_join_0") or + GT("duty_girl_monolith_elite_join_2") +end + +function get_phrase_monolith_elite_join_1(a,b) + return NI("duty_girl_monolith_elite_supply") and + GT("duty_girl_monolith_elite_join_1") or " " +end + +function action_monolith_elite_join(a,b) + if NI("duty_girl_monolith_elite_supply") then + give_item_monolith_elite_supply(a,b) + else + GI("duty_girl_monolith_elite_join") + dialogs.break_dialog(a,b) + end +end + +function get_phrase_capture_the_brirge_join_0(a,b) + return NI("duty_girl_capture_the_brirge_supply") and + GT("duty_girl_capture_the_brirge_join_0") or + GT("duty_girl_capture_the_brirge_join_2") +end + +function get_phrase_capture_the_brirge_join_1(a,b) + return NI("duty_girl_capture_the_brirge_supply") and + GT("duty_girl_capture_the_brirge_join_1") or " " +end + +function action_capture_the_brirge_join(a,b) + if NI("duty_girl_capture_the_brirge_supply") then + give_item_capture_the_brirge_join(a,b) + else + GI("duty_girl_capture_the_brirge_join") + dialogs.break_dialog(a,b) + end +end + +--[[---------------------------------------------------------------------------------------------------- + Utilites +------------------------------------------------------------------------------------------------------]] +function give_money_8000(a,b) + return dialogs.relocate_money_to_actor(a,b,8000) +end + +function give_money_12000(a,b) + return dialogs.relocate_money_to_actor(a,b,12000) +end + +function give_money_20000(a,b) + return dialogs.relocate_money_to_actor(a,b,20000) +end + +function have_money_1000(a,b) + return mlr_utils.have_money(1000) +end + +function have_money_2000(a,b) + return mlr_utils.have_money(2000) +end + +function have_money_3000(a,b) + return mlr_utils.have_money(3000) +end + +function have_money_4000(a,b) + return mlr_utils.have_money(4000) +end + +function have_money_5000(a,b) + return mlr_utils.have_money(5000) +end + +function have_money_6000(a,b) + return mlr_utils.have_money(6000) +end + +function lost_money_1000(a,b) + return dialogs.relocate_money_from_actor(a,b,1000) +end + +function lost_money_2000(a,b) + return dialogs.relocate_money_from_actor(a,b,2000) +end + +function lost_money_3000(a,b) + return dialogs.relocate_money_from_actor(a,b,3000) +end + +function lost_money_4000(a,b) + return dialogs.relocate_money_from_actor(a,b,4000) +end + +function lost_money_5000(a,b) + return dialogs.relocate_money_from_actor(a,b,5000) +end + +function lost_money_6000(a,b) + return dialogs.relocate_money_from_actor(a,b,6000) +end + +local function give_items(p) + if not(p and is_not_empty(p)) then return end + + for sec,num in pairs(p) do + if (sec and num) then + if (IsItem("ammo",sec)) then + alife_create_item(sec,db.actor,{ammo = num}) + else + for k=1,num do + alife_create_item(sec,db.actor) + end + end + news_manager.relocate_item(db.actor,"in",sec,num) + end + end +end + +function give_item_monolith_elite_supply(a,b) + give_items({bandage = 5, medkit_army = 3}) + GI("duty_girl_monolith_elite_supply") +end + +function give_item_capture_the_brirge_join(a,b) + give_items({bandage = 5, medkit_army = 3}) + GI("duty_girl_capture_the_brirge_supply") +end + +function change_lvl_to_duty_outpost(a,b) + if (db.actor:is_talking()) then + db.actor:stop_talk() + end + local smart = SIMBOARD.smarts_by_names["red_smart_terrain_bridge"] + if (smart) then + ChangeLevel(vector():set(-118,5,-256),smart.m_level_vertex_id,smart.m_game_vertex_id,vector():set(0,0,-1),true) + end +end \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/scripts/gameplay_duty_girl.script b/mods/Duty Expansion/gamedata/scripts/gameplay_duty_girl.script new file mode 100644 index 00000000..6e229b8e --- /dev/null +++ b/mods/Duty Expansion/gamedata/scripts/gameplay_duty_girl.script @@ -0,0 +1,136 @@ +local HI = has_alife_info +local GI = give_info +local DI = disable_info +function NI(str) + return not (has_alife_info(str)) +end + +--[[---------------------------------------------------------------------------------------------------- + Main +------------------------------------------------------------------------------------------------------]] +function duty_girl_init() + if (NI("duty_girl_init")) then + if not (get_story_se_object("squad_duty_girl")) then + local smart = SIMBOARD.smarts_by_names["bar_dolg_general"] + local squad = SIMBOARD:create_squad(smart,"squad_duty_girl") + --[[ + if (squad) then + for k in squad:squad_members() do + local se = k.id and alife():object(k.id) + if (se) then + local sim = alife() + for i=1,65534 do + local wpn = sim:object(i) + if (wpn and wpn.parent_id and (wpn.parent_id == se.id) and string.find(wpn:name(),"wpn_"))then + safe_release_manager.release(wpn) + end + end + alife():create("wpn_groza",se.position,se.m_level_vertex_id,se.m_game_vertex_id,se.id) + end + end + end + --]] + end + if (get_story_se_object("squad_duty_girl")) then + GI("duty_girl_init") + end + end +end + +function anna_no_hip_allowed() + local ann = get_story_se_object("stalker_duty_girl") + if (ann and alife():has_info(ann.id,"npcx_is_companion")) then + local hip = get_story_se_object("devushka") + if (hip and alife():has_info(hip.id,"npcx_is_companion")) then + local npc = db.storage[ann.id] and db.storage[ann.id].object or level.object_by_id(ann.id) + if (npc) then + dialogs_axr_companion.remove_companions_from_squad(db.actor,npc) + end + end + else + return true + end +end + +function actor_on_first_update() + duty_girl_init() + CreateTimeEvent(AC_ID,"anna_no_hip_allowed",1000,anna_no_hip_allowed) +end + +function npcs_friendly_to_community(npc_1,npc_2,com) + local com_1 = npc_1 and character_community(npc_1) + local com_2 = npc_2 and character_community(npc_2) + if (com_1 and com_2 and (not game_relations.is_factions_enemies(com_1,com)) and (not game_relations.is_factions_enemies(com_2,com))) then + return true + end + return false +end + +function npc_on_before_hit(npc,shit,bone_id,flags) + if (npc and string.find(npc:name(),"stalker_duty_girl")) then + flags.ret_value = false + end +end + +function on_enemy_eval(npc,ene,flags) + if (npc:has_info("npcx_is_companion") or ene:has_info("npcx_is_companion")) then + local com = character_community(db.actor) + if (com and npcs_friendly_to_community(npc,ene,com)) then + flags.override = true + flags.result = false + end + end +end +--[[ +function npc_on_choose_weapon(npc,cur_wpn,flags) + if not (npc and unique_character_storage[npc:section()] and unique_character_storage[npc:section()].weapon) then + return + end + + local wpn_section = unique_character_storage[npc:section()].weapon + + if not (wpn_section and (wpn_section ~= "") and (wpn_section ~= "nil")) then + return + end + + if (cur_wpn and (cur_wpn:section() == wpn_section)) then + return + end + + local function itr(npc,itm) + if (itm and (itm:section() ~= wpn_section) and IsWeapon(itm)) then + local se = alife():object(itm:id()) + if (se) then + safe_release_manager.release(se) + end + end + end + npc:iterate_inventory(itr,npc) + + if (npc:object(wpn_section)) then + return + end + alife():create(wpn_section,npc:position(),npc:level_vertex_id(),npc:game_vertex_id(),npc:id()) +end +--]] + +--[[---------------------------------------------------------------------------------------------------- + Registers +------------------------------------------------------------------------------------------------------]] +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) + RegisterScriptCallback("npc_on_before_hit",npc_on_before_hit) + RegisterScriptCallback("on_enemy_eval",on_enemy_eval) + --RegisterScriptCallback("npc_on_choose_weapon",npc_on_choose_weapon) +end + +--[[---------------------------------------------------------------------------------------------------- + Debug +------------------------------------------------------------------------------------------------------]] +--[[ +cmd = debug_cmd_list.command_get_list() + +function cmd.chan() + duty_girl_init() +end +--]] \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/scripts/gameplay_duty_outpost.script b/mods/Duty Expansion/gamedata/scripts/gameplay_duty_outpost.script new file mode 100644 index 00000000..61f0c74f --- /dev/null +++ b/mods/Duty Expansion/gamedata/scripts/gameplay_duty_outpost.script @@ -0,0 +1,149 @@ + +local HI = has_alife_info +local GI = give_info +local DI = disable_info +function NI(str) + return not (has_alife_info(str)) +end + +local storage_data = {} + +function reinforce_squad(actor,obj,p) + local squad = p and p[1] and get_story_se_object(p[1]) + local smart = squad and squad.smart_id and db.smart_terrain_by_id[squad.smart_id] + if not (squad and smart) then + return + end + + local lst = ini_sys:r_string_ex(squad:section_name(),"npc_random") + lst = lst and parse_names(lst) + + local str = ini_sys:r_string_ex(squad:section_name(),"npc_in_squad") + str = str and str_explode(str,",") + local num = str and (tonumber(str[2]) or tonumber(str[1])) + + --printf("GhenTuong: refill_squad %s",squad:section_name()) + if (lst and num) then + local n = tonumber(p[2]) or 1 + for k=1,n do + if (squad:npc_count() < num) then + local sec = lst[math.random(#lst)] + local commander = alife_object(squad:commander_id()) + + if (sec and ini_sys:section_exist(sec) and commander) then + local pos = commander.position + local vid = commander.m_level_vertex_id + local gid = commander.m_game_vertex_id + + local id = squad:add_squad_member(sec,pos,vid,gid) + local se = id and alife_object(id) + if (se) then + smart:register_npc(se) + SIMBOARD:setup_squad_and_group(se) + end + squad:update() + end + end + end + end +end + +function clean_mess(actor,smart,p) + if (HI("duty_outpost_clean_mess")) then + return + end + local zone = db.zone_by_name["red_smart_terrain_bridge_surge_hide_a1"] + if (smart and zone) then + local section_list = { + ["physic_destroyable_object"] = true, + ["explosive_barrel_low"] = true, + ["explosive_hide"] = true, + } + for id=1,65534 do + local se = alife():object(id) + if (se and section_list[se:section_name()] and simulation_objects.is_on_the_same_level(se,smart) and zone:inside(se.position)) then + safe_release_manager.release(se) + printf("Release [%s]",se:name()) + end + end + GI("duty_outpost_clean_mess") + end +end + +function play_sound(actor,obj,p) + if (p and p[1]) then + local snd = xr_sound.set_sound_play(obj:id(),p[1]) + if (snd and tonumber(p[2]) and (snd.volume ~= tonumber(p[2]))) then + snd.volume = tonumber(p[2]) + end + end +end + +function level_is_red_forest() + return (level.name() == "l05_bar") +end + +function npcs_friendly_to_community(npc_1,npc_2,com) + local com_1 = npc_1 and character_community(npc_1) + local com_2 = npc_2 and character_community(npc_2) + --printf("GhenTuong: %s %s %s %s %s",com_1,com_2,com,game_relations.is_factions_enemies(com_1,com),game_relations.is_factions_enemies(com_2,com)) + if (com_1 and com_2 and (not game_relations.is_factions_enemies(com_1,com)) and (not game_relations.is_factions_enemies(com_2,com))) then + return true + end + return false +end + +function npc_on_before_hit(npc,shit,bone_id,flags) + if not (HI("red_bridge_outpost") and level_is_red_forest()) then + return + end + if (storage_data.actor_crime) then + return + end + if (shit and shit.draftsman) then + if (shit.draftsman:id() == AC_ID) then + if (npcs_friendly_to_community(npc,shit.draftsman,"dolg")) then + storage_data.actor_crime = true + end + end + end +end + +function on_enemy_eval(npc,ene,flags) + if not (HI("red_bridge_outpost") and level_is_red_forest()) then + return + end + if not (IsStalker(npc) and IsStalker(ene)) then + return + end + if (npcs_friendly_to_community(npc,ene,"dolg")) then + if (storage_data.actor_crime and (ene:id() == AC_ID)) then + return + end + flags.override = true + flags.result = false + end +end + +function save_state(m_data) + m_data.gameplay_duty_outpost_storage_data = storage_data +end + +function load_state(m_data) + storage_data = m_data.gameplay_duty_outpost_storage_data or {} +end + +function on_level_changing() + storage_data.actor_crime = nil +end + +--[[---------------------------------------------------------------------------------------------------- + Registers +------------------------------------------------------------------------------------------------------]] +function on_game_start() + RegisterScriptCallback("save_state",save_state) + RegisterScriptCallback("load_state",load_state) + RegisterScriptCallback("on_level_changing",on_level_changing) + RegisterScriptCallback("npc_on_before_hit",npc_on_before_hit) + RegisterScriptCallback("on_enemy_eval",on_enemy_eval) +end \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/scripts/gameplay_misc_encounter.script b/mods/Duty Expansion/gamedata/scripts/gameplay_misc_encounter.script new file mode 100644 index 00000000..240833ca --- /dev/null +++ b/mods/Duty Expansion/gamedata/scripts/gameplay_misc_encounter.script @@ -0,0 +1,230 @@ + +local HI = has_alife_info +local GI = give_info +local DI = disable_info +function NI(str) + return not (has_alife_info(str)) +end + +function create_squad(smart_name,section) + local smart = SIMBOARD.smarts_by_names[smart_name] + if (smart and not get_story_se_object(section)) then + SIMBOARD:create_squad(smart,section) + end + return get_story_se_object(section) +end + +function kill_common_enemy(enemy,npc,p) + if (xr_conditions.is_enemy_actor_or_companion(enemy,npc,p)) then + return + end + if (get_object_story_id(enemy:id())) then + return + end + local squad = get_object_squad(enemy) + if (squad and squad.common and (not get_object_story_id(squad.id))) then + local function itr(npc_id,ene_id) + local obj = npc_id and level.object_by_id(npc_id) + local ene = ene_id and level.object_by_id(ene_id) + if (obj and obj:alive() and ene and ene:alive()) then + local h = hit() + h.power = 1 + h.direction = vector():set(0,-1,0) + h.bone = "bip01_spine" + h.draftsman = obj + h.impulse = 0 + h.type = hit.wound + ene:hit(h) + end + return true + end + CreateTimeEvent(npc:id(),"kill_common_enemy" .. enemy:id(),0,itr,npc:id(),enemy:id()) + end +end + +function actor_sprint(actor,npc,p) + if (IsMoveState("mcSprint")) then + return true + end + return false +end + +function ray_cast_to_actor_le(actor,npc,p) + local act_pos = db.actor and db.actor:position() + local npc_pos = npc and npc:position() + if (act_pos and npc_pos and tonumber(p[1])) then + local dir = vector():set((act_pos):sub(npc_pos)):normalize() + local pick = ray_pick() + pick:set_position(vector():set(npc_pos.x,npc_pos.y+0.5,npc_pos.z)) + pick:set_direction(dir) + pick:set_ignore_object(db.actor) + pick:set_flags(2) + pick:set_range(tonumber(p[1])+5) + pick:query() + local distance = pick:get_distance() + if (distance and (distance < tonumber(p[1]))) then + return true + end + end + return false +end + +--[[---------------------------------------------------------------------------------------------------- + Quests +------------------------------------------------------------------------------------------------------]] +function lure_prey_init() + if (NI("me_lure_prey_init")) then + local smart = SIMBOARD.smarts_by_names["rad2_prip_teleport"] + if (smart) then + SIMBOARD:create_squad(smart,"squad_lure_prey_controller_1") + SIMBOARD:create_squad(smart,"squad_lure_prey_phantom") + + local p = vector():set(663.0,-43.60,169.5) + alife():create("merc_outfit",vec_add(p,vector():set(-0.2,0.0,0.0)),smart.m_level_vertex_id,smart.m_game_vertex_id) + alife():create("helm_m40",vec_add(p,vector():set(-0.2,0.0,0.4)),smart.m_level_vertex_id,smart.m_game_vertex_id) + alife():create("wpn_lr300",vec_add(p,vector():set(0.2,0.0,0.0)),smart.m_level_vertex_id,smart.m_game_vertex_id) + alife():create("ammo_5.56x45_fmj",vec_add(p,vector():set(0.6,0.0,0.3)),smart.m_level_vertex_id,smart.m_game_vertex_id) + alife():create("ammo_5.56x45_fmj",vec_add(p,vector():set(0.6,0.0,0.1)),smart.m_level_vertex_id,smart.m_game_vertex_id) + alife():create("ammo_5.56x45_fmj",vec_add(p,vector():set(0.6,0.0,-0.1)),smart.m_level_vertex_id,smart.m_game_vertex_id) + alife():create("ammo_5.56x45_fmj",vec_add(p,vector():set(0.4,0.0,0.3)),smart.m_level_vertex_id,smart.m_game_vertex_id) + alife():create("ammo_5.56x45_fmj",vec_add(p,vector():set(0.4,0.0,0.1)),smart.m_level_vertex_id,smart.m_game_vertex_id) + alife():create("ammo_5.56x45_fmj",vec_add(p,vector():set(0.4,0.0,-0.1)),smart.m_level_vertex_id,smart.m_game_vertex_id) + alife():create("grenade_f1",vec_add(p,vector():set(0.6,0.0,-0.3)),smart.m_level_vertex_id,smart.m_game_vertex_id) + alife():create("grenade_f1",vec_add(p,vector():set(0.6,0.0,-0.3)),smart.m_level_vertex_id,smart.m_game_vertex_id) + end + GI("me_lure_prey_init") + end +end + +function lure_prey_before_hit(npc,shit,bone_id,flags) + if (shit.draftsman and (shit.draftsman:id() == AC_ID)) then + if (NI("me_lure_prey_argo")) then + GI("me_lure_prey_argo") + end + return + end + flags.ret_value = false +end + +function lure_prey_set_stalker(actor,npc,p) + if (db.actor and npc) then + local com_1 = db.actor:character_community() + local com_2 = npc:character_community() + if (com_1 and com_2 and not string.find(com_1,com_2)) then + local str = string.gsub(com_1,"actor_","") + npc:set_character_community(str) + end + end +end + +--[[---------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------------]] +function bloodsucker_val_init() + if (NI("me_bloodsucker_val_init")) then + local smart = SIMBOARD.smarts_by_names["val_smart_terrain_1_2"] + if (smart) then + SIMBOARD:create_squad(smart,"squad_bloodsucker_val_1") + SIMBOARD:create_squad(smart,"squad_bloodsucker_val_2") + SIMBOARD:create_squad(smart,"squad_bloodsucker_val_3") + end + GI("me_bloodsucker_val_init") + end +end + +function bloodsucker_val_actor_sprint(actor,npc,p) + if not (IsMoveState("mcSprint")) then + return false + end + + local pos = db.actor and db.actor:position() + if not (pos) then + return false + end + + if not (170 < pos.x and pos.x < 177) then + return false + end + if not (-280 < pos.z and pos.z < -263) then + return false + end + return true +end + +function bloodsucker_val_dead(actor,obj,p) + if (obj) then + local sec = {"squad_bloodsucker_val_1","squad_bloodsucker_val_2","squad_bloodsucker_val_3"} + for i,v in pairs (sec) do + if (string.find(obj:section_name(),v)) then + for ii,vv in pairs(sec) do + if (not string.find(obj:section_name(),vv) and get_story_se_object(vv)) then + return + end + end + if (NI("me_bloodsucker_val_dead")) then + GI("me_bloodsucker_val_dead") + end + return + end + end + end +end + +--[[---------------------------------------------------------------------------------------------------- +------------------------------------------------------------------------------------------------------]] +function sleeping_snork_init() + if (NI("me_sleeping_snork_init")) then + create_squad("jup_b47","squad_sleeping_bloodsucker_jup_1") + create_squad("jup_b47","squad_sleeping_bloodsucker_jup_2") + --create_squad("jup_b47","squad_sleeping_bloodsucker_jup_3") + GI("me_sleeping_snork_init") + end +end + + +--[[---------------------------------------------------------------------------------------------------- + Registers +------------------------------------------------------------------------------------------------------]] +function actor_on_first_update() + lure_prey_init() + bloodsucker_val_init() +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end + + +--[[---------------------------------------------------------------------------------------------------- + Debug +------------------------------------------------------------------------------------------------------]] +--[[ +cmd = debug_cmd_list.command_get_list() + +function cmd.misc1() + lure_prey_init() + story_mercenary_leader() +end + +function cmd.misc2() + bloodsucker_val_init() +end +function cmd.misc2kill1() + xr_effects.kill_squad(nil,nil,{"squad_bloodsucker_val_1"}) +end +function cmd.misc2kill2() + xr_effects.kill_squad(nil,nil,{"squad_bloodsucker_val_2"}) +end +function cmd.misc2kill3() + xr_effects.kill_squad(nil,nil,{"squad_bloodsucker_val_3"}) +end + +function cmd.misc3() + sleeping_snork_init() +end +function cmd.misc3kill() + xr_effects.kill_squad(nil,nil,{"squad_sleeping_snork_1"}) + xr_effects.kill_squad(nil,nil,{"squad_sleeping_snork_2"}) + xr_effects.kill_squad(nil,nil,{"squad_sleeping_snork_3"}) +end + +--]] \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/scripts/smart_terrain_ex.script b/mods/Duty Expansion/gamedata/scripts/smart_terrain_ex.script new file mode 100644 index 00000000..b8cc583a --- /dev/null +++ b/mods/Duty Expansion/gamedata/scripts/smart_terrain_ex.script @@ -0,0 +1,303 @@ + +local STEP_SIZE = 5 +local STEP_SIZE_OFFLINE = 1 + +local _mej = { + ['logic@bar_zastava_guard_1_walk'] = "logic@duty_guard1", + ['logic@bar_zastava_guard_2_walk'] = "logic@duty_guard2", + ['logic@bar_zastava_guard_3_walk'] = "logic@duty_guard3", + ['logic@bar_zastava_guard_4_walk'] = "logic@duty_guard4", + ['logic@bar_zastava_guard_5_walk'] = "logic@duty_guard5", + ['logic@bar_zastava_guard_6_walk'] = "logic@duty_guard6", + ['logic@bar_zastava_guard_7_walk'] = "logic@duty_guard7", + ['logic@bar_zastava_guard_8_walk'] = "logic@duty_guard8", + ['logic@bar_zastava_guard_9_walk'] = "logic@duty_guard9", + + ['logic@follower_bar_zastava_guard_1_walk'] = "logic@duty_guard1", + ['logic@follower_bar_zastava_guard_2_walk'] = "logic@duty_guard2", + ['logic@follower_bar_zastava_guard_4_walk'] = "logic@duty_guard4", + ['logic@follower_bar_zastava_guard_5_walk'] = "logic@duty_guard5", + ['logic@follower_bar_zastava_guard_6_walk'] = "logic@duty_guard6", + ['logic@follower_bar_zastava_guard_7_walk'] = "logic@duty_guard7", + ['logic@follower_bar_zastava_guard_8_walk'] = "logic@duty_guard8", +} +local function allowed(a) + -- printf('allowed: %s',a.section) + if not _mej[a.section] then + return true + end + for k in pairs(db.storage) do + if tonumber(k) and db.storage[k] and db.storage[k].section_logic == _mej[a.section] then + -- printf('[%s] disallowed because [%s] (%s) taken', a.section, db.storage[k].section_logic, _mej[a.section]) + return false + end + end + return true +end + +local function job_avail_to_npc(npc_info, job, smart) + --[[ + if (smart.dead_time[job.section]) then + return false + end + --]] + + local precond = gulag_general.get_job_precondition(job) + if (precond) then + return allowed({ section = job.section}) and precond(npc_info.se_obj, smart, job, npc_info) + end + + return true +end + +function smart_terrain.se_smart_terrain:unregister_npc(obj) + --utils_data.debug_write(strformat("%s:%s:unregister_npc %s",self:name(),self.id,obj and obj:name())) + self.arriving_npc[obj.id] = nil + + if (obj.clear_smart_terrain) then + obj:clear_smart_terrain() + end + + self:clear_job(obj.id,true) + ---[[GhenTuong: ---------------------------------------- + if (xr_logic_ex and xr_logic_ex.ignore_smart_job and xr_logic_ex.ignore_smart_job(obj)) then + return + end + ------------------------------------------------------]] + local st = db.storage[obj.id] + if (st and st.object) then + local cls = obj.clsid and obj:clsid() + + if not (cls) then + return + end + + local stype = IsStalker(nil,cls) and 0 or IsMonster(nil,cls) and 1 or IsHelicopter(nil,cls) and 3 or nil + if not (stype) then + return + end + + xr_logic.initialize_obj(st.object, st, false, db.actor, stype) + end + + --printf("self.npc_info[obj.id] = nil !!! obj.id=%s [%s]", obj.id,obj:name()) +end + + +function smart_terrain.se_smart_terrain:select_npc_job(npc_info,now,surge_started) + if (self.disabled or not self.is_on_actor_level) then + return + end + + ---[[GhenTuong: ---------------------------------------- + if (xr_logic_ex and xr_logic_ex.ignore_smart_job and xr_logic_ex.ignore_smart_job(npc_info and npc_info.se_obj)) then + return + end + ------------------------------------------------------]] + + --utils_data.debug_write(strformat("%s:select_npc_job %s",self:name())) + + if not (npc_info and npc_info.se_obj and npc_info.stype) then + return printf("%s no npc_info!",self:name()) + end + + -- reference job table according to race + local jobs = npc_info.stype == 0 and self.stalker_jobs or npc_info.stype == 1 and self.monster_jobs or npc_info.stype == 3 and self.heli_jobs + if not (jobs) then + return printf("%s no job table for %s [stype = %s]",self:name(),npc_info.se_obj:name(),npc_info.stype) + end + + local new_job + local npc_by_job_section = self.npc_by_job_section + + -- If the NPC has an existing job link, validate it and iterate job table + -- for a higher priority job according to defined STEP_SIZE + if (npc_info.job) then + + -- Make sure current job is still available + if (npc_by_job_section[npc_info.job.section] == npc_info.se_obj.id) then + + -- Make sure current job is still available + if (job_avail_to_npc(npc_info,npc_info.job,self)) then + + if (npc_info.current_index == nil or now) then + npc_info.current_index = 1 + end + + local get_job_prior = gulag_general.get_job_prior + local itr_job + local npc_id + local step = 1 + while (new_job == nil and step <= (now and #jobs or st and STEP_SIZE or STEP_SIZE_OFFLINE)) do + step = step + 1 + + if (npc_info.current_index > #jobs) then + npc_info.current_index = 1 + break + end + + -- Step through job table one step at a time looking for a higher prior job + itr_job = jobs[npc_info.current_index] + npc_info.current_index = npc_info.current_index + 1 + + npc_id = npc_by_job_section[itr_job.section] + + -- Check empty job + --if (npc_id == nil or npc_id == npc_info.se_obj.id) then + if (npc_id == nil) then + -- Find only higher priority jobs if already linked to a job + if (get_job_prior(itr_job) > get_job_prior(npc_info.job)) then + if (job_avail_to_npc(npc_info, itr_job, self)) then + -- Only take this higher priority job if when there is either no surge or if job is not in surge cover during surge; takes exclusive no matter what + if (itr_job.exclusive or not xr_conditions.surge_started() or not surge_manager.job_in_surge_cover(npc_info.se_obj,npc_info.job)) then + new_job = itr_job + npc_info.current_index = 1 + end + end + end + end + end + else + -- Job is no longer available, unlink job info + for sec,npcid in pairs(npc_by_job_section) do + if (npcid == npc_info.se_obj.id) then + npc_by_job_section[sec] = nil + end + end + npc_info.job = nil + npc_info.current_index = 1 + end + else + -- Job is not linked properly, npc_id doesn't match owner se_obj + for sec,npcid in pairs(npc_by_job_section) do + if (npcid == npc_info.se_obj.id) then + npc_by_job_section[sec] = nil + end + end + + npc_info.job = nil + npc_info.current_index = 1 + end + end + + if not (npc_info.job) then + if (npc_info.current_index == nil or now) then + npc_info.current_index = 1 + end + + local itr_job,npc_id + local step = 1 + local st = db.storage[npc_info.se_obj.id] + local STEP_SIZE_NO_JOB = #jobs + while (new_job == nil and step <= (now and STEP_SIZE_NO_JOB or st and STEP_SIZE_NO_JOB or STEP_SIZE_OFFLINE)) do + step = step + 1 + + if (npc_info.current_index > STEP_SIZE_NO_JOB) then + npc_info.current_index = 1 + break + end + + -- Step through job table one step at a time looking for a high prior job + itr_job = jobs[npc_info.current_index] + npc_info.current_index = npc_info.current_index + 1 + + npc_id = npc_by_job_section[itr_job.section] + + -- validate existing job link + if (npc_id and not self.npc_info[npc_id]) then + npc_by_job_section[itr_job.section] = nil + end + + -- Check empty job or re-take current job + if (npc_id == nil or npc_id == npc_info.se_obj.id) and (job_avail_to_npc(npc_info, itr_job, self)) then + new_job = itr_job + npc_info.current_index = 1 + end + end + + if not (new_job) then + return + end + end + + local id = npc_info.se_obj.id + -- newly selected job + if (new_job and new_job ~= npc_info.job) then + + -- Unassign npc_id from old job and unreference job section + for sec,npcid in pairs(npc_by_job_section) do + if (npcid == id) then + npc_by_job_section[sec] = nil + end + end + + -- setup table that references NPCs by their job section + npc_by_job_section[new_job.section] = id + + -- link up NPC info and references + npc_info.job = new_job + npc_info.begin_job = false + + -- grab storage and ensure object is online. + local st = self.online and db.storage[id] + + -- If NPC has storage, it is online, so switch logic + if (st and st.object) then + --xr_logic.switch_to_section(st.object, self.ltx, "nil") + npc_info.begin_job = true + empty_table(db.offline_objects[id]) + self:setup_logic(st.object) + return true + end + end + + if (npc_info.begin_job ~= true and npc_info.job) then + -- grab storage and ensure object is online. + local st = self.online and db.storage[id] + -- If NPC has storage it is online, so switch logic + if (st and st.object) then + npc_info.begin_job = true + empty_table(db.offline_objects[id]) + self:setup_logic(st.object) + return true + end + end +end + +function smart_terrain.setup_gulag_and_logic_on_spawn(obj, st, se_obj, stype, loaded) + --utils_data.debug_write(strformat("smart_terrain.setup_gulag_and_logic_on_spawn %s",obj and obj:name())) + local sim = alife() + + ---[[GhenTuong: ---------------------------------------- + if (xr_logic_ex and xr_logic_ex.ignore_smart_job and xr_logic_ex.ignore_smart_job(se_obj)) then + return + end + ------------------------------------------------------]] + + -- Expedite arrival and job assignment + local smart = se_obj.m_smart_terrain_id and se_obj.m_smart_terrain_id ~= 65535 and sim:object(se_obj.m_smart_terrain_id) + if (smart and smart:clsid() == clsid.smart_terrain) then + local npc_info = smart.npc_info[se_obj.id] + if (npc_info) then + if not (npc_info.job) then + smart:select_npc_job(npc_info,true) + local smart_task = smart.npc_info[se_obj.id].job and smart.npc_info[se_obj.id].job.alife_task + if (smart_task) then + db.spawned_vertex_by_id[se_obj.id] = smart_task:level_vertex_id() + end + elseif (npc_info.job) then + -- if already job begin then don't spawn at job + local smart_task = npc_info.begin_job ~= true and npc_info.job and npc_info.job.alife_task or nil + if (smart_task) then + db.spawned_vertex_by_id[se_obj.id] = smart_task:level_vertex_id() + end + npc_info.begin_job = true + empty_table(db.offline_objects[se_obj.id]) + smart:setup_logic(obj) + end + return + end + end + + xr_logic.initialize_obj(obj, st, loaded, db.actor, stype) +end \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/scripts/task_duty_girl.script b/mods/Duty Expansion/gamedata/scripts/task_duty_girl.script new file mode 100644 index 00000000..050efb8f --- /dev/null +++ b/mods/Duty Expansion/gamedata/scripts/task_duty_girl.script @@ -0,0 +1,553 @@ + +local HI = has_alife_info +local GI = give_info +local DI = disable_info +function NI(str) + return not (has_alife_info(str)) +end + + +--[[---------------------------------------------------------------------------------------------------- + duty_girl_hunting_chimera +------------------------------------------------------------------------------------------------------]] +function duty_girl_hunting_chimera_status(tsk,task_id) + local sec = "squad_duty_girl_hunting_chimera" + if (tsk.stage == 0) then + if (HI("duty_girl_hunting_chimera_move")) then + local smart = SIMBOARD.smarts_by_names["gar_smart_terrain_2_4"] + local squad = SIMBOARD:create_squad(smart,sec) + tsk.stage = 1 + end + end + + if (tsk.stage == 1) then + local squad = get_story_se_object(sec) + if not (squad) then + local function message() + local npc = get_story_object("stalker_duty_girl") + if (npc and db.actor) then + if (NI("duty_girl_hunting_chimera_hunt_4") and xr_conditions.check_time_speech(db.actor,npc)) then + GI("duty_girl_hunting_chimera_hunt_4") + xr_effects.speech(db.actor,npc,{"duty_girl_hunting_chimera_hunt_4",5}) + end + end + if (HI("duty_girl_hunting_chimera_hunt_4")) then + return true + end + end + local npc = get_story_object("stalker_duty_girl") + if (npc) then + CreateTimeEvent(npc:id(),"speech",0,message) + end + tsk.stage = 2 + end + end + + if (tsk.stage == 2) then + if (NI("duty_girl_hunting_chimera_dead")) then + GI("duty_girl_hunting_chimera_dead") + end + if (HI("duty_girl_hunting_chimera_reward")) then + return "complete" + end + end +end + +function duty_girl_hunting_chimera_target(task_id,field,p,tsk) + if (field == "title") then + return task_id.."_"..field + end + + if (field == "descr") then + if (tsk.stage == 0) then + return task_id.."_"..field.."_1" + end + if (tsk.stage == 1) then + return task_id.."_"..field.."_2" + end + if (tsk.stage == 2) then + return task_id.."_"..field.."_3" + end + end + + if (field == "target") then + if (tsk.stage == 0) then + local obj = SIMBOARD.smarts_by_names["gar_smart_terrain_6_3"] + return obj and obj.id + end + if (tsk.stage == 1) or (tsk.stage == 2) then + local obj = get_story_se_object("squad_duty_girl") + return obj and obj.id + end + end +end + +function hunting_chimera_hit(npc,shit,bone_id,flags) + if (shit and shit.draftsman and IsStalker(shit.draftsman)) then + if (shit.draftsman:id() == AC_ID) then + if (NI("duty_girl_hunting_chimera_fight")) then + GI("duty_girl_hunting_chimera_fight") + end + return + end + if (shit.draftsman:has_info("npcx_is_companion") or string.find(shit.draftsman:name(),"stalker_duty_girl")) then + if (NI("duty_girl_hunting_chimera_fight")) then + GI("duty_girl_hunting_chimera_fight") + end + shit.power = shit.power / 2 + return + end + end + flags.ret_value = false +end + +--[[---------------------------------------------------------------------------------------------------- + duty_girl_monolith_elite +------------------------------------------------------------------------------------------------------]] +function duty_girl_monolith_elite_status(tsk,task_id) + if (tsk.stage == 0) then + SIMBOARD:create_squad(SIMBOARD.smarts_by_names["mil_smart_terrain_2_6"],"squad_duty_girl_monolith_elite_mono") + SIMBOARD:create_squad(SIMBOARD.smarts_by_names["mil_smart_terrain_4_5"],"squad_duty_girl_monolith_elite_duty") + tsk.stage = 1 + end + + if (tsk.stage == 1) or (tsk.stage == 2) then + local squad = get_story_se_object("squad_duty_girl_monolith_elite_mono") + local mem_num = squad and squad:npc_count() or 0 + if (mem_num ~= 0) then + -- Player attack without order + if (mem_num < 8) then + if (NI("duty_girl_monolith_elite_move")) then + GI("duty_girl_monolith_elite_move") + if (NI("duty_girl_monolith_elite_join")) then + GI("duty_girl_monolith_elite_join") + end + local function message() + local npc = get_story_object("stalker_duty_girl") + if (npc and db.actor) then + if (NI("duty_girl_monolith_elite_move_5") and xr_conditions.check_time_speech(db.actor,npc)) then + GI("duty_girl_monolith_elite_move_5") + xr_effects.speech(db.actor,npc,{"duty_girl_monolith_elite_move_5",5}) + end + if (NI("duty_girl_monolith_elite_move_6") and xr_conditions.check_time_speech(db.actor,npc)) then + GI("duty_girl_monolith_elite_move_6") + xr_effects.speech(db.actor,npc,{"duty_girl_monolith_elite_move_6",5}) + end + end + if (HI("duty_girl_monolith_elite_move_6")) then + return true + end + end + + local npc = get_story_object("stalker_duty_girl") + if (npc) then + CreateTimeEvent(npc:id(),"speech",0,message) + end + end + end + else + -- Squad is killed + local function message() + local npc = get_story_object("stalker_duty_girl") + if (npc and db.actor) then + if (NI("duty_girl_monolith_elite_move_4") and xr_conditions.check_time_speech(db.actor,npc)) then + GI("duty_girl_monolith_elite_move_4") + xr_effects.speech(db.actor,npc,{"duty_girl_monolith_elite_move_4",5}) + end + end + if (HI("duty_girl_monolith_elite_move_4")) then + return true + end + end + + local npc = get_story_object("stalker_duty_girl") + if (npc) then + CreateTimeEvent(npc:id(),"speech",0,message) + end + tsk.stage = 3 + end + + if (tsk.stage == 1) then + if (HI("duty_girl_monolith_elite_move")) then + tsk.stage = 2 + end + end + end + + if (tsk.stage == 3) then + if (NI("duty_girl_monolith_elite_dead")) then + GI("duty_girl_monolith_elite_dead") + end + if (HI("duty_girl_monolith_elite_reward")) then + return "complete" + end + end +end + +function duty_girl_monolith_elite_target(task_id,field,p,tsk) + if (field == "title") then + return task_id.."_"..field + end + + if (field == "descr") then + if (tsk.stage == 0) or (tsk.stage == 1) then + return task_id.."_"..field.."_1" + end + if (tsk.stage == 2) then + return task_id.."_"..field.."_2" + end + if (tsk.stage == 3) then + return task_id.."_"..field.."_3" + end + end + + if (field == "target") then + if (tsk.stage == 0) or (tsk.stage == 1) then + local obj = get_story_se_object("squad_duty_girl") + local sqd = get_story_se_object("squad_duty_girl_monolith_elite_duty") + if (obj and sqd and simulation_objects.is_on_the_same_level(obj,sqd)) then + return obj.id + end + return sqd and sqd.id + end + if (tsk.stage == 2) then + local obj = SIMBOARD.smarts_by_names["mil_smart_terrain_2_6"] + return obj and obj.id + end + if (tsk.stage == 3) then + local obj = get_story_se_object("squad_duty_girl") + return obj and obj.id + end + end +end + +function monolith_elite_hit(npc,shit,bone_id,flags) + if (shit and shit.draftsman and IsStalker(shit.draftsman)) then + if (shit.draftsman:id() == AC_ID) then + return + end + if (IsStalker(shit.draftsman) and shit.draftsman:has_info("npcx_is_companion") or string.find(shit.draftsman:name(),"stalker_duty_girl")) then + shit.power = shit.power / 4 + return + end + local squad = get_object_squad(shit.draftsman) + if (squad and string.find(squad:section_name(),"squad_duty_girl_monolith_elite")) then + if (string.find(npc:name(),"monolith")) then + shit.power = shit.power / 4 + else + shit.power = shit.power / 2 + end + return + end + end + flags.ret_value = false +end + +--[[---------------------------------------------------------------------------------------------------- + duty_girl_loot_stash +------------------------------------------------------------------------------------------------------]] +function duty_girl_loot_stash_status(tsk,task_id) + if (tsk.stage == 0) then + local tbl = { + "detector_advanced", + "vodka","vodka", + "bandage","bandage","bandage","bandage","bandage", + "medkit","medkit","medkit","medkit","medkit", + "ammo_5.56x45_fmj","ammo_5.56x45_fmj","ammo_5.56x45_fmj","ammo_5.56x45_fmj","ammo_5.56x45_fmj","ammo_5.56x45_fmj" + } + local sm = SIMBOARD.smarts_by_names["val_smart_terrain_1_2"] + local pos = vector():set(175.7,1,-278.6) + if (sm) then + for i,v in pairs(tbl) do + alife():create(v,pos,sm.m_level_vertex_id,sm.m_game_vertex_id) + end + local se = alife():create("wpn_lr300",pos,sm.m_level_vertex_id,sm.m_game_vertex_id) + if (se) then + save_var(db.actor,task_id,se.id) + end + end + tsk.stage = 1 + end + + if (tsk.stage == 1) then + local id = load_var(db.actor,task_id) + local se = id and alife():object(id) + if not (se and IsWeapon(se) and string.find(se:name(),"wpn_lr300") and (se.parent_id == 65535)) then + return "complete" + end + end +end + +function duty_girl_loot_stash_target(task_id,field,p,tsk) + if (field == "title") then + return task_id.."_"..field + end + + if (field == "descr") then + return task_id.."_"..field.."_1" + end + + if (field == "target") then + local id = load_var(db.actor,task_id) + local se = id and alife():object(id) + return se and se.id + end +end + +--[[---------------------------------------------------------------------------------------------------- + duty_girl_capture_the_brirge +------------------------------------------------------------------------------------------------------]] +function duty_girl_capture_the_brirge_status(tsk,task_id) + if (tsk.stage == 0) then + SIMBOARD:create_squad(SIMBOARD.smarts_by_names["red_smart_terrain_bridge"],"squad_duty_girl_capture_the_brirge_mono_1") + SIMBOARD:create_squad(SIMBOARD.smarts_by_names["red_smart_terrain_bridge"],"squad_duty_girl_capture_the_brirge_mono_2") + SIMBOARD:create_squad(SIMBOARD.smarts_by_names["red_smart_terrain_5_5"],"squad_duty_girl_capture_the_brirge_duty") + SIMBOARD:create_squad(SIMBOARD.smarts_by_names["red_smart_terrain_5_5"],"squad_duty_girl_capture_the_brirge_lone") + tsk.stage = 1 + end + + if (tsk.stage == 1) or (tsk.stage == 2) then + local squad_1 = get_story_se_object("squad_duty_girl_capture_the_brirge_mono_1") + local squad_2 = get_story_se_object("squad_duty_girl_capture_the_brirge_mono_2") + local mem_num = (squad_1 and squad_1:npc_count() or 0) + (squad_2 and squad_2:npc_count() or 0) + if (mem_num ~= 0) then + -- Player attack without order + if (mem_num < 20) then + if (NI("duty_girl_capture_the_brirge_move")) then + GI("duty_girl_capture_the_brirge_move") + if (NI("duty_girl_capture_the_brirge_join")) then + GI("duty_girl_capture_the_brirge_join") + end + + local function message() + local npc = get_story_object("stalker_duty_girl") + if (npc and db.actor) then + if (NI("duty_girl_capture_the_brirge_move_5") and xr_conditions.check_time_speech(db.actor,npc)) then + GI("duty_girl_capture_the_brirge_move_5") + xr_effects.speech(db.actor,npc,{"duty_girl_capture_the_brirge_move_5",5}) + end + if (NI("duty_girl_capture_the_brirge_move_6") and xr_conditions.check_time_speech(db.actor,npc)) then + GI("duty_girl_capture_the_brirge_move_6") + xr_effects.speech(db.actor,npc,{"duty_girl_capture_the_brirge_move_6",5}) + end + end + if (HI("duty_girl_capture_the_brirge_move_6")) then + return true + end + end + + local npc = get_story_object("stalker_duty_girl") + if (npc) then + CreateTimeEvent(npc:id(),"speech",0,message) + end + end + end + else + -- Squad is killed + local function message() + local npc = get_story_object("stalker_duty_girl") + if (npc and db.actor) then + if (NI("duty_girl_capture_the_brirge_move_4") and xr_conditions.check_time_speech(db.actor,npc)) then + GI("duty_girl_capture_the_brirge_move_4") + xr_effects.speech(db.actor,npc,{"duty_girl_capture_the_brirge_move_4",5}) + end + end + if (HI("duty_girl_capture_the_brirge_move_4")) then + return true + end + end + + local npc = get_story_object("stalker_duty_girl") + if (npc) then + CreateTimeEvent(npc:id(),"speech",0,message) + end + tsk.stage = 3 + end + + if (tsk.stage == 1) then + if (HI("duty_girl_capture_the_brirge_move")) then + tsk.stage = 2 + end + end + end + + if (tsk.stage == 3) then + if (NI("red_bridge_outpost")) then + GI("red_bridge_outpost") + end + if (NI("duty_girl_capture_the_brirge_dead")) then + GI("duty_girl_capture_the_brirge_dead") + end + if (HI("duty_girl_capture_the_brirge_reward")) then + return "complete" + end + end +end + +function duty_girl_capture_the_brirge_target(task_id,field,p,tsk) + if (field == "title") then + return task_id.."_"..field + end + + if (field == "descr") then + if (tsk.stage == 0) or (tsk.stage == 1) then + return task_id.."_"..field.."_1" + end + if (tsk.stage == 2) then + return task_id.."_"..field.."_2" + end + if (tsk.stage == 3) then + return task_id.."_"..field.."_3" + end + end + + if (field == "target") then + if (tsk.stage == 0) or (tsk.stage == 1) then + local obj = get_story_se_object("squad_duty_girl") + local sqd = get_story_se_object("squad_duty_girl_capture_the_brirge_duty") + if (obj and sqd and simulation_objects.is_on_the_same_level(obj,sqd)) then + return obj.id + end + return sqd and sqd.id + end + if (tsk.stage == 2) then + local obj = SIMBOARD.smarts_by_names["red_smart_terrain_bridge"] + return obj and obj.id + end + if (tsk.stage == 3) then + local obj = get_story_se_object("squad_duty_girl") + return obj and obj.id + end + end +end + +function capture_the_brirge_hit(npc,shit,bone_id,flags) + if (shit and shit.draftsman and IsStalker(shit.draftsman)) then + local npc_squad = get_object_squad(npc) + local hit_squad = (shit.draftsman:id() ~= AC_ID) and get_object_squad(shit.draftsman) + if (npc_squad and string.find(npc_squad:section_name(),"squad_duty_girl_capture_the_brirge_mono")) then + if (shit.draftsman:id() == AC_ID) then + return + end + if (shit.draftsman:has_info("npcx_is_companion") or string.find(shit.draftsman:name(),"stalker_duty_girl")) then + shit.power = shit.power / 3 + return + end + if (hit_squad and string.find(hit_squad:section_name(),"squad_duty_girl_capture_the_brirge")) then + shit.power = shit.power / 3 + return + end + else + if (hit_squad and string.find(hit_squad:section_name(),"squad_duty_girl_capture_the_brirge")) then + shit.power = shit.power / 3 + return + end + end + end + flags.ret_value = false +end + +function capture_the_brirge_spawn_outpost(actor,squad,p) + local lst = { + "squad_red_duty_outpost_trader", + "squad_red_duty_outpost_medic", + "squad_red_duty_outpost_guide", + "squad_red_duty_outpost_guard_1", + "squad_red_duty_outpost_guard_2", + "squad_red_duty_outpost_visitor_1", + "squad_red_duty_outpost_visitor_2", + "squad_red_duty_outpost_visitor_3", + "squad_red_duty_outpost_visitor_4" + } + for k,sec in pairs(lst) do + if not (get_story_se_object(sec)) then + SIMBOARD:create_squad(SIMBOARD.smarts_by_names["red_smart_terrain_bridge"],sec) + end + end +end + + +--[[---------------------------------------------------------------------------------------------------- + Main +------------------------------------------------------------------------------------------------------]] +task_status_functor.duty_girl_task_status = function(tsk,task_id) + if not (task_id and tsk) then + return + end + return _G["task_duty_girl"][task_id .. "_status"](tsk,task_id) +end + +task_functor.duty_girl_task_target = function(task_id,field,p,tsk) + if not (task_id and tsk) then + return + end + return _G["task_duty_girl"][task_id .. "_target"](task_id,field,p,tsk) +end + + +--[[---------------------------------------------------------------------------------------------------- + Debug +------------------------------------------------------------------------------------------------------]] +---[[ +cmd = debug_cmd_list.command_get_list() + +function cmd.redbase() + if (NI("red_bridge_outpost")) then + GI("red_bridge_outpost") + end + xr_dynamic_object.dynamic_object(db.actor,db.actor,{"misc\\duty_outpost_object.ltx"}) + capture_the_brirge_spawn_outpost() +end + +function cmd.d1() + gameplay_duty_girl.duty_girl_init() + task_manager.get_task_manager():give_task("duty_girl_hunting_chimera") +end +function cmd.d1kill() + local squad_1 = get_story_se_object("squad_duty_girl_hunting_chimera") + if (squad_1) then + alife_release(squad_1) + end +end +function cmd.d1skip() + gameplay_duty_girl.duty_girl_init() + GI("duty_girl_hunting_chimera_done") +end + +function cmd.d2() + gameplay_duty_girl.duty_girl_init() + task_manager.get_task_manager():give_task("duty_girl_monolith_elite") +end +function cmd.d2kill() + local squad_1 = get_story_se_object("squad_duty_girl_monolith_elite_mono") + if (squad_1) then + alife_release(squad_1) + end +end + +function cmd.d3() + task_manager.get_task_manager():give_task("duty_girl_loot_stash") +end +function cmd.d3skip() + gameplay_duty_girl.duty_girl_init() + GI("duty_girl_loot_stash_done") +end + +function cmd.d4() + gameplay_duty_girl.duty_girl_init() + task_manager.get_task_manager():give_task("duty_girl_capture_the_brirge") +end + +function cmd.d4kill() + local squad_1 = get_story_se_object("squad_duty_girl_capture_the_brirge_mono_1") + local squad_2 = get_story_se_object("squad_duty_girl_capture_the_brirge_mono_2") + if (squad_1) then + alife_release(squad_1) + end + if (squad_2) then + alife_release(squad_2) + end +end + + +--]] \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/scripts/xr_dynamic_object.script b/mods/Duty Expansion/gamedata/scripts/xr_dynamic_object.script new file mode 100644 index 00000000..87ceaaa0 --- /dev/null +++ b/mods/Duty Expansion/gamedata/scripts/xr_dynamic_object.script @@ -0,0 +1,197 @@ + +local dynamic_object_storage = {} + +function dynamic_object(actor,obj,p) + local ini = p and p[1] and ini_file(p[1]) + local smart_name = ini and ini:r_string_ex("dynamic_object_configs","smart") + local smart = smart_name and SIMBOARD.smarts_by_names[smart_name] + + if not (smart) then + return + end + + if not (dynamic_object_storage[smart_name]) then + dynamic_object_storage[smart_name] = {} + end + + local lst = dynamic_object_storage[smart_name] + + local n = ini:line_count("exclusive") + for k=0,n-1 do + local r,i,v = ini:r_line("exclusive",k) + local s = get_object_config(v) + if (i and s) then + local idx = lst[i] + local sec = s.sec + local pos = s.pos + local ang = s.ang + local con = s.con and ini:r_string_to_condlist("dynamic_object_configs",s.con,"true") + if (xr_logic.pick_section_from_condlist(db.actor,obj,con) == "true") then + local se = idx and tonumber(idx.id) and alife():object(tonumber(idx.id)) + if (se and string.find(se:name(),sec)) then + -- Correct. Update object. + se.position = vector():set(pos) + se.angle = vector():set(ang) + else + -- Wrong object or doesn't exit. Try to delete the old object and create a new one. + if (se and idx.sec and string.find(se:name(),idx.sec)) then + alife_release(se) + end + local new_se = alife():create(sec,pos,smart.m_level_vertex_id,smart.m_game_vertex_id) + if (new_se) then + new_se.angle = vector():set(ang) + lst[i] = {id = tonumber(new_se.id),sec = tostring(sec)} + --printf("GhenTuong: dynamic_object create %s [%s]",new_se.id,new_se:name()) + end + end + else + if (idx) then + local se = tonumber(idx.id) and alife():object(tonumber(idx.id)) + if (se and idx.sec and string.find(se:name(),idx.sec)) then + --printf("GhenTuong: dynamic_object delete %s [%s]",se.id,se:name()) + alife_release(se) + end + lst[i] = nil + end + end + end + end + + for i,idx in pairs(lst) do + if (i and idx) then + if not (ini:line_exist("exclusive",i)) then + local se = idx and tonumber(idx.id) and alife():object(tonumber(idx.id)) + if (se and idx.sec and string.find(se:name(),idx.sec)) then + --printf("GhenTuong: dynamic_object delete %s [%s]",se.id,se:name()) + alife_release(se) + end + lst[i] = nil + end + else + lst[i] = nil + end + end +end +--[[ +if not (ini:section_exist("exclusive") and ini:line_exist("exclusive",i)) then + return +end + +local v = ini:r_string_ex("exclusive",i) +--]] + +function get_object_config(v) + local str = v and str_explode(v,"|") + local sec = str[1] and (str[1] ~= "") and (str[1] ~= "nil") and tostring(str[1]) + + local tp = str[2] and str_explode(str[2],",") or nil + local td = str[3] and str_explode(str[3],",") or nil + local pox = tp and tonumber(tp[1]) + local poy = tp and tonumber(tp[2]) + local poz = tp and tonumber(tp[3]) + local rox = td and tonumber(td[1]) and math.rad(tonumber(td[1])) + local roy = td and tonumber(td[2]) and math.rad(tonumber(td[2])) + local roz = td and tonumber(td[3]) and math.rad(tonumber(td[3])) + local con = str[4] or "nil" + + if not (pox and poy and poz and rox and roy and roz and con) then + return + end + return {sec = sec, pos = vector():set(pox,poy,poz), ang = vector():set(rox,roy,roz), con = con} +end + +function get_object(smart_name,index) + local idx = dynamic_object_storage_loaded and dynamic_object_storage[smart_name] and dynamic_object_storage[smart_name][index] + return idx and {id = tonumber(idx.id),sec = tostring(idx.sec)} +end + +--[[---------------------------------------------------------------------------------------------------- + Lighting + p[1] action + p[2] sec + p[3] bone +------------------------------------------------------------------------------------------------------]] +function light(actor,obj,p) + local sec = p[1] + local pos = p[2] and obj:bone_position(p[2]) or obj:position() + + local st = db.storage[obj:id()] + + if not (st and sec and pos) then + return + end + + if (st.dynamic_light) then + --Switch + if (st.dynamic_light.light) then + local new_state = (tonumber(p[3]) == 1) and true or false + if (st.dynamic_light.light.enabled ~= new_state) then + st.dynamic_light.light.enabled = new_state + st.dynamic_light.light:update() + end + --Position + st.dynamic_light.light:set_position(pos) + end + else + st.dynamic_light = {} + st.dynamic_light.light = script_light() + st.dynamic_light.sec = tostring(sec) + + if (st.dynamic_light.light) then + local ini = st.ini + local n = ini:line_count(sec) + for k=0,n-1 do + local result,i,v = ini:r_line(sec,k) + --Basic + if (i == "range") then + st.dynamic_light.light.range = tonumber(v) + end + if (i == "color") then + st.dynamic_light.light.color = (tonumber(v) and fcolor():set(tonumber(v))) + end + if (i == "shadow") then + st.dynamic_light.light.shadow = (v == "true") + end + --Volumetric + if (i == "volumetric") then + st.dynamic_light.light.volumetric = (v == "true") + end + if (i == "volumetric_quality") then + st.dynamic_light.light.volumetric_quality = tonumber(v) + end + if (i == "volumetric_distance") then + st.dynamic_light.light.volumetric_distance = tonumber(v) + end + if (i == "volumetric_intensity") then + st.dynamic_light.light.volumetric_intensity = tonumber(v) + end + --Texture/Light animation + if (i == "texture") then + st.dynamic_light.light.texture = tostring(v) + end + if (i == "lanim") then + st.dynamic_light.light.lanim = tostring(v) + end + if (i == "lanim_brightness") then + st.dynamic_light.light.lanim_brightness = tonumber(v) + end + end + + st.dynamic_light.light:set_position(pos) + st.dynamic_light.light:update() + end + end +end + +function save_state(m_data) + m_data.xr_dynamic_object_storage = dynamic_object_storage +end + +function load_state(m_data) + dynamic_object_storage = m_data.xr_dynamic_object_storage or {} +end + +function on_game_start() + RegisterScriptCallback("save_state",save_state) + RegisterScriptCallback("load_state",load_state) +end \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/scripts/xr_logic_ex.script b/mods/Duty Expansion/gamedata/scripts/xr_logic_ex.script new file mode 100644 index 00000000..3939a50e --- /dev/null +++ b/mods/Duty Expansion/gamedata/scripts/xr_logic_ex.script @@ -0,0 +1,1308 @@ +--[[---------------------------------------------------------------------------------------------------- + Conditions +------------------------------------------------------------------------------------------------------]] +xr_conditions.dist_to_beh = function(actor,npc,p) + local st = npc and db.storage[npc:id()] + local dt = st and st.beh and st.beh.desired_target + if (dt and (st.active_section == dt.active_section) and dt.position) then + return p and p[1] and npc:position():distance_to_sqr(dt.position) < p[1]*p[1] + end + return false +end + +xr_conditions.reach_beh = function(actor,npc,p) + local st = npc and db.storage[npc:id()] + local dt = st and st.beh and st.beh.desired_target + if (dt and (st.active_section == dt.active_section) and dt.level_vertex_id and (dt.level_vertex_id == npc:level_vertex_id())) then + return true + end + return false +end + +xr_conditions.npc_squad_name = function(actor,npc,p) + local squad = get_object_squad(npc) + if (p and p[1] and squad and string.find(squad:section_name(),p[1])) then + return true + end + return false +end + +xr_conditions.enemy_squad = function(enemy,npc,p) + local squad = get_object_squad(enemy) + if (p and p[1] and squad and string.find(squad:section_name(),p[1])) then + return true + end + return false +end + +xr_conditions.check_squad_section = function(actor,squad,p) + if (p and p[1] and squad and string.find(squad:section_name(),p[1])) then + return true + end + return false +end +xr_effects.squad_self_release = function(actor,squad,p) + return squad and squad.id and alife_release(squad) +end + +xr_conditions.check_time_speech = function(actor,npc,p) + local st = db.storage[npc:id()] + local dt = st and st.beh and st.beh.desired_target + if not (dt and dt.speech_delay_until) then + return true + end + if (dt.speech_delay_until < time_global()) then + return true + end + return false +end + +xr_effects.speech = function(actor,npc,p) + local se = npc and (type(npc.id) == "function") and alife_object(npc:id()) + se = se or (npc and (type(npc.id) == "number") and alife_object(npc.id)) + local name = se and se:character_name() + local text = p and p[1] and game.translate_string(p[1]) + if (name and text) then + dynamic_news_helper.send_tip(text,name,nil,15,"ui_npc_duty_girl_msg_image",nil,"npc") + if (tonumber(p[2])) then + local st = db.storage[npc:id()] + local dt = st and st.beh and st.beh.desired_target + if (dt) then + dt.speech_delay_until = time_global() + tonumber(p[2]) * 1000 + end + end + end +end + + +function get_waypoint(npc,section,pt) + local st = npc and db.storage[npc:id()] + if (st and st.ini and (section or st.active_section) and pt and tostring(pt)) then + local str = st.ini:r_string_ex(section or st.active_section,tostring(pt)) + if (str) then + for s in string.gmatch(str,"pos:(%A+)") do + local v = str_explode(s,",") + if (tonumber(v[1]) and tonumber(v[2]) and tonumber(v[3])) then + return vector():set(tonumber(v[1]),tonumber(v[2]),tonumber(v[3])) + end + end + end + end +end + +function set_position(actor,npc,p) + local pos = p and p[1] and p[2] and get_waypoint(npc,p[1],p[2]) + if (pos) then + npc:set_npc_position(pos) + end +end +--[[---------------------------------------------------------------------------------------------------- + Stalker state +------------------------------------------------------------------------------------------------------]] +function state_idle(actor,npc,p) + local new_state = p and p[1] + local state = npc and state_mgr.get_state(npc) + if (new_state and state and (new_state ~= state)) then + state_mgr.set_state(npc,new_state) + end +end + + +--[[---------------------------------------------------------------------------------------------------- + Movement +------------------------------------------------------------------------------------------------------]] +local function validate(npc,vid) + if (vid and vid < 4294967295 and npc:accessible(vid) and vid ~= npc:level_vertex_id()) then + return db.used_level_vertex_ids[vid] == nil or db.used_level_vertex_ids[vid] == npc:id() + end + return false +end + +local function lmove(npc,vid,st) + if (vid == nil or vid >= 4294967295) then + return + end + + if (db.used_level_vertex_ids[vid] == npc:id()) then + npc:set_dest_level_vertex_id(vid) + return vid + end + + if (st.vid) then + db.used_level_vertex_ids[st.vid] = nil + end + + if not (npc:accessible(vid)) then + local vtemp = VEC_ZERO + vid, vtemp = npc:accessible_nearest(vid and level.vertex_position(vid) or npc:position(), vtemp ) + end + + db.used_level_vertex_ids[vid] = npc:id() + st.vid = vid + + npc:set_dest_level_vertex_id(vid) + return vid +end + +--[[---------------------------------------------------------------------------------------------------- + Animpoints +------------------------------------------------------------------------------------------------------]] +local campfire_state_tbl = { + idle = {director = {"", "_eat_bread", "_eat_kolbasa", "_drink_vodka", "_drink_energy", "_weapon", "_roast_kolbasa", "_roast_kolbasa_bred", "_roast_bred", "_sleep", "_use_pda"}, listener = {"", "_eat_bread", "_eat_kolbasa", "_drink_vodka", "_drink_energy", "_weapon", "_roast_kolbasa", "_roast_kolbasa_bred", "_roast_bred", "_sleep", "_use_pda"}}, + harmonica = {director = {"_harmonica"}, listener = {"", "_eat_bread", "_eat_kolbasa", "_drink_vodka", "_drink_energy", "_weapon", "_roast_kolbasa", "_roast_kolbasa_bred", "_roast_bred", "_sleep", "_use_pda"}}, + guitar = {director = {"_guitar"}, listener = {"", "_eat_bread", "_eat_kolbasa", "_drink_vodka", "_drink_energy", "_weapon", "_roast_kolbasa", "_roast_kolbasa_bred", "_roast_bred", "_sleep", "_use_pda"}}, + story = {director = {"", "_weapon"}, listener = {"", "_eat_bread", "_eat_kolbasa", "_drink_vodka", "_drink_energy", "_weapon", "_roast_kolbasa", "_roast_kolbasa_bred", "_roast_bred", "_sleep", "_use_pda"}}, +} + +local state_sit_all = {"animpoint_sit","animpoint_sit_ass","animpoint_sit_knee"} + +function xr_effects.animpoint(actor,npc) + local st = npc and db.storage[npc:id()] + local beh = st and st.beh + if not (beh) then + return + end + local dt = beh.desired_target + + if not (dt and (st.active_section == dt.active_section) and (dt.custom_logic == "animpoint")) then + local index = next_pt_index(npc) + dt = load_animpoint(npc,index) + end + + if (dt and dt.wait_delay and (dt.wait_delay < time_global())) then + local index = next_pt_index(npc) + dt = load_animpoint(npc,index) + end + + if not (dt.level_vertex_id) then + printf("GhenTuong: animpoint %s | %s",st.active_section,dt.level_vertex_id) + return + end + + if (st.beh.use_camp and dt.animpoint) then + -- Move to camp + if (npc:level_vertex_id() ~= dt.level_vertex_id) then + npc:set_path_type(game_object.level_path) + npc:set_desired_direction() + beh.assist_point = utils_obj.send_to_nearest_accessible_vertex(npc,dt.level_vertex_id,"xr_custom.animpoint") + set_moving_state(npc) + return + end + + -- Get camp + if not (beh.camp) then + beh.camp = sr_camp.get_current_camp(dt.position) + end + if (beh.camp and not beh.in_camp) then + beh.camp:register_npc(npc:id()) + beh.in_camp = true + end + + if not (dt.approved_actions and (#dt.approved_actions > 0)) then + local is_in_camp = beh.camp ~= nil + local p = {"animpoint_sit_ass","animpoint_sit_knee","animpoint_sit"} + dt.description_name = p[math.random(#p)] + dt.avail_actions = xr_animpoint_predicates.associations[dt.description_name] + + if (dt.avail_actions) then + local lst = {} + for k,v in pairs(dt.avail_actions) do + if (v.predicate(npc:id(),is_in_camp) == true) then + lst[#lst+1] = v + end + end + dt.approved_actions = lst + + for k,v in pairs(dt.approved_actions) do + printf("GhenTuong: load_campfire_actions [%s] %s is_in_camp %s %s",npc:name(),dt.active_section,is_in_camp,v and v.name) + end + else + return + end + end + + local tmp_actions = {} + local num = 0 + + local camp_action, is_director = beh.camp and beh.camp:get_camp_action(npc:id()) + if not (camp_action) then + printf("GhenTuong: [%s] %s no camp",npc:name(),dt.active_section) + return + end + + local tbl = nil + if (is_director) then + tbl = campfire_state_tbl[camp_action].director + dt.__dtimer = time_global() + else + dt.__dtimer = (not dt.__dtimer and time_global() + math.random(10000,15000)) or dt.__dtimer + if (dt.current_action and time_global() < dt.__dtimer) then + return + end + tbl = campfire_state_tbl[camp_action].listener + end + + local found = false + for k,v in pairs(dt.approved_actions) do + for i = 1, #tbl do + if (dt.description_name .. tbl[i] == v.name) then + num = num + 1 + tmp_actions[num] = v.name + found = true + end + end + end + + if not (found) then + num = num + 1 + tmp_actions[num] = dt.description_name + end + + dt.current_action = tmp_actions[math.random(num)] + + for k,v in pairs(tmp_actions) do + printf("GhenTuong: animpoint load campfire action %s %s",dt.active_section,v) + end + + local cur_state = state_mgr.get_state(npc) + local new_state = dt.current_action + if (cur_state and new_state and (cur_state ~= new_state)) then + local anim_pos = dt.animpoint and vector():set(dt.animpoint) + local anim_dir = dt.direction and vector():set(dt.direction) + state_mgr.set_state(npc,new_state,nil,nil,nil,{animation_position = anim_pos, animation_direction = anim_dir}) + end + return + end + + if (dt.animpoint) then + local cur_state = state_mgr.get_state(npc) + local new_state = nil + + if (dt.delay_animation and string.find(dt.delay_animation,"@random")) then + if (dt.random_animation == nil) then + local str = str_explode(dt.delay_animation,"@") + local state_base = tostring(str[1]) + state_base = (string.find(state_base,"animpoint_sit_all") and state_sit_all[math.random(#state_sit_all)]) or state_base + + local p = {"guitar","harmonica","roast","weapon"} + local function check_state_exception(state_con,state) + for k,v in pairs(p) do + if (string.find(state,v) and not string.find(state_con,v)) then + return false + end + end + return true + end + + local state_list = {} + local t = xr_animpoint_predicates.associations[state_base] + if (t) then + for k,v in pairs(t) do + if (v.name and check_state_exception(dt.delay_animation,tostring(v.name))) then + state_list[#state_list+1] = tostring(v.name) + end + end + end + + if (#state_list == 0) then + printf("GhenTuong: xr_logic_ex can not find %s %s",dt.active_section,dt.delay_animation) + return + end + dt.random_animation = state_list[math.random(#state_list)] + end + new_state = dt.random_animation + else + new_state = dt.delay_animation + end + + if not (cur_state and new_state) then + return + end + + if ((cur_state == new_state) and (npc:position():distance_to_sqr(dt.animpoint) < 0.8)) then + if (dt.delay) then + if not (dt.wait_delay) then + dt.wait_delay = time_global() + dt.delay + end + end + + if (dt.sound_idle) then + xr_sound.set_sound_play(npc:id(),dt.sound_idle) + end + return + end + + if (npc:level_vertex_id() ~= dt.level_vertex_id) then + npc:set_path_type(game_object.level_path) + npc:set_desired_direction() + beh.assist_point = utils_obj.send_to_nearest_accessible_vertex(npc,dt.level_vertex_id,"xr_custom.animpoint") + set_moving_state(npc) + return + end + + if (cur_state == new_state) then + if (dt.delay) then + if not (dt.wait_delay) then + dt.wait_delay = time_global() + dt.delay + end + end + + if (dt.sound_idle) then + xr_sound.set_sound_play(npc:id(),dt.sound_idle) + end + return + end + + local reach_state = "animpoint_reach_ex" + + if (cur_state ~= new_state) and (cur_state ~= reach_state) then + local anim_pos = dt.animpoint and vector():set(dt.animpoint) + local anim_dir = dt.direction and vector():set(dt.direction) + state_mgr.set_state(npc,reach_state,{turn_end_func = function() return end},nil,{look_dir = anim_dir},{animation_position = anim_pos}) + end + + if (cur_state == reach_state) and not (st.callback and st.callback.turn_end_func) then + local anim_pos = dt.animpoint and vector():set(dt.animpoint) + local anim_dir = dt.direction and vector():set(dt.direction) + --local look_pos = dt.look_position and vector():set(dt.look_position) + state_mgr.set_state(npc,new_state,nil,nil,nil,{animation_position = anim_pos, animation_direction = anim_dir}) + end + return + end + + if (npc:level_vertex_id() ~= dt.level_vertex_id) then + npc:set_path_type(game_object.level_path) + npc:set_desired_direction() + beh.assist_point = utils_obj.send_to_nearest_accessible_vertex(npc,dt.level_vertex_id,"xr_custom.animpoint") + set_moving_state(npc) + return + end + + local cur_state = state_mgr.get_state(npc) + local new_state = dt.delay_animation + if not (cur_state and new_state) then + return + end + + if (cur_state == new_state) then + if (dt.delay) then + if not (dt.wait_delay) then + dt.wait_delay = time_global() + dt.delay + end + end + + if (dt.sound_idle) then + xr_sound.set_sound_play(npc:id(),dt.sound_idle) + end + return + end + + local look_pos = dt.look_position and vector():set(dt.look_position) + state_mgr.set_state(npc,new_state,nil,nil,{look_position = look_pos}) +end + +function load_animpoint(npc,index) + local st = npc and db.storage[npc:id()] + local str = st and st.beh and st.ini and st.active_section and st.ini:r_string_ex(st.active_section,"pt" .. index) + if not (str) then + return {} + end + + local dt = {} + dt.active_section = tostring(st.active_section) + dt.custom_logic = "animpoint" + dt.path_index = tonumber(index) + + for s in string.gmatch(str,"pos:(%A+)") do + local p = str_explode(s,",") + dt.position = vector():set(tonumber(p[1]),tonumber(p[2]),tonumber(p[3])) + dt.level_vertex_id = dt.position and level.vertex_id(vector():set(dt.position.x,dt.position.y+0.5,dt.position.z)) + end + + if (string.find(str,"animpoint:pos")) then + dt.animpoint = dt.position and vector():set(dt.position) + else + for s in string.gmatch(str,"animpoint:(%A+)") do + local p = str_explode(s,",") + dt.animpoint = vector():set(tonumber(p[1]),tonumber(p[2]),tonumber(p[3])) + end + end + + for s in string.gmatch(str,"dir:(%A+)") do + local p = str_explode(s,",") + dt.direction = tonumber(p[1]) and vector_rotate_y(vector():set(0,0,1),tonumber(p[1])):normalize() + end + + local pos = dt.animpoint and vector():set(dt.animpoint) or dt.position and vector():set(dt.position) + local dir = dt.direction and vector():set(dt.direction) + if (pos and dir) then + dt.look_position = vector():set(pos.x + 10*dir.x, pos.y, pos.z + 10*dir.z) + end + + if not (dt.direction and dt.look_position) then + for s in string.gmatch(str,"look:(%A+)") do + local p = str_explode(s,",") + dt.look_position = vector():set(tonumber(p[1]),tonumber(p[2]),tonumber(p[3])) + end + if (pos and dt.look_position) then + dt.direction = vector():set(dt.look_position):sub(pos):normalize() + end + end + + local pt = str_explode(str,"|") + pt = pt[1] and str_explode(pt[1],",") + + if (pt) then + if (pt[1] and (pt[1] ~= "") and (pt[1] ~= "nil")) then + dt.delay = tonumber(pt[1]) + end + + if (pt[2] and (pt[2] ~= "") and (pt[2] ~= "nil")) then + dt.delay_animation = tostring(pt[2]) + end + + if (pt[3] and (pt[3] ~= "") and (pt[3] ~= "nil")) then + dt.sound_idle = tostring(pt[3]) + end + end + + st.beh.desired_target = dt + return st.beh.desired_target +end + +function next_pt_index(npc) + local st = npc and db.storage[npc:id()] + local dt = st and st.beh and st.beh.desired_target + local index = (dt and (st.active_section == dt.active_section) and tonumber(dt.path_index) or 0) + 1 + if (st.ini and st.active_section and st.ini:r_string_ex(st.active_section,"pt" .. index)) then + return index + end + return 1 +end + +function set_moving_state(npc) + local beh = db.storage[npc:id()] and db.storage[npc:id()].beh + if not (beh) then return end + + local t = time_global() + if (beh.keep_state_until and t < beh.keep_state_until) then + return + end + beh.keep_state_until = t + 500 + + local new_state = beh.run_animation + local dist_w = tonumber(xr_logic.pick_section_from_condlist(db.actor, npc, beh.walk_dist) or 5) or 5 + local dist_j = tonumber(xr_logic.pick_section_from_condlist(db.actor, npc, beh.jog_dist) or 10) or 10 + + local pos = vector():set(npc:position()) + local d = beh.desired_target and beh.desired_target.position and pos:distance_to_sqr(beh.desired_target.position) + + if (beh.assist_point == nil or beh.assist_point == npc:level_vertex_id()) then + new_state = beh.wait_animation + elseif ((dist_w ~= 0) and d and (d < dist_w*dist_w)) then + new_state = beh.walk_animation + elseif ((dist_j ~= 0) and d and (d > dist_j*dist_j)) then + new_state = beh.jog_animation + end + + state_mgr.set_state(npc,new_state,nil,nil,nil,{fast_set = true,animation = true}) +end + + + +--[[---------------------------------------------------------------------------------------------------- + Campfire +------------------------------------------------------------------------------------------------------]] +local storage_camp = {} + +function generate_campfire_point(smart_name,campfire_name) + local function itr(obj) + local cf = {} + local pos = obj:position() + local dir = obj:direction() + if (pos and dir) then + + end + + if (storage_camp[smart_name] == nil) then + storage_camp[smart_name] = {} + end + storage_camp[smart_name][campfire_name] = cf + end + + if (db.campfire_table_by_smart_names[smart_name]) then + for _,k in pairs(db.campfire_table_by_smart_names[smart_name]) do + if (k.object and (k.object:name() == campfire_name)) then + itr(camp) + break + end + end + end +end + +function xr_effects.beh_campfire(actor,npc) + local st = npc and db.storage[npc:id()] + if not (st and st.beh) then + return + end + + local dt = st and st.beh and st.beh.desired_target + + if not (dt and (st.active_section == dt.active_section) and (dt.custom_logic == "beh_campfire")) then + dt = load_beh_campfire(npc,index) + end + + if not (dt and dt.smart_name and dt.campfire_name) then + return + end +end + +function load_beh_campfire(npc,st) + local ini = st.ini + local section = st.active_scheme + if not (ini and section and ini:section_exist(section)) then + return + end + + local dt = {} + dt.active_section = tostring(st.active_section) + dt.custom_logic = "beh_campfire" + dt.smart_name = ini:r_string_ex(section,"smart") + dt.campfire_name = ini:r_string_ex(section,"campfire") + + st.beh.desired_target = dt + return st.beh.desired_target +end + + +--[[---------------------------------------------------------------------------------------------------- + Mutants +------------------------------------------------------------------------------------------------------]] +local mutant_state_move = { + ["walk"] = move.walk_fwd, + ["run"] = move.run_fwd, + ["steal"] = move.steal, +} + +local mutant_state_wait = { + ["stand"] = anim.stand_idle, + ["lie"] = anim.lie_idle, + ["sleep"] = anim.sleep, +} + +function xr_effects.mutant_path(actor,npc,p) + local st = npc and db.storage[npc:id()] + if not (st and st.beh) then + return + end + + local dt = st and st.beh and st.beh.desired_target + + if not (dt and (st.active_section == dt.active_section) and (dt.custom_logic == "mutant_path")) then + dt = mutant_load_path(npc) + end + + if not (dt.level_vertex_id and dt.position) then + return + end + + if (npc:get_enemy()) then + if (npc:clsid() == clsid.bloodsucker_s) then + npc:release_stand_sleep_animation() + end + return + end + + xr_logic.mob_capture(npc,true) + + local t = time_global() + if (dt.keep_state_until and t < dt.keep_state_until) then + return + end + dt.keep_state_until = t + 1000 + + --local squad = get_object_squad(npc) + --printf("GhenTuong: mutant_path current_action = %s | assigned_target_id = %s",squad.current_action,squad.assigned_target_id) + + if (npc:level_vertex_id() ~= dt.level_vertex_id) then + local state = xr_logic.pick_section_from_condlist(db.actor,npc,dt.move_animation) + local new_state = (state and mutant_state_move[state]) or mutant_state_move["walk"] + action(npc,move(new_state,dt.level_vertex_id,dt.position),cond(cond.move_end)) + + if (npc:clsid() == clsid.bloodsucker_s) then + npc:release_stand_sleep_animation() + end + --printf("GhenTuong: mutant_path %s %s",npc:name(),dt.position:distance_to_sqr(npc:position())) + return + end + + if (dt.look_position) then + local state = xr_logic.pick_section_from_condlist(db.actor,npc,dt.wait_animation) + if (state == "bloodsucker_sleep") then + local rot_y = vector_angle_diff(npc:direction(),dt.direction) + if (rot_y and rot_y < 10) then + if not (dt.force_stand_sleep_animation_index) then + dt.force_stand_sleep_animation_index = math.random(0,1) + end + npc:force_stand_sleep_animation(dt.force_stand_sleep_animation_index) + return + end + action(npc,anim(mutant_state_wait["stand"],0),look(look.point,dt.look_position),cond(cond.look_end)) + return + end + + if (npc:clsid() == clsid.bloodsucker_s) then + npc:release_stand_sleep_animation() + end + local new_state = (state and mutant_state_wait[state]) or mutant_state_wait["stand"] + action(npc,anim(new_state,0),look(look.point,dt.look_position),cond(cond.look_end)) + end +end + +function mutant_load_path(npc) + local st = npc and db.storage[npc:id()] + local str = st and st.beh and st.ini and st.active_section and st.ini:r_string_ex(st.active_section,"pt1") + if not (str) then + return {} + end + + local dt = {} + dt.active_section = tostring(st.active_section) + dt.custom_logic = "mutant_path" + + dt.move_animation = st.ini:r_string_to_condlist(st.active_section,"move_animation","walk") + dt.wait_animation = st.ini:r_string_to_condlist(st.active_section,"wait_animation","stand") + + for s in string.gmatch(str,"smart:(%S+)") do + local smart = SIMBOARD.smarts_by_names[s] + dt.position = smart and vector():set(smart.position) + dt.level_vertex_id = smart and tonumber(smart.m_level_vertex_id) + end + + for s in string.gmatch(str,"sound:(%S+)") do + dt.sound = tostring(s) + end + + for s in string.gmatch(str,"pos:(%A+)") do + local p = str_explode(s,",") + if (tonumber(p[1]) and tonumber(p[2]) and tonumber(p[3])) then + dt.level_vertex_id = level.vertex_id(vector():set(tonumber(p[1]),tonumber(p[2])+0.5,tonumber(p[3]))) + dt.position = dt.level_vertex_id and vector():set(level.vertex_position(dt.level_vertex_id)) + end + end + + for s in string.gmatch(str,"dir:(%A+)") do + local p = str_explode(s,",") + if (tonumber(p[1]) and tonumber(p[2]) and tonumber(p[3])) then + dt.direction = vector():set(tonumber(p[1]),tonumber(p[2]),tonumber(p[3])):normalize() + elseif (tonumber(p[1])) then + dt.direction = vector_rotate_y(vector():set(0,0,1),tonumber(p[1])):normalize() + end + local pos = vector():set(dt.position) + local dir = vector():set(dt.direction) + dt.look_position = pos and dir and vector():set(pos.x + 10*dir.x, pos.y, pos.z + 10*dir.z) + end + + if not (dt.position) then + printf("GhenTuong: %s [%s] no dt.position",st.ini_filename,st.active_section) + end + if not (dt.level_vertex_id) then + printf("GhenTuong: %s [%s] no dt.level_vertex_id",st.ini_filename,st.active_section) + end + if not (dt.look_position) then + printf("GhenTuong: %s [%s] no dt.look_position",st.ini_filename,st.active_section) + end + --[[ + printf("GhenTuong: mutant_load_path %s ", dt.level_vertex_id) + printf("GhenTuong: mutant_load_path %s ", dt.position) + printf("GhenTuong: mutant_load_path %s ", dt.look_position) + --]] + st.beh.desired_target = dt + return st.beh.desired_target +end + +function vector_angle_diff(dir1,dir2) + if (dir1 and dir2) then + local v1 = -math.deg(math.atan2(dir1.x,dir1.z)) + local v2 = -math.deg(math.atan2(dir2.x,dir2.z)) + return math.abs(math.min(math.abs(v1-v2),360-math.abs(v1)-math.abs(v2))) + end +end + +--[[---------------------------------------------------------------------------------------------------- + Main +------------------------------------------------------------------------------------------------------]] +local storage_set_position = {} +local storage_logic = {} +local storage_squad = {} + +function squad_on_update(squad) + if not (squad and ini_sys:line_exist(squad:section_name(),"logic")) then + return + end + if (axr_companions.companion_squads and axr_companions.companion_squads[squad.id]) then + return + end + + local ini_name = ini_sys:r_string_ex(squad:section_name(),"logic") + + if not (storage_squad[ini_name] or load_storage_squad(ini_name)) then + return + end + squad_target_update(squad,storage_squad[ini_name]) + + if not (storage_logic[ini_name] or load_storage_logic(ini_name)) then + return + end + --printf("GhenTuong: squad_on_update %s",squad:section_name()) + for k in squad:squad_members() do + local st = k and db.storage[k.id] + if (st) then + local npc = st.object or level.object_by_id(k.id) + if (npc and npc:alive()) then + npc_logic_update(npc,st,squad,ini_name,storage_logic[ini_name]) + end + end + end +end + +function load_storage_squad(ini_name) + local ini = ini_file(ini_name) + if not (ini) then + printf("GhenTuong: xr_logic_ex | load_storage_squad file %s doesn't exist.",ini_name) + return false + end + + local tbl = {} + + if (ini:section_exist("section@squad")) then + local n = ini:line_count("section@squad") + local t = 0 + for k=0,n-1 do + local r,i,v = ini:r_line("section@squad",k) + if (i and v) then + if (string.find(i,"target")) then + t = t + 1 + tbl[t] = {} + tbl[t].condlist = ini:r_string_to_condlist("section@squad",i) + tbl[t].teleport = string.find(i,"@") and true or false + --printf("GhenTuong: xr_logic_ex load_storage_squad | %s = %s",i,v) + end + end + end + tbl.target_num = t + + if (ini:line_exist("section@squad","condlist")) then + tbl.condlist = ini:r_string_to_condlist("section@squad","condlist") + end + end + + storage_squad[ini_name] = tbl + return true +end + +function load_storage_logic(ini_name) + local ini = ini_file(ini_name) + if not (ini) then + printf("GhenTuong: xr_logic_ex | load_storage_logic file %s doesn't exist.",ini_name) + return false + end + + local tbl = {} + + + if (ini:section_exist("section@logic")) then + local n = ini:line_count("section@logic") + for k=0,n-1 do + local result,i,v = ini:r_line("section@logic",k) + if (i and (i ~= "") and (i ~= "nil") and ini:section_exist(i) and string.find(i,"logic")) then + tbl[i] = {} + tbl[i].prior = ini:r_float_ex(i,"prior") or 0 + tbl[i].logic = ini:r_string_to_condlist(i,"suitable","true") + --printf("GhenTuong: xr_logic_ex load_storage_logic | section@logic %s ",i) + end + end + end + + storage_logic[ini_name] = tbl + return true +end + +function squad_target_update(squad,tbl) + if (tbl.condlist) then + xr_logic.pick_section_from_condlist(db.actor,squad,tbl.condlist) + end + + local new_target = nil + local offline_teleport = false + + if (tbl.target_num) then + for i=1,tbl.target_num,1 do + local k = tbl[i] + local target = k and k.condlist and xr_logic.pick_section_from_condlist(db.actor,squad,k.condlist) + if (target and (target ~= "") and (target ~= "nil")) then + new_target = target + offline_teleport = k.teleport and true + break + end + end + end + + if (new_target) then + local obj = nil + + if (false) then + elseif (new_target == "self") then + if (squad.scripted_target ~= squad.id) then + squad.scripted_target = tonumber(squad.id) + end + obj = squad + elseif (SIMBOARD.smarts_by_names[new_target]) then + if (squad.scripted_target ~= new_target) then + squad.scripted_target = new_target + end + obj = SIMBOARD.smarts_by_names[new_target] + else + local se_obj = get_story_se_object(new_target) + if (se_obj and se_obj.id) then + if (squad.scripted_target ~= se_obj.id) then + squad.scripted_target = tonumber(se_obj.id) + end + obj = se_obj + end + end + + if (offline_teleport and (squad.online ~= true)) then + if (obj and not simulation_objects.is_on_the_same_level(squad,obj)) then + local pos = obj.position + local vid = obj.m_level_vertex_id + local gid = obj.m_game_vertex_id + if (pos and vid and gid) then + TeleportSquad(squad,pos,vid,gid) + printf("GhenTuong: squad_target_update teleport [%s] %s %s",squad:name(),new_target,squad.scripted_target) + end + end + end + + --printf("GhenTuong: xr_logic_ex | squad_target_update [%s] %s %s",squad:name(),new_target,squad.scripted_target) + end +end + +function npc_logic_update(npc,st,squad,ini_name,tbl) + if (npc:has_info("npcx_is_companion")) then + --printf("GhenTuong: npc_logic_update squad isn't companion but npc is? [%s]",npc:name()) + return + end + + local npc_id = npc:id() + + -- Keep using current logic if it is still valid. + local using = st.section_logic and tbl[st.section_logic] + local check = using and (xr_logic.pick_section_from_condlist(db.actor,npc,using.logic) == "true") + + -- Choose new logic + local new_logic = check and tostring(st.section_logic) or "" + local new_prior = check and tonumber(using.prior) or -1 + + -- Case of save/load + if not (using) then + for i,v in pairs(tbl) do + if (v.own_id == npc_id) then + check = xr_logic.pick_section_from_condlist(db.actor,npc,v.logic) == "true" + new_logic = check and tostring(i) or "" + new_prior = check and tonumber(v.prior) or -1 + --printf("GhenTuong: xr_logic_ex | re-use [%s] %s %s",npc:name(),new_logic,new_prior) + break + end + end + end + + for i,v in pairs(tbl) do + if ((v.prior > new_prior) and (xr_logic.pick_section_from_condlist(db.actor,npc,v.logic) == "true")) then + local k = v.own_id and (v.own_id ~= npc_id) and db.storage[v.own_id] + if not (k and k.object and k.object:alive() and k.section_logic and (k.section_logic == i)) then + new_logic = tostring(i) + new_prior = tonumber(v.prior) + end + end + end + + --printf("GhenTuong: xr_logic_ex | npc_logic_update [%s] %s %s",npc:name(),st.section_logic,st.active_section) + if (new_logic and (new_logic ~= st.section_logic) and (new_logic ~= "") and (new_logic ~= "nil") and tbl[new_logic]) then + printf("GhenTuong: xr_logic_ex | old logic [%s] %s %s",npc:name(),st.section_logic,st.active_section) + tbl[new_logic].own_id = npc_id + npc_switch_new_logic(npc,ini_name,new_logic) + end +end + +function npc_switch_new_logic(npc,ini_name,new_logic) + local ini = ini_file(ini_name) + local cls = npc.clsid and npc:clsid() + local sty = (IsStalker(nil,cls) and 0) or (IsMonster(nil,cls) and 1) or nil + --Active scheme section + xr_logic.configure_schemes(npc,ini,ini_name,sty,new_logic,"") + local new_section = xr_logic.determine_section_to_activate(npc,ini,new_logic,db.actor) + xr_logic.activate_by_section(npc,ini,new_section,"",false) + + printf("GhenTuong: xr_logic_ex | new logic [%s] %s %s %s",npc:name(),ini_name,new_logic,new_section) +end + +function npc_on_net(npc,se_obj) + if not (npc:alive()) then + return + end + + local squad = get_object_squad(npc) + + if (squad and axr_companions.companion_squads and axr_companions.companion_squads[squad.id]) then + return + end + + if (npc:has_info("npcx_is_companion")) then + --printf("GhenTuong: npc_on_net squad isn't companion but npc is? [%s]",npc:name()) + return + end + + if (squad and ini_sys:line_exist(squad:section_name(),"logic")) then + local ini_name = ini_sys:r_string_ex(squad:section_name(),"logic") + + if not (storage_squad[ini_name] or load_storage_squad(ini_name)) then + return + end + squad_target_update(squad,storage_squad[ini_name]) + + if not (storage_logic[ini_name] or load_storage_logic(ini_name)) then + return + end + + --Force squad to update target so don't fuck up my scheme setting for npc. + local script_target_id = squad:get_script_target() + if (script_target_id) then + squad:specific_update(script_target_id) + else + squad:generic_update() + end + + local st = db.storage[npc:id()] + if (st) then + npc_logic_update(npc,st,squad,ini_name,storage_logic[ini_name]) + end + end + -- For smart exclusive logic too. Not only my custom squad logic. + npc_set_position(npc,se_obj,squad) +end + +function npc_set_position(npc,se_obj,squad) + local id = se_obj.id + local st = db.storage[id] + local ini = st.ini + local section_logic = st.section_logic + local active_section = st.active_section + + if not (ini and section_logic and active_section and ini:line_exist(section_logic,"net_spawn")) then + return + end + + if (db.spawned_vertex_by_id[id]) then + db.spawned_vertex_by_id[id] = nil + end + if (db.offline_objects[id] and db.offline_objects[id].level_vertex_id) then + db.offline_objects[id].level_vertex_id = nil + end + + local target = xr_logic.pick_section_from_condlist(db.actor,npc,ini:r_string_to_condlist(section_logic,"net_spawn","nil")) + if not (target and (target ~= "") and (target ~= "nil")) then + return + end + + local pos = nil + + if (false) then + elseif (target == "actor") then + pos = db.actor:position() + elseif (SIMBOARD.smarts_by_names[target]) then + pos = vector():set(SIMBOARD.smarts_by_names[target].position) + elseif (ini:line_exist(active_section,target)) then + local str = ini:r_string(active_section,target) + if (string.find(str,"pos:")) then + for s in string.gmatch(str,"pos:(%A+)") do + local p = str_explode(s,",") + if (tonumber(p[1]) and tonumber(p[1]) and tonumber(p[1])) then + pos = vector():set(tonumber(p[1]),tonumber(p[2]),tonumber(p[3])) + end + end + end + end + + if (storage_set_position[npc:name()]) then + --printf("GhenTuong: npc_set_position skip [%s]",npc:name()) + return + end + storage_set_position[npc:name()] = true + + npc:set_npc_position(pos) + --printf("GhenTuong: npc_set_position [%s] %s",npc:name(),pos) +end + +function ignore_smart_job(npc) + local story_id = npc and (type(npc.id) == "number") and get_story_object_id(npc.id) + if (story_id and (string.find(story_id,"esc_2_12_stalker_trader") or string.find(story_id,"red_forester_tech"))) then + return false + end + + local squad = npc and get_object_squad(npc) + if (squad and ini_sys:line_exist(squad:section_name(),"logic")) then + return true + end + + return false +end + +function monster_on_update(npc,st) + if not (st and st.ini and st.active_section and st.ini:line_exist(st.active_section,"target")) then + return + end + if not (db.actor and npc and npc:alive()) then + return + end + if not (st.beh and st.beh.target and (st.beh.active_section == st.active_section)) then + st.beh = {} + st.beh.active_section = tostring(st.active_section) + st.beh.target = st.ini:r_string_to_condlist(st.active_section,"target","nil") + end + xr_logic.pick_section_from_condlist(db.actor,npc,st.beh.target) +end + +function npc_on_before_hit(npc,shit,bone_id,flags) + local st = npc and db.storage[npc:id()] + if not (st and st.ini and st.active_section and st.ini:line_exist(st.active_section,"before_hit")) then + return + end + local str = st.ini:r_string_ex(st.active_section,"before_hit") + if (str) then + if string.find(str,"invulnerable") then + if (tonumber(npc.health) < 1) then + npc:set_health_ex(1) + end + flags.ret_value = false + return + end + + if string.find(str,"@") then + local p = str_explode(str,"@") + if (p and #p == 2) then + local v = _G[tostring(p[1])][tostring(p[2])](npc,shit,bone_id,flags) + + if (tostring(v) and string.find(tostring(v),"invulnerable")) then + if (tonumber(npc.health) < 1) then + npc:set_health_ex(1) + end + flags.ret_value = false + end + end + end + end +end + +function npc_on_eval_danger(npc,flags) + local st = npc and db.storage[npc:id()] + if not (st and (st.active_scheme == "beh")) then + return + end + + local con = st.ini and st.active_section and st.ini:r_string_to_condlist(st.active_section,"danger_ignore") + if (con) then + if (xr_logic.pick_section_from_condlist(db.actor,npc,con) == "true") then + flags.ret_value = false + return + end + end +end + +local storage_smart = {} + +function smart_terrain_on_update(smart) + if not (smart and smart.ini and smart.ini:section_exist("on_changing_level")) then + return + end + + if (storage_smart[smart:name()]) then + return + end + storage_smart[smart:name()] = true + + local n = smart.ini:line_count("on_changing_level") + for k=0,n-1 do + local r,i,v = smart.ini:r_line("on_changing_level",k) + if (i and v and string.find(i,"on_info")) then + --printf("smart_terrain_on_update %s",smart:name()) + local con = smart.ini:r_string_to_condlist("on_changing_level",i,"nil") + xr_logic.pick_section_from_condlist(db.actor,smart,con) + end + end +end + +function save_state(m_data) + m_data.xr_logic_ex_storage_set_position = storage_set_position + m_data.xr_logic_ex_storage_logic = storage_logic + m_data.xr_logic_ex_storage_smart = storage_smart +end + +function load_state(m_data) + storage_set_position = m_data.xr_logic_ex_storage_set_position or {} + storage_logic = m_data.xr_logic_ex_storage_logic or {} + storage_smart = m_data.xr_logic_ex_storage_smart or {} +end + +function on_level_changing() + storage_set_position = {} + storage_logic = {} + storage_smart = {} +end + +--[[---------------------------------------------------------------------------------------------------- + Registers +------------------------------------------------------------------------------------------------------]] +function on_game_start() + RegisterScriptCallback("save_state",save_state) + RegisterScriptCallback("load_state",load_state) + RegisterScriptCallback("squad_on_update",squad_on_update) + RegisterScriptCallback("on_level_changing",on_level_changing) + RegisterScriptCallback("monster_on_update",monster_on_update) + RegisterScriptCallback("npc_on_net_spawn",npc_on_net) + RegisterScriptCallback("monster_on_net_spawn",npc_on_net) + RegisterScriptCallback("npc_on_before_hit",npc_on_before_hit) + RegisterScriptCallback("monster_on_before_hit",npc_on_before_hit) + + RegisterScriptCallback("npc_on_eval_danger",npc_on_eval_danger) + + RegisterScriptCallback("smart_terrain_on_update",smart_terrain_on_update) +end +--[[---------------------------------------------------------------------------------------------------- + States +------------------------------------------------------------------------------------------------------]] +function add_states() + return { + animpoint_reach_ex = { weapon = "strapped", + movement = nil, + mental = nil, + bodystate = nil, + animstate = nil, + animation = nil, + direction = CSightParams.eSightTypeAnimationDirection + } + } +end + +copy_table(state_lib.states, add_states()) + +--[[---------------------------------------------------------------------------------------------------- + Overrides +------------------------------------------------------------------------------------------------------]] +function xr_combat_ignore.ignore_enemy_by_overrides(obj,enemy,no_check_job) + if not (enemy) then + return true + end + + if (IsStalker(obj)) then + if (enemy:section() == "mar_smart_terrain_doc_dog" or enemy:section() == "mar_smart_terrain_base_dog_doctor") then + return true + end + end + + local id = obj:id() + local ene_id = enemy:id() + + local st = db.storage[id] and db.storage[id].overrides + + -- This skips enemy_ignore of obj when enemy doesn't have overrides, considered a bug. + -- Ex: enemy that doesn't have logic at all, enemy squad on moving to a smart terrain. + --if not (st) then + -- return false + --end + + -- combat_ignore_cond from custom data logic + local ignore = st and st.combat_ignore and xr_logic.pick_section_from_condlist(enemy, obj, st.combat_ignore.condlist) + if (ignore == "true") then + --obj:enable_memory_object(enemy,false) + return true + end + + -- enemy_ignore_cond override from custom data logic + -- if this is true then npc will IGNORE combat with this specific enemy + local ene_st = db.storage[ene_id] and db.storage[ene_id].overrides + if (ene_st) then + ignore = ene_st.enemy_ignore and xr_logic.pick_section_from_condlist(enemy, obj, ene_st.enemy_ignore.condlist) + if (ignore == "true") then + --obj:enable_memory_object(enemy,false) + return true + end + end + + -- Ignore enemies because of no_combat_job + if (no_check_job ~= true) and (st and st.no_combat_job and xr_logic.pick_section_from_condlist(enemy, obj, st.no_combat_job.condlist) == "true") then + return true + end + + return false +end + +function xr_combat_camper.action_shoot:initialize() + action_base.initialize(self) + self.st.camper_combat_action = true + xr_sound.set_sound_play(self.object:id(),"fight_enemy") +end + +function xr_combat_camper.action_shoot:execute() + action_base.execute(self) + local new_state = "hide_fire" + local st = db.storage[self.object:id()] + if (st and st.ini and st.active_section and st.ini:line_exist(st.active_section,"combat_camper_state_fire")) then + new_state = st.ini:r_string_ex(st.active_section,"combat_camper_state_fire") + end + state_mgr.set_state(self.object,new_state,nil,nil,{look_object = self.object:best_enemy()},{fast_set = true}) + xr_sound.set_sound_play(self.object:id(),"fight") +end + +function xr_combat_camper.action_look_around:reset() + self.forget_time = device():time_global() + 30000 + self.change_dir_time = device():time_global() + 15000 + + -- если врага РјС‹ ещё РЅРµ видели вообще, то РІСЃС‘ равно повернуться Рє нему + if not self.st.last_seen_pos and self.object:best_enemy() ~= nil then + self.st.last_seen_pos = self.object:best_enemy():position() + end + + local new_state = "hide" + local st = db.storage[self.object:id()] + if (st and st.ini and st.active_section and st.ini:line_exist(st.active_section,"combat_camper_state_look")) then + new_state = st.ini:r_string_ex(st.active_section,"combat_camper_state_look") + end + state_mgr.set_state(self.object,new_state,nil,nil,{look_position = self.st.last_seen_pos}) +end + +function xr_combat_camper.action_look_around:execute() + action_base.execute(self) + + if (self.forget_time < device():time_global()) then +-- self.object:enable_memory_object( self.object:best_enemy(), false ) + self.st.last_seen_pos = nil + return + end + + if (self.change_dir_time < device():time_global()) then + self.change_dir_time = device():time_global() + math.random(2000,4000) + + local ang = math.random(0,120) - 60 + local dir = self.st.last_seen_pos and vector():set(self.st.last_seen_pos):sub(self.object:position()):normalize() + dir = dir and vector_rotate_y(dir,ang):normalize() + dir = dir and vector():set(dir.x * 10, dir.y * 10, dir.z * 10) + + local new_state = "hide" + local st = db.storage[self.object:id()] + if (st and st.ini and st.active_section and st.ini:line_exist(st.active_section,"combat_camper_state_look")) then + new_state = st.ini:r_string_ex(st.active_section,"combat_camper_state_look") + end + state_mgr.set_state(self.object,new_state,nil,nil,{look_position = dir and self.object:position():add(dir)},{fast_set = true}) + end +end \ No newline at end of file diff --git a/mods/Duty Expansion/gamedata/sounds/characters_voice/human/woman/states/meet/meet_hello_1.ogg b/mods/Duty Expansion/gamedata/sounds/characters_voice/human/woman/states/meet/meet_hello_1.ogg new file mode 100644 index 00000000..fe38c689 --- /dev/null +++ b/mods/Duty Expansion/gamedata/sounds/characters_voice/human/woman/states/meet/meet_hello_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:caf029df850eae30d8fedcd5cda7d152b0830cc67f0b4cfa740b874bb5e9099c +size 8579 diff --git a/mods/Duty Expansion/gamedata/sounds/characters_voice/human/woman/states/meet/meet_hello_2.ogg b/mods/Duty Expansion/gamedata/sounds/characters_voice/human/woman/states/meet/meet_hello_2.ogg new file mode 100644 index 00000000..2d58dc17 --- /dev/null +++ b/mods/Duty Expansion/gamedata/sounds/characters_voice/human/woman/states/meet/meet_hello_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:349aa1e39729e45a7576bcc2fd6c11965780a2e9b6d1ab1f1f7ac6f7434fdb59 +size 7370 diff --git a/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_1.ogg b/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_1.ogg new file mode 100644 index 00000000..c8c1c011 --- /dev/null +++ b/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adfc04074111d185d55269574718c26c1524c90c5c3e25f843953a7b66666214 +size 43296 diff --git a/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_2.ogg b/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_2.ogg new file mode 100644 index 00000000..5a21c94c --- /dev/null +++ b/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4430cfa25c2e7c71d38a514639f4825e09ad03cca1a5ccaab47282edc57ba9d8 +size 47061 diff --git a/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_3.ogg b/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_3.ogg new file mode 100644 index 00000000..3344fc99 --- /dev/null +++ b/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_3.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36fcf6e64545ee0e48120b514d176223168df6a14421a295e25d789b6ed97643 +size 26451 diff --git a/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_4.ogg b/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_4.ogg new file mode 100644 index 00000000..3b6898b1 --- /dev/null +++ b/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_4.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad974cf44816924753a2cbee4dc2c083234e3e6b116f076d36cb1ecf43c6db75 +size 33573 diff --git a/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_5.ogg b/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_5.ogg new file mode 100644 index 00000000..c2a4b7a8 --- /dev/null +++ b/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_5.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:195712251fe4f2182fcbe892c231ed8366206eb4cfd83c78bebe10db5c7a0a75 +size 55537 diff --git a/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_6.ogg b/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_6.ogg new file mode 100644 index 00000000..cc39ac00 --- /dev/null +++ b/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_6.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52396cfbd8b7b90494ff615ba5dbede7bbf950d86b450bfc4d58461f3d2e3eab +size 53357 diff --git a/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_7.ogg b/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_7.ogg new file mode 100644 index 00000000..982824ef --- /dev/null +++ b/mods/Duty Expansion/gamedata/sounds/characters_voice/scenario/bar/mega_7.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad9dc69283894981071c997c9887db582b79d192ec9fca389ba82a7fe70ac7ea +size 80093 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc.dds b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc.dds new file mode 100644 index 00000000..eab548c0 --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddc7d60e80791657d0f74bc47d1b817760538257c1b549ae875d9c7cfadbb362 +size 2796344 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc.thm b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc.thm new file mode 100644 index 00000000..269096b5 --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31151cf9d83073579151f2b81a06b13b7a2514cfc721224a72158aa505b95b25 +size 167 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc_bump#.dds b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc_bump#.dds new file mode 100644 index 00000000..a85537ee --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc_bump#.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e561e7163ba47c38e626162702964ebed7032f72dcd2e1b89068271ece3cd7d +size 240 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc_bump#.thm b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc_bump#.thm new file mode 100644 index 00000000..9be8c59e --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc_bump#.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5212bb722f18e381350c4c0b539aa6a8bc882ac99a31ed83d37ef5c5ddab1d38 +size 138 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc_bump.dds b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc_bump.dds new file mode 100644 index 00000000..aed8e5e5 --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc_bump.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:add8a083bd2ed96a92f0c7758dc0aa58d4e227831e4bc2a8dd2b6eb63771fcc3 +size 5592560 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc_bump.thm b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc_bump.thm new file mode 100644 index 00000000..0300975c --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_misc_bump.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba2e402e7992a8c6acebe1705d35b6af6fe4b25b0ec50e176329962c982c56dc +size 138 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso.dds b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso.dds new file mode 100644 index 00000000..e3e84bbc --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92f18c846f9b9007ec29c9ebbab232a1b43e59121c1c1f0555917479735d317f +size 2796344 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso.thm b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso.thm new file mode 100644 index 00000000..a3cdc5e0 --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:322159bc7504fe0937737ae98e9791aa65fb9ae4bd6411f2eed8de37b258f5af +size 168 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso_bump#.dds b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso_bump#.dds new file mode 100644 index 00000000..a85537ee --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso_bump#.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e561e7163ba47c38e626162702964ebed7032f72dcd2e1b89068271ece3cd7d +size 240 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso_bump#.thm b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso_bump#.thm new file mode 100644 index 00000000..9be8c59e --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso_bump#.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5212bb722f18e381350c4c0b539aa6a8bc882ac99a31ed83d37ef5c5ddab1d38 +size 138 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso_bump.dds b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso_bump.dds new file mode 100644 index 00000000..dc2c9a03 --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso_bump.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6256c44138a4020b6d8d748cbd2c43dc2ca74450031230dc5943d0df75f85802 +size 5592560 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso_bump.thm b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso_bump.thm new file mode 100644 index 00000000..0300975c --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/armor_torso_bump.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba2e402e7992a8c6acebe1705d35b6af6fe4b25b0ec50e176329962c982c56dc +size 138 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts.dds b/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts.dds new file mode 100644 index 00000000..ec94833d --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8d3e535d210f3c5c16501fa64924e70bb6ccd53f63c8020f6745f04b63309de +size 2796344 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts.thm b/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts.thm new file mode 100644 index 00000000..c4c66b51 --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7fd84665911d364c8b11ad2ea1e92007300d87762b2b3522a967e3a05b4573f +size 167 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts_bumo#.thm b/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts_bumo#.thm new file mode 100644 index 00000000..9be8c59e --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts_bumo#.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5212bb722f18e381350c4c0b539aa6a8bc882ac99a31ed83d37ef5c5ddab1d38 +size 138 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts_bump#.dds b/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts_bump#.dds new file mode 100644 index 00000000..a85537ee --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts_bump#.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e561e7163ba47c38e626162702964ebed7032f72dcd2e1b89068271ece3cd7d +size 240 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts_bump.dds b/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts_bump.dds new file mode 100644 index 00000000..087a73c0 --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts_bump.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57483db73c587839f16f17fdbbe818415818f73431943165aa7825ee86bc696a +size 5592560 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts_bump.thm b/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts_bump.thm new file mode 100644 index 00000000..0300975c --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/body_parts_bump.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba2e402e7992a8c6acebe1705d35b6af6fe4b25b0ec50e176329962c982c56dc +size 138 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_eyelash.dds b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_eyelash.dds new file mode 100644 index 00000000..418aaab8 --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_eyelash.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4f7ee4d5bcd698de18f517b90ffeca8a58ad0258d2cab7233988685916737c5 +size 43856 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face.dds b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face.dds new file mode 100644 index 00000000..3c5687fe --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89455a04bda0eee9e35a7c71cbb09c4aa0d14777c14826ecdd5662973f068f32 +size 699192 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face.thm b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face.thm new file mode 100644 index 00000000..dfbe6151 --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47717a04cd00af92f5ef88561755de93c7c4d999e682aa34d2773837e37a4287 +size 166 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face_bump#.dds b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face_bump#.dds new file mode 100644 index 00000000..a85537ee --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face_bump#.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e561e7163ba47c38e626162702964ebed7032f72dcd2e1b89068271ece3cd7d +size 240 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face_bump#.thm b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face_bump#.thm new file mode 100644 index 00000000..9be8c59e --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face_bump#.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5212bb722f18e381350c4c0b539aa6a8bc882ac99a31ed83d37ef5c5ddab1d38 +size 138 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face_bump.dds b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face_bump.dds new file mode 100644 index 00000000..99b600a9 --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face_bump.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d080e67a0f3ba8d9c81e9f322362362eed50dde0c129c2b5ef9d6561c81141c6 +size 1398256 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face_bump.thm b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face_bump.thm new file mode 100644 index 00000000..0300975c --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_face_bump.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba2e402e7992a8c6acebe1705d35b6af6fe4b25b0ec50e176329962c982c56dc +size 138 diff --git a/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_hair.dds b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_hair.dds new file mode 100644 index 00000000..001df802 --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/duty_girl/head_hair.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9371c084ee3cccfc88c34f54b14cc693265de55b324be4f2e727febeca9874ff +size 699216 diff --git a/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_bump#.dds b/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_bump#.dds new file mode 100644 index 00000000..a85537ee --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_bump#.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e561e7163ba47c38e626162702964ebed7032f72dcd2e1b89068271ece3cd7d +size 240 diff --git a/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_bump#.thm b/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_bump#.thm new file mode 100644 index 00000000..9be8c59e --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_bump#.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5212bb722f18e381350c4c0b539aa6a8bc882ac99a31ed83d37ef5c5ddab1d38 +size 138 diff --git a/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_bump.dds b/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_bump.dds new file mode 100644 index 00000000..3080c07b --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_bump.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52ea6971f835e03ea229a92f4b4ee8b55e191a60fefe06a67385b18d4c229fcc +size 1398256 diff --git a/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_bump.thm b/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_bump.thm new file mode 100644 index 00000000..0300975c --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_bump.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba2e402e7992a8c6acebe1705d35b6af6fe4b25b0ec50e176329962c982c56dc +size 138 diff --git a/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_dolg.dds b/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_dolg.dds new file mode 100644 index 00000000..08873ab8 --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_dolg.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8e3ffeda5b9ce2c0f4d0d776a5414538ddcc7f5273fcb67183aed2c07a45221 +size 1398256 diff --git a/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_dolg.thm b/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_dolg.thm new file mode 100644 index 00000000..0b16bdc2 --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/act/helmet_altyn/helmet_altyn_dolg.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:16eff71ea077929927425e14c67afcb974f1f2d7dcbf21a116c5444ccbc26bc8 +size 172 diff --git a/mods/Duty Expansion/gamedata/textures/ui/ui_npc_unique_duty_girl.dds b/mods/Duty Expansion/gamedata/textures/ui/ui_npc_unique_duty_girl.dds new file mode 100644 index 00000000..07dfd805 --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/ui/ui_npc_unique_duty_girl.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:853ff53937d8a0fa79b07868399b6ebe952d1c520d051c0a5dedf9f89bf7cb6c +size 7520 diff --git a/mods/Duty Expansion/gamedata/textures/ui/ui_npc_unique_duty_girl_message.dds b/mods/Duty Expansion/gamedata/textures/ui/ui_npc_unique_duty_girl_message.dds new file mode 100644 index 00000000..3869dccc --- /dev/null +++ b/mods/Duty Expansion/gamedata/textures/ui/ui_npc_unique_duty_girl_message.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a3c1da94e335c2ef128846fd80670d0975f640488e224de572749ee31470d5d8 +size 15732 diff --git a/mods/Duty Expansion/meta.ini b/mods/Duty Expansion/meta.ini new file mode 100644 index 00000000..49f1851b --- /dev/null +++ b/mods/Duty Expansion/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2024.3.31.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=Duty_Expansion_fixed_version.2.zip +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=false +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2024-03-31T08:45:01Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/Groks Body Health System Redux/gamedata/configs/ui/maingame_16.xml b/mods/Groks Body Health System Redux/gamedata/configs/ui/maingame_16.xml index fbe100ae..6dc56340 100644 --- a/mods/Groks Body Health System Redux/gamedata/configs/ui/maingame_16.xml +++ b/mods/Groks Body Health System Redux/gamedata/configs/ui/maingame_16.xml @@ -20,41 +20,41 @@ - + ui_hud_icon_weapon - - - + + + - - - + + + - + ui_inGame2_shield_Psy - + ui_inGame2_shield_Radiation - + ui_inGame2_shield_biological - + ui_inGame2_shield_blood - + ui_inGame2_shield_force - + ui_inGame2_shield_health - + ui_inGame2_shield_stamina - + ui_inGame2_shield_radiation_cleanup - + + + counter + ui_item_count_back + - + - - - counter - - + + + counter + ui_item_count_back + - + - - - counter - - + + + counter + ui_item_count_back + - + - - - counter - - + + + counter + ui_item_count_back + - + - - + + quick_use_str_1 - - + + quick_use_str_2 - - + + quick_use_str_3 - - - + + quick_use_str_4 + - + ui_inGame2_Patroni_HUD_red_bar - + ui_inGame2_Patroni_HUD_blue_bar @@ -213,32 +213,30 @@ - - - - ammo + + ammo - - fmj + + fmj - - ap + + ap - - third + + third - - gr + + gr - + - - + + diff --git a/mods/Groks Body Health System Redux/gamedata/configs/ui/textures_descr/ui_hud.xml b/mods/Groks Body Health System Redux/gamedata/configs/ui/textures_descr/ui_hud.xml index a9aa171f..d0bce0e5 100644 --- a/mods/Groks Body Health System Redux/gamedata/configs/ui/textures_descr/ui_hud.xml +++ b/mods/Groks Body Health System Redux/gamedata/configs/ui/textures_descr/ui_hud.xml @@ -146,24 +146,18 @@ - + - - - - - + + + + + - - - + + + + - - diff --git a/mods/Groks Body Health System Redux/gamedata/configs/ui/ui_custom_msgs.xml b/mods/Groks Body Health System Redux/gamedata/configs/ui/ui_custom_msgs.xml index 62c975e5..7903fc3e 100644 --- a/mods/Groks Body Health System Redux/gamedata/configs/ui/ui_custom_msgs.xml +++ b/mods/Groks Body Health System Redux/gamedata/configs/ui/ui_custom_msgs.xml @@ -855,12 +855,12 @@ - + ui_hud_bhs_bg - + ui_hud_bhs_bgm diff --git a/mods/Groks Body Health System Redux/meta.ini b/mods/Groks Body Health System Redux/meta.ini index 24b6b813..898abf00 100644 --- a/mods/Groks Body Health System Redux/meta.ini +++ b/mods/Groks Body Health System Redux/meta.ini @@ -6,7 +6,7 @@ newestVersion= category="16," nexusFileStatus=1 installationFile=2.0.2_Groks_Body_Health_System_Redux.zip -repository=Nexus +repository= ignoredVersion= comments= notes= diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/configs/items/items/items_soulslike.ltx b/mods/Jabbers Soulslike Gamemode/gamedata/configs/items/items/items_soulslike.ltx new file mode 100644 index 00000000..a406e236 --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/configs/items/items/items_soulslike.ltx @@ -0,0 +1,27 @@ + +[soulslike_rescuers_radio_frequency_note]:identity_immunities +$spawn = "devices\roubles" +$prefetch = 16 +kind = i_letter +class = II_ATTCH +cform = skeleton +visual = dynamics\equipments\quest\notes_letter_1.ogf +description = st_soulslike_rescuers_radio_frequency_note_desc +inv_name = st_soulslike_rescuers_radio_frequency_note_name +inv_name_short = st_soulslike_rescuers_radio_frequency_note_name +inv_grid_width = 1 +inv_grid_height = 1 +inv_grid_x = 6 +inv_grid_y = 14 +cost = 0 +inv_weight = 0.01 +attach_angle_offset = -0.287979, 1.560923, 1.544060 +attach_position_offset = 0.096910, -0.013594, 0.107925 +attach_bone_name = bip01_r_hand +auto_attach = false +repair_part_bonus = 0.01 +letter = true +snd_on_take = paper +use1_functor = soulslike_note.menu_read +use1_action_functor = soulslike_note.func_radio_freq +use1_allow_db = false \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/eng/soulslike_messages.xml b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/eng/soulslike_messages.xml new file mode 100644 index 00000000..8234bbbb --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/eng/soulslike_messages.xml @@ -0,0 +1,256 @@ + + + + + Hardcore Saving is enabled. Saves automatically occur when sleeping and respawning. + + + + Stash with some of your items + + + + Set Spawn + + + + Spawn location has been set. + + + + When you wake up you find yourself in a familiar place but with no idea how you got here. + + + + Looking for your things you find someone left you something to eat and drink. + + + + You also find a note explaining your gear is found in a hidden stash and to use an RF receiver with the frequency %s to track it down which will start beeping once you're close enough. + + + + There appears to be a marker on your PDA where you were found. + + + + Hi! I just wanted to see how you're feeling. You were almost dead when I found you. + + + + I can't believe you are still with us! I couldn't believe you were still breathing when I found you. + + + + Hey, how are you doing? I'm glad to see that you're feeling better now. You were in a really bad way when I found you. + + + + Hi! Just wanted to check in and see how you're feeling. You were really beat up when I found you. + + + + Hey, hope you're on the mend now. I was worried when I found you in such a bad state. + + + + I left something for you to eat and drink for when you wake up. + + + + I left you some food and drink to enjoy when you wake up. + + + + I left you a little something to eat and drink when you wake up. + + + + I made sure to leave you some food and drink for when you wake up. + + + + I left you a little something to eat and drink. + + + + I added a marker where I found you to your PDA. Hopefully you can get back some of your things. + + + + I added a marker to your PDA so you can hopefully retrieve some of your belongings from where I found you. + + + + A marker has been added to your PDA to help you locate the spot where you were found, in hopes that you can recover some of your lost items. + + + + Your PDA now has a marker indicating the location where I found you, which may help you retrieve some of your things. + + + + To help you retrieve some of your belongings, I have added a marker to your PDA showing the location where I found you. + + + + I had to use some of the things you had on you to get you out of there alive. + + + + In order to save your life, I had to use some of the items you were carrying on you. + + + + I had to use some of your belongings to rescue you and keep you alive. + + + + To ensure your survival, I had to use some of the things you had on you. + + + + I used some of your possessions to get you out of there alive. + + + + Keep safe, Stalker. + + + + Take care, Stalker. + + + + Stay safe out there, Stalker. + + + + Be safe, Stalker. + + + + Stay out of trouble, Stalker. + + + + As soon as I stumbled upon you, I noticed a %s individual who goes by the name of %s, fiddling with your weapon. It seemed like he was taking something out of it. Fortunately, I scared him away, but please inspect your equipment when you retrieve it. + + + + The moment I came across you, my eyes caught sight of a %s member called %s, tampering with your weapon. I observed him removing something from it. Although I managed to scare him off, I suggest you thoroughly examine your gear upon retrieval. + + + + Upon my initial encounter with you, I noticed a %s individual, who introduced himself as %s, meddling with your weapon. It appeared as though he was extracting something from it. Luckily, I frightened him away, but please verify your equipment upon its return. + + + + When I first came across you, I spotted a %s member by the name of %s, fiddling with your weapon. I saw him removing something from it. However, I scared him off, but do check your gear thoroughly when you get it back. + + + + From the moment I discovered you, I witnessed a %s individual, who goes by the name of %s, tampering with your weapon. I observed him taking something out of it. Though I was able to frighten him away, please ensure to double-check your equipment when you retrieve it. + + + + When I first found you I saw a %s member named %s, he grabbed some of your things and ran, hopefully you can find him and get whatever he took back. + + + + When I first came across you, a %s member named %s was present. He took some of your belongings and ran off. Hopefully, you can locate him and retrieve your items. + + + + My first sighting of you involved a %s member named %s who took some of your possessions and fled. I hope you can track him down and recover your belongings. + + + + When I first stumbled upon you, there was a %s member named %s who took some of your belongings and escaped. Hopefully, you can find him and get back what he took. + + + + As I stumbled upon you, there was another %s member nearby named %s who was rifling through your belongings. I hope you can track him down and retrieve what he took. + + + + Your gear was left unattended, so I went back and hid it to keep it safe. If you need to find it, use an RF Receiver and set the frequency to %s. When you get close enough, your device will start beeping. I also left a note in your pocket with the frequency just in case you forget. + + + + I took the initiative to hide your gear so that nobody else would take it. You can retrieve it by using an RF Receiver and setting the frequency to %s. Once you're in the vicinity, your device will start beeping. I've also included a note in your pocket with the frequency in case you forget. + + + + Your gear was vulnerable, so I went back and hid it to prevent theft. To locate it, use an RF Receiver and set the frequency to %s. When you get close enough, your device will beep. I've left a note in your pocket with the frequency in case you forget. + + + + To safeguard your gear, I hid it somewhere secure. You can locate it by using an RF Receiver and setting the frequency to %s. Your device will start beeping once you're in the proximity. I've also included a note in your pocket with the frequency in case you forget. + + + + I didn't want anyone to steal your gear, so I hid it for safekeeping. To find it, use an RF Receiver and set the frequency to %s. Your device will beep once you're close enough. If you forget the frequency, don't worry; there's a note in your pocket with the details. + + + + Your belongings are tucked away in a hidden spot that I marked on your PDA. + + + + I've stowed your items in a secure stash and labeled its location on your PDA. + + + + I've hidden your possessions in a secret location and noted it on your PDA. + + + + Your things are safely tucked away in a stash that I marked on your PDA. + + + + I concealed your items in a discreet stash and marked its location on your PDA for safekeeping. + + + + Yo, you are one lucky mother fucker! I cannot believe you went into %s. You are incredibly luck we found you! I was able to rally some of the other Stalkers to go in there and help me with your gear, hopefully it's all accounted for. + + + + Dude, you lucked out big time! I can't believe you went into %s. We found you just in time! A few of us Stalkers joined forces to retrieve your gear, and it looks like everything's intact. + + + + Hey, lucky son of a bitch! I'm amazed you made it into %s. Thank goodness we stumbled upon you! Some of the other Stalkers and I teamed up to salvage your gear, and we've got it all sorted out. + + + + Well, well, well, look who we have here - one lucky son of a bitch! You actually went into %s, huh? We found you just in time, and with the help of some fellow Stalkers, we were able to recover your gear. It's all accounted for. + + + + Holy shit, you're one lucky bastard! I can't believe you went into %s without any backup. Luckily, we found you in time, and a group of us Stalkers helped recover your gear. It's all there. + + + + I was able to scare off the mutant near by but they seemed to be rummaging through your backpack. I would take care when retrieving your things, whatever you had in there might attrack other wildllife in the area. + + + + After scaring off the nearby mutant, I noticed that it was rummaging through your backpack. Please exercise caution while retrieving your items, as whatever was in there might attract other wildlife in the area. + + + + While I was able to scare off the mutant nearby, it appeared to have been going through your backpack. Please be mindful when retrieving your belongings, as they might attract other wildlife in the area. + + + + The mutant near us fled after I scared it off, but I saw it rummaging through your backpack. Please be cautious when retrieving your things since other wildlife in the area might be attracted to whatever was in there. + + + + Your backpack caught the attention of a mutant, but I was able to scare it off. Please take care when retrieving your items, as whatever was in there might attract other wildlife in the area. + + + diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/eng/st_soulslike_items.xml b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/eng/st_soulslike_items.xml new file mode 100644 index 00000000..7b0fe6c4 --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/eng/st_soulslike_items.xml @@ -0,0 +1,16 @@ + + + + + Rescuer's Note + + + + A note written by one of the stalker that rescued you. + + + + The note contains information about where your items are. It says to use an RF receiver with the frequency %s in %s + + + \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/eng/ui_st_mcm_soulslite.xml b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/eng/ui_st_mcm_soulslite.xml new file mode 100644 index 00000000..b9af198f --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/eng/ui_st_mcm_soulslite.xml @@ -0,0 +1,230 @@ + + + Soulslike + + + + + General + + + Jabbers' Soulslike Settings + + + The Soulslike mod brings elements souls style games to Stalker. Upon death your are saved by a random Stalker in the zone. They bring you back to the set last spawn location where you awake to find a message from them about how you were found and the lengths they may have gone to to get you to a safe place. The items that were on your character must be retrieved, some can be lost and condition degraded all depending on settings. + + + DISCLAIMER: Stop crying, this mod is suppose to make the game harder. Because of this it's 100% possible to get yourself into a situation where you unexpectedly lose your gear. Random item loss on death means you could lose your weapons or armor, dying in the middle of an anomaly and not being able to get your gear back is possible and expected. Always stock a backup kit, plan for the worst, hope for the best. + + + + + Character + + + Character Settings + + + Rank Loss % + + + This amount of character rank you will lose on respawn. + + + Reputation Loss % + + + This amount of character reputation you will lose on respawn. This is personal repuation, not faction standing/rep. + + + Health loss % on respawn + + + This add a bit more difficulty to your playthrough. This is the amount of health that will be removed when you respawn. Example: 25% means you will have 75% health when you respawn. The concept here is that you would still be slightly injured and requires you to keep some meds around to heal yourself before trying to continue and retrieve your items from where you died. + + + + + Items + + + Item Settings + + + Keep Equipped Items On Death + + + The settings below apply to items dropped on death. Each of the item types below have a chance to be permanenently lost unless you uncheck them. + + + Allow Weapon Loss + + + Allow Outfit Loss + + + Allow Headgear Loss + + + Allow Artifact Loss + + + Allow Tools Loss + + + Item and condition loss are based on your rank. When you die, the higher rank you are the more likely the chance to lose an item or have the condition reduced. This is to make it easier at the beginning of a new game but as you progress the conciquence of death becomes more and more severe. See the tooltip on each setting for a more detailed explination. + + + Item loss scalar + + + At max rank your character has a 75% chance to lose each item on death. The Item loss scalar allows you to manage that loss to your liking. At the default value of 0.20 (or 20%) your maximum loss chance per item would be 15%. You should set this to a value that suits your accetable level of item loss. Examples: 0.10 = 7.5%, 0.20 = 15%, 0.30 = 22%, 0.40 = 30%... you get the idea yet? + + + + Item condition loss scalar + + + At max rank your character will lose 18 condition on each item on death. The Item condition loss scalar allows you to manage that loss to your liking. At the default value of 0.05 (or 5%) your maximum condition loss per item would be 3.7. You should set this to a value that suits your accetable level of item condition loss. Examples: 0.05 = 3.7, 0.10 = 7.4, 0.15 = 11... you get the idea yet? + + + + + Scenarios + + + Scenario Settings + + + Soulslike scenarios are dynamic by nature. Respawn events occur based on who killed you, how you were killed, where, how close to your spawn you are when you died, whether you are inside or outside, just to name a few. These settings exist to allow you to customize the ways you want to try and recover your gear. The default scenario's that always exist are that you may end up having all of your items on you on respawn (again, based on events), or you may find that your items are in a backpack on the ground where your body was found. The options below are in addition to those and weight can be changed to make them more or less frequent. + + + RF Detector Scenario Weight. + + + As an extra layer of difficulty and to just mix things up a bit, when this scenario is used it your rescuer will move all your items to a hidden stash on the same map where you were found. They will tell you the RF freqency to listen to to track down your gear, and also leave you a note in your inventory as a reminder. + + + Hidden Stash Scenario Weight. + + + As an extra layer of difficulty and to just mix things up a bit, when this scenario is used it your rescuer will move all your items to a hidden stash and mark it on your PDA. + + + Mark looting NPCs on the PDA + + + When your gear is looted by an NPC, this option will allow you to track them on your PDA. + + + + + Ambush + + + Ambush Settings + + + Depending on what has occured in the scenario and what items are on your character, there is a chance for an ambush event to occur where your body was discovered. + + + Mutant Ambush Chance + + + Allow Boar Ambush + + + Allow Flesh Ambush + + + Allow Dog Ambush + + + Allow Cat Ambush + + + Allow Snork Ambush + + + Allow Blood Sucker Ambush + + + Allow Burer Ambush + + + Allow Chimera Ambush + + + Allow Controller Ambush + + + Stalker Ambush Chance + + + Allow Novice Stalker Ambush + + + Allow Experienced Stalker Ambush + + + Allow Master Stalker Ambush + + + Allow Sniper Stalker Ambush + + + + + Hardcore + + + Hardcore Settings + + + Kind of like slamming your dick in a hard cover book, Hardcore Saves means manual, quick and campfire saves are all disabled and only one save file will ever exist. Hardcore Saves only allows saving during sleeping and when respawning. Keep in mind that because only 1 save file will ever exist, its possible to get stuck in a position where progression is tough if you lose all your gear and have no money to heal or eat. + + + Enable Hardcore Saves + + + Allow Campfire Saves w/Hardcore Saves + + + Sometimes you need that warm fuzzy feeling of comfort you get by saving often. This allow saving at campfires, even though hardcore saves is enabled. Keep in mind that when respawning or sleeping your campfire saves will still be deleted if Hardcore Saves is enabled. + + + + + Developer + + + Developer Settings + + + Debug Mode + + + Show PDA Messages + + + Debug Hidden Stashes + + + Debug Item Loss + + + Debug Tarkov Looter + + + Debug No Loss Scenario + + + Debug Default Loss Scenario + + + Debug RF Detector Scenario + + + Debug Hidden Stash Scenario + + \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/eng/ui_st_mm_soulslike.xml b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/eng/ui_st_mm_soulslike.xml new file mode 100644 index 00000000..a006479f --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/eng/ui_st_mm_soulslike.xml @@ -0,0 +1,14 @@ + + + + Soulslike Mode + + + + %c[0,150,150,150]In Soulslike mode, death technically never happens. Upon "death" your are rescued by a random Stalker in the zone. They bring you back to the set last spawn location where you awake to find a message from them\n + about how you were found and the lengths they may have gone to to get you to a safe place. The items that were on your character must be retrieved, some can be lost and condition degraded all depending on settings.\n + \n %c[200,200,50,50] Not compatible with Azazel mode.\n + \n %c[200,200,50,50] Not compatible with Ironman. + + + \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/rus/soulslike_messages.xml b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/rus/soulslike_messages.xml new file mode 100644 index 00000000..005685f0 --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/rus/soulslike_messages.xml @@ -0,0 +1,236 @@ + + + + + + Хардкорная экономия включена.Сохраняет автоматически, когда сон и возрождается. + + + + Stash with some of your items + + + + Set Spawn + + + + Расположение порода было установлено.Нажмите снова, чтобы заснуть. + + + + Когда вы просыпаетесь, вы окажетесь в знакомых местах, но не зная, как вы сюда попали. + + + + Ищите свои вещи, которые вы найдете, кто -то оставил вам что -нибудь поесть и выпить. + + + + Вы также обнаружите, что примечание, в которой объясняется, что ваше снаряжение находится в скрытом тайнике, и для использования РЧ -приемника с частотой %s, чтобы отслеживать его, что начнет звучать, как только вы достаточно близко. + + + + Похоже, на вашем КПК есть маркер, где вы были найдены. + + + + Привет!Я просто хотел посмотреть, как ты себя чувствуешь.Ты был почти мертв, когда я нашел тебя. + + + + Я не могу поверить, что ты все еще с нами!Я не мог поверить, что ты все еще дышал, когда нашел тебя. + + + + Привет, как ты?Я рад видеть, что сейчас тебе лучше.Вы были очень плохими, когда я нашел вас. + + + + Привет!Просто хотел проверить и посмотреть, как вы себя чувствуете.Вы действительно избили, когда я нашел вас. + + + + Эй, надеюсь, ты сейчас на починке.Я волновался, когда нашел тебя в таком плохом состоянии. + + + + Я оставил что -нибудь, чтобы вы могли поесть и выпить, когда вы просыпаетесь. + + + + Я оставил вам немного еды и пить, чтобы наслаждаться, когда вы просыпаетесь. + + + + Я оставил тебе что -нибудь поесть и выпить, когда ты просыпаешься. + + + + Я позаботился о том, чтобы оставить вам еду и выпить, когда вы просыпаетесь. + + + + Я оставил тебе что -нибудь поесть и выпить. + + + + Я добавил маркер, в котором я нашел вас в ваш КПК.Надеюсь, вы сможете вернуть некоторые из своих вещей. + + + + Я добавил маркер в ваш КПК, чтобы вы могли, надеюсь, получить некоторые из ваших вещей, откуда я вас нашел. + + + + В ваш КПК был добавлен маркер, чтобы помочь вам найти место, где вы были найдены, в надежде, что вы сможете восстановить некоторые из ваших потерянных предметов. + + + + У вашего КПК теперь есть маркер, указывающий место, где я вас нашел, что может помочь вам получить некоторые из ваших вещей. + + + + Чтобы помочь вам получить некоторые из ваших вещей, я добавил маркер в ваш КПК, показывающий место, где я вас нашел. + + + + Мне пришлось использовать некоторые из вещей, которые у вас были, чтобы вытащить вас оттуда. + + + + Чтобы спасти вашу жизнь, мне пришлось использовать некоторые предметы, которые вы несли на вас. + + + + Мне пришлось использовать некоторые из ваших вещей, чтобы спасти вас и сохранить вас в живых. + + + + Чтобы обеспечить ваше выживание, мне пришлось использовать некоторые из вещей, которые у вас были на вас. + + + + Я использовал некоторые из ваших вещей, чтобы вытащить вас оттуда. + + + + Держите в безопасности, сталкер. + + + + Береги себя, Сталкер. + + + + Оставайся в безопасности, Сталкер. + + + + Будьте в безопасности, Сталкер. + + + + Держись подальше от неприятностей, Сталкер. + + + + Когда я впервые обнаружил вас, я увидел участника %s по имени %s, он схватил некоторые из ваших вещей и побежал, надеюсь, вы сможете найти его и вернуть все, что он взял. + + + + Когда я впервые наткнулся на вас, присутствовал член %s с именем %s.Он взял некоторые из ваших вещей и убежал.Надеюсь, вы сможете найти его и получить свои вещи. + + + + В моем первом наблюдении за вами участвовали члена %s по имени %s, который взял некоторые из ваших имущества и сбежал.Я надеюсь, что вы сможете отследить его и восстановить свои вещи. + + + + Когда я впервые наткнулся на вас, был член %s по имени %s, который взял некоторые из ваших вещей и сбежал.Надеюсь, вы сможете найти его и вернуть то, что он взял. + + + + Когда я наткнулся на вас, был еще один участник %s, который поблизости назвал %s, который пробил ваши вещи.Я надеюсь, что вы сможете отследить его и получить то, что он взял. + + + + Я вернулся и спрятал ваше снаряжение, чтобы никто не взял его.Вы должны быть в состоянии отслеживать его РЧ -приемник, установив частоту на %s.Как только вы приблизитесь к его местоположению, ваше устройство должно запустить звуковой сигнал. + + + + Я спрятал ваше снаряжение, чтобы предотвратить его украдение.Используйте РЧ -приемник и установите частоту на %s, чтобы найти его.Как только вы достаточно близко, ваше устройство начнет звучать. + + + + Чтобы сохранить ваше снаряжение в безопасности, я спрятал его и устанавливаю РЧ -приемник на частоту %s.Когда вы приблизитесь достаточно близко, ваше устройство будет звучать по звуковому сигналу, и вы можете найти его. + + + + Ваше снаряжение было в риске украденного, поэтому я спрятал его и установил РЧ -приемник на частоту %s.Ваше устройство должно звучать, когда вы находитесь рядом с его местоположением. + + + + Я закрепил ваше снаряжение, скрыв его и установив РЧ -приемник на частоту %s.Используйте свое устройство, чтобы отслеживать его, и оно начнет звучать, как только вы будете достаточно близко. + + + + Ваши вещи спрятаны в тайном месте, которое я отметил на вашем КПК. + + + + Я спрятал ваши вещи в безопасном месте и пометил его местоположение на вашем КПК. + + + + Я спрятал ваши вещи в тайном месте и отметил его на вашем КПК. + + + + Ваши вещи безопасно спрятаны в укрытии, которое я отметил на вашем КПК. + + + + Я скрыл ваши вещи в ненавязчивом укрытии и отметил его местоположение на вашем КПК для сохранности. + + + + Эй, ты один из самых удачливых ублюдков! Невероятно, что ты рискнул зайти в %s. Ты очень повезло, что мы тебя нашли! Мне удалось собрать нескольких других сталкеров, чтобы помочь мне с твоим снаряжением, надеюсь, все на месте. + + + + Чувак, тебе очень повезло! Невероятно, что ты залез в %s. Мы нашли тебя вовремя! Несколько нас сталкеров собрались, чтобы вернуть твоё снаряжение, и похоже, что всё целое и невредимое. + + + + Эй, сын везения! Я поражен, что ты смог зайти в %s. Слава богу, что мы наткнулись на тебя! Некоторые другие сталкеры и я объединили усилия, чтобы спасти твоё снаряжение, и всё у нас в порядке. + + + + Вот и ты, один из самых удачливых ублюдков! Ты реально зашёл в %s, да? Мы нашли тебя вовремя, и с помощью нескольких других сталкеров мы смогли вернуть твоё снаряжение. Всё на месте. + + + + Ох, блядь, тебе очень повезло! Невероятно, что ты залез в %s без какой-либо поддержки. К счастью, мы нашли тебя вовремя, и группа из нас сталкеров помогла вернуть твоё снаряжение. Всё на месте. + + + + Я смог отпугнуть мутанта рядом, но он кажется привлекался твоим рюкзаком. Будь осторожен, когда заберешь свои вещи - они могут привлечь других диких животных в этой области. + + + + После того, как я отпугнул рядом находившегося мутанта, заметил, что он пролезался в твоем рюкзаке. Будь осторожен при забирании своих вещей, так как то, что ты там имел, может привлечь других диких животных в этой области. + + + + Я смог отпугнуть мутанта, который находился рядом, но, похоже, он перерыл твой рюкзак. Будь внимателен, когда заберешь свои вещи, так как они могут привлечь других диких животных в этой области. + + + + Мутант, находившийся рядом с нами, бежал после того, как я его отпугнул, но я видел, что он роется в твоем рюкзаке. Будь осторожен, когда будешь забирать свои вещи, потому что другие дикие животные в этой области могут привлечься к тому, что находилось внутри. + + + + Твой рюкзак привлек внимание мутанта, но я смог его отпугнуть. Будь осторожен, когда будешь забирать свои вещи, так как то, что было внутри, может привлечь других диких животных в этой области. + + \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/rus/st_soulslike_items.xml b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/rus/st_soulslike_items.xml new file mode 100644 index 00000000..4511dc9a --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/rus/st_soulslike_items.xml @@ -0,0 +1,16 @@ + + + + + Примечание спасателя + + + + Примечание, написанное одним из сталкеров, который тебя спас. + + + + В записке указана информация о месте, где находятся ваши вещи. Там написано, что нужно использовать радиоприемник с частотой %s в %s. + + + \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/rus/ui_st_mcm_soulslite.xml b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/rus/ui_st_mcm_soulslite.xml new file mode 100644 index 00000000..1e7e03fe --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/rus/ui_st_mcm_soulslite.xml @@ -0,0 +1,224 @@ + + + + Soulslike + + + + + Общий + + + Jabbers' Soulslike Настройки + + + + Мод Soulslike привносит в Сталкер элементы игр в стиле Souls. После смерти вас спасает случайный сталкер в зоне. Он возвращает вас в установленное место последнего спавна, где вы просыпаетесь и находите сообщение от него о том, как вас нашли и на что он пошёл, чтобы доставить вас в безопасное место. Предметы, которые были на вашем персонаже, могут быть найдены, некоторые могут быть потеряны, а состояние ухудшено в зависимости от настроек. + + + + ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Хватит плакать, этот мод призван усложнить игру. В связи с этим существует 100% возможность попасть в ситуацию, когда вы неожиданно потеряете свое снаряжение. Случайная потеря предметов при смерти означает, что вы можете потерять оружие или броню, умереть в центре аномалии и не иметь возможности вернуть свое снаряжение - это возможно и ожидаемо. Всегда имейте запасной комплект, готовьтесь к худшему, надейтесь на лучшее. + + + + + Персонаж + + + Настройки персонажа + + + Потеря ранга % + + + Это количество ранга персонажа, которое вы потеряете при возрождении. + + + Потеря репутации % + + + Это количество репутации персонажа, которое вы потеряете при возрождении. Это личная репутация, а не стоящая/репутация фракции. + + + Потеря здоровья % при возрождении + + + Это добавляет немного сложности к вашей игре. Это количество здоровья, которое будет удалено при возрождении. Пример: 25% означает, что у вас будет 75% здоровья при возрождении. Концепция заключается в том, что вы все еще будете слегка ранены и вам потребуется сохранять некоторые лекарства для лечения перед попыткой продолжить и получить свои вещи от места, где вы умерли. + + + + + Предметы + + + Настройки предметов + + + Потеря оружия + + + Потеря снаряжения + + + Потеря головного убора + + + Потеря артефактов + + + Потеря инструментов + + Потеря предметов и их состояния зависит от вашего ранга. При смерти выше уровень вашего ранга, тем больше вероятность потери предмета или уменьшения его состояния. Это делает игру более легкой в начале, но по мере прохождения игры последствия смерти становятся все более серьезными. См. подсказку к каждой настройке для более подробного объяснения. + + + Коэффициент потери предметов + + + На максимальном уровне ранга вашего персонажа вероятность потери каждого предмета при смерти составляет 75%. Коэффициент потери предметов позволяет управлять этой потерей на ваше усмотрение. При стандартном значении 0,20 (или 20%) ваша максимальная потеря предмета составит 15%. Вы должны установить значение, которое подходит для вашего уровня потери предметов. Примеры: 0,10 = 7,5%, 0,20 = 15%, 0,30 = 22%, 0,40 = 30%... вы понимаете идею? + + + Коэффициент потери состояния предметов + + + На максимальном уровне ранга вашего персонажа будет потеряно 18 единиц состояния на каждый предмет при смерти. Коэффициент потери состояния предметов позволяет управлять этой потерей на ваше усмотрение. При стандартном значении 0,05 (или 5%) ваша максимальная потеря состояния предмета составит 3,7. Вы должны установить значение, которое подходит для вашего уровня потери состояния предметов. Примеры: 0,05 = 3,7, 0,10 = 7,4, 0,15 = 11... вы понимаете идею? + + + + + Сценарии + + + Настройки сценариев + + + Сценарии в духе Soulslike отличаются динамичностью. События респауна происходят в зависимости от того, кто убил вас, как вы были убиты, где, насколько близко к месту вашего респауна вы были, когда умерли, находитесь ли вы внутри или снаружи и многих других факторов. Эти настройки существуют, чтобы позволить вам настроить способы, которыми вы хотите попытаться восстановить свою экипировку. Сценарии по умолчанию всегда таковы, что при респауне вы можете оказаться со всеми своими вещами на себе (опять же, в зависимости от событий), или вы можете обнаружить, что ваша экипировка находится в рюкзаке на земле, где было найдено ваше тело. Ниже приведены дополнительные варианты, которые можно изменить, чтобы сделать их более или менее частыми. + + + Вес сценария RF Detector. + + + Как дополнительный уровень сложности и просто для разнообразия, когда используется этот сценарий, ваш спаситель переместит все ваши предметы в скрытый ящик на той же карте, где вы были найдены. Он сообщит вам частоту радиоволн для отслеживания вашей экипировки и оставит вам записку в инвентаре как напоминание. + + + Вес сценария скрытого ящика + + + Как дополнительный уровень сложности и просто для разнообразия, когда используется этот сценарий, ваш спаситель переместит все ваши предметы в скрытый ящик и пометит его на вашем PDA. + + + Отметить ворующих NPC на PDA + + + Когда ваше снаряжение грабит NPC, эта опция позволяет отслеживать их на PDA. + + + + + Засада + + + Настройки засады + + + В зависимости от того, что произошло в сценарии и какие предметы находятся у вашего персонажа, есть шанс возникновения события засады там, где было обнаружено ваше тело. + + + Шанс засады мутантов + + Разрешить нападение диких кабанов + + + Разрешить нападение Плоти + + + Разрешить нападение собак + + + Разрешить нападение котов + + + Разрешить нападение Снорков + + + Разрешить нападение Кровососов + + + Разрешить нападение бюрера + + + Разрешить нападение химеры + + + Разрешить нападение контроллера + + + Шанс нападения сталкеров + + + Разрешить нападение начинающих сталкеров + + + Разрешить нападение опытных сталкеров + + + Разрешить нападение мастеров сталкеров + + + Разрешить нападение снайперов сталкеров + + + + + Хардкоре + + + Хардкорные настройки + + + Похоже на то, что вы хлопаете своим членом по книге в твердой обложке, хардкорные сохранения означают, что ручное, быстрое сохранение и сохранение у костра отключены, и всегда будет существовать только один файл сохранения. Хардкорные сохранения позволяют сохраняться только во время сна и при возрождении. Имейте в виду, что, поскольку когда-либо будет существовать только один файл сохранения, можно застрять в ситуации, когда прогресс будет затруднен, если вы потеряете все свое снаряжение и у вас не будет денег на лечение или еду. + + + Включить хардкорные сохранения + + + Разрешить сохранения Campfire с хардкорными сохранениями + + + Иногда вам нужно то теплое пушистое чувство комфорта, которое вы получаете, часто экономя. Это позволяет сохраняться у костров, даже если хардкорные сохранения включены. Имейте в виду, что при возрождении или сне ваши сохранения у костра все равно будут удалены, если включены хардкорные сохранения. + + + + + Разработчик + + + Настройки Разработчика + + + Режим Отладки + + + Показывать сообщения PDA + + + Отладка скрытых укрытий + + + Отладка потери предметов + + + Отладка "Тарковского" грабителя + + + Отладка без потерь + + + Отладка стандартного сценария потерь + + + Отладка сценария с детектором РЧ + + + Отладка сценария скрытых укрытий + + \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/rus/ui_st_mm_soulslike.xml b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/rus/ui_st_mm_soulslike.xml new file mode 100644 index 00000000..3cd6b49a --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/configs/text/rus/ui_st_mm_soulslike.xml @@ -0,0 +1,16 @@ + + + + Soulslike Режим + + + + %c[0,150,150,150]В Soulslike-режиме, смерть, технически, никогда не наступает\n + \nОн возвращает вас в установленное место последнего спавна, где вы просыпаетесь и находите от него сообщение\n + о том, как он вас нашел и на что он пошел, чтобы доставить вас в безопасное место.\n\n + Предметы, которые были на вашем персонаже, необходимо вернуть, некоторые могут быть утеряны, а состояние ухудшено, все зависит от настроек\n + \n %c[200,200,50,50] Не совместим с режимом Азазель.\n + \n %c[200,200,50,50] Не совместим с режимом Ironman. + + + \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/configs/ui/soulslike_ui_mm_gamemode.xml b/mods/Jabbers Soulslike Gamemode/gamedata/configs/ui/soulslike_ui_mm_gamemode.xml new file mode 100644 index 00000000..76ab5bf0 --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/configs/ui/soulslike_ui_mm_gamemode.xml @@ -0,0 +1,12 @@ + + + + + st_cap_check_soulslike_mode + + + ui_inGame2_checkbox + + + + \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/configs/ui/soulslike_ui_mm_gamemode_16.xml b/mods/Jabbers Soulslike Gamemode/gamedata/configs/ui/soulslike_ui_mm_gamemode_16.xml new file mode 100644 index 00000000..2ee56229 --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/configs/ui/soulslike_ui_mm_gamemode_16.xml @@ -0,0 +1,12 @@ + + + + + st_cap_check_soulslike_mode + + + ui_inGame2_checkbox + + + + \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/configs/ui/soulslike_ui_sleep_dialog.xml b/mods/Jabbers Soulslike Gamemode/gamedata/configs/ui/soulslike_ui_sleep_dialog.xml new file mode 100644 index 00000000..b7240963 --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/configs/ui/soulslike_ui_sleep_dialog.xml @@ -0,0 +1,7 @@ + + + button_spawn + set_spawn_button + ui_inGame2_Mp_bigbuttone + + \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/configs/ui/soulslike_ui_sleep_dialog_16.xml b/mods/Jabbers Soulslike Gamemode/gamedata/configs/ui/soulslike_ui_sleep_dialog_16.xml new file mode 100644 index 00000000..1a3841e4 --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/configs/ui/soulslike_ui_sleep_dialog_16.xml @@ -0,0 +1,7 @@ + + + button_spawn + set_spawn_button + ui_inGame2_Mp_bigbuttone + + \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike.script b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike.script new file mode 100644 index 00000000..525d1e9e --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike.script @@ -0,0 +1,955 @@ + +--[[ + Jabbers + 05APR2023 + Jabbers' Soulslike Anomaly Mod +--]] + +local version = "0.28-beta" + +local tools_list = { + ["itm_basickit"] = true, + ["itm_advancedkit"] = true, + ["itm_expertkit"] = true, + ["itm_drugkit"] = true, + ["itm_ammokit"] = true, + ["itm_gunsmith_toolkit"] = true, + ["itm_artefactskit"] = true, +} + +local scenario_logic = nil + +RELATIONS = { + FRIENDS = 1000, + BUDDIES = 500, + NEUTRALS = 0, + ENEMIES = -1000 +} + +SCENARIOS = { + Default = 1, + RFDetectorStash = 2, + HiddenStash = 3, + NoLoss = 4, +} + +hit_type_to_str = { + [hit.light_burn] = "Light Burn", + [hit.burn] = "Burn", + [hit.strike] = "Strike", + [hit.shock] = "Shock", + [hit.wound] = "Wound", + [hit.radiation] = "Radiation", + [hit.telepatic] = "Telepatic", + [hit.chemical_burn] = "Chemical Burn", + [hit.explosion] = "Explosion", + [hit.fire_wound] = "Fire", +} + +entity_type = { + Stalker = 1, + Monster = 2, + Anomaly = 3, + Self = 4, + Other = 4 +} + +---------------------------------------- +-- Classes +---------------------------------------- + +MAX_HIT_POOL_COUNT = 30 +MAX_HIT_TIME = 30000 +local hit_queue = soulslike_classes.TimedQueue(MAX_HIT_POOL_COUNT, MAX_HIT_TIME) + +---------------------------------------- +-- Helpers +---------------------------------------- + +function try(func, ...) + local status, error_or_result = pcall(func, ...) + if not status then + soulslike.error(error_or_result) + return false + else + return error_or_result + end +end + +function math.clamp(x, min, max) + if x < min then return min end + if x > max then return max end + return x +end + +function table.get_length(T) + local count = 0 + for _ in pairs(T) do count = count + 1 end + return count +end + +function table.has_value(tab, val) + for _, value in ipairs(tab) do + if value == val then + return true + end + end + return false +end + +---------------------------------------- +-- DEBUG +---------------------------------------- +local function print_table (tbl, indent) + if not indent then + indent = 0 + end + + utils_data.debug_write(string.rep(" ", indent) .. "{") + + indent = indent + 2 + + if (type(tbl) == "userdata") then + utils_data.debug_write(",\n") + else + for k, v in pairs(tbl) do + local toprint = string.rep(" ", indent) + + if (type(k) == "number") then + toprint = toprint .. "[" .. k .. "] = " + elseif (type(k) == "string") then + toprint = toprint .. k .. " = " + end + + if (type(v) == "number") then + utils_data.debug_write(toprint .. v .. ",") + elseif (type(v) == "string") then + utils_data.debug_write(toprint .. "\"" .. v .. "\",") + elseif (type(v) == "table") then + utils_data.debug_write(toprint) + print_table(v, indent + 2) + else + utils_data.debug_write(toprint .. "\"" .. tostring(v) .. "\",") + end + end + end + + utils_data.debug_write(string.rep(" ", indent-2) .. "}") +end + +local function log(log_type, output) + if not output then + utils_data.debug_write("[Soulslike] "..log_type..": ".."(nil)") + elseif (type(output) == "table") then + utils_data.debug_write("[Soulslike] "..log_type..": ") + print_table(output) + else + utils_data.debug_write("[Soulslike] "..log_type..": "..output) + end +end + +function debug(output) + log("DEBUG", output) +end + +function info(output) + log("INFO ", output) +end + +function warn(output) + log("WARN ", output) +end + +function error(output) + log("ERROR", output) +end + +function debug_tip(text, delay) + debug(text) + + if not soulslike_mcm.show_debug_tips() then + return + end + + local text = "[Soulslike] "..tostring(text) + + if not db.actor then + return + end + + local ico = "ui_inGame2_Dengi_otdani" + local text_color = utils_xml.get_color("pda_white") + + text = text_color .. text + + if delay == nil then + delay = 6000 + end + + news_manager.send_tip(db.actor, text, nil, ico, delay) +end + + +---------------------------------------- +-- Globals +---------------------------------------- + +function _G.IsSoulslikeMode() + return not IsHardcoreMode() and axr_main.config and axr_main.config:r_value("character_creation","new_game_soulslike_mode",1) == true or alife_storage_manager.get_state().enable_soulslike_mode == true +end + +function _G.IsToolkit(o, s) + if not (s) then + s = o and o:section() + end + return tools_list[s] +end + +---------------------------------------- +-- Helper Functions +---------------------------------------- + +function get_soulslike_state() + local game_state = alife_storage_manager.get_state() + + if not game_state.soulslike then + game_state.soulslike = { + created_stashes = {}, + spawn_location = { + level = nil, + position = { + x = nil, + y = nil, + z = nil, + }, + angle = { + x = nil, + y = nil, + z = nil, + }, + level_vertex_id = nil, + game_vertex_id = nil, + }, + note_message_data = {}, + hidden_stashes = {} + } + end + + -- Backward save compatibility + if not game_state.soulslike.note_message_data then + game_state.soulslike.note_message_data = {} + end + + if not game_state.soulslike.hidden_stashes then + game_state.soulslike.hidden_stashes = {} + end + + if not game_state.soulslike.created_stashes then + game_state.soulslike.created_stashes = {} + end + + if not game_state.soulslike.spawn_location then + game_state.soulslike.spawn_location = { + level = nil, + position = { + x = nil, + y = nil, + z = nil, + }, + angle = { + x = nil, + y = nil, + z = nil, + }, + level_vertex_id = nil, + game_vertex_id = nil, + } + end + + return game_state.soulslike +end + +function set_spawn(show_message) + local se_actor = alife():actor() + local state = get_soulslike_state() + + state.spawn_location.level = level.name() + state.spawn_location.position.x = se_actor.position.x + state.spawn_location.position.y = se_actor.position.y + state.spawn_location.position.z = se_actor.position.z + state.spawn_location.angle.x = se_actor.angle.x + state.spawn_location.angle.y = se_actor.angle.y + state.spawn_location.angle.z = se_actor.angle.z + state.spawn_location.level_vertex_id = se_actor.m_level_vertex_id + state.spawn_location.game_vertex_id = se_actor.m_game_vertex_id + + debug("Saved spawn location data:") + + if show_message then + local str = game.translate_string("st_soulslike_spawn_location_set") + actor_menu.set_msg(1, str, 4) + end +end + +function find_closest_enemy() + local enemy = nil + local enemy_dist = 150 + local sim = alife() + local gg = game_graph() + local level_name = level.name() + + if not sim then return end + if not gg then return end + + for i=1,65534 do + local se_obj = sim:object(i) + if se_obj and (level_name == sim:level_name(gg:vertex(se_obj.m_game_vertex_id):level_id())) then + local cls = se_obj:clsid() + local sec = se_obj:section_name() + local is_valid = false + + if IsStalker(nil,cls) and string.find(sec,"sim_default_") and se_obj:alive() then + local comm = se_obj:community() + if (comm ~= "trader") and (comm ~= "zombied") then + is_valid = true + end + elseif IsMonster(nil,cls) then + is_valid = true + end + + if is_valid then + local dist = se_obj.position:distance_to_sqr(db.actor:position()) + if enemy_dist > dist then + if IsStalker(nil,cls) then + local comm = se_obj:community() + debug("Found enemy "..se_obj:name().." from the "..comm.." community "..tostring(dist).." meters away.") + enemy = se_obj + elseif IsMonster(nil,cls) then + enemy = se_obj + end + end + end + end + end + + return enemy +end + +function find_closest_enemy_mutant() + local enemy = nil + local enemy_dist = 75 + local sim = alife() + local gg = game_graph() + local level_name = level.name() + + if not sim then return end + if not gg then return end + + for i=1,65534 do + local se_obj = sim:object(i) + if se_obj and (level_name == sim:level_name(gg:vertex(se_obj.m_game_vertex_id):level_id())) then + local cls = se_obj:clsid() + + if IsMonster(nil,cls) then + local dist = se_obj.position:distance_to_sqr(db.actor:position()) + if enemy_dist > dist then + if IsMonster(nil,cls) then + enemy = se_obj + end + end + end + end + end + + return enemy +end + +function find_closest_enemy_stalker() + local friend = nil + local friend_dist = 100000 + + for i=1, #db.OnlineStalkers do + local id = db.OnlineStalkers[i] + local npc = db.storage[id] and db.storage[id].object or level.object_by_id(id) + + if npc then + local dist = npc:position():distance_to_sqr(db.actor:position()) + local is_friend = npc:general_goodwill(db.actor) <= RELATIONS.ENEMIES + + if npc:alive() and is_friend and friend_dist > dist and (not get_object_story_id(id)) then + local comm = npc:character_community() + debug("Found friend "..npc:name().." from the "..comm.." community "..tostring(dist).." meters away.") + friend = npc + friend_dist = dist + end + end + end + + return friend +end + +function find_closest_friendly_stalker() + local friend = nil + local friend_dist = 100000 + + for i=1, #db.OnlineStalkers do + local id = db.OnlineStalkers[i] + local npc = db.storage[id] and db.storage[id].object or level.object_by_id(id) + + if npc then + local dist = npc:position():distance_to_sqr(db.actor:position()) + local is_friend = npc:general_goodwill(db.actor) >= RELATIONS.ENEMIES + + if npc:alive() and is_friend and friend_dist > dist and (not get_object_story_id(id)) then + local comm = npc:character_community() + debug("Found friend "..npc:name().." from the "..comm.." community "..tostring(dist).." meters away.") + friend = npc + friend_dist = dist + end + end + end + + return friend +end + +function force_save(type) + --if game isn't already paused, then force a pause here + local force_pause + if not (device():is_paused()) then + device():pause(true) + force_pause = true + end + local Y, M, D, h + Y, M, D, h = game.get_game_time():get(Y, M, D, h) + + local m = level.get_time_minutes() + if m < 10 then + m = ("0"..m) + end + + local comm = utils_xml.get_special_txt(db.actor:character_community()) + local map = utils_xml.get_special_txt(level.name()) + local date = string.format("%d.%d.%d %d-%d", D, M, Y, h, m) + local file_name = "soulslike_"..comm.." - "..map.." "..date.." - "..type + + exec_console_cmd("save ".. file_name) + + if (force_pause) then + device():pause(false) + end +end + +---------------------------------------- +-- Dream Callbacks +---------------------------------------- + +function wakeup_callback() + debug("wakeup_callback") + xr_effects.enable_ui(db.actor, nil) + + exec_console_cmd("snd_volume_music "..tostring(_G.mus_vol)) + exec_console_cmd("snd_volume_eff "..tostring(_G.amb_vol)) + + _G.amb_vol = 0 + _G.mus_vol = 0 + + disable_info("tutorial_sleep") + disable_info("actor_is_sleeping") + disable_info("sleep_active") + + debug("Looking for scenario logic.") + + if scenario_logic then + debug("Completing scenario.") + scenario_logic:OnComplete() + else + error("No logic state") + end + + local data = get_soulslike_state() + scenario_logic:destroy() + scenario_logic = nil + data.logic_state = nil +end + +function dream_callback() + debug("dream_callback") + level.add_cam_effector("camera_effects\\sleep.anm", 10, false, "soulslike.wakeup_callback") + + local hours = math.random(6,14) + level.change_game_time(0,hours,0) + + db.actor.power = 1 + + SendScriptCallback("actor_on_sleep", hours) +end + +---------------------------------------- +-- Game Callbacks +---------------------------------------- + +local function actor_on_before_death(who, flags) + if not IsSoulslikeMode() then + return + end + + -- Pretty sure this fixes arena fights, still need to test + if has_alife_info("bar_arena_fight") then + debug('Actor was in an arena fight, ignoring death.') + return + end + + debug('Actor died') + game_statistics.increment_statistic("deaths") + + hit_queue:Invalidate() + scenario_logic = soulslike_scenario_logic_factory.create_new(hit_queue:Values()) + + if scenario_logic then + scenario_logic:OnDeath() + flags.ret_value = false + end + + hit_queue:Clear() +end + +local function on_before_save_input(flags, type, text) + if not IsSoulslikeMode() then + return + end + + -- No hardcore save setting, allow saving + if not soulslike_mcm.is_hardcore_save_enabled() then + return + end + + -- Hardcore save is enabled, but we still want to save at campfires + -- We just return to let the regular saving work. + if soulslike_mcm.override_campfire_hardcore_saves() then + return + end + + -- All other scenarios flow through here and we just disallow saving + if not level_weathers.valid_levels[level.name()] then + return + end + + debug('User tried to save') + + local str = game.translate_string("st_save_only_when_sleeping") + actor_menu.set_msg(1, str, 4) + exec_console_cmd("main_menu off") + flags.ret = true +end + +local function try_send_inventory_examined_message(stash_id) + local data = get_soulslike_state() + local stash_data = data.created_stashes[stash_id] + + if stash_data and not stash_data.examine then + local lost_items = stash_data.lost_items + + debug('Stash not yet examined.') + debug(lost_items) + + if #lost_items > 0 then + + local msg = "You examine your belongings and find that you were missing the following items: " + local item_groups = {} + + for _, sec in pairs(lost_items) do + if not item_groups[sec] then + item_groups[sec] = { + section = sec, + count = 1 + } + else + item_groups[sec].count = item_groups[sec].count + 1 + end + end + + local item_names = {} + + for _, group in pairs(item_groups) do + local inv_name = ui_item.get_sec_name(group.section) + if group.count > 1 then + table.insert(item_names, tostring(group.count).." x "..inv_name) + else + table.insert(item_names, inv_name) + end + end + + msg = msg..table.concat(item_names, ", ") + + local ui_sender = news_manager.tips_icons['default'] + db.actor:give_game_news("", msg, ui_sender, 0, 20000) + + stash_data.examine = true + end + end +end + +local function actor_on_item_take_from_box(box,obj) + if not IsSoulslikeMode() then + return + end + + local state = get_soulslike_state() + local id = box:id() + + if (box:section() == "inv_backpack") then + if (box:is_inv_box_empty()) then + hide_hud_inventory() + + local se_obj = alife_object(id) + + if se_obj then + alife_release(se_obj) + try_send_inventory_examined_message(id) + state.created_stashes[id] = nil + end + end + end +end + +local function actor_on_stash_remove(data) + if not IsSoulslikeMode() then + return + end + + local state = get_soulslike_state() + + if state.created_stashes[data.stash_id] then + data.cancel = true + try_send_inventory_examined_message(state.stash_id) + end +end + +local function on_console_execute(name, ...) + if not IsSoulslikeMode() then + return + end + + if(name == "save") then + debug(name) + local extraArgs = {...} + + if extraArgs then + local last_save_file_name = table.concat(extraArgs," ") + debug(last_save_file_name) + if soulslike_mcm.is_hardcore_save_enabled() then + last_save_file_name = string.lower(last_save_file_name) + + debug("Don't delete: ".. last_save_file_name) + + local uuid = get_soulslike_state().uuid + local fs = getFS() + if not fs then return end + + local flist = fs:file_list_open_ex("$game_saves$",bit_or(FS.FS_ListFiles,FS.FS_RootOnly),"*.scoc") + local f_cnt = flist:Size() + + for it=0, f_cnt-1 do + local file = flist:GetAt(it) + local file_name = string.sub(file:NameFull(), 0, (string.len(file:NameFull()) - string.len(".scoc"))) + + local scoc_path = fs:update_path('$game_saves$', '')..file_name..".scoc" + local scop_path = fs:update_path('$game_saves$', '')..file_name..".scop" + local dds_path = fs:update_path('$game_saves$', '')..file_name..".dds" + + local f = io.open(scoc_path,"rb") + + if f then + local data = f:read("*all") + f:close() + + if (data) then + local decoded = alife_storage_manager.decode(data) + local d_soulslike = decoded and decoded.soulslike + + if (d_soulslike and (d_soulslike.uuid == uuid)) then + debug("/ Soulslike mode | file: "..file_name) + file_name = string.lower(file_name) + if file_name ~= last_save_file_name then + debug("~ Soulslike mode | delete save file: "..file_name) + + local scoc_path_bak = fs:update_path('$game_saves$', '').."soulslike-backup/"..file_name..".scoc" + local scop_path_bak = fs:update_path('$game_saves$', '').."soulslike-backup/"..file_name..".scop" + local dds_path_bak = fs:update_path('$game_saves$', '').."soulslike-backup/"..file_name..".dds" + + fs:file_copy(scoc_path, scoc_path_bak) + fs:file_copy(scop_path, scop_path_bak) + fs:file_copy(dds_path, dds_path_bak) + + ui_load_dialog.delete_save_game(file_name) + end + end + end + end + end + end + end + end +end + +local function physic_object_on_use_callback(box, who) + local data = get_soulslike_state() + + if not IsInvbox(box) or not data.hidden_stashes or not data.hidden_stashes[box:id()] then + return + end + + local id = box:id() + local stash_data = data.hidden_stashes[id] + local stash_id = stash_data.stash_id + local se_obj = alife_object(stash_id) + local stash = level.object_by_id(stash_id) + + if not stash then + warn("Not expected, unable to find stash id linked to "..tostring(id)..". Please save and reload near the stash to see if it solves the issue.") + return + end + + local sim = alife(); + + if not sim then return end + + if se_obj and not se_obj.online then + se_obj:switch_online() + end + + sim:set_switch_online(stash_id,true) + sim:set_switch_offline(stash_id,false) + + try_send_inventory_examined_message(stash_id) + + local function transfer_item(temp,item) + debug("Transfering item "..item:section()) + stash:transfer_item(item, box) + end + + if stash_data.radio_id then + debug("Clearing radio stash "..tostring(stash_data.radio_id)) + item_radio.clear_stash(stash_data.radio_level, stash_data.radio_id) + end + + debug("Transfering items from hidden stash "..tostring(id).." to static stash "..tostring(stash_id)) + + + stash:iterate_inventory_box(transfer_item) + alife_release(stash) + + debug("Removing PDA marker "..tostring(id)) + level.map_remove_object_spot(id , "secondary_task_location") + + data.hidden_stashes[id] = nil +end + +local function load_state(data) + if not IsSoulslikeMode() then + return + end + + local data = get_soulslike_state() + + if not data.logic_state then + debug("No logic state") + elseif data.logic_state and not data.logic_state.scenario_id then + warn("Logic state exists without scenario id") + elseif data.logic_state and data.logic_state.scenario_id then + -- Reinitialize the last scenario using the saved logic state. + scenario_logic = soulslike_scenario_logic_factory.create_by_id(data.logic_state.scenario_id, data.logic_state) + end +end + +local function save_state(data) + if not IsSoulslikeMode() then + return + end + + local data = get_soulslike_state() + + if not data.spawn_location.level and level.name() ~= 'fake_start' then + set_spawn(false) + end + + if scenario_logic then + -- Save the logic state for the current scenario so we can restore it on load + -- This is for the purposes of ChangeLevel which unloads the scripts and then + -- reloads them, so we need to be able to reinitialize the scenario as it was + -- before changing levels + data.logic_state = scenario_logic.logic_state; + end +end + +local function on_level_changing() + if not IsSoulslikeMode() then + return + end + + debug("On on_level_changing load.") + local data = get_soulslike_state() + + if not data.spawn_location.level and level.name() ~= 'fake_start' then + set_spawn(false) + end +end + +local function on_game_load() + if not IsSoulslikeMode() then + return + end + + debug("On game load.") + + local data = get_soulslike_state() + local sim = alife() + + if sim then + debug("Updating position and status of hidden stashes.") + for box_id, value in pairs(data.hidden_stashes) do + local se_hidden_stash = alife_object(value.stash_id) + local se_box = alife_object(box_id) + + if not se_hidden_stash then + debug("Unable to find hidden stash "..tostring(value.stash_id)) + elseif not se_box then + debug("Unable to find box id "..tostring(box_id)) + else + debug("Moving hidden stash"..tostring(value.stash_id)) + sim:teleport_object(value.stash_id, se_box.m_game_vertex_id, se_box.m_level_vertex_id, se_box.position) + debug("Setting hidden stash online") + if not se_box.online then + se_box:switch_online() + end + + for i=1,65534 do + local se_obj = sim:object(i) + if (se_obj and se_obj.parent_id == id) then + debug("Moving "..se_obj.section.." id:"..tostring(value.stash_id)) + sim:teleport_object(value.stash_id, se_box.m_game_vertex_id, se_box.m_level_vertex_id, se_box.position) + if se_obj then + if not se_obj.online then + debug("Setting "..se_obj.section.." online") + se_obj:switch_online() + end + end + end + end + + end + end + end + + -- Write out an identifier so we can use it later + -- to identify other saves with the same ID if the + -- user is playing with Hardcore Saves enabled. + if not data.uuid then + data.uuid = GAME_VERSION .. "_" .. tostring(math.random(100)) .. tostring(math.random()) .. tostring(math.random(1000)) + end + + debug("Looking for scenario logic.") + + if scenario_logic then + debug("Calling scenario respawn.") + scenario_logic:OnRespawn() + end +end + +local function actor_on_sleep(hours) + if not IsSoulslikeMode() then + return + end + + soulslike.debug('actor_on_sleep') + + -- Only force save if we aren't running a scenario + if not scenario_logic then + soulslike.force_save("sleep") + end +end + +local detour_actor_on_before_hit = nil + +local function actor_on_before_hit(shit, bone_id, flags) + if not IsSoulslikeMode() then + if detour_actor_on_before_hit then + detour_actor_on_before_hit(shit, bone_id, flags) + end + return + end + + local damage = shit.power + if grok_actor_damage_balancer and grok_actor_damage_balancer.damage then + --debug("Using damage from Grok's Damage Balancer") + damage = grok_actor_damage_balancer.damage + end + + --debug("Player hit:") + --debug("shit.type: "..tostring(hit_type_to_str[shit.type])) + --debug("shit.power: "..tostring(damage)) + --debug("shit.impulse: "..tostring(shit.impulse)) + --debug("shit.draftsman: "..(shit and shit.draftsman:name() or "")) + + if shit.draftsman then + --debug("shit.draftsman: "..(shit and shit.draftsman:name() or "")) + + end + + local health = db.actor.health + local is_fatal = shit.power >= health + + hit_queue:Enqueue({ + type = shit.type, + power = damage, + is_fatal = is_fatal, + time = time_global(), + draftsman_id = shit.draftsman and shit.draftsman:id() or nil, + }) + + --debug("is_fatal: "..tostring(is_fatal)) +end + +local function npc_on_net_spawn(npc, se_obj) + if not IsSoulslikeMode() then + return + end + + local state = get_soulslike_state() + if npc and IsStalker(npc) and state.tracked_ambushers and state.tracked_ambushers[npc:id()] then + debug("Setting up ambushers "..tostring(npc:id())) + local ambusher_state = state.tracked_ambushers[npc:id()] + local position = vector():set(ambusher_state.position.x, ambusher_state.position.y, ambusher_state.position.z) + + npc:set_mental_state(ambusher_state.mental_state) + npc:set_body_state(ambusher_state.body_state) + npc:set_movement_type(ambusher_state.movement_type) + npc:set_sight(ambusher_state.sight_type, nil, 0) + npc:set_desired_position(position) + npc:set_desired_direction() + + if soulslike_mcm.debug_squad_spawns() then + level.map_add_object_spot_ser(npc:id(), "secondary_task_location", "DEBUG: Ambush NPC") + end + + state.tracked_ambushers[npc:id()] = nil + end +end + +function on_game_start() + debug('Version: '..version) + + RegisterScriptCallback("actor_on_stash_remove", actor_on_stash_remove) + RegisterScriptCallback("actor_on_item_take_from_box", actor_on_item_take_from_box) + RegisterScriptCallback("actor_on_before_death", actor_on_before_death) + RegisterScriptCallback("on_before_save_input", on_before_save_input) + RegisterScriptCallback("save_state", save_state) + RegisterScriptCallback("load_state", load_state) + RegisterScriptCallback("on_level_changing", on_level_changing) + RegisterScriptCallback("on_game_load", on_game_load) + RegisterScriptCallback("actor_on_sleep", actor_on_sleep) + RegisterScriptCallback("on_console_execute", on_console_execute) + RegisterScriptCallback("actor_on_before_hit", actor_on_before_hit) + RegisterScriptCallback("physic_object_on_use_callback", physic_object_on_use_callback) + --RegisterScriptCallback("npc_on_net_spawn", npc_on_net_spawn) +end \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_classes.script b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_classes.script new file mode 100644 index 00000000..eb0e4f31 --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_classes.script @@ -0,0 +1,74 @@ +class "TimedQueue" + +function TimedQueue:__init(max_count, expiriation_ms) + self.data = {} + self.first = 0 + self.last = -1 + self.max_count = max_count + self.expiriation_ms = expiriation_ms +end + +function TimedQueue:Clear() + self.data = {} + self.first = 0 + self.last = -1 + --soulslike.debug("TimedQueue:Clear") +end + +function TimedQueue:Enqueue(value) + value.__cached_time = time_global() + self.last = self.last + 1 + self.data[self.last] = value + --soulslike.debug("TimedQueue:Enqueue") +end + +function TimedQueue:Dequeue() + local result + if (self.first > self.last) then + result = nil + else + result = self.data[self.first] + self.data[self.first] = nil + self.first = self.first + 1 + end + --soulslike.debug("TimedQueue:Dequeue") + return result +end + +function TimedQueue:Peek() + local result + if (self.first > self.last) then + result = nil + else + result = self.data[self.first] + end + return result +end + + +function TimedQueue:Values() + --soulslike.debug("TimedQueue:Values") + --soulslike.debug(self.data) + local values = {} + for _,v in pairs(self.data) do + if v then + table.insert(values, v) + end + end + return values +end + +function TimedQueue:Invalidate() + while true do + local next = self:Peek() + if next == nil then + break + end + if next.__cached_time + self.expiriation_ms < time_global() then + --soulslike.debug("TimedQueue:Dequeue_time") + self:Dequeue() + else + break; + end + end +end diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_mcm.script b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_mcm.script new file mode 100644 index 00000000..205debd6 --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_mcm.script @@ -0,0 +1,644 @@ +--[[ + Jabbers + 05APR2023 + Jabbers' Soulslike Anomaly Mod +--]] + + +function on_mcm_load() + local op = { + id = "soulslike", + gr = { } + } + + local general = { + id = "general", + text = "ui_mcm_soulslike_general", + sh = true, + gr = { + { + id = "title", + type = "slide", + link = "ui_options_slider_gameplay_diff", + text = "ui_mcm_soulslike_general_title", + size = {512,50}, + spacing = 20 + }, + { + id = "desc_mcm", + type = "desc", + text = "ui_mcm_soulslike_general_description", + clr = {255, 255 ,255 ,255}, + }, + { + id = "desc_mcm", + type = "desc", + text = "ui_mcm_soulslike_general_disclaimer", + clr = {255, 255 ,255 ,0}, + }, + }, + } + + table.insert(op.gr, general) + + local character = { + id = "character", + text = "ui_mcm_soulslike_character", + sh = true, + gr = { + { + id = "title", + type = "slide", + link = "ui_options_slider_gameplay_diff", + text = "ui_mcm_soulslike_character_title", + size = {512,50}, + spacing = 20 + }, + { + id = "health_loss_on_respawn", + type = "track", + val = 2, + min = 0.0, + max = 0.75, + step = 0.01, + def = 0.75 + }, + { + id = "rank_loss_percent", + type = "track", + val = 2, + min = 0, + max = 0.75, + step = 0.01, + def = 0.02 + }, + { + id = "rep_loss_percent", + type = "track", + val = 2, + min = 0, + max = 0.75, + step = 0.01, + def = 0.05 + } + }, + } + + table.insert(op.gr, character) + + local items = { + id = "items", + text = "ui_mcm_soulslike_items", + sh = true, + gr = { + { + id = "title", + type = "slide", + link = "ui_options_slider_gameplay_diff", + text = "ui_mcm_soulslike_items_title", + size = {512,50}, + spacing = 20 + }, + { + id = "keep_equipped_items_on_death", + type = "check", + val = 1, + def = false + }, + { + id = "desc_mcm", + type = "desc", + text = "ui_mcm_soulslike_items_scalar_description", + clr = {255, 255 ,255 ,255}, + }, + { + id = "item_loss_scalar", + type = "track", + val = 2, + min = 0, + max = 0.75, + step = 0.01, + def = 0.20 + }, + { + id = "item_condition_loss_scalar", + type = "track", + val = 2, + min = 0, + max = 0.25, + step = 0.01, + def = 0.05 + }, + { + id = "desc_mcm", + type = "desc", + text = "ui_mcm_soulslike_items_allow_desc", + clr = {255, 255 ,255 ,255}, + }, + { + id = "allow_weapon_loss", + type = "check", + val = 1, + def = true + }, + { + id = "allow_outfit_loss", + type = "check", + val = 1, + def = true + }, + { + id = "allow_headgear_loss", + type = "check", + val = 1, + def = true + }, + { + id = "allow_artifact_loss", + type = "check", + val = 1, + def = true + }, + { + id = "allow_tool_loss", + type = "check", + val = 1, + def = true + }, + }, + } + + table.insert(op.gr, items) + + local scenarios = { + id = "scenarios", + text = "ui_mcm_soulslike_scenarios", + sh = true, + gr = { + { + id = "title", + type = "slide", + link = "ui_options_slider_gameplay_diff", + text = "ui_mcm_soulslike_scenarios_title", + size = {512,50}, + spacing = 20 + }, + { + id = "desc_mcm", + type = "desc", + text = "ui_mcm_soulslike_scenarios_description", + clr = {255, 255 ,255 ,255}, + }, + { + id = "rf_detector_scenario_weight", + type = "track", + val = 2, + min = 0.0, + max = 1.0, + step = 0.01, + def = 0.10 + }, + { + id = "hidden_stash_scenario_weight", + type = "track", + val = 2, + min = 0.0, + max = 1.0, + step = 0.01, + def = 0.10 + }, + { + id = "looter_npcs_marked", + type = "check", + val = 1, + def = false + } + }, + } + + table.insert(op.gr, scenarios) + + local ambush = { + id = "ambush", + text = "ui_mcm_soulslike_ambush", + sh = true, + gr = { + { + id = "title", + type = "slide", + link = "ui_options_slider_gameplay_diff", + text = "ui_mcm_soulslike_ambush_title", + size = {512,50}, + spacing = 20 + }, + { + id = "desc_mcm", + type = "desc", + text = "ui_mcm_soulslike_ambush_description", + clr = {255, 255 ,255 ,255}, + }, + { + id = "mutant_ambush_chance", + type = "track", + val = 2, + min = 0.0, + max = 1.0, + step = 0.01, + def = 0.25 + }, + { + id = "allow_boar_ambush", + type = "check", + val = 1, + def = true + }, + { + id = "allow_flesh_ambush", + type = "check", + val = 1, + def = true + }, + { + id = "allow_dogs_ambush", + type = "check", + val = 1, + def = true + }, + { + id = "allow_cats_ambush", + type = "check", + val = 1, + def = true + }, + { + id = "allow_snorks_ambush", + type = "check", + val = 1, + def = true + }, + { + id = "allow_bloodsucker_ambush", + type = "check", + val = 1, + def = true + }, + { + id = "allow_burer_ambush", + type = "check", + val = 1, + def = true + }, + { + id = "allow_chimera_ambush", + type = "check", + val = 1, + def = true + }, + { + id = "allow_controller_ambush", + type = "check", + val = 1, + def = true + }, + { + id = "stalker_ambush_chance", + type = "track", + val = 2, + min = 0.0, + max = 1.0, + step = 0.01, + def = 0.25 + }, + { + id = "allow_stalker_novice_ambush", + type = "check", + val = 1, + def = true + }, + { + id = "allow_stalker_advanced_ambush", + type = "check", + val = 1, + def = true + }, + { + id = "allow_stalker_veteran_ambush", + type = "check", + val = 1, + def = true + }, + { + id = "allow_stalker_sniper_ambush", + type = "check", + val = 1, + def = true + } + }, + } + + table.insert(op.gr, ambush) + + local hardcore = { + id = "hardcore", + text = "ui_mcm_soulslike_hardcore", + sh = true, + gr = { + { + id = "title", + type = "slide", + link = "ui_options_slider_gameplay_diff", + text = "ui_mcm_soulslike_hardcore_title", + size = {512,50}, + spacing = 20 + }, + { + id = "desc_mcm", + type = "desc", + text = "ui_mcm_soulslike_hardcore_save_description", + clr = {255, 255 ,255 ,0}, + }, + { + id = "is_enabled", + type = "check", + val = 1, + def = false + }, + { + id = "override_campfire_hardcore_saves", + type = "check", + val = 1, + def = false + } + }, + } + + table.insert(op.gr, hardcore) + + local debug = { + id = "debug", + text = "ui_mcm_soulslike_debug", + sh = true, + gr = { + { + id = "title", + type = "slide", + link = "ui_options_slider_gameplay_diff", + text = "ui_mcm_soulslike_debug_title", + size = {512,50}, + spacing = 20 + }, + { + id = "is_enabled", + type = "check", + val = 1, + def = false + }, + { + id = "enable_tips", + type = "check", + val = 1, + def = false + }, + { + id = "debug_hidden_stashes", + type = "check", + val = 1, + def = false + }, + { + id = "debug_squad_spawns", + type = "check", + val = 1, + def = false + }, + { + id = "debug_item_loss", + type = "check", + val = 1, + def = false + }, + { + id = "debug_the_tarkov_looter", + type = "check", + val = 1, + def = false + }, + { + id = "debug_the_noloss_scenario", + type = "check", + val = 1, + def = false + }, + { + id = "debug_the_default_scenario", + type = "check", + val = 1, + def = false + }, + { + id = "debug_the_rf_scenario", + type = "check", + val = 1, + def = false + }, + { + id = "debug_the_hidden_stash_scenario", + type = "check", + val = 1, + def = false + }, + { + id = "debug_always_spawn_ambush", + type = "check", + val = 1, + def = false + } + }, + } + + table.insert(op.gr, debug) + + return op +end + +local function get_config(key, default_when_nil) + local opt = ui_mcm and ui_mcm.get("soulslike/"..key) + if opt == nil then + opt = default_when_nil + end + return opt +end + +-- Hardcore +function is_hardcore_save_enabled() + return get_config("hardcore/is_enabled", false) +end + +function override_campfire_hardcore_saves() + return get_config("hardcore/override_campfire_hardcore_saves", false) +end + +-- Scenarios +function are_looter_npcs_marked() + return get_config("scenarios/looter_npcs_marked", false) +end + +function rf_detector_scenario_weight() + return get_config("scenarios/rf_detector_scenario_weight", 0.10) +end + +function hidden_stash_scenario_weight() + return get_config("scenarios/hidden_stash_scenario_weight", 0.10) +end + +function scattered_stash_scenario_weight() + return get_config("scenarios/scattered_stash_scenario_weight", 0.02) +end + +function nearby_dead_stalker_scenario_weight() + return get_config("scenarios/nearby_dead_stalker_scenario_weight", 0.10) +end + +-- Items +function get_item_loss_scalar() + return get_config("items/item_loss_scalar", 0.2) +end + +function get_item_condition_loss_percent() + return get_config("items/item_condition_loss_scalar", 0.05) +end + +function allow_toolkit_loss() + return get_config("items/allow_tool_loss", true) +end + +function allow_artifact_loss() + return get_config("items/allow_artifact_loss", true) +end + +function allow_headgear_loss() + return get_config("items/allow_headgear_loss", true) +end + +function allow_outfit_loss() + return get_config("items/allow_outfit_loss", true) +end + +function allow_weapon_loss() + return get_config("items/allow_weapon_loss", true) +end + +function get_keep_equipped_items_on_death() + return get_config("items/keep_equipped_items_on_death", false) +end + +-- Ambush +function mutant_ambush_chance() + return get_config("ambush/mutant_ambush_chance", 0.5) +end + +function stalker_ambush_chance() + return get_config("ambush/stalker_ambush_chance", 0.5) +end + +function allow_boar_ambush() + return get_config("ambush/allow_boar_ambush", true) +end +function allow_flesh_ambush() + return get_config("ambush/allow_flesh_ambush", true) +end +function allow_dogs_ambush() + return get_config("ambush/allow_dogs_ambush", true) +end +function allow_cats_ambush() + return get_config("ambush/allow_cats_ambush", true) +end +function allow_snorks_ambush() + return get_config("ambush/allow_snorks_ambush", true) +end +function allow_bloodsucker_ambush() + return get_config("ambush/allow_bloodsucker_ambush", true) +end +function allow_burer_ambush() + return get_config("ambush/allow_burer_ambush", true) +end +function allow_chimera_ambush() + return get_config("ambush/allow_chimera_ambush", true) +end +function allow_controller_ambush() + return get_config("ambush/allow_controller_ambush", true) +end +function allow_stalker_novice_ambush() + return get_config("ambush/allow_stalker_novice_ambush", true) +end +function allow_stalker_advanced_ambush() + return get_config("ambush/allow_stalker_advanced_ambush", true) +end +function allow_stalker_veteran_ambush() + return get_config("ambush/allow_stalker_veteran_ambush", true) +end +function allow_stalker_sniper_ambush() + return get_config("ambush/allow_stalker_sniper_ambush", true) +end + +-- Character +function get_health_loss_percent() + return get_config("character/health_loss_on_respawn", 0.75) +end + +function rank_loss_percent() + return get_config("character/rank_loss_percent", 0.05) +end + +function rep_loss_percent() + return get_config("character/rep_loss_percent", 0.02) +end + +-- Debug +function is_debug_enabled() + return get_config("debug/is_enabled", false) +end + +function show_debug_tips() + return get_config("debug/enable_tips", false) +end + +function debug_hidden_stashes() + return is_debug_enabled() and get_config("debug/debug_hidden_stashes", false) +end + +function debug_squad_spawns() + return is_debug_enabled() and get_config("debug/debug_squad_spawns", false) +end + +function debug_item_loss() + return is_debug_enabled() and get_config("debug/debug_item_loss", false) +end + +function debug_remove_default_scenario() + return is_debug_enabled() and get_config("debug/debug_remove_default_scenario", false) +end + +function debug_the_tarkov_looter() + return is_debug_enabled() and get_config("debug/debug_the_tarkov_looter", false) +end + +function debug_the_noloss_scenario() + return is_debug_enabled() and get_config("debug/debug_the_noloss_scenario", false) +end + +function debug_the_default_scenario() + return is_debug_enabled() and get_config("debug/debug_the_default_scenario", false) +end + +function debug_the_rf_scenario() + return is_debug_enabled() and get_config("debug/debug_the_rf_scenario", false) +end + +function debug_the_hidden_stash_scenario() + return is_debug_enabled() and get_config("debug/debug_the_hidden_stash_scenario", false) +end + +function debug_always_spawn_ambush() + return is_debug_enabled() and get_config("debug/debug_always_spawn_ambush", false) +end diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_message_factory.script b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_message_factory.script new file mode 100644 index 00000000..cbbf46ad --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_message_factory.script @@ -0,0 +1,183 @@ +local function rescuer_initial_msg_factory() + local messages = { + "st_soulslike_rescuer_initial_1", + "st_soulslike_rescuer_initial_2", + "st_soulslike_rescuer_initial_3", + "st_soulslike_rescuer_initial_4", + "st_soulslike_rescuer_initial_5", + } + + return game.translate_string(messages[math.random(#messages)]) +end + +local function rescuer_eat_drink_msg_factory() + local messages = { + "st_soulslike_rescuer_food_1", + "st_soulslike_rescuer_food_2", + "st_soulslike_rescuer_food_3", + "st_soulslike_rescuer_food_4", + "st_soulslike_rescuer_food_5", + } + + return game.translate_string(messages[math.random(#messages)]) +end + +local function rescuer_pda_marker_msg_factory() + local messages = { + "st_soulslike_rescuer_pda_1", + "st_soulslike_rescuer_pda_2", + "st_soulslike_rescuer_pda_3", + "st_soulslike_rescuer_pda_4", + "st_soulslike_rescuer_pda_5", + } + + return game.translate_string(messages[math.random(#messages)]) +end + +local function rescuer_used_items_msg_factory() + local messages = { + "st_soulslike_rescuer_used_items_1", + "st_soulslike_rescuer_used_items_2", + "st_soulslike_rescuer_used_items_3", + "st_soulslike_rescuer_used_items_4", + "st_soulslike_rescuer_used_items_5", + } + + return game.translate_string(messages[math.random(#messages)]) +end + +local function rescuer_stay_safe_msg_factory() + local messages = { + "st_soulslike_rescuer_stay_safe_1", + "st_soulslike_rescuer_stay_safe_2", + "st_soulslike_rescuer_stay_safe_3", + "st_soulslike_rescuer_stay_safe_4", + "st_soulslike_rescuer_stay_safe_5", + } + + return game.translate_string(messages[math.random(#messages)]) +end + +local function rescuer_moster_looter_msg_factory(enemy_name, enemy_comm) + local messages = { + "st_soulslike_rescuer_monster_looter_1", + "st_soulslike_rescuer_monster_looter_2", + "st_soulslike_rescuer_monster_looter_3", + "st_soulslike_rescuer_monster_looter_4", + "st_soulslike_rescuer_monster_looter_5", + } + + return game.translate_string(messages[math.random(#messages)]) +end + +local function rescuer_enemy_looter_msg_factory(enemy_name, enemy_comm) + local messages = { + "st_soulslike_rescuer_enemy_looter_1", + "st_soulslike_rescuer_enemy_looter_2", + "st_soulslike_rescuer_enemy_looter_3", + "st_soulslike_rescuer_enemy_looter_4", + "st_soulslike_rescuer_enemy_looter_5", + } + + return strformat(game.translate_string(messages[math.random(#messages)]), enemy_comm, enemy_name) +end + +local function rescuer_enemy_looter_tarkov_looter_msg_factory(enemy_name, enemy_comm) + local messages = { + "st_soulslike_rescuer_enemy_tarkov_looter_1", + "st_soulslike_rescuer_enemy_tarkov_looter_2", + "st_soulslike_rescuer_enemy_tarkov_looter_3", + "st_soulslike_rescuer_enemy_tarkov_looter_4", + "st_soulslike_rescuer_enemy_tarkov_looter_5", + } + + return strformat(game.translate_string(messages[math.random(#messages)]), enemy_comm, enemy_name) +end + +local function rescuer_enemy_radio_freq_msg_factory(freq) + local messages = { + "st_soulslike_rescuer_radio_freq_1", + "st_soulslike_rescuer_radio_freq_2", + "st_soulslike_rescuer_radio_freq_3", + "st_soulslike_rescuer_radio_freq_4", + "st_soulslike_rescuer_radio_freq_5", + } + + return strformat(game.translate_string(messages[math.random(#messages)]), freq) +end + +local function rescuer_hidden_stash_msg_factory(freq) + local messages = { + "st_soulslike_hidden_stash_1", + "st_soulslike_hidden_stash_2", + "st_soulslike_hidden_stash_3", + "st_soulslike_hidden_stash_4", + "st_soulslike_hidden_stash_5", + } + + return strformat(game.translate_string(messages[math.random(#messages)]), freq) +end + +local function recuer_indoor_msg_factory(level_name) + local messages = { + "st_soulslike_rescuer_indoor_1", + "st_soulslike_rescuer_indoor_2", + "st_soulslike_rescuer_indoor_3", + "st_soulslike_rescuer_indoor_4", + "st_soulslike_rescuer_indoor_5", + } + + return strformat(game.translate_string(messages[math.random(#messages)]), level_name) +end + +function create(rescuer, params) + if rescuer then + local msg = params.player_died_indoor + and recuer_indoor_msg_factory(params.level_name) + or rescuer_initial_msg_factory() + + local looter = params.enemy + + if params.gave_food_or_water then + msg = msg.." "..rescuer_eat_drink_msg_factory() + end + if looter then + if looter.tarkov_experience then + --TODO: Make message factory for this + msg = msg.." "..rescuer_enemy_looter_tarkov_looter_msg_factory(looter.name, looter.community) + else + msg = msg.." "..rescuer_enemy_looter_msg_factory(looter.name, looter.community) + end + end + if params.has_pda_marker then + msg = msg.." "..rescuer_pda_marker_msg_factory() + end + if params.has_stash_pda_marker then + msg = msg.." "..rescuer_hidden_stash_msg_factory() + end + if params.radio_freq then + msg = msg.." "..rescuer_enemy_radio_freq_msg_factory(params.radio_freq) + end + if params.items_were_lost then + if params.looter_type == soulslike.entity_type.Monster then + msg = msg.." "..rescuer_moster_looter_msg_factory() + else + msg = msg.." "..rescuer_used_items_msg_factory() + end + end + msg = msg.." "..rescuer_stay_safe_msg_factory() + return msg + else + local msg = game.translate_string("st_soulslike_rescuer_initial_generic") + if params.gave_food_or_water then + msg = msg.." "..game.translate_string("st_soulslike_rescuer_food_generic") + end + if params.has_pda_marker or params.has_stash_pda_marker or params.has_multi_stash_pda_marker then + msg = msg.." " ..game.translate_string("st_soulslike_rescuer_pda_generic") + end + if params.radio_freq then + msg = msg.." "..game.translate_string(strformat("st_soulslike_rescuer_radio_generic", params.radio_freq)) + end + return msg + end +end \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_note.script b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_note.script new file mode 100644 index 00000000..d8dd907d --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_note.script @@ -0,0 +1,28 @@ +function menu_read(obj) -- return "read" name + local p = obj:parent() + if not (p and p:id() == AC_ID) then return end + + return game.translate_string("st_item_read") +end + +function func_radio_freq(obj) + local sec = obj:section() + + if (not IsItem("letter",sec)) then + return + end + + local id = obj:id() + local data = soulslike.get_soulslike_state() + + if data.note_message_data and data.note_message_data[id] then + local note_data = data.note_message_data[id] + local freq = note_data.freq; + local level_name = utils_xml.get_special_txt(note_data.level_name) + local msg = strformat(game.translate_string("st_soulslike_rescuers_radio_frequency_note_message"), freq, level_name) + + actor_menu.set_msg(2, msg, 10) + + hide_hud_inventory() + end +end \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_scenario_logic_factory.script b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_scenario_logic_factory.script new file mode 100644 index 00000000..4c9ad821 --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_scenario_logic_factory.script @@ -0,0 +1,369 @@ + + +local function compute_fatal_hit_info(hits) + local fatal_hit = nil + local agg_hit = {} + local max_time = -1 + + soulslike.debug("Calculating fatal hit:") + soulslike.debug(hits) + + -- Find the final blow + for _, value in ipairs(hits) do + if value.is_fatal then + fatal_hit = value + break + end + end + + for _, value in ipairs(hits) do + max_time = math.max(max_time, value.time) + end + + local min_time = soulslike.MAX_HIT_TIME + + -- Convert to an aggregation of damage if there is a well defined draftsman_type + for _, hit_data in ipairs(hits) do + hit_data.draftsman = hit_data.draftsman_id and level.object_by_id(hit_data.draftsman_id) or nil + local power_weight = (hit_data.time - min_time) / soulslike.MAX_HIT_TIME + local draftsman_type = soulslike.entity_type.Other + if hit_data.draftsman then + if hit_data.draftsman:id() == AC_ID then + draftsman_type = soulslike.entity_type.Self + elseif IsStalker(hit_data.draftsman) then + draftsman_type = soulslike.entity_type.Stalker + elseif IsMonster(hit_data.draftsman) then + draftsman_type = soulslike.entity_type.Monster + elseif IsAnomaly(hit_data.draftsman) then + draftsman_type = soulslike.entity_type.Anomaly + end + end + if not agg_hit[draftsman_type] then + agg_hit[draftsman_type] = { + draftsman_type = draftsman_type + } + end + local data = agg_hit[draftsman_type] + data.power = (data.power or 0) + hit_data.power * (power_weight * (hit_data.is_fatal and 2 or 1)) + end + + soulslike.debug("Agg Hit Info:") + soulslike.debug(agg_hit) + + local result = nil + + for _, value in pairs(agg_hit) do + if not result then + result = value + elseif result.power < value.power then + result = value + end + end + + if result then + result.fatal_hit = fatal_hit + end + + return result +end + +local function find_backpack() + soulslike.debug("Looking for player backpack") + local has_backpack = false + local function find_backpack(_, item) + local sec = item:section() + has_backpack = SYS_GetParam(0, sec, "kind") == "i_backpack" + if has_backpack then return true end + return false + end + + db.actor:iterate_inventory(find_backpack) + + if has_backpack then + soulslike.debug("Player has a backpack") + else + soulslike.debug("Player does not have a backpack") + end + return has_backpack +end + +--------------------------------------------------------- +-- Factory +--------------------------------------------------------- + +function create_by_id(scenario_id, state) + local scenario = nil + + soulslike.debug_tip("Creating scenario "..tostring(scenario_id)) + + if scenario_id == soulslike.SCENARIOS.Default then + scenario = soulslike_scenarios.DefaultSoulslikeScenarioLogic(state) + end + + if scenario_id == soulslike.SCENARIOS.RFDetectorStash then + scenario = soulslike_scenarios.RFDetectorSoulslikeScenarioLogic(state) + end + + if scenario_id == soulslike.SCENARIOS.HiddenStash then + scenario = soulslike_scenarios.HiddenStashSoulslikeScenarioLogic(state) + end + + if scenario_id == soulslike.SCENARIOS.NoLoss then + scenario = soulslike_scenarios.NoLossSoulslikeScenarioLogic(state) + end + + if scenario == nil then + soulslike.debug("Unrecognized Scenario Id: "..tostring(scenario_id)) + scenario = soulslike_scenarios.DefaultSoulslikeScenarioLogic(state) + end + + return scenario +end + +function create_new(hits) + local hit = compute_fatal_hit_info(hits) + + if hit then + soulslike.debug("Fatal Hit Type: "..tostring(hit.draftsman_type)) + end + -- We want to be able to debug each scenario using the + -- scenario weight to max, and in this case we want to + -- be able to remove the default scenario so its always + -- chosen. + + local has_backpack = find_backpack() + local player_is_indoor = not level_weathers.valid_levels[level.name()] + local rescuer = nil + local looter = nil + local looter_type = nil + local scenario_loot_scalar = 1.0 + local available_scenarios = {} + local game_state = soulslike.get_soulslike_state() + local spawn_position = vector():set(game_state.spawn_location.position.x, game_state.spawn_location.position.y, game_state.spawn_location.position.z) + local distance_from_spawn = spawn_position:distance_to_sqr(db.actor:position()) + + if soulslike_mcm.debug_the_noloss_scenario() then + soulslike.debug("Debugging noloss scenario.") + rescuer = soulslike.find_closest_friendly_stalker() + scenario_loot_scalar = 0 + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.NoLoss, min = 0, max = 0, weight = 1.0}) + elseif soulslike_mcm.debug_the_default_scenario() then + soulslike.debug("Debugging default scenario.") + rescuer = soulslike.find_closest_friendly_stalker() + looter = soulslike.find_closest_enemy() + scenario_loot_scalar = 1 + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.Default, min = 0, max = 0, weight = 1.0}) + elseif soulslike_mcm.debug_the_rf_scenario() then + soulslike.debug("Debugging rf detector scenario.") + + rescuer = soulslike.find_closest_friendly_stalker() + looter = soulslike.find_closest_enemy() + scenario_loot_scalar = 1 + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.RFDetectorStash, min = 0, max = 0, weight = 1.0}) + elseif soulslike_mcm.debug_the_rf_scenario() then + soulslike.debug("Debugging hidden stash scenario.") + + rescuer = soulslike.find_closest_friendly_stalker() + looter = soulslike.find_closest_enemy() + scenario_loot_scalar = 1 + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.HiddenStash, min = 0, max = 0, weight = 1.0}) + elseif distance_from_spawn <= 50 then + soulslike.debug("Player was killed "..tostring(distance_from_spawn).." meters their spawn point.") + + rescuer = soulslike.find_closest_friendly_stalker() + scenario_loot_scalar = 0 + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.NoLoss, min = 0, max = 0, weight = 1.0}) + elseif distance_from_spawn <= 200 then + soulslike.debug("Player was killed "..tostring(distance_from_spawn).." meters their spawn point.") + + rescuer = soulslike.find_closest_friendly_stalker() + looter = soulslike.find_closest_enemy() + scenario_loot_scalar = (distance_from_spawn - 50) / 150 + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.NoLoss, min = 0, max = 0, weight = 1.0}) + table.insert(available_scenarios, {id = soulslike.SCENARIOS.Default, min = 0, max = 0, weight = scenario_loot_scalar}) + elseif player_is_indoor then + soulslike.debug("Player died indoor, oof.") + -- TODO: Need to figure out this scenario later, not sure what to do.... + -- It will be very difficult to get your gear back, prob annoyingly frustrating... + -- For now, no loss scenario + table.insert(available_scenarios, {id = soulslike.SCENARIOS.NoLoss, min = 0, max = 0, weight = 1.0}) + elseif hit and hit.draftsman_type == soulslike.entity_type.Self then + soulslike.debug("Player killed themself. haha idiot.") + + rescuer = soulslike.find_closest_friendly_stalker() + looter = soulslike.find_closest_enemy() + scenario_loot_scalar = 0.75 + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.NoLoss, min = 0, max = 0, weight = 0.05}) + + if has_backpack then + table.insert(available_scenarios, {id = soulslike.SCENARIOS.Default, min = 0, max = 0, weight = 1.0}) + end + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.RFDetectorStash, min = 0, max = 0, weight = soulslike_mcm.rf_detector_scenario_weight()}) + table.insert(available_scenarios, {id = soulslike.SCENARIOS.HiddenStash, min = 0, max = 0, weight = soulslike_mcm.hidden_stash_scenario_weight()}) + elseif hit and + hit.draftsman_type == soulslike.entity_type.Stalker and + hit.fatal_hit and + hit.fatal_hit.draftsman:general_goodwill(db.actor) >= soulslike.RELATIONS.NEUTRALS then + soulslike.debug("Friendly/Neutral Stalker killed the player.") + + rescuer = hit.draftsman + looter = nil + scenario_loot_scalar = 0.0 + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.NoLoss, min = 0, max = 0, weight = 1.0}) + elseif hit and + hit.draftsman_type == soulslike.entity_type.Stalker then + soulslike.debug("Enemy Stalker killed the player.") + + rescuer = soulslike.find_closest_friendly_stalker() + looter = soulslike.find_closest_enemy_stalker() + scenario_loot_scalar = 1.0 + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.NoLoss, min = 0, max = 0, weight = 0.05}) + + if has_backpack then + table.insert(available_scenarios, {id = soulslike.SCENARIOS.Default, min = 0, max = 0, weight = 1.0}) + end + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.RFDetectorStash, min = 0, max = 0, weight = soulslike_mcm.rf_detector_scenario_weight()}) + table.insert(available_scenarios, {id = soulslike.SCENARIOS.HiddenStash, min = 0, max = 0, weight = soulslike_mcm.hidden_stash_scenario_weight()}) + elseif hit and + hit.draftsman_type == soulslike.entity_type.Monster then + soulslike.debug("Mutant killed the player.") + + rescuer = soulslike.find_closest_friendly_stalker() + looter = soulslike.find_closest_enemy_mutant() + scenario_loot_scalar = 1.0 + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.NoLoss, min = 0, max = 0, weight = 0.05}) + + if has_backpack then + table.insert(available_scenarios, {id = soulslike.SCENARIOS.Default, min = 0, max = 0, weight = 1.0}) + end + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.RFDetectorStash, min = 0, max = 0, weight = soulslike_mcm.rf_detector_scenario_weight()}) + table.insert(available_scenarios, {id = soulslike.SCENARIOS.HiddenStash, min = 0, max = 0, weight = soulslike_mcm.hidden_stash_scenario_weight()}) + elseif hit and + hit.draftsman_type == soulslike.entity_type.Anomaly then + soulslike.debug("Player died to an anomaly.") + + rescuer = soulslike.find_closest_friendly_stalker() + looter = soulslike.find_closest_enemy() + scenario_loot_scalar = 0.25 + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.NoLoss, min = 0, max = 0, weight = 0.05}) + + if has_backpack then + table.insert(available_scenarios, {id = soulslike.SCENARIOS.Default, min = 0, max = 0, weight = 1.0}) + else + table.insert(available_scenarios, {id = soulslike.SCENARIOS.RFDetectorStash, min = 0, max = 0, weight = soulslike_mcm.rf_detector_scenario_weight()}) + table.insert(available_scenarios, {id = soulslike.SCENARIOS.HiddenStash, min = 0, max = 0, weight = soulslike_mcm.hidden_stash_scenario_weight()}) + end + elseif hit and + hit.draftsman_type == soulslike.entity_type.Other then + soulslike.debug("Player died to damage over time of some sort.") + + rescuer = soulslike.find_closest_friendly_stalker() + looter = soulslike.find_closest_enemy() + scenario_loot_scalar = 0.25 + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.NoLoss, min = 0, max = 0, weight = 0.05}) + + if has_backpack then + table.insert(available_scenarios, {id = soulslike.SCENARIOS.Default, min = 0, max = 0, weight = 1.0}) + else + table.insert(available_scenarios, {id = soulslike.SCENARIOS.RFDetectorStash, min = 0, max = 0, weight = soulslike_mcm.rf_detector_scenario_weight()}) + table.insert(available_scenarios, {id = soulslike.SCENARIOS.HiddenStash, min = 0, max = 0, weight = soulslike_mcm.hidden_stash_scenario_weight()}) + end + else + soulslike.warn("I have no idea how the player died.") + + rescuer = soulslike.find_closest_friendly_stalker() + looter = soulslike.find_closest_enemy() + scenario_loot_scalar = 0.25 + + table.insert(available_scenarios, {id = soulslike.SCENARIOS.NoLoss, min = 0, max = 0, weight = 0.05}) + + if has_backpack then + table.insert(available_scenarios, {id = soulslike.SCENARIOS.Default, min = 0, max = 0, weight = 1.0}) + else + table.insert(available_scenarios, {id = soulslike.SCENARIOS.RFDetectorStash, min = 0, max = 0, weight = soulslike_mcm.rf_detector_scenario_weight()}) + table.insert(available_scenarios, {id = soulslike.SCENARIOS.HiddenStash, min = 0, max = 0, weight = soulslike_mcm.hidden_stash_scenario_weight()}) + end + end + + if looter and IsStalker(looter) then + looter_type = soulslike.entity_type.Stalker + elseif looter and IsMonster(looter) then + looter_type = soulslike.entity_type.Monster + end + + local is_in_water = load_var(db.actor,"grw_in_water") == true + + if is_in_water then + soulslike.debug("Actor died in the water, reducing loot scalar.") + scenario_loot_scalar = scenario_loot_scalar * 0.5 + end + + if #available_scenarios == 0 then + soulslike.error("No scenario chosen because all scenario weights are at 0 and remove default was enabled.") + return nil + end + + local weight_sum = 0 + for _, value in pairs(available_scenarios) do + weight_sum = weight_sum + value.weight + end + + local min = 0 + for _, value in pairs(available_scenarios) do + value.min = min + 1 + value.max = math.floor(min + (100 * (value.weight / weight_sum))) + min = value.max + end + + local roll = math.random(1, 100) + local scenario_id = nil + for id, value in pairs(available_scenarios) do + if(roll >= value.min and roll <= value.max) then + scenario_id = value.id + break + end + end + + if scenario_id == nil then + soulslike.debug("ERROR: Unable to determine scenario from roll: "..tostring(roll)) + soulslike.debug(available_scenarios) + scenario_id = soulslike.SCENARIOS.NoLoss + end + + local scenario_logic = create_by_id(scenario_id) + local level_name = level.name() + + scenario_logic:SetLevelName(game.translate_string(level_name)) + scenario_logic:SetLootScalar(scenario_loot_scalar) + scenario_logic:SetIsInDoor(player_is_indoor) + scenario_logic:SetIsInWater(is_in_water) + scenario_logic:SetRescuer(rescuer) + + if looter then + scenario_logic:SetLooter(looter) + scenario_logic:SetLooterType(looter_type) + end + + if hit and hit.fatal_hit then + scenario_logic:SetKillerType(hit.draftsman_type) + scenario_logic:SetKiller(hit.fatal_hit.draftsman) + scenario_logic:SetFatalHitType(hit.fatal_hit.type) + end + + return scenario_logic +end diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_scenarios.script b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_scenarios.script new file mode 100644 index 00000000..09f31786 --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_scenarios.script @@ -0,0 +1,1245 @@ +local ignore_list = { + ["bolt"] = true, + ["itm_actor_backpack"] = true, -- Quick Release + ["device_pda"] = true, + ["device_pda_1"] = true, + ["device_pda_2"] = true, + ["device_pda_3"] = true, + ["detector_radio"] = true, + ["wpn_knife"] = true, + ["wpn_knife2"] = true, + ["wpn_knife3"] = true, + ["wpn_knife4"] = true, + ["wpn_knife5"] = true, + ["wpn_knife6"] = true, + ["wpn_knife7"] = true, + ["wpn_knife8"] = true, + ["wpn_knife9"] = true, + ["wpn_axe"] = true, + ["wpn_axe2"] = true, + ["wpn_axe3"] = true, + ["bandage"] = true, + ["medkit"] = true, +} + +local obj_to_spawn_classes = { + -- kind + ["AI_STL_S"] = "NPC (Stalker)", + ["AI_TRD_S"] = "NPC (Stalker)", + + ["SM_KAR"] = "NPC (Mutant)", + ["SM_BLOOD"] = "NPC (Mutant)", + ["SM_BOARW"] = "NPC (Mutant)", + ["SM_BURER"] = "NPC (Mutant)", + ["SM_CAT_S"] = "NPC (Mutant)", + ["SM_CHIMS"] = "NPC (Mutant)", + ["SM_CONTR"] = "NPC (Mutant)", + ["SM_DOG_S"] = "NPC (Mutant)", + ["SM_FLESH"] = "NPC (Mutant)", + ["SM_IZLOM"] = "NPC (Mutant)", + ["SM_GIANT"] = "NPC (Mutant)", + ["SM_POLTR"] = "NPC (Mutant)", + ["SM_P_DOG"] = "NPC (Mutant)", + ["SM_DOG_P"] = "NPC (Mutant)", + ["SM_DOG_F"] = "NPC (Mutant)", + ["SM_SNORK"] = "NPC (Mutant)", + ["SM_TUSHK"] = "NPC (Mutant)", + ["SM_ZOMBI"] = "NPC (Mutant)", + ["SM_RAT"] = "NPC (Mutant)", + ["SM_KARLIK"] = "NPC (Mutant)", + ["SM_LURKER"] = "NPC (Mutant)", + ["SM_PSYSUCKER"] = "NPC (Mutant)", + + ["C_HLCP_S"] = "Vehicles", + ["C_NIVA"] = "Vehicles", + ["SCRPTCAR"] = "Vehicles", + + ["ON_OFF_S"] = "Squads", + + ["O_PHYSIC"] = "Physic (Misc.)", + ["O_DSTRBL"] = "Physic (Misc.)", + ["P_DSTRBL"] = "Physic (Misc.)", + ["O_PHYS_S"] = "Physic (Misc.)", + ["O_DSTR_S"] = "Physic (Misc.)", + ["S_INVBOX"] = "Physic (Misc.)", + ["O_INVBOX"] = "Physic (Misc.)", + ["S_EXPLO"] = "Physic (Misc.)", + ["II_EXPLO"] = "Physic (Misc.)", + + ["ZS_MBALD"] = "Anomaly", + ["ZS_GALAN"] = "Anomaly", + ["ZS_MINCE"] = "Anomaly", + ["ZS_RADIO"] = "Anomaly", + ["ZS_TORRD"] = "Anomaly", + ["ZS_NGRAV"] = "Anomaly", + ["Z_MBALD"] = "Anomaly", + ["Z_RADIO"] = "Anomaly", + ["Z_CFIRE"] = "Anomaly", + ["Z_NOGRAV"] = "Anomaly", + ["Z_TORRID"] = "Anomaly", + ["Z_RUSTYH"] = "Anomaly", + ["ZS_BFUZZ"] = "Anomaly", + ["ZS_AMEBA"] = "Anomaly", + + ["AI_PHANT"] = "Phantom", +} + +local mutant_spawn_type = { + Boar = 1, + Flesh = 2, + Dog = 3, + Cat = 4, + Snork =5, + BloodSucker = 6, + Burer = 7, + Chimera = 8, + Controller = 9 +} + +local stalker_spawn_type = { + Novice = 1, + Advanced = 2, + Veteran = 2, + Sniper = 2, +} + +local mutant_spawns = { + --Common Mutants + { section = "simulation_boar", weight = 1.00, type = mutant_spawn_type.Boar }, + { section = "simulation_flesh", weight = 0.90, type = mutant_spawn_type.Flesh }, + { section = "simulation_dog", weight = 0.80, type = mutant_spawn_type.Dog }, + { section = "simulation_cat", weight = 0.60, type = mutant_spawn_type.Cat }, + { section = "simulation_boar_3_5", weight = 0.50, type = mutant_spawn_type.Boar }, + { section = "simulation_mix_boar_flesh", weight = 0.40, type = mutant_spawn_type.Flesh }, + { section = "simulation_mix_dogs", weight = 0.20, type = mutant_spawn_type.Dog }, + { section = "simulation_dog_5_7", weight = 0.15, type = mutant_spawn_type.Dog }, + { section = "simulation_pseudodog", weight = 0.12, type = mutant_spawn_type.Dog }, + { section = "simulation_cat_3_5", weight = 0.10, type = mutant_spawn_type.Cat }, + { section = "simulation_snork", weight = 0.08, type = mutant_spawn_type.Snork }, + --Rare Mutants + { section = "simulation_bloodsucker", weight = 0.04, type = mutant_spawn_type.BloodSucker }, + { section = "simulation_burer1", weight = 0.03, type = mutant_spawn_type.Burer }, + { section = "simulation_chimera", weight = 0.02, type = mutant_spawn_type.Chimera }, + { section = "simulation_bloodsucker_2weak", weight = 0.02, type = mutant_spawn_type.BloodSucker }, + { section = "simulation_chimera_2weak", weight = 0.01, type = mutant_spawn_type.Chimera }, + { section = "simulation_controller", weight = 0.01, type = mutant_spawn_type.Controller }, +} + +local stalker_spawns = { + --Loner + { section = "stalker_sim_squad_novice", community = "stalker", weight = 1.00, type = stalker_spawn_type.Novice }, + { section = "stalker_sim_squad_advanced", community = "stalker", weight = 0.50, type = stalker_spawn_type.Advanced }, + { section = "stalker_sim_squad_veteran", community = "stalker", weight = 0.10, type = stalker_spawn_type.Veteran }, + --Bandit + { section = "bandit_sim_squad_novice", community = "bandit", weight = 1.00, type = stalker_spawn_type.Novice }, + { section = "bandit_sim_squad_advanced", community = "bandit", weight = 0.50, type = stalker_spawn_type.Advanced }, + { section = "bandit_sim_squad_veteran", community = "bandit", weight = 0.10, type = stalker_spawn_type.Veteran }, + --Merc + { section = "merc_sim_squad_novice", community = "killer", weight = 0.75, type = stalker_spawn_type.Novice }, + { section = "merc_sim_squad_advanced", community = "killer", weight = 0.25, type = stalker_spawn_type.Advanced }, + { section = "merc_sim_squad_veteran", community = "killer", weight = 0.10, type = stalker_spawn_type.Veteran }, + --Duty + { section = "duty_sim_squad_novice", community = "dolg", weight = 1.00, type = stalker_spawn_type.Novice }, + { section = "duty_sim_squad_advanced", community = "dolg", weight = 0.10, type = stalker_spawn_type.Advanced }, + { section = "duty_sim_squad_veteran", community = "dolg", weight = 0.10, type = stalker_spawn_type.Veteran }, + --Freedom + { section = "freedom_sim_squad_novice", community = "freedom", weight = 1.00, type = stalker_spawn_type.Novice }, + { section = "freedom_sim_squad_advanced", community = "freedom", weight = 0.10, type = stalker_spawn_type.Advanced }, + { section = "freedom_sim_squad_veteran", community = "freedom", weight = 0.10, type = stalker_spawn_type.Veteran }, + --Military + { section = "army_sim_squad_novice", community = "army", weight = 1.00, type = stalker_spawn_type.Novice }, + { section = "army_sim_squad_advanced", community = "army", weight = 0.10, type = stalker_spawn_type.Advanced }, + { section = "army_sim_squad_veteran", community = "army", weight = 0.10, type = stalker_spawn_type.Veteran }, + { section = "army_sim_squad_sniper", community = "army", weight = 0.05, type = stalker_spawn_type.Sniper }, + --Clear Sky + { section = "csky_sim_squad_novice", community = "csky", weight = 1.00, type = stalker_spawn_type.Novice }, + { section = "csky_sim_squad_advanced", community = "csky", weight = 0.10, type = stalker_spawn_type.Advanced }, + { section = "csky_sim_squad_veteran", community = "csky", weight = 0.10, type = stalker_spawn_type.Veteran }, + --Renegades + { section = "renegade_sim_squad_novice", community = "renegade", weight = 0.50, type = stalker_spawn_type.Novice }, + { section = "renegade_sim_squad_advanced", community = "renegade", weight = 0.20, type = stalker_spawn_type.Advanced }, + { section = "renegade_sim_squad_veteran", community = "renegade", weight = 0.10, type = stalker_spawn_type.Veteran }, + --Clear Sky + { section = "csky_sim_squad_novice", community = "csky", weight = 0.50, type = stalker_spawn_type.Novice }, + { section = "csky_sim_squad_advanced", community = "csky", weight = 0.20, type = stalker_spawn_type.Advanced }, + { section = "csky_sim_squad_veteran", community = "csky", weight = 0.10, type = stalker_spawn_type.Veteran }, + --Monolith + { section = "monolith_sim_squad_novice", community = "monolith", weight = 0.50, type = stalker_spawn_type.Novice }, + { section = "monolith_sim_squad_advanced", community = "monolith", weight = 0.20, type = stalker_spawn_type.Advanced }, + { section = "monolith_sim_squad_veteran", community = "monolith", weight = 0.10, type = stalker_spawn_type.Veteran }, + --Sin + { section = "greh_sim_squad_novice", community = "greh", weight = 0.50, type = stalker_spawn_type.Novice }, + { section = "greh_sim_squad_advanced", community = "greh", weight = 0.20, type = stalker_spawn_type.Advanced }, + { section = "greh_sim_squad_veteran", community = "greh", weight = 0.10, type = stalker_spawn_type.Veteran }, + --UNISG + { section = "isg_sim_squad_novice", community = "isg", weight = 0.50, type = stalker_spawn_type.Novice }, + { section = "isg_sim_squad_advanced", community = "isg", weight = 0.20, type = stalker_spawn_type.Advanced }, + { section = "isg_sim_squad_veteran", community = "isg", weight = 0.10, type = stalker_spawn_type.Veteran }, + --Ecologist + { section = "ecolog_sim_squad_novice", community = "ecolog", weight = 0.50, type = stalker_spawn_type.Novice }, + { section = "ecolog_sim_squad_advanced", community = "ecolog", weight = 0.20, type = stalker_spawn_type.Advanced }, + { section = "ecolog_sim_squad_veteran", community = "ecolog", weight = 0.10, type = stalker_spawn_type.Veteran }, +} + +local function is_equipped(id) + local is_equipped = false + for i=1,12 do + slot = db.actor:item_in_slot(i) + if (slot and slot:id() == id) then + is_equipped = true + break + end + end + return is_equipped +end + +--------------------------------------------------------- +-- Base Scenario Class +--------------------------------------------------------- + +class "SoulslikeScenarioLogic" + +function SoulslikeScenarioLogic:__init(state) + if state then + self.logic_state = state + soulslike.debug("Scenario created with state:") + soulslike.debug(state) + else + local rank = db.actor:character_rank() + + if soulslike_mcm.debug_item_loss() then + soulslike.debug("Debugging item loss, setting max rank:") + rank = 56000 + end + + local ranked_chance = math.clamp(math.sqrt(rank / 500) * math.log(rank * rank) / math.log(1000) * 1.5, 0, 50) / 66 + soulslike.debug("Creating logic state.") + self.logic_state = { + rank = rank, + ranked_chance = ranked_chance, + item_condition_loss_percent = math.clamp(ranked_chance * soulslike_mcm.get_item_condition_loss_percent(), 0, 1), + keep_equipped_items_on_death = soulslike_mcm.get_keep_equipped_items_on_death(), + item_loss_scalar = soulslike_mcm.get_item_loss_scalar(), + health_loss_percent = soulslike_mcm.get_health_loss_percent(), + rank_loss_percent = soulslike_mcm.rank_loss_percent(), + rep_loss_percent = soulslike_mcm.rep_loss_percent(), + allow_weapon_loss = soulslike_mcm.allow_weapon_loss(), + allow_artifact_loss = soulslike_mcm.allow_artifact_loss(), + allow_outfit_loss = soulslike_mcm.allow_outfit_loss(), + allow_headgear_loss = soulslike_mcm.allow_headgear_loss(), + allow_toolkit_loss = soulslike_mcm.allow_toolkit_loss(), + mutant_ambush_chance = soulslike_mcm.mutant_ambush_chance(), + stalker_ambush_chance = soulslike_mcm.stalker_ambush_chance(), + allow_boar_ambush = soulslike_mcm.allow_boar_ambush(), + allow_flesh_ambush = soulslike_mcm.allow_flesh_ambush(), + allow_dogs_ambush = soulslike_mcm.allow_dogs_ambush(), + allow_cats_ambush = soulslike_mcm.allow_cats_ambush(), + allow_snorks_ambush = soulslike_mcm.allow_snorks_ambush(), + allow_bloodsucker_ambush = soulslike_mcm.allow_bloodsucker_ambush(), + allow_burer_ambush = soulslike_mcm.allow_burer_ambush(), + allow_chimera_ambush = soulslike_mcm.allow_chimera_ambush(), + allow_controller_ambush = soulslike_mcm.allow_controller_ambush(), + allow_stalker_novice_ambush = soulslike_mcm.allow_stalker_novice_ambush(), + allow_stalker_advanced_ambush = soulslike_mcm.allow_stalker_advanced_ambush(), + allow_stalker_veteran_ambush = soulslike_mcm.allow_stalker_veteran_ambush(), + allow_stalker_sniper_ambush = soulslike_mcm.allow_stalker_sniper_ambush(), + allow_npc_looting = true, + are_looter_npcs_marked = soulslike_mcm.are_looter_npcs_marked(), + death_location = { + position = { + x = nil, + y = nil, + z = nil + }, + level_vertex_id = nil, + game_vertex_id = nil + }, + story = { + gave_food_or_water = nil, + has_pda_marker = nil, + has_stash_pda_marker = nil, + radio_freq = nil, + items_were_lost = nil, + enemy = nil, -- { name, community, tarkov_experience } + player_died_indoor = nil, + player_died_in_water = nil, + level_name = nil, + } + } + soulslike.debug("Scenario created without state.") + end + + self.game_state = soulslike.get_soulslike_state() +end + +function SoulslikeScenarioLogic:SetIsInDoor(player_is_indoor) + self.logic_state.player_died_indoor = player_is_indoor +end + +function SoulslikeScenarioLogic:SetIsInWater(is_in_water) + self.logic_state.player_died_in_water = is_in_water +end + +function SoulslikeScenarioLogic:SetLevelName(name) + self.logic_state.story.level_name = name +end + +function SoulslikeScenarioLogic:SetLootScalar(scenario_loot_scalar) + self.logic_state.scenario_loot_scalar = scenario_loot_scalar +end + +function SoulslikeScenarioLogic:SetRescuer(npc) + if npc and (type(npc.id) == "function") then + self.logic_state.rescuer_id = npc:id() + elseif npc and npc.id then + self.logic_state.rescuer_id = npc.id + end +end + +function SoulslikeScenarioLogic:SetLooter(npc) + if npc and (type(npc.id) == "function") then + self.logic_state.looter_id = npc:id() + elseif npc and npc.id then + self.logic_state.looter_id = npc.id + end +end + +function SoulslikeScenarioLogic:SetLooterType(entity_type) + self.logic_state.looter_type = entity_type + self.logic_state.story.looter_type = entity_type +end + +function SoulslikeScenarioLogic:SetKiller(npc) + if npc and (type(npc.id) == "function") then + self.logic_state.killer_id = npc:id() + elseif npc and npc.id then + self.logic_state.killer_id = npc.id + end +end + +function SoulslikeScenarioLogic:SetKillerType(entity_type) + self.logic_state.killer_type = entity_type +end + +function SoulslikeScenarioLogic:SetFatalHitType(hit_type) + self.logic_state.fatal_hit_type = hit_type +end + +function SoulslikeScenarioLogic:destroy() + self.logic_state = nil + self.game_state = nil +end + +function SoulslikeScenarioLogic:HealActor() + local heath = 1 - self.logic_state.health_loss_percent + + db.actor:set_health_ex(heath) + db.actor.power = 1 + db.actor.radiation = 0 + db.actor.bleeding = 1 + db.actor.psy_health = 1 + + save_var(db.actor,'grw_in_water',nil) + + if arszi_psy then + arszi_psy.set_psy_health(1.0) + end +end + +function SoulslikeScenarioLogic:ApplyRankLoss() + local rank = db.actor:character_rank() + local loss_percent = self.logic_state.rank_loss_percent + local rank_loss = math.abs(rank * loss_percent) + + soulslike.debug("Player has lost "..tostring(rank_loss).." rank.") + + db.actor:set_character_rank(db.actor:character_rank() + (-rank_loss or 0)) + game_statistics.check_for_rank_change() +end + +function SoulslikeScenarioLogic:ApplyRepLoss() + local rep = db.actor:character_reputation() + local loss_percent = self.logic_state.rep_loss_percent + local rep_loss = math.abs(rep * loss_percent) + + soulslike.debug("Player has lost "..tostring(rep_loss).." repuation.") + + db.actor:set_character_reputation(db.actor:character_reputation() + (-rep_loss or 0)) + game_statistics.check_for_reputation_change() +end + +function SoulslikeScenarioLogic:ApplyItemConditionLoss(item, condition_loss_percent) + local cond = item:condition() + local sec = item:section() + local degrade_factor = cond * condition_loss_percent + local is_grenade = IsGrenade(item) + local is_weapon = (IsWeapon(item) and not is_grenade) + local is_outfit = IsOutfit(item) + local is_headgear = IsHeadgear(item) + + local use_condition = utils_item.is_degradable(item, sec) + local has_cond = use_condition or is_weapon or is_outfit or is_headgear + + if has_cond then + soulslike.debug("Degrading ".. sec.. " condition ".. tostring(cond).." by "..tostring(degrade_factor)) + -- utils_item.degrade releases the item if the condition is 0 + local condition = utils_item.degrade(item, degrade_factor) + return condition + end + + -- No condition to be returned. + return nil +end + +function SoulslikeScenarioLogic:ApplyTransferItemsPreConditions() + local is_magazine = magazine_binder and magazine_binder.is_magazine + local is_carried_mag = magazine_binder and magazine_binder.is_carried_mag + local toggle_carried_mag = magazine_binder and magazine_binder.toggle_carried_mag + + local function check_item(_, item) + local sec = item:section() + if is_magazine and is_magazine(sec) and is_carried_mag(item:id()) then + soulslike.debug("Toggling carried mag: "..sec) + local result = toggle_carried_mag(item:id()) + soulslike.debug("Mag toggled to: "..tostring(result)) + end + end + + soulslike.debug("Inventory precondition checks") + db.actor:iterate_inventory(check_item) +end + +function SoulslikeScenarioLogic:ApplyTransferItemsPostConditions() +end + +function SoulslikeScenarioLogic:HandleItemsAndRespawn() + self:ApplyTransferItemsPreConditions() + + local actor = db.actor + local position = actor:position() + self.logic_state.death_location = { + position = { + x = position.x, + y = position.y, + z = position.z + }, + level_vertex_id = actor:level_vertex_id(), + game_vertex_id = actor:game_vertex_id() + } + + local se_stash = self:CreateStash() + + if se_stash then + soulslike.debug("Stash created "..tostring(se_stash.id)) + + local function transfer_and_respawn() + local pack = level.object_by_id(se_stash.id) + + if pack then + --soulslike.try(function() + soulslike.debug("Stash exists in game") + + self:TransferItems(se_stash.id) + self:ApplyTransferItemsPostConditions() + self:RespawnActor() + --end) + return true + else + soulslike.debug("Stash does not yet exist in game") + return false + end + end + + --We have to create a timer to give the game time to spawn the backpack. + CreateTimeEvent(0, "transfer_and_respawn", 0, transfer_and_respawn) + else + soulslike.debug("Stash was not created") + self:RespawnActor() + end +end + + +function SoulslikeScenarioLogic:OnDeath() + if not self.logic_state.scenario_id then + error("Soulslike: No scenario id defined!") + end + + bind_stalker_ext.invulnerable_time = time_global() + 30000 + actor_status.deactivate_hud() + + self:HealActor() + self:ApplyRankLoss() + self:ApplyRepLoss() + self:HandleItemsAndRespawn() +end + +function SoulslikeScenarioLogic:GiveFoodAndWater() + -- Satiety + local conditions = db.actor:cast_Actor():conditions() + local satiety = conditions:GetSatiety() + local red_icon_satiety = conditions:SatietyCritical() * 0.5 + + satiety = normalize(satiety, red_icon_satiety, 1) + satiety = math.clamp( satiety / 5.65 , 0, 0.185) + + soulslike.debug({satiety = satiety}) + if satiety < 0.5 then + self.logic_state.story.gave_food_or_water = true + db.actor.satiety = 0.5 + end + + -- Thirst + local thirst = 1 - actor_status_thirst.get_water_deprivation() -- 1 full + local red_icon_thirst = 1 - normalize(5760, 0, 10000) -- def 0.424 red + + thirst = normalize(thirst, red_icon_thirst, 1) + thirst = math.clamp(thirst / 5.65, 0, 0.185) + + soulslike.debug({thirst = thirst}) + + if thirst < 0.5 then + self.logic_state.story.gave_food_or_water = true + -- HACK... deal with it :shades: + soulslike.debug("HACK updating thirst.") + actor_status_thirst.load_state({drink = {last_drink = 3500, chk_drink = nil}}) + actor_status_thirst.actor_on_update() + end + + if self.logic_state.story.gave_food_or_water then + soulslike.debug("Spawning bread and water on actor.") + alife_create_item('bread', db.actor) + alife_create_item('water_drink', db.actor) + end +end + +function SoulslikeScenarioLogic:GiveMeds() +end + +function SoulslikeScenarioLogic:GiveWeapon() +end + +function SoulslikeScenarioLogic:GiveOutfit() +end + +function SoulslikeScenarioLogic:GiveMask() +end + +function SoulslikeScenarioLogic:TrackAmbusher(id, mental_state, body_state, movement_type, sight_type, position, level_vertex_id, game_vertex_id) + if not self.game_state.tracked_ambushers then + self.game_state.tracked_ambushers = {} + end + self.game_state.tracked_ambushers[id] = { + mental_state = mental_state, + body_state = body_state, + movement_type = movement_type, + sight_type = sight_type, + position = position, + level_vertex_id = level_vertex_id, + game_vertex_id = game_vertex_id + } +end + +function SoulslikeScenarioLogic:SpawnAmbush() + soulslike.debug("Checking ambush chance.") + local loss_chance_dice_roll = math.random(0, 100) + local spawns = {} + local sim = alife() + + if not sim then return end + + local debug_spawn = soulslike_mcm.debug_always_spawn_ambush() + + if debug_spawn then + soulslike.debug("Ambush debugging enabled") + loss_chance_dice_roll = 0 + end + + soulslike.debug({ + killer_type = self.logic_state.killer_type, + has_mutant_bait = self.logic_state.has_mutant_bait, + mutant_ambush_chance = self.logic_state.mutant_ambush_chance, + stalker_ambush_chance = self.logic_state.stalker_ambush_chance, + loss_chance_dice_roll = loss_chance_dice_roll + }) + + if self.logic_state.killer_type == soulslike.entity_type.Monster and + self.logic_state.has_mutant_bait and + loss_chance_dice_roll < self.logic_state.mutant_ambush_chance * 100 then + soulslike.debug("Setting up mutant spawn table.") + for _, spawn in pairs(mutant_spawns) do + if (spawn.type == mutant_spawn_type.Boar and self.logic_state.allow_boar_ambush) or + (spawn.type == mutant_spawn_type.Flesh and self.logic_state.allow_flesh_ambush) or + (spawn.type == mutant_spawn_type.Dog and self.logic_state.allow_dogs_ambush) or + (spawn.type == mutant_spawn_type.Cat and self.logic_state.allow_cats_ambush) or + (spawn.type == mutant_spawn_type.Snork and self.logic_state.allow_snorks_ambush) or + (spawn.type == mutant_spawn_type.Burer and self.logic_state.allow_burer_ambush) or + (spawn.type == mutant_spawn_type.BloodSucker and self.logic_state.allow_bloodsucker_ambush) or + (spawn.type == mutant_spawn_type.Chimera and self.logic_state.allow_chimera_ambush) or + (spawn.type == mutant_spawn_type.Controller and self.logic_state.allow_controller_ambush) then + table.insert(spawns, spawn) + end + end + elseif self.logic_state.killer_type == soulslike.entity_type.Stalker and + loss_chance_dice_roll < self.logic_state.stalker_ambush_chance * 100 then + local killer = self.logic_state.killer_id and sim:object(self.logic_state.killer_id) or nil + + if killer then + soulslike.debug("Setting up stalker spawn table.") + local community = killer:community() + soulslike.debug("killer community - "..community) + for _, spawn in pairs(stalker_spawns) do + if spawn.community == community then + soulslike.debug(spawn) + if (spawn.type == stalker_spawn_type.Novice and self.logic_state.allow_stalker_novice_ambush) or + (spawn.type == stalker_spawn_type.Advanced and self.logic_state.allow_stalker_advanced_ambush) or + (spawn.type == stalker_spawn_type.Veteran and self.logic_state.allow_stalker_veteran_ambush) or + (spawn.type == stalker_spawn_type.Sniper and self.logic_state.allow_stalker_sniper_ambush) then + soulslike.debug("Spawn accepted.") + table.insert(spawns, spawn) + end + end + end + end + else + soulslike.debug("No ambush scenario detected.") + return + end + + soulslike.debug("Spawns:") + soulslike.debug(spawns) + + if table.get_length(spawns) == 0 then + soulslike.debug("No valid spawns for ambush") + return + end + + local weight_sum = 0 + for _, value in pairs(spawns) do + weight_sum = weight_sum + value.weight + end + + local min = 0 + for _, value in pairs(spawns) do + value.min = min + 1 + value.max = math.floor(min + (100 * (value.weight / weight_sum))) + min = value.max + end + + local roll = math.random(1, 100) + local section = nil + for _, value in pairs(spawns) do + if(roll >= value.min and roll <= value.max) then + section = value.section + break + end + end + + soulslike.debug_tip("Spawning ambush "..section) + + local class = ini_sys:r_string_ex(section,"class") + local kind = ini_sys:r_string_ex(section,"kind") -- special class name for the sake of correct listing + + if kind then class = kind end + + if self.logic_state.death_location.position.x then + local pos = vector():set( + self.logic_state.death_location.position.x, + self.logic_state.death_location.position.y, + self.logic_state.death_location.position.z) + local lvid = self.logic_state.death_location.level_vertex_id + local gvid = self.logic_state.death_location.game_vertex_id + local group = obj_to_spawn_classes[class] + local is_squad = string.find(group, "Squad") + local se_obj = section and alife_create(section, pos, lvid, gvid) + + if se_obj then + if is_squad then + se_obj:create_npc(nil, pos, lvid, gvid) + local sim = alife() + if not sim then return end + for k in se_obj:squad_members() do + local se_npc = k.object or k.id and sim:object(k.id) + if (se_npc) then + SIMBOARD:setup_squad_and_group(se_npc) + SendScriptCallback("squad_on_npc_creation", se_obj, se_npc) + + -- TODO: Need to have them guard (this is code for stalkers... not sure what to do about mutants) + self:TrackAmbusher( + k.id, + anim.look_around, + move.standing, + move.stand, + look.search, + self.logic_state.death_location.position) + end + end + if soulslike_mcm.debug_squad_spawns() then + level.map_add_object_spot_ser(se_obj.id, "secondary_task_location", "DEBUG: Spawn "..section) + end + soulslike.debug_tip(strformat("Spawned squad [%s] (%s)", section, se_obj.id)) + else + -- TODO: Need to have them guard (this is code for stalkers... not sure what to do about mutants) + self:TrackAmbusher( + se_obj.id, + anim.look_around, + move.standing, + move.stand, + look.search, + self.logic_state.death_location.position, + lvid, + gvid) + if soulslike_mcm.debug_squad_spawns() then + level.map_add_object_spot_ser(se_obj.id, "secondary_task_location", "DEBUG: Spawn "..section) + end + soulslike.debug_tip(strformat("Spawned object [%s] (%s)", section, se_obj.id)) + end + else + soulslike.debug(strformat("No server object made for [%s]", section)) + end + else + soulslike.debug("No nearby smarts, to dumb") + end +end + +function SoulslikeScenarioLogic:OnComplete() + self:GiveFoodAndWater() + self:GiveMeds() + self:GiveWeapon() + self:GiveOutfit() + self:GiveMask() + self:SpawnAmbush() + + actor_status.activate_hud() + + self:SendWakeupMessage() + + if soulslike_mcm.is_hardcore_save_enabled() then + soulslike.force_save("respawn") + end + + actor_menu.set_msg(1, strformat(game.translate_string("st_death_count"), game_statistics.get_statistic_count("deaths")),8) +end + +function SoulslikeScenarioLogic:RespawnActor() + soulslike.debug("Respawning actor") + local position = vector():set(self.game_state.spawn_location.position.x, self.game_state.spawn_location.position.y, self.game_state.spawn_location.position.z) + local level_vertex_id = self.game_state.spawn_location.level_vertex_id + local game_vertex_id = self.game_state.spawn_location.game_vertex_id + + level.add_pp_effector("black_infinite.ppe", 5606, true) + + local function respawn() + soulslike.debug("Changing levels") + ChangeLevel(position, level_vertex_id, game_vertex_id, VEC_ZERO, false) + return true + end + CreateTimeEvent(0, "respawn", 1, respawn) + + self:StopSurgeAndStorm() +end + +function SoulslikeScenarioLogic:SendWakeupMessage() + soulslike.debug("SoulslikeScenarioLogic:SendWakeupMessage") + + local rescuer; + if self.logic_state.rescuer_id then + soulslike.debug("Looking up rescuer id "..tostring(self.logic_state.rescuer_id)) + rescuer = alife_object(self.logic_state.rescuer_id) + end + + soulslike.debug("Creating message.") + local msg = soulslike_message_factory.create(rescuer, self.logic_state.story) + soulslike.debug("Message created: "..msg) + + if rescuer then + soulslike.debug("Sending tip to player from rescuer.") + news_manager.send_tip(db.actor, msg, nil, rescuer, 20000) + else + soulslike.debug("No rescuer, its a mystery...") + local ui_sender = news_manager.tips_icons['default'] + db.actor:give_game_news("", msg, ui_sender, 0, 20000) + end +end + +function SoulslikeScenarioLogic:AdvanceTime() + self.logic_state.is_advancing_time = true + + xr_effects.disable_ui(db.actor, nil) + + level.add_cam_effector("camera_effects\\sleep.anm", 10, false, "soulslike.dream_callback") + level.add_pp_effector("sleep_fade.ppe", 11, false) + + _G.mus_vol = get_console_cmd(2,"snd_volume_music") + _G.amb_vol = get_console_cmd(2,"snd_volume_eff") + + exec_console_cmd("snd_volume_music 0") + exec_console_cmd("snd_volume_eff 0") + + level.add_pp_effector("surge_fade.ppe", 11, false) + db.actor:give_info_portion("actor_is_sleeping") +end + +function SoulslikeScenarioLogic:StopSurgeAndStorm(to_id) + -- skip surge due to bug with killing actor on switch + surge_manager.stop_surge() + + local psi_storm_manager = psi_storm_manager.get_psi_storm_manager() + + if (psi_storm_manager.started) then + psi_storm_manager:finish(true) + end +end + +function SoulslikeScenarioLogic:IsItemLossAllowed(item) + -- If the player died in the water, no items will be lost... + -- A sort of i dont want to touch the gear in the water and get irradiated + -- play from the looter. + if self.logic_state.player_died_in_water then return false end + + local sec = item:section() + local is_grenade = IsGrenade(item) + local is_artefact = IsArtefact(item) + local is_weapon = (IsWeapon(item) and not is_grenade) + local is_outfit = IsOutfit(item) + local is_headgear = IsHeadgear(item) + local is_backpack = item and SYS_GetParam(0, sec, "kind") == "i_backpack" + local is_toolkit = IsToolkit(item) + local is_loss_allowed = true + + if is_weapon and not self.logic_state.allow_weapon_loss then + soulslike.debug("Not allowed to lose weapon "..sec) + is_loss_allowed = false + elseif is_artefact and not self.logic_state.allow_artifact_loss then + soulslike.debug("Not allowed to lose artefact "..sec) + is_loss_allowed = false + elseif is_outfit and not self.logic_state.allow_outfit_loss then + soulslike.debug("Not allowed to lose outfit "..sec) + is_loss_allowed = false + elseif is_headgear and not self.logic_state.allow_headgear_loss then + soulslike.debug("Not allowed to lose headgear "..sec) + is_loss_allowed = false + elseif is_toolkit and not self.logic_state.allow_toolkit_loss then + soulslike.debug("Not allowed to lose toolkit "..sec) + is_loss_allowed = false + elseif is_backpack then + soulslike.debug("Not allowed to lose bakcpack "..sec) + is_loss_allowed = false + end + + return is_loss_allowed +end + +function SoulslikeScenarioLogic:TryStalkerLooter(item, container, looter) + local sec = item:section() + local to_id = container:id() + + if(self.logic_state.allow_npc_looting and looter) then + soulslike.debug("Transfering item to enemy: "..sec) + table.insert(self.game_state.created_stashes[to_id].lost_items, sec) + db.actor:transfer_item(item, looter) + self.logic_state.looter = true + return true + end + return false +end + +function SoulslikeScenarioLogic:TryMonsterLooter(item, container, looter) + local sec = item:section() + local to_id = container:id() + local is_mutant_meat = SYS_GetParam(0, sec, "kind") == "i_mutant_raw" + local is_food = SYS_GetParam(0, sec, "kind") == "i_food" + local is_mutant_belt = SYS_GetParam(0, sec, "kind") == "i_mutant_belt" + + self.logic_state.has_mutant_bait = + self.logic_state.has_mutant_bait or is_mutant_meat or is_food or is_mutant_belt + + if(self.logic_state.allow_npc_looting and looter and (is_mutant_meat or is_food or is_mutant_belt)) then + soulslike.debug("Monster ate item: "..sec) + table.insert(self.game_state.created_stashes[to_id].lost_items, sec) + alife_release(item) + return true + end + + return false +end + +function SoulslikeScenarioLogic:TryTarkovLooter(item, container, looter) + local loss_chance_dice_roll = math.random(0, 100) + local sec = item:section() + local is_grenade = IsGrenade(item) + local is_weapon = (IsWeapon(item) and not is_grenade) + + if soulslike_mcm.debug_the_tarkov_looter() then + loss_chance_dice_roll = 1 + end + + if loss_chance_dice_roll <= 1 and is_weapon and item_parts then + local parts = item_parts.get_parts_con(item) + if parts then + local keys = {} + local numitems = 0 + for k,v in pairs(parts) do + numitems = numitems + 1 + table.insert(keys, k) + end + + local index = math.random(1, numitems) + local sec = keys[index] + local condition = parts[keys[index]] + + soulslike.debug("Creating item "..sec.." with condition "..tostring(condition)) + + local max_con_obj = 0.999 + local min_con_obj = 0.001 + local se_result = alife_create(sec, looter:position(), looter:level_vertex_id(), looter:game_vertex_id(), looter:id(), false) + local data_result = utils_stpk.get_item_data(se_result) + + data_result.condition = clamp((condition / 100) , min_con_obj , max_con_obj) + utils_stpk.set_item_data(data_result,se_result) + alife():register(se_result) + + parts[sec] = -1 -- KEKW + -- TODO: Spawn part on looter + self.logic_state.looter = true + -- TODO: Add message text for this + self.logic_state.got_tarkoved = true + end + + soulslike.debug("Transfering item "..sec.." to container") + db.actor:transfer_item(item, container) + return true + end + return false +end + +function SoulslikeScenarioLogic:TransferItem(item, container, looter) + local sec = item:section() + local to_id = container:id() + + if ignore_list[sec] then + soulslike.debug("Item is in ignore list: "..sec) + return false + end + + if ini_sys:r_bool_ex(sec,"quest_item",false) then + soulslike.debug("Item quest item: "..sec) + return false + end + + local keep_equipped_items_on_death = self.logic_state.keep_equipped_items_on_death + + if keep_equipped_items_on_death and is_equipped(item:id()) then + soulslike.debug("Not allowed tolose equipped item "..sec) + return false + end + + local is_loss_allowed = self:IsItemLossAllowed(item) + + if is_loss_allowed then + local loss_chance_dice_roll = math.random(0, 100) + local loss_chance = math.floor(self.logic_state.ranked_chance * self.logic_state.item_loss_scalar * 100) + + loss_chance = math.clamp(loss_chance, 0, 100) * self.logic_state.scenario_loot_scalar + + local is_mutant_meat = SYS_GetParam(0, sec, "kind") == "i_mutant_raw" + local is_food = SYS_GetParam(0, sec, "kind") == "i_food" + local is_mutant_belt = SYS_GetParam(0, sec, "kind") == "i_mutant_belt" + + self.logic_state.has_mutant_bait = + self.logic_state.has_mutant_bait or is_mutant_meat or is_food or is_mutant_belt + + if self.logic_state.item_condition_loss_percent > 0 then + local condition = self:ApplyItemConditionLoss(item, self.logic_state.item_condition_loss_percent) + + if condition == 0 then + soulslike.debug("Item ".. sec.. " was degraded into oblivion") + self.logic_state.story.items_were_lost = true + table.insert(self.game_state.created_stashes[to_id].lost_items, sec) + end + end + + -- We never want to delete the players backpack + -- since it makes up the created stash + if loss_chance ~= 0 and loss_chance_dice_roll < loss_chance then + loss_chance_dice_roll = math.random(0, 100) + + -- This shit is going to be funny as fuck for me to know + -- that there is a 1% chance for this to happen + if looter and self:TryTarkovLooter(item, container, looter) then + return false + end + + local is_looter_stalker = self.logic_state.looter_type == soulslike.entity_type.Stalker + local is_looter_mutant = self.logic_state.looter_type == soulslike.entity_type.Monster + + if looter and is_looter_stalker and self:TryStalkerLooter(item, container, looter) then + return false + end + + if looter and is_looter_mutant and self:TryMonsterLooter(item, container, looter) then + return false + end + + local is_ammo = IsAmmo(item) + local is_medical = SYS_GetParam(0, sec, "kind") == "i_medical" + local is_food = SYS_GetParam(0, sec, "kind") == "i_food" + + if is_ammo or is_food or is_medical then + soulslike.debug("Item lost "..sec) + table.insert(self.game_state.created_stashes[to_id].lost_items, sec) + alife_release(item) + self.logic_state.story.items_were_lost = true + return false + end + end + end + + soulslike.debug("Transfering item "..sec) + db.actor:transfer_item(item, container) + return true +end + +function SoulslikeScenarioLogic:TransferItems(to_id) + local container = level.object_by_id(to_id) + local enemy_looter = self.logic_state.looter_id and level.object_by_id(self.logic_state.looter_id) or nil + + if enemy_looter and self.logic_state.looter_type == soulslike.entity_type.Stalker then + soulslike.debug("Scenario Looter "..enemy_looter:character_community().." "..enemy_looter:character_name()) + end + + soulslike.debug("Transfering items") + local function release_actor_item(_, item) + self:TransferItem(item, container, enemy_looter) + end + db.actor:iterate_inventory(release_actor_item) + + if enemy_looter and self.logic_state.looter and self.logic_state.looter_type == soulslike.entity_type.Stalker then + self.logic_state.story.enemy = { + name = enemy_looter:character_name(), + community = enemy_looter:character_community(), + tarkov_experience = self.logic_state.got_tarkoved + } + + if self.logic_state.are_looter_npcs_marked then + level.map_add_object_spot_ser(enemy_looter:id(), "secondary_task_location", self.logic_state.enemy_looter_name) + end + end +end + +function SoulslikeScenarioLogic:OnRespawn() + + bind_stalker_ext.invulnerable_time = time_global() + 1 + + self:HealActor() + self:AdvanceTime() + + local rank = db.actor:character_rank() + local rep = db.actor:character_reputation() + + soulslike.debug('Character rank: '..rank) + soulslike.debug('Character rep: '..rep) +end + +--------------------------------------------------------- +-- Default Scenario +-- Stash dropped where the player died +-- Marked on PDA +--------------------------------------------------------- + +class "DefaultSoulslikeScenarioLogic" (SoulslikeScenarioLogic) + +function DefaultSoulslikeScenarioLogic:__init(state) super (state) + self.logic_state.scenario_id = soulslike.SCENARIOS.Default +end + +function DefaultSoulslikeScenarioLogic:CreateStash() + soulslike.debug("Creating stash") + + local actor = db.actor + local se_stash = alife_create("inv_backpack", actor:position(), actor:level_vertex_id(), actor:game_vertex_id()) + + if se_stash then + self.game_state.created_stashes[se_stash.id] = { + lost_items = {}, + examine = false + } + self.logic_state.stash_id = se_stash.id + end + + return se_stash +end + +function DefaultSoulslikeScenarioLogic:ApplyTransferItemsPostConditions() + self.logic_state.story.has_pda_marker = true + level.map_add_object_spot_ser(self.logic_state.stash_id, "secondary_task_location", db.actor:character_name() .. "'s items") +end + +--------------------------------------------------------- +-- RF Detector Scenario +-- Hidden stash used for item drop +-- RF Detector must be used to find the stash +-- TODO: Add task to the players PDA +--------------------------------------------------------- + +class "RFDetectorSoulslikeScenarioLogic" (SoulslikeScenarioLogic) + +function RFDetectorSoulslikeScenarioLogic:__init(state) super (state) + self.logic_state.scenario_id = soulslike.SCENARIOS.RFDetectorStash +end + +function RFDetectorSoulslikeScenarioLogic:CreateStash() + -- For some reason, "box_in_same_map" doesn't actually mean same map in the treasure_manager. + local old_box_in_same_map = treasure_manager.box_in_same_map + treasure_manager.box_in_same_map = function(id) + local obj1 = alife():actor() + local obj2 = alife_object(id) + return simulation_objects.is_on_the_same_level(obj1, obj2) + end + local id = treasure_manager.get_random_stash("treasure", nil ,true, true) + treasure_manager.box_in_same_map = old_box_in_same_map + + -- If we could not grab a ransom stash, we need to return nil so we don't transfer anything + if not id then return nil end + + soulslike.debug("Random stash found: "..tostring(id)) + + local se_treasure = alife_object(id) + + -- If we could not grab a ransom stash, we need to return nil so we don't transfer anything + if not se_treasure then return nil end + + local se_stash = alife_create("hidden_box", se_treasure.position, se_treasure.m_level_vertex_id, se_treasure.m_game_vertex_id) + + if (se_stash) then + local sim = alife() + + if sim then + -- force strictly online + sim:set_switch_online(se_stash.id,true) + sim:set_switch_offline(se_stash.id,false) + end + + self.game_state.created_stashes[se_stash.id] = { + lost_items = {}, + examine = false + } + + if not self.game_state.hidden_stashes then + self.game_state.hidden_stashes = {} + end + + self.logic_state.hidden_stash_id = se_stash.id + self.logic_state.treasure_stash_id = id + + local lvl = level.name() + self.game_state.hidden_stashes[id] = { + stash_id = se_stash.id, + radio_id = id, + radio_level = lvl + } + end + return se_stash +end + +function RFDetectorSoulslikeScenarioLogic:ApplyTransferItemsPostConditions() + local lvl = level.name() + soulslike.debug("Added radio target to level: "..lvl) + self.logic_state.story.radio_freq = math.random(30, 300) + item_radio.add_stash(lvl, self.logic_state.treasure_stash_id, self.logic_state.story.radio_freq) + + if soulslike_mcm.debug_hidden_stashes() then + soulslike.debug("Adding PDA marker "..tostring(self.logic_state.treasure_stash_id)) + level.map_add_object_spot_ser(self.logic_state.treasure_stash_id, "secondary_task_location", "DEBUG: RF DETECTOR STASH.") + end + + local se_note = alife_create_item('soulslike_rescuers_radio_frequency_note', db.actor) + self.game_state.note_message_data[se_note.id] = { + freq = self.logic_state.story.radio_freq, + level_name = lvl + } +end + +--------------------------------------------------------- +-- Hidden Stash Scenario +-- Hidden stash used for item drop +-- TODO: Add task to the players PDA +--------------------------------------------------------- + +class "HiddenStashSoulslikeScenarioLogic" (SoulslikeScenarioLogic) + +function HiddenStashSoulslikeScenarioLogic:__init(state) super (state) + self.logic_state.scenario_id = soulslike.SCENARIOS.HiddenStash +end + +function HiddenStashSoulslikeScenarioLogic:CreateStash() + + -- For some reason, "box_in_same_map" doesn't actually mean same map in the treasure_manager. + local old_box_in_same_map = treasure_manager.box_in_same_map + treasure_manager.box_in_same_map = function(id) + local obj1 = alife():actor() + local obj2 = alife_object(id) + return simulation_objects.is_on_the_same_level(obj1, obj2) + end + + local id = treasure_manager.get_random_stash("treasure", nil ,true, true) + treasure_manager.box_in_same_map = old_box_in_same_map + + -- If we could not grab a ransom stash, we need to return nil so we don't transfer anything + if not id then return nil end + + soulslike.debug("Random stash found: "..tostring(id)) + + local actor = db.actor + local se_stash = alife_create("hidden_box", actor:position(), actor:level_vertex_id(), actor:game_vertex_id()) + + if (se_stash) then + self.game_state.created_stashes[se_stash.id] = { + lost_items = {}, + examine = false + } + + if not self.game_state.hidden_stashes then + self.game_state.hidden_stashes = {} + end + + self.logic_state.hidden_stash_id = se_stash.id + self.logic_state.treasure_stash_id = id + + self.game_state.hidden_stashes[id] = { + stash_id = se_stash.id, + } + end + + return se_stash +end + +function HiddenStashSoulslikeScenarioLogic:ApplyTransferItemsPostConditions() + soulslike.debug("Adding PDA marker "..tostring(self.logic_state.treasure_stash_id)) + + local value = game.translate_string("st_soulslike_your_items") + self.logic_state.story.has_stash_pda_marker = true + level.map_add_object_spot_ser(self.logic_state.treasure_stash_id, "secondary_task_location", value) +end + +--------------------------------------------------------- +-- No Loss scenario +-- Players items are all returned +--------------------------------------------------------- + +class "NoLossSoulslikeScenarioLogic" (SoulslikeScenarioLogic) + +function NoLossSoulslikeScenarioLogic:__init(state) super (state) + self.logic_state.scenario_id = soulslike.SCENARIOS.NoLoss +end + + function NoLossSoulslikeScenarioLogic:CreateStash() + return nil +end + + function NoLossSoulslikeScenarioLogic:TransferItems(_) + -- Do Nothing +end + +function NoLossSoulslikeScenarioLogic:IsItemLossAllowed(item) + return false +end diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_sleep_dialog.script b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_sleep_dialog.script new file mode 100644 index 00000000..393b00a8 --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/soulslike_sleep_dialog.script @@ -0,0 +1,109 @@ +local _InitControls = ui_sleep_dialog.UISleep.InitControls +local _InitCallbacks = ui_sleep_dialog.UISleep.InitCallbacks +local _TestAndShow = ui_sleep_dialog.UISleep.TestAndShow +local _OnButtonSleep = ui_sleep_dialog.UISleep.OnButtonSleep + +function ui_sleep_dialog.UISleep.OnButtonSleep(self) + if not soulslike.IsSoulslikeMode() then + _OnButtonSleep(self) + return + end + local bleeding = db.actor.bleeding > 0 + local radiation = db.actor.radiation > 0 + + -- Prevent sleep if bleeding and/or iradiated. + if (bleeding or radiation) then + if (bleeding and radiation) then + actor_menu.set_msg(1, game.translate_string("st_sleep_bleeding_irradiated"),5) + elseif (bleeding) then + actor_menu.set_msg(1, game.translate_string("st_sleep_bleeding"),4) + elseif (radiation) then + actor_menu.set_msg(1, game.translate_string("st_sleep_irradiated"),4) + end + disable_info("sleep_active") + if self:IsShown() then + self:HideDialog() + Unregister_UI("UISleep") + end + return + end + + -- Check if actor is inside a safe zone + local actor_hide = GetEvent("current_safe_cover") and true or false + + -- Check if actor is inside a tent + if (not actor_hide) then + actor_hide = item_tent.get_nearby_tent(1.5) + end + + -- If all is no, dont sleep + if (not actor_hide) then + actor_menu.set_msg(1, game.translate_string("st_cant_sleep_find_shelter_mlr"),4) + disable_info("sleep_active") + if self:IsShown() then + self:HideDialog() + Unregister_UI("UISleep") + end + return + end + + _OnButtonSleep(self) +end + +function ui_sleep_dialog.UISleep.TestAndShow(self, force) + if not soulslike.IsSoulslikeMode() then + _TestAndShow(self, force) + return + end + + if force then + _TestAndShow(self, force) + else + -- Detour and show the UI so we can let the user + -- set their spawn point. Move the sleep check code + -- to the Sleep button click instead + self:Initialize() + self:ShowDialog(true) + Register_UI("UISleep","ui_sleep_dialog") + end +end + +function ui_sleep_dialog.UISleep.InitControls(self) + _InitControls(self) + + if not soulslike.IsSoulslikeMode() then + return + end + + local xml = CScriptXmlInit() + xml:ParseFile("soulslike_ui_sleep_dialog.xml") + + local function move(ctrl, deltaX, deltaY) + local pos = ctrl:GetWndPos() + ctrl:SetWndPos(vector2():set( pos.x + deltaX ,pos.y + deltaY )) + end + + move(self.btn_sleep, 52, 0) + move(self.btn_cancel, 52, 0) + + self.btn_set_spawn = xml:Init3tButton("btn_set_spawn", self.back) + self:Register(self.btn_set_spawn, "btn_set_spawn") + + if not utils_xml.is_widescreen() then + move(self.btn_set_spawn, 40, 0) + end +end + +function ui_sleep_dialog.UISleep.InitCallbacks(self) + _InitCallbacks(self) + + if not soulslike.IsSoulslikeMode() then + return + end + + self:AddCallback("btn_set_spawn", ui_events.BUTTON_CLICKED, self.OnButtonSetSpawn, self) +end + +function ui_sleep_dialog.UISleep:OnButtonSetSpawn() + soulslike.set_spawn(true); +end \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/scripts/souslike_gamemode_injector_mcm.script b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/souslike_gamemode_injector_mcm.script new file mode 100644 index 00000000..ebcbee5f --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/souslike_gamemode_injector_mcm.script @@ -0,0 +1,142 @@ +local _Main_Controls = ui_mm_faction_select.UINewGame.Main_Controls +local _Main_CallBacks = ui_mm_faction_select.UINewGame.Main_CallBacks +local _OnStartGame = ui_mm_faction_select.UINewGame.OnStartGame +local _OnCheckSetAzazel = ui_mm_faction_select.UINewGame.OnCheckSetAzazel + +function ui_mm_faction_select.UINewGame.Main_Controls(self, rand) + _Main_Controls(self, rand) + + local function move(ctrl, deltaX, deltaY) + local pos = ctrl:GetWndPos() + ctrl:SetWndPos(vector2():set( pos.x + deltaX ,pos.y + deltaY )) + end + + if efp_utils_mcm then + move(self.ck_azazel_mode_cap, 0, -10) + move(self.ck_azazel_mode, 0, -10) + else + move(self.ck_story_cap, 0, -10) + move(self.ck_story, 0, -10) + move(self.ck_azazel_mode_cap, 0, -15) + move(self.ck_azazel_mode, 0, -15) + move(self.ck_survival_cap, 0, -20) + move(self.ck_survival, 0, -20) + end + + local xml = CScriptXmlInit() + xml:ParseFile ("soulslike_ui_mm_gamemode.xml") + + self.ck_soulslike_mode_cap = xml:InitStatic("main_dialog:options:cap_check_soulslike_mode",self.templ_options) + self.ck_soulslike_mode = xml:InitCheck("main_dialog:options:check_soulslike_mode", self.templ_options) + self:Register(self.ck_soulslike_mode,"check_soulslike_mode") + + if efp_utils_mcm then + move(self.ck_soulslike_mode_cap, 0, 65) + move(self.ck_soulslike_mode, 0, 65) + end + + self.ck_states["ck_soulslike_mode"] = false +end + +function ui_mm_faction_select.UINewGame.Main_CallBacks(self) + _Main_CallBacks(self) + + self:AddCallback("check_soulslike_mode", ui_events.BUTTON_CLICKED, self.OnCheckSetSoulslike, self) + self:AddCallback("check_hardcore", ui_events.BUTTON_CLICKED, self.OnCheckHardcore, self) +end + + +function ui_mm_faction_select.UINewGame.OnStartGame(self) + if (not self.access) then + return + end + + local character_name = self.character_name:GetText() + + if axr_main and axr_main.config and character_name and character_name ~= "" then + local is_soulslike_mode = self.ck_soulslike_mode and self.ck_soulslike_mode:GetCheck() and true or nil + printf('[Soulslike] OnStartGame:is_soulslike_mode='..tostring(is_soulslike_mode)) + axr_main.config:w_value("character_creation", "new_game_soulslike_mode", is_soulslike_mode) + axr_main.config:save() + end + + _OnStartGame(self) +end + +function ui_mm_faction_select.UINewGame.OnCheckSetAzazel(self) + _OnCheckSetAzazel(self) + + if (not self.access) then + return + end + + self.ck_soulslike_mode:SetCheck(false) + self.ck_states["ck_soulslike_mode"] = false +end + +function ui_mm_faction_select.UINewGame:OnCheckHardcore() + if (not self.access) then + return + end + + self.ck_soulslike_mode:SetCheck(false) + self.ck_states["ck_soulslike_mode"] = false +end + +function ui_mm_faction_select.UINewGame:OnCheckSetSoulslike() + if (not self.access) then + return + end + + self.ck_azazel_mode:SetCheck(false) + self.ck_states["ck_azazel_mode"] = false + + self.ck_hardcore:SetCheck(false) + self.ck_states["ck_hardcore"] = false + + self:LoadMap() +end + +local function on_game_load(binder) + local config = axr_main.config + + if not (config) then + printf('[Soulslike] on_game_load:no config') + return + end + + local need_save + + -- Gameplay Options + if (USE_MARSHAL) then + if (config:r_value("character_creation","new_game_soulslike_mode", 1) == true) then + printf('[Soulslike] on_game_load:enable_soulslike_mode=true') + alife_storage_manager.get_state().enable_soulslike_mode = true + config:w_value("character_creation","new_game_soulslike_mode") + need_save = true + end + end + + if (need_save) then + config:save() + end +end + +local function actor_on_first_update() + if not soulslike.IsSoulslikeMode() then + return + end + + local state = alife_storage_manager.get_state() + + if not state.soulslike_mode_initial_spawn_set and level.name() ~= 'fake_start' then + printf('Initial spawn point set to '..level.name()) + soulslike.set_spawn(false) + state.soulslike_mode_initial_spawn_set = true + end +end + +function on_game_start() + RegisterScriptCallback("on_game_load",on_game_load) + RegisterScriptCallback("actor_on_first_update", actor_on_first_update) +end \ No newline at end of file diff --git a/mods/Jabbers Soulslike Gamemode/gamedata/scripts/temp b/mods/Jabbers Soulslike Gamemode/gamedata/scripts/temp new file mode 100644 index 00000000..e69de29b diff --git a/mods/Jabbers Soulslike Gamemode/meta.ini b/mods/Jabbers Soulslike Gamemode/meta.ini new file mode 100644 index 00000000..c83076e8 --- /dev/null +++ b/mods/Jabbers Soulslike Gamemode/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2024.3.31.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=Jabbers_Soulslike_0.28-beta.zip +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=true +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2024-03-31T04:58:38Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/Mutant Loot Chance/gamedata/configs/text/eng/st_cxv_mutant_loot.xml b/mods/Mutant Loot Chance/gamedata/configs/text/eng/st_cxv_mutant_loot.xml index 518b8420..7f6dc3ea 100644 --- a/mods/Mutant Loot Chance/gamedata/configs/text/eng/st_cxv_mutant_loot.xml +++ b/mods/Mutant Loot Chance/gamedata/configs/text/eng/st_cxv_mutant_loot.xml @@ -10,7 +10,7 @@ Enable Mod? - + Turning this on will allow the below settings to take effect. diff --git a/mods/Mutant Loot Chance/gamedata/configs/text/rus/st_cxv_mutant_loot.xml b/mods/Mutant Loot Chance/gamedata/configs/text/rus/st_cxv_mutant_loot.xml new file mode 100644 index 00000000..7280eb16 --- /dev/null +++ b/mods/Mutant Loot Chance/gamedata/configs/text/rus/st_cxv_mutant_loot.xml @@ -0,0 +1,69 @@ + + + + Лут с мутантов + + + Конфигурация лута с мутантов + + + + Включить мод? + + + Включение этого параметра позволит применить приведенные ниже настройки. + + + + Дать все части мутанта? + + + Включение этого параметра всегда будет давать вам все части мутантов в таблице лута, независимо от рандома. + + + Множитель шанса получения частей мутанта + + + Умножает базовый шанс выпадения частей мутанта на это значение (1,2 * 50% = 60%). + + + + Дать мясо со всех мутантов? + + + Включение этого параметра всегда будет давать вам все мясо мутантов в их таблице добычи, независимо от рандома. + + + Множитель шанса на мясо мутанта + + + Умножает базовый шанс выпадения мутантного мяса на это значение (1,2 * 50% = 60%). + + + + Дать все шкуры мутантов? + + + Включение этого параметра всегда будет давать вам все шкуры мутантов в таблице добычи, независимо от рандома. + + + Множитель шанса получить шкуры мутанта + + + Умножает базовый шанс выпадения мутантных шкур на это значение (1,2 * 50% = 60%). + + + + Множитель шанса добычи других частей мутантов + + + Умножает базовый шанс выпадения другой добычи с мутантов, не упомянутой выше, на это значение (1,2 * 50% = 60%). + + + + Гарантированная добыча? + + + Включение этого параметра гарантирует вам наличие хотя бы одного предмета при добыче мутантов (если это возможно). + + diff --git a/mods/Mutant Loot Chance/gamedata/configs/unlocalizers/unlocalize_cxv_mutant_loot.ltx b/mods/Mutant Loot Chance/gamedata/configs/unlocalizers/unlocalize_cxv_mutant_loot.ltx new file mode 100644 index 00000000..04ae913a --- /dev/null +++ b/mods/Mutant Loot Chance/gamedata/configs/unlocalizers/unlocalize_cxv_mutant_loot.ltx @@ -0,0 +1,4 @@ +[ui_mutant_loot] +item_prop_table +clsid_to_section +clsdbg_to_section \ No newline at end of file diff --git a/mods/Mutant Loot Chance/gamedata/scripts/zzzzz_cxv_ui_mutant_loot_monkeypatch.script b/mods/Mutant Loot Chance/gamedata/scripts/zzzzz_cxv_ui_mutant_loot_monkeypatch.script new file mode 100644 index 00000000..b4923b13 --- /dev/null +++ b/mods/Mutant Loot Chance/gamedata/scripts/zzzzz_cxv_ui_mutant_loot_monkeypatch.script @@ -0,0 +1,307 @@ +local ini_mutant = ini_file("items\\settings\\mutant_loot.ltx") +local get_config = zzz_cxv_mutant_loot_mcm.get_config +local mcm_defaults = zzz_cxv_mutant_loot_mcm.defaults +local mcm_check = ui_mcm and zzz_cxv_mutant_loot_mcm + +is_cxv_enabled = get_config("enable_mod") or mcm_defaults["enable_mod"] or false + +hunting_kits = { + "kit_hunt", + "equ_small_military_hunt_pack", + "equ_military_hunt_pack", + "equ_tourist_hunt_pack", +} + +-- Should specific loot be guaranteed? +mutant_part_guaranteed = { + ["i_mutant_part"] = get_config("always_give_parts") or mcm_defaults["always_give_parts"] or false, + ["i_mutant_raw"] = get_config("always_give_meat") or mcm_defaults["always_give_meat"] or false, + ["i_mutant_belt"] = get_config("always_give_pelt") or mcm_defaults["always_give_pelt"] or false, +} + + +-- Chance multiplier solely for mutant parts +mutant_part_chance_mult = { + ["i_mutant_part"] = get_config("mutant_part_chance_mult") or mcm_defaults["mutant_part_chance_mult"] or 1, + ["i_mutant_raw"] = get_config("mutant_meat_chance_mult") or mcm_defaults["mutant_meat_chance_mult"] or 1, + ["i_mutant_belt"] = get_config("mutant_pelt_chance_mult") or mcm_defaults["mutant_pelt_chance_mult"] or 1, +} + +mutant_other_chance_mult = get_config("mutant_other_chance_mult") or mcm_defaults["mutant_other_chance_mult"] or 1 + +function get_part_kind(sec) + local kind = sec and ini_sys:r_string_ex(sec,'kind') or nil + return kind +end + +---------------------------------------------------------------------- +-- Monkeypatching time ----------------------------------------------- +---------------------------------------------------------------------- + +function ui_mutant_loot.loot_mutant(section, clsid, loot_table, npc, dont_create, victim) -- Prepare mutant loot + + npc = npc or db.actor + local clsid = clsid or obj and obj:clsid() + local kind = section and ini_sys:r_string_ex(section,"kind") or "unknown" + if not (clsid) then + return + end + + local loot, sec, count, chance + local str_explode = str_explode + local mutant = ui_mutant_loot.clsdbg_to_section[kind] or ui_mutant_loot.clsid_to_section[clsid] + local was_loot_given = false + local failsafe_loot = get_config("failsafe_loot") or mcm_defaults["failsafe_loot"] or false + + if victim:section() == "gigant_jumper" then + mutant = "gigant" + end + + local possible_items = utils_data.collect_section(ini_mutant, mutant) + + local sim = alife() + local npc_id = npc and npc:id() + local npc_pos = npc and npc:position() + local npc_lvl_id = npc and npc:level_vertex_id() + local npc_game_id = npc and npc:game_vertex_id() + + -- Spawn items on NPC if he looted the mutant + for i=1,#possible_items do + loot = str_explode(possible_items[i],",") + if (loot and loot[1] and loot[2]) then + if (not loot[3]) then + loot[3] = 1 + end + + sec = loot[1] + count = tonumber(loot[2]) + + if is_cxv_enabled then + part_kind = get_part_kind(sec) + + if part_kind and mutant_part_guaranteed[part_kind] == true then + printf("[CXV Mutant Loot] %s will be guaranteed (%s)", sec, part_kind) + chance = 1 + elseif part_kind and mutant_part_chance_mult[part_kind] then + printf("[CXV Mutant Loot] %s will have its chances increased by %sx (%s)", sec, mutant_part_chance_mult[part_kind], part_kind) + chance = (loot[3] and (loot[3] * mutant_part_chance_mult[part_kind])) or 1 + else + printf("[CXV Mutant Loot] %s will have its chances increased by %sx (%s)", sec, mutant_other_chance_mult, part_kind) + chance = (loot[3] and (loot[3] * mutant_other_chance_mult)) or 1 + end + else + printf("[CXV Mutant Loot] Mutant Loot MCM not enabled. Defaulting to normal drop chances...") + chance = loot[3] or 1 + end + + for i=1,count do + if (math.random() <= tonumber(chance)) then + was_loot_given = true + -- In case we don't want to bother with loot table + local se_obj + if (not dont_create) then + se_obj = alife_create_item(sec, npc, ui_mutant_loot.item_prop_table) + end + + -- Fill loot table if needed + if (loot_table) then + local sec_d, uses = utils_item.get_defined_uses(sec) + if (not loot_table[sec_d]) then + loot_table[sec_d] = {} + end + local c = loot_table[sec_d].count + c = c and (c + 1) or 1 + loot_table[sec_d].count = c + if se_obj then + loot_table[sec_d][c] = se_obj.id + end + --printf("loot_mutant") + end + + end + end + end + end + + if not was_loot_given and is_cxv_enabled and failsafe_loot then + printf("[CXV Mutant Loot] No loot was given. Attempting loot failsafe...") + loot = str_explode(possible_items[math.random(1,#possible_items)],",") + if (loot and loot[1] and loot[2]) then + if (not loot[3]) then + loot[3] = 1 + end + + sec = loot[1] + count = tonumber(loot[2]) + + if (not dont_create) then + se_obj = alife_create_item(sec, npc, ui_mutant_loot.item_prop_table) + end + + if (loot_table) then + local sec_d, uses = utils_item.get_defined_uses(sec) + if (not loot_table[sec_d]) then + loot_table[sec_d] = {} + end + local c = loot_table[sec_d].count + c = c and (c + 1) or 1 + loot_table[sec_d].count = c + if se_obj then + loot_table[sec_d][c] = se_obj.id + end + end + end + end + + + -- Unlock relevant mutant article in guide. + if mutant and npc and (npc:id() == AC_ID) then + SendScriptCallback("actor_on_interaction", "mutants", nil, mutant) + end + + SendScriptCallback("monster_on_loot_init",victim,loot_table) +end + +function on_option_change(mcm) + if mcm then + is_cxv_enabled = get_config("enable_mod") or mcm_defaults["enable_mod"] or false + + mutant_part_guaranteed = { + ["i_mutant_part"] = get_config("always_give_parts") or mcm_defaults["always_give_parts"] or false, + ["i_mutant_raw"] = get_config("always_give_meat") or mcm_defaults["always_give_meat"] or false, + ["i_mutant_belt"] = get_config("always_give_pelt") or mcm_defaults["always_give_pelt"] or false, + } + + -- Chance multiplier solely for mutant parts + mutant_part_chance_mult = { + ["i_mutant_part"] = get_config("mutant_part_chance_mult") or mcm_defaults["mutant_part_chance_mult"] or 1, + ["i_mutant_raw"] = get_config("mutant_meat_chance_mult") or mcm_defaults["mutant_meat_chance_mult"] or 1, + ["i_mutant_belt"] = get_config("mutant_pelt_chance_mult") or mcm_defaults["mutant_pelt_chance_mult"] or 1, + } + + mutant_other_chance_mult = get_config("mutant_other_chance_mult") or mcm_defaults["mutant_other_chance_mult"] or 1 + end +end + +function on_game_start() + RegisterScriptCallback("on_option_change",on_option_change) + on_option_change(mcm_check) +end + +---------------------------------------------------------------------- + +ui_mutant_loot.UIMutantLoot.Loot = function(self, loot_all) + local obj_mutant = level.object_by_id(self.id) + if (not obj_mutant) then + self:Close() + return + end + + local is_looted + local sim = alife() + local bonus_part_chance = 0 + + -- Checking in case player has Hunting Backpacks Expanded + local is_huntkit + local needs_equipped_hk = ui_options.get("gameplay/general/need_equipped_hkit") + + if needs_equipped_hk then + local backpack = db.actor:item_in_slot(13) + if backpack then + backpack_sec = backpack:section() + bonus_part_chance = ini_sys:r_float_ex(backpack_sec,"bonus_mutant_part_chance") or 0 + if bonus_part_chance > 0 then + is_huntkit = true + end + end + end + + -- Keeping the "Hunting Kit Equipped" option functional + if not is_huntkit and not needs_equipped_hk then + + -- Checking for all types of Hunting Kits + for i=1,#hunting_kits do + if db.actor:object(hunting_kits[i]) then + -- Checking in case a backpack with higher part chance is found (in case people add their own backpacks to the list) + local temp_chance = ini_sys:r_float_ex(hunting_kits[i],"bonus_mutant_part_chance") or 0 + if temp_chance > bonus_part_chance then + bonus_part_chance = temp_chance + printf("[CXV Mutant Loot] New bonus mutant part chance (%s%) from %s", bonus_part_chance, hunting_kits[i]) + end + end + end + + end + + -- Spawn selected items, clean from loot table + if loot_all then + local tbl = self.loot -- temp + for sec,t in pairs(tbl) do + for i=1,t.count do + is_looted = true + item_knife.degradate() + + alife_create_item(sec, db.actor, ui_mutant_loot.item_prop_table) + + if is_huntkit and (math.random(100) < bonus_part_chance) then + alife_create_item(sec, db.actor, ui_mutant_loot.item_prop_table) + end + self.loot[sec].count = self.loot[sec].count - 1 + if (self.loot[sec].count == 0) then + self.loot[sec] = nil + end + end + end + else + for idx,ci in pairs(self.CC.cell) do + if ci.flags.selected then + local sec = ci.section + is_looted = true + item_knife.degradate() + + alife_create_item(sec, db.actor, ui_mutant_loot.item_prop_table) + + if is_huntkit and (math.random(100) < bonus_part_chance) then + alife_create_item(sec, db.actor, ui_mutant_loot.item_prop_table) + end + + self.loot[sec].count = self.loot[sec].count - 1 + if self.loot[sec].count == 0 then + self.loot[sec] = nil + end + end + end + end + + -- If no item is looted, don't proceed + if (not is_looted) then + return + end + + -- Animation boost if player has Hunter Kit or Well Dressed Achievement + if (actor_effects) then + local boost = (game_achievements.has_achievement("well_dressed") and 1 or 0) + (is_huntkit and 1 or 0) + if (boost == 2) then + actor_effects.play_item_fx("mutant_looting_boost_2") + elseif (boost == 1) then + actor_effects.play_item_fx("mutant_looting_boost_1") + else + actor_effects.play_item_fx("mutant_looting") + end + end + xr_sound.set_sound_play(AC_ID,"inv_mutant_loot_animal") + + -- Increat field dressings stat + game_statistics.increment_statistic("field_dressings") + + -- Mutant post-state + save_var(obj_mutant,"loot",self.loot) + local is_more_loot = not is_empty(self.loot) + + -- Refill loot list if there's loot left + if ((not actor_effects.is_animations_on()) and is_more_loot) then + self:FillList() + else + self:Close() + end +end \ No newline at end of file diff --git a/mods/Mutant Loot Chance/meta.ini b/mods/Mutant Loot Chance/meta.ini index 9fa8dcff..5b2ffa7a 100644 --- a/mods/Mutant Loot Chance/meta.ini +++ b/mods/Mutant Loot Chance/meta.ini @@ -1,11 +1,11 @@ [General] gameName=stalkeranomaly modid=0 -version=d2024.3.30.0 +version=d2024.4.1.0 newestVersion= category="-1," nexusFileStatus=1 -installationFile=Mutant_Loot_Chance_MCM_Config.1.zip +installationFile=Mutant_Loot_Config.zip repository=Nexus ignoredVersion= comments= diff --git a/mods/Mutant Loot Chance_backup/gamedata/configs/text/eng/st_cxv_mutant_loot.xml b/mods/Mutant Loot Chance_backup/gamedata/configs/text/eng/st_cxv_mutant_loot.xml new file mode 100644 index 00000000..518b8420 --- /dev/null +++ b/mods/Mutant Loot Chance_backup/gamedata/configs/text/eng/st_cxv_mutant_loot.xml @@ -0,0 +1,71 @@ + + + + Mutant Loot + + + Mutant Loot Configuration + + + + Enable Mod? + + + Turning this on will allow the below settings to take effect. + + + + Give All Mutant Parts? + + + Turning this on will always give you all mutant parts in their loot table, regardless of chance. + + + Mutant Parts Chance Multiplier + + + Multiplies the base drop chance of mutant parts by this value (1.2 * 50% = 60%). + + + + Give All Mutant Meat? + + + Turning this on will always give you all mutant meat in their loot table, regardless of chance. + + + Mutant Meat Chance Multiplier + + + Multiplies the base drop chance of mutant meat by this value (1.2 * 50% = 60%). + + + + Give All Mutant Pelts? + + + Turning this on will always give you all mutant pelts in their loot table, regardless of chance. + + + Mutant Pelts Chance Multiplier + + + Multiplies the base drop chance of mutant pelts by this value (1.2 * 50% = 60%). + + + + Other Mutant Loot Chance Multiplier + + + Multiplies the base drop chance of other mutant loot not mentioned above by this value (1.2 * 50% = 60%). + + + + Failsafe Loot? + + + Turning this on will guarantee you at least one item when looting mutants (if possible). + + + + diff --git a/mods/Mutant Loot Chance/gamedata/scripts/ui_mutant_loot.script b/mods/Mutant Loot Chance_backup/gamedata/scripts/ui_mutant_loot.script similarity index 100% rename from mods/Mutant Loot Chance/gamedata/scripts/ui_mutant_loot.script rename to mods/Mutant Loot Chance_backup/gamedata/scripts/ui_mutant_loot.script diff --git a/mods/Mutant Loot Chance_backup/gamedata/scripts/zzz_cxv_mutant_loot_mcm.script b/mods/Mutant Loot Chance_backup/gamedata/scripts/zzz_cxv_mutant_loot_mcm.script new file mode 100644 index 00000000..ebe0ac38 --- /dev/null +++ b/mods/Mutant Loot Chance_backup/gamedata/scripts/zzz_cxv_mutant_loot_mcm.script @@ -0,0 +1,33 @@ +defaults = { + ["enable_mod"] = false, + ["mutant_part_chance_mult"] = 1, + ["mutant_meat_chance_mult"] = 1, + ["mutant_pelt_chance_mult"] = 1, + ["mutant_other_chance_mult"] = 1, + ["always_give_parts"] = false, + ["always_give_meat"] = false, + ["always_give_pelt"] = false, + ["failsafe_loot"] = false, +} + +function get_config(key) + if ui_mcm then return ui_mcm.get("mutant_loot_config/"..key) else return defaults[key] end +end + +function on_mcm_load() + local options = { + id = "mutant_loot_config", sh = true, gr = { + { id = "title", type = "slide", link = "ui_options_slider_player", text = "ui_mcm_mutant_loot_config_title", size = { 512, 50 }, spacing = 20 }, + {id = "enable_mod", type = "check", val = 1, def = false}, + { id = "always_give_parts", type = "check", val = 1, def = false}, + { id = "mutant_part_chance_mult", type = "track", val = 2, min = 1, max = 5, step = 0.1, def = 1 }, + { id = "always_give_meat", type = "check", val = 1, def = false}, + { id = "mutant_meat_chance_mult", type = "track", val = 2, min = 1, max = 5, step = 0.1, def = 1 }, + { id = "always_give_pelt", type = "check", val = 1, def = false}, + { id = "mutant_pelt_chance_mult", type = "track", val = 2, min = 1, max = 5, step = 0.1, def = 1 }, + { id = "mutant_other_chance_mult", type = "track", val = 2, min = 1, max = 3, step = 0.1, def = 1 }, + {id = "failsafe_loot", type = "check", val = 1, def = false}, + } + } + return options +end \ No newline at end of file diff --git a/mods/Mutant Loot Chance_backup/meta.ini b/mods/Mutant Loot Chance_backup/meta.ini new file mode 100644 index 00000000..9fa8dcff --- /dev/null +++ b/mods/Mutant Loot Chance_backup/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2024.3.30.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=Mutant_Loot_Chance_MCM_Config.1.zip +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=true +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2024-03-30T09:03:17Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/Personal Adjustable Waypoint/gamedata/configs/text/eng/catsy_waypoints.xml b/mods/Personal Adjustable Waypoint/gamedata/configs/text/eng/catsy_waypoints.xml index 5db72fa3..3a653661 100644 --- a/mods/Personal Adjustable Waypoint/gamedata/configs/text/eng/catsy_waypoints.xml +++ b/mods/Personal Adjustable Waypoint/gamedata/configs/text/eng/catsy_waypoints.xml @@ -1686,4 +1686,23 @@ This message won't bother you again. Good hunting, %s. Use Object Name + + + + Enable Autotag for the following devices: + + + + PDA 1.0 + + + PDA 2.0 + + + PDA 3.1 + + + Milspec PDA (requires addon) + + \ No newline at end of file diff --git a/mods/Personal Adjustable Waypoint/gamedata/configs/text/rus/catsy_waypoints.xml b/mods/Personal Adjustable Waypoint/gamedata/configs/text/rus/catsy_waypoints.xml index 1b962e16..35b2fd5e 100644 --- a/mods/Personal Adjustable Waypoint/gamedata/configs/text/rus/catsy_waypoints.xml +++ b/mods/Personal Adjustable Waypoint/gamedata/configs/text/rus/catsy_waypoints.xml @@ -1683,5 +1683,24 @@ Используйте название объекта - + + + + + Включите автотег для следующих устройств: + + + + PDA 1.0 + + + PDA 2.0 + + + PDA 3.1 + + + Milspec PDA (требуется этот аддон) + + \ No newline at end of file diff --git a/mods/Personal Adjustable Waypoint/gamedata/scripts/catsy_paw_mcm.script b/mods/Personal Adjustable Waypoint/gamedata/scripts/catsy_paw_mcm.script index f7a065af..1fb73bca 100644 --- a/mods/Personal Adjustable Waypoint/gamedata/scripts/catsy_paw_mcm.script +++ b/mods/Personal Adjustable Waypoint/gamedata/scripts/catsy_paw_mcm.script @@ -33,10 +33,10 @@ local pawmenu_path = "ui_mcm_pawsys_pawmenu_" local actions_ini = ini_file_ex("scripts\\paw\\menu_actions.ltx") local actions_ltx = actions_ini:get_sections(true) local load_failed = false -local load_error_text1 = {id = "load_error1", type = "desc", text = "st_paw_texture_load_error1"} -local load_error_text2 = {id = "load_error2", type = "desc", text = "st_paw_texture_load_error2"} +local divider = {id = "divider", type= "line"} +local load_error_text1 = {id = "load_error1", type= "desc", text = "st_paw_texture_load_error1"} +local load_error_text2 = {id = "load_error2", type= "desc", text = "st_paw_texture_load_error2"} local load_error_text_block = {load_error_text1,load_error_text2,divider} -local divider = {id = "divider", type = "line"} local action_codes = {} local action = {} local dynamic_faves = {} @@ -219,30 +219,38 @@ function populate_autotag_menus() dl("populate_autotag_menus called") local gr = { - {id = "reticle_header", type= "image", link = "ui_paw_emptytex", size= {512,170}, + {id = "reticle_header", type= "image", link = "ui_paw_emptytex", size= {512,170}, ui_hook_functor = {catsy_paw_mcm.mcm_init_header_text_block}, }, - {id = "reticle_mustzoom", type = "check", val = 1, def = true}, - {id = "pin_auto_visible", type = "check", val = 1, def = true}, - {id = "reticle_mode", type = "list", val = 2, def = 2, + {id = "reticle_mustzoom", type= "check", val = 1, def = true}, + {id = "pin_auto_visible", type= "check", val = 1, def = true}, + {id = "reticle_mode", type= "list", val = 2, def = 2, content = { {4,"pawsys_cmenu_all"}, {2,"pawsys_cmenu_cart"}, {0,"pawsys_cmenu_off"}, } }, - --{id = "show_reticle", type = "check", val = 1, def = true}, -- not implemented yet - {id = "reticle_alpha", type = "track", val = 2, min = 1, max = 255, step = 1, def = 120}, - {id = "ret_fade_attack_time", type = "input", val = 2, min = 1, max = 5000, def = 150}, - {id = "ret_fade_decay_time", type = "input", val = 2, min = 1, max = 5000, def = 250}, - {id = "autotag_header", type = "image", link = "ui_paw_emptytex", size = {512,50}, + --{id = "show_reticle", type= "check", val = 1, def = true}, -- not implemented yet + {id = "reticle_alpha", type= "track", val = 2, min = 1, max = 255, step = 1, def = 120}, + {id = "ret_fade_attack_time", type= "input", val = 2, min = 1, max = 5000, def = 150}, + {id = "ret_fade_decay_time", type= "input", val = 2, min = 1, max = 5000, def = 250}, + {id = "autotag_header", type= "image", link = "ui_paw_emptytex", size = {512,50}, ui_hook_functor = {catsy_paw_mcm.mcm_init_header_text_block}, }, - {id = "enable_autotag", type = "check", val = 1, def = false}, - {id = "manual_smart_pins", type = "check", val = 1, def = true}, - {id = "autotag_persistence", type = "check", val = 1, def = false}, - {id = "autotag_lifetime", type = "track", val = 2, min = 0, max = 600, step = 1, def = 0}, + {id = "enable_autotag", type= "check", val = 1, def = false}, + {id = "manual_smart_pins", type= "check", val = 1, def = true}, + {id = "autotag_persistence", type= "check", val = 1, def = false}, + {id = "autotag_lifetime", type= "track", val = 2, min = 0, max = 600, step = 1, def = 0}, + --[[ + divider, + {id = "headertxt", type= "desc", clr = {255,255,255,0}, text = "ui_mcm_pawsys_pawret_autotag_pdas"}, + {id = "device_pda_1", type= "check", val = 1, def = true}, + {id = "device_pda_2", type= "check", val = 1, def = true}, + {id = "device_pda_3", type= "check", val = 1, def = true}, + {id = "device_pda_milspec", type= "check", val = 1, def = true}, + --]] } if load_failed then @@ -256,8 +264,8 @@ function populate_autotag_menus() for tag,defs in spairs(paw.smart_pins) do dl("populate_autotag_menus adding entry for %s (default %s)",tag,defs.pin) enable_opt = { - id = tag.."_enable", - type = "check", + id = tag.."_enable", + type= "check", val = 1, def = defs.enabled, --on_selection_functor = {catsy_paw_mcm.mcm_on_value_select}, @@ -266,7 +274,7 @@ function populate_autotag_menus() local def = defs.pin or icon_sets["npcs"].default menu_opt = { id = tag, - type = "list", + type= "list", val = 0, def = def, ui_hook_functor = {catsy_paw_mcm.init_mcm_set_ind}, @@ -306,7 +314,7 @@ function populate_set_menus() {id = "indicator", type= "image", ui_hook_functor={catsy_paw_mcm.init_mcm_header_ind}}, {id = "pin_icon_group", type= "list", on_selection_functor = {catsy_paw_mcm.mcm_on_value_select}, val = 0, def = "pins", content = populate_set_list()}, {id = "divider", type= "line"}, - --{id = "fave_recent", type = "list", val = 2, def = 5, content = recfaves}, + --{id = "fave_recent", type= "list", val = 2, def = 5, content = recfaves}, } if load_failed then @@ -319,7 +327,7 @@ function populate_set_menus() local newentry = { id = poi.."faves", - type = "list", + type= "list", val = 0, def = icon_sets["faves"].default, ui_hook_functor = {catsy_paw_mcm.init_mcm_set_ind}, @@ -333,7 +341,7 @@ function populate_set_menus() local ig = icon_sets[g] newentry = { id = poi..g, - type = "list", + type= "list", val = 0, def = ig.default, ui_hook_functor = {catsy_paw_mcm.init_mcm_set_ind}, @@ -344,17 +352,17 @@ function populate_set_menus() table.insert(gr,newentry) end end - table.insert(gr,{id = "divider", type = "line"}) + table.insert(gr,{id = "divider", type= "line"}) table.insert(gr,{id = "header", type= "slide", link= "ui_paw_menuslide_badges", size= {512,50}, spacing= 20}) - table.insert(gr,{id = "patch_res", type = "list", val = 0, def = "badge", + table.insert(gr,{id = "patch_res", type= "list", val = 0, def = "badge", content = { {"badge","pawsys_cfg_badge_res"}, {"badge_hr","pawsys_cfg_badge_hr_res"}, {"badge_uhr","pawsys_cfg_badge_uhr_res"}, } }) - table.insert(gr,{id = "milpda_body_icon", type = "list", val = 0, def = "bodyoff", + table.insert(gr,{id = "milpda_body_icon", type= "list", val = 0, def = "bodyoff", content = { {"off","pawsys_cfg_bodyoff"}, {"fac","pawsys_cfg_bodyfac"}, @@ -362,10 +370,10 @@ function populate_set_menus() } }) --[[ - table.insert(gr,{id = "use_custom_backpack_icon", type = "check", val = 1, def = false}) + table.insert(gr,{id = "use_custom_backpack_icon", type= "check", val = 1, def = false}) table.insert(gr,{ id = "custom_backpack_icon", - type = "list", + type= "list", val = 0, def = "stash_backpack", ui_hook_functor = {catsy_paw_mcm.init_mcm_set_ind}, @@ -373,8 +381,8 @@ function populate_set_menus() content = populate_icon_list("faves") }) --]] - table.insert(gr,{id = "use_custom_pin_icon", type = "check", val = 1, def = false}) - table.insert(gr,{id = "custom_pin_icon", type = "input", val = 0, def = "user_defined"}) + table.insert(gr,{id = "use_custom_pin_icon", type= "check", val = 1, def = false}) + table.insert(gr,{id = "custom_pin_icon", type= "input", val = 0, def = "user_defined"}) vl("results for populate_set_menus:") if verbose then for k,v in pairs(gr) do @@ -405,12 +413,12 @@ function on_mcm_load() load_failed = not (paw and paw.load_me()) aspect_ratio = get_current_aspect_ratio() - _ = load_icoset_state() + load_icoset_state() local pawgen = { {id = "header", type= "slide", link= "ui_paw_menuslide_main", size= {512,50}, spacing= 20}, - {id = "wp_hud_icon_enabled", type = "check", val = 1, def = true}, - {id = "show_dist_wp", type = "list", val = 2, def = 4, + {id = "wp_hud_icon_enabled", type= "check", val = 1, def = true}, + {id = "show_dist_wp", type= "list", val = 2, def = 4, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -418,7 +426,7 @@ function on_mcm_load() {0,"pawsys_cmenu_off"}, } }, - {id = "show_dist_pins", type = "list", val = 2, def = 4, + {id = "show_dist_pins", type= "list", val = 2, def = 4, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -426,7 +434,7 @@ function on_mcm_load() {0,"pawsys_cmenu_off"}, } }, - {id = "show_hint_pins", type = "list", val = 2, def = 2, + {id = "show_hint_pins", type= "list", val = 2, def = 2, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -456,19 +464,19 @@ function on_mcm_load() {id = "modbin", type= "desc", text = "ui_mcm_paw_modded_binaries"}, } if load_failed then - table.insert(pawgen,2,{id = "load_header1", type = "desc", text = "st_paw_texture_load_error_mcmhead1", clr = {255,255,0,0}, ui_hook_functor = {catsy_paw_mcm.mcm_init_load_error_block}}) - table.insert(pawgen,3,{id = "load_header2", type = "desc", text = "st_paw_texture_load_error_mcmhead2", clr = {255,255,0,0}}) + table.insert(pawgen,2,{id = "load_header1", type= "desc", text = "st_paw_texture_load_error_mcmhead1", clr = {255,255,0,0}, ui_hook_functor = {catsy_paw_mcm.mcm_init_load_error_block}}) + table.insert(pawgen,3,{id = "load_header2", type= "desc", text = "st_paw_texture_load_error_mcmhead2", clr = {255,255,0,0}}) table.insert(pawgen,4,load_error_text1) table.insert(pawgen,5,load_error_text2) table.insert(pawgen,6,{id = "fix_load_order", type= "image", link = "ui_paw_mcm_fix_mo2_load_order", size= {575,50}, ui_hook_functor = {catsy_paw_mcm.mcm_init_load_error_block}}) - table.insert(pawgen,7,{id = "disable_load_warning", type = "check", val = 1, def = false}) + table.insert(pawgen,7,{id = "disable_load_warning", type= "check", val = 1, def = false}) table.insert(pawgen,8,divider) else - table.insert(pawgen,2,{id = "pawgen_header", type = "image", link = "ui_paw_emptytex", size = {512,160}, + table.insert(pawgen,2,{id = "pawgen_header", type= "image", link = "ui_paw_emptytex", size = {512,160}, ui_hook_functor = {catsy_paw_mcm.mcm_init_header_text_block}, }) - table.insert(pawgen,3,{id = "enabled", type = "check", val = 1, def = true}) + table.insert(pawgen,3,{id = "enabled", type= "check", val = 1, def = true}) end op = { id = "pawsys", gr={ @@ -508,7 +516,7 @@ function on_mcm_load() } }, - {id = "preview_aspect", type = "list", val = 0, def = aspect_ratio, + {id = "preview_aspect", type= "list", val = 0, def = aspect_ratio, on_selection_functor = {catsy_paw_mcm.mcm_on_value_select}, content = { {"16_9","paw_aspect_16_9"}, @@ -523,33 +531,33 @@ function on_mcm_load() ui_hook_functor = {catsy_paw_mcm.init_mcm_pos_preview}, }, - {id = "custompos", type = "check", val = 1, def = false, + {id = "custompos", type= "check", val = 1, def = false, --ui_hook_functor = {catsy_paw_mcm.mcm_move_custom_pos_elements}, on_selection_functor = {catsy_paw_mcm.mcm_on_value_select}, }, - {id = "pos_x", type = "input", val = 2, min = 0, max = 1024, def = 491, + {id = "pos_x", type= "input", val = 2, min = 0, max = 1024, def = 491, --ui_hook_functor = {catsy_paw_mcm.mcm_move_custom_pos_elements}, on_selection_functor = {catsy_paw_mcm.mcm_on_value_select}, }, - {id = "pos_y", type = "input", val = 2, min = 0, max = 768, def = 670, + {id = "pos_y", type= "input", val = 2, min = 0, max = 768, def = 670, --ui_hook_functor = {catsy_paw_mcm.mcm_move_custom_pos_elements}, on_selection_functor = {catsy_paw_mcm.mcm_on_value_select}, }, divider, - {id = "themedesc", type = "desc", text = "ui_mcm_themes_list"}, + {id = "themedesc", type= "desc", text = "ui_mcm_themes_list"}, - {id = "themelist", type = "desc", text = "ui_mcm_themes_classicauto"}, - {id = "themelist", type = "desc", text = "ui_mcm_themes_classic"}, - {id = "themelist", type = "desc", text = "ui_mcm_themes_vertright"}, - {id = "themelist", type = "desc", text = "ui_mcm_themes_vertleft"}, - {id = "themelist", type = "desc", text = "ui_mcm_themes_gamma_left"}, - {id = "themelist", type = "desc", text = "ui_mcm_themes_gamma_right"}, - {id = "themelist", type = "desc", text = "ui_mcm_themes_minimal_h"}, - {id = "themelist", type = "desc", text = "ui_mcm_themes_minimal_v"}, - {id = "themelist", type = "desc", text = "ui_mcm_themes_minicom"}, - {id = "themelist", type = "desc", text = "ui_mcm_themes_compact_noui"}, + {id = "themelist", type= "desc", text = "ui_mcm_themes_classicauto"}, + {id = "themelist", type= "desc", text = "ui_mcm_themes_classic"}, + {id = "themelist", type= "desc", text = "ui_mcm_themes_vertright"}, + {id = "themelist", type= "desc", text = "ui_mcm_themes_vertleft"}, + {id = "themelist", type= "desc", text = "ui_mcm_themes_gamma_left"}, + {id = "themelist", type= "desc", text = "ui_mcm_themes_gamma_right"}, + {id = "themelist", type= "desc", text = "ui_mcm_themes_minimal_h"}, + {id = "themelist", type= "desc", text = "ui_mcm_themes_minimal_v"}, + {id = "themelist", type= "desc", text = "ui_mcm_themes_minicom"}, + {id = "themelist", type= "desc", text = "ui_mcm_themes_compact_noui"}, divider, }, }, @@ -557,28 +565,28 @@ function on_mcm_load() -- KEYBIND SETTINGS { id = "pawbinds", sh=true, gr={ {id = "header", type= "slide", link= "ui_paw_menuslide_controls", size= {512,50}, borderless= true, spacing= 20}, - {id = "featurehead", type = "desc", clr = {255,255,255,0}, text = "ui_mcm_paw_cartmode_head"}, - {id = "featuredesc", type = "desc", text = "ui_mcm_paw_cartmode_desc"}, + {id = "featurehead", type= "desc", clr = {255,255,255,0}, text = "ui_mcm_paw_cartmode_head"}, + {id = "featuredesc", type= "desc", text = "ui_mcm_paw_cartmode_desc"}, - {id = "bind_cartmode", type = "key_bind", val = 2, def = DIK_keys.DIK_SLASH }, - {id = "modk_cartmode", type = ui_mcm.kb_mod_radio, val = 2, def = 0, hint = "mcm_kb_modifier", + {id = "bind_cartmode", type= "key_bind", val = 2, def = DIK_keys.DIK_SLASH }, + {id = "modk_cartmode", type= ui_mcm.kb_mod_radio, val = 2, def = 0, hint = "mcm_kb_modifier", content = { {0,"mcm_kb_mod_none"}, {1,"mcm_kb_mod_shift"}, {2,"mcm_kb_mod_ctrl"}, {3,"mcm_kb_mod_alt"} }}, - {id = "cartmode_toggle", type = "check", val = 1, def = true}, - {id = "cartmode_unfade", type = "check", val = 1, def = true}, - {id = "cart_shows_smarts", type = "check", val = 1, def = false}, + {id = "cartmode_toggle", type= "check", val = 1, def = true}, + {id = "cartmode_unfade", type= "check", val = 1, def = true}, + {id = "cart_shows_smarts", type= "check", val = 1, def = false}, divider, - {id = "featurehead", type = "desc", clr = {255,255,255,0}, text = "ui_mcm_paw_crosshair_target_head"}, - {id = "featuredesc", type = "desc", text = "ui_mcm_paw_crosshair_target_desc"}, + {id = "featurehead", type= "desc", clr = {255,255,255,0}, text = "ui_mcm_paw_crosshair_target_head"}, + {id = "featuredesc", type= "desc", text = "ui_mcm_paw_crosshair_target_desc"}, - {id = "bind_wp_target_obj", type = "key_bind", val = 2, def = DIK_keys.DIK_SEMICOLON }, - {id = "modk_wp_target_obj", type = ui_mcm.kb_mod_radio, val = 2, def = 3, hint = "mcm_kb_modifier", + {id = "bind_wp_target_obj", type= "key_bind", val = 2, def = DIK_keys.DIK_SEMICOLON }, + {id = "modk_wp_target_obj", type= ui_mcm.kb_mod_radio, val = 2, def = 3, hint = "mcm_kb_modifier", content = { {0,"mcm_kb_mod_none"}, {1,"mcm_kb_mod_shift"}, @@ -586,8 +594,8 @@ function on_mcm_load() {3,"mcm_kb_mod_alt"} }}, - {id = "bind_pin_target_obj", type = "key_bind", val = 2, def = DIK_keys.DIK_APOSTROPHE }, - {id = "modk_pin_target_obj", type = ui_mcm.kb_mod_radio, val = 2, def = 3, hint = "mcm_kb_modifier", + {id = "bind_pin_target_obj", type= "key_bind", val = 2, def = DIK_keys.DIK_APOSTROPHE }, + {id = "modk_pin_target_obj", type= ui_mcm.kb_mod_radio, val = 2, def = 3, hint = "mcm_kb_modifier", content = { {0,"mcm_kb_mod_none"}, {1,"mcm_kb_mod_shift"}, @@ -597,18 +605,18 @@ function on_mcm_load() divider, - {id = "featurehead", type = "desc", clr = {255,255,255,0}, text = "ui_mcm_paw_generalbinds_head"}, + {id = "featurehead", type= "desc", clr = {255,255,255,0}, text = "ui_mcm_paw_generalbinds_head"}, - {id = "bind_wptoggle", type = "key_bind", val = 2, def = DIK_keys.DIK_SEMICOLON }, - {id = "modk_wptoggle", type = ui_mcm.kb_mod_radio, val = 2, def = 0, hint = "mcm_kb_modifier", + {id = "bind_wptoggle", type= "key_bind", val = 2, def = DIK_keys.DIK_SEMICOLON }, + {id = "modk_wptoggle", type= ui_mcm.kb_mod_radio, val = 2, def = 0, hint = "mcm_kb_modifier", content = { {0,"mcm_kb_mod_none"}, {1,"mcm_kb_mod_shift"}, {2,"mcm_kb_mod_ctrl"}, {3,"mcm_kb_mod_alt"} }}, - {id = "bind_quickpin", type = "key_bind", val = 2, def = DIK_keys.DIK_APOSTROPHE }, - {id = "modk_quickpin", type = ui_mcm.kb_mod_radio, val = 2, def = 0, hint = "mcm_kb_modifier", + {id = "bind_quickpin", type= "key_bind", val = 2, def = DIK_keys.DIK_APOSTROPHE }, + {id = "modk_quickpin", type= ui_mcm.kb_mod_radio, val = 2, def = 0, hint = "mcm_kb_modifier", content = { {0,"mcm_kb_mod_none"}, {1,"mcm_kb_mod_shift"}, @@ -618,8 +626,8 @@ function on_mcm_load() divider, - {id = "bind_set_next", type = "key_bind", val = 2, def = 52 }, - {id = "modk_set_next", type = ui_mcm.kb_mod_radio, val = 2, def = 3, hint = "mcm_kb_modifier", + {id = "bind_set_next", type= "key_bind", val = 2, def = 52 }, + {id = "modk_set_next", type= ui_mcm.kb_mod_radio, val = 2, def = 3, hint = "mcm_kb_modifier", content = { {0,"mcm_kb_mod_none"}, {1,"mcm_kb_mod_shift"}, @@ -627,24 +635,24 @@ function on_mcm_load() {3,"mcm_kb_mod_alt"} }}, - {id = "bind_set_prev", type = "key_bind", val = 2, def = 51 }, - {id = "modk_set_prev", type = ui_mcm.kb_mod_radio, val = 2, def = 3, hint = "mcm_kb_modifier", + {id = "bind_set_prev", type= "key_bind", val = 2, def = 51 }, + {id = "modk_set_prev", type= ui_mcm.kb_mod_radio, val = 2, def = 3, hint = "mcm_kb_modifier", content = { {0,"mcm_kb_mod_none"}, {1,"mcm_kb_mod_shift"}, {2,"mcm_kb_mod_ctrl"}, {3,"mcm_kb_mod_alt"} }}, - {id = "bind_ico_next", type = "key_bind", val = 2, def = 52 }, - {id = "modk_ico_next", type = ui_mcm.kb_mod_radio, val = 2, def = 0, hint = "mcm_kb_modifier", + {id = "bind_ico_next", type= "key_bind", val = 2, def = 52 }, + {id = "modk_ico_next", type= ui_mcm.kb_mod_radio, val = 2, def = 0, hint = "mcm_kb_modifier", content = { {0,"mcm_kb_mod_none"}, {1,"mcm_kb_mod_shift"}, {2,"mcm_kb_mod_ctrl"}, {3,"mcm_kb_mod_alt"} }}, - {id = "bind_ico_prev", type = "key_bind", val = 2, def = 51 }, - {id = "modk_ico_prev", type = ui_mcm.kb_mod_radio, val = 2, def = 0, hint = "mcm_kb_modifier", + {id = "bind_ico_prev", type= "key_bind", val = 2, def = 51 }, + {id = "modk_ico_prev", type= ui_mcm.kb_mod_radio, val = 2, def = 0, hint = "mcm_kb_modifier", content = { {0,"mcm_kb_mod_none"}, {1,"mcm_kb_mod_shift"}, @@ -654,20 +662,20 @@ function on_mcm_load() divider, - {id = "featurehead", type = "desc", clr = {255,255,255,0}, text = "ui_mcm_paw_mousewheel_head"}, + {id = "featurehead", type= "desc", clr = {255,255,255,0}, text = "ui_mcm_paw_mousewheel_head"}, - {id = "mwheel_enabled", type = "check", val = 1, def = true}, - {id = "mwheel_notify", type = "check", val = 1, def = true}, - {id = "bind_set_scroll", type = "key_bind", val = 2, def = DIK_keys.DIK_Z}, - {id = "modk_set_scroll", type = ui_mcm.kb_mod_radio, val = 2, def = 2, hint = "mcm_kb_modifier", + {id = "mwheel_enabled", type= "check", val = 1, def = true}, + {id = "mwheel_notify", type= "check", val = 1, def = true}, + {id = "bind_set_scroll", type= "key_bind", val = 2, def = DIK_keys.DIK_Z}, + {id = "modk_set_scroll", type= ui_mcm.kb_mod_radio, val = 2, def = 2, hint = "mcm_kb_modifier", content = { {0,"mcm_kb_mod_none"}, {1,"mcm_kb_mod_shift"}, {2,"mcm_kb_mod_ctrl"}, {3,"mcm_kb_mod_alt"} }}, - {id = "bind_ico_scroll", type = "key_bind", val = 2, def = DIK_keys.DIK_Z }, - {id = "modk_ico_scroll", type = ui_mcm.kb_mod_radio, val = 2, def = 3, hint = "mcm_kb_modifier", + {id = "bind_ico_scroll", type= "key_bind", val = 2, def = DIK_keys.DIK_Z }, + {id = "modk_ico_scroll", type= ui_mcm.kb_mod_radio, val = 2, def = 3, hint = "mcm_kb_modifier", content = { {0,"mcm_kb_mod_none"}, {1,"mcm_kb_mod_shift"}, @@ -682,10 +690,10 @@ function on_mcm_load() { id = "pawmenu", sh=true, gr={ -- Virtualize in ltx like the others at some point {id = "header", type= "slide", link= "ui_paw_menuslide_menus", size= {512,50}, borderless= true, spacing= 20}, - {id = "headertxt", type = "desc", text = "ui_mcm_pawsys_pawmenu_headertxt"}, + {id = "headertxt", type= "desc", text = "ui_mcm_pawsys_pawmenu_headertxt"}, - {id = "wp_settings", type = "list", val = 2, def = 4, + {id = "wp_settings", type= "list", val = 2, def = 4, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -694,7 +702,7 @@ function on_mcm_load() } }, - {id = "pn_settings", type = "list", val = 2, def = 4, + {id = "pn_settings", type= "list", val = 2, def = 4, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -703,7 +711,7 @@ function on_mcm_load() } }, - {id = "wp_set", type = "list", val = 2, def = 4, + {id = "wp_set", type= "list", val = 2, def = 4, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -711,7 +719,7 @@ function on_mcm_load() {0,"pawsys_cmenu_off"}, } }, - {id = "wp_mov", type = "list", val = 2, def = 4, + {id = "wp_mov", type= "list", val = 2, def = 4, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -720,7 +728,7 @@ function on_mcm_load() } }, - {id = "wp_del", type = "list", val = 2, def = 4, + {id = "wp_del", type= "list", val = 2, def = 4, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -729,7 +737,7 @@ function on_mcm_load() } }, - {id = "pn_add", type = "list", val = 2, def = 4, + {id = "pn_add", type= "list", val = 2, def = 4, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -738,7 +746,7 @@ function on_mcm_load() } }, - {id = "pn_del", type = "list", val = 2, def = 4, + {id = "pn_del", type= "list", val = 2, def = 4, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -747,7 +755,7 @@ function on_mcm_load() } }, --[[ - {id = "pn_ren", type = "list", val = 2, def = 4, + {id = "pn_ren", type= "list", val = 2, def = 4, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -756,7 +764,7 @@ function on_mcm_load() } }, --]] - {id = "show_all_pins", type = "list", val = 2, def = 2, + {id = "show_all_pins", type= "list", val = 2, def = 2, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -765,7 +773,7 @@ function on_mcm_load() } }, - {id = "hide_all_pins", type = "list", val = 2, def = 2, + {id = "hide_all_pins", type= "list", val = 2, def = 2, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -774,7 +782,7 @@ function on_mcm_load() } }, - {id = "lock_pin", type = "list", val = 2, def = 2, + {id = "lock_pin", type= "list", val = 2, def = 2, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -783,7 +791,7 @@ function on_mcm_load() } }, - {id = "unlock_pin", type = "list", val = 2, def = 4, + {id = "unlock_pin", type= "list", val = 2, def = 4, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -792,7 +800,7 @@ function on_mcm_load() } }, - {id = "hud_vis_on", type = "list", val = 2, def = 2, + {id = "hud_vis_on", type= "list", val = 2, def = 2, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -801,7 +809,7 @@ function on_mcm_load() } }, - {id = "hud_vis_off", type = "list", val = 2, def = 4, + {id = "hud_vis_off", type= "list", val = 2, def = 4, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -810,7 +818,7 @@ function on_mcm_load() } }, - {id = "show_label", type = "list", val = 2, def = 2, + {id = "show_label", type= "list", val = 2, def = 2, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -819,7 +827,7 @@ function on_mcm_load() } }, - {id = "hide_label", type = "list", val = 2, def = 4, + {id = "hide_label", type= "list", val = 2, def = 4, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -828,7 +836,7 @@ function on_mcm_load() } }, - {id = "convert_to_pin", type = "list", val = 2, def = 2, + {id = "convert_to_pin", type= "list", val = 2, def = 2, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -837,7 +845,7 @@ function on_mcm_load() } }, - {id = "pn_clr", type = "list", val = 2, def = 0, + {id = "pn_clr", type= "list", val = 2, def = 0, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, @@ -846,7 +854,7 @@ function on_mcm_load() } }, - {id = "mping", type = "list", val = 2, def = 2, + {id = "mping", type= "list", val = 2, def = 2, content = { {4,"pawsys_cmenu_all"}, {1,"pawsys_cmenu_norm"}, diff --git a/mods/Personal Adjustable Waypoint/gamedata/scripts/tasks_placeable_waypoints.script b/mods/Personal Adjustable Waypoint/gamedata/scripts/tasks_placeable_waypoints.script index c91169cc..f67b1806 100644 --- a/mods/Personal Adjustable Waypoint/gamedata/scripts/tasks_placeable_waypoints.script +++ b/mods/Personal Adjustable Waypoint/gamedata/scripts/tasks_placeable_waypoints.script @@ -8,8 +8,8 @@ https://www.youtube.com/channel/UCtG8fiWPUZEzWlkUn60btAw Source: https://www.moddb.com/mods/stalker-anomaly/addons/personal-adjustable-waypoint-for-anomaly-151-152-and-gamma - Version: 2.1.2 - Updated: 20240320 + Version: 2.1.3 + Updated: 20240330 You may alter any part of this mod and do whatever you like with it, just give credit where due. @@ -40,8 +40,8 @@ -- SHORTCUTS, FLAGS, AND SYSTEM STUFF (Most of which you probably shouldn't muck with) -- ===================================================================--]] -script_version = "2.1.2" -release_date = 20240320 +script_version = "2.1.3" +release_date = 20240330 local scriptname = "tasks_placeable_waypoints" local logprefix = " " local language = "eng" @@ -174,7 +174,6 @@ mark_on_positive_id = true reticle_mustzoom = true reticle_mode = 2 autotag_mode = 0 -autotag_milpda_feature = true autotag_persistence = false -- if enabled, autotags are cleared on map change or the below timeout value autotag_lifetime = 120 * 6 -- time in ms before autotags are cleared (def 2 minutes) autotags_time_out = autotag_lifetime > 0 @@ -316,23 +315,26 @@ dynamic_faves = pawdata.dynamic_faves -- not implemented yet -- ====================================================================== pda_defs = { --- By default, all PDAs support waypointing +-- By default, all PDAs support waypointing and autotag ["device_pda_1"] = { show_w = true, + autotag = true, }, ["device_pda_2"] = { show_w = true, - }, + autotag = true, }, ["device_pda_3"] = { show_w = true, - }, + autotag = true, }, ["device_pda_milspec"] = { show_w = true, + autotag = true, }, -- If you use an addon with an unsupported PDA section, add it here --- ["device_pda_added_by_your_mod"] = { --- show_w = false, --- }, +-- ["device_pda_added_by_your_mod"] = { +-- show_w = false, +-- autotag = false, +-- }, } @@ -845,12 +847,13 @@ function safename(id) end -function valid_pda() +function valid_pda(feature) + feature = feature or "show_w" local dev = db.actor and db.actor:item_in_slot(8) local sec = dev and dev:section() if not sec then return false end if dev and pda_defs[sec] then - if pda_defs[sec].show_w then return true end + if pda_defs[sec][feature] then return true end elseif item_device.device_npc_pda[sec] then local text = ts("st_paw_npc_pda_equipped") dotip(text) @@ -1724,6 +1727,8 @@ function create_smart_pin(notip,silent) end function autotag_target(notip,silent) + --if not valid_pda("autotag") then return end + local id = create_smart_pin(true) set_pingspot_persistence(id,autotag_persistence) set_pin_persistence(id,autotag_persistence) @@ -1887,7 +1892,7 @@ function execute_context_menu_option(property_ui,id,level_name,prop) id = last_clicked_id last_clicked_id = nil vl("execute_context_menu_option called for id %s\n| prop: %s\n| action %s",id,prop,action[prop]) - if not (paw_enabled and id and valid_pda()) then return end + if not (paw_enabled and id and valid_pda("show_w")) then return end if not (id and (id > 0)) then return end local se_obj = alife_object(id) if not se_obj then return end @@ -2448,6 +2453,7 @@ function mcm_reload_reticle_settings() reticle_color.a = load_mcm("pawret/reticle_alpha",reticle_color.a) ret_fade_attack_time = load_mcm("pawret/ret_fade_attack_time",ret_fade_attack_time) ret_fade_decay_time = load_mcm("pawret/ret_fade_decay_time",ret_fade_decay_time) + vl("Autotag settings: mode %s | mustzoom %s | manual %s",autotag_mode,reticle_mustzoom,manual_smart_pins) for k,v in pairs(smart_pins) do smart_pins[k].pin = load_mcm("pawret/"..k,v.pin) smart_pins[k].enabled = load_mcm("pawret/"..k.."_enable",v.enabled) @@ -2461,8 +2467,8 @@ function mcm_reload_reticle_settings() if did ~= nil then npc_ident.id_bodies = did end - npc_ident.id_speed = ui_mcm.get("targetID/speedID") or 0.3 - npc_ident.lenience = ui_mcm.get("targetID/targL") or 0.99 + npc_ident.id_speed = tonumber(ui_mcm.get("targetID/speedID")) or 0.3 + npc_ident.lenience = tonumber(ui_mcm.get("targetID/targL")) or 0.99 end end @@ -2479,6 +2485,15 @@ function on_option_change() if load_mcm("pawgen/wipe_all") then ui_mcm.set("pawsys/pawgen/wipe_all",false) dl("MCM: Wiping all pin data per player request") + local hudpins = hud_pin_objs + for k,v in pairs(hudpins) do + hide_hud_pin(k) + end + hud_pin_objs = {} + for k,v in pairs(map_labels) do + map_labels[k].box:Show(false) + end + map_labels = {} local args = {wipe_all=true,syscall=true} do_paw_action("pn_clr",nil,nil,args) end @@ -2923,7 +2938,7 @@ function UIPinSettingsWnd:__init(id,args) super() ) if pins[id].custom_colors and pins[id].colors then local colors = pins[id].colors - printf(logprefix.."A: %s | R: %s | G: %s | B: %s",colors.a,colors.r,colors.g,colors.b) + --printf(logprefix.."A: %s | R: %s | G: %s | B: %s",colors.a,colors.r,colors.g,colors.b) end end self.init_time = tostring(get_time_elapsed()) diff --git a/mods/Personal Adjustable Waypoint/meta.ini b/mods/Personal Adjustable Waypoint/meta.ini index 38593418..c1eeb477 100644 --- a/mods/Personal Adjustable Waypoint/meta.ini +++ b/mods/Personal Adjustable Waypoint/meta.ini @@ -1,11 +1,11 @@ [General] gameName=stalkeranomaly modid=0 -version=2.1.2.0 +version=2.1.3.0 newestVersion= category="3," nexusFileStatus=1 -installationFile=Catspaw_Personal_Adjustable_Waypoint-2.1.2.zip +installationFile=Catspaw_Personal_Adjustable_Waypoint-2.1.3.zip repository=Nexus ignoredVersion= comments= diff --git a/mods/RGD-2 Smoke Grenade/gamedata/configs/items/settings/mod_new_game_loadouts_rgd6.ltx b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/settings/mod_new_game_loadouts_rgd6.ltx new file mode 100644 index 00000000..b21747d3 --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/settings/mod_new_game_loadouts_rgd6.ltx @@ -0,0 +1,11 @@ +![stalker_loadout] +grenade_rgd2 = true,1,80,1 + +![dolg_loadout] +grenade_rgd2 = true,1,80,1 + +![army_loadout] +grenade_rgd2 = true,1,80,1 + +![renegade_loadout] +grenade_rgd2 = true,1,80,1 \ No newline at end of file diff --git a/mods/RGD-2 Smoke Grenade/gamedata/configs/items/settings/npc_loadouts/mod_npc_loadouts_rgd6.ltx b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/settings/npc_loadouts/mod_npc_loadouts_rgd6.ltx new file mode 100644 index 00000000..9520311f --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/settings/npc_loadouts/mod_npc_loadouts_rgd6.ltx @@ -0,0 +1,10 @@ +;==== +![extras_veteran] +grenade_rgd2:0:1 + +;==== +![extras_master] +grenade_rgd2:0:1 + +;==== + diff --git a/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_duty_rgd6_trade.ltx b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_duty_rgd6_trade.ltx new file mode 100644 index 00000000..35377625 --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_duty_rgd6_trade.ltx @@ -0,0 +1,5 @@ +;==== +![supplies_2] +grenade_rgd2 = 1, 0.88 + +;==== diff --git a/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_ecolog_sakharov_rgd6_trade.ltx b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_ecolog_sakharov_rgd6_trade.ltx new file mode 100644 index 00000000..35377625 --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_ecolog_sakharov_rgd6_trade.ltx @@ -0,0 +1,5 @@ +;==== +![supplies_2] +grenade_rgd2 = 1, 0.88 + +;==== diff --git a/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_greh_rgd6_trade.ltx b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_greh_rgd6_trade.ltx new file mode 100644 index 00000000..fdcf528f --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_greh_rgd6_trade.ltx @@ -0,0 +1,5 @@ +;==== +![supplies_1] +grenade_rgd2 = 1, 0.88 + +;==== diff --git a/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_military_rgd6_trade.ltx b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_military_rgd6_trade.ltx new file mode 100644 index 00000000..fdcf528f --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_military_rgd6_trade.ltx @@ -0,0 +1,5 @@ +;==== +![supplies_1] +grenade_rgd2 = 1, 0.88 + +;==== diff --git a/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_monolith_rgd6_trade.ltx b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_monolith_rgd6_trade.ltx new file mode 100644 index 00000000..fdcf528f --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_monolith_rgd6_trade.ltx @@ -0,0 +1,5 @@ +;==== +![supplies_1] +grenade_rgd2 = 1, 0.88 + +;==== diff --git a/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_renegade_rgd6_trade.ltx b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_renegade_rgd6_trade.ltx new file mode 100644 index 00000000..ca67cf0f --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_renegade_rgd6_trade.ltx @@ -0,0 +1,5 @@ +;==== +![supplies_3] +grenade_rgd2 = 1, 0.88 + +;==== diff --git a/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_stalker_basic_rgd6_trade.ltx b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_stalker_basic_rgd6_trade.ltx new file mode 100644 index 00000000..35377625 --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/configs/items/trade/mod_trade_stalker_basic_rgd6_trade.ltx @@ -0,0 +1,5 @@ +;==== +![supplies_2] +grenade_rgd2 = 1, 0.88 + +;==== diff --git a/mods/RGD-2 Smoke Grenade/gamedata/configs/mod_system_rgd2.ltx b/mods/RGD-2 Smoke Grenade/gamedata/configs/mod_system_rgd2.ltx new file mode 100644 index 00000000..9d7b33eb --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/configs/mod_system_rgd2.ltx @@ -0,0 +1,129 @@ +;------------------------------------------------------------------------------------------------ +[grenade_rgd2]:identity_immunities,weapon_probability,default_weapon_params + GroupControlSection = spawn_group + discovery_dependency = + $prefetch = 128 + $spawn = "weapons\grenades\gd-05" + cform = skeleton + parent_section = grenade_rgd2 + + class = G_F1 + slot = 3 + animation_slot = 7 + ef_weapon_type = 4 + single_handed = 1 + + default_to_ruck = false + sprint_allowed = true + + icons_texture = ui\rgd2_icon + inv_grid_height = 2 + inv_grid_width = 1 + inv_grid_x = 0 + inv_grid_y = 0 + inv_name = st_grenade_rgd2 + inv_name_short = st_grenade_rgd2 + description = st_grenade_rgd2_descr + highlight_equipped = true + + kind = w_explosive + inv_weight = 0.21 + cost = 500 + + hud = grenade_rgd2_hud + visual = dynamics\weapons\wpn_rdg2\wpn_rgd2_world.ogf + + attach_bone_name = + attach_position_offset = -0.053, -0.089, 0.0 + attach_angle_offset = 0, 0, 0 + bone_name = bip01_r_hand + position_offset = 0.0, 0.0, 0.0 + angle_offset = 1.570790, 1.570790, 3.92699 + + third_person_throw_point_offset = -0.05, 0.848, 0.706 + throw_dir = 0, 0, 1 + throw_point = 0.4, 0.3, 0.1 + up_throw_factor = 0 + + force_min = 10 + force_const = 25 + force_max = 30 + force_grow_speed = 15 + destroy_time = 2500 + grenade_remove_time = 80000 + detonation_threshold_hit = 200 + + light_color = 0.9, 0.6, 0.5 + light_range = 2.0 + light_time = 2.85 + + wallmark_section = explosion_marks + wm_size = 0.1 + + hit_type_blast = strike + hit_type_frag = fire_wound + + blast = 0 + blast_r = 0 + blast_impulse = 0 + blast_impulse_factor = 0 + + frag_hit = 0 + frag_hit_impulse = 0 + frags = 0 + frags_r = 0 + fragment_speed = 38 + explode_duration = 20 + explode_particles = explosions\explosion_dym + + zoom_dof = 0.5, 1.0, 180 + reload_dof = 0.0, 0.5, 5, 1.7 + control_inertion_factor = 1 + + snd_checkout = weapons\rgd6\rgd6_set, 3.0, 0.4 + snd_explode = weapons\grenade_gd05 + snd_on_take = grenade + + kill_msg_x = 240 + kill_msg_y = 123 + kill_msg_width = 14 + kill_msg_height = 23 + + +[grenade_rgd2_hud]:hud_base + item_visual = anomaly_weapons\wpn_rdg2\wpn_rdg2_hud.ogf + attach_place_idx = 0 + + item_position = -0.001, 0.004, 0.0 + item_orientation = 18.5, 1.5, 0.0 + + hands_position = -0.103, 0.03, -0.055 + hands_position_16x9 = -0.103, 0.03, -0.055 + hands_orientation = -4.4, 1.0, -2.0 + hands_orientation_16x9 = -4.4, 1.0, -2.0 + + aim_hud_offset_pos = 0, 0, 0 + aim_hud_offset_rot = 0, 0, 0 + + gl_hud_offset_pos = 0, 0, 0 + gl_hud_offset_rot = 0, 0, 0 + + lean_hud_offset_pos = 0, 0, 0 + lean_hud_offset_rot = 0, 0, 0 + + anm_hide = rgd2_holdster + anm_idle = rgd2_idle, idle + anm_idle_moving = rgd2_walk, idle, 1.8 + anm_idle_sprint = rgd2_runnn, idle, 1.9 + anm_show = rgd2_draw + anm_throw = rgd2_throw, throw + anm_throw_begin = rgd2_throwbegin, throw_beginning + anm_throw_idle = rgd2_throwidle, throw_idle + + fire_bone = wpn_body + fire_point = 0, 0, 0 + + throw_dir = 0, 0, 1 + throw_point = 0.0, 0.4, 0.3 + + freelook_z_offset_mul = 0.3 \ No newline at end of file diff --git a/mods/RGD-2 Smoke Grenade/gamedata/configs/text/eng/st_items_rgd6.xml b/mods/RGD-2 Smoke Grenade/gamedata/configs/text/eng/st_items_rgd6.xml new file mode 100644 index 00000000..92100a04 --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/configs/text/eng/st_items_rgd6.xml @@ -0,0 +1,12 @@ + + + + + RGD-2 + + + The RGD-2 smoke grenade is a cylindrical, handheld device used for generating a dense cloud of smoke for tactical purposes. It is typically used in military and law enforcement operations to provide cover, concealment, or signaling. The grenade is activated by pulling a pin and releasing a safety lever, which ignites a fuse. Upon ignition, the grenade emits a colored smoke, depending on its intended use, which can last for several minutes, obscuring visibility and providing a tactical advantage to the user. The RGD-6 smoke grenade is known for its reliability, ease of use, and effectiveness in various operational environments. Once the grenade is thrown it takes 10 seconds for the smoke screen to expand. \n \n + + + + diff --git a/mods/RGD-2 Smoke Grenade/gamedata/meshes/anomaly_weapons/hud_animation/wpn_rgd2_hud_animation.omf b/mods/RGD-2 Smoke Grenade/gamedata/meshes/anomaly_weapons/hud_animation/wpn_rgd2_hud_animation.omf new file mode 100644 index 00000000..0cec01e1 Binary files /dev/null and b/mods/RGD-2 Smoke Grenade/gamedata/meshes/anomaly_weapons/hud_animation/wpn_rgd2_hud_animation.omf differ diff --git a/mods/RGD-2 Smoke Grenade/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_rgd2_hud_animation.omf b/mods/RGD-2 Smoke Grenade/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_rgd2_hud_animation.omf new file mode 100644 index 00000000..6318f2a9 Binary files /dev/null and b/mods/RGD-2 Smoke Grenade/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_rgd2_hud_animation.omf differ diff --git a/mods/RGD-2 Smoke Grenade/gamedata/meshes/anomaly_weapons/wpn_rdg2/wpn_rdg2_hud.ogf b/mods/RGD-2 Smoke Grenade/gamedata/meshes/anomaly_weapons/wpn_rdg2/wpn_rdg2_hud.ogf new file mode 100644 index 00000000..f37bdf2a --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/meshes/anomaly_weapons/wpn_rdg2/wpn_rdg2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e154b613cc573fb232daad78289d6cc9ec546504d5c0f5cb1446b064f9692c30 +size 188644 diff --git a/mods/RGD-2 Smoke Grenade/gamedata/meshes/dynamics/weapons/wpn_rdg2/wpn_rgd2_world.ogf b/mods/RGD-2 Smoke Grenade/gamedata/meshes/dynamics/weapons/wpn_rdg2/wpn_rgd2_world.ogf new file mode 100644 index 00000000..98e3b892 --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/meshes/dynamics/weapons/wpn_rdg2/wpn_rgd2_world.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7b514367979614770166b5c0b16161bcb1f8b58f31e3bafecc534522038efbc +size 61585 diff --git a/mods/RGD-2 Smoke Grenade/gamedata/scripts/demonized_rdg2_loadouts.script b/mods/RGD-2 Smoke Grenade/gamedata/scripts/demonized_rdg2_loadouts.script new file mode 100644 index 00000000..6e383973 --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/scripts/demonized_rdg2_loadouts.script @@ -0,0 +1,156 @@ +local enable_debug = false +local function printf(...) + if enable_debug then + _G.printf(...) + end +end + +loadouts = { + ["duty_novice"] = { + ["extra"] = {"grenade_rgd2:0:1:25"}, + }, +} +loadouts.stalker_trainee = loadouts.duty_novice +loadouts.stalker_experienced = loadouts.duty_novice +loadouts.stalker_professional = loadouts.duty_novice +loadouts.stalker_novice = loadouts.duty_novice +loadouts.bandit_novice = loadouts.duty_novice +loadouts.bandit_experienced = loadouts.duty_novice +loadouts.csky_novice = loadouts.duty_novice +loadouts.csky_trainee = loadouts.duty_novice +loadouts.monolith_trainee = loadouts.duty_novice +loadouts.monolith_experienced = loadouts.duty_novice +loadouts.monolith_professional = loadouts.duty_novice +loadouts.monolith_novice = loadouts.duty_novice +loadouts.duty_trainee = loadouts.duty_novice +loadouts.duty_experienced = loadouts.duty_novice +loadouts.duty_professional = loadouts.duty_novice +loadouts.army_experienced = loadouts.duty_novice +loadouts.army_trainee = loadouts.duty_novice +loadouts.army_professional = loadouts.duty_novice +loadouts.freedom_experienced = loadouts.duty_novice +loadouts.renegade_novice = loadouts.duty_novice + +function parse_loadout_item(item) + local t = str_explode(item, ':') + return { + section = t[1], + attachment_flag = t[2] and tonumber(t[2]) or 0, + ammo_type = t[3] and tonumber(t[3]) or 0, + chance = t[4] and tonumber(t[4]) or 50, + } +end + +function concat_loadout_item(t) + return string.format("%s:%s:%s:%s", t.section, t.attachment_flag, t.ammo_type, t.chance) +end + +create_item_on_npc = xrs_rnd_npc_loadout.create_item_on_npc +xrs_rnd_npc_loadout.create_item_on_npc = function(se_npc, squad_name, comm, rank, visual, player_id, slot_type, ...) + create_item_on_npc(se_npc, squad_name, comm, rank, visual, player_id, slot_type, ...) + + local sec = comm .. "_" .. rank + if is_empty(loadouts[sec]) then + printf("cant find loadout items for %s", sec) + return + end + if is_empty(loadouts[sec][slot_type]) then + printf("cant find loadout items for %s, slot %s", sec, slot_type) + return + end + + local items = loadouts[sec][slot_type] + + shuffle_table(items) + local pick + for i, v in ipairs(items) do + local t = parse_loadout_item(v) + if math.random(100) <= t.chance then + pick = t + printf("picked item %s for %s, slot %s", concat_loadout_item(pick), sec, slot_type) + break + end + end + + -- Pick first gun if chance based pick failed and slot is primary + if not pick and slot_type == "primary" then + pick = parse_loadout_item(items[1]) + if pick then + printf("picked default item %s for %s, slot %s", concat_loadout_item(pick), sec, slot_type) + end + end + + if not pick then + printf("failed to pick item for %s, slot %s", sec, slot_type) + return + end + + -- Give it to NPC based on data + local section = pick.section + local ammo_typ = pick.ammo_type + local attachment = pick.attachment_flag + printf("NPC Loadouts | END | %s | %s - %s - [%s]", se_npc:name(), slot_type, sec, section) + + -- Items + if (slot_type == "extra") then + return alife_create_item(section, se_npc) + + -- Weapons + else + -- Add random scope + local cha = game_difficulties.get_eco_factor("scope_chance") + cha = cha * 100 + if ini_sys:line_exist(section,"scopes") and (math.random(100) <= cha) then + local scopes = parse_list(ini_sys, section, "scopes") + if scopes and (#scopes > 0) then + local pick_scope = scopes[math.random(#scopes)] + if pick_scope and ini_sys:section_exist(section .. "_" .. pick_scope) then + section = section .. "_" .. pick_scope + end + end + end + + local se_wpn = alife_create_item(section, se_npc) + if (se_wpn) then + local ammos = parse_list(ini_sys, section, "ammo_class") + + local ct = ammos and #ammos + local ammo_type = (ammos and ammo_typ and ammo_typ == "r" and ct and math.random(0,ct-1)) or (ammos and ammo_typ and tonumber(ammo_typ)) or 0 + local ammo_section = ammo_type and ammos[ammo_type+1] + + if not (ammo_section) then + ammo_type = 0 + ammo_section = ammo_type and ammos[ammo_type+1] + printe("! ERROR: NPC Loadouts | wrong ammo_type set for [%s], missing value in ammo_class", section) + end + + + if (attachment or ammo_typ) then + local data = utils_stpk.get_weapon_data(se_wpn) + + local flag = tonumber(attachment) or 0 + if (attachment == "r") then + flag = 0 + if (utils_data.read_from_ini(nil,section,"scope_status","float",nil)) then + flag = flag + 1 + end + + if (utils_data.read_from_ini(nil,section,"grenade_launcher_status","float",nil)) then + flag = flag + 2 + end + + if (utils_data.read_from_ini(nil,section,"silencer_status","float",nil)) then + flag = flag + 4 + end + + flag = math.random(0,flag) + end + + data.addon_flags = flag + data.ammo_type = ammo_type + utils_stpk.set_weapon_data(data,se_wpn) + end + return se_wpn + end + end +end \ No newline at end of file diff --git a/mods/RGD-2 Smoke Grenade/gamedata/sounds/weapons/rgd6/rgd6_set.ogg b/mods/RGD-2 Smoke Grenade/gamedata/sounds/weapons/rgd6/rgd6_set.ogg new file mode 100644 index 00000000..e0747714 --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/sounds/weapons/rgd6/rgd6_set.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e5c7ee58b92e8c4088d285d25cbcc877d66928a2ecf372350ebd4c6c0e3b077 +size 27588 diff --git a/mods/RGD-2 Smoke Grenade/gamedata/sounds/weapons/rgd6/rgd6_throw.ogg b/mods/RGD-2 Smoke Grenade/gamedata/sounds/weapons/rgd6/rgd6_throw.ogg new file mode 100644 index 00000000..c41cee3f --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/sounds/weapons/rgd6/rgd6_throw.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f49943c94677ed4e8e54e354d71f61a9d949b6e734688c5eedc3877fcd3c4c9 +size 16770 diff --git a/mods/RGD-2 Smoke Grenade/gamedata/textures/ui/rgd2_icon.dds b/mods/RGD-2 Smoke Grenade/gamedata/textures/ui/rgd2_icon.dds new file mode 100644 index 00000000..334b78b8 --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/textures/ui/rgd2_icon.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2b81f13afb098cd3004b6d5918c65d5fd3b16f6b694ef0b4efef32a7b3b7b88 +size 65664 diff --git a/mods/RGD-2 Smoke Grenade/gamedata/textures/wpn/rgd2/tex_rgd2_main.dds b/mods/RGD-2 Smoke Grenade/gamedata/textures/wpn/rgd2/tex_rgd2_main.dds new file mode 100644 index 00000000..f81c7e2a --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/textures/wpn/rgd2/tex_rgd2_main.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2445ec7b5dcc3c1ccf1c1429b39aac0baddf1ee1001678b3a2bf4a95935c43f6 +size 699216 diff --git a/mods/RGD-2 Smoke Grenade/gamedata/textures/wpn/rgd2/tex_rgd2_main.thm b/mods/RGD-2 Smoke Grenade/gamedata/textures/wpn/rgd2/tex_rgd2_main.thm new file mode 100644 index 00000000..e411df59 --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/textures/wpn/rgd2/tex_rgd2_main.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7aa9af9752090bf54c9b5323d8f502911025c530ab087a212351631ab692ff3 +size 165 diff --git a/mods/RGD-2 Smoke Grenade/gamedata/textures/wpn/rgd2/tex_rgd2_main_bump.dds b/mods/RGD-2 Smoke Grenade/gamedata/textures/wpn/rgd2/tex_rgd2_main_bump.dds new file mode 100644 index 00000000..4e2f1292 --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/textures/wpn/rgd2/tex_rgd2_main_bump.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34b93e1e4503affa55512fea80159913b28e29ce1177d2aefa52f0b9634c86f6 +size 699216 diff --git a/mods/RGD-2 Smoke Grenade/gamedata/textures/wpn/rgd2/tex_rgd2_main_bump.thm b/mods/RGD-2 Smoke Grenade/gamedata/textures/wpn/rgd2/tex_rgd2_main_bump.thm new file mode 100644 index 00000000..0cefb678 --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/gamedata/textures/wpn/rgd2/tex_rgd2_main_bump.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e6cc160475436c02afbc9f8ee271579ab170c426b2d5efa8acffc5b1c846f45 +size 138 diff --git a/mods/RGD-2 Smoke Grenade/meta.ini b/mods/RGD-2 Smoke Grenade/meta.ini new file mode 100644 index 00000000..82712ac3 --- /dev/null +++ b/mods/RGD-2 Smoke Grenade/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2024.3.31.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=RGD-2_Smoke_Grenade.7z +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=false +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2024-04-01T01:35:27Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/Redone Collection/README Optional.txt b/mods/Redone Collection/README Optional.txt deleted file mode 100644 index ef043e11..00000000 --- a/mods/Redone Collection/README Optional.txt +++ /dev/null @@ -1,6 +0,0 @@ -To install: Open Optional folder and move over gamedata to install folder. - -Agroprom Underground V2 Endless Spawn: use in subterranean areas. Mutants or stalkers are spawned upon reaching trigger zones that reset after a certain time. -Optional R&M: Add logic feature to Hip, Wolf, Fanatic and Major, mechanic at the south checkpoint. ;bugged sometimes -Optional D&D: Removes Traders at Darkscape. -Optional A&D: Add a barman to freedom. diff --git a/mods/Redone Collection/README Psy-Field Ambient Addon.txt b/mods/Redone Collection/README Psy-Field Ambient Addon.txt new file mode 100644 index 00000000..4f0e339f --- /dev/null +++ b/mods/Redone Collection/README Psy-Field Ambient Addon.txt @@ -0,0 +1,5 @@ + An ambient sound will be played when player are in a psy-field, MM or BS locations. + +Sound ambient is from Horror Overhaul - DesmanMetzger + +Credits: DesmanMetzger \ No newline at end of file diff --git a/mods/Redone Collection/README.txt b/mods/Redone Collection/README Rank Progression Addon.txt similarity index 92% rename from mods/Redone Collection/README.txt rename to mods/Redone Collection/README Rank Progression Addon.txt index 393c8c2d..e8b6b130 100644 --- a/mods/Redone Collection/README.txt +++ b/mods/Redone Collection/README Rank Progression Addon.txt @@ -4,4 +4,6 @@ Slow progression. Rank increases quite slowly and have other values, and NPC has novice, 1999, trainee, 3999, experienced, 9999, professional, 17999, veteran, 25999, expert, 34999, master, 49999, legend +Credits: mandothreesixtee + diff --git a/mods/Redone Collection/README Update.txt b/mods/Redone Collection/README Update.txt index f214454f..47fe0e8e 100644 --- a/mods/Redone Collection/README Update.txt +++ b/mods/Redone Collection/README Update.txt @@ -1 +1 @@ -A fresh install is required when updating. \ No newline at end of file +A New install of Re:done is required when updating. \ No newline at end of file diff --git a/mods/Redone Collection/gamedata/configs/creatures/spawn_sections_yantar_spawn_point.ltx b/mods/Redone Collection/gamedata/configs/creatures/spawn_sections_yantar_spawn_point.ltx index 31f09bac..06d9eead 100644 --- a/mods/Redone Collection/gamedata/configs/creatures/spawn_sections_yantar_spawn_point.ltx +++ b/mods/Redone Collection/gamedata/configs/creatures/spawn_sections_yantar_spawn_point.ltx @@ -53,3 +53,66 @@ spec_rank = veteran community = army custom_data = scripts\yantar\yan_tonnel_military_2_logic.ltx story_id = yan_stalker_gigant_military + +![yan_tonnel_snork_1]:psysucker_3_strong +$spawn = "respawn\yan_tonnel_snork_1" +community = monster +custom_data = scripts\yantar\yan_tonnel_snork_1.ltx +story_id = yan_tonnel_snork_1 + +![yan_tonnel_snork_2]:stalker_strong +$spawn = "respawn\yan_tonnel_snork_2" +character_profile = sim_default_killer_dead +spec_rank = advanced +community = killer +custom_data = scripts\labx16\labx16_ghost.ltx +story_id = yan_tonnel_snork_2 + +![yan_tonnel_snork_3]:bloodsucker_strong_big +$spawn = "respawn\yan_tonnel_snork_3" +community = monster +custom_data = scripts\yantar\yan_tonnel_snork_3.ltx +story_id = yan_tonnel_snork_3 + +![yan_tonnel_snork_4]:stalker_strong +$spawn = "respawn\yan_tonnel_snork_4" +character_profile = sim_default_killer_dead +spec_rank = advanced +community = killer +custom_data = scripts\labx16\labx16_ghost.ltx +story_id = yan_tonnel_snork_4 + +![yan_tonnel_snork_5]:bloodsucker_strong_big +$spawn = "respawn\yan_tonnel_snork_5" +community = monster +custom_data = scripts\yantar\yan_tonnel_snork_5.ltx +story_id = yan_tonnel_snork_5 + +![yan_tonnel_snork_6]:stalker_strong +$spawn = "respawn\yan_tonnel_snork_6" +character_profile = sim_default_killer_dead +spec_rank = advanced +community = killer +custom_data = scripts\labx16\labx16_ghost.ltx +story_id = yan_tonnel_snork_6 + +![yan_tonnel_zombied_1]:rat_normal +$spawn = "respawn\yan_tonnel_zombied_1" +community = monster +character_profile = rat_normal +custom_data = scripts\yantar\yan_tonnel_zombied_1.ltx +story_id = yan_tonnel_zombied_1 + +![yan_tonnel_zombied_2]:rat_normal +$spawn = "respawn\yan_tonnel_zombied_2" +community = monster +character_profile = rat_normal +custom_data = scripts\yantar\yan_tonnel_zombied_2.ltx +story_id = yan_tonnel_zombied_2 + +![yan_tonnel_zombied_3]:rat_normal +$spawn = "respawn\yan_tonnel_zombied_3" +community = monster +character_profile = rat_normal +custom_data = scripts\yantar\yan_tonnel_zombied_3.ltx +story_id = yan_tonnel_zombied_3 diff --git a/mods/Redone Collection/gamedata/configs/items/items/items_physic_object_spawn_point_YAN.ltx b/mods/Redone Collection/gamedata/configs/items/items/items_physic_object_spawn_point_YAN.ltx index 5f79ae2f..c98959f4 100644 --- a/mods/Redone Collection/gamedata/configs/items/items/items_physic_object_spawn_point_YAN.ltx +++ b/mods/Redone Collection/gamedata/configs/items/items/items_physic_object_spawn_point_YAN.ltx @@ -22,6 +22,22 @@ visual = dynamics\el_tehnika\priemnik_gorizont.ogf fixed_bones = link custom_data = scripts\yantar\yan_ecolog_bunker_sound.ltx +[yan_lx_16_rope_1]:yantar_phys_physic_object +visual = dynamics\dead_body\trupik_rope.ogf +fixed_bones = link + +[yan_lx_16_rope_2]:yantar_phys_physic_object +visual = dynamics\dead_body\trupik_rope.ogf +fixed_bones = link + +[yan_lx_16_rope_3]:yantar_phys_physic_object +visual = dynamics\dead_body\trupik_rope.ogf +fixed_bones = link + +[yan_lx_16_rope_4]:yantar_phys_physic_object +visual = dynamics\dead_body\trupik_rope.ogf +fixed_bones = link + [yan_street_box_1]:yantar_dstr_physic_object visual = dynamics\box\box_wood_01.ogf fixed_bones = link diff --git a/mods/Redone Collection/gamedata/configs/misc/mod_simulation_objects_props_DS.ltx b/mods/Redone Collection/gamedata/configs/misc/mod_simulation_objects_props_DS.ltx index 401053a0..0ebbda5d 100644 --- a/mods/Redone Collection/gamedata/configs/misc/mod_simulation_objects_props_DS.ltx +++ b/mods/Redone Collection/gamedata/configs/misc/mod_simulation_objects_props_DS.ltx @@ -6,10 +6,12 @@ surge = 1 stalker = 1 csky = 1 bandit = 1 -renegade = 1 -dolg = 0 +ecolog = 1 +dolg = 1 killer = 1 army = 1 +renegade = 1 +isg = 1 ;camp under rocks ![ds2_lager_st]:default_base diff --git a/mods/Redone Collection/gamedata/configs/misc/mod_simulation_objects_props_X-16.ltx b/mods/Redone Collection/gamedata/configs/misc/mod_simulation_objects_props_X-16.ltx index 4382c7ae..1eaa5698 100644 --- a/mods/Redone Collection/gamedata/configs/misc/mod_simulation_objects_props_X-16.ltx +++ b/mods/Redone Collection/gamedata/configs/misc/mod_simulation_objects_props_X-16.ltx @@ -24,7 +24,7 @@ ecolog = 0 csky = 0 stalker = 0 killer = 0 -army = 1 +army = 0 territory = 1 lair = 1 zoo_monster = 1 @@ -38,10 +38,10 @@ monster_special = 0 ![x162_st_snork]:default sim_avail = {+yan_kill_brain_done} true, false -ecolog = 2 -csky = 2 -stalker = 1 -killer = 1 +ecolog = o +csky = 0 +stalker = 0 +killer = 0 lair = 0 zoo_monster = 0 monster = 0 diff --git a/mods/Redone Collection/gamedata/configs/misc/mod_simulation_spawn_point_CIT.ltx b/mods/Redone Collection/gamedata/configs/misc/mod_simulation_spawn_point_CIT.ltx index f1145fd6..d49caa75 100644 --- a/mods/Redone Collection/gamedata/configs/misc/mod_simulation_spawn_point_CIT.ltx +++ b/mods/Redone Collection/gamedata/configs/misc/mod_simulation_spawn_point_CIT.ltx @@ -20,7 +20,7 @@ cit_killers_guard_squad_2 merc_sim_squad_novice = 0 ![cit_bandits] -cit_bandits_poltergeist_squad +;cit_bandits_poltergeist_squad ![cit_bandits_2] simulation_zombie_3_6 = 0 diff --git a/mods/Redone Collection/gamedata/configs/misc/sound/mod_script_sound_redone_x16.ltx b/mods/Redone Collection/gamedata/configs/misc/sound/mod_script_sound_redone_x16.ltx index d35416f1..18f6e181 100644 --- a/mods/Redone Collection/gamedata/configs/misc/sound/mod_script_sound_redone_x16.ltx +++ b/mods/Redone Collection/gamedata/configs/misc/sound/mod_script_sound_redone_x16.ltx @@ -1,123 +1,3 @@ -![x16_psy_loop] -type = looped -path = ambient\x16\x16_psy -levels = l08u_brainlab - -![x16_engine1_run] -type = looped -path = ambient\x16\x16_engine1_run -levels = l08u_brainlab - -![x16_engine1_stop] -type = 3d -path = ambient\x16\x16_engine1_stop -levels = l08u_brainlab - -![x16_engine2_run] -type = looped -path = ambient\x16\x16_engine2_run -levels = l08u_brainlab - -![x16_engine2_stop] -type = 3d -path = ambient\x16\x16_engine2_stop -levels = l08u_brainlab - -![x16_grate_fall] -type = 3d -path = ambient\x16\x16_grate_fall -levels = l08u_brainlab - -![x16_hum_2] -type = looped -path = ambient\x16\x16_hum_2 -levels = l08u_brainlab - -![x16_switch_1] -type = 3d -path = ambient\switch_1 -levels = l08u_brainlab - -![x16_brain_death] -type = 3d -path = ambient\x16\x16_brain_death -levels = l08u_brainlab - -![system_message_1] -type = 3d -path = characters_voice\scenario\yantar\system_message_1 -levels = l08u_brainlab - -![system_message_2] -type = 3d -path = characters_voice\scenario\yantar\system_message_2 -levels = l08u_brainlab - -![system_message_3] -type = 3d -path = characters_voice\scenario\yantar\system_message_3 -levels = l08u_brainlab - -![system_message_4] -type = 3d -path = characters_voice\scenario\yantar\system_message_4 -levels = l08u_brainlab - -![switch_2] -type = 3d -path = ambient\switch_2 -levels = l08u_brainlab - -![klaxon_1] -type = looped -path = ambient\x16\klaxon_1 -levels = l08u_brainlab - -![klaxon_2] -type = looped -path = ambient\x16\klaxon_2 -levels = l08u_brainlab - -![klaxon_3] -type = looped -path = ambient\x16\klaxon_3 -levels = l08u_brainlab - -![rumble_1] -type = looped -path = ambient\x16\rumble_1 -levels = l08u_brainlab - -![rumble_2] -type = looped -path = ambient\x16\rumble_2 -levels = l08u_brainlab - -![rumble_3] -type = looped -path = ambient\x16\rumble_3 -levels = l08u_brainlab - -![message_1] -type = looped -path = characters_voice\scenario\yantar\message_1 -levels = l08u_brainlab - -![message_2] -type = looped -path = characters_voice\scenario\yantar\message_2 -levels = l08u_brainlab - -![message_3] -type = looped -path = characters_voice\scenario\yantar\message_3 -levels = l08u_brainlab - -![x16_begin] -type = 3d -path = ambient\x16\x16_begin -levels = l08u_brainlab - ![x16_brain_stop] type = 3d path = ambient\x16\x16_brain_stop diff --git a/mods/Redone Collection/gamedata/configs/misc/spawn_object/yan_smart_terrain_6_4_object.ltx b/mods/Redone Collection/gamedata/configs/misc/spawn_object/yan_smart_terrain_6_4_object.ltx index 54f77731..66337bb0 100644 --- a/mods/Redone Collection/gamedata/configs/misc/spawn_object/yan_smart_terrain_6_4_object.ltx +++ b/mods/Redone Collection/gamedata/configs/misc/spawn_object/yan_smart_terrain_6_4_object.ltx @@ -4,4 +4,5 @@ condlist_0 = true [exclusive] rupor_1 = ecolog_yan_base_rupor | 24.72,-4.91,-263.82 | 0,-182,-90 | condlist_0 -sound_1 = ecolog_yan_base_sound | 28.11,-23.74,-273.46 | 0,0,0 | condlist_0 \ No newline at end of file +sound_1 = ecolog_yan_base_sound | 28.11,-23.74,-273.46 | 0,0,0 | condlist_0 + diff --git a/mods/Redone Collection/gamedata/configs/misc/squad_descr/squad_descr_lostzone_ll_spawn.ltx b/mods/Redone Collection/gamedata/configs/misc/squad_descr/squad_descr_lostzone_ll_spawn.ltx new file mode 100644 index 00000000..ca71effc --- /dev/null +++ b/mods/Redone Collection/gamedata/configs/misc/squad_descr/squad_descr_lostzone_ll_spawn.ltx @@ -0,0 +1,15 @@ +;--Lost to the Zone: Living Legend + +![barrier_freedom_guardians_squad]:online_offline_group +faction = freedom +npc_random = sim_default_freedom_1, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_3 +npc_in_squad = 2, 2 +target_smart = mil_smart_terrain_3_8 + +![mil_smart_terrain_3_8_monolith_attackers]:online_offline_group +faction = monolith +npc_random = sim_default_monolith_1, sim_default_monolith_2, sim_default_monolith_3, sim_default_monolith_4 +npc_in_squad = 8, 8 +target_smart = mil_smart_terrain_3_8 +story_id = mil_smart_terrain_3_8_monolith_attackers_squad +on_death = %+mil_smart_terrain_3_8_monolith_attackers_squad_death% diff --git a/mods/Redone Collection/gamedata/configs/misc/task/tm_lostzone_ll.ltx b/mods/Redone Collection/gamedata/configs/misc/task/tm_lostzone_ll.ltx deleted file mode 100644 index 6860f857..00000000 --- a/mods/Redone Collection/gamedata/configs/misc/task/tm_lostzone_ll.ltx +++ /dev/null @@ -1,403 +0,0 @@ -;============================================================== -; -; TASKS PROVIDED FOR LOST TO THE ZONE: LIVING LEGEND -; Anomaly 1.5 - Lost to the Zone: Living Legend -; -; Made by: SarisKhan -; Last revised: 13 August 2020 -; -;============================================================== - -;=================Living Legend Storyline Quests=========================== -; Living Legend Task 1- -[lttz_ll_find_doctor] -icon = ui_iconsNpc_doctor -prior = 195 -storyline = true - -title = lttz_ll_find_doctor_task_title -target = mar_smart_terrain_doc_doctor -descr = lttz_ll_find_doctor_task_descr - -on_init = %=remove_squad(monolith_eidolon) =create_squad(stalker_gatekeeper_squad:mil_smart_terrain_4_8)% -on_complete = %=complete_task_inc_goodwill(50:stalker) =give_task(lttz_ll_visit_agro_ug) +lttz_ll_visit_agro_ug_task% -condlist_0 = {+living_legend_doctor} complete -condlist_1 = {=actor_has_item(cit_doctors_pda)} complete - -;------------------------------------------------ -; Living Legend Task 2- -[lttz_ll_visit_agro_ug] -icon = ui_inGame2_Laboratoriya_X8 -prior = 195 -storyline = true - -title = lttz_ll_visit_agro_ug_name -target = agr_space_restrictor_to_agr_ug_4 -descr = {=actor_has_item(cit_doctors_pda)} lttz_ll_visit_agro_ug_text_2, {+living_legend_doctor} lttz_ll_visit_agro_ug_text - -on_init = %=spawn_strelok_notes() =open_route(agr:agr_u)% -on_complete = %+lttz_ll_visit_agro_ug_task_done% -condlist_0 = {=actor_has_item(strelok_notes)} complete - -;------------------------------------------------ -; Living Legend Task 3- -[lttz_ll_visit_barkeep] -icon = ui_icons_bar_100rentgen18 -prior = 195 -storyline = true - -title = lttz_ll_visit_barkeep_task_title -target = bar_visitors_barman_stalker_trader -descr = lttz_ll_visit_barkeep_task_descr - -on_complete = %=give_task(lttz_ll_call_north) =reward_item(drug_psy_blockade)% -condlist_0 = {+living_legend_barkeep} complete - -; Living Legend Task 3a- -[lttz_ll_visit_blackjack] -icon = ui_icons_mercicon13 -prior = 195 -storyline = true - -title = lttz_ll_visit_aslan_task_title -target = cit_killers_merc_barman_mlr -descr = lttz_ll_visit_aslan_task_descr - -on_complete = %=give_task(lttz_ll_call_north) =reward_item(drug_psy_blockade)% -condlist_0 = {+living_legend_aslan} complete - -;------------------------------------------------ -; Living Legend Task 4- -[lttz_ll_call_north] -icon = ui_iconsTotal_rad_get_to_aes -prior = 195 -storyline = true - -title = lttz_ll_call_north_task_title -target = {=actor_has_item(good_psy_helmet)} stalker_gatekeeper, {=actor_has_item(bad_psy_helmet)} stalker_gatekeeper, yan_stalker_sakharov -status_functor = special_steps_for_lostzone_tasks -descr = {=actor_has_item(good_psy_helmet)} lttz_ll_call_north_task_descr2, {=actor_has_item(bad_psy_helmet)} lttz_ll_call_north_task_descr2, lttz_ll_call_north_task_descr - -on_complete = %=give_task(lttz_ll_breakthrough)% -condlist_0 = {+living_legend_breakthrough} complete -condlist_1 = {+stalker_gatekeeper_dead} fail - -;------------------------------------------------ -; Living Legend Task 5- -[lttz_ll_breakthrough] -icon = ui_icons_base_attack24 -prior = 195 -storyline = true - -title = lttz_ll_breakthrough_task_name -target = {+mil_smart_terrain_3_8_monolith_attackers_squad_death} stalker_gatekeeper, mil_smart_terrain_3_8_monolith_attackers_squad -descr = {+mil_smart_terrain_3_8_monolith_attackers_squad_death} lttz_ll_talk_gatekeeper_task_descr, lttz_ll_breakthrough_task_text - -on_init = %=create_squad(mil_smart_terrain_3_8_monolith_attackers:mil_smart_terrain_3_8)% ;=create_squad(barrier_freedom_guardians_squad:mil_smart_terrain_3_8) -on_complete = %=reward_stash(true) =reward_random_money(5000:6000) =reward_item(drug_radioprotector) =complete_task_inc_goodwill(50:stalker:freedom) =give_task(lttz_ll_turn_off_brain_scorcher)% -condlist_0 = {+living_legend_brainscorcher} complete -condlist_1 = {+stalker_gatekeeper_dead} fail - -;------------------------------------------------ -; Disable Brain Scorcher Living Legend Task 6- -[lttz_ll_turn_off_brain_scorcher] -icon = ui_iconsTotal_bar_radar_deactivate -prior = 195 -storyline = true - -title = lttz_ll_radar_deactivate_name -target = rad_space_restrictor_to_bunker -descr = lttz_ll_deactivate_text - -on_init = %=open_route(mil:rad) =open_route(rad:x19)% -on_complete = %=complete_task_inc_goodwill(100:stalker) =give_task(lttz_ll_visit_beard) =create_squad(stalker_rogue_squad:zat_stalker_base_smart) +lttz_ll_turn_off_brain_scorcher_task_done =stalker_ceasefire()% -condlist_0 = {+bar_deactivate_radar_done} complete - -;------------------------------------------------ -; Living Legend Task 7- -[lttz_ll_visit_beard] -icon = ui_inGame2_Artefakti_na_zakaz -prior = 195 -storyline = true - -title = lttz_ll_visit_beard_task_title -target = zat_a2_stalker_barmen -descr = lttz_ll_visit_beard_task_descr - -on_init = %=open_route(red:rad) =open_route(red:jup) =open_route(jup:zat)% -on_complete = %=reward_money(6000) =reward_item(vodka_quality) =reward_stash(true) =complete_task_inc_goodwill(50:stalker) =give_task(lttz_ll_meet_rogue)% -condlist_0 = {+living_legend_beard} complete - -;------------------------------------------------ -; Meet Rogue Living Legend Task 8- -[lttz_ll_meet_rogue] -icon = ui_inGame2_Issledovatelskaya_gruppa -prior = 195 -storyline = true - -title = lttz_ll_meet_rogue_task_title -target = stalker_rogue -descr = lttz_ll_meet_rogue_task_descr - -on_complete = %=give_task(lttz_ll_fetch_gauss)% -condlist_0 = {+living_legend_rogue_start} complete -condlist_1 = {+stalker_rogue_dead} fail - -;------------------------------------------------ -; Living Legend Task 9- -[lttz_ll_fetch_gauss] -icon = ui_inGame2_Izdelie_N62 -storyline = true -prior = 195 - -title = lttz_ll_fetch_gauss_task_title -target_functor = task_targets_lostzone_all -status_functor = special_steps_for_lostzone_tasks -descr = {+wpn_gauss_quest} lttz_ll_fetch_gauss_task_descr2, lttz_ll_fetch_gauss_task_descr -stage_complete = 2 - -on_init = %=spawn_item_at_pos(wpn_gauss_quest) =create_squad(special_poltergeist_task_squad:zat_a23_smart_terrain)% -on_complete = %=reward_random_money(4000:6000) =complete_task_inc_goodwill(50:stalker) =lttz_ll_take_wpn_gauss_quest% -condlist_0 = {+stalker_rogue_living_legend_fetch_complete} complete -condlist_1 = {+stalker_rogue_dead} fail - -;------------------------------------------------ -; Living Legend Task 10- -[lttz_ll_path_pripyat] -icon = ui_inGame2_Put_v_pripyat -prior = 195 -storyline = true - -title = lttz_ll_path_pripyat_task_title -target = {+stalker_rogue_underpass} lost_stalker_strelok, {+jupiter_underpass_monolith_ambush_squad_death} stalker_rogue, {+monolith_ambush} jupiter_underpass_monolith_ambush_squad, {=actor_on_level(jupiter_underground)} lost_stalker_strelok, jupiter_space_restrictor_to_jupiter_ug -descr = {+stalker_rogue_underpass} lttz_ll_reach_pripyat_task_descr, {+jupiter_underpass_monolith_ambush_squad_death} lttz_ll_talk_rogue_underpass_task_descr, lttz_ll_path_pripyat_task_descr - -on_init = %=create_squad(jupiter_underpass_monolith_ambush:pas_b400_hall) =create_squad(lost_stalker_strelok_squad:pri_a16) =create_squad(stalker_stitch_squad:pri_a16) =open_route(jup:jup_u)% -on_complete = %=complete_task_inc_goodwill(50:stalker) =remove_special_task_squad(stalker_rogue) =create_squad(pri_a16_stalker_rogue_squad:pri_a16) +lttz_ll_preparations% -condlist_0 = {+living_legend_strelok_start} complete -condlist_1 = {+stalker_rogue_dead} fail - -;------------------------------------------------ -; Living Legend Task 11- -[lttz_ll_medical_supplies] -icon = ui_inGame2_Pered_zadaniyami_voennih -storyline = true -prior = 195 -precondition = {+living_legend_stitch_supplies -stitch_supplies} true, false - -title = lttz_ll_medical_supplies_name -title_functor = general_fetch_task -target = stalker_stitch -status_functor = actor_has_fetch_item -descr = lttz_ll_medical_supplies_text -descr_functor = general_fetch_task -stage_complete = 1 - -on_init = %=setup_fetch_task(lttz_ll_medical_supplies_fetch:medical:4:6) +stitch_supplies% -on_complete = %+lttz_ll_medical_supplies_task_done =complete_task_inc_goodwill(50:stalker) =fetch_reward_and_remove(lttz_ll_medical_supplies_fetch:1.25) =reward_stash(true) =pstor_reset(lttz_ll_medical_supplies_fetch)% -on_fail = %=pstor_reset(lttz_ll_medical_supplies_fetch)% -condlist_0 = {+living_legend_stitch_supplies_complete} complete -condlist_1 = {+stalker_stitch_dead} fail - -;------------------------------------------------ -; Living Legend Task 12- -[lttz_ll_attack_on_titan] -icon = ui_inGame2_PD_Ohotnik_na_mutantov -storyline = true -prior = 195 -precondition = {+living_legend_stitch_supplies -rogue_titan} true, false - -title = lttz_ll_attack_on_titan_name -target_functor = task_targets_lostzone_all -status_functor = special_steps_for_lostzone_tasks -descr = {+special_gigant_task_squad_dead} lttz_ll_return_rogue_attack_on_titan_task_descr, lttz_ll_attack_on_titan_text -stage_complete = 2 - -on_init = %=create_squad(special_gigant_task_squad:pri_sim_3) +rogue_titan% -on_complete = %+lttz_ll_attack_on_titan_task_done =reward_money(6000) =reward_item(swiss_knife) =complete_task_inc_goodwill(50:stalker)% -condlist_0 = {+living_legend_rogue_titan_complete} complete -condlist_1 = {+stalker_rogue_dead} fail - -;------------------------------------------------ -; Living Legend Task 13- -[lttz_ll_find_documents] -icon = ui_inGame2_Laboratoriya_X8 -prior = 195 -storyline = true -precondition = {+living_legend_stitch_supplies -strelok_x8} true, false - -title = lttz_ll_find_documents_name -target = {=actor_has_item(x8_documents)} lost_stalker_strelok, {=actor_on_level(labx8)} nil, pri_space_restrictor_to_labx8 -descr = lttz_ll_find_documents_text - -on_init = %=spawn_x8_documents() +strelok_x8 =open_route(out:x8)% -on_complete = %=reward_random_item(af_grid_up:af_freon_up:af_cooler_up:af_kevlar_up) =reward_stash(true) =complete_task_inc_goodwill(50:stalker) =lttz_ll_take_x8_documents% -condlist_0 = {+living_legend_strelok_preparations} complete -condlist_1 = {+lost_stalker_strelok_dead} fail - -;------------------------------------------------ -; Living Legend Task 14- -[lttz_ll_eidolon_start] -icon = ui_inGame2_Vizhivshiy_monolit -prior = 195 -storyline = true - -title = lttz_ll_eidolon_start_task_title -target = {+stalker_stitch_join_eidolon +stalker_rogue_join_eidolon} monolith_eidolon_recon_squad, {-stalker_rogue_join_eidolon} pri_a16_stalker_rogue, {-stalker_stitch_join_eidolon} stalker_stitch -descr = lttz_ll_eidolon_start_task_descr - -on_init = %=create_squad(monolith_eidolon_recon_squad:pri_sim_5) =create_squad(monolith_eidolon_squad:pri_monolith)% -on_complete = %=give_task(lttz_ll_eidolon)% -condlist_0 = {+monolith_eidolon_recon_squad_death} complete -condlist_1 = {+lost_stalker_strelok_dead} fail, {+stalker_stitch_dead} fail, {+stalker_rogue_dead} fail - -;------------------------------------------------ -; Living Legend Task 15- -[lttz_ll_eidolon] -icon = ui_inGame2_Odin_vistrel -prior = 195 -storyline = true - -title = lttz_ll_eidolon_task_title -target_functor = task_targets_lostzone_all -descr = lttz_ll_eidolon_task_descr - -on_init = %=create_squad(monolith_eidolon_assault_squad:pri_monolith) =open_route(out:pri) =open_route(aes1:pri) =open_route(aes1:sar)% -on_complete = %=give_task(lttz_ll_strelok_objective)% -condlist_0 = {+monolith_eidolon_dead} complete -condlist_1 = {+lost_stalker_strelok_dead} fail, {+stalker_stitch_dead} fail, {+stalker_rogue_dead} fail - -;------------------------------------------------ -; Living Legend Task 16- -[lttz_ll_strelok_objective] -icon = ui_iconsNpc_strelok -prior = 195 -storyline = true - -title = lttz_ll_strelok_objective_task_title -target = lost_stalker_strelok -descr = lttz_ll_strelok_objective_task_descr - -on_complete = %=reward_money(10000) =reward_random_item(af_aam:af_gravi_af_aam:af_fireball_af_aam:af_electra_moonlight_af_aam) =reward_item(decoder) =reward_stash(true) =complete_task_inc_goodwill(50:stalker) =give_task(lttz_ll_chernobyl_raid)% -condlist_0 = {+living_legend_strelok_objective} complete -condlist_1 = {+lost_stalker_strelok_dead} fail, {+stalker_stitch_dead} fail, {+stalker_rogue_dead} fail - -;------------------------------------------------ -; Living Legend Task 17- -[lttz_ll_chernobyl_raid] -icon = ui_iconsTotal_sar_warlab -prior = 195 -storyline = true - -title = lttz_ll_chernobyl_raid_task_title -target_functor = task_targets_lostzone_all -descr = lttz_ll_chernobyl_raid_task_descr - -on_init = %=create_squad(monolith_chernobyl_defence_squad:aes_smart_terrain_monolit_blockpost4)% -on_complete = %=give_task(lttz_ll_crucible)% -condlist_0 = {+monolith_chernobyl_defence_squad_death} complete -condlist_1 = {+lost_stalker_strelok_dead} fail, {+stalker_stitch_dead} fail, {+stalker_rogue_dead} fail - -;------------------------------------------------ -; Crucible Living Legend Task 18- -[lttz_ll_crucible] -icon = ui_iconsTotal_sar_secret_lab -prior = 195 -storyline = true - -title = lttz_ll_crucible_task_title -target = {+sar_enter_command_center} monolith_shard_guardian_squad, {+actor_in_sarcofag} monolith_shard_guardian_squad, aes_space_restrictor_to_sarcofag -descr = lttz_ll_crucible_task_descr - -on_init = %=spawn_monolith_shard() =create_squad(monolith_shard_guardian_squad:sar_monolith_guard)% -on_complete = %=give_task(lttz_ll_answers) +lttz_ll_crucible_task_done% -condlist_0 = {=actor_has_item(monolith_shard) +monolith_shard_guardian_squad_dead} complete -condlist_1 = {+lost_stalker_strelok_dead} fail, {+stalker_stitch_dead} fail, {+stalker_rogue_dead} fail - -;------------------------------------------------ -; Living Legend Task 19- -[lttz_ll_answers] -icon = ui_inGame2_PD_WishfulThinking -prior = 195 -storyline = true - -title = lttz_ll_answers_task_title -target = lost_stalker_strelok -descr = lttz_ll_answers_task_descr - -on_complete = %=complete_task_inc_goodwill(50:stalker) =reward_item(af_fuzz_kolobok_af_aam) =lttz_ll_give_strelok_pendrive =lttz_ll_take_monolith_shard =remove_special_task_squad(lost_stalker_strelok) =remove_special_task_squad(stalker_stitch) =remove_special_task_squad(pri_a16_stalker_rogue) =open_route(aes2:aes1) =open_route(aes1:zat)% -condlist_0 = {+lost_stalker_strelok_dead} fail, {+stalker_stitch_dead} fail, {+stalker_rogue_dead} fail - -;------------------------------------------------ -; Finish Living Legend Task 20- -[lttz_ll_finish_dolg] -icon = ui_iconsNpc_stalker_do_komandir -prior = 195 -storyline = true - -title = lttz_ll_finish_task_title -target = bar_dolg_leader -descr = lttz_ll_finish_dolg_task_descr - -on_complete = %=reward_money(30000) =reward_stash() =complete_task_inc_goodwill(100:dolg) =lttz_ll_take_strelok_pendrive% -condlist_0 = {+voronin_living_legend_finish} complete - -[lttz_ll_finish_killer] -icon = ui_iconsNpc_stalker_ki_informator -prior = 195 -storyline = true - -title = lttz_ll_finish_task_title -target = cit_killers_merc_trader_stalker -descr = lttz_ll_finish_killer_task_descr - -on_complete = %=reward_money(35000) =reward_stash() =complete_task_inc_goodwill(100:killer) =lttz_ll_take_strelok_pendrive% -condlist_0 = {+dushman_living_legend_finish} complete - -[lttz_ll_finish_stalker] -icon = ui_iconsNpc_trader -prior = 195 -storyline = true - -title = lttz_ll_finish_task_title -target = esc_m_trader -descr = lttz_ll_finish_stalker_task_descr - -on_complete = %=reward_money(30000) =reward_stash() =complete_task_inc_goodwill(100:stalker) =lttz_ll_take_strelok_pendrive% -condlist_0 = {+sidorovich_living_legend_finish} complete - -[lttz_ll_finish_csky] -icon = ui_iconsTotal_tutorial_help_wounded -prior = 195 -storyline = true - -title = lttz_ll_finish_task_title -target = mar_smart_terrain_base_stalker_leader_marsh -descr = lttz_ll_finish_csky_task_descr - -on_complete = %=reward_money(25000) =reward_item(af_aac) =reward_stash() =complete_task_inc_goodwill(100:csky) =lttz_ll_take_strelok_pendrive% -condlist_0 = {+cold_living_legend_finish} complete - -[lttz_ll_finish_freedom] -icon = ui_iconsNpc_stalker_sv_leader -prior = 195 -storyline = true - -title = lttz_ll_finish_task_title -target = mil_smart_terrain_7_7_freedom_leader_stalker -descr = lttz_ll_finish_freedom_task_descr - -on_complete = %=reward_money(30000) =reward_item(cigar3__3) =reward_stash() =complete_task_inc_goodwill(100:freedom) =lttz_ll_take_strelok_pendrive% -condlist_0 = {+lukash_living_legend_finish} complete - -[lttz_ll_finish_ecolog] -icon = ui_iconsNpc_ucheniy_2 -prior = 195 -storyline = true - -title = lttz_ll_finish_task_title -target = yan_stalker_sakharov -descr = lttz_ll_finish_ecolog_task_descr - -on_complete = %=reward_money(25000) =reward_item(af_aam) =reward_stash() =complete_task_inc_goodwill(100:ecolog) =lttz_ll_take_strelok_pendrive% -condlist_0 = {+sakharov_living_legend_finish} complete \ No newline at end of file diff --git a/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_BAR.ltx b/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_BAR.ltx new file mode 100644 index 00000000..31649ae1 --- /dev/null +++ b/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_BAR.ltx @@ -0,0 +1,7 @@ +![bar_space_restrictor_to_military_01] +enable = false +spot = level_changer_spot_mini + +![mil_space_restrictor_to_bar_1] +enable = false +spot = level_changer_spot_mini diff --git a/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_CIT.ltx b/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_CIT.ltx new file mode 100644 index 00000000..d9b252c7 --- /dev/null +++ b/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_CIT.ltx @@ -0,0 +1,8 @@ +![cit_space_restrictor_to_yantar] +enable = false +spot = level_changer_spot_mini + +![yan_space_restrictor_to_dead_city_1] +enable = false +spot = level_changer_spot_mini + diff --git a/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_ESC.ltx b/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_ESC.ltx new file mode 100644 index 00000000..b4df2ce0 --- /dev/null +++ b/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_ESC.ltx @@ -0,0 +1,15 @@ +![esc_space_restrictor_to_garbage_1] +enable = false +spot = level_changer_spot_mini + +![esc_space_restrictor_to_garbage_2] +enable = false +spot = level_changer_spot_mini + +![gar_space_restrictor_to_escape_1] +enable = false +spot = level_changer_spot_mini + +![gar_space_restrictor_to_escape_2] +enable = false +spot = level_changer_spot_mini diff --git a/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_MIL.ltx b/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_MIL.ltx new file mode 100644 index 00000000..82d2860a --- /dev/null +++ b/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_MIL.ltx @@ -0,0 +1,44 @@ +![mil_space_restrictor_to_red_1] +enable = false +spot = level_changer_spot_mini + +![mil_space_restrictor_to_radar_1] +spot = level_changer_up_right + +![mil_space_restrictor_to_dead_city_1] +enable = false +spot = level_changer_spot_mini + +;[mil_space_restrictor_to_tc] +;enable = false +;spot = level_changer_spot_mini + +![cit_space_restrictor_to_military] +enable = false +spot = level_changer_spot_mini + +![red_space_restrictor_to_military_1] +enable = false +spot = level_changer_spot_mini + +![red_space_restrictor_to_radar_1] +enable = false +spot = level_changer_spot_mini + +![rad_space_restrictor_to_red_forest] +enable = false +spot = level_changer_spot_mini + +;[tc_space_restrictor_to_military_1] +;enable = false +;spot = level_changer_spot_mini + +;[tc_space_restrictor_to_military_2] +;enable = false +;spot = level_changer_spot_mini + +;[tc_space_restrictor_to_military_3] +;enable = false +;spot = level_changer_spot_mini + + diff --git a/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_POL.ltx b/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_POL.ltx new file mode 100644 index 00000000..00445b82 --- /dev/null +++ b/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_POL.ltx @@ -0,0 +1,8 @@ +![pol_space_restrictor_to_escape_1] +enable = false +spot = level_changer_spot_mini + +![esc_space_restrictor_to_pole_1] +enable = false +spot = level_changer_spot_mini + diff --git a/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_VAL.ltx b/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_VAL.ltx new file mode 100644 index 00000000..dad675ab --- /dev/null +++ b/mods/Redone Collection/gamedata/configs/mod_sr_teleport_sections_VAL.ltx @@ -0,0 +1,15 @@ +![val_space_restrictor_to_garbage_1] +enable = false +spot = level_changer_spot_mini + +![val_space_restrictor_to_garbage_2] +enable = false +spot = level_changer_spot_mini + +![gar_space_restrictor_to_darkvalley_1] +enable = false +spot = level_changer_spot_mini + +![gar_space_restrictor_to_darkvalley_2] +enable = false +spot = level_changer_spot_mini diff --git a/mods/Redone Collection/gamedata/configs/plugins/;mod_new_game_setup_ROS.ltx b/mods/Redone Collection/gamedata/configs/plugins/;mod_new_game_setup_ROS.ltx new file mode 100644 index 00000000..f1109cf6 --- /dev/null +++ b/mods/Redone Collection/gamedata/configs/plugins/;mod_new_game_setup_ROS.ltx @@ -0,0 +1,7 @@ +![remove_objects] ;do not use. Also delete lights at Bar and ESC +;light_alarm_glass_0000 +;light_alarm_glass_0003 +;light_alarm_glass_0004 +;light_alarm_glass_0006 +;light_alarm_glass_0007 +;light_alarm_glass_0008 \ No newline at end of file diff --git a/mods/Redone Collection/gamedata/configs/plugins/mod_new_game_setup_ESC.ltx b/mods/Redone Collection/gamedata/configs/plugins/mod_new_game_setup_ESC.ltx index 5022ab54..8628265b 100644 --- a/mods/Redone Collection/gamedata/configs/plugins/mod_new_game_setup_ESC.ltx +++ b/mods/Redone Collection/gamedata/configs/plugins/mod_new_game_setup_ESC.ltx @@ -67,13 +67,13 @@ !esc_zone_mine_field_soc_0064 !esc_zone_mine_field_soc_0065 -!esc_zone_witches_galantine +;esc_zone_witches_galantine !esc_zone_witches_galantine_0000 -!esc_zone_witches_galantine_0001 +;esc_zone_witches_galantine_0001 !esc_zone_witches_galantine_0002 -!esc_zone_witches_galantine_0003 +;esc_zone_witches_galantine_0003 !esc_zone_witches_galantine_0004 -!esc_zone_witches_galantine_0005 +;esc_zone_witches_galantine_0005 !esc_zone_witches_galantine_0006 -!esc_zone_witches_galantine_0007 +;esc_zone_witches_galantine_0007 diff --git a/mods/Redone Collection/gamedata/configs/plugins/mod_new_game_setup_ROS.ltx b/mods/Redone Collection/gamedata/configs/plugins/mod_new_game_setup_ROS.ltx deleted file mode 100644 index 583f2b19..00000000 --- a/mods/Redone Collection/gamedata/configs/plugins/mod_new_game_setup_ROS.ltx +++ /dev/null @@ -1,4 +0,0 @@ -![remove_objects] -light_alarm_glass_0000 -light_alarm_glass_0003 -light_alarm_glass_0004 \ No newline at end of file diff --git a/mods/Redone Collection/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_1.ltx b/mods/Redone Collection/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_1.ltx index d3768a75..2aad389e 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_1.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_1.ltx @@ -2,30 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(agr_smart_terrain_4_6) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(agr_smart_terrain_4_6) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(agr_smart_terrain_5_4) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(agr_smart_terrain_5_4) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(agr_smart_terrain_5_7) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(agr_smart_terrain_5_7) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(agr_smart_terrain_7_5) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(agr_smart_terrain_7_5) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(agr_smart_terrain_4_6) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(agr_smart_terrain_4_6) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(agr_smart_terrain_5_4) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(agr_smart_terrain_5_4) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(agr_smart_terrain_5_7) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(agr_smart_terrain_5_7) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(agr_smart_terrain_7_5) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(agr_smart_terrain_7_5) =is_dark_night} ph_idle@spawn_dark_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_mix_zombie_night:agr_smart_terrain_4_6)% ph_idle@reset, {~30} %=create_squad(simulation_snork_night:agr_smart_terrain_4_6)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:agr_smart_terrain_4_6)% ph_idle@reset, {~50} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_4_6)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:agr_smart_terrain_4_6)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:agr_smart_terrain_4_6)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:agr_smart_terrain_4_6)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_4_6)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_psysucker_brown_night:agr_smart_terrain_4_6)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:agr_smart_terrain_4_6)% ph_idle@reset, {~10} %=create_squad(simulation_psy_dog_night:agr_smart_terrain_4_6)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_4_6)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:agr_smart_terrain_5_4)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:agr_smart_terrain_5_4)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:agr_smart_terrain_5_4)% ph_idle@reset_2, {~50} %=create_squad(simulation_bloodsucker_red_night:agr_smart_terrain_5_4)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:agr_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_3_6_night:agr_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_tushkano_night:agr_smart_terrain_5_4)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_2_5_night:agr_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_brown_night:agr_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_red_night:agr_smart_terrain_5_4)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~30} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~40} %=create_squad(simulation_karlik_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~50} %=create_squad(simulation_lurker_brown_night:agr_smart_terrain_5_7)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_lurker_brown_night:agr_smart_terrain_5_7)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_lurker_brown_night:agr_smart_terrain_5_7)% ph_idle@reset_3, ph_idle@wait_reset + [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~30} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~40} %=create_squad(simulation_psy_dog_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~50} %=create_squad(simulation_karlik_night:agr_smart_terrain_7_5)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_zombie_blind_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_cat_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_psy_dog_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_karlik_night:agr_smart_terrain_7_5)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~20} %=create_squad(simulation_psy_dog_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~20} %=create_squad(simulation_karlik_night:agr_smart_terrain_7_5)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_2.ltx index 3c1dafab..44854661 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_2.ltx @@ -2,31 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(agr_smart_terrain_5_2) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(agr_smart_terrain_5_2) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(agr_smart_terrain_5_3) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(agr_smart_terrain_5_3) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(agr_smart_terrain_4_4_near_1) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(agr_smart_terrain_4_4_near_1) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(agr_smart_terrain_4_4_near_3) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(agr_smart_terrain_4_4_near_3) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(agr_smart_terrain_5_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(agr_smart_terrain_5_2) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(agr_smart_terrain_5_3) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(agr_smart_terrain_5_3) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(agr_smart_terrain_4_4_near_1) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(agr_smart_terrain_4_4_near_1) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(agr_smart_terrain_4_4_near_3) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(agr_smart_terrain_4_4_near_3) =is_dark_night} ph_idle@spawn_dark_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_5_2)% ph_idle@reset, {~30} %=create_squad(simulation_dog_night:agr_smart_terrain_5_2)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:agr_smart_terrain_5_2)% ph_idle@reset, {~50} %=create_squad(simulation_boar_3_5_night:agr_smart_terrain_5_2)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_5_2)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:agr_smart_terrain_5_2)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:agr_smart_terrain_5_2)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:agr_smart_terrain_5_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_psy_dog_night:agr_smart_terrain_5_2)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:agr_smart_terrain_5_2)% ph_idle@reset, {~20} %=create_squad(simulation_psysucker_brown_night:agr_smart_terrain_5_2)% ph_idle@reset, {~20} %=create_squad(simulation_bloodsucker_red_night:agr_smart_terrain_5_2)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_tushkano_night:agr_smart_terrain_5_3)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:agr_smart_terrain_5_3)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:agr_smart_terrain_5_3)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_5_3)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:agr_smart_terrain_5_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_5_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:agr_smart_terrain_5_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_5_3)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_bloodsucker_red_night:agr_smart_terrain_5_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_lurker_blue_night:agr_smart_terrain_5_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:agr_smart_terrain_5_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_5_3)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psy_dog_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~30} %=create_squad(simulation_psysucker_white_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~40} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~50} %=create_squad(simulation_karlik_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_cat_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~10} %=create_squad(simulation_tushkano_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psy_dog_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_lurker_blue_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~30} %=create_squad(simulation_dog_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~40} %=create_squad(simulation_cat_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~50} %=create_squad(simulation_snork_2_3_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_mix_zombie_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~10} %=create_squad(simulation_cat_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~10} %=create_squad(simulation_snork_2_3_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_lurker_blue_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~10} %=create_squad(simulation_karlik_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~10} %=create_squad(simulation_burer_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~10} %=create_squad(simulation_controller_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_3.ltx b/mods/Redone Collection/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_3.ltx index d440cd75..55d3a95b 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_3.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_3.ltx @@ -2,31 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(agr_smart_terrain_1_2) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(agr_smart_terrain_1_2) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(agr_smart_terrain_1_3) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(val_smart_terrain_6_5) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(agr_smart_terrain_2_2) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_8_7) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(agr_smart_terrain_4_4_near_2) =is_dark_night} ph_idle@spawn_night_monster_3, {agr_smart_terrain_4_4_near_2) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(agr_smart_terrain_1_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(agr_smart_terrain_1_2) =is_dark_night} ph_idle@spawn_night_monster_1 +on_info2 = {=actor_near_smart(agr_smart_terrain_1_3) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(agr_smart_terrain_1_3) =is_dark_night} ph_idle@spawn_night_monster_2 +on_info3 = {=actor_near_smart(agr_smart_terrain_2_2) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(agr_smart_terrain_2_2) =is_dark_night} ph_idle@spawn_night_monster_3 +on_info4 = {agr_smart_terrain_4_4_near_2) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(agr_smart_terrain_4_4_near_2) =is_dark_night} ph_idle@spawn_night_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_1_2)% ph_idle@reset, {~30} %=create_squad(simulation_fracture_night:agr_smart_terrain_1_2)% ph_idle@reset, {~40} %=create_squad(simulation_snork_night:agr_smart_terrain_1_2)% ph_idle@reset, {~50} %=create_squad(simulation_lurker_blue_night:agr_smart_terrain_1_2)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_night:agr_smart_terrain_1_2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_1_2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:agr_smart_terrain_1_2)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:agr_smart_terrain_1_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_1_2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_1_2)% ph_idle@reset, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:agr_smart_terrain_1_2)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:agr_smart_terrain_1_2)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:agr_smart_terrain_1_3)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:agr_smart_terrain_1_3)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:agr_smart_terrain_1_3)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_1_3)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:agr_smart_terrain_1_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_1_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:agr_smart_terrain_1_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_1_3)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_bloodsucker_red_night:agr_smart_terrain_1_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_1_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:agr_smart_terrain_1_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_brown_night:agr_smart_terrain_1_3)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_tushkano_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~30} %=create_squad(simulation_dog_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~40} %=create_squad(simulation_boar_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~50} %=create_squad(simulation_cat_night:agr_smart_terrain_2_2)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~10} %=create_squad(simulation_zombie_blind_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:agr_smart_terrain_2_2)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psysucker_brown_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~10} %=create_squad(simulation_psy_dog_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~10} %=create_squad(simulation_burer_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:agr_smart_terrain_2_2)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~30} %=create_squad(simulation_fracture_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~40} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~50} %=create_squad(simulation_lurker_blue_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_white_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_lurker_blue_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_2.ltx index 5e072089..70245852 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_2.ltx @@ -3,7 +3,7 @@ squad_id = 12 max_population = 2 respawn_params = respawn@agr_smart_terrain_5_2 respawn_only_smart = false -respawn_idle = 172800 +respawn_idle = 86400 respawn_radius = 50 ;arrive_dist = 0 ;smart_control = nil @@ -19,7 +19,7 @@ spawn_snork [spawn_all_normal] ;-- Normal mutants - Rates of groups:(1 tushkano + 2 dogs + 2 cats + 3 fleshes/boars) spawn_squads = simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_cat, simulation_mix_boar_flesh, simulation_flesh, simulation_boar -spawn_num = {~20} 1, 0 +spawn_num = {~50} 1, 0 [spawn_snork] ;-- Normal\Hard mutants - Rates of groups: ( 3 snork + 2 fracture ) spawn_squads = simulation_snork_2_3, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture, simulation_fracture diff --git a/mods/Redone Collection/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_6_6.ltx b/mods/Redone Collection/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_6_6.ltx index 26cf42dc..e1679e36 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_6_6.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_6_6.ltx @@ -3,7 +3,7 @@ squad_id = 17 max_population = 1 respawn_params = respawn@agr_smart_terrain_6_6 respawn_only_smart = false -respawn_idle = 259200 +respawn_idle = 86400 respawn_radius = 50 ;arrive_dist = 0 ;smart_control = nil diff --git a/mods/Redone Collection/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_1.ltx b/mods/Redone Collection/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_1.ltx index 0264aecf..d2262843 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_1.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_1.ltx @@ -5,25 +5,29 @@ active = ph_idle@check on_info = {+bar_stalker_barman_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(bar_zastava_dogs_lair) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(bar_zastava_dogs_lair) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(bar_zastava) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(bar_zastava) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(val_smart_terrain_8_9) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_8_9) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(val_smart_terrain_9_10) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_9_10) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(bar_zastava_dogs_lair) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(bar_zastava_dogs_lair) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(bar_zastava) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(bar_zastava) =is_dark_night} ph_idle@spawn_dark_monster_2 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_mix_zombie_night:bar_zastava_dogs_lair)% ph_idle@reset, {~30} %=create_squad(simulation_snork_night:bar_zastava_dogs_lair)% ph_idle@reset, {~40} %=create_squad(simulation_bloodsucker_1_2_night:bar_zastava_dogs_lair)% ph_idle@reset, {~50} %=create_squad(simulation_bloodsucker_2weak_night:bar_zastava_dogs_lair)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:bar_zastava_dogs_lair)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:bar_zastava_dogs_lair)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:bar_zastava_dogs_lair)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:bar_zastava_dogs_lair)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:bar_zastava_dogs_lair)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:bar_zastava_dogs_lair)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_1_2_night:bar_zastava_dogs_lair)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_2weak_night:bar_zastava_dogs_lair)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:bar_zastava)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:bar_zastava)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:bar_zastava)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:bar_zastava)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:bar_zastava)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:bar_zastava)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:bar_zastava)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:bar_zastava)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_bloodsucker_1_2_night:bar_zastava)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:bar_zastava)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:bar_zastava)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_2weak_night:bar_zastava)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@wait_reset] -on_game_timer = 580 | ph_idle@wait_actor +on_game_timer = 480 | ph_idle@wait_actor [collide] ignore_static \ No newline at end of file diff --git a/mods/Redone Collection/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_2.ltx index cc28c74c..69a87d56 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_2.ltx @@ -5,17 +5,23 @@ active = ph_idle@check on_info = {+bar_stalker_barman_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(bar_zastava_dogs_lair_2) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(bar_zastava_dogs_lair_2) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(bar_zastava_2) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(bar_zastava_2) =is_night} ph_idle@spawn_night_monster_2 +on_info = {=actor_near_smart(bar_zastava_dogs_lair_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(bar_zastava_dogs_lair_2) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(bar_zastava_2) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(bar_zastava_2) =is_dark_night} ph_idle@spawn_dark_monster_2 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_pseudodog_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~30} %=create_squad(simulation_dog_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~40} %=create_squad(simulation_bloodsucker_1_2_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~50} %=create_squad(simulation_bloodsucker_2weak_night:bar_zastava_dogs_lair_2)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~10} %=create_squad(simulation_mix_zombie_night:bar_zastava_dogs_lair_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_2weak_night:bar_zastava_dogs_lair_2)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_tushkano_night:bar_zastava_2)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:bar_zastava_2)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:bar_zastava_2)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:bar_zastava_2)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:bar_zastava_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_dog_night:bar_zastava_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_mix_zombie_night:bar_zastava_2)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:bar_zastava_2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_psysucker_night:bar_zastava_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:bar_zastava_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:bar_zastava_2)% ph_idle@reset_2, {~50} %=create_squad(simulation_bloodsucker_night:bar_zastava_2)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_3.ltx b/mods/Redone Collection/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_3.ltx index d1e1df5f..16b9b6d7 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_3.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_3.ltx @@ -5,17 +5,23 @@ active = ph_idle@check on_info = {+bar_stalker_barman_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(bar_visitors) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(bar_visitors) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(bar_dolg_general) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(bar_dolg_general) =is_night} ph_idle@spawn_night_monster_2 +on_info = {=actor_near_smart(bar_visitors) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(bar_visitors) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(bar_dolg_general) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(bar_dolg_general) =is_dark_night} ph_idle@spawn_dark_monster_2 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_bloodsucker_night:bar_visitors)% ph_idle@reset, {~30} %=create_squad(simulation_fracture_night:bar_visitors)% ph_idle@reset, {~40} %=create_squad(simulation_snork_night:bar_visitors)% ph_idle@reset, {~50} %=create_squad(simulation_zombie_3_6:bar_visitors)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:bar_visitors)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:bar_visitors)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:bar_visitors)% ph_idle@reset, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:bar_visitors)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:bar_visitors)% ph_idle@reset, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:bar_visitors)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:bar_visitors)% ph_idle@reset, {~10} %=create_squad(simulation_bur_5rat_day_night:bar_visitors)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:bar_dolg_general)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:bar_dolg_general)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:bar_dolg_general)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:bar_dolg_general)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_mix_zombie_night:bar_dolg_general)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:bar_dolg_general)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:bar_dolg_general)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:bar_dolg_general)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:bar_dolg_general)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:bar_dolg_general)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_night:bar_dolg_general)% ph_idle@reset_2, {~10} %=create_squad(simulation_contr_5rat_3tush_night:bar_dolg_general)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_1.ltx b/mods/Redone Collection/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_1.ltx index 670e2a71..9cd451d2 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_1.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_1.ltx @@ -2,24 +2,33 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(ds2_st_dogs) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(ds2_st_dogs) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(ds_grverfer2) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(ds_grverfer2) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(ds_ptr2) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(ds_ptr2) =is_night} ph_idle@spawn_night_monster_3 +on_info = {=actor_near_smart(ds2_st_dogs) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(ds2_st_dogs) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(ds_grverfer2) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(ds_grverfer2) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(ds_ptr2) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(ds_ptr2) =is_dark_night} ph_idle@spawn_dark_monster_3 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_mix_zombie_night:ds2_st_dogs)% ph_idle@reset, {~30} %=create_squad(simulation_cat_night:ds2_st_dogs)% ph_idle@reset, {~40} %=create_squad(simulation_mix_dogs_night:ds2_st_dogs)% ph_idle@reset, {~50} %=create_squad(simulation_pseudodog_night:ds2_st_dogs)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_boar_night:ds2_st_dogs)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:ds2_st_dogs)% ph_idle@reset, {~10} %=create_squad(simulation_mix_dogs_night:ds2_st_dogs)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:ds2_st_dogs)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:ds2_st_dogs)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_white_night:ds2_st_dogs)% ph_idle@reset, {~10} %=create_squad(simulation_mix_dogs_night:ds2_st_dogs)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_green_night:ds2_st_dogs)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_mix_dogs_night:ds_grverfer2)% ph_idle@reset_2, {~30} %=create_squad(simulation_cat_night:ds_grverfer2)% ph_idle@reset_2, {~40} %=create_squad(simulation_tushkano_night:ds_grverfer2)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:ds_grverfer2)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_mix_dogs_night:ds_grverfer2)% ph_idle@reset_2, {~10} %=create_squad(simulation_cat_night:ds_grverfer2)% ph_idle@reset_2, {~10} %=create_squad(simulation_tushkano_night:ds_grverfer2)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:ds_grverfer2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_mix_dogs_night:ds_grverfer2)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_white_night:ds_grverfer2)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_green_night:ds_grverfer2)% ph_idle@reset_2, {~10} %=create_squad(simulation_karlik_night:ds_grverfer2)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_lurker_blue_night:ds_ptr2)% ph_idle@reset_3, {~30} %=create_squad(simulation_lurker_blue_night:ds_ptr2)% ph_idle@reset_3, {~40} %=create_squad(simulation_cat_night:ds_ptr2)% ph_idle@reset_3, {~50} %=create_squad(simulation_dog_night:ds_ptr2)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_boar_night:ds_ptr2)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_3_5_night:ds_ptr2)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:ds_ptr2)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:ds_ptr2)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_lurker_blue_night:ds_ptr2)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:ds_ptr2)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:ds_ptr2)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_green_night:ds_ptr2)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_2.ltx index 7b013327..3ea50b74 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_2.ltx @@ -2,24 +2,33 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(ds_boars_nest) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(ds_boars_nest) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(ds2_st_hoofs) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(ds2_st_hoofs) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(ds_deb1) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(ds_deb1) =is_night} ph_idle@spawn_night_monster_3 +on_info = {=actor_near_smart(ds_boars_nest) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(ds_boars_nest) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(ds2_st_hoofs) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(ds2_st_hoofs) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(ds_deb1) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(ds_deb1) =is_dark_night} ph_idle@spawn_dark_monster_3 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_pseudodog_night:ds_boars_nest)% ph_idle@reset, {~30} %=create_squad(simulation_dog_night:ds_boars_nest)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:ds_boars_nest)% ph_idle@reset, {~50} %=create_squad(simulation_boar_3_5_night:ds_boars_nest)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_dog_night:ds_boars_nest)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:ds_boars_nest)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:ds_boars_nest)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:ds_boars_nest)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_fracture_night:ds_boars_nest)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:ds_boars_nest)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:ds_boars_nest)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:ds_boars_nest)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_tushkano_night:ds2_st_hoofs)% ph_idle@reset_2, {~30} %=create_squad(simulation_cat_night:ds2_st_hoofs)% ph_idle@reset_2, {~40} %=create_squad(simulation_dog_night:ds2_st_hoofs)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:ds2_st_hoofs)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:ds2_st_hoofs)% ph_idle@reset_2, {~10} %=create_squad(simulation_cat_night:ds2_st_hoofs)% ph_idle@reset_2, {~10} %=create_squad(simulation_dog_night:ds2_st_hoofs)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:ds2_st_hoofs)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_psy_dog_night:ds2_st_hoofs)% ph_idle@reset_2, {~10} %=create_squad(simulation_lurker_blue_night:ds2_st_hoofs)% ph_idle@reset_2, {~10} %=create_squad(simulation_dog_night:ds2_st_hoofs)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:ds2_st_hoofs)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psy_dog_night:ds_deb1)% ph_idle@reset_3, {~30} %=create_squad(simulation_psysucker_white_night:ds_deb1)% ph_idle@reset_3, {~40} %=create_squad(simulation_bloodsucker_night:ds_deb1)% ph_idle@reset_3, {~50} %=create_squad(simulation_karlik_night:ds_deb1)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_dog_5_7_night:ds_deb1)% ph_idle@reset_3, {~10} %=create_squad(simulation_flesh_night:ds_deb1)% ph_idle@reset_3, {~10} %=create_squad(simulation_mix_boar_flesh_night:ds_deb1)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:ds_deb1)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psy_dog_night:ds_deb1)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:ds_deb1)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:ds_deb1)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:ds_deb1)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_3.ltx b/mods/Redone Collection/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_3.ltx index 1b10504c..5ff88a7e 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_3.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_3.ltx @@ -2,24 +2,33 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(ds_kem1) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(ds_kem1) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(ds_kem3) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(ds_kem3) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(ds_ptr3) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(ds_ptr3) =is_night} ph_idle@spawn_night_monster_3 +on_info = {=actor_near_smart(ds_kem1) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(ds_kem1) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(ds_kem3) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(ds_kem3) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(ds_ptr3) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(ds_ptr3) =is_dark_night} ph_idle@spawn_dark_monster_3 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_bloodsucker_green_night:ds_kem1)% ph_idle@reset, {~30} %=create_squad(simulation_fracture_night:ds_kem1)% ph_idle@reset, {~40} %=create_squad(simulation_snork_night:ds_kem1)% ph_idle@reset, {~50} %=create_squad(simulation_lurker_blue_night:ds_kem1)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_tushkano_night:ds_kem1)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:ds_kem1)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:ds_kem1)% ph_idle@reset, {~10} %=create_squad(simulation_flesh_night:ds_kem1)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_green_night:ds_kem1)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:ds_kem1)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:ds_kem1)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:ds_kem1)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:ds_kem3)% ph_idle@reset_2, {~30} %=create_squad(simulation_bloodsucker_green_night:ds_kem3)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:ds_kem3)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:ds_kem3)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:ds_kem3)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:ds_kem3)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:ds_kem3)% ph_idle@reset_2, {~10} %=create_squad(simulation_psy_dog_night:ds_kem3)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:ds_kem3)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_green_night:ds_kem3)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:ds_kem3)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:ds_kem3)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_tushkano_night:ds_ptr3)% ph_idle@reset_3, {~30} %=create_squad(simulation_mix_dogs_night:ds_ptr3)% ph_idle@reset_3, {~40} %=create_squad(simulation_boar_night:ds_ptr3)% ph_idle@reset_3, {~50} %=create_squad(simulation_cat_3_5_night:ds_ptr3)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:ds_ptr3)% ph_idle@reset_3, {~10} %=create_squad(simulation_mix_dogs_night:ds_ptr3)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:ds_ptr3)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_3_5_night:ds_ptr3)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_bloodsucker_green_night:ds_ptr3)% ph_idle@reset_3, {~10} %=create_squad(simulation_lurker_blue_night:ds_ptr3)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:ds_ptr3)% ph_idle@reset_3, {~10} %=create_squad(simulation_psy_dog_night:ds_ptr3)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/darkscape/smart/ds2_domik_st.ltx b/mods/Redone Collection/gamedata/configs/scripts/darkscape/smart/ds2_domik_st.ltx index 1a9a8bdb..20503fe8 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/darkscape/smart/ds2_domik_st.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/darkscape/smart/ds2_domik_st.ltx @@ -1,6 +1,6 @@ [smart_terrain] squad_id = 1 -max_population = 2 +max_population = 1 respawn_params = respawn@ds2_domik_st respawn_only_smart = false respawn_idle = 86400 @@ -12,9 +12,9 @@ respawn_radius = 50 ;safe_restr = nil ;spawn_point = nil -faction_controlled = stalker, csky, killer, bandit, renegade, army +faction_controlled = stalker, csky, ecolog, dolg, killer, bandit, renegade, isg default_faction = stalker -faction_respawn_num = {+lttz_hb_spawned_ds_isg_leader_squad -lttz_hb_removed_ds_isg_leader_squad} 0, 1 +faction_respawn_num = {+lttz_hb_spawned_ds_isg_leader_squad -lttz_hb_removed_ds_isg_leader_squad} 0, 2 ;[respawn@ds2_domik_st] ;-- Type: @@ -27,7 +27,7 @@ faction_respawn_num = {+lttz_hb_spawned_ds_isg_leader_squad -lttz_hb_removed_ds_ dasc_tech_mlr = darkscape\ds2_domik_st_smart_logic.ltx dasc_trade_mlr = darkscape\ds2_domik_st_smart_logic.ltx -ds_domik_isg_leader = darkscape\ds_domik_isg_leader.ltx +ds_domik_isg_leader = darkscape\ds_domik_isg_leader.ltx ds2_domik_st_camp_work_1 = darkscape\ds2_domik_st_smart_logic.ltx ds2_domik_st_camp_work_2 = darkscape\ds2_domik_st_smart_logic.ltx diff --git a/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_4_0.ltx b/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_4_0.ltx index 40b4b50e..85b58839 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_4_0.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_4_0.ltx @@ -1,6 +1,6 @@ [smart_terrain] squad_id = 3 -max_population = 2 +max_population = 1 respawn_params = respawn@val_smart_terrain_4_0 respawn_only_smart = false respawn_idle = 86400 diff --git a/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_11.ltx b/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_11.ltx index d16f79d3..2bc43e53 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_11.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_11.ltx @@ -1,6 +1,6 @@ [smart_terrain] squad_id = 17 -max_population = 2 +max_population = 1 ;respawn_params = respawn@val_smart_terrain_7_11 ;respawn_only_smart = false ;respawn_idle = 86400 diff --git a/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_4.ltx b/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_4.ltx index ce934554..ae065c66 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_4.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_4.ltx @@ -1,10 +1,10 @@ [smart_terrain] squad_id = 8 -max_population = 4 +max_population = 2 respawn_params = respawn@val_smart_terrain_7_4 respawn_only_smart = false respawn_idle = 86400 -respawn_radius = 50 +respawn_radius = 1000 ;arrive_dist = 0 ;smart_control = nil ;att_restr = nil diff --git a/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_4.ltx b/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_4.ltx index b236ee00..4921de92 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_4.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_4.ltx @@ -4,7 +4,7 @@ max_population = 2 respawn_params = respawn@val_smart_terrain_9_4 respawn_only_smart = false respawn_idle = 86400 -respawn_radius = 50 +respawn_radius = 1000 ;arrive_dist = 0 ;smart_control = nil ;att_restr = nil diff --git a/mods/Redone Collection/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_1.ltx b/mods/Redone Collection/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_1.ltx index 51a3a846..59ca8c03 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_1.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_1.ltx @@ -2,33 +2,47 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(val_smart_terrain_3_0) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(val_smart_terrain_3_0) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(val_smart_terrain_7_11) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(val_smart_terrain_7_11) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(val_smart_terrain_8_9) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_8_9) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(val_smart_terrain_9_10) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_9_10) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(val_smart_terrain_3_0) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(val_smart_terrain_3_0) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(val_smart_terrain_7_11) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(val_smart_terrain_7_11) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(val_smart_terrain_8_9) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_8_9) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(val_smart_terrain_9_10) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(val_smart_terrain_9_10) =is_dark_night} ph_idle@spawn_dark_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_mix_zombie_night:val_smart_terrain_3_0)% ph_idle@reset, {~30} %=create_squad(simulation_snork_night:val_smart_terrain_3_0)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:val_smart_terrain_3_0)% ph_idle@reset, {~50} %=create_squad(simulation_pseudodog_night:val_smart_terrain_3_0)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10 } %=create_squad(simulation_tushkano_night:val_smart_terrain_3_0)% ph_idle@reset, {~10} %=create_squad(simulation_boar_night:val_smart_terrain_3_0)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_3_0)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:val_smart_terrain_3_0)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:val_smart_terrain_3_0)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:val_smart_terrain_3_0)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:val_smart_terrain_3_0)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:val_smart_terrain_3_0)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:val_smart_terrain_7_11)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:val_smart_terrain_7_11)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:val_smart_terrain_7_11)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:val_smart_terrain_7_11)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:val_smart_terrain_7_11)% ph_idle@reset_2, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_7_11)% ph_idle@reset_2, {~10} %=create_squad(simulation_flesh_night:val_smart_terrain_7_11)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:val_smart_terrain_7_11)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:val_smart_terrain_7_11)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:val_smart_terrain_7_11) +% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_3_6_night:val_smart_terrain_7_11)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:val_smart_terrain_7_11)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~30} %=create_squad(simulation_bloodsucker_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~40} %=create_squad(simulation_karlik_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~50} %=create_squad(simulation_lurker_brown_night:val_smart_terrain_8_9)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:val_smart_terrain_8_9)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~10} %=create_squad(simulation_lurker_brown_night:val_smart_terrain_8_9)% ph_idle@reset_3, ph_idle@wait_reset + [ph_idle@reset_3] -on_game_timer = 86400 | ph_idle@wait_actor +on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~30} %=create_squad(simulation_bloodsucker_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~40} %=create_squad(simulation_psy_dog_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~50} %=create_squad(simulation_karlik_night:val_smart_terrain_9_10)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_psy_dog_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_flesh_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_cat_night:val_smart_terrain_9_10)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_chimera_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_gigant_night:val_smart_terrain_9_10)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] -on_game_timer = 86400 | ph_idle@wait_actor +on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@wait_reset] on_game_timer = 580 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_2.ltx index 91ba19df..edfcdb1d 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_2.ltx @@ -2,31 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(val_smart_terrain_5_7) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(val_smart_terrain_5_7) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(val_smart_terrain_5_8) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(val_smart_terrain_5_8) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(val_smart_terrain_7_8) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_7_8) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(val_smart_terrain_5_10) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_5_10) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(val_smart_terrain_5_7) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(val_smart_terrain_5_7) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(val_smart_terrain_5_8) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(val_smart_terrain_5_8) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(val_smart_terrain_7_8) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_7_8) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(val_smart_terrain_5_10) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(val_smart_terrain_5_10) =is_dark_night} ph_idle@spawn_dark_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_pseudodog_night:val_smart_terrain_5_7)% ph_idle@reset, {~30} %=create_squad(simulation_dog_night:val_smart_terrain_5_7)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:val_smart_terrain_5_7)% ph_idle@reset, {~50} %=create_squad(simulation_boar_3_5_night:val_smart_terrain_5_7)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_cat_night:val_smart_terrain_5_7)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_5_7)% ph_idle@reset, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:val_smart_terrain_5_7)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:val_smart_terrain_5_7)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:val_smart_terrain_5_7)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_5_7)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:val_smart_terrain_5_7)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:val_smart_terrain_5_7)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_tushkano_night:val_smart_terrain_5_8)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:val_smart_terrain_5_8)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:val_smart_terrain_5_8)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:val_smart_terrain_5_8)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_5_8)% ph_idle@reset_2, {~10} %=create_squad(simulation_cat_night:val_smart_terrain_5_8)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_3_6_night:val_smart_terrain_5_8)%, {~10} %=create_squad(simulation_pseudodog_night:val_smart_terrain_5_8)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_bloodsucker_green_night:val_smart_terrain_5_8)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:val_smart_terrain_5_8)% ph_idle@reset_2, {~10} %=create_squad(simulation_lurker_night:val_smart_terrain_5_8)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:val_smart_terrain_5_8)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psy_dog_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~30} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~40} %=create_squad(simulation_bloodsucker_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~50} %=create_squad(simulation_karlik_night:val_smart_terrain_7_8)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_tushkano_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_mix_zombie_night:val_smart_terrain_7_8)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psy_dog_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:val_smart_terrain_7_8)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_lurker_blue_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~30} %=create_squad(simulation_dog_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~40} %=create_squad(simulation_cat_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~50} %=create_squad(simulation_boar_night:val_smart_terrain_5_10)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_cat_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:val_smart_terrain_5_10)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_lurker_blue_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:val_smart_terrain_5_10)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_3.ltx b/mods/Redone Collection/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_3.ltx index 7da2e798..e4094a79 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_3.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_3.ltx @@ -2,31 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(val_smart_terrain_6_4) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(val_smart_terrain_6_4) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(val_smart_terrain_6_5) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(val_smart_terrain_6_5) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(val_smart_terrain_8_7) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_8_7) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(val_smart_terrain_9_2) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_9_2) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(val_smart_terrain_6_4) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(val_smart_terrain_6_4) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(val_smart_terrain_6_5) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(val_smart_terrain_6_5) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(val_smart_terrain_8_7) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_8_7) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(val_smart_terrain_9_2) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(val_smart_terrain_9_2) =is_dark_night} ph_idle@spawn_dark_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_bloodsucker_night:val_smart_terrain_6_4)% ph_idle@reset, {~30} %=create_squad(simulation_fracture_night:val_smart_terrain_6_4)% ph_idle@reset, {~40} %=create_squad(simulation_snork_night:val_smart_terrain_6_4)% ph_idle@reset, {~50} %=create_squad(simulation_lurker_blue_night:val_smart_terrain_6_4)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_tushkano_night:val_smart_terrain_6_4)% ph_idle@reset, {~10} %=create_squad(simulation_boar_night:val_smart_terrain_6_4)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:val_smart_terrain_6_4)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_6_4)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_green_night:val_smart_terrain_6_4)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:val_smart_terrain_6_4)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:val_smart_terrain_6_4)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:val_smart_terrain_6_4)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:val_smart_terrain_6_5)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:val_smart_terrain_6_5)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:val_smart_terrain_6_5)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:val_smart_terrain_6_5)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:val_smart_terrain_6_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_6_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:val_smart_terrain_6_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:val_smart_terrain_6_5)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:val_smart_terrain_6_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:val_smart_terrain_6_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_white_night)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_green_night:val_smart_terrain_6_5)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_tushkano_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~30} %=create_squad(simulation_dog_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~40} %=create_squad(simulation_boar_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~50} %=create_squad(simulation_cat_night:val_smart_terrain_8_7)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:val_smart_terrain_8_7)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_green_night:val_smart_terrain_8_7)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_pseudodog_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~30} %=create_squad(simulation_fracture_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~40} %=create_squad(simulation_bloodsucker_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~50} %=create_squad(simulation_lurker_blue_night:val_smart_terrain_9_2)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_fracture_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_lurker_blue_night:val_smart_terrain_9_2)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_pseudodog_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_fracture_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_green_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_9_2)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_1.ltx b/mods/Redone Collection/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_1.ltx index 1fb6f04a..382218b5 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_1.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_1.ltx @@ -2,17 +2,23 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(zombie_smart_ds_mlr_1) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(zombie_smart_ds_mlr_1) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(cit_bandits_2) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(cit_bandits_2) =is_night} ph_idle@spawn_night_monster_2 +on_info = {=actor_near_smart(zombie_smart_ds_mlr_1) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(zombie_smart_ds_mlr_1) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(cit_bandits_2) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(cit_bandits_2) =is_dark_night} ph_idle@spawn_dark_monster_2 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_mix_zombie_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~30} %=create_squad(simulation_snork_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~40} %=create_squad(simulation_bloodsucker_red_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~50} %=create_squad(simulation_pseudodog_night:zombie_smart_ds_mlr_1)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_tushkano_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:zombie_smart_ds_mlr_1)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_brown_night:zombie_smart_ds_mlr_1)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_bloodsucker_red_night:cit_bandits_2)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:cit_bandits_2)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:cit_bandits_2)% ph_idle@reset_2, {~50} %=create_squad(simulation_snork_night:cit_bandits_2)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_cat_night:cit_bandits_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_dog_night:cit_bandits_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:cit_bandits_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_snork_night:cit_bandits_2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_bloodsucker_red_night:cit_bandits_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:cit_bandits_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:cit_bandits_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_brown_night:cit_bandits_2)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_2.ltx index 933c1466..dae95d9b 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_2.ltx @@ -2,17 +2,23 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(zombie_smart_ds_mlr_2) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(zombie_smart_ds_mlr_2) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(cit_killers_2) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(cit_killers_2) =is_night} ph_idle@spawn_night_monster_2 +on_info = {=actor_near_smart(zombie_smart_ds_mlr_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(zombie_smart_ds_mlr_2) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(cit_killers_2) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(cit_killers_2) =is_dark_night} ph_idle@spawn_dark_monster_2 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_bloodsucker_red_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~30} %=create_squad(simulation_psysucker_brown_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~50} %=create_squad(simulation_boar_3_5_night:zombie_smart_ds_mlr_2)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_tushkano_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:zombie_smart_ds_mlr_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_red_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_brown_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~10} %=create_squad(simulation_karlik_night:zombie_smart_ds_mlr_2)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_tushkano_night:cit_killers_2)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:cit_killers_2)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:cit_killers_2)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:cit_killers_2)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:cit_killers_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_dog_night:cit_killers_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:cit_killers_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:cit_killers_2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_psysucker_brown_night:cit_killers_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:cit_killers_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_red_night:cit_killers_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_karlik_night:cit_killers_2)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_3.ltx b/mods/Redone Collection/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_3.ltx index 90b8616c..3dcef9cb 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_3.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_3.ltx @@ -2,17 +2,23 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(cit_kanaliz1) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(cit_kanaliz1) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(cit_kanaliz2) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(cit_kanaliz2) =is_night} ph_idle@spawn_night_monster_2 +on_info = {=actor_near_smart(cit_kanaliz1) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(cit_kanaliz1) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(cit_kanaliz2) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(cit_kanaliz2) =is_dark_night} ph_idle@spawn_dark_monster_2 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_chimera_2weak_night:cit_kanaliz1)% ph_idle@reset, {~30} %=create_squad(simulation_fracture_night:cit_kanaliz1)% ph_idle@reset, {~40} %=create_squad(simulation_snork_night:cit_kanaliz1)% ph_idle@reset, {~50} %=create_squad(simulation_lurker_blue_night:cit_kanaliz1)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_dog_night:cit_kanaliz1)% ph_idle@reset, {~10} %=create_squad(simulation_boar_night:cit_kanaliz1)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:cit_kanaliz1)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:cit_kanaliz1)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_chimera_2weak_night:cit_kanaliz1)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:cit_kanaliz1)% ph_idle@reset, {~10} %=create_squad(simulation_gigant_night:cit_kanaliz1)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:cit_kanaliz1)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_chimera_2weak_night:cit_kanaliz2)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:cit_kanaliz2)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:cit_kanaliz2)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:cit_kanaliz2)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_cat_night:cit_kanaliz2)% ph_idle@reset_2, {~10} %=create_squad(simulation_mix_boar_flesh_night:cit_kanaliz2)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:cit_kanaliz2)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:cit_kanaliz2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_chimera_2weak_night:cit_kanaliz2)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:cit_kanaliz2)% ph_idle@reset_2, {~10} %=create_squad(simulation_gigant_night:cit_kanaliz2)% ph_idle@reset_2, {~10} %=create_squad(simulation_lurker_brown_night:cit_kanaliz2)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/dead_city/smart/cit_kanaliz2.ltx b/mods/Redone Collection/gamedata/configs/scripts/dead_city/smart/cit_kanaliz2.ltx index f48586fe..653045ef 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/dead_city/smart/cit_kanaliz2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/dead_city/smart/cit_kanaliz2.ltx @@ -1,6 +1,6 @@ [smart_terrain] squad_id = 3 -max_population = 2 +max_population = 1 respawn_params = respawn@cit_kanaliz2 respawn_only_smart = false respawn_idle = 172800 diff --git a/mods/Redone Collection/gamedata/configs/scripts/dead_city/smart/zombie_smart_ds_mlr_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/dead_city/smart/zombie_smart_ds_mlr_2.ltx index 8c3e77d7..7f2c8429 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/dead_city/smart/zombie_smart_ds_mlr_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/dead_city/smart/zombie_smart_ds_mlr_2.ltx @@ -1,6 +1,6 @@ [smart_terrain] squad_id = 26 -max_population = 2 +max_population = 1 respawn_params = respawn@zombie_smart_ds_mlr_2 respawn_only_smart = false respawn_idle = 172800 diff --git a/mods/Redone Collection/gamedata/configs/scripts/dead_city/smarts/zombie_smart_ds_mlr_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/dead_city/smarts/zombie_smart_ds_mlr_2.ltx index 8c3e77d7..7f2c8429 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/dead_city/smarts/zombie_smart_ds_mlr_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/dead_city/smarts/zombie_smart_ds_mlr_2.ltx @@ -1,6 +1,6 @@ [smart_terrain] squad_id = 26 -max_population = 2 +max_population = 1 respawn_params = respawn@zombie_smart_ds_mlr_2 respawn_only_smart = false respawn_idle = 172800 diff --git a/mods/Redone Collection/gamedata/configs/scripts/escape/esc_3_16_military_mechan_logic.ltx b/mods/Redone Collection/gamedata/configs/scripts/escape/esc_3_16_military_mechan_logic.ltx index 962344ad..084926ae 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/escape/esc_3_16_military_mechan_logic.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/escape/esc_3_16_military_mechan_logic.ltx @@ -38,7 +38,7 @@ help_wounded_enabled = false corpse_detection_enabled = false on_game_timer = 15000 | remark@drink_vodka -[remark@drink_vodka]:walker@base1 +[remark@drink_vodka]:walker@base_2 anim = animpoint_sit_ass_drink_vodka on_game_timer = 950 | walker@base_1 @@ -90,7 +90,7 @@ combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(a combat_ignore_keep_when_attacked = {=is_warfare} false, true meet = no_meet -[remark@drink]:walker@base1 +[remark@drink]:walker@mechan_mlr_access anim = animpoint_sit_ass_drink_vodka meet = meet on_game_timer = 2000 | walker@base_1 %=awr_timer_msg_off% diff --git a/mods/Redone Collection/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_1.ltx b/mods/Redone Collection/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_1.ltx index cd0cd58b..8a1d3f4e 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_1.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_1.ltx @@ -2,30 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(esc_smart_terrain_1_11) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(esc_smart_terrain_1_11) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(esc_smart_terrain_4_9) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(esc_smart_terrain_4_9) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(esc_smart_terrain_4_11) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(esc_smart_terrain_4_11) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(esc_smart_terrain_5_12) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(esc_smart_terrain_5_12) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(esc_smart_terrain_1_11) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(esc_smart_terrain_1_11) =is_dark_night} ph_idle@spawn_night_monster_1 +on_info2 = {=actor_near_smart(esc_smart_terrain_4_9) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(esc_smart_terrain_4_9) =is_dark_night} ph_idle@spawn_night_monster_2 +on_info3 = {=actor_near_smart(esc_smart_terrain_4_11) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(esc_smart_terrain_4_11) =is_dark_night} ph_idle@spawn_night_monster_3 +on_info4 = {=actor_near_smart(esc_smart_terrain_5_12) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(esc_smart_terrain_5_12) =is_dark_night} ph_idle@spawn_night_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_1_11)% ph_idle@reset, {~30} %=create_squad(simulation_dog_night:esc_smart_terrain_1_11)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:esc_smart_terrain_1_11)% ph_idle@reset, {~50} %=create_squad(simulation_cat_night:esc_smart_terrain_1_11)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_1_11)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_1_11)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_1_11)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_1_11)% ph_idle@reset, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_1_11)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_1_11)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_1_11)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_1_11)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:esc_smart_terrain_4_9)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:esc_smart_terrain_4_9)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:esc_smart_terrain_4_9)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_4_9)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:esc_smart_terrain_4_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:esc_smart_terrain_4_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_4_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_4_9)% ph_idle@reset_2, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:esc_smart_terrain_4_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:esc_smart_terrain_4_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_4_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_4_9)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_tushkano_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~30} %=create_squad(simulation_dog_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~40} %=create_squad(simulation_boar_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~50} %=create_squad(simulation_cat_night:esc_smart_terrain_4_11)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_4_11)% ph_idle@reset_3, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_4_11)% ph_idle@reset_3, ph_idle@wait_reset + [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_cat_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~30} %=create_squad(simulation_dog_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~40} %=create_squad(simulation_tushkano_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~50} %=create_squad(simulation_boar_night:esc_smart_terrain_5_12)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_5_12)% ph_idle@reset_4, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_5_12)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_2.ltx index 259646ab..cd708f10 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_2.ltx @@ -2,31 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(esc_smart_terrain_8_9) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(esc_smart_terrain_8_9) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(esc_smart_terrain_8_10) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(esc_smart_terrain_8_10) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(esc_smart_terrain_9_7) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(esc_smart_terrain_9_7) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(esc_smart_terrain_9_10) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(esc_smart_terrain_9_10) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(esc_smart_terrain_8_9) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(esc_smart_terrain_8_9) =is_dark_night} ph_idle@spawn_night_monster_1 +on_info2 = {=actor_near_smart(esc_smart_terrain_8_10) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(esc_smart_terrain_8_10) =is_dark_night} ph_idle@spawn_night_monster_2 +on_info3 = {=actor_near_smart(esc_smart_terrain_9_7) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(esc_smart_terrain_9_7) =is_dark_night} ph_idle@spawn_night_monster_3 +on_info4 = {=actor_near_smart(esc_smart_terrain_9_10) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(esc_smart_terrain_9_10) =is_dark_night} ph_idle@spawn_night_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_8_9)% ph_idle@reset, {~30} %=create_squad(simulation_dog_night:esc_smart_terrain_8_9)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:esc_smart_terrain_8_9)% ph_idle@reset, {~50} %=create_squad(simulation_cat_night:esc_smart_terrain_8_9)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_8_9)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_8_9)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_8_9)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_8_9)% ph_idle@reset, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_8_9)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_8_9)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_8_9)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_8_9)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:esc_smart_terrain_8_10)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:esc_smart_terrain_8_10)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:esc_smart_terrain_8_10)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_8_10)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:esc_smart_terrain_8_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:esc_smart_terrain_8_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_8_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_8_10)% ph_idle@reset_2, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:esc_smart_terrain_8_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:esc_smart_terrain_8_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_boar_3_5_night:esc_smart_terrain_8_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_8_10)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_tushkano_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~30} %=create_squad(simulation_dog_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~40} %=create_squad(simulation_boar_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~50} %=create_squad(simulation_cat_night:esc_smart_terrain_9_7)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_9_7)% ph_idle@reset_3, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_9_7)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_lurker_blue_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~30} %=create_squad(simulation_dog_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~40} %=create_squad(simulation_tushkano_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~50} %=create_squad(simulation_boar_night:esc_smart_terrain_9_10)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_lurker_blue_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_9_10)% ph_idle@reset_4, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_lurker_blue_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_9_10)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_3.ltx b/mods/Redone Collection/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_3.ltx index 9491fb63..3b0a0ccb 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_3.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_3.ltx @@ -2,31 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(esc_smart_terrain_3_7) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(esc_smart_terrain_3_7) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(esc_smart_terrain_5_4) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(esc_smart_terrain_5_4) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(esc_smart_terrain_5_6) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(esc_smart_terrain_5_6) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(esc_smart_terrain_6_6) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(esc_smart_terrain_6_6) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(esc_smart_terrain_3_7) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(esc_smart_terrain_3_7) =is_dark_night} ph_idle@spawn_night_monster_1 +on_info2 = {=actor_near_smart(esc_smart_terrain_5_4) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(esc_smart_terrain_5_4) =is_dark_night} ph_idle@spawn_night_monster_2 +on_info3 = {=actor_near_smart(esc_smart_terrain_5_6) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(esc_smart_terrain_5_6) =is_dark_night} ph_idle@spawn_night_monster_3 +on_info4 = {=actor_near_smart(esc_smart_terrain_6_6) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(esc_smart_terrain_6_6) =is_dark_night} ph_idle@spawn_night_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_3_7)% ph_idle@reset, {~30} %=create_squad(simulation_dog_night:esc_smart_terrain_3_7)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:esc_smart_terrain_3_7)% ph_idle@reset, {~50} %=create_squad(simulation_cat_night:esc_smart_terrain_3_7)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_3_7)% ph_idle@reset, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_3_7)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:esc_smart_terrain_5_4)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:esc_smart_terrain_5_4)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:esc_smart_terrain_5_4)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_5_4)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:esc_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:esc_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_5_4)% ph_idle@reset_2, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:esc_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:esc_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_boar_3_5_night:esc_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_5_4)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_tushkano_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~30} %=create_squad(simulation_dog_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~40} %=create_squad(simulation_boar_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~50} %=create_squad(simulation_cat_night:esc_smart_terrain_5_6)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_5_6)% ph_idle@reset_3, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_5_6)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_cat_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~30} %=create_squad(simulation_dog_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~40} %=create_squad(simulation_tushkano_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~50} %=create_squad(simulation_boar_night:esc_smart_terrain_6_6)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_6_6)% ph_idle@reset_4, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_6_6)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_1.ltx b/mods/Redone Collection/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_1.ltx index 69ce01db..b15cbbc9 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_1.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_1.ltx @@ -2,30 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(gar_smart_terrain_1_5) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(gar_smart_terrain_1_5) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(gar_smart_terrain_1_7) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(gar_smart_terrain_1_7) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(gar_smart_terrain_2_4) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(gar_smart_terrain_2_4) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(gar_smart_terrain_6_7) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(gar_smart_terrain_6_7) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(gar_smart_terrain_1_5) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(gar_smart_terrain_1_5) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(gar_smart_terrain_1_7) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(gar_smart_terrain_1_7) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(gar_smart_terrain_2_4) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(gar_smart_terrain_2_4) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(gar_smart_terrain_6_7) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(gar_smart_terrain_6_7) =is_dark_night} ph_idle@spawn_dark_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_mix_zombie_night:gar_smart_terrain_1_5)% ph_idle@reset, {~30} %=create_squad(simulation_snork_night:gar_smart_terrain_1_5)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:gar_smart_terrain_1_5)% ph_idle@reset, {~50} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_1_5)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_1_5)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:gar_smart_terrain_1_5)% ph_idle@reset, {~10} %=create_squad(simulation_boar_night:gar_smart_terrain_1_5)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_1_5)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:gar_smart_terrain_1_5)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:gar_smart_terrain_1_5)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_1_5)% ph_idle@reset, {~10} %=create_squad(simulation_karlik_night:gar_smart_terrain_1_5)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:gar_smart_terrain_1_7)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:gar_smart_terrain_1_7)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:gar_smart_terrain_1_7)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_1_7)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:gar_smart_terrain_1_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_1_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:gar_smart_terrain_1_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_1_7)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:gar_smart_terrain_1_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_1_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:gar_smart_terrain_1_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_1_7)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_tushkano_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~30} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~40} %=create_squad(simulation_cat_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~50} %=create_squad(simulation_dog_night:gar_smart_terrain_2_4)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_2_4)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~10} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_2_4)% ph_idle@reset_3, ph_idle@wait_reset + [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_cat_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~30} %=create_squad(simulation_dog_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~40} %=create_squad(simulation_tushkano_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~50} %=create_squad(simulation_boar_night:gar_smart_terrain_6_7)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:gar_smart_terrain_6_7)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_karlik_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_6_7)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_2.ltx index d4ec9885..287fc52a 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_2.ltx @@ -2,31 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(gar_smart_terrain_5_5) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(gar_smart_terrain_5_5) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(gar_smart_terrain_5_6) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(gar_smart_terrain_5_6) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(gar_smart_terrain_6_6) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(gar_smart_terrain_6_6) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(gar_smart_terrain_7_4) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(gar_smart_terrain_7_4) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(gar_smart_terrain_5_5) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(gar_smart_terrain_5_5) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(gar_smart_terrain_5_6) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(gar_smart_terrain_5_6) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(gar_smart_terrain_6_6) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(gar_smart_terrain_6_6) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(gar_smart_terrain_7_4) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(gar_smart_terrain_7_4) =is_dark_night} ph_idle@spawn_dark_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_5_5)% ph_idle@reset, {~30} %=create_squad(simulation_dog_night:gar_smart_terrain_5_5)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:gar_smart_terrain_5_5)% ph_idle@reset, {~50} %=create_squad(simulation_boar_3_5_night:gar_smart_terrain_5_5)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_5_5)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_5_5)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_5_5)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:gar_smart_terrain_5_5)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_5_5)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_5_5)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_5_5)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:gar_smart_terrain_5_5)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_tushkano_night:gar_smart_terrain_5_6)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:gar_smart_terrain_5_6)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:gar_smart_terrain_5_6)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_5_6)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_5_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_5_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_boar_night:gar_smart_terrain_5_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_5_6)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_5_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_5_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:gar_smart_terrain_5_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_psy_dog_night:gar_smart_terrain_5_6)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psy_dog_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~30} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~40} %=create_squad(simulation_bloodsucker_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~50} %=create_squad(simulation_karlik_night:gar_smart_terrain_6_6)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:gar_smart_terrain_6_6)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psy_dog_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:gar_smart_terrain_6_6)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~30} %=create_squad(simulation_dog_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~40} %=create_squad(simulation_tushkano_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~50} %=create_squad(simulation_boar_night:gar_smart_terrain_7_4)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:gar_smart_terrain_7_4)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_psy_dog_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~10} %=create_squad(simulation_karlik_night:gar_smart_terrain_7_4)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_3.ltx b/mods/Redone Collection/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_3.ltx index 55a698e0..1add4c9d 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_3.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_3.ltx @@ -2,31 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(gar_smart_terrain_4_2) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(gar_smart_terrain_4_2) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(gar_smart_terrain_6_1) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(gar_smart_terrain_6_1) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(gar_smart_terrain_8_3) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(gar_smart_terrain_8_3) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(gar_smart_terrain_8_5) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(gar_smart_terrain_8_5) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(gar_smart_terrain_4_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(gar_smart_terrain_4_2) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(gar_smart_terrain_6_1) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(gar_smart_terrain_6_1) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(gar_smart_terrain_8_3) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(gar_smart_terrain_8_3) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(gar_smart_terrain_8_5) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(gar_smart_terrain_8_5) =is_dark_night} ph_idle@spawn_dark_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_bloodsucker_night:gar_smart_terrain_4_2)% ph_idle@reset, {~30} %=create_squad(simulation_fracture_night:gar_smart_terrain_4_2)% ph_idle@reset, {~40} %=create_squad(simulation_snork_night:gar_smart_terrain_4_2)% ph_idle@reset, {~50} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:gar_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:gar_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:gar_smart_terrain_6_1)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:gar_smart_terrain_6_1)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:gar_smart_terrain_6_1)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_6_1)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_6_1)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_6_1)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_6_1)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_6_1)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:gar_smart_terrain_6_1)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_6_1)% ph_idle@reset_2, {~10} %=create_squad(simulation_psy_dog_night:gar_smart_terrain_6_1)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_6_1)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_tushkano_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~30} %=create_squad(simulation_dog_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~40} %=create_squad(simulation_boar_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~50} %=create_squad(simulation_cat_night:gar_smart_terrain_8_3)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_8_3)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_8_3)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~30} %=create_squad(simulation_fracture_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~40} %=create_squad(simulation_bloodsucker_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~50} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_8_5)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_8_5)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_8_5)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/garbage/mod_gar_smart_terrain_3_5_smart_logic_redone.ltx b/mods/Redone Collection/gamedata/configs/scripts/garbage/mod_gar_smart_terrain_3_5_smart_logic_redone.ltx index 9c990040..50dcbad1 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/garbage/mod_gar_smart_terrain_3_5_smart_logic_redone.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/garbage/mod_gar_smart_terrain_3_5_smart_logic_redone.ltx @@ -1,3 +1,7 @@ +![logic@gar_smart_terrain_3_5_camp_work_9] +active = animpoint@gar_smart_terrain_3_5_animpoint_mlr_4 +prior = 65 + [logic@hangar_gar_character_logic] suitable = {=check_npc_name(sim_default_stalker_3)} true active = animpoint@sit diff --git a/mods/Redone Collection/gamedata/configs/scripts/labx16/mod_x16_spawner_redone.ltx b/mods/Redone Collection/gamedata/configs/scripts/labx16/mod_x16_spawner_redone.ltx index 6def328c..70c71a6f 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/labx16/mod_x16_spawner_redone.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/labx16/mod_x16_spawner_redone.ltx @@ -9,7 +9,7 @@ on_info = {=actor_community(actor_monolith)} sr_idle@mspawner_1, {=actor_communi on_info = sr_idle@check_2 %=create_squad(zombied_x162_st_poltergeist_squad:x162_st_poltergeist) =spawn_object(labx16_snork_5:x16_zombied_1_walk:0) =spawn_object(labx16_snork_6:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_1:x16_zombied_master_1_walk:0) =spawn_object(labx16_zombie_2:x16_zombied_master_2_walk:0) =spawn_object(labx16_zombie_8:x16_zombied_1_walk:0) =spawn_object(labx16_zombie_11:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_12:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_13:x16_zombied_5_walk:0) =spawn_object(labx16_zombie_18:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_6:x16_zombied_1_walk:0) =spawn_object(labx16_zombie_7:x16_zombied_1_walk:0) =spawn_object(main_story_3_lab_x16_documents:x16_ghost_deadway)% [sr_idle@mspawner_1] -on_info = sr_idle@check_2 %=spawn_object(labx16_ecolog_2a:x16_snork_home_2:0) =spawn_object(labx16_ecolog_1:x16_zombied_master_1_walk:0) =spawn_object(labx16_ecolog_2:x16_zombied_master_2_walk:0) =spawn_object(labx16_ecolog_8:x16_zombied_1_walk:0) =spawn_object(labx16_ecolog_11:x16_zombied_4_walk:0) =spawn_object(labx16_ecolog_12:x16_zombied_4_walk:0) =spawn_object(labx16_ecolog_13:x16_zombied_5_walk:0) =spawn_object(labx16_ecolog_18:x16_zombied_4_walk:0) =spawn_object(labx16_ecolog_19:x16_zombied_5_walk:0) =spawn_object(labx16_ecolog_6:x16_zombied_1_walk:0) =spawn_object(labx16_ecolog_7:x16_zombied_1_walk:0) =spawn_object(main_story_3_lab_x16_documents:x16_ghost_deadway)% +on_info = sr_idle@check_2 %=spawn_object(labx16_ecolog_2a:x16_snork_home_2:0) =spawn_object(labx16_ecolog_1:x16_zombied_master_1_walk:0) =spawn_object(labx16_ecolog_2:x16_zombied_master_2_walk:0) =spawn_object(labx16_ecolog_8:x16_zombied_1_walk:0) =spawn_object(labx16_ecolog_11:x16_zombied_4_walk:0) =spawn_object(labx16_ecolog_12:x16_zombied_4_walk:0) =spawn_object(labx16_ecolog_13:x16_zombied_5_walk:0) =spawn_object(labx16_ecolog_18:x16_zombied_4_walk:0) =spawn_object(labx16_ecolog_19:x16_zombied_5_walk:0) =spawn_object(labx16_ecolog_6:x16_zombied_1_walk:0) =spawn_object(labx16_ecolog_7:x16_zombied_1_walk:0)% [sr_idle@check_2] on_info = {=actor_community(actor_monolith)} sr_idle@mspawner_2, {=actor_community(actor_greh)} sr_idle@mspawner_2, sr_idle@spawner_2 @@ -30,4 +30,10 @@ on_game_timer = 180 | sr_idle@mlab_on %+yantar_attack_start =spawn_object(labx16 on_info = {-yan_labx16_switcher_primary_off -yan_kill_brain_done} sr_idle@mend [sr_idle@mend] -on_game_timer = 3500 | sr_idle@nil %=spawn_object(labx16_snork_2:x16_snork_home_2:0) =spawn_object(labx16_zombie_1:x16_zombied_master_1_walk:0) =spawn_object(labx16_zombie_2:x16_zombied_master_2_walk:0) =spawn_object(labx16_zombie_8:x16_zombied_1_walk:0) =spawn_object(labx16_zombie_11:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_12:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_13:x16_zombied_5_walk:0) =spawn_object(labx16_zombie_18:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_19:x16_zombied_5_walk:0) =spawn_object(labx16_zombie_3:yan_zombied_walk_zasada_1:0) =spawn_object(labx16_zombie_4:yan_zombied_walk_zasada_1:0) =spawn_object(labx16_zombie_5:yan_zombied_walk_zasada_1:0) =spawn_object(labx16_snork_3:yan_zombies_attack_camp_1:0)% \ No newline at end of file +on_game_timer = 3500 | sr_idle@nil %=spawn_object(labx16_snork_2:x16_snork_home_2:0) =spawn_object(labx16_zombie_1:x16_zombied_master_1_walk:0) =spawn_object(labx16_zombie_2:x16_zombied_master_2_walk:0) =spawn_object(labx16_zombie_8:x16_zombied_1_walk:0) =spawn_object(labx16_zombie_11:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_12:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_13:x16_zombied_5_walk:0) =spawn_object(labx16_zombie_18:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_19:x16_zombied_5_walk:0) =spawn_object(labx16_zombie_3:yan_zombied_walk_zasada_1:0) =spawn_object(labx16_zombie_4:yan_zombied_walk_zasada_1:0) =spawn_object(labx16_zombie_5:yan_zombied_walk_zasada_1:0) =spawn_object(labx16_snork_3:yan_zombies_attack_camp_1:0)% + +![sr_idle@nil] +on_info = {=actor_community(actor_monolith)} sr_idle@mspawner_1 +on_info2 = {=actor_community(actor_greh)} sr_idle@mspawner_1 + + diff --git a/mods/Redone Collection/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher_primary_redone.ltx b/mods/Redone Collection/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher_primary_redone.ltx index 90d9859b..d3fc0850 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher_primary_redone.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher_primary_redone.ltx @@ -22,17 +22,17 @@ tooltip = pas_b400_tip_switcher on_press = {+yan_labx16_switcher_1_off +yan_labx16_switcher_2_off +yan_labx16_switcher_3_off} ph_idle@idle %+yan_labx16_switcher_primary_off =play_sound(x16_switch_1)% [ph_idle@idle] -on_info = ph_button@deactivate %+yantar_attack_start +yan_kill_brain_done +yan_x16_complete_end =play_sound(x16_brain_death_d) =create_squad(zombied_x162_st_burer_squad:x162_st_burer) =spawn_object(labx16_zombie_16:x16_zombied_7_walk:0) =spawn_object(labx16_zombie_17:x16_zombied_7_walk:0) =spawn_object(labx16_zombie_11:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_12:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_13:x16_zombied_5_walk:0) =spawn_object(labx16_zombie_18:x16_zombied_4_walk:0) =spawn_object(labx16_ecolog_1:x16_zombied_master_1_walk:0) =spawn_object(labx16_ecolog_2:x16_zombied_master_2_walk:0) =spawn_object(labx16_snork_7:x16_zombied_7_walk:0) =spawn_object(labx16_snork_8:x16_zombied_7_walk:0) =spawn_object(labx16_killer_dead:x16_ghost_deadway)% +on_info = ph_button@deactivate %+yantar_attack_start +yan_kill_brain_done +yan_x16_complete_end =create_squad(zombied_x162_st_burer_squad:x162_st_burer) =spawn_object(labx16_zombie_16:x16_zombied_7_walk:0) =spawn_object(labx16_zombie_17:x16_zombied_7_walk:0) =spawn_object(labx16_zombie_11:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_12:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_13:x16_zombied_5_walk:0) =spawn_object(labx16_zombie_18:x16_zombied_4_walk:0) =spawn_object(labx16_ecolog_1:x16_zombied_master_1_walk:0) =spawn_object(labx16_ecolog_2:x16_zombied_master_2_walk:0) =spawn_object(labx16_snork_7:x16_zombied_7_walk:0) =spawn_object(labx16_snork_8:x16_zombied_7_walk:0) =spawn_object(labx16_killer_dead:x16_ghost_deadway)% ;=play_sound(x16_brain_death_d) ![ph_button@deactivate] on_info = {=actor_community(actor_monolith)} ph_button@mdeactive, {=actor_community(actor_greh)} ph_button@mdeactive anim = lab_primary_switcher_off tooltip = pas_b400_tip_switcher on_press = {-yan_labx16_switcher_1_off -yan_labx16_switcher_2_off -yan_labx16_switcher_3_off} ph_idle@on %-yan_labx16_switcher_primary_off =play_sound(switch_2)% -!on_timer = 500 | ph_idle@nil %+yan_labx16_switcher_primary_off +yantar_attack_start =turn_off(yan_labx16switcher_primary_1_green) =turn_off(yan_labx16switcher_primary_2_green) =turn_off(yan_labx16switcher_primary_3_green) =play_sound(switch_2) =play_sound(x16_brain_death) =spawn_object(labx16_zombie_16:x16_zombied_7_walk:0) =spawn_object(labx16_zombie_17:x16_zombied_7_walk:0)% +!on_timer = 500 | ph_idle@nil %+yan_labx16_switcher_primary_off +yantar_attack_start =turn_off(yan_labx16switcher_primary_1_green) =turn_off(yan_labx16switcher_primary_2_green) =turn_off(yan_labx16switcher_primary_3_green) =play_sound(switch_2) =spawn_object(labx16_zombie_16:x16_zombied_7_walk:0) =spawn_object(labx16_zombie_17:x16_zombied_7_walk:0)% ;=play_sound(x16_brain_death) [ph_idle@on] -on_info = {-yan_labx16_switcher_primary_off} ph_button@reactivate %-yan_labx16_switcher_primary_try -yan_kill_brain_done =play_sound_looped(x16_brain_run) =turn_on(yan_labx16switcher_primary_1_green) =turn_on(yan_labx16switcher_primary_2_green) =turn_on(yan_labx16switcher_primary_3_green) =yan_gluk% +on_info = {-yan_labx16_switcher_primary_off} ph_button@reactivate %-yan_kill_brain_done =turn_on(yan_labx16switcher_primary_1_green) =turn_on(yan_labx16switcher_primary_2_green) =turn_on(yan_labx16switcher_primary_3_green) =yan_gluk% ;=play_sound_looped(x16_brain_run) [ph_button@reactivate] anim_blend = true @@ -49,7 +49,7 @@ tooltip = pas_b400_tip_switcher on_press = {+yan_labx16_switcher_1_off +yan_labx16_switcher_2_off +yan_labx16_switcher_3_off} ph_idle@off %+yan_labx16_switcher_primary_off =turn_off(yan_labx16switcher_primary_1_green) =turn_off(yan_labx16switcher_primary_2_green) =turn_off(yan_labx16switcher_primary_3_green) =play_sound(x16_switch_1)% [ph_idle@off] -on_info = {+yan_labx16_switcher_primary_off} ph_button@deactivate % +yan_labx16_switcher_primary_try +yan_kill_brain_done =play_sound(x16_brain_stop) =yan_gluk% +on_info = {+yan_labx16_switcher_primary_off} ph_button@deactivate %+yan_labx16_switcher_primary_try +yan_kill_brain_done =yan_gluk% ;=play_sound(x16_brain_stop) [ph_button@mdeactive] anim = lab_primary_switcher_off @@ -99,7 +99,7 @@ on_timer = 8000 | ph_idle@msound_4 %=yan_gluk% [ph_idle@msound_4] on_info = %=stop_sound_looped =play_sound_looped(klaxon_3)% -on_timer = 50 | ph_idle@mrun_for_it %=play_sound(x16_brain_stop) =turn_off (yan_labx16switcher_primary_1_green) =turn_off(yan_labx16switcher_primary_2_green) =turn_off(yan_labx16switcher_primary_3_green)% +on_timer = 50 | ph_idle@mrun_for_it %=turn_off (yan_labx16switcher_primary_1_green) =turn_off(yan_labx16switcher_primary_2_green) =turn_off(yan_labx16switcher_primary_3_green)% ;=play_sound(x16_brain_stop) [ph_idle@mrun_for_it] on_timer = 10 | ph_button@merror_mode %=play_sound_looped(message_2) =play_sound_looped(message_3) +mil_attack_start% @@ -124,7 +124,7 @@ on_timer = 9000 | ph_idle@msound_end on_timer = 5 | ph_button@mactive %=stop_sound_looped =turn_on(yan_labx16switcher_primary_1_green) =turn_on(yan_labx16switcher_primary_2_green) =turn_on(yan_labx16switcher_primary_3_green)% [ph_button@mactive] -on_info = {-yan_labx16_switcher_primary_off} ph_idle@nil %-yan_kill_brain_done +yan_x16_complete_end =play_sound_looped(x16_brain_run) % +on_info = {-yan_labx16_switcher_primary_off} ph_idle@nil %-yan_kill_brain_done +yan_x16_complete_end% ;=play_sound_looped(x16_brain_run) anim_blend = true anim = lab_primary_switcher_idle tooltip = pas_b400_tip_switcher diff --git a/mods/Redone Collection/gamedata/configs/scripts/labx16/smart/x162_st_burer.ltx b/mods/Redone Collection/gamedata/configs/scripts/labx16/smart/x162_st_burer.ltx index 25c0663c..1ad04f2f 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/labx16/smart/x162_st_burer.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/labx16/smart/x162_st_burer.ltx @@ -26,7 +26,8 @@ spawn_squads = isg_x162_st_burer_squad spawn_num = {=actor_community(actor_monolith)} 0,{=actor_community(actor_greh)} 0,{+yan_kill_brain_done +isg_entered_the_zone !squad_name_exist(isg_x162_st_burer_squad) ~10} 1, 0 -;[on_changing_level] +[on_changing_level] +on_info = {+yan_controller_respawn_01} %=destroy_object(labx16_killer_dead)% ;[smart_control] diff --git a/mods/Redone Collection/gamedata/configs/scripts/labx16/x16_main_generator_sound.ltx b/mods/Redone Collection/gamedata/configs/scripts/labx16/x16_main_generator_sound.ltx new file mode 100644 index 00000000..08b94251 --- /dev/null +++ b/mods/Redone Collection/gamedata/configs/scripts/labx16/x16_main_generator_sound.ltx @@ -0,0 +1,26 @@ +[logic] +active = sr_idle@check + +[sr_idle@check] +on_info = {-yan_kill_brain_done} sr_idle@on +on_info2 = {+yan_kill_brain_done} sr_idle@off + +[sr_idle@start] +on_info = sr_idle@on %=stop_sound_looped% +;on_info = %=play_sound(x16_begin)% +;on_signal = sound_end | sr_idle@on + +[sr_idle@on] +on_info = %=play_sound_looped(x16_brain_run)% +on_info_2 = {+yan_kill_brain_done} sr_idle@stop + +[sr_idle@stop] +on_info = sr_idle@off %=stop_sound_looped% +;on_info = %=play_sound(x16_brain_stop)% +;on_signal = sound_end | sr_idle@off + +[sr_idle@off] +on_info = %=play_sound_looped(x16_brain_death_d)% +on_info_2 = {-yan_kill_brain_done} sr_idle@start + + diff --git a/mods/Redone Collection/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_1.ltx b/mods/Redone Collection/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_1.ltx index 720101fe..7a0b2926 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_1.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_1.ltx @@ -2,30 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(mar_smart_terrain_3_7) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(mar_smart_terrain_3_7) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(mar_smart_terrain_3_10) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mar_smart_terrain_3_10) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(mar_smart_terrain_4_7) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(mar_smart_terrain_4_7) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(mar_smart_terrain_6_7) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(mar_smart_terrain_6_7) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(mar_smart_terrain_3_7) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(mar_smart_terrain_3_7) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(mar_smart_terrain_3_10) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mar_smart_terrain_3_10) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(mar_smart_terrain_4_7) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(mar_smart_terrain_4_7) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(mar_smart_terrain_6_7) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(mar_smart_terrain_6_7) =is_dark_night} ph_idle@spawn_dark_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_mix_zombie_night:mar_smart_terrain_3_7)% ph_idle@reset, {~30} %=create_squad(simulation_snork_night:mar_smart_terrain_3_7)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:mar_smart_terrain_3_7)% ph_idle@reset, {~50} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_3_7)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:mar_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:mar_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:mar_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_3_7)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:mar_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:mar_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_3_7)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:mar_smart_terrain_3_10)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:mar_smart_terrain_3_10)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:mar_smart_terrain_3_10)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_3_10)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_cat_night:mar_smart_terrain_3_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:mar_smart_terrain_3_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:mar_smart_terrain_3_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_3_10)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:mar_smart_terrain_3_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_3_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_karlik_night:mar_smart_terrain_3_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_3_10)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~30} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~40} %=create_squad(simulation_chimera_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~50} %=create_squad(simulation_dog_night:mar_smart_terrain_4_7)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_psysucker_white_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_psy_dog_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:mar_smart_terrain_4_7)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_chimera_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:mar_smart_terrain_4_7)% ph_idle@reset_3, ph_idle@wait_reset + [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~30} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~40} %=create_squad(simulation_psy_dog_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~50} %=create_squad(simulation_boar_night:mar_smart_terrain_6_7)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_psy_dog_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_3_5_night:mar_smart_terrain_6_7)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_psy_dog_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_gigant_night:mar_smart_terrain_6_7)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_2.ltx index f83a1ef9..fca82528 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_2.ltx @@ -2,31 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(mar_smart_terrain_6_8) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(mar_smart_terrain_6_8) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(mar_smart_terrain_6_10) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mar_smart_terrain_6_10) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(mar_smart_terrain_8_8) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(mar_smart_terrain_8_8) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(mar_smart_terrain_8_9) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(mar_smart_terrain_8_9) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(mar_smart_terrain_6_8) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(mar_smart_terrain_6_8) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(mar_smart_terrain_6_10) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mar_smart_terrain_6_10) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(mar_smart_terrain_8_8) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(mar_smart_terrain_8_8) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(mar_smart_terrain_8_9) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(mar_smart_terrain_8_9) =is_dark_night} ph_idle@spawn_dark_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_6_8)% ph_idle@reset, {~30} %=create_squad(simulation_dog_night:mar_smart_terrain_6_8)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:mar_smart_terrain_6_8)% ph_idle@reset, {~50} %=create_squad(simulation_boar_3_5_night:mar_smart_terrain_6_8)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_6_8)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:mar_smart_terrain_6_8)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:mar_smart_terrain_6_8)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:mar_smart_terrain_6_8)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_6_8)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_6_8)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:mar_smart_terrain_6_8)% ph_idle@reset, {~10} %=create_squad(simulation_psy_dog_night:mar_smart_terrain_6_8)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_tushkano_night:mar_smart_terrain_6_10)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:mar_smart_terrain_6_10)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:mar_smart_terrain_6_10)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_6_10)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:mar_smart_terrain_6_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:mar_smart_terrain_6_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:mar_smart_terrain_6_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_6_10)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_6_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_6_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:mar_smart_terrain_6_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_psy_dog_night:mar_smart_terrain_6_10)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psy_dog_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~30} %=create_squad(simulation_psysucker_white_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~40} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~50} %=create_squad(simulation_karlik_night:mar_smart_terrain_8_8)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:mar_smart_terrain_8_8)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psy_dog_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_burer_night:mar_smart_terrain_8_8)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_lurker_blue_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~30} %=create_squad(simulation_dog_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~40} %=create_squad(simulation_cat_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~50} %=create_squad(simulation_boar_night:mar_smart_terrain_8_9)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~10} %=create_squad(simulation_cat_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:mar_smart_terrain_8_9)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_lurker_blue_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~10} %=create_squad(simulation_contr_5rat_3tush_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~10} %=create_squad(simulation_chimera_night:mar_smart_terrain_8_9)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_3.ltx b/mods/Redone Collection/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_3.ltx index f8278742..61a98f3b 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_3.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_3.ltx @@ -2,31 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(mar_smart_terrain_7_7) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(mar_smart_terrain_7_7) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(mar_smart_terrain_8_4) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mar_smart_terrain_8_4) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(mar_smart_terrain_10_7) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(mar_smart_terrain_10_7) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(mar_smart_terrain_10_10) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(mar_smart_terrain_10_10) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(mar_smart_terrain_7_7) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(mar_smart_terrain_7_7) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(mar_smart_terrain_8_4) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mar_smart_terrain_8_4) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(mar_smart_terrain_10_7) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(mar_smart_terrain_10_7) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(mar_smart_terrain_10_10) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(mar_smart_terrain_10_10) =is_dark_night} ph_idle@spawn_dark_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_7_7)% ph_idle@reset, {~30} %=create_squad(simulation_fracture_night:mar_smart_terrain_7_7)% ph_idle@reset, {~40} %=create_squad(simulation_chimera_night:mar_smart_terrain_7_7)% ph_idle@reset, {~50} %=create_squad(simulation_lurker_blue_night:mar_smart_terrain_7_7)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_7_7)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:mar_smart_terrain_7_7)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:mar_smart_terrain_7_7)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:mar_smart_terrain_7_7)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_7_7)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:mar_smart_terrain_7_7)% ph_idle@reset, {~10} %=create_squad(simulation_chimera_night:mar_smart_terrain_7_7)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_7_7)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:mar_smart_terrain_8_4)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:mar_smart_terrain_8_4)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:mar_smart_terrain_8_4)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_8_4)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:mar_smart_terrain_8_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:mar_smart_terrain_8_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:mar_smart_terrain_8_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_8_4)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:mar_smart_terrain_8_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:mar_smart_terrain_8_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_8_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_8_4)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_tushkano_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~30} %=create_squad(simulation_dog_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~40} %=create_squad(simulation_boar_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~50} %=create_squad(simulation_cat_night:mar_smart_terrain_10_7)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:mar_smart_terrain_10_7)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:mar_smart_terrain_10_7)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~30} %=create_squad(simulation_fracture_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~40} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~50} %=create_squad(simulation_lurker_blue_night:mar_smart_terrain_10_10)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_fracture_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_lurker_blue_night:mar_smart_terrain_10_10)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_fracture_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_10_10)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_base.ltx b/mods/Redone Collection/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_base.ltx index 099d134c..91e1ae71 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_base.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_base.ltx @@ -68,10 +68,10 @@ guard_2 = marsh\mar_smart_terrain_base_smart_logic.ltx mar_smart_terrain_base_beh_trade_job_1 = marsh\mar_base_owl_stalker_trader.ltx mar_smart_terrain_base_beh_tech_job_1 = marsh\mar_base_stalker_tech.ltx -;mar_base_animpoint_kamp1 = marsh\mar_smart_terrain_base_smart_logic.ltx -;mar_base_animpoint_kamp2 = marsh\mar_smart_terrain_base_smart_logic.ltx -;mar_base_animpoint_kamp3 = marsh\mar_smart_terrain_base_smart_logic.ltx -;mar_base_animpoint_kamp4 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_base_animpoint_kamp1 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_base_animpoint_kamp2 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_base_animpoint_kamp3 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_base_animpoint_kamp4 = marsh\mar_smart_terrain_base_smart_logic.ltx mar_base_animpoint_kamp5 = marsh\mar_smart_terrain_base_smart_logic.ltx mar_base_animpoint_kamp6 = marsh\mar_smart_terrain_base_smart_logic.ltx mar_base_animpoint_kamp7 = marsh\mar_smart_terrain_base_smart_logic.ltx diff --git a/mods/Redone Collection/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_1.ltx b/mods/Redone Collection/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_1.ltx index 46c526ef..fd95fce0 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_1.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_1.ltx @@ -2,17 +2,23 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(mil_smart_terrain_2_1) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(mil_smart_terrain_2_1) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(mil_smart_terrain_4_3) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mil_smart_terrain_4_3) =is_night} ph_idle@spawn_night_monster_2 +on_info = {=actor_near_smart(mil_smart_terrain_2_1) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(mil_smart_terrain_2_1) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(mil_smart_terrain_4_3) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mil_smart_terrain_4_3) =is_dark_night} ph_idle@spawn_dark_monster_2 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_mix_zombie_night:mil_smart_terrain_2_1)% ph_idle@reset, {~30} %=create_squad(simulation_snork_night:mil_smart_terrain_2_1)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:mil_smart_terrain_2_1)% ph_idle@reset, {~50} %=create_squad(simulation_bloodsucker_red_night:mil_smart_terrain_2_1)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:mil_smart_terrain_2_1)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:mil_smart_terrain_2_1)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:mil_smart_terrain_2_1)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:mil_smart_terrain_2_1)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:mil_smart_terrain_2_1)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:mil_smart_terrain_2_1)% ph_idle@reset, {~10} %=create_squad(simulation_chimera_night:mil_smart_terrain_2_1)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:mil_smart_terrain_2_1)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~40} %=create_squad(simulation_psysucker_brown_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~50} %=create_squad(simulation_bloodsucker_red_night:mil_smart_terrain_4_3)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_brown_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_red_night:mil_smart_terrain_4_3)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_2_5_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_chimera_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_brown_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_red_night:mil_smart_terrain_4_3)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_2.ltx index 57d3a02a..a45384ae 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_2.ltx @@ -2,17 +2,23 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(mil_smart_terrain_2_6) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(mil_smart_terrain_2_6) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(mil_smart_terrain_4_7) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mil_smart_terrain_4_7) =is_night} ph_idle@spawn_night_monster_2 +on_info = {=actor_near_smart(mil_smart_terrain_2_6) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(mil_smart_terrain_2_6) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(mil_smart_terrain_4_7) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mil_smart_terrain_4_7) =is_dark_night} ph_idle@spawn_dark_monster_2 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_pseudodog_night:mil_smart_terrain_2_6)% ph_idle@reset, {~30} %=create_squad(simulation_dog_night:mil_smart_terrain_2_6)% ph_idle@reset, {~40} %=create_squad(simulation_karlik_night:mil_smart_terrain_2_6)% ph_idle@reset, {~50} %=create_squad(simulation_poltergeist_black_night:mil_smart_terrain_2_6)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:mil_smart_terrain_2_6)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:mil_smart_terrain_2_6)% ph_idle@reset, {~10} %=create_squad(simulation_karlik_night:mil_smart_terrain_2_6)% ph_idle@reset, {~10} %=create_squad(simulation_poltergeist_black_night:mil_smart_terrain_2_6)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_psysucker_night:mil_smart_terrain_2_6)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:mil_smart_terrain_2_6)% ph_idle@reset, {~10} %=create_squad(simulation_snork_2_5_night:mil_smart_terrain_2_6)% ph_idle@reset, {~10} %=create_squad(simulation_poltergeist_black_night:mil_smart_terrain_2_6)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_tushkano_night:mil_smart_terrain_4_7)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:mil_smart_terrain_4_7)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:mil_smart_terrain_4_7)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:mil_smart_terrain_4_7)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:mil_smart_terrain_4_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:mil_smart_terrain_4_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:mil_smart_terrain_4_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:mil_smart_terrain_4_7)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_psy_dog_night:mil_smart_terrain_4_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_night:mil_smart_terrain_4_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:mil_smart_terrain_4_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:mil_smart_terrain_4_7)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_3.ltx b/mods/Redone Collection/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_3.ltx index 97121835..5a4c2276 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_3.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_3.ltx @@ -2,17 +2,23 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(mil_smart_terrain_4_2) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(mil_smart_terrain_4_2) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(mil_smart_terrain_4_5) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mil_smart_terrain_4_5) =is_night} ph_idle@spawn_night_monster_2 +on_info = {=actor_near_smart(mil_smart_terrain_4_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(mil_smart_terrain_4_2) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(mil_smart_terrain_4_5) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mil_smart_terrain_4_5) =is_dark_night} ph_idle@spawn_dark_monster_2 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_bloodsucker_night:mil_smart_terrain_4_2)% ph_idle@reset, {~30} %=create_squad(simulation_fracture_night:mil_smart_terrain_4_2)% ph_idle@reset, {~40} %=create_squad(simulation_snork_night:mil_smart_terrain_4_2)% ph_idle@reset, {~50} %=create_squad(simulation_lurker_blue_night:mil_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:mil_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:mil_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_mix_dogs_night:mil_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:mil_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:mil_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:mil_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:mil_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:mil_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_gigant_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~30} %=create_squad(simulation_karlik_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~40} %=create_squad(simulation_psy_dog_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~50} %=create_squad(simulation_snork_night_night:mil_smart_terrain_4_5)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_mix_dogs_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_snork_night:mil_smart_terrain_4_5)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_gigant_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_psy_dog_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:mil_smart_terrain_4_5)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_1.ltx b/mods/Redone Collection/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_1.ltx index 22aec8f5..6c2e2bc9 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_1.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_1.ltx @@ -2,33 +2,27 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(ros_smart_poltergeist2) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(ros_smart_poltergeist2) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(ros_smart_snork1) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(ros_smart_snork1) =is_night} ph_idle@spawn_night_monster_2 -;on_info3 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_3 -;on_info4 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(ros_smart_poltergeist2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(ros_smart_poltergeist2) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(ros_smart_snork1) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(ros_smart_snork1) =is_dark_night} ph_idle@spawn_dark_monster_2 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:ros_smart_poltergeist2)% ph_idle@reset, {~30} %=create_squad(simulation_snork_night:ros_smart_poltergeist2)% ph_idle@reset, {~40} %=create_squad(simulation_bloodsucker_night:ros_smart_poltergeist2)% ph_idle@reset, {~50} %=create_squad(simulation_pseudodog_night:ros_smart_poltergeist2)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:ros_smart_poltergeist2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:ros_smart_poltergeist2)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:ros_smart_poltergeist2)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:ros_smart_poltergeist2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:ros_smart_poltergeist2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:ros_smart_poltergeist2)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:ros_smart_poltergeist2)% ph_idle@reset, {~10} %=create_squad(simulation_psy_dog_night:ros_smart_poltergeist2)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:ros_smart_snork1)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:ros_smart_snork1)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:ros_smart_snork1)% ph_idle@reset_2, {~50} %=create_squad(simulation_bloodsucker_red_night:ros_smart_snork1)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:ros_smart_snork1)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:ros_smart_snork1)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:ros_smart_snork1)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_red_night:ros_smart_snork1)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:ros_smart_snork1)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:ros_smart_snork1)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_brown_night:ros_smart_snork1)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_red_night:ros_smart_snork1)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor -[ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:X)% ph_idle@reset_3, {~30} %=create_squad(simulation_bloodsucker_night:X)% ph_idle@reset_3, {~40} %=create_squad(simulation_karlik_night:X)% ph_idle@reset_3, {~50} %=create_squad(simulation_lurker_brown_night:X)% ph_idle@reset_3, ph_idle@wait_reset -[ph_idle@reset_3] -on_game_timer = 86400 | ph_idle@wait_actor - -[ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:X)% ph_idle@reset_4, {~30} %=create_squad(simulation_bloodsucker_night:X)% ph_idle@reset_4, {~40} %=create_squad(simulation_psy_dog_night:X)% ph_idle@reset_4, {~50} %=create_squad(simulation_karlik_night:X)% ph_idle@reset_4, ph_idle@wait_reset - -[ph_idle@reset_4] -on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@wait_reset] on_game_timer = 580 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_2.ltx index 3c8070e5..452a1ef1 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_2.ltx @@ -2,34 +2,17 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(ros_smart_monster4) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(ros_smart_monster4) =is_night} ph_idle@spawn_night_monster -;on_info2 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_2 -;on_info3 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_3 -;on_info4 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(ros_smart_monster4) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(ros_smart_monster4) =is_dark_night} ph_idle@spawn_dark_monster_1 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_mix_zombie_night:ros_smart_monster4)% ph_idle@reset, {~30} %=create_squad(simulation_snork_night:ros_smart_monster4)% ph_idle@reset, {~40} %=create_squad(simulation_bloodsucker_red_night:ros_smart_monster4)% ph_idle@reset, {~50} %=create_squad(simulation_psysucker_brown_night:ros_smart_monster4)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_dog_night:ros_smart_monster4)% ph_idle@reset, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:ros_smart_monster4)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:ros_smart_monster4)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_brown_night:ros_smart_monster4)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:ros_smart_monster4)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:ros_smart_monster4)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:ros_smart_monster4)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_brown_night:ros_smart_monster4)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor -[ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:X)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:X)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:X)% ph_idle@reset_2, {~50} %=create_squad(simulation_bloodsucker_red_night:X)% ph_idle@reset_2, ph_idle@wait_reset - -[ph_idle@reset_2] -on_game_timer = 86400 | ph_idle@wait_actor - -[ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:X)% ph_idle@reset_3, {~30} %=create_squad(simulation_bloodsucker_night:X)% ph_idle@reset_3, {~40} %=create_squad(simulation_karlik_night:X)% ph_idle@reset_3, {~50} %=create_squad(simulation_lurker_brown_night:X)% ph_idle@reset_3, ph_idle@wait_reset -[ph_idle@reset_3] -on_game_timer = 86400 | ph_idle@wait_actor - -[ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:X)% ph_idle@reset_4, {~30} %=create_squad(simulation_bloodsucker_night:X)% ph_idle@reset_4, {~40} %=create_squad(simulation_psy_dog_night:X)% ph_idle@reset_4, {~50} %=create_squad(simulation_karlik_night:X)% ph_idle@reset_4, ph_idle@wait_reset - -[ph_idle@reset_4] -on_game_timer = 86400 | ph_idle@wait_actor - [ph_idle@wait_reset] on_game_timer = 580 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_3.ltx b/mods/Redone Collection/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_3.ltx index c5d62b8e..83536e48 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_3.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_3.ltx @@ -2,34 +2,17 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(ros_smart_monster5) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(ros_smart_monster5) =is_night} ph_idle@spawn_night_monster -;on_info2 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_2 -;on_info3 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_3 -;on_info4 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(ros_smart_monster5) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(ros_smart_monster5) =is_dark_night} ph_idle@spawn_dark_monster_1 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_gigant_night:ros_smart_monster5)% ph_idle@reset, {~30} %=create_squad(simulation_chimera_night:ros_smart_monster5)% ph_idle@reset, {~40} %=create_squad(simulation_poltergeist_black_night:ros_smart_monster5)% ph_idle@reset, {~50} %=create_squad(simulation_burer_night:ros_smart_monster5)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_red_night:ros_smart_monster5)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_brown_night:ros_smart_monster5)% ph_idle@reset, {~10} %=create_squad(simulation_poltergeist_black_night:ros_smart_monster5)% ph_idle@reset, {~10} %=create_squad(simulation_burer_night:ros_smart_monster5)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_gigant_night:ros_smart_monster5)% ph_idle@reset, {~10} %=create_squad(simulation_chimera_night:ros_smart_monster5)% ph_idle@reset, {~10} %=create_squad(simulation_poltergeist_black_night:ros_smart_monster5)% ph_idle@reset, {~10} %=create_squad(simulation_burer_night:ros_smart_monster5)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor -[ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:X)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:X)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:X)% ph_idle@reset_2, {~50} %=create_squad(simulation_bloodsucker_red_night:X)% ph_idle@reset_2, ph_idle@wait_reset - -[ph_idle@reset_2] -on_game_timer = 86400 | ph_idle@wait_actor - -[ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:X)% ph_idle@reset_3, {~30} %=create_squad(simulation_bloodsucker_night:X)% ph_idle@reset_3, {~40} %=create_squad(simulation_karlik_night:X)% ph_idle@reset_3, {~50} %=create_squad(simulation_lurker_brown_night:X)% ph_idle@reset_3, ph_idle@wait_reset -[ph_idle@reset_3] -on_game_timer = 86400 | ph_idle@wait_actor - -[ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:X)% ph_idle@reset_4, {~30} %=create_squad(simulation_bloodsucker_night:X)% ph_idle@reset_4, {~40} %=create_squad(simulation_psy_dog_night:X)% ph_idle@reset_4, {~50} %=create_squad(simulation_karlik_night:X)% ph_idle@reset_4, ph_idle@wait_reset - -[ph_idle@reset_4] -on_game_timer = 86400 | ph_idle@wait_actor - [ph_idle@wait_reset] on_game_timer = 580 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_1.ltx b/mods/Redone Collection/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_1.ltx index b937d4da..fe78d0a7 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_1.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_1.ltx @@ -2,31 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(trc_sim_5) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(trc_sim_5) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(trc_sim_9) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(trc_sim_9) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(trc_sim_16) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(trc_sim_16) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(trc_sim_19) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_9_10) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(trc_sim_5) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(trc_sim_5) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(trc_sim_9) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(trc_sim_9) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(trc_sim_16) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(trc_sim_16) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(trc_sim_19) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(trc_sim_19) =is_dark_night} ph_idle@spawn_dark_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_mix_zombie_night:trc_sim_5)% ph_idle@reset, {~30} %=create_squad(simulation_snork_night:trc_sim_5)% ph_idle@reset, {~40} %=create_squad(simulation_tushkano_night:trc_sim_5)% ph_idle@reset, {~50} %=create_squad(simulation_pseudodog_night:trc_sim_5)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:trc_sim_5)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:trc_sim_5)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:trc_sim_5)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:trc_sim_5)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:trc_sim_5)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_1_2_night:trc_sim_5)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_1_2_night:trc_sim_5)% ph_idle@reset, {~10} %=create_squad(simulation_psy_dog_night:trc_sim_5)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_gigant_night:trc_sim_9)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:trc_sim_9)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:trc_sim_9)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:trc_sim_9)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_dog_night:trc_sim_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_cat_night:trc_sim_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_boar_night:trc_sim_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:trc_sim_9)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_gigant_night:trc_sim_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:trc_sim_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:trc_sim_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:trc_sim_9)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:trc_sim_16)% ph_idle@reset_3, {~30} %=create_squad(simulation_bloodsucker_night:trc_sim_16)% ph_idle@reset_3, {~40} %=create_squad(simulation_karlik_night:trc_sim_16)% ph_idle@reset_3, {~50} %=create_squad(simulation_lurker_brown_night:trc_sim_16)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_dog_night:trc_sim_16)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:trc_sim_16)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:trc_sim_16)% ph_idle@reset_3, {~10} %=create_squad(simulation_lurker_brown_night:trc_sim_16)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:trc_sim_16)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_16)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:trc_sim_16)% ph_idle@reset_3, {~10} %=create_squad(simulation_lurker_brown_night:trc_sim_16)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:trc_sim_19)% ph_idle@reset_4, {~30} %=create_squad(simulation_bloodsucker_night:trc_sim_19)% ph_idle@reset_4, {~40} %=create_squad(simulation_psy_dog_night:trc_sim_19)% ph_idle@reset_4, {~50} %=create_squad(simulation_karlik_night:trc_sim_19)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_mix_dogs_night:trc_sim_19)% ph_idle@reset_4, {~10} %=create_squad(simulation_cat_3_5_night:trc_sim_19)% ph_idle@reset_4, {~10} %=create_squad(simulation_psy_dog_night:trc_sim_19)% ph_idle@reset_4, {~10} %=create_squad(simulation_karlik_night:trc_sim_19)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:trc_sim_19)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_19)% ph_idle@reset_4, {~10} %=create_squad(simulation_psy_dog_night:trc_sim_19)% ph_idle@reset_4, {~10} %=create_squad(simulation_karlik_night:trc_sim_19)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_2.ltx index 0060076c..323fec4d 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_2.ltx @@ -2,31 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(trc_sim_11) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(trc_sim_11) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(trc_sim_13) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(trc_sim_13) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(trc_sim_14) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(trc_sim_14) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(trc_sim_15) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(trc_sim_15) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(trc_sim_11) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(trc_sim_11) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(trc_sim_13) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(trc_sim_13) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(trc_sim_14) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(trc_sim_14) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(trc_sim_15) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(trc_sim_15) =is_dark_night} ph_idle@spawn_dark_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_chimera_2weak_night:trc_sim_11)% ph_idle@reset, {~30} %=create_squad(simulation_bloodsucker_night:trc_sim_11)% ph_idle@reset, {~40} %=create_squad(simulation_karlik_night:trc_sim_11)% ph_idle@reset, {~50} %=create_squad(simulation_lurker_brown_night:trc_sim_11)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_psy_dog_night:trc_sim_11)% ph_idle@reset, {~10} %=create_squad(simulation_dog_5_7_night:trc_sim_11)% ph_idle@reset, {~10} %=create_squad(simulation_cat_3_5_night:trc_sim_11)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_brown_night:trc_sim_11)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_chimera_2weak_night:trc_sim_11)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_11)% ph_idle@reset, {~10} %=create_squad(simulation_karlik_night:trc_sim_11)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_brown_night:trc_sim_11)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_tushkano_night:trc_sim_13)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:trc_sim_13)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:trc_sim_13)% ph_idle@reset_2, {~50} %=create_squad(simulation_snork_2_3_night:trc_sim_13)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_tushkano_night:trc_sim_13)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:trc_sim_13)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:trc_sim_13)% ph_idle@reset_2, {~10} %=create_squad(simulation_snork_2_3_night:trc_sim_13)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_karlik_night:trc_sim_13)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:trc_sim_13)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:trc_sim_13)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_13)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psy_dog_night:trc_sim_14)% ph_idle@reset_3, {~30} %=create_squad(simulation_psysucker_white_night:trc_sim_14)% ph_idle@reset_3, {~40} %=create_squad(simulation_bloodsucker_night:trc_sim_14)% ph_idle@reset_3, {~50} %=create_squad(simulation_snork_2_3_night:trc_sim_14)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_psy_dog_night:trc_sim_14)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:trc_sim_14)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_14)% ph_idle@reset_3, {~10} %=create_squad(simulation_snork_2_3_night:trc_sim_14)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_contr_5zomb_weak_night:trc_sim_14)% ph_idle@reset_3, {~10} %=create_squad(simulation_bur_5rat_day_night:trc_sim_14)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_14)% ph_idle@reset_3, {~10} %=create_squad(simulation_snork_2_3_night:trc_sim_14)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_lurker_brown_night:trc_sim_15)% ph_idle@reset_4, {~30} %=create_squad(simulation_chimera_night:trc_sim_15)% ph_idle@reset_4, {~40} %=create_squad(simulation_psy_dog_night:trc_sim_15)% ph_idle@reset_4, {~50} %=create_squad(simulation_snork_2_5_night:trc_sim_15)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_lurker_brown_night:trc_sim_15)% ph_idle@reset_4, {~10} %=create_squad(simulation_chimera_night:trc_sim_15)% ph_idle@reset_4, {~10} %=create_squad(simulation_psy_dog_night:trc_sim_15)% ph_idle@reset_4, {~10} %=create_squad(simulation_snork_2_5_night:trc_sim_15)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_lurker_brown_night:trc_sim_15)% ph_idle@reset_4, {~10} %=create_squad(simulation_chimera_night:trc_sim_15)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_night:trc_sim_15)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_15)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_3.ltx b/mods/Redone Collection/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_3.ltx index 4523d879..9c3161d2 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_3.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_3.ltx @@ -2,31 +2,43 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(trc_sim_10) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(trc_sim_10) =is_night} ph_idle@spawn_night_monster -on_info2 = {=actor_near_smart(trc_sim_6) =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(trc_sim_6) =is_night} ph_idle@spawn_night_monster_2 -on_info3 = {=actor_near_smart(trc_sim_8) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_8_7) =is_night} ph_idle@spawn_night_monster_3 -on_info4 = {=actor_near_smart(trc_sim_17) =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_9_2) =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(trc_sim_10) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(trc_sim_10) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(trc_sim_6) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(trc_sim_6) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(trc_sim_8) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(trc_sim_8) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(trc_sim_17) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(trc_sim_17) =is_dark_night} ph_idle@spawn_dark_monster_4 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_bloodsucker_night:trc_sim_10)% ph_idle@reset, {~30} %=create_squad(simulation_fracture_night:trc_sim_10)% ph_idle@reset, {~40} %=create_squad(simulation_snork_night:trc_sim_10)% ph_idle@reset, {~50} %=create_squad(simulation_lurker_blue_night:trc_sim_10)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:trc_sim_10)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:trc_sim_10)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:trc_sim_10)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:trc_sim_10)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_10)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:trc_sim_10)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:trc_sim_10)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:trc_sim_10)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:trc_sim_6)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:trc_sim_6)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:trc_sim_6)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:trc_sim_6)% ph_idle@reset_2, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_snork_night:trc_sim_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:trc_sim_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:trc_sim_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:trc_sim_6)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:trc_sim_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:trc_sim_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_psy_dog_night:trc_sim_6)% ph_idle@reset_2, ph_idle@wait_reset [ph_idle@reset_2] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_gigant_night:trc_sim_8)% ph_idle@reset_3, {~30} %=create_squad(simulation_chimera_night:trc_sim_8)% ph_idle@reset_3, {~40} %=create_squad(simulation_snork_2_5_night:trc_sim_8)% ph_idle@reset_3, {~50} %=create_squad(simulation_bloodsucker_night:trc_sim_8)% ph_idle@reset_3, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_psy_dog_night:trc_sim_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_night:trc_sim_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_snork_2_5_night:trc_sim_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_8)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_gigant_night:trc_sim_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_chimera_night:trc_sim_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_snork_2_5_night:trc_sim_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_8)% ph_idle@reset_3, ph_idle@wait_reset [ph_idle@reset_3] on_game_timer = 86400 | ph_idle@wait_actor [ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_pseudodog_night:trc_sim_17)% ph_idle@reset_4, {~30} %=create_squad(simulation_fracture_night:trc_sim_17)% ph_idle@reset_4, {~40} %=create_squad(simulation_bloodsucker_night:trc_sim_17)% ph_idle@reset_4, {~50} %=create_squad(simulation_lurker_blue_night:trc_sim_17)% ph_idle@reset_4, ph_idle@wait_reset +on_info = {~10} %=create_squad(simulation_pseudodog_night:trc_sim_17)% ph_idle@reset_4, {~10} %=create_squad(simulation_fracture_night:trc_sim_17)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_17)% ph_idle@reset_4, {~10} %=create_squad(simulation_lurker_blue_night:trc_sim_17)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_psysucker_night:trc_sim_17)% ph_idle@reset_4, {~10} %=create_squad(simulation_contr_5rat_3tush_night:trc_sim_17)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_17)% ph_idle@reset_4, {~10} %=create_squad(simulation_bur_5rat_day_night:trc_sim_17)% ph_idle@reset_4, ph_idle@wait_reset [ph_idle@reset_4] on_game_timer = 86400 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_bunker_radio.ltx b/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_bunker_radio.ltx new file mode 100644 index 00000000..492b6a22 --- /dev/null +++ b/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_bunker_radio.ltx @@ -0,0 +1,9 @@ +[logic] +active = ph_sound + +[ph_sound] +snd = esc_sidorovich_radio +looped = false +min_idle = 300 +max_idle = 500 +random = true \ No newline at end of file diff --git a/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_1.ltx b/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_1.ltx index 87eaa77d..f307dd4a 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_1.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_1.ltx @@ -2,34 +2,17 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(yan_smart_terrain_1_6) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(yan_smart_terrain_1_6) =is_night} ph_idle@spawn_night_monster -;on_info2 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_2 -;on_info3 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_3 -;on_info4 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(yan_smart_terrain_1_6) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(yan_smart_terrain_1_6) =is_dark_night} ph_idle@spawn_dark_monster_1 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:yan_smart_terrain_1_6)% ph_idle@reset, {~30} %=create_squad(simulation_snork_night:yan_smart_terrain_1_6)% ph_idle@reset, {~40} %=create_squad(simulation_bloodsucker_night:yan_smart_terrain_1_6)% ph_idle@reset, {~50} %=create_squad(simulation_pseudodog_night:yan_smart_terrain_1_6)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_snork_night:yan_smart_terrain_1_6)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:yan_smart_terrain_1_6)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:yan_smart_terrain_1_6)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:yan_smart_terrain_1_6)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:yan_smart_terrain_1_6)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:yan_smart_terrain_1_6)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:yan_smart_terrain_1_6)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:yan_smart_terrain_1_6)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor -[ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:X)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:X)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:X)% ph_idle@reset_2, {~50} %=create_squad(simulation_bloodsucker_red_night:X)% ph_idle@reset_2, ph_idle@wait_reset - -[ph_idle@reset_2] -on_game_timer = 86400 | ph_idle@wait_actor - -[ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:X)% ph_idle@reset_3, {~30} %=create_squad(simulation_bloodsucker_night:X)% ph_idle@reset_3, {~40} %=create_squad(simulation_karlik_night:X)% ph_idle@reset_3, {~50} %=create_squad(simulation_lurker_brown_night:X)% ph_idle@reset_3, ph_idle@wait_reset -[ph_idle@reset_3] -on_game_timer = 86400 | ph_idle@wait_actor - -[ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:X)% ph_idle@reset_4, {~30} %=create_squad(simulation_bloodsucker_night:X)% ph_idle@reset_4, {~40} %=create_squad(simulation_psy_dog_night:X)% ph_idle@reset_4, {~50} %=create_squad(simulation_karlik_night:X)% ph_idle@reset_4, ph_idle@wait_reset - -[ph_idle@reset_4] -on_game_timer = 86400 | ph_idle@wait_actor - [ph_idle@wait_reset] on_game_timer = 580 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_2.ltx b/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_2.ltx index 44c6e548..de533b82 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_2.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_2.ltx @@ -2,34 +2,17 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(yan_smart_terrain_4_2) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(yan_smart_terrain_4_2) =is_night} ph_idle@spawn_night_monster -;on_info2 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_2 -;on_info3 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_3 -;on_info4 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(yan_smart_terrain_4_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(yan_smart_terrain_4_2) =is_dark_night} ph_idle@spawn_dark_monster_1 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_chimera_night:yan_smart_terrain_4_2)% ph_idle@reset, {~30} %=create_squad(simulation_snork_night:yan_smart_terrain_4_2)% ph_idle@reset, {~40} %=create_squad(simulation_bloodsucker_red_night:yan_smart_terrain_4_2)% ph_idle@reset, {~50} %=create_squad(simulation_psysucker_brown_night:yan_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_snork_night:yan_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:yan_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:yan_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_brown_night:yan_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_chimera_night:yan_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:yan_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:yan_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_brown_night:yan_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor -[ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:X)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:X)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:X)% ph_idle@reset_2, {~50} %=create_squad(simulation_bloodsucker_red_night:X)% ph_idle@reset_2, ph_idle@wait_reset - -[ph_idle@reset_2] -on_game_timer = 86400 | ph_idle@wait_actor - -[ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:X)% ph_idle@reset_3, {~30} %=create_squad(simulation_bloodsucker_night:X)% ph_idle@reset_3, {~40} %=create_squad(simulation_karlik_night:X)% ph_idle@reset_3, {~50} %=create_squad(simulation_lurker_brown_night:X)% ph_idle@reset_3, ph_idle@wait_reset -[ph_idle@reset_3] -on_game_timer = 86400 | ph_idle@wait_actor - -[ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:X)% ph_idle@reset_4, {~30} %=create_squad(simulation_bloodsucker_night:X)% ph_idle@reset_4, {~40} %=create_squad(simulation_psy_dog_night:X)% ph_idle@reset_4, {~50} %=create_squad(simulation_karlik_night:X)% ph_idle@reset_4, ph_idle@wait_reset - -[ph_idle@reset_4] -on_game_timer = 86400 | ph_idle@wait_actor - [ph_idle@wait_reset] on_game_timer = 580 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_3.ltx b/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_3.ltx index 25605f3c..94490a67 100644 --- a/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_3.ltx +++ b/mods/Redone Collection/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_3.ltx @@ -2,34 +2,17 @@ active = ph_idle@wait_actor [ph_idle@wait_actor] -on_info = {=actor_near_smart(yan_smart_terrain_6_2) =is_dark_night} ph_idle@spawn_night_monster, {=actor_near_smart(yan_smart_terrain_6_2) =is_night} ph_idle@spawn_night_monster -;on_info2 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_2, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_2 -;on_info3 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_3 -;on_info4 = {=actor_near_smart() =is_dark_night} ph_idle@spawn_night_monster_3, {=actor_near_smart() =is_night} ph_idle@spawn_night_monster_4 +on_info = {=actor_near_smart(yan_smart_terrain_6_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(yan_smart_terrain_6_2) =is_dark_night} ph_idle@spawn_dark_monster_1 -[ph_idle@spawn_night_monster] -on_info = {~20} %=create_squad(simulation_mix_zombie_night:yan_smart_terrain_6_2)% ph_idle@reset, {~30} %=create_squad(simulation_snork_night:yan_smart_terrain_6_2)% ph_idle@reset, {~40} %=create_squad(simulation_lurker_brown_night:yan_smart_terrain_6_2)% ph_idle@reset, {~50} %=create_squad(simulation_pseudodog_night:yan_smart_terrain_6_2)% ph_idle@reset, ph_idle@wait_reset +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:yan_smart_terrain_6_2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:yan_smart_terrain_6_2)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_brown_night:yan_smart_terrain_6_2)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:yan_smart_terrain_6_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_night:yan_smart_terrain_6_2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_2_3_night:yan_smart_terrain_6_2)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:yan_smart_terrain_6_2)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:yan_smart_terrain_6_2)% ph_idle@reset, ph_idle@wait_reset [ph_idle@reset] on_game_timer = 86400 | ph_idle@wait_actor -[ph_idle@spawn_night_monster_2] -on_info = {~20} %=create_squad(simulation_snork_night:X)% ph_idle@reset_2, {~30} %=create_squad(simulation_fracture_night:X)% ph_idle@reset_2, {~40} %=create_squad(simulation_zombie_3_6:X)% ph_idle@reset_2, {~50} %=create_squad(simulation_bloodsucker_red_night:X)% ph_idle@reset_2, ph_idle@wait_reset - -[ph_idle@reset_2] -on_game_timer = 86400 | ph_idle@wait_actor - -[ph_idle@spawn_night_monster_3] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:X)% ph_idle@reset_3, {~30} %=create_squad(simulation_bloodsucker_night:X)% ph_idle@reset_3, {~40} %=create_squad(simulation_karlik_night:X)% ph_idle@reset_3, {~50} %=create_squad(simulation_lurker_brown_night:X)% ph_idle@reset_3, ph_idle@wait_reset -[ph_idle@reset_3] -on_game_timer = 86400 | ph_idle@wait_actor - -[ph_idle@spawn_night_monster_4] -on_info = {~20} %=create_squad(simulation_psysucker_white_night:X)% ph_idle@reset_4, {~30} %=create_squad(simulation_bloodsucker_night:X)% ph_idle@reset_4, {~40} %=create_squad(simulation_psy_dog_night:X)% ph_idle@reset_4, {~50} %=create_squad(simulation_karlik_night:X)% ph_idle@reset_4, ph_idle@wait_reset - -[ph_idle@reset_4] -on_game_timer = 86400 | ph_idle@wait_actor - [ph_idle@wait_reset] on_game_timer = 580 | ph_idle@wait_actor diff --git a/mods/Redone Collection/gamedata/sounds/anomaly/brain_scorcher_l.ogg b/mods/Redone Collection/gamedata/sounds/anomaly/brain_scorcher_l.ogg index 34bad98f..0fdc2211 100644 --- a/mods/Redone Collection/gamedata/sounds/anomaly/brain_scorcher_l.ogg +++ b/mods/Redone Collection/gamedata/sounds/anomaly/brain_scorcher_l.ogg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:aed9bc654b60a79d548cdbcc494aa573ff9f0a7a1670bdee67623b013d74095f -size 116527 +oid sha256:0891dac5acb3b836be02baf19f8a66478dbb40ed30cdcd7c355282f06e3ffd6d +size 177858 diff --git a/mods/Redone Collection/gamedata/sounds/anomaly/brain_scorcher_r.ogg b/mods/Redone Collection/gamedata/sounds/anomaly/brain_scorcher_r.ogg index 10143075..935321dc 100644 --- a/mods/Redone Collection/gamedata/sounds/anomaly/brain_scorcher_r.ogg +++ b/mods/Redone Collection/gamedata/sounds/anomaly/brain_scorcher_r.ogg @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6f2222621878af68b6276b27473454f0c105258cca3a399c6cebcea83dfd8b43 -size 115741 +oid sha256:e55efd4c5a6fbb3ddbd81b6d4e616890889b8bd40ad4c2e42a960f8f8310aaab +size 177395 diff --git a/mods/Redone Collection/gamedata/textures/crete/crete_beton_ch_06.dds b/mods/Redone Collection/gamedata/textures/crete/crete_beton_ch_06.dds new file mode 100644 index 00000000..8e14a1ac --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/crete/crete_beton_ch_06.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb676c6c877c6ac131465c3af2b502739fdc9b6663c40ccc4e3c141f7a370498 +size 11184996 diff --git a/mods/Redone Collection/gamedata/textures/crete/crete_house_wall_1.dds b/mods/Redone Collection/gamedata/textures/crete/crete_house_wall_1.dds new file mode 100644 index 00000000..86cd6256 --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/crete/crete_house_wall_1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81f23fd34089039e18c521abaa78dae2f82d8666051c933a0d113e81d2589195 +size 44739428 diff --git a/mods/Redone Collection/gamedata/textures/crete/crete_stena_04f.dds b/mods/Redone Collection/gamedata/textures/crete/crete_stena_04f.dds new file mode 100644 index 00000000..c0e8bfd9 --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/crete/crete_stena_04f.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:faa075fd0facae878d65120227f938667038232ca33b6ce7b2036c0dc21e318d +size 44739428 diff --git a/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_08.dds b/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_08.dds new file mode 100644 index 00000000..7dbfb7ce --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_08.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfd4d92fbed0410db242b5289e1bc4fba882b3243b277fd88ccd1776f2c644f4 +size 89478692 diff --git a/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_11_1.dds b/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_11_1.dds new file mode 100644 index 00000000..3120fc28 --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_11_1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e58b9c111eab3f19c2232856b258dfedf4a20c4a948eb698f257d80b2dc03d5 +size 11184996 diff --git a/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_11_2.dds b/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_11_2.dds new file mode 100644 index 00000000..985064cf --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_11_2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb272cf048e4d69d10e79a75b05bcf84c05857c6d480f2f9af26dfaa0c5cd885 +size 5592580 diff --git a/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_12.dds b/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_12.dds new file mode 100644 index 00000000..2df09650 --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_12.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7db0c915c81997cb7c58672dd5b70588c2c3d16bb707c2743ab67f6cbdb38a5 +size 5592580 diff --git a/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_13.dds b/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_13.dds new file mode 100644 index 00000000..33c6f91a --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_13.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2f3c0ea1e0b41a800a2756e28118ac6820de43fa0d12210f3b7140649b3201f +size 89478692 diff --git a/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_15.dds b/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_15.dds new file mode 100644 index 00000000..dac3b806 --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/crete/crete_stena_ch_15.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce086bf2c6de4f342da5ebe318cfb9725f418fe24d821c477b795676dad1d290 +size 5592612 diff --git a/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13.dds b/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13.dds new file mode 100644 index 00000000..33c6f91a --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2f3c0ea1e0b41a800a2756e28118ac6820de43fa0d12210f3b7140649b3201f +size 89478692 diff --git a/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13.thm b/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13.thm new file mode 100644 index 00000000..81114701 --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29a5608f1c72c4193bd3b1e95170670522d9e2308a58168457a538e6233d72a3 +size 193 diff --git a/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13_bump#.dds b/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13_bump#.dds new file mode 100644 index 00000000..ef262a4b --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13_bump#.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccbc9bde3bc23e0f9329e6b584fadef691aa2b52bc9c255821896257d92f0a6b +size 1398288 diff --git a/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13_bump.dds b/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13_bump.dds new file mode 100644 index 00000000..83b37f91 --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13_bump.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd5b6bd7d4502776550a87415d28b73d3004e8a8cd9c99677ba39ab423563f97 +size 5592592 diff --git a/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13_bump.thm b/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13_bump.thm new file mode 100644 index 00000000..ee41583c --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_13_bump.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44430bffbd9ecfeb04f034b63502e382f3b4dd8d158d710aa425de56739fac78 +size 138 diff --git a/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_15.dds b/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_15.dds new file mode 100644 index 00000000..16a7a87e --- /dev/null +++ b/mods/Redone Collection/gamedata/textures/ston/ston_stena_ch_15.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30ff1dd45c3239c1e5839431efb776e960325e30f9608b456dfdf91a2aada472 +size 22369828 diff --git a/mods/Redone Collection/meta.ini b/mods/Redone Collection/meta.ini index 7d21e558..2d743255 100644 --- a/mods/Redone Collection/meta.ini +++ b/mods/Redone Collection/meta.ini @@ -1,39 +1,40 @@ [General] gameName=stalkeranomaly modid=0 -version=d2024.3.23.0 +version=d2024.3.30.0 newestVersion= -category="15," +category="-1," nexusFileStatus=1 -installationFile=RedoneCollection_v2.2.1.zip +installationFile=RedoneCollection_v2.2.2.zip repository= ignoredVersion= comments= notes= nexusDescription= url= -hasCustomURL=true +hasCustomURL=false lastNexusQuery= lastNexusUpdate= -nexusLastModified=2024-02-29T06:46:08Z +nexusLastModified=2024-03-31T09:03:49Z nexusCategory=0 converted=false validated=false color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) tracked=0 -[Plugins] -BAIN%20Installer\option0=00 MAIN INSTALL Redone Collection 2.2.0 -BAIN%20Installer\option1=02 SELECT ONE Agroprom Underground V2 [ NO ENDLESS SPAWN ] -BAIN%20Installer\option2=03 Optional Add Barman Army Wearhouse -BAIN%20Installer\option3=04 Optional Add Barman Dark Valley -BAIN%20Installer\option4=05 Optional Add Traders Darkscape -BAIN%20Installer\option5=06 Optional Cordon Logic Addon -BAIN%20Installer\option6=07 Optional Cordon Tunnel Anomalies -BAIN%20Installer\option7=08 Optional Psy-field Ambient Addon -BAIN%20Installer\option8=09 Redone Rank Progression Addon - [installedFiles] 1\modid=0 size=1 1\fileid=0 + +[Plugins] +BAIN%20Installer\option0=00 MAIN INSTALL Redone Collection 2.2.2 +BAIN%20Installer\option1=02 SELECT ONE Agroprom Underground V2 [ NO ENDLESS SPAWN ] +BAIN%20Installer\option2=03 Optional Endless Night Mutant Addon [ RECOMMENDED ] +BAIN%20Installer\option3=04 Optional Add Barman Army Wearhouse +BAIN%20Installer\option4=05 Optional Add Traders Darkscape +BAIN%20Installer\option5=06 Optional Add Barman Dark Valley +BAIN%20Installer\option6=07 Optional Cordon Logic Addon +BAIN%20Installer\option7=08 Optional Cordon Tunnel Anomalies +BAIN%20Installer\option8=09 Optional Psy-Field Ambient Addon +BAIN%20Installer\option9=10 Redone Rank Progression Addon diff --git a/mods/Redone Collection_backup/README Psy-Field Ambient Addon.txt b/mods/Redone Collection_backup/README Psy-Field Ambient Addon.txt new file mode 100644 index 00000000..4f0e339f --- /dev/null +++ b/mods/Redone Collection_backup/README Psy-Field Ambient Addon.txt @@ -0,0 +1,5 @@ + An ambient sound will be played when player are in a psy-field, MM or BS locations. + +Sound ambient is from Horror Overhaul - DesmanMetzger + +Credits: DesmanMetzger \ No newline at end of file diff --git a/mods/Redone Collection_backup/README Rank Progression Addon.txt b/mods/Redone Collection_backup/README Rank Progression Addon.txt new file mode 100644 index 00000000..e8b6b130 --- /dev/null +++ b/mods/Redone Collection_backup/README Rank Progression Addon.txt @@ -0,0 +1,9 @@ +Re:done version of the Improved player and NPCs ranks addon. + +Slow progression. Rank increases quite slowly and have other values, and NPC has a higher rank cap, 50 000 - 70 000. More legends and master-ranked NPCs. + +novice, 1999, trainee, 3999, experienced, 9999, professional, 17999, veteran, 25999, expert, 34999, master, 49999, legend + +Credits: mandothreesixtee + + diff --git a/mods/Redone Collection_backup/README Update.txt b/mods/Redone Collection_backup/README Update.txt new file mode 100644 index 00000000..47fe0e8e --- /dev/null +++ b/mods/Redone Collection_backup/README Update.txt @@ -0,0 +1 @@ +A New install of Re:done is required when updating. \ No newline at end of file diff --git a/mods/Redone Collection_backup/UPDATE 1.0 - 2.0 Patch note.txt b/mods/Redone Collection_backup/UPDATE 1.0 - 2.0 Patch note.txt new file mode 100644 index 00000000..bd6b2a32 --- /dev/null +++ b/mods/Redone Collection_backup/UPDATE 1.0 - 2.0 Patch note.txt @@ -0,0 +1,90 @@ +Update 2.0 (12/16/2023) BALANCE AND IMPROVEMENTS UPDATE + +CORDON UPDATE: + +Rebalanced mutants spawns time. +Disabled few smart terrain. + +MEADOW UPDATE: + +A Renegade camp and a Renegade mechanic have been added to the abandoned factory. +More bandits were added to their camp. +When the Renegade squads is eliminated, mutants will respawn. When the Bandits squads are defeated, mutant will respawn. When the Free stalkers squads are defeated, mutant will respawn. Mutants are going to spawn at the location where stalkers previously had control. +There's also a probability that ISG will appear when their mission begins. +Because of the small area, all spawns has a low spawn percentage. +Some zombie spawn will cease if the lab X16 is disabled. + +GARBAGE UPDATE: + +When General Voronin and Petrenko are killed, Duty spawn at the checkpoint will cease, the same applies for the army checkpoint when Colonel Kovalski dies. +Rebalanced mutants spawns time. +Minor changes to sim avail. +Added few special squad to factions. +Disabled few smart terrain. + +SWAMPS UPDATE: + +A renegade trader was added to their camp. +Renegade spawns on this map will be reduced by 70% if the trader dies. +If Snow dies, Csky spawns on this map will be reduced by 75%. +Added few special squad to factions for free up new stalker spawns. +Added so the radio not play music during a surge. +Rebalanced mutants spawns time. +Minor changes to sim avail. +Disabled few smart terrain + +AGROPROM UPDATE: + +Added dealy on the Prapoaganda ambient. +Special squads were added to free up new army stalker spawns. +If Colonel Kovalski dies, spawn on this map will be reduced by 80% and will have an effect on other maps. +Rebalanced mutants spawn time. +Minor changes to sim avail. +Disabled a few smart terrains. + +AGROPROM UNDERGROUND UPDATE: + +Non so far. Planning to enable smart terrain for spawning stalkers down there; only some testing remains before the release. +Agroprom Underground V2 Endless Spawn is included in this update. To change, just install Agroprom Underground V2 Original in the Optional folder. + +DARKVALLEY UPDATE: + +Added so the radio not play music during a surge. +Rebalanced mutants spawns time. +Disabled few smart terrain. + +DARKSCAPE UPDATE: + +Rebalanced mutants spawns time. +Disabled few smart terrain. + +ROSTOK UPDATE: + +Added Petrenko to the list of targets who must be killed before the Duty faction is destroyed. +Decreased max pop. at the bar 100. +TRUCK CEMETERY UPDATE: + +Rebalanced mutants spawns time. +Disabled few smart terrain. + +YANTAR UPDATE: + +ISG and Ecolog will now spawn correctly in Lab X16 and not above the lab. +Added back respawn for controller to the Lab X16. +Rebalanced mutants spawns time. +Disabled few smart terrain. + +WILD TERRITORY UPDATE: + +Rebalanced mutants spawns time. +Disabled few smart terrain. + +ARMY WEARHOUSES UPDATE: + +Rebalanced mutants spawns time. +Minor changes to sim avail. + +DEAD CITYUPDATE: + +Rebalanced mutants spawns time. +Minor changes to sim avail. diff --git a/mods/Redone Collection_backup/UPDATE 2.0 - 2.1.6 Patch note.txt b/mods/Redone Collection_backup/UPDATE 2.0 - 2.1.6 Patch note.txt new file mode 100644 index 00000000..c81ea53c --- /dev/null +++ b/mods/Redone Collection_backup/UPDATE 2.0 - 2.1.6 Patch note.txt @@ -0,0 +1,115 @@ +Update 2.1.6 (02/02/2024) BALANCE AND IMPROVEMENTS UPDATE + +YANTAR & WILD TERRITORY UPDATE: + +Added script to remove objects at Lab X-16. +Added\Changed spawns at Lab X-16. +Added alternative spawns at Lab X-16 when playing with Monolith or Sin when reactivating Miracle Machine and in Yantar. +Added Endless spawns light feature at Lab X-16. +ARMY WEARHOUSE: + +Balance of spawns; adjustments to Freedom spawns. +Changes to sim avail. +DEAD CITY: + +Balance of spawns; adjustments to Mercenaries spawns. +Removed respawning if the bandit is killed at administration building. +ROSTOK & TRUCK CEMETERY UPDATE: + +Balance of spawns; adjustments to Duty spawns. +AGROPROM UPDATE: + +Balance of spawns; minor adjustments to Army & mutant spawning +Added so the megaphone will be disabled when Colonel Kovalski dies. +DARKVALLEY & DARKSCAPE UPDATE: + +Balance of spawns; minor adjustments to Bandit & mutant spawning +GARBAGE: + +Balance of spawns: Adjustments to mutant spawning. +Added logic to Duty checkpoint. +SWAMPS: + +Balance of spawns: more stalker spawns and adjustments to mutant spawning. +Added profiles to the Renegade trader & mechanic. "DXML" +Fixed mission bug for the Renegades missions. +Changes to sim avail. +CORDON: + +Removed Bandit respawn at the car repair shop. +Fixed incorrect logic at the farm. +MEADOW: + +Balance of spawns: Adjustments to NPC spawns. + + +Update 2.1.5 (12/26/2023) BALANCE AND IMPROVEMENTS UPDATE + +Stalkers and mutants spawn time changes and balance on all southern map and more files to DTLX format. +Update 2.1.4 (12/23/2023) BALANCE AND IMPROVEMENTS UPDATE + +ROSTOK UPDATE: + +Minor changes to Rostok Duty base smart terrain. +Minor changes to megaphone. +TRUCK CEMETERY: + +Added one faction-controlled smart terrain. +AGROPROM UPDATE: + +Minor changes to megaphone. +Update 2.1.3 (12/23/2023) BALANCE AND IMPROVEMENTS UPDATE + +YANTAR UPDATE: + +Reactivation for Lab-X 16 is now possible and added gameplay for Monolith or Sin to activate the Miracle Machine. Monolith or Sin can reactivate the Miracle Machine with the added gameplay in storymode Off\On. ( If you changed faction in storymode On to Monolith or Sin. ) +Psy-field in Yantar work in conjunction with activation/deactivation settings in X-16 +Fixed surge avail for NPC at the industrial complex; they will still not seek shelter but will now survive a surge. There are no gulag surge scripts at the smart terrains +Update 2.1.2 (12/23/2023) BALANCE AND IMPROVEMENTS UPDATE + +DARKVALLEY UPDATE: + +Added back the pyrogeist in Lab-X18 and the militery squad. After the pyrogeist is dead, the spawning will begin, and sim avail is turned on for other stalkers to visit Lab X-18. ISG, Greh, Monolith have no sim avail. +Removed the faction control above Lab X-18 because of mods conflicts. +DARKSCAPE UPDATE: + +Changed one army special spawn to not spawn again after being killed. +Update 2.1.1 (12/21/2023) BALANCE AND IMPROVEMENTS UPDATE + +AGROPROM UNDERGROUND UPDATE: + +When the player has strelok notes in storymode, the smart terrain will be enabled and spawn hard mutants, and sim avail turn on so stalkers will finally be able to visit Agroprom Underground. ISG, Greh, Monolith have no sim avail. +After 2 days, the soldier squad at the stercase will respawn. If Colonel Kovalski dies, spawn cease. +AGROPROM UPDATE: + +Added military road patrol\special squad. +MEADOW UPDATE: + +Removed the Renegade mechanic to Swamps. +The Renegade special squad have new assignment at the abandoned factory. +ROSTOK UPDATE: + +The surge ambient at the megafone has been corrected and works properly. +SWAMPS: + +Added Renegade mechanic to the Renegade camp +Added Renegade camp patrol\special squad. +The Renegade camp is now a real faction camp. +Update 2.1 (12/19/2023) BUG FIX UPDATE + +Optional FOLDER fix: Correcting some spelling errors in the folder; My dyslexia shines out at times. xD + +MEADOW UPDATE: + +Fixed surge avail for NPC in Meadow; they will still not seek shelter but will now survive a surge. There are no gulag surge scripts at the smart terrains, only for the Loners in the map's south. +ROSTOK UPDATE: + +Fixed an issue in the arena where the doors remained locked in Rostok. +AGROPROM UPDATE: + +Added more simulation spawns to army, loners, csky, ecolog at Agroprom. +Fixed the megafone; the alarm feature does work again. +AGROPROM UNDERGROUND UPDATE: + +Balance some mutants spawn. +Fixed a bug in Endless spawn feature. diff --git a/mods/Redone Collection_backup/gamedata/configs/creatures/game_relations.ltx b/mods/Redone Collection_backup/gamedata/configs/creatures/game_relations.ltx new file mode 100644 index 00000000..a19134c3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/creatures/game_relations.ltx @@ -0,0 +1,313 @@ +п»ї + +[game_relations] +; Requirements for each rank increase by an additional multiple of 500 points with each rank. +; Rookie -> Trainee: 500 (+500), Trainee -> Experienced: 1500 (+1000), Experienced -> Professional: 3000 (+1500) etc. +; Rank values are set 1 point lower than their target as engine uses upper_bound to determine which text to display in inventory. + +rating = novice, 1999, trainee, 3999, experienced, 9999, professional, 17999, veteran, 25999, expert, 34999, master, 49999, legend +monster_rating = weak, 40, normal, 80, strong +reputation = terrible, -1999, really_bad, -1499, very_bad, -999, bad, -499, neutral, 499, good, 999, very_good, 1499, really_good, 1999, excellent + +rating_names = st_rank_novice, 1999, st_rank_trainee, 3999, st_rank_experienced, 9999, st_rank_professional, 17999, st_rank_veteran, 25999, st_rank_expert, 34999, st_rank_master, 49999, st_rank_legend +reputation_names = st_reputation_terrible, -1999, st_reputation_really_bad, -1499, st_reputation_very_bad, -999, st_reputation_bad, -499, st_reputation_neutral, 499, st_reputation_good, 999, st_reputation_very_good, 1499, st_reputation_really_good, 1999, st_reputation_excellent +goodwill_names = st_goodwill_enemy, 0, st_goodwill_indifferent, 1000, st_goodwill_friendly + +;ii?iaiaua cia?aiey aey ioiioaiey ia?niia?ae +attitude_neutal_threshold = -999 ;eiaaa attitude iaiuoa cia?aiey, oi aunoaaeyaony ALife::eRelationEnemy +attitude_friend_threshold = 999 ;eiaaa attitude iaiuoa cia?aiey, oi aunoaaeyaony ALife::eRelationNeutral, eia?a ALife::eRelationFriend + +;Used on set_relation between npcs, +goodwill_enemy = -1000 +goodwill_neutal = 0 +goodwill_friend = 1000 + +;iacaaiey a?oiie?iaie (ii?yaie aie?ai niaiaaaou n communities_relations) +communities = actor, 0, monster, 1, trader, 2, army_npc, 3, greh_npc, 4, bandit, 5, dolg, 6, ecolog, 7, freedom, 8, killer, 9, army, 10, monolith, 11, greh, 12, stalker, 13, zombied, 14, csky, 15, isg, 16, renegade, 17, actor_stalker, 18, actor_bandit, 19, actor_dolg, 20, actor_freedom, 21, actor_csky, 22, actor_ecolog, 23, actor_killer, 24, actor_army, 25, actor_monolith, 26, actor_zombied, 27, actor_greh, 28, actor_isg, 29, actor_renegade, 30, arena_enemy, 31 + +; отношение персонажа Рє актеру (или РґСЂСѓРіРѕРјСѓ NPC) вычисляется РїРѕ формуле +; attitude = personal_goodwill + //личное отношение персонажа Рє актеру (если раньше РЅРµ встречались, то 0) +; community_goodwill + //отношение РіСЂСѓРїРїРёСЂРѕРІРєРё персонажа лично Рє актеру (если раньше контактов РЅРµ было, то 0) +; community_to_community + //отношение РіСЂСѓРїРїРёСЂРѕРІРєРё персонажа Рє РіСЂСѓРїРїРёСЂРѕРІРєРµ актера РёР· [communities_relations] +; reputation_goodwill + //отношение репутации персонажа Рє репутации актера РёР· [reputation_relations] +; rank_goodwill //отношение ранга персонажа Рє рангу актера РёР· [rank_relations] +; столбцы Рё строки дописывать РІ алфавитном РїРѕСЂСЏРґРєРµ! + + +;////////////////////////////////////////////////////////////////////////////////////////////////// +; +; COMMUNITY RELATIONS +; +; Modified by DoctorX +; for DoctorX Dynamic Faction Relations 1.3 +; November 2, 2016 +; +;-------------------------------------------------------------------------------------------------- + +;------------------------------------------------ +; Community Relations (>999 = Ally, 0 = Neutral, <-999 = Enemy): + +[communities_relations] +; | actor|monster|trader| army_npc | greh_npc |bandit| dolg|ecolog|freedom|killer| army|monolith| greh |stalker| zombied| csky | isg |renegade| actor_stalker | actor_bandit | actor_dolg | actor_freedom | actor_csky | actor_ecolog | actor_killer | actor_army | actor_monolith | actor_zombied | actor_greh | actor_isg | actor_renegade| arena_enemy| +;============================================================================================================================================================================================================================================================================================================================================================================== +actor = 0, -2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2000 +monster = -2000, 0, 0, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 0, -2000, -2000, -2000, 0 +trader = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2000, 0, 0, 0, 0 +army_npc = 0, -2000, 0, 300, -2000, -2000, 0, 0, 0, 0, 300, -2000, -2000, 0, -2000, 0, -2000, -2000, 0, -2000, 0, 0, 0, 0, 0, 300, -2000, -2000, -2000, -2000, -2000, 0 +greh_npc = 0, -2000, 0, -2000, 300, 0, 0, 0, 0, 0, 0, 300, 300, 0, 300, 0, -2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 300, 300, -2000, 0, 0 + +; | actor|monster|trader| army_npc | greh_npc |bandit| dolg|ecolog|freedom|killer| army|monolith| greh |stalker| zombied| csky | isg |renegade| actor_stalker | actor_bandit | actor_dolg | actor_freedom | actor_csky | actor_ecolog | actor_killer | actor_army | actor_monolith | actor_zombied | actor_greh | actor_isg | actor_renegade| arena_enemy| +;============================================================================================================================================================================================================================================================================================================================================================================== +bandit = 0, -2000, 0, -2000, 0, 300, -2000, -2000, 0, 0, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 300, -2000, 300, -2000, 0, -2000, -2000, 0, -2000, -2000, -2000, -2000, -2000, 300, 0 +dolg = 0, -2000, 0, 0, 0, -2000, 300, 0, -2000, -2000, 0, -2000, -2000, 0, -2000, 0, -2000, -2000, 0, -2000, 300, -2000, 0, 0, -2000, 0, -2000, -2000, -2000, -2000, -2000, 0 +ecolog = 0, -2000, 0, 0, 0, -2000, 0, 300, 0, 0, 0, -2000, -2000, 0, -2000, 0, -2000, -2000, 0, -2000, 0, 0, 0, 300, 0, 0, -2000, -2000, -2000, -2000, -2000, 0 +freedom = 0, -2000, 0, 0, 0, 0, -2000, 0, 300, 0, -2000, -2000, -2000, 0, -2000, 0, -2000, -2000, 0, 0, -2000, 300, 0, 0, 0, -2000, -2000, -2000, -2000, -2000, -2000, 0 +killer = 0, -2000, 0, 0, 0, 0, -2000, 0, 0, 300, -2000, -2000, -2000, -2000, -2000, 0, 0, -2000, -2000, 0, -2000, 0, 0, 0, 300, -2000, -2000, -2000, -2000, 0, -2000, 0 +army = 0, -2000, 0, 2000, -2000, -2000, 0, 0, -2000, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 0, -2000, -2000, 0, -2000, 300, -2000, -2000, -2000, -2000, -2000, 0 +monolith = 0, -2000, 0, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, 2000, 300, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 2000, 300, 300, -2000, -2000, 0 +greh = 0, -2000, 0, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, 300, 300, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 300, 300, 300, -2000, -2000, 0 +stalker = 0, -2000, 0, 0, 0, -2000, 0, 0, 0, -2000, -2000, -2000, -2000, 300, -2000, 0, -2000, -2000, 0, -2000, 0, 0, 0, 0, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 0 +zombied = 0, -2000, 1, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, 300, 300, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 0, 300, 300, -2000, -2000, 0 +csky = 0, -2000, 0, 0, 0, -2000, 0, 0, 0, 0, -2000, -2000, -2000, 0, -2000, 300, -2000, -2000, 0, -2000, 0, 0, 300, 0, 0, -2000, -2000, -2000, -2000, -2000, -2000, 0 +isg = 0, -2000, 0, -2000, -2000, -2000, -2000, -2000, -2000, 0, -2000, -2000, -2000, -2000, -2000, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 0, -2000, -2000, -2000, -2000, 300, -2000, 0 +renegade = 0, -2000, 0, -2000, 0, 300, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 300, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 300, 0 + +; | actor|monster|trader| army_npc | greh_npc |bandit| dolg|ecolog|freedom|killer| army|monolith| greh |stalker| zombied| csky | isg |renegade| actor_stalker | actor_bandit | actor_dolg | actor_freedom | actor_csky | actor_ecolog | actor_killer | actor_army | actor_monolith | actor_zombied | actor_greh | actor_isg | actor_renegade| arena_enemy| +;============================================================================================================================================================================================================================================================================================================================================================================== +actor_stalker = 0, -2000, 0, 0, 0, -2000, 0, 0, 0, -2000, -2000, -2000, -2000, 0, -2000, 0, -2000, -2000, 0, 0, 0, 0, 0, 0, -2000, 0, 0, -2000, -2000, -2000, -2000, 0 +actor_bandit = 0, -2000, 0, -2000, 0, 300, -2000, -2000, 0, 0, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 300, 0, 300, 0, 0, 0, 0, 0, 0, 0, -2000, -2000, -2000, 300, 0 +actor_dolg = 0, -2000, 0, 0, 0, -2000, 300, 0, -2000, -2000, 0, -2000, -2000, 0, -2000, 0, -2000, -2000, 0, 0, 300, 0, 0, 0, 0, 0, 0, -2000, -2000, -2000, -2000, 0 +actor_freedom = 0, -2000, 0, 0, 0, 0, -2000, 0, 300, 0, -2000, -2000, -2000, 0, -2000, 0, -2000, -2000, 0, 0, 0, 300, 0, 0, 0, 0, 0, -2000, -2000, -2000, -2000, 0 +actor_csky = 0, -2000, 0, 0, 0, -2000, 0, 0, 0, 0, -2000, -2000, -2000, 0, -2000, 300, -2000, -2000, 0, 0, 0, 0, 300, 0, 0, 0, 0, -2000, -2000, -2000, -2000, 0 +actor_ecolog = 0, -2000, 0, 0, 0, -2000, 0, 300, 0, 0, 0, -2000, -2000, 0, -2000, 0, -2000, -2000, 0, 0, 0, 0, 0, 300, 0, 0, 0, -2000, -2000, -2000, -2000, 0 +actor_killer = 0, -2000, 0, 0, 0, 0, -2000, 0, 0, 300, -2000, -2000, -2000, -2000, -2000, 0, 0, -2000, -2000, 0, 0, 0, 0, 0, 300, 0, 0, -2000, -2000, 0, -2000, 0 +actor_army = 0, -2000, 0, 2000, -2000, -2000, 0, 0, -2000, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 0, 0, 0, 0, 0, 0, 0, 300, 0, -2000, -2000, -2000, -2000, 0 +actor_monolith = 0, -2000, 0, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, 2000, 300, -2000, 0, -2000, -2000, -2000, 0, 0, 0, 0, 0, 0, 0, 0, 2000, 0, 300, -2000, -2000, 0 +actor_zombied = 0, -2000, 0, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, 300, 300, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 0, 300, 300, -2000, -2000, 0 +actor_greh = 0, -2000, 0, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, 300, 300, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 300, 300, 300, -2000, -2000, 0 +actor_isg = 0, -2000, 0, -2000, -2000, -2000, -2000, -2000, -2000, 0, -2000, -2000, -2000, -2000, -2000, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 0, -2000, -2000, -2000, -2000, 300, -2000, 0 +actor_renegade = 0, -2000, 0, -2000, 0, 300, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 300, -2000, 300, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 300, 0 +arena_enemy = -2000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2000, 0, 0, 0, 0, 0, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, -2000, 0, 0, 0 + + +[rank_relations] +; novice, trainee, experienced, professional, veteran, expert, master, legend +;========================================================================================= +novice = 0, 100, 200, 400, 600, 700, 800, 800 +trainee = 0, 0, 100, 300, 500, 700, 800, 800 +experienced = 0, 0, 100, 200, 400, 600, 700, 700 +professional = 0, 0, 0, 100, 300, 500, 600, 700 +veteran = 0, 0, 0, 0, 100, 300, 500, 600 +expert = 0, 0, 0, 0, 0, 200, 400, 600 +master = 0, 0, 0, 0, 0, 100, 300, 500 +legend = 0, 0, 0, 0, 0, 0, 200, 500 + +[reputation_relations] +; terrible, really_bad, very_bad, bad, neutral, good, very_good, really_good, excellent +;================================================================================================== +terrible = 300, 200, 100, 0, 0, 0, 0, 0, 0 +really_bad = 200, 300, 200, 100, 0, 0, 0, 0, 0 +very_bad = 200, 200, 300, 200, 0, 0, 0, 0, 0 +bad = 100, 100, 100, 300, 100, 0, 0, 0, 0 +neutral = 0, 0, 0, 100, 300, 100, 100, 0, 100 +good = 0, 0, 0, 0, 100, 300, 200, 100, 200 +very_good = 0, 0, 0, 0, 0, 200, 300, 300, 300 +really_good = 0, 0, 0, 0, 0, 100, 200, 400, 400 +excellent = 0, 0, 0, 0, 0, 0, 100, 300, 500 + +; +; очки рейтинга Рё репутации начисляемые Р·Р° определенные действия +; + +;очки рейтинга, получаемые Р·Р° убийство персонажа +;СЃ определенным статусом +[rank_kill_points] +novice = 4 +trainee = 6 +experienced = 8 +professional = 10 +veteran = 15 +expert = 20 +master = 25 +legend = 100 + +;коэффициенты "сочувствия" РіСЂСѓРїРїРёСЂРѕРІРѕРє +;после воздействия РЅР° РѕРґРЅРѕРіРѕ РёР· членов РіСЂСѓРїРїРёСЂРѕРІРєРё +;goodwill его распространится РЅР° остальных членов РіСЂСѓРїРїРёСЂРѕРІРєРё +;СЃ определенным коэффициентом +;(РїРѕСЂСЏРґРѕРє должен совпадать СЃ communities_relations) +[communities_sympathy] +actor = 0.0 +bandit = 0.0 +dolg = 0.0 +ecolog = 0.0 +freedom = 0.0 +killer = 0.0 +army = 0.0 +army_npc = 0.0 +monolith = 0.0 +greh = 0.0 +greh_npc = 0.0 +renegade = 0.0 +monster = 0.0 +stalker = 0.0 +zombied = 0.0 +csky = 0.0 +isg = 0.0 +trader = 0.0 +actor_bandit = 0.0 +actor_dolg = 0.0 +actor_ecolog = 0.0 +actor_freedom = 0.0 +actor_killer = 0.0 +actor_army = 0.0 +actor_monolith = 0.0 +actor_stalker = 0.0 +actor_csky = 0.0 +actor_zombied = 0.0 +actor_renegade = 0.0 +actor_greh = 0.0 +actor_isg = 0.0 +arena_enemy = 0.0 + + + + +;очки рейтинга, репутации Рё доброжелательности начисляемые +;РІ зависимости РѕС‚ совершенного действия +[action_points] +personal_goodwill_limits = -3000, 3000 +community_goodwill_limits = -5000, 5000 + + +;------------------------------------------------------- + +;----- +; Killing other stalkers. +;----- + +community_member_kill_goodwill = -2000 ; Same faction +friend_kill_goodwill = -2000 ; Friendly +neutral_kill_goodwill = -2000 ; Neutral +enemy_kill_goodwill = -100 ; Enemy + +; These values are now set in xr_statistic.script. +friend_kill_reputation = 0 ; Friendly +neutral_kill_reputation = 0 ; Neutral +enemy_kill_reputation = 0 ; Enemy + +;----- +; Assisting stalkers in combat. +;----- + +community_member_fight_help_goodwill = 500 ; Same faction +friend_fight_help_goodwill = 200 ; Friendly +neutral_fight_help_goodwill = 200 ; Neutral +enemy_fight_help_goodwill = 1 ; Enemy + +friend_fight_help_reputation = 100 ; Friendly +neutral_fight_help_reputation = 50 ; Neutral +enemy_fight_help_reputation = 0 ; Enemy + +;----- +; Attacking stalkers who ARE NOT shooting at you. +;----- + +free_community_member_attack_goodwill = -500 ; Same faction +free_friend_attack_goodwill = -2000 ; Friendly +free_neutral_attack_goodwill = -2000 ; Neutral +free_enemy_attack_goodwill = -100 ; Enemy + +free_friend_attack_reputation = -500 ; Friendly +free_neutral_attack_reputation = -350 ; Neutral +free_enemy_attack_reputation = 5 ; Enemy + +;----- +; Attacking stalkers who ARE shooting at you. +; You're already fighting them so the penalties are reduced. +; Example: You assassinate a loner and his buddies start shooting at you. +;----- + +danger_community_member_attack_goodwill = -1 ; Same faction +danger_friend_attack_goodwill = -1 ; Friendly +danger_neutral_attack_goodwill = -1 ; Neutral +danger_enemy_attack_goodwill = -1 ; Enemy + +danger_friend_attack_reputation = 0 ; Friendly +danger_neutral_attack_reputation = 0 ; Neutral +danger_enemy_attack_reputation = 0 ; Enemy + +;-------------------------------------------------- +;(сек) минимальное время через которое СЃРЅРѕРІР° будет зарегистрировано +;сообщение РѕР± атаке РЅР° персонажа, Рё соответственно вычтеся attack_goodwill Рё attack_reputation +;(работает аналогично Рё РїСЂРё помощи РґСЂСѓРіРёРј персонажам РІ Р±РѕСЋ) +min_attack_delta_time = 1 +fight_remember_time = 0.2 ;(cae) a?aiy eioi?ia i?i a?aeo aoaao iiiieou ?aano? + +;свойства, которые изменяются Сѓ сталкеров РІ +;зависимости РѕС‚ РёС… ранга +;коэффициенты линейно интерполируются для рангов РѕС‚ 0 (novice) РґРѕ 100 (experienced) + +; Section is not used by the game. +; However it is directly referenced in-engine. +; Removing this or its contents will crash the game. +[ranks_properties] +immunities_novice_k = 1.0 +immunities_experienced_k = 1.0 +visibility_novice_k = 1.0 +visibility_experienced_k = 1.0 +dispersion_novice_k = 1.0 +dispersion_experienced_k = 0.8 + + +; диапазон изменения рангов РїСЂРё регистрации РІ РЅРѕРІРѕРј смарт террейне +[smart_terrain_rank_change] +min = 1 +max = 2 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; for monsters +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +[monster_communities] +;--//Bamah added trader to keep traders and mechanics from getting attacked +;Room team are assigned to appropriate types +;255 - command is not given +communities = actor, 255, human, 255, zoo_monster, 39, boar, 40, bloodsucker, 41, flesh, 42, dog, 43, pseudodog, 44, cat, 45, chimera, 46, giant, 47, zombie, 48, burer, 49, controller, 50, poltergeist, 51, snork, 52, fracture, 53, bird, 54, rat, 55, tushkano, 56, corpse, 57, trader, 58, arena_monstr, 59, komar, 60, tark, 61, medwed, 62, rotan, 63, fly, 64, mwolf, 65, psysucker, 66, lurker, 67, karlik, 68 + +[monster_relations] +; [1] friend, [0] neutral, [-1] enemy, [-2] hated enemy +; actor, human, zoo_monstr, boar, bloodsucker, flesh, dog, pseudodog, cat, chimera, giant, zombie, burer, controller, poltergeist, snork, fracture, bird, rat, tushkano, corpse, trader, arena_monstr, komar, tark, medwed, rotan, fly, mwolf, psysucker, lurker, karlik +;=================================================================================================================================================================================================================================================================================== +actor = 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2 +human = 0, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 1, 0, -1, -1, -2, -1, -1, -1, -1, -1, -1 +zoo_monster = 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +boar = -1, -1, 0, 1, -1, 1, -1, -1, 0, -1, -1, 0, -1, 0, 0, -1, -1, 0, 0, -1, 0, 1, 0, 0, 0, -1, -1, 0, -1, -1, -1, 0 +bloodsucker = -1, -1, 0, -1, 1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1 +flesh = -1, -1, 0, 1, -1, 1, -1, -1, 0, -1, 0, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 1, 0, 0, 0, -1, -1, 0, -1, -1, -1, 0 +dog = -1, -1, 0, -1, -1, -1, 1, 1, -1, 0, -1, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 1, 0, -1, -1, 0, 0, 0, 0, -1, 0, 0 +pseudodog = -1, -1, 0, -1, -1, -1, 1, 1, -1, 0, -1, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0 +cat = -1, -1, 0, 0, 0, 0, -1, -1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +chimera = -1, -1, 0, -1, 0, -1, 0, 0, 0, 1, -1, 0, -1, -1, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, -1 +giant = -1, -1, 0, -1, -1, 0, -1, -1, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, -1, 0, 0, 0, -1, -1, 0 +zombie = -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1, -1, 0, 0, 0, -1, 0, 0, -1, -1, -1, 0, 0, 0 +burer = -1, -1, 0, -1, -1, 0, -1, -1, 1, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0 +controller = -1, -1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1 +poltergeist = -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +snork = -1, -1, 0, -1, -1, -1, -1, -1, 0, -1, 0, 0, 0, -1, 0, 1, -1, 0, 0, 0, 0, 1, 0, -1, 0, -1, 0, 0, 0, -1, -1, -1 +fracture = -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 0 +bird = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +rat = -1, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +tushkano = -1, -1, 0, -1, 0, -1, 0, 0, -1, 0, -1, -1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +corpse = -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0 +trader = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1 +arena_monstr= -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +komar = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 +tark = -2, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, -1, -1, 0, 0, 0, 0, 0 +medwed = -2, -2, 0, -1, 0, -1, 0, 0, 0, 1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0 +rotan = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0 +fly = -2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 +mwolf = -2, -1, 0, -1, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 +psysucker = -2, -1, 0, -1, 1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1 +lurker = -2, -1, 0, -1, 0, -1, 0, 0, 0, 1, -1, 0, -1, -1, 0, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, -1 +karlik = -2, -1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, 1 diff --git a/mods/Redone Collection_backup/gamedata/configs/creatures/spawn_sections_labx16_spawn_point.ltx b/mods/Redone Collection_backup/gamedata/configs/creatures/spawn_sections_labx16_spawn_point.ltx new file mode 100644 index 00000000..1bc71f68 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/creatures/spawn_sections_labx16_spawn_point.ltx @@ -0,0 +1,355 @@ +![labx16_zombie_1]:stalker_zombied +$spawn = "respawn\labx16_zombie_1" +character_profile = sim_default_zombied_2 +spec_rank = advanced +community = zombied +custom_data = scripts\labx16\labx16_zombie_1.ltx +story_id = labx16_zombie_1 + +![labx16_zombie_2]:stalker_zombied +$spawn = "respawn\labx16_zombie_2" +character_profile = sim_default_zombied_2 +spec_rank = advanced +community = zombied +custom_data = scripts\labx16\labx16_zombie_2.ltx +story_id = labx16_zombie_2 + +![labx16_zombie_3]:zombie_normal +$spawn = "respawn\labx16_zombie_3" +character_profile = zombie_normal +;spec_rank = normal +community = monster +custom_data = scripts\labx16\labx16_zombie_3.ltx +story_id = labx16_zombie_3 + +![labx16_zombie_4]:zombie_strong +$spawn = "respawn\labx16_zombie_4" +character_profile = zombie_strong +;spec_rank = normal +community = monster +custom_data = scripts\labx16\labx16_zombie_4.ltx +story_id = labx16_zombie_4 + +![labx16_zombie_6]:stalker_zombied +$spawn = "respawn\labx16_zombie_6" +character_profile = sim_default_zombied_2 +spec_rank = advanced +community = zombied +custom_data = scripts\labx16\labx16_zombie_6.ltx +story_id = labx16_zombie_6 + +![labx16_zombie_10]:stalker_zombied +$spawn = "respawn\labx16_zombie_10" +character_profile = sim_default_zombied_2 +spec_rank = advanced +community = zombied +custom_data = scripts\labx16\labx16_zombie_10.ltx +story_id = labx16_zombie_10 + +![labx16_zombie_11]:stalker_zombied +$spawn = "respawn\labx16_zombie_11" +character_profile = sim_default_zombied_2 +spec_rank = advanced +community = zombied +custom_data = scripts\labx16\labx16_zombie_11.ltx +story_id = labx16_zombie_11 + +![labx16_zombie_12]:zombie_weak +$spawn = "respawn\labx16_zombie_12" +character_profile = zombie_weak +;spec_rank = normal +community = monster +custom_data = scripts\labx16\labx16_zombie_12.ltx +story_id = labx16_zombie_12 + +![labx16_zombie_13]:zombie_weak +$spawn = "respawn\labx16_zombie_13" +character_profile = zombie_weak +;spec_rank = normal +community = monster +custom_data = scripts\labx16\labx16_zombie_13.ltx +story_id = labx16_zombie_13 + +![labx16_zombie_16]:burer_normal +$spawn = "respawn\labx16_zombie_16" +character_profile = burer_normal +;spec_rank = normal +community = monster +custom_data = scripts\labx16\labx16_zombie_16.ltx +story_id = labx16_zombie_16 + +![labx16_zombie_17]:zombie_strong +$spawn = "respawn\labx16_zombie_17" +character_profile = zombie_strong +;spec_rank = normal +community = monster +custom_data = scripts\labx16\labx16_zombie_17.ltx +story_id = labx16_zombie_17 + +![labx16_zombie_19]:rat_normal +$spawn = "respawn\labx16_zombie_19" +character_profile = rat_normal +;spec_rank = normal +community = monster +custom_data = scripts\labx16\labx16_zombie_19.ltx +story_id = labx16_zombie_19 + +![labx16_snork_4]:bloodsucker_black_strong +$spawn = "respawn\labx16_snork_4" +community = monster + +![labx16_snork_5]:stalker_zombied +$spawn = "respawn\labx16_snork_5" +character_profile = sim_default_zombied_4 +spec_rank = veteran +community = zombied +custom_data = scripts\labx16\labx16_zombie_1.ltx +story_id = labx16_zombied_5 + +![labx16_snork_6]:stalker_zombied +$spawn = "respawn\labx16_snork_6" +character_profile = sim_default_zombied_4 +spec_rank = veteran +community = zombied +custom_data = scripts\labx16\labx16_zombie_2.ltx +story_id = labx16_zombied_6 + +[labx16_snork_7]:snork_strong +$spawn = "respawn\labx16_snork_7" +community = monster +custom_data = scripts\labx16\labx16_controller.ltx + +[labx16_snork_8]:snork_strong +$spawn = "respawn\labx16_snork_8" +community = monster +custom_data = scripts\labx16\labx16_controller.ltx + +[labx16_ecolog_1]:stalker +$spawn = "respawn\labx16_ecolog_1" +character_profile = sim_default_ecolog_2 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_1.ltx +story_id = labx16_ecolog_1 + +[labx16_ecolog_2]:stalker +$spawn = "respawn\labx16_ecolog_2" +character_profile = sim_default_ecolog_1 +spec_rank = novice +community = ecolog +custom_data = scripts\labx16\labx16_zombie_2.ltx +story_id = labx16_ecolog_2 + +[labx16_ecolog_3]:stalker_strong +$spawn = "respawn\labx16_ecolog_3" +character_profile = sim_default_ecolog_3 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_3.ltx +story_id = labx16_ecolog_3 + +[labx16_ecolog_4]:stalker +$spawn = "respawn\labx16_ecolog_4" +character_profile = sim_default_ecolog_1 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_4.ltx +story_id = labx16_ecolog_4 + +[labx16_ecolog_5]:stalker +$spawn = "respawn\labx16_ecolog_5" +character_profile = sim_default_ecolog_1 +spec_rank = novice +community = ecolog +custom_data = scripts\labx16\labx16_zombie_5.ltx +story_id = labx16_ecolog_5 + +[labx16_ecolog_6]:stalker +$spawn = "respawn\labx16_ecolog_6" +character_profile = sim_default_ecolog_2 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_6.ltx +story_id = labx16_ecolog_6 + +[labx16_ecolog_7]:stalker +$spawn = "respawn\labx16_ecolog_7" +character_profile = sim_default_ecolog_2 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_7.ltx +story_id = labx16_ecolog_7 + +[labx16_ecolog_8]:stalker_strong +$spawn = "respawn\labx16_ecolog_8" +character_profile = sim_default_ecolog_3 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_8.ltx +story_id = labx16_ecolog_8 + +[labx16_ecolog_9]:stalker +$spawn = "respawn\labx16_ecolog_9" +character_profile = sim_default_ecolog_1 +spec_rank = novice +community = ecolog +custom_data = scripts\labx16\labx16_zombie_9.ltx +story_id = labx16_ecolog_9 + +[labx16_ecolog_10]:stalker +$spawn = "respawn\labx16_ecolog_10" +character_profile = sim_default_ecolog_1 +spec_rank = novice +community = ecolog +custom_data = scripts\labx16\labx16_zombie_10.ltx +story_id = labx16_ecolog_10 + +[labx16_ecolog_11]:stalker +$spawn = "respawn\labx16_ecolog_11" +character_profile = sim_default_ecolog_1 +spec_rank = novice +community = ecolog +custom_data = scripts\labx16\labx16_zombie_11.ltx +story_id = labx16_ecolog_11 + +[labx16_ecolog_12]:stalker_strong +$spawn = "respawn\labx16_ecolog_12" +character_profile = sim_default_ecolog_3 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_12.ltx +story_id = labx16_ecolog_12 + +[labx16_ecolog_13]:stalker_strong +$spawn = "respawn\labx16_ecolog_13" +character_profile = sim_default_ecolog_3 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_13.ltx +story_id = labx16_ecolog_13 + +[labx16_ecolog_14]:stalker +$spawn = "respawn\labx16_ecolog_14" +character_profile = sim_default_ecolog_1 +spec_rank = novice +community = ecolog +custom_data = scripts\labx16\labx16_zombie_14.ltx +story_id = labx16_ecolog_14 + +[labx16_ecolog_15]:stalker +$spawn = "respawn\labx16_ecolog_15" +character_profile = sim_default_ecolog_2 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_15.ltx +story_id = labx16_ecolog_15 + +[labx16_ecolog_16]:stalker_strong +$spawn = "respawn\labx16_ecolog_16" +character_profile = sim_default_ecolog_4 +spec_rank = veteran +community = ecolog +custom_data = scripts\labx16\labx16_zombie_16.ltx +story_id = labx16_ecolog_16 + +[labx16_ecolog_17]:stalker +$spawn = "respawn\labx16_ecolog_17" +character_profile = sim_default_ecolog_1 +spec_rank = novice +community = ecolog +custom_data = scripts\labx16\labx16_zombie_17.ltx +story_id = labx16_ecolog_17 + +[labx16_ecolog_18]:stalker +$spawn = "respawn\labx16_ecolog_18" +character_profile = sim_default_ecolog_2 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_18.ltx +story_id = labx16_ecolog_18 + +[labx16_ecolog_19]:rat_normal +$spawn = "respawn\labx16_zombie_19" +character_profile = rat_normal +;spec_rank = normal +community = monster +custom_data = scripts\labx16\labx16_zombie_19.ltx + +[labx16_ecolog_1a]:stalker +$spawn = "respawn\labx16_ecolog_1a" +character_profile = sim_default_ecolog_2 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_4.ltx +story_id = labx16_ecolog_1a + +[labx16_ecolog_2a]:stalker_strong +$spawn = "respawn\labx16_ecolog_2a" +character_profile = sim_default_ecolog_3 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_3.ltx +story_id = labx16_ecolog_2a + +[labx16_ecolog_3a]:stalker_strong +$spawn = "respawn\labx16_ecolog_3a" +character_profile = sim_default_ecolog_3 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_4.ltx +story_id = labx16_ecolog_3a + +[labx16_ecolog_4a]:stalker +$spawn = "respawn\labx16_ecolog_4a" +character_profile = sim_default_ecolog_2 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_3.ltx +story_id = labx16_ecolog_4a + +[labx16_ecolog_5a]:stalker +$spawn = "respawn\labx16_ecolog_5a" +character_profile = sim_default_ecolog_2 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_4.ltx +story_id = labx16_ecolog_5a + +[labx16_ecolog_6a]:stalker +$spawn = "respawn\labx16_ecolog_6a" +character_profile = sim_default_ecolog_2 +spec_rank = advanced +community = ecolog +custom_data = scripts\labx16\labx16_zombie_4.ltx +story_id = labx16_ecolog_6a + +[labx16_ecolog_7a]:stalker_strong +$spawn = "respawn\labx16_ecolog_7a" +character_profile = sim_default_military_3_sniper +spec_rank = veteran +community = army +custom_data = scripts\labx16\labx16_zombie_19.ltx +story_id = labx16_ecolog_7a + +[labx16_ecolog_8a]:stalker_strong +$spawn = "respawn\labx16_ecolog_8a" +character_profile = sim_default_military_3_sniper +spec_rank = veteran +community = army +custom_data = scripts\labx16\labx16_zombie_19.ltx +story_id = labx16_ecolog_8a + +[labx16_ecolog_controller]:stalker_strong +$spawn = "respawn\labx16_ecolog_controller" +character_profile = sim_default_military_4 +spec_rank = veteran +community = army +custom_data = scripts\labx16\labx16_zombie_19.ltx +story_id = labx16_ecolog_controller + +[labx16_killer_dead]:stalker_strong +$spawn = "respawn\labx16_killer_dead" +character_profile = sim_default_killer_dead +spec_rank = veteran +community = killer +custom_data = scripts\labx16\labx16_ghost.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/creatures/spawn_sections_labx18_spawn_point.ltx b/mods/Redone Collection_backup/gamedata/configs/creatures/spawn_sections_labx18_spawn_point.ltx new file mode 100644 index 00000000..da5d437a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/creatures/spawn_sections_labx18_spawn_point.ltx @@ -0,0 +1,15 @@ +[dar_corpse_3]:sim_default_military_dead +$spawn = "respawn\dar_corpse_1" +;character_profile = dar_corpse_1 +spec_rank = veteran +community = army +;story_id = dar_corpse_1 +;custom_data = scripts\labx18\dar_corpse_1.ltx + +[dar_corpse_4]:sim_default_military_dead +$spawn = "respawn\dar_corpse_2" +;character_profile = dar_corpse_2 +spec_rank = veteran +community = army +;story_id = dar_corpse_2 +;custom_data = scripts\labx18\dar_corpse_2.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/creatures/spawn_sections_marsh_spawn_point.ltx b/mods/Redone Collection_backup/gamedata/configs/creatures/spawn_sections_marsh_spawn_point.ltx new file mode 100644 index 00000000..67b2a9aa --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/creatures/spawn_sections_marsh_spawn_point.ltx @@ -0,0 +1,13 @@ +[mar_renegade_trader]:stalker +$spawn = "respawn\mar_renegade_trader" +character_profile = mar_renegade_trader +spec_rank = regular +community = renegade +story_id = mar_renegade_trader + +[mar_renegade_mechanic]:stalker +$spawn = "respawn\mar_renegade_mechanic" +character_profile = mar_renegade_mechanic +spec_rank = regular +community = renegade +story_id = mar_renegade_mechanic \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/creatures/spawn_sections_yantar_spawn_point.ltx b/mods/Redone Collection_backup/gamedata/configs/creatures/spawn_sections_yantar_spawn_point.ltx new file mode 100644 index 00000000..06d9eead --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/creatures/spawn_sections_yantar_spawn_point.ltx @@ -0,0 +1,118 @@ +[yan_stalker_military_1]:stalker_strong +$spawn = "respawn\yan_stalker_military_1" +character_profile = sim_default_military_2 +spec_rank = regular +community = army +story_id = yan_stalker_killer_1 +custom_data = scripts\yantar\yan_tonnel_military_1_logic.ltx + +[yan_stalker_military_2]:stalker_strong +$spawn = "respawn\yan_stalker_military_2" +character_profile = sim_default_military_2 +spec_rank = regular +community = army +story_id = yan_stalker_military_2 +custom_data = scripts\yantar\yan_tonnel_military_1_logic.ltx + +[yan_stalker_military_3]:stalker_strong +$spawn = "respawn\yan_stalker_military_3" +character_profile = sim_default_military_1 +spec_rank = regular +community = army +story_id = yan_stalker_military_3 +custom_data = scripts\yantar\yan_tonnel_military_1_logic.ltx + +[yan_stalker_military_4]:stalker_strong +$spawn = "respawn\yan_stalker_military_4" +character_profile = sim_default_military_1 +spec_rank = regular +community = army +story_id = yan_stalker_military_4 +custom_data = scripts\yantar\yan_tonnel_military_2_logic.ltx + +[yan_stalker_military_5]:stalker_strong +$spawn = "respawn\yan_stalker_military_5" +character_profile = sim_default_military_3 +spec_rank = regular +community = army +story_id = yan_stalker_military_5 +custom_data = scripts\yantar\yan_tonnel_military_2_logic.ltx + +[yan_stalker_military_6]:stalker_strong +$spawn = "respawn\yan_stalker_military_6" +character_profile = sim_default_military_4 +spec_rank = veteran +community = army +story_id = yan_stalker_military_5 +custom_data = scripts\yantar\yan_tonnel_military_2_logic.ltx + +[yan_stalker_gigant_military]:stalker_strong +$spawn = "respawn\yan_stalker_gigant_military" +character_profile = sim_default_military_4 +spec_rank = veteran +community = army +custom_data = scripts\yantar\yan_tonnel_military_2_logic.ltx +story_id = yan_stalker_gigant_military + +![yan_tonnel_snork_1]:psysucker_3_strong +$spawn = "respawn\yan_tonnel_snork_1" +community = monster +custom_data = scripts\yantar\yan_tonnel_snork_1.ltx +story_id = yan_tonnel_snork_1 + +![yan_tonnel_snork_2]:stalker_strong +$spawn = "respawn\yan_tonnel_snork_2" +character_profile = sim_default_killer_dead +spec_rank = advanced +community = killer +custom_data = scripts\labx16\labx16_ghost.ltx +story_id = yan_tonnel_snork_2 + +![yan_tonnel_snork_3]:bloodsucker_strong_big +$spawn = "respawn\yan_tonnel_snork_3" +community = monster +custom_data = scripts\yantar\yan_tonnel_snork_3.ltx +story_id = yan_tonnel_snork_3 + +![yan_tonnel_snork_4]:stalker_strong +$spawn = "respawn\yan_tonnel_snork_4" +character_profile = sim_default_killer_dead +spec_rank = advanced +community = killer +custom_data = scripts\labx16\labx16_ghost.ltx +story_id = yan_tonnel_snork_4 + +![yan_tonnel_snork_5]:bloodsucker_strong_big +$spawn = "respawn\yan_tonnel_snork_5" +community = monster +custom_data = scripts\yantar\yan_tonnel_snork_5.ltx +story_id = yan_tonnel_snork_5 + +![yan_tonnel_snork_6]:stalker_strong +$spawn = "respawn\yan_tonnel_snork_6" +character_profile = sim_default_killer_dead +spec_rank = advanced +community = killer +custom_data = scripts\labx16\labx16_ghost.ltx +story_id = yan_tonnel_snork_6 + +![yan_tonnel_zombied_1]:rat_normal +$spawn = "respawn\yan_tonnel_zombied_1" +community = monster +character_profile = rat_normal +custom_data = scripts\yantar\yan_tonnel_zombied_1.ltx +story_id = yan_tonnel_zombied_1 + +![yan_tonnel_zombied_2]:rat_normal +$spawn = "respawn\yan_tonnel_zombied_2" +community = monster +character_profile = rat_normal +custom_data = scripts\yantar\yan_tonnel_zombied_2.ltx +story_id = yan_tonnel_zombied_2 + +![yan_tonnel_zombied_3]:rat_normal +$spawn = "respawn\yan_tonnel_zombied_3" +community = monster +character_profile = rat_normal +custom_data = scripts\yantar\yan_tonnel_zombied_3.ltx +story_id = yan_tonnel_zombied_3 diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/character_desc_escape.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/character_desc_escape.xml new file mode 100644 index 00000000..a0d0dc32 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/character_desc_escape.xml @@ -0,0 +1,322 @@ +п»ї + + + + + + escape_trader_name + ui_inGame2_sid + escape_trader_bio + trader + trader + + stalker_terrain + actors\stalker_trader\stalker_trader_1 + 47450 + 2302 + + + [spawn] \n + +#include "gameplay\character_criticals.xml" + + esc_2_12_stalker_trader_start_dialog + dm_init_trader + sidorovich_questlines_about_dialog + drx_sl_esc_m_trader_game_start_dialog_1 + + sidorovich_living_legend + sidorovich_living_legend_finish + sidorovich_mortal_sin + sidorovich_mortal_sin_envoy + sidorovich_mortal_sin_report + sidorovich_mortal_sin_ambush + sidorovich_mortal_sin_zone_hero + sidorovich_operation_afterglow + sidorovich_operation_afterglow_transmission_report + + dm_important_documents + drx_sl_cf_task_completed_dialog + drx_sl_task_completed_dialog + dm_ordered_task_completed_dialog + drx_sl_esc_m_trader_meet_dialog + dm_broker_dialog + dm_ordered_task_dialog + dm_lifestyle + buy_route + dm_bribe + drx_sl_change_faction_dialog + actor_break_dialog + devushka_3_quest + + + + + esc_wolf_name + ui_inGame2_wolf + esc_wolf_bio + esc_2_12_stalker_wolf + stalker stalker_terrain + + stalker_terrain + 18200 + 2453 + + characters_voice\human\stalker_1\ + -1 + actors\stalker_neutral\stalker_neytral_balon_1 + + [spawn] \n + wpn_pm \n + ammo_9x18_fmj = 2 \n + wpn_pkm \n + ammo_pkm_100 = 3 \n + device_torch \n + hand_radio \n + +#include "gameplay\character_criticals.xml" + + esc_2_12_stalker_wolf_start_dialog + wolf_st + dm_ordered_task_completed_dialog + dm_ordered_task_dialog + actor_break_dialog + + + + + esc_fanat_name + ui_inGame2_fanatic + esc_fanat_bio + esc_2_12_stalker_fanat + stalker stalker_terrain + + stalker_terrain + 18850 + 1725 + + characters_voice\human\stalker_1\ + -1 + 0 + actors\stalker_neutral\stalker_neytral_rukzak_3 + + [spawn] \n + wpn_binoc \n + wpn_pm \n + ammo_9x18_fmj = 3 \n + wpn_ak74u \n + ammo_5.45x39_fmj = 3 \n + +#include "gameplay\character_criticals.xml" + + fanat_training_start + fanat_training_boars_death + fanat_training_anomaly_reached + fanat_training_artefact_taken + fanat_training_back_to_village + fanat_training_stash_search + fanat_training_stash_found + fanat_training_bandit_raid_start + fanat_training_bandit_raid_end + fanat_training_end + + dm_ordered_task_dialog + dm_ordered_task_completed_dialog + dm_ordered_task_cancel_dialog + fanatic_st + actor_break_dialog + + + + + devushka + ui_inGame2_Hip + + Hip + devushka + stalker stalker_terrain + characters_voice\human\woman\ + 12550 + 900 + actors\mnp_npc_remeik\girl + + [spawn] \n + wpn_binoc \n + wpn_pm \n + ammo_9x18_fmj = 3 \n + wpn_ak74u \n + ammo_5.45x39_fmj = 3 \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs_2.xml" + +#include "gameplay\character_criticals.xml" + devushka_1_start + devushka_2_start + devushka_0_dialog + devushka_1_dialog + devushka_2_dialog + devushka_3_quest_money + actor_break_dialog + dm_is_actor_companion_dialog + dm_companion_patrol + devushka_heal + devushka_3_dialog + devushka_4_dialog + devushka_4_quest + devushka_about_artefact + devushka_about_semeckiy + give_devushka_medved + devushka_give_present + devushka_go_village + adventure_time_with_hip + + + + + esc_smart_terrain_5_7_loner_mechanic_stalker_name + ui_inGame2_loner_tech + ??????? ???????. Ж’???????В¤ ?????????В¤ ???????????. + esc_smart_terrain_5_7_loner_mechanic_stalker + stalker + + stalker_terrain + + + 3139 + 784 + actors\stalker_neutral\loner_mechanic_stalker + characters_voice\human\stalker_3\ + + [spawn] \n + wpn_toz34 \n + ammo_12x76_zhekan = 1 \n + wpn_fort \n + ammo_9x18_fmj = 1 \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs_2.xml" + +#include "gameplay\character_criticals.xml" + dm_init_trader + dm_init_mechanic + drx_sl_task_completed_dialog + dm_ordered_task_completed_dialog + drx_sl_esc_smart_terrain_5_7_loner_mechanic_stalker_meet_dialog + drx_sl_mechanic_task_dialog + actor_break_dialog + dm_encrypted_pda + awr_tech_dialog_drink_1 + dm_tech_repair + + + + + esc_main_base_trader_mlr_name + ui_inGame2_kashpirovsky + + An experienced stalker. No detailed information is available. + + esc_main_base_trader_mlr + traderstalker_terrain + characters_voice\human\stalker_3\ + + 1500 + + 1000 + + actors\stalker_neutral\stalker_neutral_1e_face_kashpirovsky + + + [spawn] \n + wpn_beretta \n + ammo_9x19_fmj = 1 \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" + dm_init_trader + buy_route + actor_break_dialog + + + + + + army_south_mechan_mlr_name + ui_inGame2_Soldier_3 + + Нет данных. + + army_south_mechan_mlr + armystalker_terrain + characters_voice\human\military_3\ + + + 1100 + + -600 + + actors\stalker_soldier\stalker_soldier_3 + + + [spawn] \n + wpn_ak74 \n + ammo_5.45x39_ap = 3 \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" + dm_init_trader + dm_init_mechanic + army_south_mechan_mlr_st + dm_ordered_task_dialog + dm_ordered_task_completed_dialog + dm_encrypted_pda + dm_tech_repair + awr_tech_dialog_drink_1 + actor_break_dialog + + + + + esc_3_16_military_trader_name + ui_inGame2_Soldier_3 + + Нет данных. + + esc_3_16_military_trader + army stalker_terrain + characters_voice\human\military_3\ + + 1900 + + -1500 + + actors\stalker_soldier\stalker_soldier_3 + + + [spawn] \n + wpn_ak74 \n + ammo_5.45x39_ap = 3 \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" + + dm_init_trader + dm_ordered_task_dialog + dm_ordered_task_completed_dialog + + guid_esc_mlr_military + guid_esc_mlr_military_vert + guid_esc_mlr_military_list + dm_bribe + buy_route + actor_break_dialog + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/character_desc_pripyat.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/character_desc_pripyat.xml new file mode 100644 index 00000000..1b5f0220 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/character_desc_pripyat.xml @@ -0,0 +1,558 @@ + + + + + + GENERATE_NAME_stalker + ui_inGame2_monolit_2 + + + Опытный сталкер. Детальная информация отсутствует. + pri_b36_monolith_sniper + monolith + stalker_terrain + characters_voice\human\monolith_3\ + 1114 + 1153 + actors\stalker_monolith\stalker_monolith_2 + + [spawn] \n + wpn_svd = 1 \n + ammo_7.62x54_7h1 = 3 \n + wpn_colt1911 = 1 \n + ammo_11.43x23_fmj = 1 \n +#include "gameplay\supplies\character_items_nd.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs_2.xml" + +#include "gameplay\character_criticals.xml" + + + + GENERATE_NAME_stalker + ui_inGame2_monolit_3 + + + Опытный сталкер. Детальная информация отсутствует. + pri_b36_monolith_master_hiding_place + monolith + stalker_terrain + characters_voice\human\monolith_3\ + 9144 + -471 + actors\stalker_monolith\stalker_monolith_3 + + [spawn] \n + wpn_protecta = 1 \n + ammo_12x76_zhekan = 1 \n + wpn_desert_eagle = 1 \n + ammo_11.43x23_hydro = 1 \n + pri_b36_monolith_hiding_place_pda = 1 \n +#include "gameplay\supplies\character_items_nd.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs_3.xml" + +#include "gameplay\character_criticals.xml" + + + + GENERATE_NAME_stalker + ui_inGame2_monolit_3 + + + Опытный сталкер. Детальная информация отсутствует. + pri_b36_monolith_marine_sniper + monolith + stalker_terrain + characters_voice\human\monolith_3\ + 8846 + -1033 + actors\stalker_monolith\stalker_monolith_3 + + [spawn] \n + wpn_vintorez = 1 \n + ammo_9x39_ap = 3 \n + wpn_colt1911 = 1 \n + ammo_11.43x23_hydro = 1 \n +#include "gameplay\supplies\character_items_nd.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs_3.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" + + + + jup_b19_freedom_yar_name + ui_inGame2_Dyadka_Yar + + + Опытный сталкер. Детальная информация отсутствует. + pri_medic_stalker + stalker + stalker_terrain + characters_voice\human\freedom_1\ + 9389 + 2309 + + actors\stalker_freedom\stalker_freedom_2_face_2 + + [spawn] \n + wpn_svd = 1 \n + ammo_7.62x54_7h1 = 3 \n + wpn_beretta = 1 \n + ammo_9x19_pbp = 1 \n +#include "gameplay\supplies\character_food_army.xml" +#include "gameplay\supplies\character_drugs.xml" +#include "gameplay\supplies\character_drugs_mil.xml" + + dm_init_trader + jup_b19_freedom_yar_pripyat_healing + jup_b19_freedom_yar_break_dialog +#include "gameplay\character_criticals.xml" + + + + + + + pri_monolith_monolith_trader_stalker_name + ui_inGame2_monolith_trade + Опытный сталкер. Детальная информация отсутствует. + pri_monolith_monolith_trader_stalker + monolith + + stalker_terrain + 16846 + 380 + + actors\stalker_monolith\stalker_monolith_2_face_1 + characters_voice\human\monolith_3\ + +#include "gameplay\character_criticals.xml" + + dm_init_trader + drx_sl_pri_monolith_monolith_trader_stalker_game_start_dialog_1 + drx_sl_cf_task_completed_dialog + drx_sl_task_completed_dialog + dm_ordered_task_completed_dialog + dm_ordered_task_cancel_dialog + drx_sl_pri_monolith_monolith_trader_stalker_meet_dialog + buy_route + dm_ordered_task_dialog + drx_sl_change_faction_dialog + + + + actor_break_dialog + + + + + + pri_monolith_monolith_mechanic_stalker_name + ui_inGame2_monolith_tech + Опытный сталкер. Детальная информация отсутствует. + pri_monolith_monolith_mechanic_stalker + monolith + + stalker_terrain + + + 14698 + -900 + actors\stalker_monolith\stalker_monolith_2_face_2 + characters_voice\human\monolith_3\ + +#include "gameplay\character_criticals.xml" + dm_init_trader + dm_init_mechanic + drx_sl_task_completed_dialog + dm_ordered_task_completed_dialog + drx_sl_pri_monolith_monolith_mechanic_stalker_meet_dialog + dm_broker_dialog + drx_sl_mechanic_task_dialog + dm_tech_repair + dm_encrypted_pda + awr_tech_dialog_drink_1 + actor_break_dialog + + + + + monolith_eidolon_name + ui_inGame2_monolit_1 + + + Perhaps the most infamous Monolith warrior, the one personally responsible for reactivating the Brain Scorcher. + + monolith_eidolon + monolith + stalker_terrain + characters_voice\human\monolith_3\ + + 52000 + -2000 + + actors\stalker_radseva_series\stalker_monolith_radseva + + + [spawn_loadout] \n + wpn_groza = 1 \n + wpn_val_kobra = 1 \n + wpn_vihr_kobra = 1 \n + [spawn_loadout2] \n + wpn_fort_snag = 1 \n + wpn_gsh18_custom = 1 \n + [spawn] \n + grenade_f1 = 2 \n + detector_elite = 1 \n + af_monolith = 1 \n + +#include "gameplay\supplies\character_food_army.xml" +#include "gameplay\supplies\character_drugs_4.xml" +#include "gameplay\supplies\character_drugs_sci.xml" +#include "gameplay\supplies\character_drugs_mil.xml" + +#include "gameplay\character_criticals.xml" + + monolith_eidolon_start + monolith_eidolon_st + dm_ordered_task_dialog + dm_ordered_task_completed_dialog + dm_ordered_task_cancel_dialog + actor_break_dialog + + + + + + lider_monolith_haron_name + ui_inGame2_monolit_4 + + ‹идер Њонолита. „етальнаЯ No information is available. + + lider_monolith_haron + monolithstalker_terrain + characters_voice\human\monolith_3\ + + 22000 + + -3000 + + actors\stalker_monolith\stalker_monolith4b + + + [spawn] \n + wpn_val = 1 \n + ammo_9x39_ap = 1 \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" + dm_ordered_task_dialog + dm_ordered_task_completed_dialog + meet_guid_l11pri_mon_haron + meet_guid_l11pri_mon_haron_list + travel_guid_l11pri_mon_haron + find_blackbox_mlr_reward_haron + actor_break_dialog + + + + + + + pri_a16_mech_mlr_name + ui_inGame2_neutral_2_mask + + Ќет данных. + + pri_a16_mech_mlr + stalker + stalker_terrain + characters_voice\human\stalker_2\ + + + 4800 + + 1900 + + actors\stalker_neutral\stalker_neutral2a_mask + + + [spawn] \n + wpn_ak74 \n + ammo_5.45x39_ap = 3 \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" + + dm_init_trader + dm_init_mechanic + dm_ordered_task_dialog + dm_ordered_task_completed_dialog + dm_tech_repair + actor_break_dialog + + + + + guid_pri_a15_mlr_name + ui_inGame2_neutral_2_mask + + + An experienced stalker. No detailed information is available. + guid_pri_a15_mlr + stalker + stalker_terrain + characters_voice\human\stalker_2\ + + 8000 + + 1300 + actors\stalker_neutral\stalker_neutral2a_mas2 + + + [spawn] \n + wpn_svu \n + ammo_7.62x54_7h1 = 1 \n + +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" + meet_guid_pri_stalker + travel_guid_pri_stalker + meet_guid_pri_stalker_list + actor_break_dialog + + + + + trader_pri_a15_mlr_name + ui_inGame2_neutral_1 + + + An experienced stalker. No detailed information is available. + trader_pri_a15_mlr + stalker + stalker_terrain + characters_voice\human\stalker_3\ + + 6000 + + -1000 + actors\stalker_neutral\esc_mechanic_furgon + + + [spawn] \n + wpn_desert_eagle \n + ammo_11.43x23_fmj = 1 \n + +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" + dm_init_trader + buy_route + actor_break_dialog + + + + + + + mechanic_monolith_kbo_name + ui_inGame2_Bracer + + Monolith Mechanic. + + mechanic_monolith_kbo + monolithstalker_terrain + + characters_voice\human\monolith_3\ + + 4000 + + 0 + + actors\mnp_npc_remeik\monolit_jupiter_mechanik + + + [spawn] \n + wpn_abakan = 1 \n + ammo_5.45x39_ap = 1 \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" + mechanic_monolith_kbo_start + dm_init_trader + dm_init_mechanic + dm_ordered_task_dialog + dm_ordered_task_completed_dialog + dm_encrypted_pda + awr_tech_dialog_drink_1 + dm_tech_repair + actor_break_dialog + + + + + trader_monolith_kbo_name + ui_inGame2_Olivar + + Monolith, supplying his brothers with equipment. + + trader_monolith_kbo + monolithstalker_terrain + characters_voice\human\monolith_3\ + + 4000 + + 0 + + actors\stalker_monolith\stalker_monolith_2a_face_rabbit + + + [spawn] \n + wpn_val = 1 \n + ammo_9x39_ap = 1 \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" + dm_init_trader + drx_sl_task_completed_dialog + drx_sl_trader_monolith_kbo_meet_dialog + meet_guid_prikbo_mon + meet_guid_prikbo_mon_list + travel_guid_prikbo_mon_mon + buy_route + actor_break_dialog + + + + + + + merc_pri_a18_mech_mlr_name + + ui_inGame2_Trunk + No information is available. + + merc_pri_a18_mech_mlr + killer + stalker_terrain + 2100 + 1 + actors\mnp_npc_remeik\merc_black + characters_voice\human\killer_3\ + + + + + [spawn] \n + wpn_lr300 \n + ammo_5.56x45_ap = 1 \n + +#include "gameplay\supplies\character_items_nd.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + + +#include "gameplay\character_criticals.xml" + dm_init_trader + dm_init_mechanic + dm_tech_repair + tech_a18_meet_dialog + tech_a18_meet_dialog_1 + tech_a18_meet_dialog_2 + dm_encrypted_pda + awr_tech_dialog_drink_1 + actor_break_dialog + + + + + + merc_pri_grifon_mlr_name + + ui_inGame2_Griffith + No information is available. + + merc_pri_grifon_mlr + killer + stalker_terrain + 5000 + -1500 + + actors\mnp_npc_remeik\merc_tihiy + characters_voice\human\killer_3\ + + + [spawn] \n + wpn_g36 \n + ammo_5.56x45_ap = 1 \n + wpn_sig220 = 1 \n + ammo_11.43x23_hydro = 1 \n + +#include "gameplay\supplies\character_items_nd.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + + +#include "gameplay\character_criticals.xml" + grifon_meet_dialog + drx_sl_task_completed_dialog + drx_sl_merc_pri_grifon_mlr_meet_dialog + task_find_inf_inx_8_mlr_1 + task_find_inf_inx_8_mlr_2 + dm_ordered_task_dialog + dm_ordered_task_completed_dialog + buy_route + actor_break_dialog + + + + + pri_special_trader_mlr_name + ui_inGame2_Meeker + + Ќет данных. + + pri_special_trader_mlr + killer stalker_terrain + characters_voice\human\killer_1\ + + 7500 + + 1500 + + actors\mnp_npc_remeik\killer_leshiy + + + [spawn] \n + wpn_g36 \n + ammo_5.56x45_ap = 1 \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" + dm_init_trader + pri_special_trader_mlr1 + pri_special_trader_mlr4 + pri_special_trader_mlr2 + pri_special_trader_mlr3 + actor_break_dialog + + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_0.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_0.xml new file mode 100644 index 00000000..d36c1d49 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_0.xml @@ -0,0 +1,18 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_military_0 +army + + +GENERATE_NAME_private + + + +#include "gameplay\loadouts\army_base.ltx" +#include "gameplay\loadouts\army_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical_army.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_1.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_1.xml new file mode 100644 index 00000000..25c2b10e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_1.xml @@ -0,0 +1,19 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_military_1 +army + + +GENERATE_NAME_sergeant + + + +#include "gameplay\loadouts\army_base.ltx" +#include "gameplay\loadouts\army_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical_army.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_2.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_2.xml new file mode 100644 index 00000000..90ceab40 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_2.xml @@ -0,0 +1,19 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_military_2 +army + + +GENERATE_NAME_senior_sergeant + + + +#include "gameplay\loadouts\army_base.ltx" +#include "gameplay\loadouts\army_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical_army.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_3.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_3.xml new file mode 100644 index 00000000..f04ed5a8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_3.xml @@ -0,0 +1,19 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_military_3 +army + + +GENERATE_NAME_lieutenant + + + +#include "gameplay\loadouts\army_base.ltx" +#include "gameplay\loadouts\army_tier_3.ltx" +[spawn] \n +#include "gameplay\supplies\character_food_army.xml" +#include "gameplay\supplies\character_medical_army.xml" +#include "gameplay\supplies\character_drugs_army.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_4.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_4.xml new file mode 100644 index 00000000..b8428a99 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_4.xml @@ -0,0 +1,12 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_military_4 +army + + +GENERATE_NAME_captain + + + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_special.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_special.xml new file mode 100644 index 00000000..c2fbfe50 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_army_special.xml @@ -0,0 +1,9 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +army + + + + + +#include "gameplay\character_criticals.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_0.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_0.xml new file mode 100644 index 00000000..cff60823 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_0.xml @@ -0,0 +1,18 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_bandit_0 +bandit + + +GENERATE_NAME_bandit + + + +#include "gameplay\loadouts\bandit_base.ltx" +#include "gameplay\loadouts\bandit_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_1.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_1.xml new file mode 100644 index 00000000..993a88f3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_1.xml @@ -0,0 +1,18 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_bandit_1 +bandit + + +GENERATE_NAME_bandit + + + +#include "gameplay\loadouts\bandit_base.ltx" +#include "gameplay\loadouts\bandit_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_2.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_2.xml new file mode 100644 index 00000000..2eda5de9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_2.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_bandit_2 +bandit + + +GENERATE_NAME_bandit + + + +#include "gameplay\loadouts\bandit_base.ltx" +#include "gameplay\loadouts\bandit_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_3.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_3.xml new file mode 100644 index 00000000..8f00b8fd --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_3.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_bandit_3 +bandit + + +GENERATE_NAME_bandit + + + +#include "gameplay\loadouts\bandit_base.ltx" +#include "gameplay\loadouts\bandit_tier_3.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_4.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_4.xml new file mode 100644 index 00000000..ca228fab --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_4.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_bandit_4 +bandit + + +GENERATE_NAME_bandit + + + +#include "gameplay\loadouts\bandit_base.ltx" +#include "gameplay\loadouts\bandit_tier_4.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs_2.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_special.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_special.xml new file mode 100644 index 00000000..5b9e4205 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_bandit_special.xml @@ -0,0 +1,9 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +bandit + + + + + +#include "gameplay\character_criticals.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_0.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_0.xml new file mode 100644 index 00000000..95ff6817 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_0.xml @@ -0,0 +1,18 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_csky_0 +csky + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\csky_base.ltx" +#include "gameplay\loadouts\csky_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_1.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_1.xml new file mode 100644 index 00000000..4ea8d101 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_1.xml @@ -0,0 +1,19 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_csky_1 +csky + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\csky_base.ltx" +#include "gameplay\loadouts\csky_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_2.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_2.xml new file mode 100644 index 00000000..5f31db74 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_2.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_csky_2 +csky + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\csky_base.ltx" +#include "gameplay\loadouts\csky_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_3.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_3.xml new file mode 100644 index 00000000..00164f15 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_3.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_csky_3 +csky + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\csky_base.ltx" +#include "gameplay\loadouts\csky_tier_3.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs_2.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_4.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_4.xml new file mode 100644 index 00000000..2f872172 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_4.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_csky_4 +csky + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\csky_base.ltx" +#include "gameplay\loadouts\csky_tier_4.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs_3.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_special.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_special.xml new file mode 100644 index 00000000..8439d9b9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_csky_special.xml @@ -0,0 +1,9 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +csky + + + + + +#include "gameplay\character_criticals.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_0.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_0.xml new file mode 100644 index 00000000..06d2f6bb --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_0.xml @@ -0,0 +1,18 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_duty_0 +dolg + + +GENERATE_NAME_private + + + +#include "gameplay\loadouts\dolg_base.ltx" +#include "gameplay\loadouts\dolg_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_1.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_1.xml new file mode 100644 index 00000000..cfef6b18 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_1.xml @@ -0,0 +1,19 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_duty_1 +dolg + + +GENERATE_NAME_sergeant + + + +#include "gameplay\loadouts\dolg_base.ltx" +#include "gameplay\loadouts\dolg_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_2.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_2.xml new file mode 100644 index 00000000..fe4dc8d3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_2.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_duty_2 +dolg + + +GENERATE_NAME_senior_sergeant + + + +#include "gameplay\loadouts\dolg_base.ltx" +#include "gameplay\loadouts\dolg_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_3.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_3.xml new file mode 100644 index 00000000..2449a958 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_3.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_duty_3 +dolg + + +GENERATE_NAME_lieutenant + + + +#include "gameplay\loadouts\dolg_base.ltx" +#include "gameplay\loadouts\dolg_tier_3.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_army.xml" +#include "gameplay\supplies\character_medical_army.xml" +#include "gameplay\supplies\character_drugs_2.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_4.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_4.xml new file mode 100644 index 00000000..13c0e9cb --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_4.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_duty_4 +dolg + + +GENERATE_NAME_captain + + + +#include "gameplay\loadouts\dolg_base.ltx" +#include "gameplay\loadouts\dolg_tier_4.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_army.xml" +#include "gameplay\supplies\character_medical_army.xml" +#include "gameplay\supplies\character_drugs_3.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_special.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_special.xml new file mode 100644 index 00000000..39cab669 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_dolg_special.xml @@ -0,0 +1,9 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +dolg + + + + + +#include "gameplay\character_criticals.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_0.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_0.xml new file mode 100644 index 00000000..28e54c14 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_0.xml @@ -0,0 +1,20 @@ +Member of mobile science camp. Detailed information is missing. +sim_default_ecolog_0 +ecolog + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\ecolog_base.ltx" +#include "gameplay\loadouts\ecolog_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_army.xml" +#include "gameplay\supplies\character_medical_sci.xml" +#include "gameplay\supplies\character_drugs_army.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_01.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_01.xml new file mode 100644 index 00000000..ff9ef5ff --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_01.xml @@ -0,0 +1,20 @@ +Member of mobile science camp. Detailed information is missing. +sim_default_ecolog_01 +ecolog + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\ecolog_base.ltx" +#include "gameplay\loadouts\ecolog_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_army.xml" +#include "gameplay\supplies\character_medical_sci.xml" +#include "gameplay\supplies\character_drugs_army.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_1.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_1.xml new file mode 100644 index 00000000..d76a09fb --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_1.xml @@ -0,0 +1,20 @@ +Member of mobile science camp. Detailed information is missing. +sim_default_ecolog_1 +ecolog + + +GENERATE_NAME_science + + + +#include "gameplay\loadouts\ecolog_base.ltx" +#include "gameplay\loadouts\ecolog_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_army.xml" +#include "gameplay\supplies\character_medical_sci.xml" +#include "gameplay\supplies\character_drugs_army.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_2.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_2.xml new file mode 100644 index 00000000..484a82b4 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_2.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_ecolog_2 +ecolog + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\ecolog_base.ltx" +#include "gameplay\loadouts\ecolog_tier_3.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs_2.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_3.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_3.xml new file mode 100644 index 00000000..98f95cc9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_3.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_ecolog_3 +ecolog + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\ecolog_base.ltx" +#include "gameplay\loadouts\ecolog_tier_4.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical_sci.xml" +#include "gameplay\supplies\character_drugs_3.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_4.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_4.xml new file mode 100644 index 00000000..2c1e2357 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_4.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_ecolog_4 +ecolog + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\ecolog_base.ltx" +#include "gameplay\loadouts\ecolog_tier_4.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical_sci.xml" +#include "gameplay\supplies\character_drugs_3.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_5.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_5.xml new file mode 100644 index 00000000..4c864180 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_5.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_ecolog_5 +ecolog + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\ecolog_base.ltx" +#include "gameplay\loadouts\ecolog_tier_4.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical_sci.xml" +#include "gameplay\supplies\character_drugs_3.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_special.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_special.xml new file mode 100644 index 00000000..be78d193 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_ecolog_special.xml @@ -0,0 +1,9 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +ecolog + + + + + +#include "gameplay\character_criticals.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_0.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_0.xml new file mode 100644 index 00000000..79abc539 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_0.xml @@ -0,0 +1,18 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_freedom_0 +freedom + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\freedom_base.ltx" +#include "gameplay\loadouts\freedom_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_1.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_1.xml new file mode 100644 index 00000000..d5db35dd --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_1.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_freedom_1 +freedom + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\freedom_base.ltx" +#include "gameplay\loadouts\freedom_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_2.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_2.xml new file mode 100644 index 00000000..1072c9ed --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_2.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_freedom_2 +freedom + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\freedom_base.ltx" +#include "gameplay\loadouts\freedom_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_3.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_3.xml new file mode 100644 index 00000000..18f5c4d2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_3.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_freedom_3 +freedom + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\freedom_base.ltx" +#include "gameplay\loadouts\freedom_tier_3.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical_sci.xml" +#include "gameplay\supplies\character_drugs_2.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_4.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_4.xml new file mode 100644 index 00000000..5200864d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_4.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_freedom_4 +freedom + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\freedom_base.ltx" +#include "gameplay\loadouts\freedom_tier_4.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical_sci.xml" +#include "gameplay\supplies\character_drugs_3.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_special.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_special.xml new file mode 100644 index 00000000..8701bdac --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_freedom_special.xml @@ -0,0 +1,9 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +freedom + + + + + +#include "gameplay\character_criticals.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_0.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_0.xml new file mode 100644 index 00000000..49535caf --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_0.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_greh_0 +greh + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\monolith_base.ltx" +#include "gameplay\loadouts\monolith_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_1.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_1.xml new file mode 100644 index 00000000..c81c2ee9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_1.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_greh_1 +greh + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\monolith_base.ltx" +#include "gameplay\loadouts\monolith_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_2.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_2.xml new file mode 100644 index 00000000..dac22b2f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_2.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_greh_2 +greh + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\monolith_base.ltx" +#include "gameplay\loadouts\monolith_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_3.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_3.xml new file mode 100644 index 00000000..9ce17655 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_3.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_greh_3 +greh + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\monolith_base.ltx" +#include "gameplay\loadouts\monolith_tier_3.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical_army.xml" +#include "gameplay\supplies\character_drugs_2.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_4.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_4.xml new file mode 100644 index 00000000..0e774fd9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_4.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_greh_4 +greh + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\monolith_base.ltx" +#include "gameplay\loadouts\monolith_tier_4.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical_sci.xml" +#include "gameplay\supplies\character_drugs_3.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_special.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_special.xml new file mode 100644 index 00000000..8bbb6ff4 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_greh_special.xml @@ -0,0 +1,9 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +greh + + + + + +#include "gameplay\character_criticals.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_1.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_1.xml new file mode 100644 index 00000000..88f651cf --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_1.xml @@ -0,0 +1,19 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_isg_1 +isg + + +GENERATE_NAME_private + + + +#include "gameplay\loadouts\killer_base.ltx" +#include "gameplay\loadouts\killer_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_2.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_2.xml new file mode 100644 index 00000000..676f0061 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_2.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_isg_2 +isg + + +GENERATE_NAME_sergeant + + + +#include "gameplay\loadouts\killer_base.ltx" +#include "gameplay\loadouts\killer_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_3.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_3.xml new file mode 100644 index 00000000..704576e1 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_3.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_isg_3 +isg + + +GENERATE_NAME_senior_sergeant + + + +#include "gameplay\loadouts\killer_base.ltx" +#include "gameplay\loadouts\killer_tier_3.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical_army.xml" +#include "gameplay\supplies\character_drugs_2.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_4.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_4.xml new file mode 100644 index 00000000..a481a7ec --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_4.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_isg_4 +isg + + +GENERATE_NAME_lieutenant + + + +#include "gameplay\loadouts\killer_base.ltx" +#include "gameplay\loadouts\killer_tier_4.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical_army.xml" +#include "gameplay\supplies\character_drugs_3.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_special.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_special.xml new file mode 100644 index 00000000..c1db704b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_isg_special.xml @@ -0,0 +1,9 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +isg + + + + + +#include "gameplay\character_criticals.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_0.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_0.xml new file mode 100644 index 00000000..f1b45472 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_0.xml @@ -0,0 +1,19 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_killer_0 +killer + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\killer_base.ltx" +#include "gameplay\loadouts\killer_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_1.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_1.xml new file mode 100644 index 00000000..44695b02 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_1.xml @@ -0,0 +1,19 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_killer_1 +killer + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\killer_base.ltx" +#include "gameplay\loadouts\killer_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_2.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_2.xml new file mode 100644 index 00000000..c83c502f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_2.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_killer_2 +killer + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\killer_base.ltx" +#include "gameplay\loadouts\killer_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_3.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_3.xml new file mode 100644 index 00000000..02563930 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_3.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_killer_3 +killer + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\killer_base.ltx" +#include "gameplay\loadouts\killer_tier_3.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical_army.xml" +#include "gameplay\supplies\character_drugs_2.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_4.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_4.xml new file mode 100644 index 00000000..d3bfaac5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_4.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_killer_4 +killer + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\killer_base.ltx" +#include "gameplay\loadouts\killer_tier_4.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical_army.xml" +#include "gameplay\supplies\character_drugs_3.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_special.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_special.xml new file mode 100644 index 00000000..2bf5e36e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_killer_special.xml @@ -0,0 +1,9 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +killer + + + + + +#include "gameplay\character_criticals.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_0.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_0.xml new file mode 100644 index 00000000..2a9c77ad --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_0.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_monolith_0 +monolith + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\monolith_base.ltx" +#include "gameplay\loadouts\monolith_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_1.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_1.xml new file mode 100644 index 00000000..17d72eff --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_1.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_monolith_1 +monolith + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\monolith_base.ltx" +#include "gameplay\loadouts\monolith_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_2.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_2.xml new file mode 100644 index 00000000..06129260 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_2.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_monolith_2 +monolith + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\monolith_base.ltx" +#include "gameplay\loadouts\monolith_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_3.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_3.xml new file mode 100644 index 00000000..a51eb6c9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_3.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_monolith_3 +monolith + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\monolith_base.ltx" +#include "gameplay\loadouts\monolith_tier_3.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical_army.xml" +#include "gameplay\supplies\character_drugs_2.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_4.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_4.xml new file mode 100644 index 00000000..b36b34af --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_4.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_monolith_4 +monolith + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\monolith_base.ltx" +#include "gameplay\loadouts\monolith_tier_4.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical_sci.xml" +#include "gameplay\supplies\character_drugs_3.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_special.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_special.xml new file mode 100644 index 00000000..4d637e15 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_monolith_special.xml @@ -0,0 +1,9 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +monolith + + + + + +#include "gameplay\character_criticals.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_renegade_0.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_renegade_0.xml new file mode 100644 index 00000000..62304c50 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_renegade_0.xml @@ -0,0 +1,18 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_renegade_0 +renegade + + +GENERATE_NAME_bandit + + + +#include "gameplay\loadouts\bandit_base.ltx" +#include "gameplay\loadouts\bandit_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_renegade_1.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_renegade_1.xml new file mode 100644 index 00000000..ffabbb0a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_renegade_1.xml @@ -0,0 +1,18 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_renegade_1 +renegade + + +GENERATE_NAME_bandit + + + +#include "gameplay\loadouts\bandit_base.ltx" +#include "gameplay\loadouts\bandit_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_renegade_2.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_renegade_2.xml new file mode 100644 index 00000000..622f8972 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_renegade_2.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_renegade_2 +renegade + + +GENERATE_NAME_bandit + + + +#include "gameplay\loadouts\bandit_base.ltx" +#include "gameplay\loadouts\bandit_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_renegade_special.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_renegade_special.xml new file mode 100644 index 00000000..39cae3a9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_renegade_special.xml @@ -0,0 +1,9 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +renegade + + + + + +#include "gameplay\character_criticals.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_0.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_0.xml new file mode 100644 index 00000000..62bec81f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_0.xml @@ -0,0 +1,18 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_stalker_0 +stalker + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\stalker_base.ltx" +#include "gameplay\loadouts\stalker_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_1.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_1.xml new file mode 100644 index 00000000..80bce432 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_1.xml @@ -0,0 +1,19 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_stalker_1 +stalker + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\stalker_base.ltx" +#include "gameplay\loadouts\stalker_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_2.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_2.xml new file mode 100644 index 00000000..ee71ecf9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_2.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_stalker_2 +stalker + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\stalker_base.ltx" +#include "gameplay\loadouts\stalker_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_3.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_3.xml new file mode 100644 index 00000000..982256d4 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_3.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_stalker_3 +stalker + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\stalker_base.ltx" +#include "gameplay\loadouts\stalker_tier_3.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs_2.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_4.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_4.xml new file mode 100644 index 00000000..7b855efa --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_4.xml @@ -0,0 +1,20 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +sim_default_stalker_4 +stalker + + +GENERATE_NAME_stalker + + + +#include "gameplay\loadouts\stalker_base.ltx" +#include "gameplay\loadouts\stalker_tier_4.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs_3.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_special.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_special.xml new file mode 100644 index 00000000..b4f320f0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_stalker_special.xml @@ -0,0 +1,9 @@ +ќпытный сталкер. ƒетальна¤ информаци¤ отсутствует. +stalker + + + + + +#include "gameplay\character_criticals.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_zombied_1.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_zombied_1.xml new file mode 100644 index 00000000..36db4a71 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_zombied_1.xml @@ -0,0 +1,18 @@ + +sim_default_zombied_1 +zombied +0 + + + + + +#include "gameplay\loadouts\zombied_base.ltx" +#include "gameplay\loadouts\zombied_tier_1.ltx" +[spawn] \n +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_zombied_2.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_zombied_2.xml new file mode 100644 index 00000000..0c8107b2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_zombied_2.xml @@ -0,0 +1,20 @@ + +sim_default_zombied_2 +zombied +0 + + + + + +#include "gameplay\loadouts\zombied_base.ltx" +#include "gameplay\loadouts\zombied_tier_2.ltx" +[spawn] \n +#include "gameplay\supplies\character_items.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_zombied_3.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_zombied_3.xml new file mode 100644 index 00000000..dd2daf69 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_zombied_3.xml @@ -0,0 +1,20 @@ + +sim_default_zombied_3 +zombied +0 + + + + + +#include "gameplay\loadouts\zombied_base.ltx" +#include "gameplay\loadouts\zombied_tier_3.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs_2.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_zombied_4.xml b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_zombied_4.xml new file mode 100644 index 00000000..4ae69f96 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/gameplay/profiles/character_desc_zombied_4.xml @@ -0,0 +1,20 @@ + +sim_default_zombied_4 +zombied +0 + + + + + +#include "gameplay\loadouts\zombied_base.ltx" +#include "gameplay\loadouts\zombied_tier_4.ltx" +[spawn] \n +#include "gameplay\supplies\character_items_2.xml" +#include "gameplay\supplies\character_food_2.xml" +#include "gameplay\supplies\character_medical.xml" +#include "gameplay\supplies\character_drugs_3.xml" + +#include "gameplay\character_criticals.xml" +#include "gameplay\character_dialogs.xml" +stalker_terrain \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_AGR.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_AGR.ltx new file mode 100644 index 00000000..3a34c912 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_AGR.ltx @@ -0,0 +1,21 @@ +[pool_agr_night_mutants] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init + +[agr_endless_night_spawn_01]:pool_agr_night_mutants +custom_data = scripts\agroprom\agr_endless_night_spawn_logic_1.ltx +story_id = agr_endless_night_spawn_01 + +[agr_endless_night_spawn_02]:pool_agr_night_mutants +custom_data = scripts\agroprom\agr_endless_night_spawn_logic_2.ltx +story_id = agr_endless_night_spawn_02 + +[agr_endless_night_spawn_03]:pool_agr_night_mutants +custom_data = scripts\agroprom\agr_endless_night_spawn_logic_3.ltx +story_id = agr_endless_night_spawn_03 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_BAR.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_BAR.ltx new file mode 100644 index 00000000..73b45b34 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_BAR.ltx @@ -0,0 +1,21 @@ +[pool_bar_night_mutants] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init + +[bar_endless_night_spawn_01]:pool_bar_night_mutants +custom_data = scripts\bar\bar_endless_night_spawn_logic_1.ltx +story_id = bar_endless_night_spawn_01 + +[bar_endless_night_spawn_02]:pool_bar_night_mutants +custom_data = scripts\bar\bar_endless_night_spawn_logic_2.ltx +story_id = bar_endless_night_spawn_02 + +[bar_endless_night_spawn_03]:pool_bar_night_mutants +custom_data = scripts\bar\bar_endless_night_spawn_logic_3.ltx +story_id = bar_endless_night_spawn_03 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_CIT.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_CIT.ltx new file mode 100644 index 00000000..2b109adb --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_CIT.ltx @@ -0,0 +1,21 @@ +[pool_cit_night_mutants] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init + +[cit_endless_night_spawn_01]:pool_cit_night_mutants +custom_data = scripts\dead_city\cit_endless_night_spawn_logic_1.ltx +story_id = cit_endless_night_spawn_01 + +[cit_endless_night_spawn_02]:pool_cit_night_mutants +custom_data = scripts\dead_city\cit_endless_night_spawn_logic_2.ltx +story_id = cit_endless_night_spawn_02 + +[cit_endless_night_spawn_03]:pool_cit_night_mutants +custom_data = scripts\dead_city\cit_endless_night_spawn_logic_3.ltx +story_id = cit_endless_night_spawn_03 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_DS.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_DS.ltx new file mode 100644 index 00000000..40be2111 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_DS.ltx @@ -0,0 +1,21 @@ +[pool_ds_night_mutants] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init + +[ds_endless_night_spawn_01]:pool_ds_night_mutants +custom_data = scripts\darkscape\ds_endless_night_spawn_logic_1.ltx +story_id = ds_endless_night_spawn_01 + +[ds_endless_night_spawn_02]:pool_ds_night_mutants +custom_data = scripts\darkscape\ds_endless_night_spawn_logic_2.ltx +story_id = ds_endless_night_spawn_02 + +[ds_endless_night_spawn_03]:pool_ds_night_mutants +custom_data = scripts\darkscape\ds_endless_night_spawn_logic_3.ltx +story_id = ds_endless_night_spawn_03 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_ESC.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_ESC.ltx new file mode 100644 index 00000000..60bcccf8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_ESC.ltx @@ -0,0 +1,21 @@ +[pool_esc_night_mutants] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init + +[esc_endless_night_spawn_01]:pool_esc_night_mutants +custom_data = scripts\escape\esc_endless_night_spawn_logic_1.ltx +story_id = esc_endless_night_spawn_01 + +[esc_endless_night_spawn_02]:pool_esc_night_mutants +custom_data = scripts\escape\esc_endless_night_spawn_logic_2.ltx +story_id = esc_endless_night_spawn_02 + +[esc_endless_night_spawn_03]:pool_esc_night_mutants +custom_data = scripts\escape\esc_endless_night_spawn_logic_3.ltx +story_id = esc_endless_night_spawn_03 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_GAR.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_GAR.ltx new file mode 100644 index 00000000..dcf9fc55 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_GAR.ltx @@ -0,0 +1,21 @@ +[pool_gar_night_mutants] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init + +[gar_endless_night_spawn_01]:pool_gar_night_mutants +custom_data = scripts\garbage\gar_endless_night_spawn_logic_1.ltx +story_id = gar_endless_night_spawn_01 + +[gar_endless_night_spawn_02]:pool_gar_night_mutants +custom_data = scripts\garbage\gar_endless_night_spawn_logic_2.ltx +story_id = gar_endless_night_spawn_02 + +[gar_endless_night_spawn_03]:pool_gar_night_mutants +custom_data = scripts\garbage\gar_endless_night_spawn_logic_3.ltx +story_id = gar_endless_night_spawn_03 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_MAR.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_MAR.ltx new file mode 100644 index 00000000..c29cb837 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_MAR.ltx @@ -0,0 +1,21 @@ +[pool_mar_night_mutants] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init + +[mar_endless_night_spawn_01]:pool_mar_night_mutants +custom_data = scripts\marsh\mar_endless_night_spawn_logic_1.ltx +story_id = mar_endless_night_spawn_01 + +[mar_endless_night_spawn_02]:pool_mar_night_mutants +custom_data = scripts\marsh\mar_endless_night_spawn_logic_2.ltx +story_id = mar_endless_night_spawn_02 + +[mar_endless_night_spawn_03]:pool_mar_night_mutants +custom_data = scripts\marsh\mar_endless_night_spawn_logic_3.ltx +story_id = mar_endless_night_spawn_03 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_MIL.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_MIL.ltx new file mode 100644 index 00000000..11be8584 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_MIL.ltx @@ -0,0 +1,21 @@ +[pool_mil_night_mutants] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init + +[mil_endless_night_spawn_01]:pool_mil_night_mutants +custom_data = scripts\military\mil_endless_night_spawn_logic_1.ltx +story_id = mil_endless_night_spawn_01 + +[mil_endless_night_spawn_02]:pool_mil_night_mutants +custom_data = scripts\military\mil_endless_night_spawn_logic_2.ltx +story_id = mil_endless_night_spawn_02 + +[mil_endless_night_spawn_03]:pool_mil_night_mutants +custom_data = scripts\military\mil_endless_night_spawn_logic_3.ltx +story_id = mil_endless_night_spawn_03 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_ROS.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_ROS.ltx new file mode 100644 index 00000000..c139e18b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_ROS.ltx @@ -0,0 +1,21 @@ +[pool_ros_night_mutants] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init + +[ros_endless_night_spawn_01]:pool_ros_night_mutants +custom_data = scripts\rostok\ros_endless_night_spawn_logic_1.ltx +story_id = ros_endless_night_spawn_01 + +[ros_endless_night_spawn_02]:pool_ros_night_mutants +custom_data = scripts\rostok\ros_endless_night_spawn_logic_2.ltx +story_id = ros_endless_night_spawn_02 + +[ros_endless_night_spawn_03]:pool_ros_night_mutants +custom_data = scripts\rostok\ros_endless_night_spawn_logic_3.ltx +story_id = ros_endless_night_spawn_03 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_TRC.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_TRC.ltx new file mode 100644 index 00000000..10c0f64e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_TRC.ltx @@ -0,0 +1,21 @@ +[pool_trc_night_mutants] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init + +[trc_endless_night_spawn_01]:pool_trc_night_mutants +custom_data = scripts\trucks_cemetery\trc_endless_night_spawn_logic_1.ltx +story_id = trc_endless_night_spawn_01 + +[trc_endless_night_spawn_02]:pool_trc_night_mutants +custom_data = scripts\trucks_cemetery\trc_endless_night_spawn_logic_2.ltx +story_id = trc_endless_night_spawn_02 + +[trc_endless_night_spawn_03]:pool_trc_night_mutants +custom_data = scripts\trucks_cemetery\trc_endless_night_spawn_logic_3.ltx +story_id = trc_endless_night_spawn_03 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_VAL.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_VAL.ltx new file mode 100644 index 00000000..f40bb3dd --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_VAL.ltx @@ -0,0 +1,21 @@ +[pool_val_night_mutants] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init + +[val_endless_night_spawn_01]:pool_val_night_mutants +custom_data = scripts\darkvalley\val_endless_night_spawn_logic_1.ltx +story_id = val_endless_night_spawn_01 + +[val_endless_night_spawn_02]:pool_val_night_mutants +custom_data = scripts\darkvalley\val_endless_night_spawn_logic_2.ltx +story_id = val_endless_night_spawn_02 + +[val_endless_night_spawn_03]:pool_val_night_mutants +custom_data = scripts\darkvalley\val_endless_night_spawn_logic_3.ltx +story_id = val_endless_night_spawn_03 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_YAN.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_YAN.ltx new file mode 100644 index 00000000..a512ccb3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_endless_night_mutant_spawn_point_YAN.ltx @@ -0,0 +1,21 @@ +[pool_yan_night_mutants] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init + +[yan_endless_night_spawn_01]:pool_yan_night_mutants +custom_data = scripts\yantar\yan_endless_night_spawn_logic_1.ltx +story_id = yan_endless_night_spawn_01 + +[yan_endless_night_spawn_02]:pool_yan_night_mutants +custom_data = scripts\yantar\yan_endless_night_spawn_logic_2.ltx +story_id = yan_endless_night_spawn_02 + +[yan_endless_night_spawn_03]:pool_yan_night_mutants +custom_data = scripts\yantar\yan_endless_night_spawn_logic_3.ltx +story_id = yan_endless_night_spawn_03 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_lc_transition_spawn_point_ROS.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_lc_transition_spawn_point_ROS.ltx new file mode 100644 index 00000000..8b5a8e45 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_lc_transition_spawn_point_ROS.ltx @@ -0,0 +1,104 @@ +[lc_tele_ros_hid] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init +custom_data = scripts\rostok\ros_lc_transition_logic_hid.ltx + +[lc_ros03_ros04]:lc_tele_ros_hid +story_id = lc_ros03_ros04 + +[lc_tele_ros_door_hid] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init +custom_data = scripts\rostok\ros_door_transition_logic.ltx + +[lc_ros01_ros02]:lc_tele_ros_door_hid +story_id = lc_ros01_ros02 + +[lc_ros01_ros02.1]:lc_tele_ros_door_hid +story_id = lc_ros01_ros02.1 + +[lc_ros01_ros02.2]:lc_tele_ros_door_hid +story_id = lc_ros01_ros02.2 + +[lc_ros01_ros02.3]:lc_tele_ros_door_hid +story_id = lc_ros01_ros02.3 + +[lc_ros02_ros01]:lc_tele_ros_door_hid +story_id = lc_ros02_ros01 + +[lc_ros02_ros01.1]:lc_tele_ros_door_hid +story_id = lc_ros02_ros01.1 + +[lc_ros02_ros01.2]:lc_tele_ros_door_hid +story_id = lc_ros02_ros01.2 + +[lc_ros02_ros01.3]:lc_tele_ros_door_hid +story_id = lc_ros02_ros01.3 + +[lc_ros02_ros01.4]:lc_tele_ros_door_hid +story_id = lc_ros02_ros01.4 + +[lc_ros02_ros01.5]:lc_tele_ros_door_hid +story_id = lc_ros02_ros01.5 + +[lc_ros07_ros08]:lc_tele_ros_door_hid +story_id = lc_ros07_ros08 + +[lc_ros07_ros08.1]:lc_tele_ros_door_hid +story_id = lc_ros07_ros08.1 + +[lc_ros07_ros08.2]:lc_tele_ros_door_hid +story_id = lc_ros07_ros08.2 + +[lc_ros07_ros08.3]:lc_tele_ros_door_hid +story_id = lc_ros07_ros08.3 + +[lc_ros08_ros07]:lc_tele_ros_door_hid +story_id = lc_ros08_ros07 + +[lc_ros08_ros07.1]:lc_tele_ros_door_hid +story_id = lc_ros08_ros07.1 + +[lc_ros08_ros07.2]:lc_tele_ros_door_hid +story_id = lc_ros08_ros07.2 + +[lc_tele_ros_ladder_hid] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init +custom_data = scripts\rostok\ros_climb_transition_logic.ltx + +[lc_ros05_ros06]:lc_tele_ros_ladder_hid +story_id = lc_ros05_ros06 + +[lc_ros05_ros06.1]:lc_tele_ros_ladder_hid +story_id = lc_ros05_ros06.1 + +[lc_ros05_ros06.2]:lc_tele_ros_ladder_hid +story_id = lc_ros05_ros06.2 + +[lc_ros06_ros05]:lc_tele_ros_ladder_hid +story_id = lc_ros06_ros05 + +[lc_ros06_ros05.1]:lc_tele_ros_ladder_hid +story_id = lc_ros06_ros05.1 + +[lc_ros06_ros05.2]:lc_tele_ros_ladder_hid +story_id = lc_ros06_ros05.2 diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_physic_object_spawn_point_MIL.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_physic_object_spawn_point_MIL.ltx new file mode 100644 index 00000000..233b23da --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_physic_object_spawn_point_MIL.ltx @@ -0,0 +1,18 @@ +[wearhouses_phys_physic_object] +GroupControlSection = spawn_group +$spawn = "physics\object" +class = O_PHYS_S +remove_time = 60 +script_binding = bind_physic_object.init + +[wearhouses_dstr_physic_object] +GroupControlSection = spawn_group +$spawn = "physics\destroyable_object" +class = O_DSTR_S +remove_time = 60 +script_binding = bind_physic_object.init + +[mil_smart_terrain_3_8_psy_field]:wearhouses_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_physic_object_spawn_point_ROS.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_physic_object_spawn_point_ROS.ltx new file mode 100644 index 00000000..5d320a46 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_physic_object_spawn_point_ROS.ltx @@ -0,0 +1,323 @@ +[ros_phys_physic_object] +GroupControlSection = spawn_group +$spawn = "physics\object" +class = O_PHYS_S +remove_time = 60 +script_binding = bind_physic_object.init + +[ros_dstr_physic_object] +GroupControlSection = spawn_group +$spawn = "physics\destroyable_object" +class = O_DSTR_S +remove_time = 60 +script_binding = bind_physic_object.init + +[ros_valley_door_1]:ros_phys_physic_object +visual = dynamics\door\door_metal_220x260_01_r.ogf +fixed_bones = link +custom_data = scripts\rostok\ros_door_hidden_logic.ltx + +[ros_valley_door_2]:ros_phys_physic_object +visual = dynamics\door\door_metal_220x260_01_r.ogf +fixed_bones = link +custom_data = scripts\rostok\ros_door_hidden_logic.ltx + +[ros_roof_door_1]:ros_phys_physic_object +visual = dynamics\door\door_metal_220x260_01_r.ogf +fixed_bones = link +custom_data = scripts\rostok\ros_door_hidden_logic.ltx + +[ros_roof_door_2]:ros_phys_physic_object +visual = dynamics\door\door_metal_220x260_01_r.ogf +fixed_bones = link +custom_data = scripts\rostok\ros_door_hidden_logic.ltx + +[ros_climb_action_1.1]:ros_phys_physic_object +visual = dynamics\light\light_signal.ogf +fixed_bones = link +custom_data = scripts\rostok\ros_climb_sound_logic.ltx + +[ros_climb_action_1.2]:ros_phys_physic_object +visual = dynamics\light\light_signal.ogf +fixed_bones = link +custom_data = scripts\rostok\ros_climb_sound_logic.ltx + +[ros_climb_action_1.3]:ros_phys_physic_object +visual = dynamics\fence\wooden_board_01_2m.ogf +fixed_bones = link +custom_data = scripts\rostok\ros_climb_sound_logic.ltx + +[ros_climb_action_2.1]:ros_phys_physic_object +visual = dynamics\light\light_signal.ogf +fixed_bones = link +custom_data = scripts\rostok\ros_climb_sound_logic.ltx + +[ros_climb_action_2.2]:ros_phys_physic_object +visual = dynamics\light\light_signal.ogf +fixed_bones = link +custom_data = scripts\rostok\ros_climb_sound_logic.ltx + +[ros_climb_action_2.3]:ros_phys_physic_object +visual = dynamics\fence\part\wooden_board_01_2m_part_01.ogf +fixed_bones = link +custom_data = scripts\rostok\ros_climb_sound_logic.ltx + +[ros_valley_sign_1]:ros_phys_physic_object +visual = dynamics\decor\sign_stop.ogf +custom_data = models\objects\ignore_static.ltx + +[ros_valley_misc_1]:ros_phys_physic_object +visual = dynamics\firestation\ognetushitel.ogf +custom_data = models\objects\ignore_static.ltx + +[ros_valley_misc_2]:ros_phys_physic_object +visual = dynamics\large_trash\truba_bar_rostok.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_misc_3]:ros_phys_physic_object +visual = dynamics\large_trash\truba_bar_rostok.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_misc_4]:ros_phys_physic_object +visual = dynamics\large_trash\truba_bar_rostok.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_misc_5]:ros_phys_physic_object +visual = dynamics\fence\wooden_board_01_2m.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_misc_6]:ros_phys_physic_object +visual = dynamics\fence\wooden_board_04.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_misc_7]:ros_phys_physic_object +visual = dynamics\fence\wooden_board_04.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_misc_8]:ros_phys_physic_object +visual = dynamics\fence\wooden_board_01_2m.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_box_1]:ros_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_box_2]:ros_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_box_3]:ros_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_box_4]:ros_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[ros_valley_box_5]:ros_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[ros_valley_box_6]:ros_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[ros_valley_box_7]:ros_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[ros_valley_box_8]:ros_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[ros_valley_box_9]:ros_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[ros_valley_box_10]:ros_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[ros_valley_box_11]:ros_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[ros_valley_wall_1]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_02.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_2]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_3]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_4]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_5]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_6]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_7]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_8]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_9]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_10]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_11]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_12]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_13]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_14]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_15]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_16]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_17]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_18]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_19]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_20]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_21]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_22]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_23]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_24]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_wooden_board_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_25]:ros_phys_physic_object +visual = dynamics\fence\wood_fence_1.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_26]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_fence_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_27]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_fence_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_wall_28]:ros_phys_physic_object +visual = dynamics\scene_objects\hospital\hospital_fence_01.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[ros_valley_veh_1]:ros_dstr_physic_object +visual = dynamics\vehicles\veh_gaz66\veh_gaz_u_01.ogf +startup_animation = idle +custom_data = models\objects\ignore_static.ltx +story_id = ros_valley_veh_1 + +[ros_valley_veh_2]:ros_dstr_physic_object +visual = dynamics\vehicles\veh_kavz\veh_kavz_u_01.ogf +startup_animation = idle +custom_data = models\objects\ignore_static.ltx +story_id = ros_valley_veh_2 + +[ros_valley_veh_3]:ros_dstr_physic_object +visual = dynamics\vehicles\veh_zaz\veh_zaz_u_01.ogf +startup_animation = idle +custom_data = models\objects\ignore_static.ltx +story_id = red_valley_veh_3 + +[ros_valley_veh_4]:ros_dstr_physic_object +visual = dynamics\vehicles\veh_zaz\veh_zaz_u_01.ogf +startup_animation = idle +custom_data = models\objects\ignore_static.ltx +story_id = ros_valley_veh_4 + +[ros_valley_veh_5]:ros_dstr_physic_object +visual = dynamics\vehicles\veh_zaz\veh_zaz_u_01.ogf +startup_animation = idle +custom_data = models\objects\ignore_static.ltx +story_id = ros_valley_veh_5 diff --git a/mods/Redone Collection_backup/gamedata/configs/items/items/items_physic_object_spawn_point_YAN.ltx b/mods/Redone Collection_backup/gamedata/configs/items/items/items_physic_object_spawn_point_YAN.ltx new file mode 100644 index 00000000..c98959f4 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/items/items/items_physic_object_spawn_point_YAN.ltx @@ -0,0 +1,102 @@ +[yantar_phys_physic_object] +GroupControlSection = spawn_group +$spawn = "physics\object" +class = O_PHYS_S +remove_time = 60 +script_binding = bind_physic_object.init + +[yantar_dstr_physic_object] +GroupControlSection = spawn_group +$spawn = "physics\destroyable_object" +class = O_DSTR_S +remove_time = 60 +script_binding = bind_physic_object.init + +[ecolog_yan_base_rupor]:yantar_dstr_physic_object +visual = dynamics\el_tehnika\rupor.ogf +fixed_bones = link +custom_data = scripts\yantar\yan_ecolog_bunker_rupor.ltx + +[ecolog_yan_base_sound]:yantar_dstr_physic_object +visual = dynamics\el_tehnika\priemnik_gorizont.ogf +fixed_bones = link +custom_data = scripts\yantar\yan_ecolog_bunker_sound.ltx + +[yan_lx_16_rope_1]:yantar_phys_physic_object +visual = dynamics\dead_body\trupik_rope.ogf +fixed_bones = link + +[yan_lx_16_rope_2]:yantar_phys_physic_object +visual = dynamics\dead_body\trupik_rope.ogf +fixed_bones = link + +[yan_lx_16_rope_3]:yantar_phys_physic_object +visual = dynamics\dead_body\trupik_rope.ogf +fixed_bones = link + +[yan_lx_16_rope_4]:yantar_phys_physic_object +visual = dynamics\dead_body\trupik_rope.ogf +fixed_bones = link + +[yan_street_box_1]:yantar_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[yan_street_box_2]:yantar_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[yan_street_box_3]:yantar_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[yan_street_box_4]:yantar_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[yan_street_box_5]:yantar_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[yan_street_misc_1]:yantar_phys_physic_object +visual = dynamics\firestation\ognetushitel.ogf + +[yan_street_misc_2]:yantar_phys_physic_object +visual = dynamics\large_trash\truba_bar_rostok.ogf +custom_data = models\objects\ignore_static.ltx + +[yan_street_misc_3]:yantar_phys_physic_object +visual = dynamics\misc\tech_waste.ogf +custom_data = models\objects\ignore_static.ltx + +[yan_street_misc_4]:yantar_phys_physic_object +visual = dynamics\fence\wooden_board_01_2m.ogf +custom_data = models\objects\ignore_static.ltx + +[yan_street_misc_5]:yantar_phys_physic_object +visual = dynamics\fence\wooden_board_04.ogf +custom_data = models\objects\ignore_static.ltx + +[yan_street_veh_1]:yantar_dstr_physic_object +visual = dynamics\vehicles\veh_uaz\veh_uaz_u_01.ogf +;startup_animation = idle +custom_data = models\objects\ignore_static.ltx +story_id = yan_street_veh_1 + +[yan_street_veh_2]:yantar_dstr_physic_object +visual = dynamics\vehicles\veh_uaz\veh_uaz_u_01.ogf +;startup_animation = idle +custom_data = models\objects\ignore_static.ltx +story_id = yan_street_veh_2 + +[yan_street_veh_3]:yantar_dstr_physic_object +visual = dynamics\vehicles\veh_kamaz\veh_kamaz_u_01 +;startup_animation = idle +custom_data = models\objects\ignore_static.ltx +story_id = yan_street_veh_3 + +[yan_street_veh_4]:yantar_dstr_physic_object +visual = dynamics\vehicles\veh_gaz66\veh_gaz_u_01.ogf +;startup_animation = idle +custom_data = models\objects\ignore_static.ltx +story_id = yan_street_veh_4 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_AGR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_AGR.ltx new file mode 100644 index 00000000..45c3e5e4 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_AGR.ltx @@ -0,0 +1,233 @@ +;--------- SIMULATION -------- + +;exit to Yantar +![agr_smart_terrain_1_2]:default_lair +sim_avail = true +ecolog = 1 +stalker = 1 +csky = 1 + +![agr_smart_terrain_1_3]:default_lair +sim_avail = true +resource = 1 +ecolog = 2 +stalker = 0 +csky = 0 +freedom = 0 + +;bigger base, courtyard +![agr_smart_terrain_1_6]:default_base +sim_avail = {+agr_military_colonel_kovalski_dead} false, true +surge = 1 +army = 1 +lair = 0 + +;bigger base, gate +![agr_smart_terrain_1_6_near_1]:default_base +sim_avail = {+agr_military_colonel_kovalski_dead} false, true +surge = 1 +army = 1 + +;bigger base, inside building +![agr_smart_terrain_1_6_near_2]:default_base +sim_avail = {+agr_military_colonel_kovalski_dead} false, true +surge = 1 +army = 1 +army_heli = 1 + +![agr_smart_terrain_2_2]:default_lair +sim_avail = true +dolg = 1 +stalker = 1 +csky = 1 +killer = 1 + +;smaller base, inside building +![agr_smart_terrain_4_4]:default_base +sim_avail = true +surge = 1 +stalker = 1 +army = 1 +bandit = 1 +renegade = 1 +csky = 1 +ecolog = 1 + +;smaller base, courtyard +![agr_smart_terrain_4_4_near_1]:default +sim_avail = {+agr_military_colonel_kovalski_dead} true, false +surge = 1 +stalker = 1 +bandit = 1 +csky = 1 +ecolog = 1 +freedom = 1 +killer = 1 +army = 1 +renegade = 1 + +;smaller base, hole in the fence +![agr_smart_terrain_4_4_near_2]:default +sim_avail = {+agr_military_colonel_kovalski_dead} true, false +surge = 1 +stalker = 1 +bandit = 1 +csky = 1 +ecolog = 1 +freedom = 1 +killer = 1 +army = 1 +renegade = 1 + +;smaller base, gate +![agr_smart_terrain_4_4_near_3]:default +sim_avail = {+agr_military_colonel_kovalski_dead} true, false +surge = 1 +stalker = 1 +bandit = 1 +csky = 1 +ecolog = 1 +freedom = 1 +killer = 1 +army = 1 +renegade = 1 + +![agr_smart_terrain_4_6]:default_base +sim_avail = true +surge = 1 +army = 2 + +![agr_smart_terrain_5_2]:default +sim_avail = true +dolg = 1 +stalker = 1 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + +;camp near tunnel +![agr_smart_terrain_5_3]:default_lair +sim_avail = true + +![agr_smart_terrain_5_4]:default_lair +sim_avail = true +army = 1 + +![agr_smart_terrain_5_7]:default +sim_avail = true +csky = 0 +dolg = 0 +stalker = 0 +army = 1 +ecolog = 1 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + +;tunnel +![agr_smart_terrain_6_4]:default_base +sim_avail = true +surge = 1 +stalker = 1 +ecolog = 1 +csky = 1 +bandit = 1 +renegade = 1 +zombied = 0 + +![agr_smart_terrain_6_6]:default +sim_avail = true +lair = 5 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 + +; camp at level changer to garbage +; TODO disable/replace bugged jobs +![agr_smart_terrain_7_4]:default_lair +sim_avail = true +stalker = 0 +army = 1 +bandit = 0 + +![agr_smart_terrain_7_5]:default_lair +sim_avail = true +army = 1 +dolg = 1 +stalker = 1 +csky = 1 +bandit = 1 + +;--------- AGROPROM UNDERGROUND SMART TERRAINS -------- + +![agr_u_bandits]:default +sim_avail = {+strelok_notes} true, false +lair = 1 +stalker = 1 +army = 2 +bandit = 2 +all = 0 + +![agr_u_bloodsucker]:default_lair +sim_avail = {+strelok_notes} true, false +dolg = 1 +bandit = 1 +all = 0 + +![agr_u_bloodsucker_2]:default_lair +sim_avail = {+strelok_notes} true, false +territory = 1 +stalker = 2 +army = 2 +bandit = 2 +zombied = 0 +all = 0 + +![agr_u_monsters]:default +sim_avail = {+strelok_notes} true, false +stalker = 1 +army = 2 +dolg = 2 +bandit = 2 +ecolog = 2 +zombied = 0 +all = 0 +lair = 5 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + +![agr_u_soldiers]:default_territory +sim_avail = true ;{+agr_military_colonel_kovalski_dead} true, false +stalker = 0 +army = 0 +dolg = 0 +bandit = 0 +ecolog = 0 +csky = 0 +renegade = 0 +zombied = 0 +all = 0 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_BAR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_BAR.ltx new file mode 100644 index 00000000..766c08d3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_BAR.ltx @@ -0,0 +1,55 @@ +;--------- SIMULATION -------- + +![bar_zastava_dogs_lair]:default_lair +sim_avail = {+faction_base_defense_active} false, true +territory = 0 +dolg = 0 +stalker = 0 + +![bar_zastava_dogs_lair_2]:default_lair +sim_avail = {+faction_base_defense_active} false, true +territory = 0 +dolg = 0 +stalker = 0 + +![bar_dolg_bunker]:default_base +sim_avail = {+bar_dolg_leader_dead} true, false +surge = 1 +freedom = 5 +dolg = 0 +lair = 1 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + +![bar_dolg_general]:default_base +sim_avail = {+bar_dolg_leader_dead} false, true +surge = 1 +dolg = 5 + +![bar_visitors]:default_base +sim_avail = {+bar_stalker_barman_dead} false, true +surge = 1 +stalker = 1 +csky = 1 +ecolog = 1 +dolg = 1 + +;unique smarties, sim after guards die +![bar_zastava]:default_lair +sim_avail = {+bar_dolg_leader_dead} true, false ;{!squad_exist(bar_duty_security_squad_leader_squad)} +surge = 1 +dolg = 0 +lair = 1 + +![bar_zastava_2]:default_lair +sim_avail = {+bar_dolg_leader_dead} true, false ;{!squad_exist(bar_zastava_2_commander_squad)} +surge = 1 +dolg = 0 +lair = 1 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_CIT.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_CIT.ltx new file mode 100644 index 00000000..036e00c6 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_CIT.ltx @@ -0,0 +1,94 @@ +;--------- SIMULATION -------- + +![cit_bandits]:default_base +sim_avail = {+cit_killers_aslan_dead +cit_killers_dushman_dead} true, false +surge = 1 +stalker = 2 +bandit = 2 +csky = 2 +killer = 0 +dolg = 2 +army = 2 +monolith = 2 +greh = 2 +zombied = 1 + +![cit_bandits_2]:default_base +sim_avail = {+cit_killers_aslan_dead +cit_killers_dushman_dead} true, false +surge = 1 +stalker = 2 +bandit = 2 +csky = 2 +killer = 0 +dolg = 2 +army = 2 +monolith = 2 +greh = 2 +zombied = 1 + +![cit_kanaliz1]:default_lair +sim_avail = true +lair = 5 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 1 +monster_zombied_night = 1 +monster_special = 5 + +![cit_kanaliz2]:default_lair +sim_avail = true +lair = 5 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 1 +monster_zombied_night = 1 +monster_special = 5 + +![cit_killers]:default_base +sim_avail = true +surge = 1 +killer = 5 + +![cit_killers_2]:default_base +sim_avail = {+cit_killers_aslan_dead +cit_killers_dushman_dead} true, false +surge = 1 +stalker = 2 +bandit = 2 +csky = 2 +killer = 0 +dolg = 2 +army = 2 +monolith = 2 +greh = 2 +zombied = 1 + +![cit_killers_vs_bandits]:default_base ;broken npc path finding +sim_avail = true +lair = 0 +surge = 1 +bandit = 0 +army = 0 +killer = 0 +monolith = 0 +zombied = 0 + +; bugged npc jobs/nothing in here, use only for mutants +![zombie_smart_ds_mlr_1]:weak_lair +sim_avail = true +monster_zombied_day = 5 +monster_zombied_night = 5 + +; bugged npc jobs, use only for mutants +![zombie_smart_ds_mlr_2]:weak_lair +sim_avail = true +monster_zombied_day = 5 +monster_zombied_night = 5 +zombied = 1 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_DS.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_DS.ltx new file mode 100644 index 00000000..0ebbda5d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_DS.ltx @@ -0,0 +1,86 @@ +;--------- SIMULATION -------- +;farmhouse +![ds2_domik_st]:default_base +sim_avail = {+lttz_hb_spawned_ds_isg_leader_squad -lttz_hb_removed_ds_isg_leader_squad} false, true +surge = 1 +stalker = 1 +csky = 1 +bandit = 1 +ecolog = 1 +dolg = 1 +killer = 1 +army = 1 +renegade = 1 +isg = 1 + +;camp under rocks +![ds2_lager_st]:default_base +sim_avail = true +surge = 1 +bandit = 1 +renegade = 1 +freedom = 0 +stalker = 0 +killer = 1 +dolg = 0 +isg = 1 +army = 1 + +![ds2_st_dogs]:default_lair +sim_avail = true + +![ds2_st_hoofs]:weak_lair +sim_avail = true + +![ds_boars_nest]:weak_lair +sim_avail = true + +![ds_deb1]:weak_lair +sim_avail = true +surge = 1 + +![ds_grverfer2]:weak_lair +sim_avail = true +surge = 1 +stalker = 0 + +![ds_kem1]:weak_lair +sim_avail = true +surge = 1 + +;fuel station +![ds_kem2]:default_base +sim_avail = true +surge = 1 +army = 1 +army_heli = 1 + +![ds_kem3]:default_lair +sim_avail = true +surge = 1 +killer = 1 +bandit = 1 +renegade = 1 +stalker = 1 +army = 1 + +![ds_ptr]:default_base +sim_avail = true +surge = 1 +bandit = 1 +renegade = 1 +killer = 1 +stalker = 1 +army = 1 + +![ds_ptr2]:weak_lair +sim_avail = true +surge = 1 + +![ds_ptr3]:weak_lair +sim_avail = true +surge = 1 + +![ds_ptr4]:weak_lair +sim_avail = true +surge = 1 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_ESC.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_ESC.ltx new file mode 100644 index 00000000..9ce04169 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_ESC.ltx @@ -0,0 +1,169 @@ +;--------- SIMULATION -------- + +![esc_smart_terrain_1_11]:default_resource +sim_avail = true +stalker = 1 +csky = 1 +ecolog = 1 + +;novice camp +![esc_smart_terrain_2_12]:default_base +sim_avail = true +surge = 1 +stalker = 1 +csky = 1 +ecolog = 1 +monolith = 0 +army = 0 +killer = 0 +lair = 0 + +![esc_smart_terrain_2_14]:default +sim_avail = true +territory = 1 + +![esc_smart_terrain_3_7]:weak_lair +sim_avail = true +stalker = 0 +bandit = 1 +csky = 0 +renegade = 1 + +;military base +![esc_smart_terrain_3_16]:default_base +sim_avail = true +surge = 1 +army_heli = 1 +army = 0 + +![esc_smart_terrain_4_9]:default +sim_avail = true +surge = 1 +bandit = 0 +stalker = 0 + +![esc_smart_terrain_4_11]:weak_lair +sim_avail = true +stalker = 1 +monster = 1 +monster_vegetarian = 1 + +![esc_smart_terrain_4_13]:default +sim_avail = true +territory = 1 + +;cordon-garbage building +![esc_smart_terrain_5_2]:default_base +sim_avail = true +surge = 1 +army_heli = 1 +army = 5 +stalker = 0 +bandit = 0 + +![esc_smart_terrain_5_4]:weak_lair +sim_avail = true + +![esc_smart_terrain_5_6]:weak_lair +sim_avail = true + + + +;farmhouse +![esc_smart_terrain_5_7]:default_base +sim_avail = true +surge = 1 +stalker = 1 +csky = 1 +bandit = 0 + +;mill +![esc_smart_terrain_5_9]:default +sim_avail = true +surge = 1 +territory = 1 +bandit = 0 +freedom = 0 +killer = 0 +army = 2 + +![esc_smart_terrain_5_12]:weak_lair +sim_avail = true +stalker = 0 + +;fox house +![esc_smart_terrain_6_6]:default_lair +sim_avail = true +surge = 1 +bandit = 1 +stalker = 1 + +;ruined rail bridge +![esc_smart_terrain_6_8]:default +sim_avail = true +surge = 1 +territory = 1 +all = 0 +army = 0 +bandit = 0 + +;car repair +![esc_smart_terrain_7_11]:default_base +sim_avail = true +surge = 1 +bandit = 1 +stalker = 0 + +![esc_smart_terrain_8_10]:default_lair +sim_avail = true +lair = 5 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + +![esc_smart_terrain_8_9]:default_lair +sim_avail = true +stalker = 0 +lair = 5 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + +![esc_smart_terrain_9_7]:default_lair +sim_avail = true +lair = 5 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + +![esc_smart_terrain_9_10]:default_base +sim_avail = true +bandit = 1 +lair = 1 +territory = 1 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 1 +monster_zombied_day = 1 +monster_zombied_night = 1 +monster_special = 5 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_GAR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_GAR.ltx new file mode 100644 index 00000000..b98bec5d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_GAR.ltx @@ -0,0 +1,130 @@ +;--------- SIMULATION -------- +;exit to Agroprom1 +![gar_smart_terrain_1_5]:weak_lair +sim_avail = true +surge = 1 +bandit = 1 + +;exit to Agroprom2 +![gar_smart_terrain_1_7]:weak_lair +sim_avail = true +stalker = 1 +bandit = 1 +dolg = 1 + +;camp near tunnel +![gar_smart_terrain_2_4]:weak_lair +sim_avail = true +surge = 1 +bandit = 0 + +;hangar +![gar_smart_terrain_3_5]:default_base +sim_avail = true +surge = 1 +stalker = 1 +bandit = 0 +csky = 1 +ecolog = 1 +dolg = 1 +army = 0 + +![gar_smart_terrain_3_7]:default_resource +sim_avail = true +stalker = 0 +ecolog = 2 +army = 2 + +![gar_smart_terrain_4_2]:default_lair +sim_avail = true +stalker = 0 + +![gar_smart_terrain_4_5]:default +sim_avail = true +stalker = 1 +bandit = 1 + +;outpost to Bar +![gar_smart_terrain_5_2]:default_base +sim_avail = true +surge = 1 +stalker = 3 +bandit = 0 +csky = 3 +ecolog = 3 +freedom = 0 +killer = 0 +dolg = 1 +;monolith = 1 + +![gar_smart_terrain_5_4]:weak_lair +sim_avail = true + +![gar_smart_terrain_5_5]:weak_lair +sim_avail = true +stalker = 1 + +![gar_smart_terrain_5_6]:default_lair +sim_avail = true +resource = 1 +stalker = 0 +bandit = 1 +ecolog = 1 +army = 1 + +![gar_smart_terrain_5_8]:default_base +sim_avail = true +surge = 1 +stalker = 0 +bandit = 1 +army = 2 + +![gar_smart_terrain_6_1]:default_lair +sim_avail = true +lair = 5 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + +;ruined building +![gar_smart_terrain_6_3]:default_base +sim_avail = {+gar_baraholka_syoma_dead +gar_baraholka_yurko_dead} false, true +surge = 1 +stalker = 1 +csky = 1 + +![gar_smart_terrain_6_6]:default +sim_avail = true +lair = 5 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + +![gar_smart_terrain_6_7]:default_lair +sim_avail = true +stalker = 0 +resource = 1 + +![gar_smart_terrain_7_4]:default_lair +sim_avail = true +;stalker = 1 + +![gar_smart_terrain_8_3]:weak_lair +sim_avail = true +bandit = 1 +dolg = 1 + +![gar_smart_terrain_8_5]:default_lair +sim_avail = true diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_MAR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_MAR.ltx new file mode 100644 index 00000000..905e125c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_MAR.ltx @@ -0,0 +1,228 @@ +;--------- SIMULATION -------- +;unique starting base +![mar_smart_terrain_base]:default_base +sim_avail = true +ecolog = 1 +stalker = 1 +surge = 1 +csky = 1 + +![mar_smart_terrain_doc]:default_base +sim_avail = false + +![mar_smart_terrain_doc_2]:default_lair +sim_avail = true +lair = 1 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 1 +monster_vegetarian = 1 +monster_zombied_day = 1 +monster_zombied_night = 1 +monster_special = 1 + +;NW fishing village, bandits +![mar_smart_terrain_3_3]:default_base +sim_avail = true +surge = 1 +bandit = 2 +renegade = 5 + +![mar_smart_terrain_3_7]:default_lair +sim_avail = true +stalker = 0 +csky = 0 +ecolog = 0 +lair = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + + +![mar_smart_terrain_3_10]:weak_lair +sim_avail = true + +![mar_smart_terrain_4_5]:default_base +sim_avail = true +surge = 1 +stalker = 0 +bandit = 1 +renegade = 5 + +![mar_smart_terrain_4_7]:weak_lair +sim_avail = true +bandit = 1 +stalker = 1 +renegade = 1 +lair = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 + +;Center, pumping station +![mar_smart_terrain_5_8]:default_base +sim_avail = {+pump_station_defense_task_smart_reserved} false, true +base = 1 +surge = 1 +territory = 2 +stalker = 1 +bandit = 1 +csky = 2 +killer = 0 +ecolog = 1 +renegade = 2 +army = 0 + +;South, fishing village +![mar_smart_terrain_5_12]:default_base +sim_avail = {+faction_base_defense_active} false, true +stalker = 1 +surge = 1 +bandit = 0 +csky = 1 +renegade = 1 + +![mar_smart_terrain_6_4]:weak_lair +sim_avail = true + +![mar_smart_terrain_6_7]:default_lair +sim_avail = true +lair = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + +![mar_smart_terrain_6_8]:weak_lair +sim_avail = true + +![mar_smart_terrain_6_10]:weak_lair +sim_avail = true + +;South watchtower +![mar_smart_terrain_6_11]:default_base +sim_avail = true +surge = 1 +bandit = 0 +csky = 1 +renegade = 0 +lair = 1 +monster = 0 +monster_predatory_day = 0 +monster_predatory_night = 0 +monster_vegetarian = 0 + +![mar_smart_terrain_7_3]:weak_lair +sim_avail = true +stalker = 1 +bandit = 1 +renegade = 1 + +![mar_smart_terrain_7_7]:default_lair +sim_avail = true + +![mar_smart_terrain_8_4]:weak_lair +sim_avail = true + +![mar_smart_terrain_8_8]:default_resource +sim_avail = true +stalker = 1 +csky = 1 +bandit = 1 +ecolog = 1 +freedom = 0 +army = 1 +renegade = 1 +lair = 1 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 1 +monster_vegetarian = 1 +monster_zombied_day = 1 +monster_zombied_night = 1 +monster_special = 1 + +![mar_smart_terrain_8_9]:weak_lair +sim_avail = true +stalker = 1 +csky = 1 +bandit = 1 +renegade = 1 + +;East temple +![mar_smart_terrain_8_11]:default_base +sim_avail = true +surge = 1 +stalker = 1 +bandit = 0 +csky = 1 +ecolog = 2 +renegade = 0 + +;NE car repair, military +![mar_smart_terrain_10_5]:default_base +sim_avail = true +surge = 1 +csky = 2 +army = 1 +army_heli = 1 +renegade = 2 + +![mar_smart_terrain_10_7]:weak_lair +sim_avail = true + +![mar_smart_terrain_10_10]:default_resource +sim_avail = true +lair = 1 +stalker = 1 +csky = 1 +ecolog = 1 + +![mar_smart_terrain_11_3]:default_resource +sim_avail = true +stalker = 0 +csky = 0 +ecolog = 2 +army = 1 + +;NE village, exit1 to Escape +![mar_smart_terrain_11_11]:default_base +sim_avail = true +surge = 1 +stalker = 0 +bandit = 2 +csky = 1 +killer = 0 +freedom = 0 +ecolog = 0 +army = 1 +dolg = 0 +renegade = 2 + +;NE village, exit2 to Escape +![mar_smart_terrain_12_2]:default_base +sim_avail = true +lair = 1 +base = 1 +surge = 1 +stalker = 1 +bandit = 1 +csky = 1 +ecolog = 1 +army = 1 +renegade = 1 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_MIL.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_MIL.ltx new file mode 100644 index 00000000..b6e030e6 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_MIL.ltx @@ -0,0 +1,194 @@ +;--------- SIMULATION -------- +![mil_smart_terrain_2_1]:default_lair +sim_avail = true +territory = 1 +zombied = 2 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 1 +monster_vegetarian = 1 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 1 + +;SOC merc outpost to Dead City +![mil_smart_terrain_2_2]:default_base +sim_avail = true +killer = 5 +stalker = 0 +bandit = 0 +csky = 0 +freedom = 0 +dolg = 1 +monolith = 0 + + +;SOC empty farmhouse north +![mil_smart_terrain_2_4]:default_base +sim_avail = true +surge = 1 +stalker = 0 +ecolog = 1 +csky = 0 +freedom = 0 +dolg = 0 +killer = 0 +bandit = 0 +renegade = 0 +;monolith = 0 + +![mil_smart_terrain_2_6]:default_lair +sim_avail = true +territory = 1 +monolith = 1 +zombied = 2 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 1 +monster_vegetarian = 1 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 1 + +;SOC bloodsuckers village, Freedom camp +![mil_smart_terrain_2_10]:default_base +sim_avail = true +surge = 1 +bandit = 2 +freedom = 2 +killer = 2 +dolg = 2 +monolith = 0 + +;SOC Freedom outpost to Radar, barrier +![mil_smart_terrain_3_8]:default_base +sim_avail = true +freedom = 0 +dolg = 0 +monolith = 2 + +;SOC bloodsuckers village +![mil_smart_terrain_4_2]:default +sim_avail = true +surge = 1 + +;SOC bloodsuckers village, water tower +![mil_smart_terrain_4_3]:default_lair +sim_avail = true +surge = 1 +territory = 1 +resource = 1 +stalker = 0 +freedom = 0 +zombied = 2 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 1 +monster_vegetarian = 1 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 1 + +![mil_smart_terrain_4_5]:default_base +sim_avail = true +surge = 1 +stalker = 0 +freedom = 0 +dolg = 3 +bandit = 0 +monolith = 0 +zombied = 1 +lair = 1 +territory = 1 +zoo_monster = 0 +monster = 0 +monster_predatory_day = 0 +monster_predatory_night = 0 +monster_vegetarian = 0 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 0 + +![mil_smart_terrain_4_7]:default_lair +sim_avail = {+faction_base_defense_active} false, true +territory = 1 +zombied = 1 + +;SOC Freedom outpost to Radar, wagon +![mil_smart_terrain_4_8]:default_base +sim_avail = true +surge = 1 +stalker = 1 +freedom = 1 +dolg = 0 +bandit = 0 +monolith = 0 + +;SOC Duty farm +![mil_smart_terrain_7_4]:default_base +sim_avail = {+bar_dolg_leader_dead +bar_dolg_petrenko_dead +mil_freedom_leader_dead} false, true +surge = 1 +stalker = 0 +freedom = 3 +dolg = 3 +bandit = 0 +monolith = 0 + +;SOC Freedom base, main +![mil_smart_terrain_7_7]:default_base +sim_avail = {+mil_freedom_leader_dead} false, true +surge = 1 +;stalker = 0 +;csky = 0 +freedom = 5 +dolg = 0 +;bandit = 0 +monolith = 0 +;lair = 0 + +;SOC Freedom base, entrance +![mil_smart_terrain_7_8]:default_base +sim_avail = {+mil_freedom_leader_dead} true, false +surge = 1 +stalker = 0 +;ecolog = 0 +csky = 0 +freedom = 0 +dolg = 4 +bandit = 0 +monolith = 0 +army = 4 + +;SOC Freedom base, near kitchen +![mil_smart_terrain_7_10]:default_base +sim_avail = {+mil_freedom_leader_dead} true, false +surge = 1 +stalker = 0 +csky = 0 +freedom = 0 +dolg = 4 +bandit = 0 +monolith = 0 +army = 4 + +;SOC Freedom base, near sleep barracks +![mil_smart_terrain_7_12]:default_base +sim_avail = {+mil_freedom_leader_dead} true, false +surge = 1 +stalker = 0 +bandit = 0 +csky = 0 +freedom = 0 +dolg = 0 +army = 0 +monolith = 4 +greh = 4 + +![mil_smart_terrain_8_3]:default +sim_avail = true +territory = 1 +freedom = 0 +monolith = 0 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_POL.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_POL.ltx new file mode 100644 index 00000000..968f19e6 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_POL.ltx @@ -0,0 +1,134 @@ +;--------- SIMULATION -------- +;-- for MLR 6.2 + +![pol_sim_1]:default +sim_avail = true +territory = 0 +surge = 1 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 1 +monster_vegetarian = 1 +monster_zombied_day = 1 +monster_zombied_night = 1 +monster_special = 1 + +![pol_smart_terrain_1_1]:default_base +sim_avail = true +surge = 1 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 1 +monster_vegetarian = 1 +monster_zombied_day = 1 +monster_zombied_night = 1 +monster_special = 1 + +![pol_smart_terrain_1_2]:default +sim_avail = true +surge = 1 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 1 +monster_vegetarian = 1 +monster_zombied_day = 1 +monster_zombied_night = 1 +monster_special = 1 + +![pol_smart_terrain_1_3]:default_base +sim_avail = true +territory = 1 +surge = 0 +resource = 1 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 1 +monster_vegetarian = 1 +monster_zombied_day = 1 +monster_zombied_night = 1 +monster_special = 1 + +![pol_smart_terrain_2_1]:default_base +sim_avail = true +territory = 0 +surge = 1 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 1 +monster_vegetarian = 1 +monster_zombied_day = 1 +monster_zombied_night = 1 +monster_special = 1 + +![pol_smart_terrain_2_2]:default +sim_avail = true +territory = 0 +surge = 1 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 1 +monster_vegetarian = 1 +monster_zombied_day = 1 +monster_zombied_night = 1 +monster_special = 1 + +;-- for MLR 6.2 (disabled) TODO: fix squads can't build path to Meadow +;[pol_sim_1]:default_base +;sim_avail = true +;territory = 1 +; +;[pol_smart_terrain_1_1]:default_base +;sim_avail = true +;territory = 1 +;surge = 1 +;stalker = 1 +;bandit = 1 +;dolg = 1 +;freedom = 1 +;army = 1 +; +;[pol_smart_terrain_1_2]:default_base +;sim_avail = true +;territory = 1 +;surge = 1 +;stalker = 1 +;bandit = 1 +;dolg = 1 +;freedom = 1 +;army = 1 +; +;[pol_smart_terrain_1_3]:default_resource +;sim_avail = true +;territory = 1 +;surge = 1 +;stalker = 1 +;bandit = 1 +;dolg = 1 +;freedom = 1 +;army = 1 +; +;[pol_smart_terrain_2_1]:default_lair +;sim_avail = true +;territory = 1 +;surge = 1 +;stalker = 1 +;bandit = 1 +;dolg = 1 +;freedom = 1 +;army = 1 +; +;[pol_smart_terrain_2_2]:default_lair +;sim_avail = true +;territory = 1 +;surge = 1 +;stalker = 1 +;bandit = 1 +;dolg = 1 +;freedom = 1 +;army = 1 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_ROS.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_ROS.ltx new file mode 100644 index 00000000..e08406fe --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_ROS.ltx @@ -0,0 +1,103 @@ +;--------- SIMULATION -------- +;sim smarties +![ros_smart_killers1]:default_base +sim_avail = true +surge = 1 +killer = 2 +stalker = 0 +bandit = 1 +dolg = 1 +csky = 0 +army = 0 + +![ros_smart_monster4]:default +sim_avail = true +territory = 0 +resource = 1 +stalker = 1 +ecolog = 1 +dolg = 1 +lair = 5 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + +![ros_smart_monster5]:default +sim_avail = true +territory = 0 +stalker = 1 +dolg = 1 +resource = 1 +ecolog = 1 +lair = 5 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + +![ros_smart_monster7]:default +sim_avail = true +territory = 1 +resource = 0 +ecolog = 0 +stalker = 0 + +![ros_smart_poltergeist2]:default_lair +sim_avail = true +lair = 5 +territory = 5 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 0 +monster_zombied_day = 0 +monster_zombied_night = 0 +monster_special = 0 + + +![ros_smart_snork1]:default_lair +sim_avail = true +territory = 0 +dolg = 0 +stalker = 0 +lair = 5 +territory = 5 +zoo_monster = 0 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 0 +monster_zombied_day = 0 +monster_zombied_night = 0 +monster_special = 1 + +![ros_smart_stalker_killers1]:default_base +sim_avail = true +surge = 1 +bandits = 1 +csky = 0 +killer = 1 +dolg = 1 +army = 0 + +![ros_smart_stalker1]:default +sim_avail = true +territory = 1 +stalker = 0 +ecolog = 0 +killer = 0 +dolg = 0 +csky = 0 +army = 0 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_TRC.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_TRC.ltx new file mode 100644 index 00000000..563da300 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_TRC.ltx @@ -0,0 +1,120 @@ +;--------- SIMULATION -------- +;sim smarties +![trc_sim_1]:default_base +sim_avail = true +surge = 1 +stalker = 0 +bandit = 1 +freedom = 1 +dolg = 0 +army = 0 +renegade = 1 +lair = 0 + +![trc_sim_2]:default_base +sim_avail = true +surge = 1 +stalker = 0 +bandit = 1 +freedom = 0 +dolg = 0 +army = 0 +renegade = 1 + +![trc_sim_3]:default_lair +sim_avail = true +dolg = 2 +zombied = 1 + +![trc_sim_4]:default_lair +sim_avail = true +resource = 2 +stalker = 1 +ecolog = 1 +csky = 1 +zombied = 1 + +![trc_sim_5]:default_lair +sim_avail = true +zombied = 1 + +![trc_sim_6]:default_lair +sim_avail = true +surge = 1 + +![trc_sim_7]:default_lair +sim_avail = true + +![trc_sim_8]:default_lair +sim_avail = true +resource = 2 +stalker = 1 +csky = 1 +freedom = 1 +ecolog = 1 +dolg = 1 +zombied = 1 + +![trc_sim_9]:default_lair +sim_avail = true + +![trc_sim_10]:default_lair +sim_avail = true +resource = 1 +stalker = 1 +bandit = 1 +csky = 1 +ecolog = 1 +dolg = 1 + +![trc_sim_11]:default_lair +sim_avail = true +zombied = 1 + +![trc_sim_12]:default_lair +sim_avail = true + +![trc_sim_13]:default_lair +sim_avail = true +resource = 1 +stalker = 1 +dolg = 1 +zombied = 1 + +![trc_sim_14]:default_lair +sim_avail = true +zombied = 1 + +![trc_sim_15]:default_lair +sim_avail = true + +![trc_sim_16]:default_lair +sim_avail = true + +![trc_sim_17]:default_lair +sim_avail = true +zombied = 1 + +![trc_sim_18]:default_base +sim_avail = true +surge = 1 +stalker = 1 +bandit = 1 +freedom = 1 +army = 1 +dolg = 1 +renegade = 1 +zombied = 0 + +![trc_sim_19]:default_lair +sim_avail = true +zombied = 1 + +![trc_sim_20]:default_base +sim_avail = true +surge = 1 +bandit = 1 +renegade = 1 + +![trc_sim_21]:default_lair +sim_avail = true \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_VAL.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_VAL.ltx new file mode 100644 index 00000000..c6abb064 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_VAL.ltx @@ -0,0 +1,157 @@ +;--------- SIMULATION -------- + +;smaller base, x18 entrance building +![val_smart_terrain_1_2]:default_base +sim_avail = {+dar_lx18_complete_end) false, true +surge = 1 +bandit = 2 +killer = 1 +renegade = 0 +army = 2 +army_heli = 1 + +; camp on hills between farm and central lake +![val_smart_terrain_3_0]:weak_lair +sim_avail = true +bandit = 0 + +;south pig farm +![val_smart_terrain_4_0]:default_base +sim_avail = true +surge = 1 +stalker = 1 +ecolog = 1 +csky = 1 +dolg = 1 +killer = 1 +freedom = 1 +bandit = 1 +renegade = 0 + +;camp at northern level changer to to garbage +![val_smart_terrain_5_7]:default_lair +sim_avail = true +bandit = 1 + +;camp at southern level changer to to garbage +![val_smart_terrain_5_8]:weak_lair +sim_avail = true +bandit = 1 + +;lair near level changer to meadow +![val_smart_terrain_5_10]:weak_lair +sim_avail = true + +;camp in front of west exit of bandit base +![val_smart_terrain_6_4]:weak_lair +sim_avail = {+faction_base_defense_active} false, true +bandit = 1 + +; cliff south of andit base +![val_smart_terrain_6_5]:weak_lair +sim_avail = true + +;bigger base, SOC bandits, CS freedom, inside outer building +![val_smart_terrain_7_3]:default_base +sim_avail = {+zat_b5_sultan_dead} false, true +surge = 1 +stalker = 0 +bandit = 5 +freedom = 2 +killer = 2 +army = 0 +dolg = 0 +renegade = 0 + +;bigger base, SOC bandits, CS freedom, inside central building +![val_smart_terrain_7_4]:default_base +sim_avail = {+zat_b5_sultan_dead} true, false +surge = 1 +stalker = 3 +bandit = 0 +freedom = 3 +killer = 3 +army = 3 +dolg = 3 +renegade = 3 +lair = 1 +territory = 1 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 1 +monster_vegetarian = 1 +monster_zombied_day = 1 +monster_zombied_night = 1 +monster_special = 0 + +;bigger base, SOC bandits, CS freedom, courtyard +![val_smart_terrain_7_5]:default_base +sim_avail = {+zat_b5_sultan_dead} false, true +surge = 1 +stalker = 0 +bandit = 5 +freedom = 0 +killer = 0 +army = 0 +dolg = 0 +renegade = 0 + +;north island in lake +![val_smart_terrain_7_8]:weak_lair +sim_avail = true + +;camp near level changer to darkscape +![val_smart_terrain_7_11]:weak_lair +sim_avail = true +bandit = 0 + +![val_smart_terrain_8_6]:default ;terrain buggy, max_population +sim_avail = {+zat_b5_sultan_dead} false, true +bandit = 1 +dolg = 1 + +![val_smart_terrain_8_7]:weak_lair +sim_avail = true + +;south island in lake +![val_smart_terrain_8_9]:weak_lair +sim_avail = true + +![val_smart_terrain_9_10]:default +sim_avail = true +lair = 1 +territory = 1 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 1 +monster_zombied_day = 1 +monster_zombied_night = 5 +monster_special = 5 + +![val_smart_terrain_9_2]:weak_lair +sim_avail = {+faction_base_defense_active} false, true + +![val_smart_terrain_9_4]:default_base +sim_avail = {+zat_b5_sultan_dead} true, false +surge = 1 +stalker = 1 +bandit = 0 +killer = 1 +freedom = 1 +dolg = 1 +renegade = 1 + +;camp near x-18 building +![val_smart_terrain_9_6]:default_territory +sim_avail = {+dar_lx18_complete_end) true, false +surge = 1 +stalker = 1 +bandit = 0 +killer = 1 +dolg = 1 +freedom = 1 +all = 0 + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_X-16.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_X-16.ltx new file mode 100644 index 00000000..1eaa5698 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_X-16.ltx @@ -0,0 +1,66 @@ +;--------- SIMULATION -------- + +![x162_st_burer]:default +sim_avail = {+yan_kill_brain_done} true, false +monolith = 0 +ecolog = 0 +stalker = 0 +army = 0 +territory = 1 +lair = 1 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 1 +monster_vegetarian = 1 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + +![x162_st_gigant]:default +sim_avail = {+yan_kill_brain_done} true, false +monolith = 0 +ecolog = 0 +csky = 0 +stalker = 0 +killer = 0 +army = 0 +territory = 1 +lair = 1 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 0 +monster_vegetarian = 1 +monster_zombied_day = 5 +monster_zombied_night = 0 +monster_special = 0 + +![x162_st_snork]:default +sim_avail = {+yan_kill_brain_done} true, false +ecolog = o +csky = 0 +stalker = 0 +killer = 0 +lair = 0 +zoo_monster = 0 +monster = 0 +monster_predatory_day = 0 +monster_predatory_night = 0 +monster_vegetarian = 0 +monster_zombied_day = 0 +monster_zombied_night = 0 +monster_special = 0 + +![x162_st_poltergeist]:default +sim_avail = {+yan_kill_brain_done} true, false +territory = 1 +lair = 1 +zoo_monster = 1 +monster = 1 +monster_predatory_day = 1 +monster_predatory_night = 5 +monster_vegetarian = 1 +monster_zombied_day = 1 +monster_zombied_night = 1 +monster_special = 1 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_X-18.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_X-18.ltx new file mode 100644 index 00000000..09f62bbf --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_X-18.ltx @@ -0,0 +1,103 @@ +;--------- SIMULATION -------- +![dar_angar]:default_lair +sim_avail = {+dar_control_poltergeist_killed} true, false +stalker = 1 +csky = 1 +bandit = 1 +killer = 1 +ecolog = 1 +army = 1 +dolg = 1 +lair = 0 +territory = 0 +zoo_monster = 0 +monster = 0 +monster_predatory_day = 0 +monster_predatory_night = 0 +monster_vegetarian = 0 +monster_zombied_day = 0 +monster_zombied_night = 0 +monster_special = 0 + +![dar_control_poltergeist]:default_lair +sim_avail = {+dar_control_poltergeist_killed} true, false +stalker = 1 +csky = 1 +bandit = 1 +killer = 1 +ecolog = 1 +army = 1 +dolg = 1 +lair = 0 +territory = 0 +zoo_monster = 0 +monster = 0 +monster_predatory_day = 0 +monster_predatory_night = 0 +monster_vegetarian = 0 +monster_zombied_day = 0 +monster_zombied_night = 0 +monster_special = 0 + +![dar_military_scout]:default_territory +sim_avail = false ;{+dar_control_poltergeist_killed} true, false + +![dar_poltergeist_ring]:default_lair +sim_avail = {+dar_control_poltergeist_killed} true, false +lair = 0 +territory = 1 +zoo_monster = 0 +monster = 0 +monster_predatory_day = 0 +monster_predatory_night = 0 +monster_vegetarian = 0 +monster_zombied_day = 0 +monster_zombied_night = 0 +monster_special = 0 + +![dar_poltergeist_tele]:default_lair +sim_avail = {+dar_control_poltergeist_killed} true, false +lair = 0 +territory = 1 +zoo_monster = 0 +monster = 0 +monster_predatory_day = 0 +monster_predatory_night = 0 +monster_vegetarian = 0 +monster_zombied_day = 0 +monster_zombied_night = 0 +monster_special = 0 + +![dar_poltergeist_tele_round]:default_lair +sim_avail = {+dar_control_poltergeist_killed} true, false +lair = 0 +territory = 1 +zoo_monster = 0 +monster = 0 +monster_predatory_day = 0 +monster_predatory_night = 0 +monster_vegetarian = 0 +monster_zombied_day = 0 +monster_zombied_night = 0 +monster_special = 0 + +![dar_smart_snork]:default_base +sim_avail = {+dar_control_poltergeist_killed} true, false +stalker = 1 +csky = 1 +bandit = 1 +killer = 1 +ecolog = 1 +army = 1 +dolg = 1 +lair = 0 +territory = 0 +zoo_monster = 0 +monster = 0 +monster_predatory_day = 0 +monster_predatory_night = 0 +monster_vegetarian = 0 +monster_zombied_day = 0 +monster_zombied_night = 0 +monster_special = 0 + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_YAN.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_YAN.ltx new file mode 100644 index 00000000..c9af061f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_objects_props_YAN.ltx @@ -0,0 +1,130 @@ +;--------- SIMULATION -------- +;sim smarties +![yan_smart_terrain_1_6]:default +sim_avail = true +resource = 1 +ecolog = 1 +stalker = 1 +freedom = 1 + +;x-16 entrance yard, building +![yan_smart_terrain_2_4]:default_lair +sim_avail = true +surge = 1 +surge = 1 +zombied = 2 +lair = 5 +territory = 1 +zoo_monster = 0 +monster = 0 +monster_predatory_day = 0 +monster_predatory_night = 5 +monster_vegetarian = 0 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 0 + +;x-16 entrance yard, gate +![yan_smart_terrain_2_5]:default +sim_avail = true +surge = 1 +territory = 1 + +;x-16 entrance yard +![yan_smart_terrain_3_4]:default_lair +sim_avail = true +surge = 1 +zombied = 2 +territory = 1 +zoo_monster = 0 +monster = 0 +monster_predatory_day = 0 +monster_predatory_night = 5 +monster_vegetarian = 0 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 0 + +;camp 2 near small tunnel +![yan_smart_terrain_3_6]:default_base +sim_avail = true +surge = 1 +stalker = 1 +ecolog = 1 +csky = 1 + +![yan_smart_terrain_4_2]:default +sim_avail = true +surge = 1 +resource = 2 +ecolog = 1 +stalker = 1 +csky = 1 +freedom = 1 +killer = 1 +lair = 5 +territory = 1 +zoo_monster = 5 +monster = 5 +monster_predatory_day = 5 +monster_predatory_night = 5 +monster_vegetarian = 5 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 5 + +![yan_smart_terrain_4_4]:default +sim_avail = {+faction_base_defense_active} false, true +ecolog = 0 +stalker = 0 +csky = 0 +zombied = 1 + +![yan_smart_terrain_4_5]:default +sim_avail = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead} true, false +ecolog = 1 +stalker = 1 +csky = 1 + +![yan_smart_terrain_5_3]:default_resource +sim_avail = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead} true, false + +;camp near small tunnel +![yan_smart_terrain_5_5]:default_base +sim_avail = {+faction_base_defense_active} false, true +surge = 1 +stalker = 1 +csky = 1 +zombied = 0 + +![yan_smart_terrain_6_2]:default_lair +sim_avail = {+faction_base_defense_active} false, true +territory = 0 +zombied = 1 +csky = 0 + +;scientist base +![yan_smart_terrain_6_4]:default_base +sim_avail = true +surge = 1 +stalker = 0 +ecolog = 4 +csky = 0 +zombied = 0 + +![yan_smart_terrain_zombi_spawn]:default_lair +sim_avail = true +surge = 1 +zombied = 5 +territory = 1 +zoo_monster = 0 +monster = 0 +monster_predatory_day = 0 +monster_predatory_night = 5 +monster_vegetarian = 0 +monster_zombied_day = 5 +monster_zombied_night = 5 +monster_special = 0 + +![yan_smart_terrain_snork_u]:default_lair +sim_avail = {+yantar_tunnel_finish} true, false diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_AGR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_AGR.ltx new file mode 100644 index 00000000..d1086545 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_AGR.ltx @@ -0,0 +1,43 @@ +![agr_smart_terrain_1_2] +per_yant_blood_agr_smart_terrain_1_2 = 0 + +![agr_smart_terrain_1_3] +ecolog_sim_squad_advanced_1e_2ls = 1 + +![agr_smart_terrain_1_6];mlr +agr_1_6_guards_army_mlr_squad +army_sim_squad_advanced = 0 +army_sim_squad_novice = 1 +army_sim_squad_veteran = 1 + +![agr_smart_terrain_1_6_near_1] +agr_1_6_guards_army_mlr_2_squad +agr_patrol_army_mlr_squad +army_sim_squad_advanced = 0 +army_sim_squad_novice = 1 +army_sim_squad_sniper = 1 +army_sim_squad_veteran = 0 + +![agr_smart_terrain_1_6_near_2] +agr_1_6_guards_army_mlr_3_squad +army_sim_squad_advanced = 1 +army_sim_squad_novice = 0 +army_sim_squad_sniper = 1 +army_sim_squad_veteran = 0 + +![agr_smart_terrain_4_4] +agr_smart_terrain_4_4_rat_mlr_squad +ecolog_sim_squad_veteran = 0 +stalker_sim_squad_advanced = 0 + +![agr_smart_terrain_4_4_near_1] +stalker_sim_squad_novice = 0 +ecolog_sim_squad_advanced = 1 + +![agr_smart_terrain_4_4_near_2] +csky_sim_squad_advanced = 0 + +;--------AGROPROM UNDERGROUND-------- + +![agr_u_soldiers] +agr_u_soldiers_squad diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_BAR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_BAR.ltx new file mode 100644 index 00000000..aad2d329 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_BAR.ltx @@ -0,0 +1,28 @@ +![bar_dolg_bunker] +bar_dolg_bunker_squad +duty_sim_squad_advanced = 0 +duty_sim_squad_novice = 0 +duty_sim_squad_veteran = 1 + +![bar_dolg_general];mlr +bar_dolg_general_squad +bar_dolg_sick_stalker_squad +bar_duty_medic_stalker_squad +duty_sim_squad_advanced = 1 +duty_sim_squad_novice = 0 +duty_sim_squad_veteran = 0 + +![bar_visitors];mlr +ecolog_sim_squad_advanced = 1 +stalker_sim_squad_novice = 0 +stalker_sim_squad_veteran = 1 +bar_mlr_1_visitors +bar_mlr_2_visitors +bar_mlr_3_visitors + +![bar_zastava_dogs_lair] +simulation_dog_5_7 = 0 + +![bar_zastava_dogs_lair_2] +simulation_mix_dogs = 0 +simulation_pseudodog = 0 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_CIT.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_CIT.ltx new file mode 100644 index 00000000..d49caa75 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_CIT.ltx @@ -0,0 +1,32 @@ +![cit_killers] ;spawns for more quests +cit_killers_merc_guard_squad_1 +cit_killers_merc_guard_squad_2 +cit_killers_merc_guard_squad_3 +merc_sim_squad_veteran = 1 +merc_sim_squad_novice = 1 +merc_sim_squad_advanced = 1 + +![cit_killers_2] +cit_killers_2_rat_mlr_squad +merc_sim_squad_advanced = 0 +merc_sim_squad_veteran = 0 + +![cit_killers_vs_bandits] ;spawns for more quests +cit_bandit_guard_squad_1 +cit_bandit_guard_squad_2 +cit_bandit_guard_squad_3 +cit_killers_guard_squad_1 +cit_killers_guard_squad_2 +merc_sim_squad_novice = 0 + +![cit_bandits] +;cit_bandits_poltergeist_squad + +![cit_bandits_2] +simulation_zombie_3_6 = 0 + +![cit_kanaliz1] +;cit_kanaliz1_zombied_squad + +![cit_kanaliz2] +cit_kanaliz2_zombied_squad \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_DS.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_DS.ltx new file mode 100644 index 00000000..08bb6aad --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_DS.ltx @@ -0,0 +1,13 @@ +![ds2_domik_st] +stalker_sim_squad_advanced = 0 +stalker_sim_squad_novice = 1 +dasc_tech_mlr_squad = 1 +dasc_trade_mlr_squad = 1 + +![ds_kem2] +ds_kem2_military_mlr_2_squad = 1 +ds_kem2_military_mlr_2_sniper = 1 +army_sim_squad_veteran = 0 + +![ds_kem3] +ds_kem3_bloodsucker_red = 1 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_ESC.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_ESC.ltx new file mode 100644 index 00000000..7fa70d33 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_ESC.ltx @@ -0,0 +1,37 @@ +![esc_smart_terrain_1_11] +;escape_novice_visiters_village2 + +![esc_smart_terrain_2_12] +stalker_sim_squad_advanced = 0 +stalker_sim_squad_novice = 1 + +![esc_smart_terrain_2_14] +;esc_smart_terrain_2_14_rat_mlr_squad = 0 + +![esc_smart_terrain_4_9] +;tunnel_rats_esc_smart_terrain_4_9 = 1 + +![esc_smart_terrain_3_7] + +![esc_smart_terrain_3_16] +kpp_army_mlr_esc_smart_terrain_3_16 = 1 + +![esc_smart_terrain_5_2] +karat_army_esc_smart_terrain_2_12 = 1 + +![esc_smart_terrain_5_7] +stalker_sim_squad_novice = 1 +stalker_sim_squad_advanced = 0 +escape_main_base_mlr_guards = 1 +;escape_main_base_mlr_guards2 = 0 +;ferma_stalker_esc_smart_terrain_5_7 = 0 + +![esc_smart_terrain_5_9] +fabr_rats_esc_smart_terrain_5_9 + +![esc_smart_terrain_6_8] +most_army_esc_smart_terrain_6_8 + +![esc_smart_terrain_7_11] +bandit_sim_squad_novice = 0 +atp_bandit_esc_smart_terrain_7_11 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_GAR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_GAR.ltx new file mode 100644 index 00000000..aa42a5c0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_GAR.ltx @@ -0,0 +1,16 @@ +![gar_smart_terrain_3_5];mlr +start_character_hangar_mlr_squad +!start_visitirs_hangar_mlr_squad +stalker_sim_squad_novice = 1 + +![gar_smart_terrain_3_7] +stalker_sim_squad_advanced = 1 +ecolog_sim_squad_advanced = 1 + +![gar_smart_terrain_5_2] +stalker_sim_dolg_post +duty_sim_squad_advanced = 0 +duty_sim_squad_novice = 0 + +![gar_smart_terrain_6_3];mlr +stalker_gar_smart_terrain_6_3 = 0 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_MAR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_MAR.ltx new file mode 100644 index 00000000..f880456b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_MAR.ltx @@ -0,0 +1,52 @@ +![mar_smart_terrain_3_3] +mar_renegade_trader_squad +mar_smart_terrain_3_3_renegade_squad +renegade_guard_mar_smart_terrain_3_3 +renegade_sim_squad_advanced = 1 +renegade_sim_squad_novice = 1 + +![mar_smart_terrain_4_5] +mar_renegade_mechanic_squad +mar_renegade_guard_patrol_squad +mar_smart_terrain_4_5_renegade_squad + +![mar_smart_terrain_5_8] +pump_csky_mar_smart_terrain_5_8 +csky_sim_squad_novice = 1 +csky_sim_squad_veteran = 0 + +![mar_smart_terrain_5_12] +camp_csky_mar_smart_terrain_5_12 +csky_sim_squad_advanced = 1 +csky_sim_squad_novice = 1 + +![mar_smart_terrain_6_4] +mar_rat_squad_smart_terrain_6_4_squad + +![mar_smart_terrain_6_11] +csky_sim_squad_advanced = 0 +csky_sim_squad_novice = 0 + +![mar_smart_terrain_8_11] +ecolog_mar_smart_terrain_8_11 +renegade_sim_squad_advanced = 0 +renegade_sim_squad_novice = 0 +;renegade_sim_squad_veteran = 0 + +![mar_smart_terrain_10_5] +mar_smart_terrain_10_5_army_squad +army_sim_squad_advanced = 1 +army_sim_squad_sniper = 1 + +![mar_smart_terrain_11_11] +renegade_sim_squad_advanced = 0 +renegade_sim_squad_novice = 0 + +![mar_smart_terrain_12_2] +mar_smart_terrain_12_2_army_squad +csky_sim_squad_advanced = 0 +csky_sim_squad_novice = 0 +stalker_sim_squad_novice = 0 + +![mar_smart_terrain_doc] +mar_smart_terrain_doc_dog_squad = 0 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_MIL.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_MIL.ltx new file mode 100644 index 00000000..403be4e6 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_MIL.ltx @@ -0,0 +1,46 @@ +![mil_smart_terrain_2_2] +mil_merc_terrain_2_2_outpost_squad +mil_merc_terrain_2_2_outpost_squad2 +merc_sim_squad_advanced = 0 +merc_sim_squad_novice = 0 +merc_sim_squad_veteran = 0 + +![mil_smart_terrain_2_10] +freedom_sim_squad_novice = 0 + +![mil_smart_terrain_2_4] +bandit_sim_squad_advanced = 0 + +![mil_smart_terrain_3_8] +freedom_sim_squad_novice = 0 + +![mil_smart_terrain_4_5] +stalker_sim_squad_advanced = 0 + +![mil_smart_terrain_4_8] +freedom_sim_squad_veteran = 0 + +![mil_smart_terrain_7_4] +mil_duty_terrain_7_4_outpost_squad +duty_sim_squad_novice = 1 +duty_sim_squad_veteran = 1 + +![mil_smart_terrain_7_7] +mil_freedom_barman_mlr_squad +mil_7_7_protect_mlr_squad +freedom_sim_squad_novice = 1 +freedom_sim_squad_advanced = 0 + +![mil_smart_terrain_7_8] +mil_freedom_smart_terrain_7_8_squad +freedom_sim_squad_veteran = 0 + +![mil_smart_terrain_7_10] +mil_freedom_smart_terrain_7_10_squad +freedom_sim_squad_novice = 1 + +![mil_smart_terrain_7_12] +mil_freedom_smart_terrain_7_12_squad +freedom_sim_squad_veteran = 1 + + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_POL.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_POL.ltx new file mode 100644 index 00000000..96e89fbd --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_POL.ltx @@ -0,0 +1,21 @@ +![pol_smart_terrain_1_1] +pol_smart_terrain_1_1_mlr_squad + +![pol_smart_terrain_1_3] +pol_smart_terrain_1_2_mlr_squad +pol_rats_mlr_squad + +![pol_smart_terrain_2_1] +pol_renegade_guard1 +simulation_poltergeist_tele = 0 + +![pol_smart_terrain_2_2] +pol_renegade_squad2 +simulation_burer = 0 + + + + + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_ROS.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_ROS.ltx new file mode 100644 index 00000000..cd0f6f7b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_ROS.ltx @@ -0,0 +1,25 @@ +![ros_smart_killers1] +ros_merc_sniper_mlr_squad +bandit_sim_squad_advanced = 0 +bandit_sim_squad_novice = 0 + +![ros_smart_poltergeist2] +simulation_zombie_3_6 = 0 +simulation_poltergeist_tele = 0 +simulation_snork = 0 + +![ros_smart_stalker1] +stalker_sim_squad_advanced = 0 +stalker_sim_squad_veteran = 0 + +![ros_smart_stalker_killers1] +ros_merc_guard_mlr_squad +merc_sim_squad_advanced = 1 +merc_sim_squad_novice = 1 +merc_sim_squad_veteran = 0 + +![ros_smart_monster4] +simulation_zombie_3_6 = 0 + +![ros_smart_monster5] +simulation_zombie_3_6 = 0 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_TRC.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_TRC.ltx new file mode 100644 index 00000000..cee37010 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_TRC.ltx @@ -0,0 +1,18 @@ +![trc_sim_13] +trc_sim_13_zombie_squad + +![trc_sim_17] +!freedom_sim_squad_veteran = 0 + +![trc_sim_18] +trucks_army_camp_guards +army_sim_squad_advanced = 0 +army_sim_squad_veteran = 0 + +![trc_sim_20];mlr +trucks_cemetery_bandit_guards +bandit_sim_squad_advanced = 1 + +![trc_sim_4] +army_sim_squad_advanced = 0 + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_VAL.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_VAL.ltx new file mode 100644 index 00000000..c7e52b56 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_VAL.ltx @@ -0,0 +1,37 @@ +![val_smart_terrain_1_2] +val_smart_terrain_1_2_military_mlr_squad +val_smart_terrain_1_2_military_mlr_2_squad +army_sim_squad_advanced = 0 +army_sim_squad_sniper = 0 +army_sim_squad_veteran = 0 + +![val_smart_terrain_4_0] +stalker_south_pig_farm +stalker_sim_squad_advanced = 0 +stalker_sim_squad_novice = 0 + +![val_smart_terrain_7_3] +bandit_novice_visiters_camp +bandit_novice_visiters_2_camp +bandit_barman_mlr_squad + +![val_smart_terrain_7_4] +bandit_novice_visiters_base +bandit_novice_visiters_2_base +bandit_sim_squad_advanced = 0 +bandit_sim_squad_veteran = 0 + +![val_smart_terrain_7_5] +guards_boss_bandit_in_main_base +bandit_guards_in_main_base +bandit_sim_squad_novice = 0 +bandit_sim_squad_veteran = 0 + +![val_smart_terrain_6_4] +;val_smart_terrain_6_4_rat_mlr_squad + +![val_smart_terrain_8_6] +guards_bandit_main_entrance + +![val_smart_terrain_9_4] +bandit_sim_squad_novice = 0 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_YAN.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_YAN.ltx new file mode 100644 index 00000000..770b3f0c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/mod_simulation_spawn_point_YAN.ltx @@ -0,0 +1,24 @@ +![yan_smart_terrain_2_4] +yan_zombied_x16_mlr_squad2 + +![yan_smart_terrain_2_5] +zombied_sim_squad_advanced = 0 + +![yan_smart_terrain_3_4] +yan_zombied_x16_mlr_squad3 + +![yan_smart_terrain_3_6] +ecolog_sim_squad_advanced = 0 + +![yan_smart_terrain_4_5] +simulation_snork_2_5 = 0 + +![yan_smart_terrain_6_4];mlr +yan_smart_terrain_6_4_squad +ecolog_sim_squad_advanced = 1 +ecolog_sim_squad_novice = 1 +ecolog_sim_squad_veteran = 1 + +![yan_smart_terrain_zombi_spawn] +yan_zombied_x16_mlr_squad +simulation_contr_3sn_3gzomb = 0 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_AGR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_AGR.ltx new file mode 100644 index 00000000..07ba48fc --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_AGR.ltx @@ -0,0 +1,30 @@ +;![kovalsky_surge_phase_1] ;-- agr_blowout_siren +;type = 3d ;actor +;npc_prefix = false +;path = characters_voice\scenario\agroprom\kovalsky_surge_phase_1 +;shuffle = rnd +;idle = 3,5,100 +;levels = l03_agroprom + +;![agr_army_alarm] ;-- needs to be converted to the game engine. +;type = 3d +;path = ambient\siren_1 ;-- test sound +;shuffle = rnd +;idle = 0,0,100 +;levels = l03_agroprom + +;[agr_blowout_siren] ;-- added, change path, sound looped?! +;type = 3d +;path = ambient\blowout\blowout_siren_agr +;shuffle = rnd +;idle = 0,0,100 +;levels = l03_agroprom + +![kovalsky_surge_phase_1] ;-- agr_blowout_siren +type = 3d +actor_stereo = false +npc_prefix = false +path = characters_voice\scenario\agroprom\kovalsky_surge_phase_1 +shuffle = seq +idle = 0,0,0 +levels = l03_agroprom \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_BAR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_BAR.ltx new file mode 100644 index 00000000..5a2f1c60 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_BAR.ltx @@ -0,0 +1,13 @@ +[bar_blowout_siren_1] +type = 3d +path = ambient\blowout\blowout_siren_bar_1 +shuffle = loop +idle = 5,15,100 ;3,5,100 +levels = l05_bar + +[bar_blowout_siren_2] +type = 3d +path = ambient\blowout\blowout_siren_bar_2 +shuffle = loop +idle = 5,15,100 ;3,5,100 +levels = l05_bar diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_ESC.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_ESC.ltx new file mode 100644 index 00000000..6764e278 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_ESC.ltx @@ -0,0 +1,25 @@ +![escape_sr_rupor_mlr_sound] +type = 3d +path = characters_voice\scenario\escape\megafon_ +shuffle = loop +idle = 5,15,100 + +![escape_sr_rupor_mlr_alarm] +type = 3d +path = characters_voice\scenario\escape\megafon_alarm_ +shuffle = rnd +idle = 0,0,100 + +[escape_blowout_siren] +type = 3d +path = ambient\blowout\blowout_siren_esc_1 +shuffle = loop +idle = 5,15,100 ;3,5,100 +levels = l01_escape + +[escape_blowout_siren_1] +type = 3d +path = ambient\blowout\blowout_siren_esc_2 +shuffle = loop +idle = 5,15,100 ;3,5,100 +levels = l01_escape diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_MAR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_MAR.ltx new file mode 100644 index 00000000..ba3196b3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_MAR.ltx @@ -0,0 +1,5 @@ +[mar_smart_terrain_base_radio_mlr] +type = 3d +path = mlr\marsh\marsh_radio_ +shuffle = loop +idle = 5,15,100 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_MIL.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_MIL.ltx new file mode 100644 index 00000000..e501dddf --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_MIL.ltx @@ -0,0 +1,5 @@ +![mil_freebase_mlr] +type = 3d +path = mlr\freedom\val_free_meg_music_ +shuffle = loop +idle = 5,15,100 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_ROS.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_ROS.ltx new file mode 100644 index 00000000..683a1a23 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_ROS.ltx @@ -0,0 +1,34 @@ +[ros_climb_sound_1] +type = 3d +path = material\human\step\metal_plate1 +shuffle = rnd +idle = 1,1,100 +levels = l06_rostok + +[ros_climb_sound_2] +type = 3d +path = material\human\step\metal_plate2 +shuffle = rnd +idle = 1,1,100 +levels = l06_rostok + +[ros_climb_sound_3] +type = 3d +path = material\human\step\metal_plate3 +shuffle = rnd +idle = 1,1,100 +levels = l06_rostok + +[ros_climb_sound_4] +type = 3d +path = material\human\step\metal_plate4 +shuffle = rnd +idle = 1,1,100 +levels = l06_rostok + +;[ros_open_door] +;type = 3d +;path = device\door_start +;shuffle = seq +;idle = 5,15,100 +;levels = l06_rostok \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_X16.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_X16.ltx new file mode 100644 index 00000000..18f6e181 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_X16.ltx @@ -0,0 +1,14 @@ +![x16_brain_stop] +type = 3d +path = ambient\x16\x16_brain_stop +levels = l08u_brainlab + +![x16_brain_death_d] +type = looped +path = ambient\x16\x16_brain_death +levels = l08u_brainlab + +![x16_brain_run] +type = looped +path = ambient\x16\x16_brain_run_2 +levels = l08u_brainlab \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_YAN.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_YAN.ltx new file mode 100644 index 00000000..e05379fe --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/sound/mod_script_sound_redone_YAN.ltx @@ -0,0 +1,20 @@ +[yan_sci_tech_sounds] +type = looped ;3d +path = ambient\background\yantar\device_hum_0 +shuffle = loop +idle = 3,5,100 +levels = l08_yantar + +[yan_blowout_siren] +type = 3d +path = ambient\blowout\blowout_siren_yan_1 +shuffle = loop +idle = 5,15,100 ;3,5,100 +levels = l08_yantar + +[yan_blowout_siren_1] +type = 3d +path = ambient\blowout\blowout_siren_yan_2 +shuffle = loop +idle = 5,15,100 ;3,5,100 +levels = l08_yantar diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/mil_smart_terrain_3_8_object.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/mil_smart_terrain_3_8_object.ltx new file mode 100644 index 00000000..4957c07d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/mil_smart_terrain_3_8_object.ltx @@ -0,0 +1,6 @@ +[dynamic_object_configs] +smart = mil_smart_terrain_3_8 +condlist_0 = true + +[exclusive] +psy field 1 = mil_smart_terrain_3_8_psy_field | 111.1950302124, -12.346420288086, 424.95971679688 | 0,0,0 | condlist_0 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/ros_smart_killers1_object.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/ros_smart_killers1_object.ltx new file mode 100644 index 00000000..e56f8b90 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/ros_smart_killers1_object.ltx @@ -0,0 +1,16 @@ +[dynamic_object_configs] +smart = ros_smart_killers1 +condlist_0 = true + +[exclusive] +door_1 = ros_valley_door_1 | -137.60,2.25,123.15 | 0,0,180 | condlist_0 +door_2 = ros_valley_door_2 | -137.60,2.50,123.25 | 0,0,180 | condlist_0 +Wall_1 = ros_valley_wall_1 | -111.42,-0.00,103.95 | 0,0,0 | condlist_0 +Wall_2 = ros_valley_wall_2 | -111.42,-0.00,102.25 | 0,90,0 | condlist_0 +Wall_3 = ros_valley_wall_3 | -111.42,-0.00,103.85 | 0,90,0 | condlist_0 +box_1 = ros_valley_box_1 | -91.18,0.02,134.81 | 0,12,0 | condlist_0 +box_2 = ros_valley_box_2 | -91.19,0.02,133.61 | 0,-6,0 | condlist_0 +box_3 = ros_valley_box_3 | -91.13,0.83,134.25 | 0,-2,0 | condlist_0 + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/ros_smart_snork1_objects.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/ros_smart_snork1_objects.ltx new file mode 100644 index 00000000..6ae8a805 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/ros_smart_snork1_objects.ltx @@ -0,0 +1,23 @@ +[dynamic_object_configs] +smart = ros_smart_snork1 +condlist_0 = true + +[exclusive] +door_1 = ros_roof_door_1 | -187.39,17.69,75.23 | 0,-30,0 | condlist_0 +door_2 = ros_roof_door_2 | -172.27,-0.00,60.22 | 0,-30,0 | condlist_0 +Wall_1 = ros_valley_wall_4 | -138.08,-0.00,62.00 | 0,60,0 | condlist_0 +Wall_2 = ros_valley_wall_5 | -138.80,-0.00,60.84 | 0,60,0 | condlist_0 +Wall_3 = ros_valley_wall_6 | -139.66,-0.00,59.61 | 0,60,0 | condlist_0 +misc_1 = ros_valley_misc_1 | -157.39,-0.00,85.60 | 90,86,0 | condlist_0 +misc_2 = ros_valley_misc_2 | -168.93,-0.00,79.90 | 0,79,0 | condlist_0 +misc_3 = ros_valley_misc_3 | -181.20,-0.00,24.92 | 0,23,0 | condlist_0 +misc_4 = ros_valley_misc_4 | -157.39,-0.00,60.53 | 0,-43,0 | condlist_0 +misc_5 = ros_valley_misc_5 | -166.94,0.02,64.27 | 90,-38,0 | condlist_0 +misc_6 = ros_valley_misc_6 | -161.65,0.02,41.62 | 90,99,0 | condlist_0 +misc_7 = ros_valley_misc_7 | -155.36,0.02,57.29 | 90,2,0 | condlist_0 +misc_8 = ros_valley_misc_8 | -171.58,0.02,48.33 | 90,-2,0 | condlist_0 +box_4 = ros_valley_box_4 | -179.46,-0.00,65.74 | 0,32,0 | condlist_0 +box_5 = ros_valley_box_5 | -155.88,-0.00,51.54 | 0,8,0 | condlist_0 +box_6 = ros_valley_box_6 | -155.25,-0.00,52.54 | 0,-8,0 | condlist_0 + + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/ros_smart_stalker_killers1_objects.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/ros_smart_stalker_killers1_objects.ltx new file mode 100644 index 00000000..e3150d78 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/ros_smart_stalker_killers1_objects.ltx @@ -0,0 +1,38 @@ +[dynamic_object_configs] +smart = ros_smart_stalker_killers1 +condlist_0 = true + +[exclusive] +climb_1 = ros_climb_action_1.1 | -212.93,1.55,9.42 | 0,-30,0 | condlist_0 +climb_2 = ros_climb_action_1.2 | -210.93,1.50,9.22 | 0,-30,0 | condlist_0 +climb_3 = ros_climb_action_1.3 | -211.93,1.85,9.32 | 7,-30,90 | condlist_0 +climb_4 = ros_climb_action_2.1 | -211.58,9.66,9.35 | 0,-30,0 | condlist_0 +climb_5 = ros_climb_action_2.2 | -212.09,9.66,9.56 | 0,-30,0 | condlist_0 +climb_6 = ros_climb_action_2.3 | -212.24,8.83,9.40 | 90,-23,0 | condlist_0 +Wall_7 = ros_valley_wall_7 | -201.44,-0.00,-29.80 | 0,60,0 | condlist_0 +Wall_8 = ros_valley_wall_8 | -207.95,-0.00,-40.44 | 0,60,0 | condlist_0 +Wall_9 = ros_valley_wall_9 | -208.64,-0.00,-41.58 | 0,60,0 | condlist_0 +Wall_10 = ros_valley_wall_10 | -209.25,-0.00,-42.56 | 0,60,0 | condlist_0 +Wall_11 = ros_valley_wall_11 | -209.89,-0.00,-43.61 | 0,60,0 | condlist_0 +Wall_12 = ros_valley_wall_12 | -210.46,-0.00,-44.56 | 0,60,0 | condlist_0 +Wall_13 = ros_valley_wall_13 | -200.87,-0.00,-29.07 | 0,60,0 | condlist_0 +Wall_14 = ros_valley_wall_14 | -202.19,-0.00,-31.01 | 0,60,0 | condlist_0 +Wall_15 = ros_valley_wall_15 | -202.94,-0.00,-32.25 | 0,60,0 | condlist_0 +Wall_16 = ros_valley_wall_16 | -203.64,-0.00,-33.39 | 0,60,0 | condlist_0 +Wall_17 = ros_valley_wall_17 | -204.39,-0.00,-34.63 | 0,60,0 | condlist_0 +Wall_18 = ros_valley_wall_18 | -205.03,-0.00,-35.68 | 0,60,0 | condlist_0 +Wall_19 = ros_valley_wall_19 | -205.81,-0.00,-36.94 | 0,60,0 | condlist_0 +Wall_20 = ros_valley_wall_20 | -206.48,-0.00,-38.05 | 0,60,0 | condlist_0 +Wall_21 = ros_valley_wall_21 | -207.20,-0.00,-39.22 | 0,60,0 | condlist_0 +Wall_22 = ros_valley_wall_22 | -199.25,-0.00,5.06 | 0,60,0 | condlist_0 +Wall_23 = ros_valley_wall_23 | -199.92,-0.00,3.94 | 0,60,0 | condlist_0 +Wall_24 = ros_valley_wall_24 | -201.49,-0.00,7.01 | 0,-23,0 | condlist_0 +Wall_25 = ros_valley_wall_25 | -214.03,0.00,10.77 | 0,65,0 | condlist_0 +Wall_26 = ros_valley_wall_26 | -215.11,8.17,8.09 | 0,58,0 | condlist_0 +Wall_27 = ros_valley_wall_27 | -225.93,8.17,-10.66 | 0,58,0 | condlist_0 +Wall_28 = ros_valley_wall_28 | -236.68,8.17,-29.30 | 0,58,0 | condlist_0 +box_7 = ros_valley_box_7 | -204.91,0.00,24.73 | 0,8,0 | condlist_0 +box_8 = ros_valley_box_8 | -204.09,0.00,24.31 | 0,-8,0 | condlist_0 +box_9 = ros_valley_box_9 | -211.69,0.00,-44.63 | 0,8,0 | condlist_0 +box_10 = ros_valley_box_10 | -181.83,0.00,52.04 | 0,-8,0 | condlist_0 +box_11 = ros_valley_box_11 | -204.37,0.77,24.888 | 0,-8,0 | condlist_0 diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/yan_smart_terrain_2_4_object.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/yan_smart_terrain_2_4_object.ltx new file mode 100644 index 00000000..58e59ab2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/yan_smart_terrain_2_4_object.ltx @@ -0,0 +1,20 @@ +[dynamic_object_configs] +smart = yan_smart_terrain_2_4 +condlist_0 = true + +[exclusive] +box_1 = yan_street_box_1 | -42.30,0.34,79.52 | 0,10,0 | condlist_0 +box_2 = yan_street_box_2 | -42.36,0.34,78.22 | 0,20,0 | condlist_0 +box_3 = yan_street_box_3 | -42.20,0.34,76.73 | 0,-10,0 | condlist_0 +box_4 = yan_street_box_4 | -78.02,0.78,2.09 | 0,20,0 | condlist_0 +box_5 = yan_street_box_5 | -78.14,0.78,0.84 | 0,30,0 | condlist_0 +misc_1 = yan_street_misc_1 | -71.78,0.74,33.78 | 90,86,0 | condlist_0 +misc_2 = yan_street_misc_2 | -73.46,0.78,78.23 | 0,79,0 | condlist_0 +misc_3 = yan_street_misc_3 | -54.97,0.38,51.45 | 90,99,0 | condlist_0 +misc_4 = yan_street_misc_4 | -63.44,0.58,76.99 | 90,99,0 | condlist_0 +misc_5 = yan_street_misc_5 | -65.22,0.61,25.43 | 90,2,0 | condlist_0 +vehicles_1 = yan_street_veh_1 | -37.15,0.34,73.34 | 0,-99,0 | condlist_0 +vehicles_2 = yan_street_veh_2 | -37.13,0.34,69.48 | 0,-83,0 | condlist_0 +vehicles_3 = yan_street_veh_3 | -24.27,0.34,67.67 | 0,-42,0 | condlist_0 +;vehicles_4 = yan_street_veh_4 | -71.73,0.70,-4.31 | 0,145,0 | condlist_0 + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/yan_smart_terrain_6_4_object.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/yan_smart_terrain_6_4_object.ltx new file mode 100644 index 00000000..66337bb0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/spawn_object/yan_smart_terrain_6_4_object.ltx @@ -0,0 +1,8 @@ +[dynamic_object_configs] +smart = yan_smart_terrain_6_4 +condlist_0 = true + +[exclusive] +rupor_1 = ecolog_yan_base_rupor | 24.72,-4.91,-263.82 | 0,-182,-90 | condlist_0 +sound_1 = ecolog_yan_base_sound | 28.11,-23.74,-273.46 | 0,0,0 | condlist_0 + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_lostzone_ll_spawn.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_lostzone_ll_spawn.ltx new file mode 100644 index 00000000..ca71effc --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_lostzone_ll_spawn.ltx @@ -0,0 +1,15 @@ +;--Lost to the Zone: Living Legend + +![barrier_freedom_guardians_squad]:online_offline_group +faction = freedom +npc_random = sim_default_freedom_1, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_3 +npc_in_squad = 2, 2 +target_smart = mil_smart_terrain_3_8 + +![mil_smart_terrain_3_8_monolith_attackers]:online_offline_group +faction = monolith +npc_random = sim_default_monolith_1, sim_default_monolith_2, sim_default_monolith_3, sim_default_monolith_4 +npc_in_squad = 8, 8 +target_smart = mil_smart_terrain_3_8 +story_id = mil_smart_terrain_3_8_monolith_attackers_squad +on_death = %+mil_smart_terrain_3_8_monolith_attackers_squad_death% diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_night_mutants_spawn.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_night_mutants_spawn.ltx new file mode 100644 index 00000000..a55fc595 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_night_mutants_spawn.ltx @@ -0,0 +1,537 @@ +;------------------------------------------------ +;----< Zombies >-----| + +[zombied_sim_squad_novice_night]:online_offline_group +faction = monster_special +npc_random = sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_2 +npc_in_squad = 3, 4 +common = true + +[zombied_sim_squad_advanced_night]:online_offline_group +faction = monster_special +npc_random = sim_default_zombied_1, sim_default_zombied_2, sim_default_zombied_3 +npc_in_squad = 3, 4 +common = true + +[zombied_sim_squad_veteran_night]:online_offline_group +faction = monster_special +npc_random = sim_default_zombied_2, sim_default_zombied_3, sim_default_zombied_4 +npc_in_squad = 3, 4 +common = true + +[zombied_sim_squad_mix_night]:online_offline_group ;added +faction = monster_special +npc_random = sim_default_zombied_1, sim_default_zombied_2, sim_default_zombied_3, sim_default_zombied_4 +npc_in_squad = 3, 4 +common = true + +[simulation_zombie_night]:online_offline_group +faction = monster_special +npc_random = zombie_weak, zombie_normal, zombie_strong +npc_in_squad = 3, 4 +common = true + +[simulation_zombie_3_6_night]:online_offline_group +faction = monster_special +npc_random = zombie_weak, zombie_normal, zombie_strong +npc_in_squad = 4, 6 +common = true + +[simulation_mix_zombie_night]:online_offline_group ;added +faction = monster_special +npc_random = zombie_weak, zombie_normal, zombie_strong +npc_in_squad = 3, 4 +common = true + +[simulation_zombie_blind_night]:online_offline_group ;added +faction = monster_special +npc_random = zombie_blind +npc_in_squad = 2, 3 +common = true + +[simulation_zombie_blind_3zomb_night]:online_offline_group ;added +faction = monster_special +npc = zombie_blind, sim_default_zombied_2, sim_default_zombied_3, sim_default_zombied_4 +npc_in_squad = 4 +common = true + +[simulation_zombie_blind_3zomb_civ_night]:online_offline_group ;added +faction = monster_special +npc = zombie_blind, zombie_weak, zombie_normal, zombie_strong +npc_in_squad = 4 +common = true + +;------------------------------------------------ +;----< Tushkano and Rats>-----| + +[simulation_tushkano_night]:online_offline_group +faction = monster_special +npc_random = tushkano_normal, tushkano_normal_a, tushkano_normal_b, tushkano_normal_c, tushkano_weak, tushkano_weak_a, tushkano_weak_b, tushkano_weak_c, tushkano_strong, tushkano_strong_a, tushkano_strong_b, tushkano_strong_c +npc_in_squad = 3, 4 +common = true + +[simulation_tushkano_7_10_night]:online_offline_group +faction = monster_special +npc_random = tushkano_normal, tushkano_normal_a, tushkano_normal_b, tushkano_normal_c, tushkano_weak, tushkano_weak_a, tushkano_weak_b, tushkano_weak_c, tushkano_strong, tushkano_strong_a, tushkano_strong_b, tushkano_strong_c +npc_in_squad = 7, 10 +common = true + +[simulation_rat_night]:online_offline_group +faction = monster_special +npc_random = rat_weak, rat_normal, rat_strong, rat_wolf, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak +npc_in_squad = 5, 7 +common = true + +[simulation_rats_night]:online_offline_group +faction = monster_special +npc_random = rat_weak, rat_normal, rat_strong, rat_wolf, rat_weak, rat_weak +npc_in_squad = 7, 9 +common = true + +[simulation_rats_7_10_night]:online_offline_group +faction = monster_special +npc_random = rat_weak, rat_normal, rat_weak, rat_wolf, rat_weak, rat_weak +npc_in_squad = 9, 12 +common = true + +;------------------------------------------------ +;----< Flesh and Boars >-----| + +[simulation_boar_night]:online_offline_group +faction = monster_special +npc_random = boar_normal, boar_normal, boar_normal, boar_strong, boar_01a_weak, boar_02a_weak, boar_02a_strong, boar_01a_hard, boar_02a_hard +npc_in_squad = 1, 3 +common = true + +[simulation_boar_3_5_night]:online_offline_group +faction = monster_special +npc_random = boar_normal, boar_normal, boar_normal, boar_strong, boar_01a_weak, boar_02a_weak, boar_02a_strong, boar_01a_hard, boar_02a_hard +npc_in_squad = 3, 4 +common = true + +[simulation_flesh_night]:online_offline_group +faction = monster_special +npc_random = flesh_01a_weak, flesh_01a_normal, flesh_01a_strong, flesh_02a_weak, flesh_02a_normal, flesh_02a_strong, flesh_03a_normal, flesh_03a_strong +npc_in_squad = 2, 3 +common = true + +[simulation_mix_boar_flesh_night]:online_offline_group +faction = monster_special +npc_random = flesh_01a_weak, flesh_01a_normal, flesh_01a_strong, flesh_02a_weak, flesh_02a_normal, flesh_02a_strong, flesh_03a_normal, flesh_03a_strong, boar_normal, boar_normal, boar_normal, boar_strong, boar_01a_weak, boar_02a_weak, boar_02a_strong, boar_01a_hard, boar_02a_hard +npc_in_squad = 2, 3 +common = true + +;------------------------------------------------ +;----< Dogs >-----| + +[simulation_dog_night]:online_offline_group +faction = monster_special +npc_random = dog_normal_red, dog_normal_white, dog_normal_brown, dog_normal_bulterier, dog_weak_red, dog_weak_white, dog_weak_brown, dog_weak_bulterier, dog_strong_red, dog_strong_white, dog_strong_brown, dog_strong_bulterier, dog_strong_black +npc_in_squad = 2, 4 +common = true + +[simulation_dog_5_7_night]:online_offline_group +faction = monster_special +npc_random = dog_normal_red, dog_normal_white, dog_normal_brown, dog_normal_bulterier, dog_weak_red, dog_weak_white, dog_weak_brown, dog_weak_bulterier, dog_strong_red, dog_strong_white, dog_strong_brown, dog_strong_bulterier, dog_strong_black +npc_in_squad = 3, 5 +common = true + +[simulation_mix_dogs_night]:online_offline_group +faction = monster_special +npc_random = dog_normal_brown, pseudodog_grey_weak, pseudodog_normal, pseudodog_strong, pseudodog_grey_strong, dog_normal_red, dog_normal_white, dog_normal_brown, dog_normal_bulterier, dog_weak_red, dog_weak_white, dog_weak_brown, dog_weak_bulterier, dog_strong_red, dog_strong_white, dog_strong_brown, dog_strong_bulterier, dog_strong_black, dog_weak_bulterier, dog_weak_brown, dog_weak_brown +npc_in_squad = 2, 4 +common = true + +[simulation_pseudodog_night]:online_offline_group +faction = monster_special +npc_random = pseudodog_grey_weak, pseudodog_grey_weak, pseudodog_normal, pseudodog_strong, pseudodog_grey_strong +npc_in_squad = 1, 2 +common = true + +;------------------------------------------------ +;----< Cat >-----| + +[simulation_cat_night]:online_offline_group +faction = monster_special +npc_random = cat_weak_a, cat_weak_b, cat_weak_c, cat_weak_d, cat_weak_e, cat_normal_a, cat_normal_b, cat_normal_c, cat_normal_d, cat_normal_e, cat_strong_a, cat_strong_b, cat_strong_c, cat_strong_d, cat_strong_e +npc_in_squad = 1, 3 +common = true + +[simulation_cat_3_5_night]:online_offline_group +faction = monster_special +npc_random = cat_weak_a, cat_weak_b, cat_weak_c, cat_weak_d, cat_weak_e, cat_normal_a, cat_normal_b, cat_normal_c, cat_normal_d, cat_normal_e, cat_strong_a, cat_strong_b, cat_strong_c, cat_strong_d, cat_strong_e +npc_in_squad = 3, 4 +common = true + +;------------------------------------------------ +;----< Fracture/Izlom >-----| + +[simulation_fracture_night]:online_offline_group +faction = monster_special +npc_random = fracture_normal, fracture_weak, fracture_strong, fracture_2, fracture_3 +npc_in_squad = 1, 2 +common = true + +;------------------------------------------------ +;----< Snork >-----| + +[simulation_snork_night]:online_offline_group +faction = monster_special +npc_random = snork_weak, snork_weak2, snork_weak3, snork_weak4, snork_normal, snork_normal2, snork_normal3, snork_normal4, snork_strong, snork_strong2, snork_strong3, snork_strong4 +npc_in_squad = 2 +common = true + +[simulation_snork_2_3_night]:online_offline_group ;added +faction = monster_special +npc_random = snork_weak, snork_weak2, snork_weak3, snork_weak4, snork_normal, snork_normal2, snork_normal3, snork_normal4, snork_strong, snork_strong2, snork_strong3, snork_strong4 +npc_in_squad = 2, 3 +common = true + +[simulation_snork_2_5_night]:online_offline_group +faction = monster_special +npc_random = snork_weak, snork_weak2, snork_weak3, snork_weak4, snork_normal, snork_normal2, snork_normal3, snork_normal4, snork_strong, snork_strong2, snork_strong3, snork_strong4 +npc_in_squad = 2, 4 +common = true + +;------------------------------------------------ +;----< Lurker >-----| +[simulation_lurker_blue_night]:online_offline_group +faction = monster_special +npc_random = lurker_1_weak, lurker_1_normal, lurker_1_strong +npc_in_squad = 1, 2 +common = true + +[simulation_lurker_brown_night]:online_offline_group +faction = monster_special +npc_random = lurker_2_weak, lurker_2_normal, lurker_2_strong +npc_in_squad = 1, 2 +common = true + +[simulation_lurker_black_night]:online_offline_group +faction = monster_special +npc_random = lurker_3_weak, lurker_3_normal, lurker_3_strong +npc_in_squad = 1, 2 +common = true + +[simulation_lurker_night]:online_offline_group +faction = monster_special +npc_random = lurker_1_weak, lurker_1_normal, lurker_1_strong, lurker_2_weak, lurker_2_normal, lurker_2_strong, lurker_3_weak, lurker_3_normal, lurker_3_strong +npc_in_squad = 1, 2 +common = true + +[simulation_lurker_1_2_night]:online_offline_group +faction = monster_special +npc_random = lurker_1_weak, lurker_1_normal, lurker_1_strong, lurker_2_weak, lurker_2_normal, lurker_2_strong, lurker_3_weak, lurker_3_normal, lurker_3_strong +npc_in_squad = 2 +common = true + +;------------------------------------------------ +;----< Bloodsucker >-----| + +[simulation_bloodsucker_night]:online_offline_group +faction = monster_special +npc_random = bloodsucker_red_weak, bloodsucker_green_weak, bloodsucker_black_weak, bloodsucker_red_normal, bloodsucker_green_normal, bloodsucker_black_normal, bloodsucker_red_strong, bloodsucker_green_strong, bloodsucker_black_strong ;, bloodsucker_strong_big +npc_in_squad = 1 +common = true + +[simulation_bloodsucker_green_night]:online_offline_group +faction = monster_special +npc_random = bloodsucker_green_weak, bloodsucker_green_normal, bloodsucker_green_normal, bloodsucker_green_normal, bloodsucker_green_normal, bloodsucker_green_strong ;, bloodsucker_strong_big +npc_in_squad = 1 +common = true + +[simulation_bloodsucker_red_night]:online_offline_group +faction = monster_special +npc_random = bloodsucker_red_weak, bloodsucker_red_normal, bloodsucker_red_normal, bloodsucker_red_normal, bloodsucker_red_normal, bloodsucker_red_strong ;, bloodsucker_strong_big +npc_in_squad = 1 +common = true + +[simulation_bloodsucker_black_night]:online_offline_group +faction = monster_special +npc_random = bloodsucker_black_weak, bloodsucker_black_normal, bloodsucker_black_normal, bloodsucker_black_normal, bloodsucker_black_normal, bloodsucker_black_strong ;, bloodsucker_strong_big +npc_in_squad = 1 +common = true + +[simulation_bloodsucker_1_2_night]:online_offline_group +faction = monster_special +npc_random = bloodsucker_red_weak, bloodsucker_green_weak, bloodsucker_black_weak, bloodsucker_red_normal, bloodsucker_green_normal, bloodsucker_black_normal, bloodsucker_red_strong, bloodsucker_green_strong, bloodsucker_black_strong ;, bloodsucker_strong_big +npc_in_squad = 1, 2 +common = true + +[simulation_bloodsucker_2weak_night]:online_offline_group +faction = monster_special +npc_random = bloodsucker_red_weak, bloodsucker_green_weak, bloodsucker_black_weak +npc_in_squad = 2 +common = true + +;------------------------------------------------ +;----< Psy-sucker >-----| +[simulation_psysucker_white_night]:online_offline_group +faction = monster_special +npc_random = psysucker_2_weak, psysucker_3_normal, psysucker_3_strong ;psysucker_1_weak, psysucker_1_normal, psysucker_1_strong +npc_in_squad = 1 +common = true + +[simulation_psysucker_brown_night]:online_offline_group +faction = monster_special +npc_random = psysucker_2_weak, psysucker_2_normal, psysucker_2_strong +npc_in_squad = 1 +common = true + +[simulation_psysucker_black_night]:online_offline_group +faction = monster_special +npc_random = psysucker_3_weak, psysucker_3_normal, psysucker_3_strong +npc_in_squad = 1 +common = true + +[simulation_psysucker_night]:online_offline_group +faction = monster_special +npc_random = psysucker_2_weak, psysucker_2_normal, psysucker_2_strong, psysucker_3_weak, psysucker_3_normal, psysucker_3_strong +npc_in_squad = 1 +common = true + +[simulation_psysucker_1_2_night]:online_offline_group +faction = monster_special +npc_random = psysucker_2_weak, psysucker_2_normal, psysucker_2_strong, psysucker_3_weak, psysucker_3_normal, psysucker_3_strong +npc_in_squad = 1, 2 +common = true + +;------------------------------------------------ +;----< Psy-dog >-----| + +[simulation_psy_dog_night]:online_offline_group +faction = monster_special +npc_random = psy_dog_normal +npc_in_squad = 1, 2 +common = true + +[simulation_psy_dog_squad_night]:online_offline_group +faction = monster_special +npc = psy_dog_normal, dog_normal_red, dog_normal_white, dog_normal_brown, dog_normal_bulterier +common = true + +;------------------------------------------------ +;----< Karlik >-----| + +[simulation_karlik_night]:online_offline_group ;Added +faction = monster_special +npc_random = m_karlik_e +npc_in_squad = 1 +common = true + +;------------------------------------------------ +;----< Burer >-----| + +[simulation_burer_night]:online_offline_group +faction = monster_special +npc_random = burer_normal, burer_normal2, burer_weak, burer_weak2 +npc_in_squad = 1 +common = true + +[simulation_burer_2_3_night]:online_offline_group +faction = monster_special +npc_random = burer_normal, burer_normal2, burer_weak, burer_weak2 +npc_in_squad = 2, 3 +common = true + +[simulation_burer_1_2_day_night]:online_offline_group +faction = monster_special +npc_random = burer_normal, burer_normal2, burer_weak, burer_weak2 +npc_in_squad = 1, 2 +common = true + +[simulation_bur_5rat_day_night]:online_offline_group +faction = monster_special +npc = burer_normal, tushkano_weak, tushkano_weak, tushkano_weak, tushkano_weak, tushkano_weak +;npc = burer_normal, rat_weak, rat_weak, rat_weak, rat_weak, rat_weak +npc_in_squad = 6 +common = true + +;------------------------------------------------ +;----< Controller >-----| + +[simulation_controller_night]:online_offline_group +faction = monster_special +npc_random = m_controller_normal, m_controller_normal2, m_controller_normal1111, m_controller_normal777, m_controller_normal888 +npc_in_squad = 1 +common = true + +[simulation_contr_5rat_3tush_night]:online_offline_group +faction = monster_special +npc = m_controller_normal, tushkano_weak, tushkano_weak, tushkano_weak, tushkano_weak, tushkano_weak, tushkano_weak, tushkano_weak, tushkano_weak +;npc = rat_weak, rat_weak, rat_weak, rat_weak, rat_weak, tushkano_weak, tushkano_weak, tushkano_weak, m_controller_normal +npc_in_squad = 9 +common = true + +[simulation_contr_5dog_night]:online_offline_group +faction = monster_special +npc = dog_weak_red, dog_weak_white, dog_weak_brown, dog_weak_bulterier, dog_strong_red, m_controller_normal +npc_in_squad = 6 +common = true + +[simulation_contr_3dog_4tush_night]:online_offline_group +faction = monster_special +npc = dog_normal_red, dog_normal_brown, dog_normal_brown, tushkano_weak, tushkano_weak, tushkano_weak, tushkano_weak, m_controller_normal +npc_in_squad = 8 +common = true + +[simulation_contr_3sn_3gzomb_night]:online_offline_group +faction = monster_special +npc = snork_weak3, zombie_weak, zombie_weak, zombie_normal, snork_weak, snork_weak2, m_controller_normal +npc_in_squad = 7 +common = true + +[simulation_contr_6gzomb_night]:online_offline_group +faction = monster_special +npc = zombie_weak, zombie_weak, zombie_weak, zombie_normal, zombie_weak, zombie_normal, m_controller_normal +npc_in_squad = 7 +common = true + +[simulation_contr_2sn_4zomb_night]:online_offline_group +faction = monster_special +npc = snork_weak, snork_weak2, sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_2, sim_default_zombied_3, m_controller_normal +npc_in_squad = 7 +common = true + +[simulation_contr_4tush_3sn_night]:online_offline_group +faction = monster_special +npc = tushkano_normal, tushkano_normal, tushkano_normal, tushkano_normal, snork_weak, snork_weak, snork_strong, m_controller_normal +npc_in_squad = 8 +common = true + +[simulation_contr_5zomb_weak_night]:online_offline_group +faction = monster_special +npc = sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_2, m_controller_normal +npc_in_squad = 6 +common = true + +[simulation_contr_4zomb_norm_night]:online_offline_group +faction = monster_special +npc = sim_default_zombied_2, sim_default_zombied_2, sim_default_zombied_1, sim_default_zombied_3, m_controller_normal +npc_in_squad = 5 +common = true + +[simulation_contr_4zomb_str_night]:online_offline_group +faction = monster_special +npc = sim_default_zombied_4, sim_default_zombied_4, sim_default_zombied_2, sim_default_zombied_3, m_controller_normal2 +npc_in_squad = 5 +common = true + +[simulation_contr_5sn_night]:online_offline_group +faction = monster_special +npc = snork_weak, snork_weak, snork_strong, snork_strong, snork_strong, m_controller_normal +npc_in_squad = 6 +common = true + +;------------------------------------------------ +;----< Poltergeist >-----| +; m_poltergeist_normal_black, m_poltergeist_normal_flame +[simulation_poltergeist_tele_night]:online_offline_group +faction = monster_special +npc_random = m_poltergeist_normal_tele +npc_in_squad = 1, 1 +common = true + +[simulation_poltergeist_flame_night]:online_offline_group +faction = monster_special +npc_random = m_poltergeist_normal_flame +npc_in_squad = 1, 1 +common = true + +[simulation_poltergeist_black_night]:online_offline_group +faction = monster_special +npc_random = m_poltergeist_normal_black +npc_in_squad = 1, 1 +common = true + +[simulation_poltergeist_night]:online_offline_group ;added +faction = monster_special +npc_random = m_poltergeist_normal_tele, m_poltergeist_normal_flame, m_poltergeist_normal_black +npc_in_squad = 1, 1 +common = true + +;------------------------------------------------ +;----< Psy-Controller >-----| + +[simulation_controller_psy_night]:online_offline_group +faction = monster_special +npc_random = m_controller_psy +npc_in_squad = 1 +common = true + +;------------------------------------------------ +;----< Chimera >-----| + +[simulation_chimera_night]:online_offline_group +faction = monster_special +npc_random = chimera_normal, chimera_weak, chimera_strong, chimera_normal2, chimera_normal3, chimera_strong2, chimera_strong3, chimera_strong4 +npc_in_squad = 1 +common = true + +[simulation_chimera_2weak_night]:online_offline_group +faction = monster_special +npc_random = chimera_weak +npc_in_squad = 2 +common = true + +[simulation_chimera_zaton_night]:online_offline_group +faction = monster_special +npc_random = chimera_normal +npc_in_squad = 1, 1 +target_smart = {=is_dark_night} nil, {~50} zat_sim_5, {~50} zat_sim_3, {~50} zat_sim_1, {~50} zat_sim_18, {~50} zat_sim_10, {~50} zat_sim_7, zat_sim_26 +common = true + +[simulation_chimera_pripyat_night]:online_offline_group +faction = monster_special +npc_random = chimera_normal +npc_in_squad = 1, 1 +target_smart = {=is_dark_night} nil, pri_a17 +common = true + +[simulation_chimera_jupiter_night]:online_offline_group +faction = monster_special +npc_random = chimera_normal +npc_in_squad = 1, 1 +common = true + +;------------------------------------------------ +;----< Giant >-----| + +[simulation_gigant_night]:online_offline_group +faction = monster_special +npc_random = gigant_normal, gigant_strong +npc_in_squad = 1 +common = true + +[simulation_gigant_2weak_night]:online_offline_group +faction = monster_special +npc_random = gigant_weak +npc_in_squad = 2 +common = true + +;------------------------------------------------ +;----< Borya >-----| + +[simulation_borya_night]:online_offline_group +faction = monster_special +npc_random = borya_normal +npc_in_squad = 1, 3 +common = true + +;------------------------------------------------ +;----< Bibliotekar >-----| + +[simulation_bibliotekar_night]:online_offline_group +faction = monster_special +npc_random = bibliotekar_weak, bibliotekar_strong +npc_in_squad = 1, 1 +common = true + +;------------------------------------------------ +;----< Poltergiest build >-----| + +[simulation_polter_build_night]:online_offline_group +faction = monster_special +npc_random = poltergeist_build +npc_in_squad = 1, 2 +common = true \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_AGR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_AGR.ltx new file mode 100644 index 00000000..d9dc3383 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_AGR.ltx @@ -0,0 +1,57 @@ +![agr_1_6_guards_army_mlr_squad]:online_offline_group +faction = army +npc = sim_default_military_0, sim_default_military_0, sim_default_military_1, sim_default_military_2, sim_default_military_2 +!npc_in_squad = 6, 6 +target_smart = agr_smart_terrain_1_6 +story_id = agr_1_6_guards_army_mlr_squad + +[agr_1_6_guards_army_mlr_2_squad]:online_offline_group +faction = army +npc = sim_default_military_0, sim_default_military_1, sim_default_military_1, sim_default_military_2 +target_smart = agr_smart_terrain_1_6_near_1 +story_id = agr_1_6_guards_army_mlr_2_squad + +[agr_1_6_guards_army_mlr_3_squad]:online_offline_group +faction = army +npc = sim_default_military_0, sim_default_military_0, sim_default_military_1, sim_default_military_3, sim_default_military_4 +target_smart = agr_smart_terrain_1_6_near_2 +story_id = agr_1_6_guards_army_mlr_3_squad + +[agr_patrol_army_mlr_squad]:online_offline_group +faction = army +npc = sim_default_military_2, sim_default_military_2 +target_smart = agr_smart_terrain_1_6_near_1 +story_id = agr_patrol_army_mlr_squad + +;------------------------------------------------------------------------- + +[agr_smart_terrain_4_4_rat_mlr_squad]:online_offline_group +faction = monster +npc_random = rat_weak, rat_normal, rat_strong, rat_wolf, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak +npc_in_squad = 4, 6 +target_smart = agr_smart_terrain_4_4 + +;------------------------------------------------------------------------- + +![agr_u_soldiers_squad]:online_offline_group +faction = army +npc = sim_default_military_2, sim_default_military_2, sim_default_military_3, sim_default_military_2, sim_default_military_2, sim_default_military_4, sim_default_military_0, sim_default_military_1 +target_smart = agr_u_soldiers +!on_death = %+agr_u_soldiers_dead% +story_id = agr_u_soldiers_squad + +[agr_u_bandits_soldiers_squad]:online_offline_group +faction = army +npc = sim_default_military_0, sim_default_military_1, sim_default_military_1, sim_default_military_2, sim_default_military_2, sim_default_military_2 +target_smart = agr_u_bandits +story_id = agr_u_bandits_soldiers_squad + +[agr_u_monster_soldiers_squad]:online_offline_group +faction = army +npc = sim_default_military_0, sim_default_military_0 +spawn_point = agr_u_monsters_spawn_point +target_smart = agr_u_monsters +story_id = agr_u_monster_soldiers_squad + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_BAR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_BAR.ltx new file mode 100644 index 00000000..fde7db29 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_BAR.ltx @@ -0,0 +1,106 @@ +![bar_dolg_general_squad]:online_offline_group +faction = dolg +npc = sim_default_duty_2, sim_default_duty_1, sim_default_duty_0, sim_default_duty_0 +npc_in_squad = 4 +target_smart = bar_dolg_general +always_arrived = true + +![bar_dolg_bunker_squad]:online_offline_group +faction = dolg +npc_random = sim_default_duty_4, sim_default_duty_4, sim_default_duty_4, sim_default_duty_3, sim_default_duty_3, sim_default_duty_3 +npc_in_squad = 6, 6 +target_smart = bar_dolg_bunker +always_arrived = true + +[bar_dolg_sick_stalker_squad]:online_offline_group +faction = dolg +npc = sim_default_duty_1 +npc_in_squad = 1 +target_smart = bar_dolg_general +always_arrived = true + +[bar_duty_medic_stalker_squad]:online_offline_group +faction = dolg +npc = bodyguard_duty_medic_bar_general +npc_in_squad = 1 +target_smart = bar_dolg_general +always_arrived = true + +;------------------------------------------------------------------------ + +[bar_freedom_general_squad]:online_offline_group +faction = freedom +npc = sim_default_freedom_0, sim_default_freedom_1, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_2 +target_smart = bar_dolg_general +story_id = bar_freedom_general_squad +always_arrived = true + +[bar_freedom_bunker_squad]:online_offline_group +faction = freedom +npc = sim_default_freedom_0, sim_default_freedom_1, sim_default_freedom_2, sim_default_freedom_2 +target_smart = bar_dolg_bunker +story_id = bar_freedom_bunker_squad +always_arrived = true + +[bar_freedom_security_squad]:online_offline_group +faction = freedom +npc = sim_default_freedom_1, sim_default_freedom_1, sim_default_freedom_1, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_3, sim_default_freedom_4 +target_smart = bar_zastava +story_id = bar_freedom_security_squad +always_arrived = true + +[bar_freedom_guard_squad]:online_offline_group +faction = freedom +npc = sim_default_freedom_1, sim_default_freedom_1, sim_default_freedom_1, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_3 +target_smart = bar_zastava_2 +story_id = bar_freedom_guard_squad +always_arrived = true + +[bar_freedom_visitors_squad]:online_offline_group +faction = freedom +npc = sim_default_freedom_0, sim_default_freedom_0, sim_default_freedom_1, sim_default_freedom_1 +target_smart = bar_visitors +story_id = bar_freedom_visitors_squad +always_arrived = true + +;------------------------------------------------------------------------ + +[bar_mlr_1_visitors]:online_offline_group +faction = stalker +npc = sim_default_stalker_2 +npc_in_squad = 1 +target_smart = bar_visitors + +[bar_mlr_2_visitors]:online_offline_group +faction = csky +npc = sim_default_csky_2 +npc_in_squad = 1 +target_smart = bar_visitors + +[bar_mlr_3_visitors]:online_offline_group +faction = ecolog +npc = sim_default_ecolog_2 +npc_in_squad = 1 +target_smart = bar_visitors + +;------------------------------------------------------------------------ + +[bar_bandit_zastava_dogs_lair_2_squad]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_0, sim_default_bandit_0, sim_default_bandit_0, sim_default_bandit_1, sim_default_bandit_1, sim_default_bandit_2 +npc_in_squad = 3, 3 +target_smart = bar_zastava_dogs_lair_2 + +;------------------------------------------------------------------------ + +[bar_dolg_general_squad_rat_mlr_squad]:online_offline_group +faction = monster +npc_random = rat_weak, rat_normal, rat_strong, rat_wolf, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak +npc_in_squad = 2, 4 +target_smart = bar_dolg_general + +[bar_dolg_bunker_squad_rat_mlr_squad]:online_offline_group +faction = monster +npc_random = rat_weak, rat_normal, rat_strong, rat_wolf, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak +npc_in_squad = 2, 4 +target_smart = bar_dolg_bunker diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_CIT.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_CIT.ltx new file mode 100644 index 00000000..25013666 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_CIT.ltx @@ -0,0 +1,69 @@ + +[cit_bandit_guard_squad_1]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_0, sim_default_bandit_1, sim_default_bandit_1, sim_default_bandit_2, sim_default_bandit_3 +npc_in_squad = 2, 2 +target_smart = cit_killers_vs_bandits + +[cit_bandit_guard_squad_2]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_0, sim_default_bandit_1, sim_default_bandit_1, sim_default_bandit_2, sim_default_bandit_2 +npc_in_squad = 2, 2 +target_smart = cit_killers_vs_bandits + +[cit_bandit_guard_squad_3]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_0, sim_default_bandit_1, sim_default_bandit_1, sim_default_bandit_2, sim_default_bandit_2 +npc_in_squad = 2, 2 +target_smart = cit_killers_vs_bandits + +;------------------------------------------------------------------------ + +[cit_killers_guard_squad_1]:online_offline_group +faction = killer +npc_random = sim_default_killer_1, sim_default_killer_2, sim_default_killer_2, sim_default_killer_2, sim_default_killer_2, sim_default_killer_3 +npc_in_squad = 2, 2 +target_smart = cit_killers_vs_bandits +always_arrived = true + +[cit_killers_guard_squad_2]:online_offline_group +faction = killer +npc_random = sim_default_killer_1, sim_default_killer_1, sim_default_killer_2, sim_default_killer_2, sim_default_killer_2, sim_default_killer_2 +npc_in_squad = 2, 2 +target_smart = cit_killers_vs_bandits +always_arrived = true + +[cit_killers_merc_guard_squad_3]:online_offline_group +faction = killer +npc = sim_default_killer_3, sim_default_killer_3, sim_default_killer_3, sim_default_killer_3 +target_smart = cit_killers +always_arrived = true + +;------------------------------------------------------------------------ + +[cit_kanaliz1_zombied_squad]:online_offline_group +faction = zombied +npc_random = sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_2, sim_default_zombied_2, sim_default_zombied_2, sim_default_zombied_3, sim_default_zombied_4 +npc_in_squad = 3, 4 +target_smart = cit_kanaliz1 + +[cit_kanaliz2_zombied_squad]:online_offline_group +faction = zombied +npc_random = sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_2, sim_default_zombied_2, sim_default_zombied_2, sim_default_zombied_3, sim_default_zombied_4 +npc_in_squad = 3, 4 +target_smart = cit_kanaliz2 + +;------------------------------------------------------------------------ + +[cit_bandits_poltergeist_squad]:online_offline_group +faction = monster_special +npc = m_poltergeist_normal_tele, m_poltergeist_normal_tele +target_smart = cit_bandits + +;------------------------------------------------------------------------ + +[cit_killers_2_rat_mlr_squad]:online_offline_group +faction = monster +npc_random = rat_weak, rat_normal, rat_strong, rat_wolf, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak +npc_in_squad = 2, 4 +target_smart = cit_killers_2 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_DS.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_DS.ltx new file mode 100644 index 00000000..2697456b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_DS.ltx @@ -0,0 +1,59 @@ +[ds_ptr4_stalker_mlr_2_squad]:online_offline_group +faction = stalker +npc_random = sim_default_stalker_0, sim_default_stalker_1, sim_default_stalker_1, sim_default_stalker_2 +npc_in_squad = 1, 4 +target_smart = ds_ptr4 + +[ds_ptr4_killer_mlr_2_squad]:online_offline_group +faction = killer +npc_random = sim_default_killer_1, sim_default_killer_1, sim_default_killer_1, sim_default_killer_2 +npc_in_squad = 2, 4 +target_smart = ds_ptr4 + +[ds_ptr4_csky_mlr_2_squad]:online_offline_group +faction = csky +npc_random = sim_default_csky_0, sim_default_csky_1, sim_default_csky_1, sim_default_csky_2, sim_default_csky_2 +npc_in_squad = 2, 4 +target_smart = ds_ptr4 + +[ds_ptr4_bandit_mlr_2_squad]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_0, sim_default_bandit_1, sim_default_bandit_2 +npc_in_squad = 2, 3 +target_smart = ds_ptr4 + +[ds_ptr4_renegade_mlr_2_squad]:online_offline_group +faction = renegade +npc_random = sim_default_renegade_0, sim_default_renegade_1, sim_default_renegade_2 +npc_in_squad = 2, 3 +target_smart = ds_ptr4 + +[ds_ptr4_army_mlr_2_squad]:online_offline_group +faction = army +npc_random = sim_default_military_0, sim_default_military_1, sim_default_military_2 +npc_in_squad = 2, 3 +target_smart = ds_ptr4 + +;------------------------------------------------------------------------ + +[ds_kem2_military_mlr_2_squad]:online_offline_group +faction = army +npc_random = sim_default_military_0, sim_default_military_0, sim_default_military_1, sim_default_military_1, sim_default_military_2 +npc_in_squad = 4, 4 +target_smart = ds_kem2 +always_arrived = true + +[ds_kem2_military_mlr_2_sniper]:online_offline_group +faction = army +npc = sim_default_military_3_sniper, sim_default_military_3_sniper +npc_in_squad = 2, 2 +target_smart = ds_kem2 +always_arrived = true + +;------------------------------------------------------------------------ + +[ds_ds2_lager_st_isg_squad]:online_offline_group +faction = isg +npc = sim_default_isg_1, sim_default_isg_1, sim_default_isg_1, sim_default_isg_2, sim_default_isg_2 +target_smart = ds2_lager_st +always_arrived = true diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_ESC.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_ESC.ltx new file mode 100644 index 00000000..7388d7ac --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_ESC.ltx @@ -0,0 +1,97 @@ +![escape_novice_visiters_village]:online_offline_group +faction = stalker +npc = sim_default_stalker_0, sim_default_stalker_0, sim_default_stalker_0, sim_default_stalker_0 +npc_in_squad = 4, 4 +target_smart = esc_smart_terrain_2_12 + +![escape_novice_visiters_village2]:online_offline_group +faction = stalker +npc = sim_default_stalker_0, sim_default_stalker_0, sim_default_stalker_0, sim_default_stalker_0 +npc_in_squad = 4, 4 +target_smart = esc_smart_terrain_2_12 + +;------------------------------------------------------------------------ + +![esc_smart_terrain_3_16_military_mlr_squad]:online_offline_group +faction = army +npc_random = sim_default_military_0, sim_default_military_0, sim_default_military_1, sim_default_military_1, sim_default_military_2, sim_default_military_2, sim_default_military_2, sim_default_military_2 +npc_in_squad = 4, 4 +target_smart = esc_smart_terrain_3_16 +always_arrived = true + +![esc_smart_terrain_3_16_military_mlr_patrol]:online_offline_group +faction = army +npc_random = sim_default_military_0, sim_default_military_1, sim_default_military_1, sim_default_military_2 +npc_in_squad = 4, 4 +target_smart = esc_smart_terrain_3_16 +always_arrived = true + +![karat_army_esc_smart_terrain_2_12]:online_offline_group +faction = army +npc = sim_default_military_1, sim_default_military_2, sim_default_military_2, sim_default_military_2, sim_default_military_2, sim_default_military_3, sim_default_military_3, sim_default_military_3, sim_default_military_3 +target_smart = esc_smart_terrain_5_2 +always_arrived = true + +![most_army_esc_smart_terrain_6_8]:online_offline_group +faction = army +npc = sim_default_military_1, sim_default_military_1, sim_default_military_2, sim_default_military_2, sim_default_military_2, sim_default_military_3 +npc_in_squad = 6, 6 +target_smart = esc_smart_terrain_6_8 +always_arrived = true + +[kpp_army_mlr_esc_smart_terrain_3_16]:online_offline_group +faction = army +npc = sim_default_military_0, sim_default_military_0, sim_default_military_0, sim_default_military_1, sim_default_military_2, sim_default_military_2 +npc_in_squad = 6, 6 +target_smart = esc_smart_terrain_3_16 +always_arrived = true + +;------------------------------------------------------------------------ + +![atp_bandit_esc_smart_terrain_7_11]:online_offline_group +faction = bandit +npc = sim_default_bandit_0, sim_default_bandit_0, sim_default_bandit_0, sim_default_bandit_1, sim_default_bandit_1, sim_default_bandit_2, sim_default_bandit_2 +!npc_in_squad = 7, 7 +target_smart = esc_smart_terrain_7_11 +always_arrived = true + +[esc_bandit_smart_terrain_3_7_squad]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_0, sim_default_bandit_0, sim_default_bandit_0, sim_default_bandit_1, sim_default_bandit_1, sim_default_bandit_2 +npc_in_squad = 2, 3 +target_smart = esc_smart_terrain_3_7 + +;------------------------------------------------------------------------ + +[esc_renegade_smart_terrain_3_7_squad]:online_offline_group +faction = renegade +npc_random = sim_default_renegade_0, sim_default_renegade_0, sim_default_renegade_0, sim_default_renegade_1, sim_default_renegade_1 +npc_in_squad = 2, 3 +target_smart = esc_smart_terrain_3_7 + +;------------------------------------------------------------------------ + +[esc_monster_smart_terrain_3_7_squad]:online_offline_group +faction = monster_vegetarian +npc_random = flesh_01a_weak, flesh_01a_normal, flesh_01a_strong, flesh_02a_weak, flesh_02a_normal, flesh_02a_strong, flesh_03a_normal, flesh_03a_strong, boar_normal, boar_normal, boar_normal, boar_strong, boar_01a_weak, boar_02a_weak, boar_02a_strong, boar_01a_hard, boar_02a_hard +npc_in_squad = 2, 4 +target_smart = esc_smart_terrain_3_7 + +[esc_monster_smart_terrain_3_7_squad2]:online_offline_group +faction = monster_predatory_day +npc_random = dog_normal_brown, pseudodog_grey_weak, pseudodog_normal, pseudodog_strong, pseudodog_grey_strong, dog_normal_red, dog_normal_white, dog_normal_brown, dog_normal_bulterier, dog_weak_red, dog_weak_white, dog_weak_brown, dog_weak_bulterier, dog_strong_red, dog_strong_white, dog_strong_brown, dog_strong_bulterier, dog_strong_black, dog_weak_bulterier, dog_weak_brown, dog_weak_brown +npc_in_squad = 2, 4 +target_smart = esc_smart_terrain_3_7 + +[esc_monster_smart_terrain_3_7_squad3]:online_offline_group +faction = monster +npc_random = cat_weak_a, cat_weak_b, cat_weak_c, cat_weak_d, cat_weak_e, cat_normal_a, cat_normal_b, cat_normal_c, cat_normal_d, cat_normal_e, cat_strong_a, cat_strong_b, cat_strong_c, cat_strong_d, cat_strong_e +npc_in_squad = 2, 4 +target_smart = esc_smart_terrain_3_7 + +[esc_smart_terrain_2_14_rat_mlr_squad]:online_offline_group +faction = monster +npc_random = rat_weak, rat_normal, rat_strong, rat_wolf, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak +npc_in_squad = 5, 7 +target_smart = esc_smart_terrain_2_14 +always_arrived = true diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_GAR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_GAR.ltx new file mode 100644 index 00000000..55c4591c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_GAR.ltx @@ -0,0 +1,42 @@ +[start_character_hangar_mlr_squad]:online_offline_group +faction = stalker +npc = sim_default_stalker_3 +target_smart = gar_smart_terrain_3_5 +story_id = start_character_hangar_mlr_squad +always_arrived = true + +![start_visitirs_hangar_mlr_squad]:online_offline_group +faction = stalker +npc = sim_default_stalker_1, sim_default_stalker_1 +target_smart = gar_smart_terrain_3_5 +always_arrived = true + +![start_depo_bandit_gar_smart_terrain_3_5]:online_offline_group +faction = bandit +npc = sim_default_bandit_0, sim_default_bandit_1, sim_default_bandit_1, sim_default_bandit_1, sim_default_bandit_2, sim_default_bandit_2 +target_smart = gar_smart_terrain_3_5 +always_arrived = true + +[start_depo_army_gar_smart_terrain_3_5]:online_offline_group +faction = army +npc = sim_default_military_0, sim_default_military_0, sim_default_military_1, sim_default_military_1, sim_default_military_2, sim_default_military_2 +target_smart = gar_smart_terrain_3_5 +always_arrived = true + +;------------------------------------------------------------------------ + +![stalker_sim_dolg_post]:online_offline_group +faction = dolg +npc = sim_default_duty_2, sim_default_duty_1, sim_default_duty_1, sim_default_duty_3 +target_smart = gar_smart_terrain_5_2 +always_arrived = true + +;------------------------------------------------------------------------ + +![stalker_gar_smart_terrain_6_3]:online_offline_group +faction = stalker +npc_random = sim_default_stalker_0, sim_default_stalker_0, sim_default_stalker_0, sim_default_stalker_1, sim_default_stalker_2 +npc_in_squad = 2, 2 +target_smart = gar_smart_terrain_6_3 +always_arrived = true + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_MAR.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_MAR.ltx new file mode 100644 index 00000000..b8359c67 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_MAR.ltx @@ -0,0 +1,153 @@ +![mar_smart_terrain_base_lager_squad]:online_offline_group +faction = csky +npc = sim_default_csky_0, sim_default_csky_0, sim_default_csky_1, sim_default_csky_1, sim_default_csky_2, sim_default_csky_2, sim_default_csky_3 +target_smart = mar_smart_terrain_base +story_id = mar_smart_terrain_base_lager_squad +always_arrived = true + +[camp_csky_mar_smart_terrain_5_12]:online_offline_group +faction = csky +npc_random = sim_default_csky_0, sim_default_csky_0, sim_default_csky_0, sim_default_csky_1, sim_default_csky_1, sim_default_csky_1, sim_default_csky_2 +npc_in_squad = 3, 3 +target_smart = mar_smart_terrain_5_12 + +[pump_csky_mar_smart_terrain_5_8]:online_offline_group +faction = csky +npc_random = sim_default_csky_0, sim_default_csky_0, sim_default_csky_0, sim_default_csky_1, sim_default_csky_1, sim_default_csky_1, sim_default_csky_2 +npc_in_squad = 4, 4 +target_smart = mar_smart_terrain_5_8 + +[mar_smart_terrain_3_3_csky_squad]:online_offline_group +faction = csky +npc_random = sim_default_csky_0, sim_default_csky_1, sim_default_csky_1, sim_default_csky_1, sim_default_csky_2, sim_default_csky_2 +npc_in_squad = 4, 4 +target_smart = mar_smart_terrain_3_3 + +[mar_smart_terrain_4_5_csky_squad]:online_offline_group +faction = csky +npc_random = sim_default_csky_0, sim_default_csky_1, sim_default_csky_1, sim_default_csky_1, sim_default_csky_2, sim_default_csky_2 +npc_in_squad = 5, 5 +target_smart = mar_smart_terrain_4_5 + +;------------------------------------------------------------------------ + +[ecolog_mar_smart_terrain_8_11]:online_offline_group +faction = ecolog +npc_random = sim_default_ecolog_0,sim_default_ecolog_1, sim_default_ecolog_2 +npc_in_squad = 3, 3 +target_smart = mar_smart_terrain_8_11 + +;------------------------------------------------------------------------ + +[mar_smart_terrain_base_army_squad]:online_offline_group +faction = army +npc = sim_default_military_0, sim_default_military_1, sim_default_military_1, sim_default_military_2, sim_default_military_2, sim_default_military_3 +target_smart = mar_smart_terrain_base +story_id = mar_smart_terrain_base_lager_squad +always_arrived = true + +[camp_army_mar_smart_terrain_5_12]:online_offline_group +faction = army +npc_random = sim_default_military_0, sim_default_military_1, sim_default_military_1, sim_default_military_2, sim_default_military_2 +npc_in_squad = 5, 5 +target_smart = mar_smart_terrain_5_12 + +[tower_army_mar_smart_terrain_6_11]:online_offline_group +faction = army +npc_random = sim_default_military_1, sim_default_military_2 +npc_in_squad = 3, 4 +target_smart = mar_smart_terrain_6_11 + +[mar_smart_terrain_3_3_army_squad]:online_offline_group +faction = army +npc_random = sim_default_military_0, sim_default_military_1, sim_default_military_1, sim_default_military_2, sim_default_military_2 +npc_in_squad = 4, 4 +target_smart = mar_smart_terrain_3_3 + +[mar_smart_terrain_4_5_army_squad]:online_offline_group +faction = army +npc_random = sim_default_military_0, sim_default_military_1, sim_default_military_1, sim_default_military_2, sim_default_military_2 +npc_in_squad = 5, 5 +target_smart = mar_smart_terrain_4_5 + +[mar_smart_terrain_10_5_army_squad]:online_offline_group +faction = army +npc = sim_default_military_0, sim_default_military_0, sim_default_military_1 +target_smart = mar_smart_terrain_10_5 +story_id = mar_smart_terrain_10_5_army_squad + +[mar_smart_terrain_12_2_army_squad]:online_offline_group +faction = army +npc = sim_default_military_0, sim_default_military_0, sim_default_military_1, sim_default_military_1 +target_smart = mar_smart_terrain_12_2 +story_id = mar_smart_terrain_12_2_army_squad + +;------------------------------------------------------------------------ + +[mar_smart_terrain_3_3_renegade_squad]:online_offline_group +faction = renegade +npc_random = sim_default_renegade_0, sim_default_renegade_0, sim_default_renegade_1, sim_default_renegade_1, sim_default_renegade_2 +npc_in_squad = 3, 3 +target_smart = mar_smart_terrain_3_3 + +[mar_smart_terrain_4_5_renegade_squad]:online_offline_group +faction = renegade +npc_random = sim_default_renegade_0, sim_default_renegade_0,sim_default_renegade_1, sim_default_renegade_1 +npc_in_squad = 3, 3 +target_smart = mar_smart_terrain_4_5 + +[renegade_guard_mar_smart_terrain_3_3]:online_offline_group +faction = renegade +npc = sim_default_renegade_1 +target_smart = mar_smart_terrain_3_3 + +[mar_renegade_guard_patrol_squad]:online_offline_group +faction = renegade +npc_random = sim_default_renegade_0, sim_default_renegade_1, sim_default_renegade_0, sim_default_renegade_1, sim_default_renegade_2 +npc_in_squad = 3, 3 +target_smart = mar_smart_terrain_4_5 + +[mar_smart_terrain_base_renegade_squad]:online_offline_group +faction = renegade +npc = sim_default_renegade_0, sim_default_renegade_1, sim_default_renegade_0, sim_default_renegade_1, sim_default_renegade_0, sim_default_renegade_1 +target_smart = mar_smart_terrain_base +story_id = mar_smart_terrain_base_lager_squad +always_arrived = true + +[camp_renegade_mar_smart_terrain_5_12]:online_offline_group +faction = renegade +npc_random = sim_default_renegade_0, sim_default_renegade_1, sim_default_renegade_0, sim_default_renegade_1, sim_default_renegade_2 +npc_in_squad = 5, 5 +target_smart = mar_smart_terrain_5_12 + +[tower_renegade_mar_smart_terrain_6_11]:online_offline_group +faction = renegade +npc_random = sim_default_renegade_1, sim_default_renegade_2 +npc_in_squad = 3, 4 +target_smart = mar_smart_terrain_6_11 + +[mar_renegade_trader_squad]:online_offline_group +faction = renegade +npc = mar_renegade_trader +npc_in_squad = 1, 1 +always_arrived = true +target_smart = mar_smart_terrain_3_3 +story_id = mar_renegade_trader_squad +always_arrived = true + +[mar_renegade_mechanic_squad]:online_offline_group +faction = renegade +npc = mar_renegade_mechanic +npc_in_squad = 1, 1 +target_smart = mar_smart_terrain_4_5 +story_id = mar_renegade_mechanic_squad +always_arrived = true + +;------------------------------------------------------------------------ + +[mar_rat_squad_smart_terrain_6_4_squad]:online_offline_group +faction = monster_predatory_day +npc_random = rat_weak, rat_normal, rat_strong, rat_wolf, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_normal, rat_strong, rat_wolf, rat_weak, rat_weak, rat_normal, rat_normal, rat_wolf, rat_wolf, rat_wolf, rat_wolf, rat_normal, rat_normal, rat_normal +npc_in_squad = 4, 6 +target_smart = mar_smart_terrain_6_4 + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_MIL.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_MIL.ltx new file mode 100644 index 00000000..3e676f93 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_MIL.ltx @@ -0,0 +1,143 @@ +![mil_7_7_protect_mlr_squad]:online_offline_group +faction = freedom +npc = sim_default_freedom_3, sim_default_freedom_3, sim_default_freedom_3, sim_default_freedom_3 +target_smart = mil_smart_terrain_7_7 +story_id = mil_7_7_protect_mlr_squad + +[mil_freedom_smart_terrain_7_8_squad]:online_offline_group +faction = freedom +npc = sim_default_freedom_1, sim_default_freedom_1, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_3 +target_smart = mil_smart_terrain_7_8 +story_id = mil_freedom_smart_terrain_7_8_squad + +[mil_freedom_smart_terrain_7_10_squad]:online_offline_group +faction = freedom +npc = sim_default_freedom_0, sim_default_freedom_0, sim_default_freedom_0, sim_default_freedom_1, sim_default_freedom_1 +target_smart = mil_smart_terrain_7_10 +story_id = mil_freedom_smart_terrain_7_10_squad + +[mil_freedom_smart_terrain_7_12_squad]:online_offline_group +faction = freedom +npc = sim_default_freedom_0, sim_default_freedom_0, sim_default_freedom_1, sim_default_freedom_1, sim_default_freedom_1 +target_smart = mil_smart_terrain_7_12 +story_id = mil_freedom_smart_terrain_7_12_squad + +[mil_freedom_smart_terrain_3_8_squad]:online_offline_group +faction = freedom +npc = sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_3 +target_smart = mil_smart_terrain_3_8 +story_id = mil_freedom_smart_terrain_3_8_squad + +[mil_freedom_terrain_7_4_outpost_squad]:online_offline_group +faction = freedom +npc = sim_default_freedom_0, sim_default_freedom_1, sim_default_freedom_2, sim_default_freedom_2 +target_smart = mil_smart_terrain_7_4 + +;------------------------------------------------------------------------ + +[mil_duty_terrain_7_4_outpost_squad]:online_offline_group +faction = dolg +npc = sim_default_duty_2, sim_default_duty_2, sim_default_duty_2, sim_default_duty_3 +target_smart = mil_smart_terrain_7_4 + +;------------------------------------------------------------------------ + +[mil_merc_terrain_2_2_outpost_squad]:online_offline_group +faction = killer +npc = sim_default_killer_2, sim_default_killer_3 +target_smart = mil_smart_terrain_2_2 + +[mil_merc_terrain_2_2_outpost_squad2]:online_offline_group +faction = killer +npc = sim_default_killer_2, sim_default_killer_3 +target_smart = mil_smart_terrain_2_2 + +;------------------------------------------------------------------------ + +[mil_monolith_entrance_7_8_squad]:online_offline_group +faction = monolith +npc = sim_monolith_specnaz_rg6, sim_monolith_specnaz_rg6, sim_monolith_specnaz_rg6, sim_monolith_specnaz_rg6, sim_monolith_sniper, sim_monolith_sniper +target_smart = mil_smart_terrain_7_8 +story_id = mil_monolith_entrance_7_8_squad + +[mil_monolith_warehouse_7_7_squad]:online_offline_group +faction = monolith +npc = sim_default_monolith_1, sim_default_monolith_2, sim_default_monolith_2, sim_default_monolith_3, sim_default_monolith_3, sim_default_monolith_4 +target_smart = mil_smart_terrain_7_7 +story_id = mil_monolith_warehouse_7_7_squad + +[mil_monolith_warehouse_7_10_squad]:online_offline_group +faction = monolith +npc = sim_default_monolith_1, sim_default_monolith_1, sim_default_monolith_2, sim_default_monolith_2, sim_default_monolith_2, sim_default_monolith_2 +target_smart = mil_smart_terrain_7_10 +story_id = mil_monolith_warehouse_7_10_squad + +[mil_monolith_warehouse_7_12_squad]:online_offline_group +faction = monolith +npc = sim_default_monolith_1, sim_default_monolith_1, sim_default_monolith_2 +target_smart = mil_smart_terrain_7_12 +story_id = mil_monolith_warehouse_7_12_squad + +;------------------------------------------------------------------------ + +[mil_duty_entrance_7_8_squad]:online_offline_group +faction = dolg +npc = sim_default_duty_2, sim_default_duty_2, sim_default_duty_2, sim_default_duty_3 +target_smart = mil_smart_terrain_7_8 +story_id = mil_duty_entrance_7_8_squad + +[mil_duty_warehouse_7_7_squad]:online_offline_group +faction = dolg +npc = sim_default_duty_2, sim_default_duty_2, sim_default_duty_2, sim_default_duty_3, sim_default_monolith_2 +target_smart = mil_smart_terrain_7_7 +story_id = mil_duty_warehouse_7_7_squad + +[mil_duty_warehouse_7_10_squad]:online_offline_group +faction = dolg +npc = sim_default_duty_1, sim_default_duty_1, sim_default_duty_2 +target_smart = mil_smart_terrain_7_10 +story_id = mil_duty_warehouse_7_10_squad + +[mil_duty_warehouse_7_12_squad]:online_offline_group +faction = dolg +npc = sim_default_duty_1, sim_default_duty_1, sim_default_duty_2, sim_default_duty_2 +target_smart = mil_smart_terrain_7_12 +story_id = mil_duty_warehouse_7_12_squad + +[mil_duty_smart_terrain_3_8_squad]:online_offline_group +faction = dolg +npc = sim_default_duty_2, sim_default_duty_2, sim_default_duty_2, sim_default_duty_2, sim_default_duty_2, sim_default_duty_3 +target_smart = mil_smart_terrain_3_8 +story_id = mil_duty_smart_terrain_3_8_squad + +;------------------------------------------------------------------------ + +[mil_army_entrance_7_8_squad]:online_offline_group +faction = army +npc = sim_default_military_2, sim_default_military_2, sim_default_military_2, sim_default_military_3 +target_smart = mil_smart_terrain_7_8 +story_id = mil_army_entrance_7_8_squad + +[mil_army_warehouse_7_7_squad]:online_offline_group +faction = army +npc = sim_default_military_0, sim_default_military_0, sim_default_military_1, sim_default_military_1, sim_default_military_2 ,sim_default_military_2, sim_default_military_2 +target_smart = mil_smart_terrain_7_7 +story_id = mil_army_warehouse_7_7_squad + +[mil_army_warehouse_7_10_squad]:online_offline_group +faction = army +npc = sim_default_military_0, sim_default_military_0, sim_default_military_1 +target_smart = mil_smart_terrain_7_10 +story_id = mil_army_warehouse_7_10_squad + +[mil_army_warehouse_7_12_squad]:online_offline_group +faction = army +npc = sim_default_military_0, sim_default_military_0, sim_default_military_0, sim_default_military_0, sim_default_military_1 +target_smart = mil_smart_terrain_7_12 +story_id = mil_army_warehouse_7_12_squad + +[mil_army_smart_terrain_3_8_squad]:online_offline_group +faction = army +npc = sim_default_military_2, sim_default_military_2, sim_default_military_2, sim_default_military_2, sim_default_military_3 +target_smart = mil_smart_terrain_3_8 +story_id = mil_army_warehouse_3_8_squad diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_POL.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_POL.ltx new file mode 100644 index 00000000..9b2b1dea --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_POL.ltx @@ -0,0 +1,123 @@ +[pol_smart_terrain_1_1_mlr_squad]:online_offline_group +faction = stalker +npc = sim_default_stalker_1, sim_default_stalker_2 +npc_in_squad = 2, 2 +target_smart = pol_smart_terrain_1_1 + +;------------------------------------------------------------------------ + +[pol_smart_terrain_1_2_mlr_squad]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_1,sim_default_bandit_1, sim_default_bandit_2, sim_default_bandit_0, sim_default_bandit_0 +npc_in_squad = 4, 4 +target_smart = pol_smart_terrain_1_2 + +![pol_smart_terrain_1_3_squad]:online_offline_group +faction = bandit +npc = sim_default_bandit_0, sim_default_bandit_1, sim_default_bandit_2 +target_smart = pol_smart_terrain_1_3 +story_id= pol_smart_terrain_1_3_squad + +;------------------------------------------------------------------------ + +[pol_renegade_squad]:online_offline_group +faction = renegade +npc_random = sim_default_renegade_0 +npc_in_squad = 1, 1 +target_smart = pol_smart_terrain_2_2 + +[pol_renegade_squad2]:online_offline_group +faction = renegade +npc_random = sim_default_renegade_0 +npc_in_squad = 1, 1 +target_smart = pol_smart_terrain_2_2 + +[pol_renegade_squad3]:online_offline_group +faction = renegade +npc_random = sim_default_renegade_0, sim_default_renegade_1 +npc_in_squad = 1, 1 +target_smart = pol_sim_1 + +[pol_renegade_guard1]:online_offline_group +faction = renegade +npc = sim_default_renegade_0, sim_default_renegade_0, sim_default_renegade_0 +npc_in_squad = 3, 3 +target_smart = pol_smart_terrain_2_1 + +[pol_renegade_guard2]:online_offline_group +faction = renegade +npc = sim_default_renegade_0 +npc_in_squad = 1, 1 +target_smart = pol_smart_terrain_2_1 + +[pol_renegade_guard3]:online_offline_group +faction = renegade +npc = sim_default_renegade_0 +npc_in_squad = 1, 1 +target_smart = pol_smart_terrain_2_1 + +;------------------------------------------------------------------------ + +[pol_smart_terrain_2_2_isg_squad]:online_offline_group +faction = isg +npc_random = sim_default_isg_3, sim_default_isg_4 +npc_in_squad = 3, 4 +target_smart = pol_smart_terrain_2_2 + +;------------------------------------------------------------------------ + +[pol_snork_squad_1]:online_offline_group +faction = monster_zombied_day +npc_random = snork_normal, snork_normal2, snork_normal3, snork_normal4, snork_strong, snork_strong2, snork_strong3, snork_strong4 +npc_in_squad = 2, 4 +target_smart = pol_smart_terrain_1_3 + +[pol_snork_squad_2]:online_offline_group +faction = monster_zombied_day +npc_random = snork_normal, snork_normal2, snork_normal3, snork_normal4, snork_strong, snork_strong2, snork_strong3, snork_strong4 +npc_in_squad = 4, 6 +target_smart = pol_smart_terrain_1_3 + +[pol_zombie_squad_1]:online_offline_group +faction = monster_zombied_day +npc_random = zombie_normal, zombie_strong +npc_in_squad = 8, 12 +target_smart = pol_smart_terrain_2_2 + +[pol_zombie_squad_2]:online_offline_group +faction = monster_zombied_day +npc_random = zombie_normal, zombie_strong +npc_in_squad = 6, 10 +target_smart = pol_smart_terrain_1_1 + +[pol_zombie_squad_3]:online_offline_group +faction = monster_zombied_day +npc_random = zombie_normal, zombie_strong +npc_in_squad = 8, 12 +target_smart = pol_smart_terrain_1_3 + +[pol_zombie_squad_4]:online_offline_group +faction = monster_zombied_day +npc_random = zombie_normal, zombie_strong +npc_in_squad = 6, 10 +target_smart = pol_smart_terrain_2_1 + +[pol_zombied_squad_1]:online_offline_group ;-- test +faction = zombied +npc_random = sim_default_zombied_1, sim_default_zombied_2, sim_default_zombied_3, sim_default_zombied_4 +npc_in_squad = 3, 6 +target_smart = pol_smart_terrain_1_3 + +[pol_zombied_squad_2]:online_offline_group ;-- test +faction = zombied +npc_random = sim_default_zombied_2, sim_default_zombied_3, sim_default_zombied_4 +npc_in_squad = 4, 8 +target_smart = pol_smart_terrain_1_3 + +;------------------------------------------------------------------------ + +[pol_rats_mlr_squad]:online_offline_group +faction = monster +npc_random = rat_weak, rat_normal, rat_strong, rat_wolf, rat_weak, rat_weak +npc_in_squad = 2, 6 +target_smart = pol_smart_terrain_1_2 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_ROS.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_ROS.ltx new file mode 100644 index 00000000..8707cf7f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_ROS.ltx @@ -0,0 +1,11 @@ +[ros_merc_guard_mlr_squad]:online_offline_group +faction = killer +npc_random = sim_default_killer_1, sim_default_killer_1, sim_default_killer_2, sim_default_killer_2, sim_default_killer_2 +npc_in_squad = 4, 4 +target_smart = ros_smart_stalker_killers1 + +[ros_merc_sniper_mlr_squad]:online_offline_group +faction = killer +npc_random = sim_default_killer_1, sim_default_killer_1, sim_default_killer_2, sim_default_killer_2, sim_default_killer_2 +npc_in_squad = 3, 3 +target_smart = ros_smart_killers1 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_TRC.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_TRC.ltx new file mode 100644 index 00000000..0234a0b9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_TRC.ltx @@ -0,0 +1,19 @@ +[trucks_cemetery_bandit_guards]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_3, sim_default_bandit_4, sim_default_bandit_2, sim_default_bandit_2 +npc_in_squad = 4, 4 +target_smart = trc_sim_20 +always_arrived = true + +[trucks_army_camp_guards]:online_offline_group +faction = army +npc_random = sim_default_military_2, sim_default_military_2, sim_default_military_1, sim_default_military_1 +npc_in_squad = 4, 4 +target_smart = trc_sim_18 + +[trc_sim_13_zombie_squad]:online_offline_group +faction = monster_zombied_day +npc_random = zombie_normal, zombie_strong, +npc_in_squad = 8, 12 +target_smart = trc_sim_13 +always_arrived = true \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_VAL.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_VAL.ltx new file mode 100644 index 00000000..cea2cf87 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_VAL.ltx @@ -0,0 +1,102 @@ +[bandit_novice_visiters_camp]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_0, sim_default_bandit_0, sim_default_bandit_0, sim_default_bandit_1, sim_default_bandit_1, sim_default_bandit_2 +npc_in_squad = 2, 2 +target_smart = val_smart_terrain_7_3 +story_id = bandit_novice_visiters_camp +always_arrived = true + +[bandit_novice_visiters_2_camp]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_0, sim_default_bandit_0, sim_default_bandit_0, sim_default_bandit_1, sim_default_bandit_1, sim_default_bandit_2 +npc_in_squad = 2, 2 +target_smart = val_smart_terrain_7_3 +story_id = bandit_novice_visiters_2_camp +always_arrived = true + +[bandit_novice_visiters_base]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_0, sim_default_bandit_0, sim_default_bandit_0, sim_default_bandit_1, sim_default_bandit_1, sim_default_bandit_2 +npc_in_squad = 4, 4 +target_smart = val_smart_terrain_7_4 +story_id = bandit_novice_visiters_base +always_arrived = true + +[bandit_novice_visiters_2_base]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_0, sim_default_bandit_0, sim_default_bandit_0, sim_default_bandit_1, sim_default_bandit_1, sim_default_bandit_2 +npc_in_squad = 4, 4 +target_smart = val_smart_terrain_7_4 +story_id = bandit_novice_visiters_2_base +always_arrived = true + +[bandit_guards_in_main_base]:online_offline_group +faction = bandit +npc = sim_default_bandit_2, sim_default_bandit_3 +target_smart = val_smart_terrain_7_5 +story_id = bandit_guards_in_main_base +always_arrived = true + +![guards_boss_bandit_in_main_base]:online_offline_group +faction = bandit +npc = sim_default_bandit_4, sim_default_bandit_4, sim_default_bandit_4 +target_smart = val_smart_terrain_7_5 +story_id = guards_boss_bandit_in_main_base + +[guards_bandit_main_entrance]:online_offline_group +faction = bandit +npc = sim_default_bandit_2, sim_default_bandit_2 +target_smart = val_smart_terrain_8_6 +story_id = guards_bandit_main_entrance +always_arrived = true + +[bandit_barman_mlr_squad]:online_offline_group +faction = bandit +npc = sim_default_bandit_barman +target_smart = val_smart_terrain_7_3 +story_id = bandit_barman_squad + +;------------------------------------------------------------------------ + +[val_smart_terrain_1_2_military_mlr_squad]:online_offline_group +faction = army +npc = sim_default_military_2, sim_default_military_3 +target_smart = val_smart_terrain_1_2 +story_id = val_smart_terrain_1_2_military_mlr_squad +always_arrived = true + +[val_smart_terrain_1_2_military_mlr_2_squad]:online_offline_group +faction = army +npc = sim_default_military_3, sim_default_military_4 +target_smart = val_smart_terrain_1_2 +story_id = val_smart_terrain_1_2_military_mlr_2_squad +always_arrived = true + +;------------------------------------------------------------------------ + +[stalker_south_pig_farm]:online_offline_group +faction = stalker +npc = sim_default_stalker_0, sim_default_stalker_0, sim_default_stalker_1 +target_smart = val_smart_terrain_4_0 +story_id = stalker_south_pig_farm + +;------------------------------------------------------------------------ + +[val_smart_terrain_1_2_rat_mlr_squad]:online_offline_group +faction = monster +npc_random = rat_weak, rat_normal, rat_strong, rat_wolf, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak +npc_in_squad = 2, 3 +target_smart = val_smart_terrain_1_2 + +[val_smart_terrain_6_4_rat_mlr_squad]:online_offline_group +faction = monster +npc_random = rat_weak, rat_normal, rat_strong, rat_wolf, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak +npc_in_squad = 2, 3 +target_smart = val_smart_terrain_6_4 + +[val_smart_terrain_7_8_rat_mlr_squad]:online_offline_group +faction = monster +npc_random = rat_weak, rat_normal, rat_strong, rat_wolf, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak, rat_normal, rat_normal, rat_weak, rat_weak +npc_in_squad = 2, 3 +target_smart = val_smart_terrain_7_8 + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_X16.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_X16.ltx new file mode 100644 index 00000000..745cfc9f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_X16.ltx @@ -0,0 +1,44 @@ +[zombied_x162_st_poltergeist_squad]:online_offline_group +faction = zombied +npc_random = sim_default_zombied_2, sim_default_zombied_3, sim_default_zombied_3, sim_default_zombied_2, sim_default_zombied_4, sim_default_zombied_4 +npc_in_squad = 3, 3 +always_arrived = true +target_smart = x162_st_poltergeist + +[zombied_x162_st_gigant_squad]:online_offline_group +faction = zombied +npc_random = sim_default_zombied_2, sim_default_zombied_2, sim_default_zombied_3, sim_default_zombied_2, sim_default_zombied_3 +npc_in_squad = 4, 4 +always_arrived = true +target_smart = x162_st_gigant + +[zombied_x162_st_burer_squad]:online_offline_group +faction = zombied +npc_random = sim_default_zombied_2, sim_default_zombied_2, sim_default_zombied_3, sim_default_zombied_2, sim_default_zombied_3 +npc_in_squad = 3, 3 +always_arrived = true +target_smart = x162_st_burer + +[ecolog_x162_st_poltergeist_squad]:online_offline_group +faction = ecolog +npc_random = sim_default_ecolog_dead, sim_default_ecolog_dead, sim_default_ecolog_dead, sim_default_ecolog_dead +npc_in_squad = 2, 2 +always_arrived = true +target_smart = x162_st_poltergeist + +[ecolog_x162_st_gigant_squad]:online_offline_group +faction = ecolog +npc_random = sim_default_ecolog_dead, sim_default_ecolog_dead, sim_default_ecolog_dead, sim_default_ecolog_dead +npc_in_squad = 2, 2 +always_arrived = true +target_smart = x162_st_gigant + +[isg_x162_st_burer_squad]:online_offline_group +faction = isg +npc_random = sim_default_isg_3, sim_default_isg_4, sim_default_isg_4 +npc_in_squad = 3, 3 +always_arrived = true +target_smart = x162_st_burer + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_X18.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_X18.ltx new file mode 100644 index 00000000..6114964a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_X18.ltx @@ -0,0 +1,16 @@ +![dar_military_scout_squad]:online_offline_group +faction = army +!relationship = enemy +!sympathy = 0 +npc = sim_default_military_4, sim_default_military_3, sim_default_military_3, sim_default_military_4 +target_smart = dar_military_scout +story_id = dar_military_scout_squad +on_death = %+dar_military_scout_squad_killed% + +[dar_military_spetsnaz_squad]:online_offline_group +faction = army +npc_random = sim_default_military_3, sim_default_military_4, sim_default_military_3, sim_default_military_4 +npc_in_squad = 3 +always_arrived = true +target_smart = dar_control_poltergeist + diff --git a/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_YAN.ltx b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_YAN.ltx new file mode 100644 index 00000000..23fac836 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_YAN.ltx @@ -0,0 +1,132 @@ +[yan_smart_terrain_6_4_squad]:online_offline_group +faction = ecolog +npc = sim_default_ecolog_1, sim_default_ecolog_2 +target_smart = yan_smart_terrain_6_4 +always_arrived = true + +[yan_ecolog_guard_mlr_squad]:online_offline_group +faction = ecolog +npc = sim_default_ecolog_1, sim_default_ecolog_2, sim_default_ecolog_2, sim_default_ecolog_2, sim_default_ecolog_3 +target_smart = yan_smart_terrain_2_4 +always_arrived = true + +[yan_ecolog_guard_mlr_squad2]:online_offline_group +faction = ecolog +npc = sim_default_ecolog_1, sim_default_ecolog_1, sim_default_ecolog_2, sim_default_ecolog_2, sim_default_ecolog_3 +target_smart = yan_smart_terrain_zombi_spawn +always_arrived = true + +;------------------------------------------------------------------------ + +[yan_army_spetsnaz_squad]:online_offline_group +faction = army +npc = sim_default_military_1, sim_default_military_1, sim_default_military_2, sim_default_military_2, sim_default_military_2, sim_default_military_3, sim_default_military_3, sim_default_military_4 +target_smart = yan_smart_terrain_3_6 +always_arrived = true + +[yan_army_spetsnaz_squad2]:online_offline_group +faction = army +npc = sim_default_military_1, sim_default_military_1, sim_default_military_2, sim_default_military_2, sim_default_military_2, sim_default_military_3, sim_default_military_3, sim_default_military_4 +target_smart = yan_smart_terrain_6_4 +always_arrived = true + +[yan_killer_special_team]:online_offline_group +faction = killer +npc = sim_default_killer_2, sim_default_killer_2, sim_default_killer_2, sim_default_killer_2, sim_default_killer_3, sim_default_killer_4 +target_smart = yan_smart_terrain_4_4 +always_arrived = true + +[yan_killer_special_team2]:online_offline_group +faction = killer +npc = sim_default_killer_2, sim_default_killer_2, sim_default_killer_2, sim_default_killer_2, sim_default_killer_3, sim_default_killer_4 +npc_in_squad = 4, 6 +target_smart = yan_smart_terrain_5_5 +always_arrived = true + +[yan_killer_special_team3]:online_offline_group +faction = killer +npc = sim_default_killer_2, sim_default_killer_2, sim_default_killer_2, sim_default_killer_2, sim_default_killer_2, sim_default_killer_3 +target_smart = yan_smart_terrain_4_5 +always_arrived = true + +;------------------------------------------------------------------------ + +[yan_stalker_lab_squad]:online_offline_group +faction = stalker +npc_random = sim_default_stalker_0, sim_default_stalker_1, sim_default_stalker_1, sim_default_stalker_2, sim_default_stalker_2, sim_default_stalker_3 +npc_in_squad = 2, 3 +target_smart = yan_smart_terrain_2_5 +always_arrived = true + +[yan_bandit_lab_squad]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_0, sim_default_bandit_1, sim_default_bandit_1, sim_default_bandit_1, sim_default_bandit_2, sim_default_bandit_2, sim_default_bandit_2, sim_default_bandit_3 +npc_in_squad = 3, 6 +target_smart = yan_smart_terrain_3_4 +always_arrived = true + +[yan_army_lab_squad]:online_offline_group +faction = army +npc_random = sim_default_military_0, sim_default_military_1, sim_default_military_1, sim_default_military_2, sim_default_military_2, sim_default_military_3 +npc_in_squad = 2, 4 +target_smart = yan_smart_terrain_2_5 +always_arrived = true + +[yan_killer_lab_squad]:online_offline_group +faction = killer +relationship = neutral +npc_random = sim_default_killer_0, sim_default_killer_1, sim_default_killer_1, sim_default_killer_2, sim_default_killer_2, sim_default_killer_3, sim_default_killer_4 +npc_in_squad = 2, 4 +target_smart = yan_smart_terrain_2_4 +always_arrived = true + +[yan_duty_lab_squad]:online_offline_group +faction = dolg +npc_random = sim_default_duty_0, sim_default_duty_1, sim_default_duty_2, sim_default_duty_2, sim_default_duty_3 +npc_in_squad = 2, 4 +target_smart = yan_smart_terrain_2_4 +always_arrived = true + +[yan_freedom_lab_squad]:online_offline_group +faction = freedom +npc_random = sim_default_freedom_0, sim_default_freedom_1, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_3 +npc_in_squad = 2, 4 +target_smart = yan_smart_terrain_zombi_spawn +always_arrived = true + +[yan_ecolog_lab_squad]:online_offline_group +faction = ecolog +npc_random = sim_default_ecolog_1, sim_default_ecolog_1, sim_default_ecolog_2, sim_default_ecolog_2, sim_default_ecolog_3 +npc_in_squad = 3, 4 +target_smart = yan_smart_terrain_2_5 +always_arrived = true + +[yan_csky_lab_squad]:online_offline_group +faction = csky +npc_random = sim_default_csky_0, sim_default_csky_1, sim_default_csky_2, sim_default_csky_2, sim_default_csky_3 +npc_in_squad = 2, 4 +target_smart = yan_smart_terrain_3_4 +always_arrived = true + +;------------------------------------------------------------------------ + +[yan_zombied_x16_mlr_squad]:online_offline_group +faction = zombied +npc_random = sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_2, sim_default_zombied_2, sim_default_zombied_3 +npc_in_squad = 3, 3 +target_smart = yan_smart_terrain_zombi_spawn +always_arrived = true + +[yan_zombied_x16_mlr_squad2]:online_offline_group +faction = zombied +npc_random = sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_1 +npc_in_squad = 2, 2 +target_smart = yan_smart_terrain_2_4 +always_arrived = true + +[yan_zombied_x16_mlr_squad3]:online_offline_group +faction = zombied +npc_random = sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_1, sim_default_zombied_1 +npc_in_squad = 2, 2 +target_smart = yan_smart_terrain_3_4 +always_arrived = true diff --git a/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_BAR.ltx b/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_BAR.ltx new file mode 100644 index 00000000..31649ae1 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_BAR.ltx @@ -0,0 +1,7 @@ +![bar_space_restrictor_to_military_01] +enable = false +spot = level_changer_spot_mini + +![mil_space_restrictor_to_bar_1] +enable = false +spot = level_changer_spot_mini diff --git a/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_CIT.ltx b/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_CIT.ltx new file mode 100644 index 00000000..d9b252c7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_CIT.ltx @@ -0,0 +1,8 @@ +![cit_space_restrictor_to_yantar] +enable = false +spot = level_changer_spot_mini + +![yan_space_restrictor_to_dead_city_1] +enable = false +spot = level_changer_spot_mini + diff --git a/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_ESC.ltx b/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_ESC.ltx new file mode 100644 index 00000000..b4df2ce0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_ESC.ltx @@ -0,0 +1,15 @@ +![esc_space_restrictor_to_garbage_1] +enable = false +spot = level_changer_spot_mini + +![esc_space_restrictor_to_garbage_2] +enable = false +spot = level_changer_spot_mini + +![gar_space_restrictor_to_escape_1] +enable = false +spot = level_changer_spot_mini + +![gar_space_restrictor_to_escape_2] +enable = false +spot = level_changer_spot_mini diff --git a/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_MIL.ltx b/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_MIL.ltx new file mode 100644 index 00000000..82d2860a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_MIL.ltx @@ -0,0 +1,44 @@ +![mil_space_restrictor_to_red_1] +enable = false +spot = level_changer_spot_mini + +![mil_space_restrictor_to_radar_1] +spot = level_changer_up_right + +![mil_space_restrictor_to_dead_city_1] +enable = false +spot = level_changer_spot_mini + +;[mil_space_restrictor_to_tc] +;enable = false +;spot = level_changer_spot_mini + +![cit_space_restrictor_to_military] +enable = false +spot = level_changer_spot_mini + +![red_space_restrictor_to_military_1] +enable = false +spot = level_changer_spot_mini + +![red_space_restrictor_to_radar_1] +enable = false +spot = level_changer_spot_mini + +![rad_space_restrictor_to_red_forest] +enable = false +spot = level_changer_spot_mini + +;[tc_space_restrictor_to_military_1] +;enable = false +;spot = level_changer_spot_mini + +;[tc_space_restrictor_to_military_2] +;enable = false +;spot = level_changer_spot_mini + +;[tc_space_restrictor_to_military_3] +;enable = false +;spot = level_changer_spot_mini + + diff --git a/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_POL.ltx b/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_POL.ltx new file mode 100644 index 00000000..00445b82 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_POL.ltx @@ -0,0 +1,8 @@ +![pol_space_restrictor_to_escape_1] +enable = false +spot = level_changer_spot_mini + +![esc_space_restrictor_to_pole_1] +enable = false +spot = level_changer_spot_mini + diff --git a/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_VAL.ltx b/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_VAL.ltx new file mode 100644 index 00000000..dad675ab --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/mod_sr_teleport_sections_VAL.ltx @@ -0,0 +1,15 @@ +![val_space_restrictor_to_garbage_1] +enable = false +spot = level_changer_spot_mini + +![val_space_restrictor_to_garbage_2] +enable = false +spot = level_changer_spot_mini + +![gar_space_restrictor_to_darkvalley_1] +enable = false +spot = level_changer_spot_mini + +![gar_space_restrictor_to_darkvalley_2] +enable = false +spot = level_changer_spot_mini diff --git a/mods/Redone Collection_backup/gamedata/configs/mod_system_spawn_point_MAR.ltx b/mods/Redone Collection_backup/gamedata/configs/mod_system_spawn_point_MAR.ltx new file mode 100644 index 00000000..ab445022 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/mod_system_spawn_point_MAR.ltx @@ -0,0 +1 @@ +#include "creatures\spawn_sections_marsh_spawn_point.ltx" \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/mod_system_spawn_point_X16.ltx b/mods/Redone Collection_backup/gamedata/configs/mod_system_spawn_point_X16.ltx new file mode 100644 index 00000000..e6eb9986 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/mod_system_spawn_point_X16.ltx @@ -0,0 +1,2 @@ +#include "creatures\spawn_sections_labx16_spawn_point.ltx" +#include "creatures\spawn_sections_yantar_spawn_point.ltx" \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/mod_system_spawn_point_X18.ltx b/mods/Redone Collection_backup/gamedata/configs/mod_system_spawn_point_X18.ltx new file mode 100644 index 00000000..b127b987 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/mod_system_spawn_point_X18.ltx @@ -0,0 +1 @@ +#include "creatures\spawn_sections_labx18_spawn_point.ltx" \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/plugins/;mod_new_game_setup_ROS.ltx b/mods/Redone Collection_backup/gamedata/configs/plugins/;mod_new_game_setup_ROS.ltx new file mode 100644 index 00000000..f1109cf6 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/plugins/;mod_new_game_setup_ROS.ltx @@ -0,0 +1,7 @@ +![remove_objects] ;do not use. Also delete lights at Bar and ESC +;light_alarm_glass_0000 +;light_alarm_glass_0003 +;light_alarm_glass_0004 +;light_alarm_glass_0006 +;light_alarm_glass_0007 +;light_alarm_glass_0008 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_DS.ltx b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_DS.ltx new file mode 100644 index 00000000..c8a15302 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_DS.ltx @@ -0,0 +1,4 @@ +![k01_darkscape] + !ano_dsc_42 = chemical, 429.71731567383, -1.8115394115448, -371.16778564453, 918931, 1404 + !ano_dsc_43 = chemical, 430.38342285156, -1.8093948364258, -365.34536743164, 920078, 1404 + !ano_dsc_44 = chemical, 430.41537475586, -1.7958755493164, -361.078125, 920084, 1404 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_ESC.ltx b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_ESC.ltx new file mode 100644 index 00000000..b17adf28 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_ESC.ltx @@ -0,0 +1,21 @@ +![l01_escape] + !ano_esc_0 = gravitational, 17.394336700439, 15.890402793884, 664.333984375, 325647, 567 + !ano_esc_1 = electric, 16.90838432312, 13.750101089478, 645.50750732422, 324678, 410 + ;ano_esc_102 = electric, 353.21658325195, 14.934350013733, -29.440731048584, 619686, 370 + ;ano_esc_104 = electric, 360.93698120117, 14.938066482544, -34.537322998047, 621986, 370 + ;ano_esc_107 = electric, 347.67706298828, 15.098957061768, -33.032413482666, 617446, 621 + ;ano_esc_108 = electric, 363.38165283203, 14.933527946472, -42.13053894043, 622485, 370 + ;ano_esc_110 = electric, 371.09335327148, 20.946316719055, -42.225631713867, 623728, 370 + ;ano_esc_111 = electric, 350.76919555664, 20.918435096741, -28.366254806519, 618350, 621 + ;ano_esc_112 = electric, 357.43197631836, 18.893308639526, -37.717849731445, 621046, 370 + ;ano_esc_113 = electric, 366.36376953125, 19.936526298523, -38.863098144531, 623079, 370 + ;ano_esc_114 = electric, 369.87814331055, 18.236912536621, -45.690231323242, 623591, 370 + ;ano_esc_115 = electric, 361.81338500977, 20.013339996338, -41.715454101562, 622153, 370 + ;ano_esc_116 = electric, 358.23190307617, 19.9868516922, -39.258373260498, 621237, 370 + ;ano_esc_117 = electric, 354.18405151367, 18.908493995667, -36.053356170654, 619925, 370 + ;ano_esc_118 = electric, 354.5426940918, 20.168806648254, -28.844787597656, 619936, 370 + ;ano_esc_119 = electric, 357.6321105957, 20.212746810913, -34.094421386719, 621051, 370 + ;ano_esc_109 = electric, 367.34536743164, 14.929558753967, -38.927028656006, 623318, 370 + ;ano_esc_105 = electric, 362.48791503906, 14.984031677246, -40.222038269043, 622327, 370 + ;ano_esc_106 = electric, 370.05667114258, 14.978092193604, -40.198169708252, 623666, 370 + ;ano_esc_103 = electric, 356.25527954102, 15.888303756714, -36.900623321533, 620636, 370 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_POL.ltx b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_POL.ltx new file mode 100644 index 00000000..262f04c8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_POL.ltx @@ -0,0 +1,2 @@ +![y04_pole] + !ano_pol_35 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_ROS.ltx b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_ROS.ltx new file mode 100644 index 00000000..60527a37 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_ROS.ltx @@ -0,0 +1,41 @@ +![l06_rostok] + ano_ros_63 = gravitational, -161.3055267334, -0.002201646566391, 48.760059356689, 25377, 1908 + ano_ros_64 = gravitational, -158.25860595703, -0.0015027523040771, 56.189792633057, 25377, 1908 + ano_ros_66 = gravitational, -168.89785766602, -0.0030859410762787, 54.516521453857, 25377, 1908 + ano_ros_67 = radioactive, -163.63726806641, -0.00087732076644897, 52.27965927124, 25377, 1908 + ano_ros_68 = chemical, -155.56665039062, 0.29411315917969, 80.926223754883, 25377, 1908 + ano_ros_69 = chemical, -154.25556945801, 0.09965255856514, 84.569267272949, 25377, 1908 + ano_ros_71 = thermal, -182.62310791016, -0.0011163353919983, 40.366508483887, 25377, 1908 + ano_ros_72 = thermal, -184.66575622559, -0.0023784041404724, 35.73189163208, 25377, 1908 + ano_ros_73 = thermal, -180.48937988281, -0.0046562254428864, 34.8095703125, 25377, 1908 + ano_ros_74 = thermal, -178.43943786621, -0.0021621137857437, 30.777183532715, 25377, 1908 + ano_ros_75 = thermal, -174.39161682129, -0.00010567903518677, 29.51441192627, 25377, 1908 + ano_ros_76 = thermal, -175.04580688477, -0.00018487870693207, 24.866413116455, 25377, 1908 + ano_ros_77 = thermal, -171.47622680664, -0.0003587007522583, 22.60669708252, 25377, 1908 + ano_ros_78 = thermal, -172.79882812532, -0.0025824904441833, 17.576650619507, 25377, 1908 + ano_ros_79 = thermal, -178.30107116699, -7.002055644989e-05, 18.065408706665, 25377, 1908 + ano_ros_81 = thermal, -179.49899291992, -0.00028195977210999, 13.813373565674, 25377, 1908 + ano_ros_82 = thermal, -183.74478149414, -0.00024449825286865, 11.809941291809, 25377, 1908 + ano_ros_83 = thermal, -185.39465332031, -0.0046873688697815, 16.391710281372, 25377, 1908 + ano_ros_84 = thermal, -189.64587402344, -0.0048295259475708, 18.243629455566, 25377, 1908 + ano_ros_85 = thermal, -187.56173706055, -0.00028896331787109, 21.857831954956, 25377, 1908 + ano_ros_86 = thermal, -187.80061340332, -0.0033606588840485, 26.730026245117, 25377, 1908 + ano_ros_87 = thermal, -192.21124267578, -0.00092019140720367, 24.20227432251, 25377, 1908 + ano_ros_88 = thermal, -187.70239257812, -0.00086730718612671, 3.3345000743866, 25377, 1908 + ano_ros_89 = thermal, -199.66918945312, -0.0038188099861145, -3.3506965637207, 24738, 1908 + ano_ros_100 = thermal, -196.65022277832, -0.0052649974822998, -13.183561325073, 24738, 1908 + ano_ros_101 = thermal, -206.28680419922, -0.002912163734436, -17.364234924316, 24738, 1908 + ano_ros_102 = thermal, -202.99934387207, -0.00026543438434601, -23.17338180542, 24738, 1908 + ano_ros_103 = thermal, -210.53144836426, -0.00023095309734344, -26.060640335083, 24384, 1908 + ano_ros_104 = thermal, -173.76370239258, -0.00047957897186279, 15.20398235321, 25377, 1908 + ano_ros_105 = thermal, -194.13003540039, -0.0020697414875031, 22.966623306274, 25377, 1908 + ano_ros_106 = thermal, -190.26966857910, -0.00043398141860962, 30.282733917236, 25377, 1908 + ano_ros_107 = thermal, -179.65838623047, -0.0012353509664536, 11.232748031616, 25377, 1908 + ano_ros_108 = thermal, -181.71868896484, -0.00027760863304138, 18.718341827393, 25377, 1908 + ano_ros_109 = thermal, -188.67903137207, -0.00048862397670746, 35.557014465332, 25377, 1908 + ano_ros_110 = thermal, -194.61724853516, -0.0035153031349182, 22.132669448853, 25377, 1908 + ano_ros_111 = thermal, -190.24580383301, -0.00033354759216309, 30.191970825195, 25377, 1908 + ano_ros_112 = thermal, -182.59356689453, -0.0027606934309006, 26.000076293945, 25377, 1908 + ano_ros_113 = radioactive, -167.48039245605, -0.0019214451313019, 73.26441192627, 25377, 1908 + ano_ros_114 = radioactive, -158.01057434082, -0.0053507536649704, 90.500900268555, 25377, 1908 + ano_ros_115 = radioactive, -146.17025756836, -0.0037648975849152, 111.64415740967, 25377, 1908 diff --git a/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_YAN.ltx b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_YAN.ltx new file mode 100644 index 00000000..95083fe5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_dynamic_anomalies_YAN.ltx @@ -0,0 +1,5 @@ +![l08_yantar] + !ano_yan_9 + !ano_yan_20 + !ano_yan_37 + !ano_yan_38 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/plugins/mod_faction_profile_renegade_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_faction_profile_renegade_redone.ltx new file mode 100644 index 00000000..ac1472f2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_faction_profile_renegade_redone.ltx @@ -0,0 +1,24 @@ +![renegade] +type = group +color = 255,150,100,0 +territory = k00_marsh + +level_presence = k00_marsh,k01_darkscape,k02_trucks_cemetery,l01_escape,l03_agroprom,l02_garbage,l06_rostok,l07_military,l10_red_forest,jupiter,pripyat,zaton +pda_topic = mission=1,chitchat=1,joke=1 +pda_topic_mission = bounty,guard,raid,hunt +weapon = all + +leader = +trader = mar_renegade_trader +mechanic = mar_renegade_mechanic +medic = +barman = +guide = + +leader_name = +trader_name = mar_renegade_trader_name +mechanic_name = mar_renegade_mechanic_name +medic_name = +barman_name = +guide_name = + diff --git a/mods/Redone Collection_backup/gamedata/configs/plugins/mod_new_game_setup_AGR.ltx b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_new_game_setup_AGR.ltx new file mode 100644 index 00000000..93bdf039 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_new_game_setup_AGR.ltx @@ -0,0 +1,6 @@ +![remove_objects] +!agr_btr1 +;agr_btr2 + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/plugins/mod_new_game_setup_DS.ltx b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_new_game_setup_DS.ltx new file mode 100644 index 00000000..43051aab --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_new_game_setup_DS.ltx @@ -0,0 +1,6 @@ +![remove_objects] +;ds_awr_tiski_01 +;ds_awr_lamp_dasc_tech_mlr_01 +;ds_awr_lamp_dasc_tech_mlr_02 +;ds_awr_tiski_01 +;ds_awr_stol_1 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/plugins/mod_new_game_setup_ESC.ltx b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_new_game_setup_ESC.ltx new file mode 100644 index 00000000..8628265b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_new_game_setup_ESC.ltx @@ -0,0 +1,79 @@ +![remove_objects] +!esc_zone_mine_field_soc +!esc_zone_mine_field_soc_0000 +!esc_zone_mine_field_soc_0001 +!esc_zone_mine_field_soc_0002 +!esc_zone_mine_field_soc_0003 +!esc_zone_mine_field_soc_0004 +!esc_zone_mine_field_soc_0005 +!esc_zone_mine_field_soc_0006 +!esc_zone_mine_field_soc_0007 +!esc_zone_mine_field_soc_0008 +!esc_zone_mine_field_soc_0009 +!esc_zone_mine_field_soc_0010 +!esc_zone_mine_field_soc_0011 +!esc_zone_mine_field_soc_0012 +!esc_zone_mine_field_soc_0013 +!esc_zone_mine_field_soc_0014 +!esc_zone_mine_field_soc_0015 +!esc_zone_mine_field_soc_0016 +!esc_zone_mine_field_soc_0017 +!esc_zone_mine_field_soc_0018 +!esc_zone_mine_field_soc_0019 +!esc_zone_mine_field_soc_0020 +!esc_zone_mine_field_soc_0021 +!esc_zone_mine_field_soc_0022 +!esc_zone_mine_field_soc_0023 +!esc_zone_mine_field_soc_0024 +!esc_zone_mine_field_soc_0025 +!esc_zone_mine_field_soc_0026 +!esc_zone_mine_field_soc_0027 +!esc_zone_mine_field_soc_0028 +!esc_zone_mine_field_soc_0029 +!esc_zone_mine_field_soc_0030 +!esc_zone_mine_field_soc_0031 +!esc_zone_mine_field_soc_0032 +!esc_zone_mine_field_soc_0033 +!esc_zone_mine_field_soc_0034 +!esc_zone_mine_field_soc_0035 +!esc_zone_mine_field_soc_0036 +!esc_zone_mine_field_soc_0037 +!esc_zone_mine_field_soc_0038 +!esc_zone_mine_field_soc_0039 +!esc_zone_mine_field_soc_0040 +!esc_zone_mine_field_soc_0041 +!esc_zone_mine_field_soc_0042 +!esc_zone_mine_field_soc_0043 +!esc_zone_mine_field_soc_0044 +!esc_zone_mine_field_soc_0045 +!esc_zone_mine_field_soc_0046 +!esc_zone_mine_field_soc_0047 +!esc_zone_mine_field_soc_0048 +!esc_zone_mine_field_soc_0049 +!esc_zone_mine_field_soc_0050 +!esc_zone_mine_field_soc_0051 +!esc_zone_mine_field_soc_0052 +!esc_zone_mine_field_soc_0053 +!esc_zone_mine_field_soc_0054 +!esc_zone_mine_field_soc_0055 +!esc_zone_mine_field_soc_0056 +!esc_zone_mine_field_soc_0057 +!esc_zone_mine_field_soc_0058 +!esc_zone_mine_field_soc_0059 +!esc_zone_mine_field_soc_0060 +!esc_zone_mine_field_soc_0061 +!esc_zone_mine_field_soc_0062 +!esc_zone_mine_field_soc_0063 +!esc_zone_mine_field_soc_0064 +!esc_zone_mine_field_soc_0065 + +;esc_zone_witches_galantine +!esc_zone_witches_galantine_0000 +;esc_zone_witches_galantine_0001 +!esc_zone_witches_galantine_0002 +;esc_zone_witches_galantine_0003 +!esc_zone_witches_galantine_0004 +;esc_zone_witches_galantine_0005 +!esc_zone_witches_galantine_0006 +;esc_zone_witches_galantine_0007 + diff --git a/mods/Redone Collection_backup/gamedata/configs/plugins/mod_new_game_setup_MIL.ltx b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_new_game_setup_MIL.ltx new file mode 100644 index 00000000..8613565d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/plugins/mod_new_game_setup_MIL.ltx @@ -0,0 +1,2 @@ +![remove_objects] +mil_physic_destroyable_object \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_1.ltx new file mode 100644 index 00000000..2aad389e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_1.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(agr_smart_terrain_4_6) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(agr_smart_terrain_4_6) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(agr_smart_terrain_5_4) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(agr_smart_terrain_5_4) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(agr_smart_terrain_5_7) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(agr_smart_terrain_5_7) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(agr_smart_terrain_7_5) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(agr_smart_terrain_7_5) =is_dark_night} ph_idle@spawn_dark_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:agr_smart_terrain_4_6)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:agr_smart_terrain_4_6)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:agr_smart_terrain_4_6)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_4_6)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_psysucker_brown_night:agr_smart_terrain_4_6)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:agr_smart_terrain_4_6)% ph_idle@reset, {~10} %=create_squad(simulation_psy_dog_night:agr_smart_terrain_4_6)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_4_6)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:agr_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_3_6_night:agr_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_tushkano_night:agr_smart_terrain_5_4)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_2_5_night:agr_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_brown_night:agr_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_red_night:agr_smart_terrain_5_4)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_lurker_brown_night:agr_smart_terrain_5_7)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:agr_smart_terrain_5_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_lurker_brown_night:agr_smart_terrain_5_7)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_zombie_blind_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_cat_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_psy_dog_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_karlik_night:agr_smart_terrain_7_5)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~20} %=create_squad(simulation_psy_dog_night:agr_smart_terrain_7_5)% ph_idle@reset_4, {~20} %=create_squad(simulation_karlik_night:agr_smart_terrain_7_5)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_2.ltx new file mode 100644 index 00000000..44854661 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_2.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(agr_smart_terrain_5_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(agr_smart_terrain_5_2) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(agr_smart_terrain_5_3) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(agr_smart_terrain_5_3) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(agr_smart_terrain_4_4_near_1) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(agr_smart_terrain_4_4_near_1) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(agr_smart_terrain_4_4_near_3) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(agr_smart_terrain_4_4_near_3) =is_dark_night} ph_idle@spawn_dark_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_5_2)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:agr_smart_terrain_5_2)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:agr_smart_terrain_5_2)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:agr_smart_terrain_5_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_psy_dog_night:agr_smart_terrain_5_2)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:agr_smart_terrain_5_2)% ph_idle@reset, {~20} %=create_squad(simulation_psysucker_brown_night:agr_smart_terrain_5_2)% ph_idle@reset, {~20} %=create_squad(simulation_bloodsucker_red_night:agr_smart_terrain_5_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_tushkano_night:agr_smart_terrain_5_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_5_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:agr_smart_terrain_5_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_5_3)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_bloodsucker_red_night:agr_smart_terrain_5_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_lurker_blue_night:agr_smart_terrain_5_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:agr_smart_terrain_5_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_5_3)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_cat_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~10} %=create_squad(simulation_tushkano_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psy_dog_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:agr_smart_terrain_4_4_near_1)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~10} %=create_squad(simulation_cat_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~10} %=create_squad(simulation_snork_2_3_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_lurker_blue_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~10} %=create_squad(simulation_karlik_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~10} %=create_squad(simulation_burer_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, {~10} %=create_squad(simulation_controller_night:agr_smart_terrain_4_4_near_3)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_3.ltx new file mode 100644 index 00000000..55d3a95b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/agr_endless_night_spawn_logic_3.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(agr_smart_terrain_1_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(agr_smart_terrain_1_2) =is_dark_night} ph_idle@spawn_night_monster_1 +on_info2 = {=actor_near_smart(agr_smart_terrain_1_3) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(agr_smart_terrain_1_3) =is_dark_night} ph_idle@spawn_night_monster_2 +on_info3 = {=actor_near_smart(agr_smart_terrain_2_2) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(agr_smart_terrain_2_2) =is_dark_night} ph_idle@spawn_night_monster_3 +on_info4 = {agr_smart_terrain_4_4_near_2) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(agr_smart_terrain_4_4_near_2) =is_dark_night} ph_idle@spawn_night_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_night:agr_smart_terrain_1_2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_1_2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:agr_smart_terrain_1_2)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:agr_smart_terrain_1_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_1_2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_1_2)% ph_idle@reset, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:agr_smart_terrain_1_2)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:agr_smart_terrain_1_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:agr_smart_terrain_1_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_1_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:agr_smart_terrain_1_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_1_3)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_bloodsucker_red_night:agr_smart_terrain_1_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_1_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:agr_smart_terrain_1_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_brown_night:agr_smart_terrain_1_3)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~10} %=create_squad(simulation_zombie_blind_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:agr_smart_terrain_2_2)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psysucker_brown_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~10} %=create_squad(simulation_psy_dog_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~10} %=create_squad(simulation_burer_night:agr_smart_terrain_2_2)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:agr_smart_terrain_2_2)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_pseudodog_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_fracture_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_white_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_lurker_blue_night:agr_smart_terrain_4_4_near_2)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_army_megafone_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_army_megafone_redone.ltx new file mode 100644 index 00000000..bd198d12 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_army_megafone_redone.ltx @@ -0,0 +1,58 @@ +![logic] +!active = ph_idle@wait +active = ph_idle@wait_for_actor + +[ph_idle@wait_for_actor] +on_info = {=surge_started} ph_idle@surge, {+agr_military_colonel_kovalski_dead} ph_idle@nil, {=actor_in_zone(agr_army_base_zone)} ph_idle@check_conditions, {=actor_near_smart(agr_smart_terrain_1_6_near_1)} ph_idle@check_conditions, {=actor_near_smart(agr_smart_terrain_1_6_near_2)} ph_idle@check_conditions, ph_idle@start_humor + +[ph_idle@check_conditions] +on_info = {=is_actor_enemy_to_faction(army)} ph_idle@alarm, ph_idle@start_humor + +[ph_idle@check_conditions_2] +on_info = {=is_actor_enemy_to_faction(army)} ph_idle@alarm +on_info2 = {=surge_started} ph_idle@surge +on_game_timer = 800 | ph_idle@wait_for_actor + +![ph_idle@wait] +!on_info = {=actor_in_zone(agr_army_base_zone)} ph_idle@start_humor +!on_info2 = {=check_smart_alarm_status(agr_smart_terrain_1_6_near_1)} ph_idle@alarm +!on_info3 = {=check_smart_alarm_status(agr_smart_terrain_1_6)} ph_idle@alarm +!on_info4 = {=check_smart_alarm_status(agr_smart_terrain_1_6_near_2)} ph_idle@alarm + +![ph_idle@start_humor] +on_info = %=play_sound(agr_army_comandir_megafon) +agr_military_colonel_kovalski_talk% ph_idle@sound_idle +on_info2 = {=check_smart_alarm_status(agr_smart_terrain_1_6_near_1)} ph_idle@alarm +on_info3 = {=check_smart_alarm_status(agr_smart_terrain_1_6)} ph_idle@alarm +on_info4 = {=check_smart_alarm_status(agr_smart_terrain_1_6_near_2)} ph_idle@alarm +on_info5 = {=check_smart_alarm_status(agr_smart_terrain_1_3)} ph_idle@alarm +on_info6 = {=check_smart_alarm_status(agr_smart_terrain_4_6)} ph_idle@alarm +on_info7 = {=surge_started} ph_idle@surge + +![ph_idle@alarm] +on_info = %=play_sound(agr_army_alarm) -agr_military_colonel_kovalski_talk% +on_timer = 33000 | ph_idle@wait_for_actor +on_info2 = {!check_smart_alarm_status(agr_smart_terrain_1_6_near_1)} ph_idle@wait_for_actor +on_info3 = {!check_smart_alarm_status(agr_smart_terrain_1_6)} ph_idle@wait_for_actor +on_info4 = {!check_smart_alarm_status(agr_smart_terrain_1_6_near_2)} ph_idle@wait_for_actor +on_info5 = {!check_smart_alarm_status(agr_smart_terrain_1_3)} ph_idle@wait_for_actor +on_info6 = {!check_smart_alarm_status(agr_smart_terrain_4_6)} ph_idle@wait_for_actor +on_info7 = {=surge_started} ph_idle@surge + +[ph_idle@sound_idle] +on_info = {=surge_started} ph_idle@surge +on_info2 = {+agr_military_colonel_kovalski_dead} ph_idle@nil +on_info3 = {=actor_in_zone(agr_army_base_zone)} ph_idle@check_conditions_2, {=actor_near_smart(agr_smart_terrain_1_6_near_1)} ph_idle@check_conditions_2, {=actor_near_smart(agr_smart_terrain_1_6_near_2)} ph_idle@check_conditions_2 +on_game_timer = 800 | ph_idle@wait_for_actor + +[ph_idle@surge] +on_info = %-agr_military_colonel_kovalski_talk =stop_sound% +on_game_timer = 160 | ph_idle@surge_started + +[ph_idle@surge_started] +on_info = %=play_sound(kovalsky_surge_phase_1)% ;-- agr_blowout_siren, quick fix, looped sound. +on_signal = sound_end | ph_idle@surge_act_idle + +[ph_idle@surge_act_idle] +on_game_timer = 460 | ph_idle@start_humor + +[ph_idle@nil] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_crow_spawner_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_crow_spawner_redone.ltx new file mode 100644 index 00000000..7b388e70 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_crow_spawner_redone.ltx @@ -0,0 +1,19 @@ +![logic] +!active = sr_crow_spawner +active = sr_idle@check_story + +[sr_idle@check_story] +on_info = {-story_mode_disabled} sr_idle@check_actor, {+story_mode_disabled -yan_x16_complete_end} sr_idle@check_actor %+yan_kill_brain_done% + +[sr_idle@check_actor] +on_info = {=actor_community(actor_monolith) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, {=actor_community(actor_greh) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, sr_idle@check_helmet + +[sr_idle@check_helmet] +on_info = {=actor_has_item(good_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, {=actor_has_item(bad_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, sr_idle@check_spawner + +[sr_idle@check_spawner] +on_info = sr_crow_spawner + +![sr_crow_spawner] +max_crows_on_level = 5 +spawn_path = agr_crow_spawn_1, agr_crow_spawn_2, agr_crow_spawn_3, agr_crow_spawn_4, agr_crow_spawn_5 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_smart_terrain_1_6_near_1_radio_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_smart_terrain_1_6_near_1_radio_redone.ltx new file mode 100644 index 00000000..4412cf3f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_smart_terrain_1_6_near_1_radio_redone.ltx @@ -0,0 +1,11 @@ +![logic] +active = ph_sound + +[ph_sound] +snd = esc_sidorovich_radio +looped = false +min_idle = 300 +max_idle = 500 +random = true +volume = {=surge_started}0, 1 + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_smart_terrain_1_6_near_1_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_smart_terrain_1_6_near_1_smart_logic_redone.ltx new file mode 100644 index 00000000..d2333bdf --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_smart_terrain_1_6_near_1_smart_logic_redone.ltx @@ -0,0 +1,95 @@ +[logic@agr_smart_terrain_1_6_near_1_patrol_work_1] +active = beh@agr_smart_terrain_1_6_near_1_patrol_work_1 +suitable = {=target_squad_name(agr_patrol_army_mlr_squad)} true +prior = 200 + +[logic@agr_smart_terrain_1_6_near_1_patrol_work_2] +active = beh@agr_smart_terrain_1_6_near_1_patrol_work_2 +suitable = {=target_squad_name(agr_patrol_army_mlr_squad)} true +prior = 200 + +[beh@general_patrol] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = false + +[beh@general_surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false + +[beh@agr_smart_terrain_1_6_near_1_patrol_work_1]:beh@general_patrol +pt1 = 100, guard | pos: -67.554389953613, -1.6522723436356, -178.81480407715 +pt2 = 100, guard | pos: -34.639892578125, -1.6747641563416, -170.35836791992 +pt3 = 100, guard | pos: -0.11069346964359, 0.28407162427902, -153.95838928223 +pt4 = 100, guard | pos: 31.231035232544, 0.33903837203979, -143.92808532715 +pt5 = 100, guard | pos: 50.08670425415, 0.20060548186302, -140.1003112793 +pt6 = 100, guard | pos: 78.336517333984, 0.41799223423004, -119.35453033447 +pt7 = 100, guard | pos: 87.035820007324, 0.39919662475586, -91.530319213867 +pt8 = 100, guard | pos: 93.522369384766, 0.40386408567429, -68.310653686523 +pt9 = 35000, binocular | pos: 102.63137054443, 0.40859204530716, -39.647026062012 look: 103.21803283691, 0.41131514310837, -38.768424987793 +pt10 = 100, guard | pos: 87.078941345215, 0.4905424118042, -45.053207397461 +pt11 = 100, guard | pos: 46.684085845947, 0.49939036369324, -51.184837341309 +pt12 = 100, guard | pos: 10.739145278931, 0.49923449754715, -50.732387542725 +pt13 = 100, guard | pos: -21.652070999146, 0.49711525440216, -47.524513244629 +pt14 = 100, guard | pos: -57.737426757812, 0.36240267753601, -41.180976867676 +pt15 = 100, guard | pos: -96.74462890625, 0.45440995693207, -34.791328430176 +pt16 = 100, guard | pos: -138.09623718262, 0.34220695495605, -35.334255218506 +pt17 = 100, guard | pos: -169.80340576172, 0.0080493688583374, -45.173477172852 +pt18 = 100, guard | pos: -188.45465087891, 0.37623238563538, -77.177635192871 +pt19 = 100, guard | pos: -191.86056518555, 0.16077184677124, -119.08964538574 +path_end = loop +on_info = {=surge_started} beh@agr_smart_terrain_1_6_near_1_surge_work_1 + +[beh@agr_smart_terrain_1_6_near_1_patrol_work_2]:beh@general_patrol +pt1 = 1500, guard | pos: -67.554389953613, -1.6522723436356, -178.81480407715 +pt2 = 100, guard | pos: -34.639892578125, -1.6747641563416, -170.35836791992 +pt3 = 100, guard | pos: -0.11069346964359, 0.28407162427902, -153.95838928223 +pt4 = 100, guard | pos: 31.231035232544, 0.33903837203979, -143.92808532715 +pt5 = 100, guard | pos: 50.08670425415, 0.20060548186302, -140.1003112793 +pt6 = 100, guard | pos: 78.336517333984, 0.41799223423004, -119.35453033447 +pt7 = 100, guard | pos: 87.035820007324, 0.39919662475586, -91.530319213867 +pt8 = 100, guard | pos: 93.522369384766, 0.40386408567429, -68.310653686523 +pt9 = 36000, guard | pos: 97.147041320801, 0.454216837883, -45.956203460693 look: 87.035820007324, 0.39919662475586, -91.530319213867 +pt10 = 100, guard | pos: 87.078941345215, 0.4905424118042, -45.053207397461 +pt11 = 100, guard | pos: 46.684085845947, 0.49939036369324, -51.184837341309 +pt12 = 100, guard | pos: 10.739145278931, 0.49923449754715, -50.732387542725 +pt13 = 100, guard | pos: -21.652070999146, 0.49711525440216, -47.524513244629 +pt14 = 100, guard | pos: -57.737426757812, 0.36240267753601, -41.180976867676 +pt15 = 100, guard | pos: -96.74462890625, 0.45440995693207, -34.791328430176 +pt16 = 100, guard | pos: -138.09623718262, 0.34220695495605, -35.334255218506 +pt17 = 100, guard | pos: -169.80340576172, 0.0080493688583374, -45.173477172852 +pt18 = 100, guard | pos: -188.45465087891, 0.37623238563538, -77.177635192871 +pt19 = 100, guard | pos: -191.86056518555, 0.16077184677124, -119.08964538574 +path_end = loop +on_info = {=surge_started} beh@agr_smart_terrain_1_6_near_1_surge_work_2 + +[beh@agr_smart_terrain_1_6_near_1_surge_work_1]:beh@general_surge +pt1 = 1000, smoking_stand | pos: -163.51119995117, -0.20465818047523, -197.92788696289 look: -188.45465087891, 0.37623238563538, -77.177635192871 +on_info = {=surge_complete} beh@agr_smart_terrain_1_6_near_1_patrol_work_1 + +[beh@agr_smart_terrain_1_6_near_1_surge_work_2]:beh@general_surge +pt1 = 1000, idle | pos: -154.60098266602, -0.21979755163193, -184.5887298584 look: -188.45465087891, 0.37623238563538, -77.177635192871 +on_info = {=surge_complete} beh@agr_smart_terrain_1_6_near_1_patrol_work_2 + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_smart_terrain_1_6_near_2_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_smart_terrain_1_6_near_2_smart_logic_redone.ltx new file mode 100644 index 00000000..d7419604 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/mod_agr_smart_terrain_1_6_near_2_smart_logic_redone.ltx @@ -0,0 +1,5 @@ +![logic@agr_military_colonel_kovalski] +on_death = death_leader + +[death_leader] +on_info = %+agr_military_colonel_kovalski_dead% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_2.ltx new file mode 100644 index 00000000..aaab0419 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_2.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 1 +max_population = 1 +respawn_params = respawn@agr_smart_terrain_1_2 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@agr_smart_terrain_1_2] ;-- Type: +spawn_all_hard_c_2_1 +spawn_all_worst_c_2_2 + + +[spawn_all_hard_c_2_1] ;-- Hard mutants - Rates of groups: ( 1 fracture + 2 snork + 1 psydog + 2 karlik) +spawn_squads = simulation_fracture, simulation_fracture, simulation_snork_2_3, simulation_psy_dog, simulation_karlik, simulation_karlik +spawn_num = {!actor_week_in_zone(4)} 1, {=actor_week_in_zone(4)} 0 + +[spawn_all_worst_c_2_2] ;-- Worst mutants - Rates of groups: ( 1 fracture + 2 snork + 1 bloodsucker + 1 psysucker + 2 karlik ) +spawn_squads = simulation_fracture, simulation_fracture, simulation_snork_2_5, simulation_psy_dog_squad, simulation_karlik, simulation_karlik +spawn_num = {=actor_week_in_zone(4)} 1, {!actor_week_in_zone(4)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_3.ltx new file mode 100644 index 00000000..c73b3053 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_3.ltx @@ -0,0 +1,25 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 2 +max_population = 1 +;respawn_params = respawn@agr_smart_terrain_1_3 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@agr_smart_terrain_1_3] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +faction_base_defense_enemy1 = agroprom\agr_smart_terrain_1_3_smart_logic.ltx +faction_base_defense_enemy2 = agroprom\agr_smart_terrain_1_3_smart_logic.ltx +faction_base_defense_enemy3 = agroprom\agr_smart_terrain_1_3_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_6.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_6.ltx new file mode 100644 index 00000000..93dc1d88 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_6.ltx @@ -0,0 +1,81 @@ +[smart_terrain] +squad_id = 3 +max_population = 3 +respawn_params = respawn@agr_smart_terrain_1_6 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@agr_smart_terrain_1_6] ;-- Type: faction {army} = faction base\courtyard +spawn_army@novice +spawn_army@advanced +spawn_army@veteran +spawn_army_special + + +[spawn_army@novice] +spawn_squads = army_sim_squad_novice, army_sim_squad_novice, army_sim_squad_advanced +spawn_num = {+agr_military_colonel_kovalski_dead} 2, 3 + +[spawn_army@advanced] +spawn_squads = army_sim_squad_advanced, army_sim_squad_advanced, army_sim_squad_novice +spawn_num = {+agr_military_colonel_kovalski_dead} 1, 3 + +[spawn_army@veteran] +spawn_squads = army_sim_squad_veteran, army_sim_squad_advanced, army_sim_squad_advanced +spawn_num = {+agr_military_colonel_kovalski_dead} 0, 2 + +[spawn_army_special] +spawn_squads = agr_1_6_guards_army_mlr_squad +spawn_num = {!squad_name_exist(agr_1_6_guards_army_mlr_squad) -agr_military_colonel_kovalski_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +agr_1_6_barman_army_mlr = agroprom\agr_1_6_barman_army_mlr.ltx +agr_1_6_medic_army_mlr = agroprom\agr_1_6_medic_army_mlr.ltx +agr_smart_terrain_1_6_army_trader = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_army_mechanic = agroprom\agr_smart_terrain_1_6_smart_logic.ltx + +agr_smart_terrain_1_6_minigunner_excl = agroprom\agr_smart_terrain_1_6_smart_logic.ltx + +agr_smart_terrain_1_6_camp_work_1 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_2 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_3 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_4 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_5 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_6 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_7 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_8 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_9 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_10 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_11 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_12 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_13 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_14 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_15 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_16 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_17 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_18 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_19 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_20 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_21 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_22 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_23 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +agr_smart_terrain_1_6_camp_work_24 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx + +faction_base_defense_enemy1 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +faction_base_defense_enemy2 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +faction_base_defense_enemy3 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +faction_base_defense_enemy4 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +faction_base_defense_enemy5 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx +faction_base_defense_enemy6 = agroprom\agr_smart_terrain_1_6_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_6_near_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_6_near_1.ltx new file mode 100644 index 00000000..5ab374bb --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_6_near_1.ltx @@ -0,0 +1,41 @@ +[smart_terrain] +squad_id = 4 +max_population = 2 +respawn_params = respawn@agr_smart_terrain_1_6_near_1_near_1 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@agr_smart_terrain_1_6_near_1_near_1] ;-- Type: faction {army} = faction base\north gate +spawn_army_patrol +spawn_army_special + + +[spawn_army_patrol] +spawn_squads = agr_patrol_army_mlr_squad +spawn_num = {!squad_name_exist(agr_patrol_army_mlr_squad) -agr_military_colonel_kovalski_dead} 1, 0 + +[spawn_army_special] +spawn_squads = agr_1_6_guards_army_mlr_2_squad +spawn_num = {!squad_name_exist(agr_1_6_guards_army_mlr_2_squad) -agr_military_colonel_kovalski_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +agr_smart_terrain_1_6_near_1_camp_work_1 = agroprom\agr_smart_terrain_1_6_near_1_smart_logic.ltx +agr_smart_terrain_1_6_near_1_camp_work_2 = agroprom\agr_smart_terrain_1_6_near_1_smart_logic.ltx +agr_smart_terrain_1_6_near_1_camp_work_3 = agroprom\agr_smart_terrain_1_6_near_1_smart_logic.ltx +agr_smart_terrain_1_6_near_1_camp_work_4 = agroprom\agr_smart_terrain_1_6_near_1_smart_logic.ltx +agr_smart_terrain_1_6_near_1_camp_work_5 = agroprom\agr_smart_terrain_1_6_near_1_smart_logic.ltx + +agr_smart_terrain_1_6_near_1_patrol_work_1 = agroprom\agr_smart_terrain_1_6_near_1_smart_logic.ltx +agr_smart_terrain_1_6_near_1_patrol_work_2 = agroprom\agr_smart_terrain_1_6_near_1_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_6_near_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_6_near_2.ltx new file mode 100644 index 00000000..26a3705f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_1_6_near_2.ltx @@ -0,0 +1,40 @@ +[smart_terrain] +squad_id = 5 +max_population = 2 +respawn_params = respawn@agr_smart_terrain_1_6_near_2 +respawn_only_smart = false +respawn_idle = 345600 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@agr_smart_terrain_1_6_near_2] ;-- Type: faction {army} = faction base\building +spawn_army_special +spawn_heli_strong +spawn_heli_weak + + + +[spawn_army_special] +spawn_squads = agr_1_6_guards_army_mlr_3_squad +spawn_num = {!squad_name_exist(agr_1_6_guards_army_mlr_3_squad) -agr_military_colonel_kovalski_dead} 1, 0 + +[spawn_heli_strong] +spawn_helicopter = simulation_helicopter_strong +spawn_num = {!down_to_earth_functor !heli_exist_on_level} 1,{-agr_military_colonel_kovalski_dead} 0 + +[spawn_heli_weak] +spawn_helicopter = simulation_helicopter_weak +spawn_num = {=down_to_earth_functor !heli_exist_on_level} 1,{-agr_military_colonel_kovalski_dead} 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +agr_military_colonel_kovalski = agroprom\agr_smart_terrain_1_6_near_2_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_2_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_2_2.ltx new file mode 100644 index 00000000..a1309e73 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_2_2.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 6 +max_population = 2 +respawn_params = respawn@gar_smart_terrain_2_2 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@gar_smart_terrain_2_2] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 tushkano + 2 dogs + 1 cats + 1 flesh ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_cat_3_5, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_4.ltx new file mode 100644 index 00000000..6e347749 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_4.ltx @@ -0,0 +1,29 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 7 +max_population = 1 +;respawn_params = respawn@agr_smart_terrain_4_4 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@agr_smart_terrain_4_4] ;-- Type: faction {army} = factory occupied\factory deserted + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +agr_smart_terrain_4_4_camp_work_1 = agroprom\agr_smart_terrain_4_4_smart_logic.ltx +agr_smart_terrain_4_4_camp_work_2 = agroprom\agr_smart_terrain_4_4_smart_logic.ltx +agr_smart_terrain_4_4_camp_work_3 = agroprom\agr_smart_terrain_4_4_smart_logic.ltx +agr_smart_terrain_4_4_camp_work_4 = agroprom\agr_smart_terrain_4_4_smart_logic.ltx +agr_smart_terrain_4_4_camp_work_5 = agroprom\agr_smart_terrain_4_4_smart_logic.ltx + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_4_near_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_4_near_1.ltx new file mode 100644 index 00000000..9f6594da --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_4_near_1.ltx @@ -0,0 +1,28 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 8 +max_population = 1 +;respawn_params = respawn@agr_smart_terrain_4_4_near_1_near_1 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@agr_smart_terrain_4_4_near_1_near_1] ;-- Type: faction {army} = factory occupied\factory deserted + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +agr_smart_terrain_4_4_near_1_camp_work_1 = agroprom\agr_smart_terrain_4_4_near_1_smart_logic.ltx +agr_smart_terrain_4_4_near_1_camp_work_2 = agroprom\agr_smart_terrain_4_4_near_1_smart_logic.ltx +;agr_smart_terrain_4_4_near_1_camp_work_3 = agroprom\agr_smart_terrain_4_4_near_1_smart_logic.ltx +;agr_smart_terrain_4_4_near_1_camp_work_4 = agroprom\agr_smart_terrain_4_4_near_1_smart_logic.ltx +;agr_smart_terrain_4_4_near_1_camp_work_5 = agroprom\agr_smart_terrain_4_4_near_1_smart_logic.ltx + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_4_near_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_4_near_2.ltx new file mode 100644 index 00000000..64cb6022 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_4_near_2.ltx @@ -0,0 +1,27 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 9 +max_population = 1 +;respawn_params = respawn@agr_smart_terrain_4_4_near_2 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@agr_smart_terrain_4_4_near_2] ;-- Type: faction {army} = factory occupied\factory deserted + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +agr_smart_terrain_4_4_near_2_camp_work_1 = agroprom\agr_smart_terrain_4_4_near_2_smart_logic.ltx +agr_smart_terrain_4_4_near_2_camp_work_2 = agroprom\agr_smart_terrain_4_4_near_2_smart_logic.ltx +;agr_smart_terrain_4_4_near_2_camp_work_3 = agroprom\agr_smart_terrain_4_4_near_2_smart_logic.ltx +;agr_smart_terrain_4_4_near_2_camp_work_4 = agroprom\agr_smart_terrain_4_4_near_2_smart_logic.ltx +;agr_smart_terrain_4_4_near_2_camp_work_5 = agroprom\agr_smart_terrain_4_4_near_2_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_4_near_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_4_near_3.ltx new file mode 100644 index 00000000..a883efcb --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_4_near_3.ltx @@ -0,0 +1,27 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 10 +max_population = 1 +;respawn_params = respawn@agr_smart_terrain_4_4_near_3 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@agr_smart_terrain_4_4_near_3] ;-- Type: faction {army} = factory occupied\factory deserted + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +agr_smart_terrain_4_4_near_3_camp_work_1 = agroprom\agr_smart_terrain_4_4_near_3_smart_logic.ltx +agr_smart_terrain_4_4_near_3_camp_work_2 = agroprom\agr_smart_terrain_4_4_near_3_smart_logic.ltx +;agr_smart_terrain_4_4_near_3_camp_work_3 = agroprom\agr_smart_terrain_4_4_near_3_smart_logic.ltx +;agr_smart_terrain_4_4_near_3_camp_work_4 = agroprom\agr_smart_terrain_4_4_near_3_smart_logic.ltx +;agr_smart_terrain_4_4_near_3_camp_work_5 = agroprom\agr_smart_terrain_4_4_near_3_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_6.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_6.ltx new file mode 100644 index 00000000..0ddf9d23 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_4_6.ltx @@ -0,0 +1,25 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 11 +max_population = 1 +;respawn_params = respawn@agr_smart_terrain_4_6 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@agr_smart_terrain_4_6] ;-- Type: faction {army} = campsite + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +faction_base_defense_enemy1 = agroprom\agr_smart_terrain_4_6_smart_logic.ltx +faction_base_defense_enemy2 = agroprom\agr_smart_terrain_4_6_smart_logic.ltx +faction_base_defense_enemy3 = agroprom\agr_smart_terrain_4_6_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_2.ltx new file mode 100644 index 00000000..70245852 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_2.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 12 +max_population = 2 +respawn_params = respawn@agr_smart_terrain_5_2 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@agr_smart_terrain_5_2] ;-- Type: +spawn_all_normal +spawn_snork + + +[spawn_all_normal] ;-- Normal mutants - Rates of groups:(1 tushkano + 2 dogs + 2 cats + 3 fleshes/boars) +spawn_squads = simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_cat, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {~50} 1, 0 + +[spawn_snork] ;-- Normal\Hard mutants - Rates of groups: ( 3 snork + 2 fracture ) +spawn_squads = simulation_snork_2_3, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture, simulation_fracture +spawn_num = 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_3.ltx new file mode 100644 index 00000000..47780776 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_3.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 13 +max_population = 1 +respawn_params = respawn@agr_smart_terrain_5_3 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@agr_smart_terrain_5_3] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 tushkano + 2 dogs + 1 cats + 1 flesh ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_cat_3_5, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_4.ltx new file mode 100644 index 00000000..33047b5c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_4.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 17 +max_population = 1 +;respawn_params = respawn@agr_smart_terrain_5_4 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@agr_smart_terrain_5_4] ;-- Type: faction {army} = checkpoint + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_7.ltx new file mode 100644 index 00000000..ef5cd47b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_5_7.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 14 +max_population = 2 +respawn_params = respawn@agr_smart_terrain_5_7 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@agr_smart_terrain_5_7] ;-- Type: +spawn_zombie +spawn_snork + + +[spawn_zombie] ;-- Weak mutants - Rates of groups: ( 3 zombie ) +spawn_squads = simulation_zombie_3_6, simulation_zombie_3_6, simulation_mix_zombie +spawn_num = {+yan_kill_brain_done} 0, 1 + +[spawn_snork] ;-- Hard mutants - Rates of groups: ( 3 snork + 1 fracture ) +spawn_squads = simulation_snork_2_3, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture +spawn_num = 1, 0 ;{~50} + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_6_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_6_4.ltx new file mode 100644 index 00000000..21046fc7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_6_4.ltx @@ -0,0 +1,27 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 15 +max_population = 2 +;respawn_params = respawn@agr_smart_terrain_6_4 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@agr_smart_terrain_6_4] ;-- Type: hideout + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +agr_smart_terrain_6_4_camp_work_1 = agroprom\agr_smart_terrain_6_4_smart_logic.ltx +agr_smart_terrain_6_4_camp_work_2 = agroprom\agr_smart_terrain_6_4_smart_logic.ltx +agr_smart_terrain_6_4_camp_work_3 = agroprom\agr_smart_terrain_6_4_smart_logic.ltx +agr_smart_terrain_6_4_camp_work_4 = agroprom\agr_smart_terrain_6_4_smart_logic.ltx +agr_smart_terrain_6_4_camp_work_5 = agroprom\agr_smart_terrain_6_4_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_6_6.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_6_6.ltx new file mode 100644 index 00000000..e1679e36 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_6_6.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 17 +max_population = 1 +respawn_params = respawn@agr_smart_terrain_6_6 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@agr_smart_terrain_6_6] ;-- Type: +spawn_zombie +spawn_snork + + +[spawn_zombie] ;-- Weak mutants - Rates of groups: ( 3 zombie ) +spawn_squads = simulation_zombie_3_6, simulation_zombie_3_6, simulation_mix_zombie, +spawn_num = {+yan_kill_brain_done} 0, 1 + +[spawn_snork] ;-- Normal\hard mutants - Rates of groups: ( 3 snork + 2 fracture ) +spawn_squads = simulation_snork, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture, simulation_fracture +spawn_num = 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_7_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_7_4.ltx new file mode 100644 index 00000000..35621bb7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_7_4.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 17 +max_population = 1 +;respawn_params = respawn@agr_smart_terrain_7_4 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@agr_smart_terrain_7_4] ;-- Type: faction {army} = guardpost + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_7_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_7_5.ltx new file mode 100644 index 00000000..7ece5081 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom/smart/agr_smart_terrain_7_5.ltx @@ -0,0 +1,38 @@ +[smart_terrain] +squad_id = 16 +max_population = 1 +respawn_params = respawn@agr_smart_terrain_7_5 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@agr_smart_terrain_7_5] ;-- Type: c_2_1 + c_2_2 edited +spawn_predatory_c_2_1 +spawn_predatory_c_2_2 +spawn_snork + + +[spawn_predatory_c_2_1] ;-- Hard mutants - Rates of groups: ( 1 dogs + 3 lurker ) +spawn_squads = simulation_mix_dogs, simulation_lurker_blue, simulation_lurker_brown, simulation_lurker_black +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_predatory_c_2_2] ;-- Hard mutants - Rates of groups: ( 1 dogs + 3 lurker + 1 psy dog ) +spawn_squads = simulation_mix_dogs, simulation_lurker_1_2, simulation_lurker_1_2, simulation_lurker_1_2, simulation_psy_dog_squad +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + +[spawn_snork] ;-- Normal\Hard mutants - Rates of groups: ( 3 snork + 2 fracture ) +spawn_squads = simulation_snork_2_3, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture, simulation_fracture +spawn_num = 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/agr_u_soldiers_spawn_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/agr_u_soldiers_spawn_logic.ltx new file mode 100644 index 00000000..5200ee5b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/agr_u_soldiers_spawn_logic.ltx @@ -0,0 +1,101 @@ +[walker@generic] +gather_items_enabled = true +help_wounded_enabled = true +corpse_detection_enabled = true +turn_on_campfire = false + +[logic@agr_u_soldiers_squad_1] +active = walker@agr_u_soldiers_squad_1 +suitable = {=target_squad_name(agr_u_soldiers_squad)} true +prior = 200 + +[walker@agr_u_soldiers_squad_1]:walker@generic +path_walk = walk1 +path_look = look1 +combat_ignore_cond = {=check_enemy_name(actor)} false, true +danger = danger + +[logic@agr_u_soldiers_squad_2] +active = walker@agr_u_soldiers_squad_2 +suitable = {=target_squad_name(agr_u_soldiers_squad)} true +prior = 200 +on_death = death + +[walker@agr_u_soldiers_squad_2]:walker@generic +path_walk = walk2 +path_look = look2 +combat_ignore_cond = {=check_enemy_name(actor)} false, true +danger = danger + +[logic@agr_u_soldiers_squad_3] +active = walker@agr_u_soldiers_squad_3 +suitable = {=target_squad_name(agr_u_soldiers_squad)} true +prior = 200 + +[walker@agr_u_soldiers_squad_3]:walker@generic +path_walk = walk3 +path_look = look3 +combat_ignore_cond = {=check_enemy_name(actor)} false, true +danger = danger + +[logic@agr_u_soldiers_squad_4] +active = walker@agr_u_soldiers_squad_4 +suitable = {=target_squad_name(agr_u_soldiers_squad)} true +prior = 200 + +[walker@agr_u_soldiers_squad_4]:walker@generic +path_walk = walk9 +;path_look = look9 +combat_ignore_cond = {=check_enemy_name(actor)} false, true +danger = danger + +[logic@agr_u_soldiers_squad_5] +active = walker@agr_u_soldiers_squad_5 +suitable = {=target_squad_name(agr_u_soldiers_squad)} true +prior = 200 + +[walker@agr_u_soldiers_squad_5]:walker@generic +path_walk = walk5 +path_look = look5 +combat_ignore_cond = {=check_enemy_name(actor)} false, true +danger = danger + +[logic@agr_u_soldiers_squad_6] +active = walker@agr_u_soldiers_squad_6 +suitable = {=target_squad_name(agr_u_soldiers_squad)} true +prior = 200 + +[walker@agr_u_soldiers_squad_6]:walker@generic +path_walk = walk11 +;path_look = look10 +combat_ignore_cond = {=check_enemy_name(actor)} false, true +danger = danger + +[logic@agr_u_soldiers_squad_7] +active = walker@agr_u_soldiers_squad_7 +suitable = {=target_squad_name(agr_u_soldiers_squad)} true +prior = 200 + +[walker@agr_u_soldiers_squad_7]:walker@generic +path_walk = walk7 +path_look = look7 +combat_ignore_cond = {=check_enemy_name(actor)} false, true +danger = danger + +[logic@agr_u_soldiers_squad_8] +active = walker@agr_u_soldiers_squad_8 +suitable = {=target_squad_name(agr_u_soldiers_squad)} true +prior = 200 + +[walker@agr_u_soldiers_squad_8]:walker@generic +path_walk = walk12 +;path_look = look8 +combat_ignore_cond = {=check_enemy_name(actor)} false, true +danger = danger + +[danger] +;danger_expiration_time = 60000 +danger_inertion_time_grenade = 90000 +danger_inertion_time_hit = 90000 +danger_inertion_time_sound = 90000 +danger_inertion_time_ricochet = 90000 diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agr_blood_growl_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agr_blood_growl_redone.ltx new file mode 100644 index 00000000..92026271 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agr_blood_growl_redone.ltx @@ -0,0 +1,14 @@ +![logic] +!active = sr_idle +active = sr_idle@wait_actor + +[sr_idle@wait_actor] +on_actor_in_zone = agr_blood_growl | sr_idle@spawn_mutants + +[sr_idle@spawn_mutants] +on_info = sr_idle@timer %=create_squad(simulation_snork_2_5:agr_u_bloodsucker) =create_squad(simulation_snork:agr_u_bloodsucker_2)% + +[sr_idle@timer] + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agr_u_controller_rest_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agr_u_controller_rest_redone.ltx new file mode 100644 index 00000000..cb66013c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agr_u_controller_rest_redone.ltx @@ -0,0 +1,12 @@ +![logic] +!active = sr_idle +active = sr_idle@wait_actor + +[sr_idle@wait_actor] +on_actor_in_zone = agr_u_controller_rest | sr_idle@spawn_mutants + +[sr_idle@spawn_mutants] +on_info = sr_idle@timer %=create_squad(simulation_snork:agr_u_bloodsucker)% + +[sr_idle@timer] + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agr_u_zombie_rest_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agr_u_zombie_rest_redone.ltx new file mode 100644 index 00000000..819156bd --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agr_u_zombie_rest_redone.ltx @@ -0,0 +1,16 @@ +![logic] +!active = sr_idle@nil +active = sr_idle@spawn_zombie + +[sr_idle@spawn_zombie] +on_game_timer = 5 | sr_idle@wait_actor %=create_squad(simulation_zombie_3_6:agr_u_bloodsucker_2)% + +[sr_idle@wait_actor] +on_actor_in_zone = agr_u_zombie_rest | sr_idle@spawn_bloodsucker + +[sr_idle@spawn_bloodsucker] +on_info = sr_idle@timer %=create_squad(agr_u_bloodsucker_3_squad:agr_u_bloodsucker) =play_snd_from_obj(396:monsters\bloodsucker\bloodsucker_script_attack_0)% + +[sr_idle@timer] + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agru_bloodsucker_spawn_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agru_bloodsucker_spawn_redone.ltx new file mode 100644 index 00000000..c3286e09 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agru_bloodsucker_spawn_redone.ltx @@ -0,0 +1,15 @@ +![logic] +!active = sr_idle@line_0 +active = sr_idle@spawn_snork + +[sr_idle@spawn_snork] +on_game_timer = 5 | sr_idle@wait_actor % =create_squad(simulation_snork:agr_u_bloodsucker)% + +[sr_idle@wait_actor] +on_actor_in_zone = agru_go_out_zone | sr_idle@spawn_snork_2 + +[sr_idle@spawn_snork_2] +on_info = sr_idle@timer %=create_squad(simulation_snork_2_3:agr_u_bloodsucker_2)% + +[sr_idle@timer] + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agru_poltergeist_end_spawns_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agru_poltergeist_end_spawns_redone.ltx new file mode 100644 index 00000000..588ed14a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agru_poltergeist_end_spawns_redone.ltx @@ -0,0 +1,13 @@ +![logic] +!active = sr_idle@line_0 +active = sr_idle@wait_actor + +[sr_idle@wait_actor] +on_actor_in_zone = agru_spawn_polter_zone | sr_idle@spawn_mutants + +[sr_idle@spawn_mutants] +on_info = sr_idle@timer %=create_squad(simulation_snork_2_5:agr_u_monsters) =create_squad(simulation_zombie_3_6:agr_u_monsters) =create_squad(simulation_zombie_blind:agr_u_monsters)% + +[sr_idle@timer] + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agru_poltergeists_spawns_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agru_poltergeists_spawns_redone.ltx new file mode 100644 index 00000000..ac8d837d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agru_poltergeists_spawns_redone.ltx @@ -0,0 +1,18 @@ +![logic] +!active = active = sr_idle@line_0 +active = sr_idle@spawn_burer + +[sr_idle@spawn_burer] +on_game_timer = 5 | sr_idle@wait_actor %=create_squad(simulation_burer:agr_u_monsters) =create_squad(simulation_karlik:agr_u_monsters) =create_squad(simulation_snork_2_5:agr_u_monsters)% + +[sr_idle@wait_actor] +on_actor_in_zone = kat_gunslinger_cache_room | sr_idle@spawn_snork + +[sr_idle@spawn_snork] +on_info = sr_idle@timer %=create_squad(simulation_snork_2_3:agr_u_bloodsucker_2)% + +[sr_idle@timer] +on_game_timer = 20 | sr_idle@spawn_army + +[sr_idle@spawn_army] +on_info = sr_idle@line_1 %=create_squad(agr_u_monster_soldiers_squad:agr_u_monsters) =create_squad(agr_u_bandits_soldiers_squad:agr_u_bandits)% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agru_tushkanchiki_spawns_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agru_tushkanchiki_spawns_redone.ltx new file mode 100644 index 00000000..440637c8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_agru_tushkanchiki_spawns_redone.ltx @@ -0,0 +1,23 @@ +![logic] +!active = sr_idle@line_0 +active = sr_idle@spawn_tushkanchik + +[sr_idle@spawn_tushkanchik] +on_actor_in_zone = agru_go_out_zone | sr_idle@timer %=spawn_object(agru_tushkanchik_1:agru_tushkanchiks_spawn_1:0) =spawn_object(agru_tushkanchik_1:agru_tushkanchiks_spawn_2:0) =spawn_object(agru_tushkanchik_1:agru_tushkanchiks_spawn_3:0)% + +[sr_idle@timer] +on_game_timer = 1 | sr_idle@spawn_tushkanchik_2 + +[sr_idle@spawn_tushkanchik_2] +on_game_timer = 1 | sr_idle@timer_2 %=spawn_object(agru_tushkanchik_2:agru_tushkanchiks_spawn_1:0) =spawn_object(agru_tushkanchik_1:agru_tushkanchiks_spawn_1:0) =spawn_object(agru_tushkanchik_1:agru_tushkanchiks_spawn_2:0) =spawn_object(agru_tushkanchik_1:agru_tushkanchiks_spawn_3:0)% + +[sr_idle@timer_2] +on_game_timer = 1 | sr_idle@spawn_tushkanchik_3 + +[sr_idle@spawn_tushkanchik_3] +on_game_timer = 1 | sr_idle@timer_3 %=spawn_object(agru_tushkanchik_3:agru_tushkanchiks_spawn_3:0) =spawn_object(agru_tushkanchik_1:agru_tushkanchiks_spawn_1:0)% + +[sr_idle@timer_3] + + + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_kat_gunslinger_cache_room_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_kat_gunslinger_cache_room_redone.ltx new file mode 100644 index 00000000..14188684 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/mod_kat_gunslinger_cache_room_redone.ltx @@ -0,0 +1,3 @@ +![sr_idle] +on_info = {=actor_has_item(strelok_notes) +living_legend_st +lttz_ll_visit_agro_ug_task} sr_idle@nil %=give_task(lttz_ll_visit_barkeep) +strelok_notes% +on_info2 = {=actor_has_item(strelok_notes) +living_legend_alt +lttz_ll_visit_agro_ug_task} sr_idle@nil %=give_task(lttz_ll_visit_blackjack) +strelok_notes% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_bandits.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_bandits.ltx new file mode 100644 index 00000000..038855ef --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_bandits.ltx @@ -0,0 +1,35 @@ +[smart_terrain] +squad_id = 1 +max_population = 2 +;respawn_params = respawn@agr_u_bandits +;respawn_only_smart = false +;respawn_idle = 259200 +;respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@agr_u_bandits] ;-- Type: +;spawn_all_hard + + +;[spawn_all_hard] ;-- Hard mutants - Rates of groups: ( 1 tushkano + 1 snork + 1 bloodsucker + 1 psysucker + 2 zombie ) +;spawn_squads = simulation_tushkano_7_10, simulation_snork_2_3, simulation_bloodsucker, simulation_psysucker, simulation_zombie_blind, simulation_zombie_blind_3zomb +;spawn_num = {+strelok_notes ~20} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +agr_u_bandits_squad_1 = agroprom_underground\agr_u_bandits_logic.ltx +agr_u_bandits_squad_2 = agroprom_underground\agr_u_bandits_logic.ltx +agr_u_bandits_squad_3 = agroprom_underground\agr_u_bandits_logic.ltx +agr_u_bandits_squad_4 = agroprom_underground\agr_u_bandits_logic.ltx +agr_u_bandits_squad_5 = agroprom_underground\agr_u_bandits_logic.ltx +agr_u_bandits_squad_6 = agroprom_underground\agr_u_bandits_logic.ltx +agr_u_bandits_squad_7 = agroprom_underground\agr_u_bandits_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_bloodsucker.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_bloodsucker.ltx new file mode 100644 index 00000000..24be957c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_bloodsucker.ltx @@ -0,0 +1,29 @@ +[smart_terrain] +squad_id = 2 +max_population = 2 +respawn_params = respawn@agr_u_bloodsucker +respawn_only_smart = false +respawn_idle = 259200 +;respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +spawn_point = agr_u_bloodsucker_home + +[respawn@agr_u_bloodsucker] ;-- Type: +spawn_all_hard + + +[spawn_all_hard] ;-- Hard mutants - Rates of groups: ( 1 snork + 1 bloodsucker + 1 psysucker ) +spawn_squads = simulation_snork_2_3, simulation_bloodsucker, simulation_psysucker +spawn_num = {+strelok_notes} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +agr_u_bloodsucker_1 = agroprom_underground\agru_bloodsucker_1.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_bloodsucker_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_bloodsucker_2.ltx new file mode 100644 index 00000000..538c004e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_bloodsucker_2.ltx @@ -0,0 +1,25 @@ +[smart_terrain] +squad_id = 3 +max_population = 2 +respawn_params = respawn@agr_u_bloodsucker_2 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +spawn_point = agr_u_bloodsucker_2_walk + +[respawn@agr_u_bloodsucker_2] ;-- Type: +spawn_all_hard + + +[spawn_all_hard] ;-- Hard mutants - Rates of groups: ( 1 snork + 1 bloodsucker + 1 psysucker + 2 zombie + 1 karlik ) +spawn_squads = simulation_snork_2_5, simulation_bloodsucker, simulation_psysucker, simulation_zombie_blind, simulation_zombie_blind_3zomb, simulation_karlik +spawn_num = {+strelok_notes} 1, 0 + + +[exclusive] +agr_u_bloodsucker_2 = agroprom_underground\agru_bloodsucker.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_monsters.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_monsters.ltx new file mode 100644 index 00000000..dadbc8b7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_monsters.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 4 +max_population = 4 +respawn_params = respawn@agr_u_monsters +respawn_only_smart = false +respawn_idle = 345600 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +spawn_point = agr_u_monsters_spawn_point + +[respawn@agr_u_monsters] ;-- Type: +spawn_all_worst + + +[spawn_all_worst] ;-- Worst mutants - Rates of groups:( 1 bloodsucker + 1 psysucker + 1 burer + 2 controller ) +spawn_squads = simulation_bloodsucker_1_2, simulation_psysucker_1_2, simulation_bur_5rat_day, simulation_contr_3sn_3gzomb, simulation_contr_5rat_3tush +spawn_num = {+strelok_notes} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] +;agr_u_monsters_controller = agroprom_underground\agru_controller_1.ltx +;agru_poltergeist_squad_1 = agroprom_underground\agru_poltergeist_1.ltx +;agru_poltergeist_squad_2 = agroprom_underground\agru_poltergeist_2.ltx +;agru_poltergeist_squad_3 = agroprom_underground\agru_poltergeist_3.ltx +;agru_poltergeist_squad_4 = agroprom_underground\agru_poltergeist_4.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_soldiers.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_soldiers.ltx new file mode 100644 index 00000000..07472de8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/agroprom_underground/smart/agr_u_soldiers.ltx @@ -0,0 +1,39 @@ +[smart_terrain] +squad_id = 5 +max_population = 1 +respawn_params = respawn@agr_u_soldiers +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 100 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@agr_u_soldiers] +spawn_army_special + + +[spawn_army_special] +spawn_squads = agr_u_soldiers_squad +spawn_num = {!squad_name_exist(agr_u_soldiers_squad) -agr_military_colonel_kovalski_dead} 1, 0 + + +[exclusive] +agr_u_soldiers_squad_1 = agroprom_underground\agr_u_soldiers_spawn_logic.ltx +agr_u_soldiers_squad_2 = agroprom_underground\agr_u_soldiers_spawn_logic.ltx +agr_u_soldiers_squad_3 = agroprom_underground\agr_u_soldiers_spawn_logic.ltx +agr_u_soldiers_squad_4 = agroprom_underground\agr_u_soldiers_spawn_logic.ltx +agr_u_soldiers_squad_5 = agroprom_underground\agr_u_soldiers_spawn_logic.ltx +agr_u_soldiers_squad_6 = agroprom_underground\agr_u_soldiers_spawn_logic.ltx +agr_u_soldiers_squad_7 = agroprom_underground\agr_u_soldiers_spawn_logic.ltx +agr_u_soldiers_squad_8 = agroprom_underground\agr_u_soldiers_spawn_logic.ltx + +;agru_end_poltergeist_squad_1 = agroprom_underground\agru_end_poltergeist_1.ltx +;agru_end_poltergeist_squad_2 = agroprom_underground\agru_end_poltergeist_2.ltx +;agru_end_poltergeist_squad_3 = agroprom_underground\agru_end_poltergeist_3.ltx +;agru_end_poltergeist_squad_4 = agroprom_underground\agru_end_poltergeist_4.ltx + +;agr_u_soldiers_controller = agroprom_underground\agr_u_soldiers_controller.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_1.ltx new file mode 100644 index 00000000..d2262843 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_1.ltx @@ -0,0 +1,33 @@ +[logic] +active = ph_idle@check + +[ph_idle@check] +on_info = {+bar_stalker_barman_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(bar_zastava_dogs_lair) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(bar_zastava_dogs_lair) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(bar_zastava) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(bar_zastava) =is_dark_night} ph_idle@spawn_dark_monster_2 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:bar_zastava_dogs_lair)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:bar_zastava_dogs_lair)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:bar_zastava_dogs_lair)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:bar_zastava_dogs_lair)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:bar_zastava_dogs_lair)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:bar_zastava_dogs_lair)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_1_2_night:bar_zastava_dogs_lair)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_2weak_night:bar_zastava_dogs_lair)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:bar_zastava)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:bar_zastava)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:bar_zastava)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:bar_zastava)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_bloodsucker_1_2_night:bar_zastava)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:bar_zastava)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:bar_zastava)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_2weak_night:bar_zastava)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 480 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_2.ltx new file mode 100644 index 00000000..69a87d56 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_2.ltx @@ -0,0 +1,33 @@ +[logic] +active = ph_idle@check + +[ph_idle@check] +on_info = {+bar_stalker_barman_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(bar_zastava_dogs_lair_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(bar_zastava_dogs_lair_2) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(bar_zastava_2) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(bar_zastava_2) =is_dark_night} ph_idle@spawn_dark_monster_2 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~10} %=create_squad(simulation_mix_zombie_night:bar_zastava_dogs_lair_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:bar_zastava_dogs_lair_2)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_2weak_night:bar_zastava_dogs_lair_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_tushkano_night:bar_zastava_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_dog_night:bar_zastava_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_mix_zombie_night:bar_zastava_2)% ph_idle@reset_2, {~50} %=create_squad(simulation_pseudodog_night:bar_zastava_2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_psysucker_night:bar_zastava_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:bar_zastava_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:bar_zastava_2)% ph_idle@reset_2, {~50} %=create_squad(simulation_bloodsucker_night:bar_zastava_2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_3.ltx new file mode 100644 index 00000000..16b9b6d7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/bar_endless_night_spawn_logic_3.ltx @@ -0,0 +1,33 @@ +[logic] +active = ph_idle@check + +[ph_idle@check] +on_info = {+bar_stalker_barman_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(bar_visitors) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(bar_visitors) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(bar_dolg_general) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(bar_dolg_general) =is_dark_night} ph_idle@spawn_dark_monster_2 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:bar_visitors)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:bar_visitors)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:bar_visitors)% ph_idle@reset, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:bar_visitors)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:bar_visitors)% ph_idle@reset, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:bar_visitors)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:bar_visitors)% ph_idle@reset, {~10} %=create_squad(simulation_bur_5rat_day_night:bar_visitors)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:bar_dolg_general)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:bar_dolg_general)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:bar_dolg_general)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:bar_dolg_general)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:bar_dolg_general)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:bar_dolg_general)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_night:bar_dolg_general)% ph_idle@reset_2, {~10} %=create_squad(simulation_contr_5rat_3tush_night:bar_dolg_general)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_barman_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_barman_redone.ltx new file mode 100644 index 00000000..13f93896 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_barman_redone.ltx @@ -0,0 +1,5 @@ +![logic@bar_barman] +on_death = death + +[death] +on_info = %+bar_stalker_barman_dead% \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_crow_spawner_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_crow_spawner_redone.ltx new file mode 100644 index 00000000..3eaca5e2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_crow_spawner_redone.ltx @@ -0,0 +1,27 @@ +![logic] +!active = sr_crow_spawner +active = sr_idle@check_story + +[sr_idle@check_story] +on_info = {-story_mode_disabled} sr_idle@check_actor, {+story_mode_disabled -yan_x16_complete_end} sr_idle@check_actor %+yan_kill_brain_done% + +[sr_idle@check_actor] +on_info = {=actor_community(actor_monolith) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, {=actor_community(actor_greh) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, sr_idle@check_helmet + +[sr_idle@check_helmet] +on_info = {=actor_has_item(good_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, {=actor_has_item(bad_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, sr_idle@check_spawner + +[sr_idle@check_spawner] +on_info = sr_crow_spawner + +![sr_crow_spawner] +max_crows_on_level = 4 +spawn_path = bar_crow_spawn_1, bar_crow_spawn_2, bar_crow_spawn_3, bar_crow_spawn_4, bar_crow_spawn_5 + +on_info50 = {+bar_dolg_leader_dead +bar_dolg_petrenko_dead -bar_stalker_barman_dead -bar_spawn_complete =actor_community(actor_freedom)} sr_idle@spawn_1 + +[sr_idle@spawn_1]:sr_crow_spawner +on_game_timer = 43200 | sr_idle@spawn_end %=create_squad(bar_freedom_general_squad:bar_dolg_general) =create_squad(bar_freedom_bunker_squad:bar_dolg_bunker) =create_squad(bar_freedom_security_squad:bar_zastava) =create_squad(bar_freedom_guard_squad:bar_zastava_2) =create_squad(bar_freedom_visitors_squad:bar_visitors)% + +[sr_idle@spawn_end]:sr_crow_spawner +on_info = sr_crow_spawner %+bar_spawn_complete% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_dolg_bunker_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_dolg_bunker_logic_redone.ltx new file mode 100644 index 00000000..886e1857 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_dolg_bunker_logic_redone.ltx @@ -0,0 +1,5 @@ +![logic@bar_dolg_leader] +on_death = death_leader + +[death_leader] +on_info = %+bar_dolg_leader_dead% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_dolg_general_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_dolg_general_logic_redone.ltx new file mode 100644 index 00000000..f891e039 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_dolg_general_logic_redone.ltx @@ -0,0 +1,23 @@ +![logic@bar_dolg_general_animpoint_kamp1] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@bar_dolg_general_animpoint_kamp2] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@bar_dolg_general_animpoint_kamp3] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@bar_dolg_general_animpoint_kamp4] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@bar_dolg_general_petrenko] +on_death = death_petrenko + +[death_petrenko] +on_info = %+bar_dolg_petrenko_dead% + +![walker@zoneguard] +on_actor_in_zone = bar_angar_warn_zone | {=squad_exist(bar_dolg_general_zoneguard_stalker_squad)} %=play_sound(bar_dolg_hangar_bridge_hello)% + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_dolg_medic_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_dolg_medic_logic_redone.ltx new file mode 100644 index 00000000..e725b487 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_dolg_medic_logic_redone.ltx @@ -0,0 +1,50 @@ +![logic@bar_dolg_medic_bodyguard] +suitable = {=check_npc_name(bodyguard_duty_medic_bar_general)} true +active = beh@bar_dolg_medic_bodyguard_work_1 +prior = 200 + +![logic@sick_duty_stalker_bar_general] +suitable = {=npc_community(dolg)} true +active = beh@sick_duty_stalker_bar_work_1 +prior = 200 + +[beh@general_guard] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = false +meet = no_meet + +[beh@bar_dolg_medic_bodyguard_work_1]:beh@general_guard +pt1 = 550000, guard | pos: 215.04228210449, -0.0024391263723373, 87.582168579102 look: 214.31143188477, -0.00078193843364716, 88.59651184082 +pt2 = 550000, guard | pos: 213.11221313477, -0.0014052391052246, 79.957397460938 look: 211.63789367676, 0.0025523006916046, 80.154670715332 +path_end = loop +on_info = {=surge_started} beh@bar_dolg_medic_bodyguard_surge_work_1 + +[beh@sick_duty_stalker_bar_work_1]:beh@general_guard +pt1 = 550000, drunk_sit_ass | pos: 212.45147705078, 0.49908804893494, 100.85985565186 look: 214.05770874023, 0.51219016313553, 99.761573791504 +pt2 = 550000, drunk_sit_ass | pos: 229.58151245117, -5.4488806724548, 135.42195129395 look: 229.89572143555, -5.4484519958496, 134.61743164062 +pt3 = 550000, drunk_sit_ass | pos: 186.19718933105, 0.038859516382217, 124.56587219238 look: 186.40625, 0.03945255279541, 123.33502197266 +path_end = loop +;on_actor_in_zone = bar_dolg_general_kill_zone | %=play_sound(sick_duty_phrases)% +on_info = {=surge_started} beh@sick_duty_stalker_surge_work_1 + +[beh@bar_dolg_medic_bodyguard_surge_work_1]:beh@general_guard +pt1 = 88860000, smoking_stand | pos: 215.43209838867, -0.005574032664299, 94.977149963379 look: 214.63287353516, 0.49839854240417, 103.70713806152 +path_end = loop +on_info = {=surge_complete} beh@bar_dolg_medic_bodyguard_work_1 + +[beh@sick_duty_stalker_surge_work_1]:beh@general_guard +pt1 = 88860000, drunk_sit_ass | pos: 212.45147705078, 0.49908804893494, 100.85985565186 look: 214.05770874023, 0.51219016313553, 99.761573791504 +path_end = loop +on_info = {=surge_complete} beh@sick_duty_stalker_bar_work_1 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_dolg_megafone_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_dolg_megafone_redone.ltx new file mode 100644 index 00000000..54c8fbd5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_dolg_megafone_redone.ltx @@ -0,0 +1,48 @@ +![ph_idle@default] +!on_info = %=play_sound(bar_dolg_speech)% +on_info2 = {=is_day() -bar_dolg_leader_dead} %=play_sound(bar_dolg_speech)% ph_idle@sound_idle +on_info3 = {+bar_arena_start} ph_idle@idle %=stop_sound%, {+bar_territory_nodolg_1_hit -bar_dolg_territory_1_hit_notify} ph_idle@1_hit %=stop_sound%, {+bar_territory_nodolg_2_hit -bar_dolg_territory_2_hit_notify} ph_idle@2_hit %=stop_sound%, {+bar_territory_nodolg_kill -bar_dolg_territory_kill_notify} ph_idle@kill %=stop_sound%, {=check_smart_alarm_status(bar_dolg_general)} ph_idle@alarm %=stop_sound%, {=check_smart_alarm_status(bar_dolg_bunker)} ph_idle@alarm %=stop_sound%, {=check_smart_alarm_status(bar_visitors)} ph_idle@alarm %=stop_sound%, {=check_smart_alarm_status(bar_zastava)} ph_idle@alarm %=stop_sound%, {=check_smart_alarm_status(bar_zastava_2)} ph_idle@alarm %=stop_sound% +;on_info4 = {=actor_has_weapon} ph_idle@warn %=stop_sound% +on_info5 = {=surge_started} ph_idle@surge %=stop_sound% + +[ph_idle@sound_idle] +on_info = {+bar_arena_start_introduce} ph_idle@idle %=stop_sound% +on_info2 = {+bar_territory_nodolg_1_hit -bar_dolg_territory_1_hit_notify} ph_idle@1_hit %=stop_sound%, {+bar_territory_nodolg_2_hit -bar_dolg_territory_2_hit_notify} ph_idle@2_hit %=stop_sound%, {+bar_territory_nodolg_kill -bar_dolg_territory_kill_notify} ph_idle@kill %=stop_sound%, {=check_smart_alarm_status(bar_dolg_general)} ph_idle@alarm %=stop_sound%, {=check_smart_alarm_status(bar_dolg_bunker)} ph_idle@alarm %=stop_sound%, {=check_smart_alarm_status(bar_visitors)} ph_idle@alarm %=stop_sound%, {=check_smart_alarm_status(bar_zastava)} ph_idle@alarm %=stop_sound%, {=check_smart_alarm_status(bar_zastava_2)} ph_idle@alarm %=stop_sound% +;on_info3 = {=actor_has_weapon} ph_idle@warn %=stop_sound% +on_info4 = {=surge_started} ph_idle@surge %=stop_sound%, +on_game_timer = 750 | ph_idle@default + +![ph_idle@alarm] +on_info = %=play_sound(bar_dolg_alarm)% +on_info2 = {!check_smart_alarm_status(bar_dolg_bunker)} ph_idle@default +on_info3 = {!check_smart_alarm_status(bar_dolg_general)} ph_idle@default +on_info4 = {!check_smart_alarm_status(bar_visitors)} ph_idle@default +on_info5 = {!check_smart_alarm_status(bar_zastava)} ph_idle@default +on_info6 = {!check_smart_alarm_status(bar_zastava_2)} ph_idle@default +on_info7 = {+bar_arena_start_introduce} ph_idle@idle +on_info8 = {=surge_started} ph_idle@surge +on_timer = 5000 | ph_idle@default + +;[ph_idle@warn] +;on_info = %=play_sound(bar_dolg_warn)% +;on_info2 = {!actor_has_weapon} ph_idle@default +;on_info3 = {+bar_arena_start_introduce} ph_idle@idle +;on_info4 = {=surge_started} ph_idle@surge +;on_timer = 5000 | ph_idle@default + +[ph_idle@surge] +on_game_timer = 100 | ph_idle@surge_started + +[ph_idle@surge_started] +on_info = %=play_sound(bar_blowout_siren_1)% +;on_info2 = {!surge_started} ph_idle@default +on_game_timer = 370 | ph_idle@surge_siren_end + +[ph_idle@surge_siren_end] +on_info = %=play_sound(bar_blowout_siren_2)% +on_signal = sound_end | ph_idle@surge_act_idle + +[ph_idle@surge_act_idle] +on_info = {+bar_arena_start_introduce} ph_idle@idle +on_info2 = {=surge_started} ph_idle@surge +on_game_timer = 1240 | ph_idle@default diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_visitors_other_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_visitors_other_logic_redone.ltx new file mode 100644 index 00000000..91297920 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_visitors_other_logic_redone.ltx @@ -0,0 +1,30 @@ +[logic@beh_bar_informator_mlr] +suitable = {=check_npc_name(bar_informator_mlr)} true +active = beh@bar_informator_mlr_work_1 +prior = 200 + +![animpoint@base] +on_info = {=is_night} beh@bar_informator_mlr_work_1 + +[beh@general_work] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +meet = meet_inf + +[beh@bar_informator_mlr_work_1]:beh@general_work +pt1 = 50000, smoking_stand | pos: 147.17349243164, 0.09841713309288, 86.409355163574 look: 145.56069946289, 0.099710553884506, 88.298324584961 +pt1 = 550000, ward | pos: 147.17349243164, 0.09841713309288, 86.409355163574 look: 145.56069946289, 0.099710553884506, 88.298324584961 +path_end = loop +on_info = {!is_night} animpoint@base diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_visitors_radio_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_visitors_radio_redone.ltx new file mode 100644 index 00000000..058969f2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_visitors_radio_redone.ltx @@ -0,0 +1,2 @@ +![ph_sound] +volume = {=surge_started}0, 1 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_zastava_2_smart_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_zastava_2_smart_redone.ltx new file mode 100644 index 00000000..b58b8eb2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_zastava_2_smart_redone.ltx @@ -0,0 +1,14 @@ +![logic@duty2_guard1] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@duty2_guard2] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@duty2_guard3] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@duty2_guard4] +suitable = {=check_npc_name(bar_zastava_2_commander) =npc_in_zone(bar_zastava_restrictor_2) !surge_started} true, {=npc_community(freedom) =npc_in_zone(bar_zastava_restrictor_2) !surge_started} true + +![logic@duty2_guard5] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_zastava_smart_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_zastava_smart_redone.ltx new file mode 100644 index 00000000..606b5e0a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/mod_bar_zastava_smart_redone.ltx @@ -0,0 +1,26 @@ +![logic@duty_guard1] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@duty_guard2] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@duty_guard3] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@duty_guard4] +suitable = {=check_npc_name(bar_duty_security_squad_leader) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@duty_guard5] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@duty_guard6] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@duty_guard7] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@duty_guard8] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true + +![logic@duty_guard9] +suitable = {=npc_community(dolg) !surge_started} true, {=npc_community(freedom) !surge_started} true diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_dolg_bunker.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_dolg_bunker.ltx new file mode 100644 index 00000000..504af7d2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_dolg_bunker.ltx @@ -0,0 +1,50 @@ +[smart_terrain] +squad_id = 1 +max_population = 2 +respawn_params = respawn@bar_dolg_bunker +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@bar_dolg_bunker] ;-- Type: faction {dolg} = faction base\bunker +;spawn_freedom_special +;spawn_freedom_special_2 +;spawn_freedom_special_3 +spawn_deserted_base +spawn_deserted_base_2 + + +;[spawn_freedom_special] +;spawn_squads = bar_freedom_general_squad +;spawn_num = {!squad_exist(bar_freedom_general_squad) =actor_community(actor_freedom) +bar_dolg_leader_dead +bar_dolg_petrenko_dead -bar_stalker_barman_dead} 1, 0 + +;[spawn_freedom_special_2] +;spawn_squads = bar_freedom_bunker_squad +;spawn_num = {!squad_exist(bar_freedom_bunker_squad) =actor_community(actor_freedom) +bar_dolg_leader_dead +bar_dolg_petrenko_dead -bar_stalker_barman_dead} 1, 0 + +;[spawn_freedom_special_3] +;spawn_squads = bar_freedom_visitors_squad +;spawn_num = {!squad_exist(bar_freedom_visitors_squad) =actor_community(actor_freedom) +bar_dolg_leader_dead +bar_dolg_petrenko_dead -bar_stalker_barman_dead} 1, 0 + + +[spawn_deserted_base] +spawn_squads = bar_dolg_bunker_squad_rat_mlr_squad +spawn_num = {!squad_name_exist(bar_dolg_bunker_squad_rat_mlr_squad) +bar_dolg_leader_dead +bar_dolg_petrenko_dead +bar_stalker_barman_dead} 1, 0 + +[spawn_deserted_base_2] +spawn_squads = bar_dolg_general_squad_rat_mlr_squad +spawn_num = {!squad_name_exist(bar_dolg_general_squad_rat_mlr_squad) +bar_dolg_leader_dead +bar_dolg_petrenko_dead +bar_stalker_barman_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +bar_dolg_leader = bar\bar_dolg_bunker_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_dolg_general.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_dolg_general.ltx new file mode 100644 index 00000000..7c976aac --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_dolg_general.ltx @@ -0,0 +1,74 @@ +[smart_terrain] +squad_id = 2 +max_population = 3 +respawn_params = respawn@bar_dolg_general +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = smart_control +;att_restr = bar_dolg_territory +;def_restr = bar_dolg_territory +;safe_restr = bar_bar_entry_zone +;spawn_point = nil + +[respawn@bar_dolg_general] ;-- Type: faction {dolg} = faction base\courtyard +spawn_duty@novice +spawn_duty@advanced +spawn_duty@veteran +spawn_duty_special +spawn_duty_special_2 +spawn_duty_special_3 +spawn_duty_special_4 + + +[spawn_duty@novice] +spawn_squads = duty_sim_squad_novice, duty_sim_squad_novice, duty_sim_squad_advanced +spawn_num = {+bar_dolg_leader_dead +bar_dolg_petrenko_dead} 0, 2 + +[spawn_duty@advanced] +spawn_squads = duty_sim_squad_advanced, duty_sim_squad_advanced, duty_sim_squad_novice +spawn_num = {+bar_dolg_leader_dead +bar_dolg_petrenko_dead} 0, 2 + +[spawn_duty@veteran] +spawn_squads = duty_sim_squad_veteran, duty_sim_squad_advanced, duty_sim_squad_novice +spawn_num = {+bar_dolg_leader_dead +bar_dolg_petrenko_dead} 0, 2 + +[spawn_duty_special] +spawn_squads = bar_dolg_general_squad +spawn_num = {!squad_name_exist(bar_dolg_general_squad) -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +[spawn_duty_special_2] +spawn_squads = bar_dolg_bunker_squad +spawn_num = {!squad_name_exist(bar_dolg_bunker_squad) -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +[spawn_duty_special_3] +spawn_squads = bar_zastava_2_commander_squad +spawn_num = {!squad_exist(bar_zastava_2_commander_squad) -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +[spawn_duty_special_4] +spawn_squads = bar_duty_security_squad_leader_squad +spawn_num = {!squad_exist(bar_duty_security_squad_leader_squad) -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + + +;[on_changing_level] + +;[smart_control] +;noweap_zone = bar_dolg_territory +;ignore_zone = bar_bar_entry_zone +;alarm_start_sound = bar_dolg_warn +;alarm_stop_sound = nil + +[exclusive] +bar_dolg_medic = bar\bar_dolg_medic_logic.ltx +bar_dolg_medic_bodyguard = bar\bar_dolg_medic_logic.ltx + +bar_dolg_general_petrenko = bar\bar_dolg_general_logic.ltx +bar_dolg_general_zoneguard = bar\bar_dolg_general_logic.ltx + +bar_dolg_general_animpoint_kamp1 = bar\bar_dolg_general_logic.ltx +bar_dolg_general_animpoint_kamp2 = bar\bar_dolg_general_logic.ltx +bar_dolg_general_animpoint_kamp3 = bar\bar_dolg_general_logic.ltx +bar_dolg_general_animpoint_kamp4 = bar\bar_dolg_general_logic.ltx + +;sick_duty_stalker_bar_general = bar\bar_dolg_medic_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_visitors.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_visitors.ltx new file mode 100644 index 00000000..a7eb0bd0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_visitors.ltx @@ -0,0 +1,100 @@ +[smart_terrain] +squad_id = 3 +max_population = 8 +min_population = 3 +respawn_params = respawn@bar_visitors +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@bar_visitors] ;-- Type: Bar 100 +spawn_stalker@novice +spawn_ecolog@novice +spawn_csky@novice + + +[spawn_stalker@novice] +spawn_squads = stalker_sim_squad_advanced_3_4, stalker_sim_squad_novice, stalker_sim_squad_advanced +spawn_num = {+bar_stalker_barman_dead} 0, 1 + +[spawn_ecolog@novice] +spawn_squads = ecolog_sim_squad_novice, ecolog_sim_squad_novice, ecolog_sim_squad_advanced +spawn_num = {+bar_stalker_barman_dead} 0, 1 + +[spawn_csky@novice] +spawn_squads = csky_sim_squad_novice, csky_sim_squad_novice, csky_sim_squad_advanced +spawn_num = {+bar_stalker_barman_dead} 0, 1 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +bar_informator_mlr = bar\bar_visitors_other_logic.ltx +guid_bar_stalker_navigator = bar\bar_visitors_other_logic.ltx +bar_visitors_cardan_tech = bar\bar_visitors_cardan_logic.ltx + +bar_visitors_beh_trade_job_1 = bar\bar_visitors_logic.ltx +bar_visitors_beh_tech_job_1 = bar\bar_visitors_cardan_logic.ltx + +bar_barman = bar\bar_barman.ltx +bar_guard1 = bar\bar_guard1.ltx +bar_guard2 = bar\bar_guard2.ltx + +bar_arena_manager = bar\bar_visitors_logic.ltx +bar_arena_guard = bar\bar_visitors_logic.ltx + +bar_visitors_animp_01 = bar\bar_visitors_logic.ltx +bar_visitors_animp_02 = bar\bar_visitors_logic.ltx +bar_visitors_animp_03 = bar\bar_visitors_logic.ltx +bar_visitors_animp_04 = bar\bar_visitors_logic.ltx +bar_visitors_animp_05 = bar\bar_visitors_logic.ltx +bar_visitors_animp_06 = bar\bar_visitors_logic.ltx +bar_visitors_animp_07 = bar\bar_visitors_logic.ltx +bar_visitors_animp_08 = bar\bar_visitors_logic.ltx +bar_visitors_animp_09 = bar\bar_visitors_logic.ltx +bar_visitors_animp_10 = bar\bar_visitors_logic.ltx +bar_visitors_animp_11 = bar\bar_visitors_logic.ltx +bar_visitors_animp_12 = bar\bar_visitors_logic.ltx +bar_visitors_animp_13 = bar\bar_visitors_logic.ltx +bar_visitors_animp_14 = bar\bar_visitors_logic.ltx +bar_visitors_animp_15 = bar\bar_visitors_logic.ltx +bar_visitors_animp_16 = bar\bar_visitors_logic.ltx +bar_visitors_animp_17 = bar\bar_visitors_logic.ltx +bar_visitors_animp_18 = bar\bar_visitors_logic.ltx +bar_visitors_animp_19 = bar\bar_visitors_logic.ltx +;bar_visitors_animp_20 = bar\bar_visitors_logic.ltx +;bar_visitors_animp_21 = bar\bar_visitors_logic.ltx +;bar_visitors_animp_22 = bar\bar_visitors_logic.ltx +;bar_visitors_animp_23 = bar\bar_visitors_logic.ltx +;bar_visitors_animp_24 = bar\bar_visitors_logic.ltx +;bar_visitors_animp_25 = bar\bar_visitors_logic.ltx +;bar_visitors_animp_26 = bar\bar_visitors_logic.ltx + +bar_visitors_animpoint_kamp1 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp2 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp3 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp4 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp5 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp6 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp7 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp8 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp9 = bar\bar_visitors_logic.ltx + +bar_visitors_animp_arena_1 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_2 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_3 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_4 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_5 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_6 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_7 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_8 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_9 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_10 = bar\bar_visitors_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_zastava.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_zastava.ltx new file mode 100644 index 00000000..e579c7ea --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_zastava.ltx @@ -0,0 +1,64 @@ +[smart_terrain] +squad_id = 4 +max_population = 1 +respawn_params = respawn@bar_zastava +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = bar_dolg_territory +;def_restr = bar_dolg_territory +;safe_restr = nil +;spawn_point = nil + +[respawn@bar_zastava] ;-- Type: checkpoint +;spawn_duty@advanced +;spawn_duty@veteran +;spawn_duty_special +;spawn_freedom_special +spawn_deserted_base + + +;[spawn_duty@advanced] +;spawn_squads = duty_sim_squad_advanced, duty_sim_squad_advanced, duty_sim_squad_novice +;spawn_num = {+bar_zastava_minigunner_dead +bar_zastava_duty_guard1_dead +bar_zastava_duty_guard2_dead +bar_zastava_duty_guard3_dead +bar_zastava_duty_guard4_dead +bar_zastava_duty_guard5_dead +bar_zastava_duty_guard6_dead +bar_zastava_duty_guard7_dead +bar_zastava_duty_guard8_dead +bar_zastava_duty_guard9_dead -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +;[spawn_duty@veteran] +;spawn_squads = duty_sim_squad_veteran, duty_sim_squad_veteran, duty_sim_squad_advanced +;spawn_num = {+bar_zastava_minigunner_dead +bar_zastava_duty_guard1_dead +bar_zastava_duty_guard2_dead +bar_zastava_duty_guard3_dead +bar_zastava_duty_guard4_dead +bar_zastava_duty_guard5_dead +bar_zastava_duty_guard6_dead +bar_zastava_duty_guard7_dead +bar_zastava_duty_guard8_dead +bar_zastava_duty_guard9_dead -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +;[spawn_duty_special] +;spawn_squads = bar_duty_security_squad_leader_squad +;spawn_num = {!squad_exist(bar_duty_security_squad_leader_squad) -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +;[spawn_freedom_special] +;spawn_squads = bar_freedom_security_squad +;spawn_num = {!squad_exist(bar_freedome_security_squad) =actor_community(actor_freedom) +bar_dolg_leader_dead +bar_dolg_petrenko_dead -bar_stalker_barman_dead} 1, 0 + + +[spawn_deserted_base] Normal mutants - Rates of groups: ( 1 dog + 3 snork + 1 fracture ) +spawn_squads = simulation_mix_dogs, simulation_snork, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture +spawn_num = {+bar_stalker_barman_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +bar_zastava_minigunner_excl = bar\bar_zastava_smart.ltx + +faction_base_defense_enemy1 = bar\bar_zastava_smart.ltx +faction_base_defense_enemy2 = bar\bar_zastava_smart.ltx +faction_base_defense_enemy3 = bar\bar_zastava_smart.ltx + +duty_guard1 = bar\bar_zastava_smart.ltx +duty_guard2 = bar\bar_zastava_smart.ltx +duty_guard3 = bar\bar_zastava_smart.ltx +duty_guard4 = bar\bar_zastava_smart.ltx +duty_guard5 = bar\bar_zastava_smart.ltx +duty_guard6 = bar\bar_zastava_smart.ltx +duty_guard7 = bar\bar_zastava_smart.ltx +duty_guard8 = bar\bar_zastava_smart.ltx +duty_guard9 = bar\bar_zastava_smart.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_zastava_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_zastava_2.ltx new file mode 100644 index 00000000..4d6ba379 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_zastava_2.ltx @@ -0,0 +1,60 @@ +[smart_terrain] +squad_id = 5 +max_population = 1 +respawn_params = respawn@bar_zastava_2 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = bar_dolg_territory +;def_restr = bar_dolg_territory +;safe_restr = nil +;spawn_point = nil + +[respawn@bar_zastava_2] ;-- Type: checkpoint +;spawn_duty@advanced +;spawn_duty@veteran +;spawn_duty_special +;spawn_freedom_special +spawn_deserted_base + + +;[spawn_duty@advanced] +;spawn_squads = duty_sim_squad_advanced, duty_sim_squad_advanced, duty_sim_squad_novice +;spawn_num = {+bar_zastava_2_minigunner_dead +bar_zastava_2_duty2_guard1_dead +bar_zastava_2_duty2_guard2_dead +bar_zastava_2_duty2_guard3_dead +bar_zastava_2_duty2_guard4_dead +bar_zastava_2_duty2_guard5_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} 1, 0 + +;[spawn_duty@veteran] +;spawn_squads = duty_sim_squad_advanced, duty_sim_squad_advanced, duty_sim_squad_veteran +;spawn_num = {+bar_zastava_2_minigunner_dead +bar_zastava_2_duty2_guard1_dead +bar_zastava_2_duty2_guard2_dead +bar_zastava_2_duty2_guard3_dead +bar_zastava_2_duty2_guard4_dead +bar_zastava_2_duty2_guard5_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} 1, 0 + +;[spawn_duty_special] +;spawn_squads = bar_zastava_2_commander_squad +;spawn_num = {!squad_exist(bar_zastava_2_commander_squad) -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +;[spawn_freedom_special] +;spawn_squads = bar_freedom_guard_squad +;spawn_num = {!squad_exist(bar_freedom_guard_squad) =actor_community(actor_freedom) +bar_dolg_leader_dead +bar_dolg_petrenko_dead -bar_stalker_barman_dead} 1, 0 + + +[spawn_deserted_base] Normal mutants - Rates of groups: ( 1 dog + 3 snork + 1 fracture + 2 lurker ) +spawn_squads = simulation_mix_dogs, simulation_snork, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture, simulation_lurker, simulation_lurker_1_2 +spawn_num = {+bar_stalker_barman_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +bar_zastava_2_minigunner_excl = bar\bar_zastava_2_smart.ltx + +faction_base_defense_enemy1 = bar\bar_zastava_2_smart.ltx +faction_base_defense_enemy2 = bar\bar_zastava_2_smart.ltx +faction_base_defense_enemy3 = bar\bar_zastava_2_smart.ltx + +duty2_guard1 = bar\bar_zastava_2_smart.ltx +duty2_guard2 = bar\bar_zastava_2_smart.ltx +duty2_guard3 = bar\bar_zastava_2_smart.ltx +duty2_guard4 = bar\bar_zastava_2_smart.ltx +duty2_guard5 = bar\bar_zastava_2_smart.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_zastava_dogs_lair.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_zastava_dogs_lair.ltx new file mode 100644 index 00000000..12cf3e49 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_zastava_dogs_lair.ltx @@ -0,0 +1,42 @@ +[smart_terrain] +squad_id = 6 +max_population = 1 +respawn_params = respawn@bar_zastava_dogs_lair +respawn_only_smart = false +respawn_idle = 345600 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@bar_zastava_dogs_lair] +spawn_dogs +spawn_snork +spawn_deserted_base + + +[spawn_dogs] +spawn_squads = simulation_pseudodog, simulation_dog, simulation_mix_dogs, simulation_mix_dogs +spawn_num = {~10} 1, 0 + +[spawn_snork] +spawn_squads = trx_bar_zastava_snork +spawn_num = {=actor_week_in_zone(4) ~10} 1, 0 + + +[spawn_deserted_base] Normal mutants - Rates of groups: ( 1 tushkano + 2 dog + 1 pseudodog + 1 cat ) +spawn_squads = simulation_tushkano, simulation_dog_5_7, simulation_mix_dogs, simulation_pseudodog, simulation_cat +spawn_num = {+bar_stalker_barman_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +faction_base_defense_enemy1 = bar\bar_zastava_dogs_lair_smart_logic.ltx +faction_base_defense_enemy2 = bar\bar_zastava_dogs_lair_smart_logic.ltx +faction_base_defense_enemy3 = bar\bar_zastava_dogs_lair_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_zastava_dogs_lair_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_zastava_dogs_lair_2.ltx new file mode 100644 index 00000000..7989bc1e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart/bar_zastava_dogs_lair_2.ltx @@ -0,0 +1,42 @@ +[smart_terrain] +squad_id = 6 +max_population = 1 +respawn_params = respawn@bar_zastava_dogs_lair_2 +respawn_only_smart = false +respawn_idle = 345600 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@bar_zastava_dogs_lair_2] +spawn_dogs +spawn_snork +spawn_deserted_base + + +[spawn_dogs] +spawn_squads = simulation_pseudodog, simulation_dog, simulation_mix_dogs, simulation_mix_dogs +spawn_num = {~10} 1, 0 + +[spawn_snork] +spawn_squads = trx_bar_zastava_2_snork +spawn_num = {=actor_week_in_zone(4) ~10} 1, 0 + + +[spawn_deserted_base] Normal mutants - Rates of groups: ( 1 tushkano + 2 dog + 1 pseudodog + 1 cat ) +spawn_squads = simulation_tushkano, simulation_dog_5_7, simulation_mix_dogs, simulation_pseudodog, simulation_cat +spawn_num = {+bar_stalker_barman_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +faction_base_defense_enemy1 = bar\bar_zastava_dogs_lair_2_smart_logic.ltx +faction_base_defense_enemy2 = bar\bar_zastava_dogs_lair_2_smart_logic.ltx +faction_base_defense_enemy3 = bar\bar_zastava_dogs_lair_2_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_dolg_bunker.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_dolg_bunker.ltx new file mode 100644 index 00000000..504af7d2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_dolg_bunker.ltx @@ -0,0 +1,50 @@ +[smart_terrain] +squad_id = 1 +max_population = 2 +respawn_params = respawn@bar_dolg_bunker +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@bar_dolg_bunker] ;-- Type: faction {dolg} = faction base\bunker +;spawn_freedom_special +;spawn_freedom_special_2 +;spawn_freedom_special_3 +spawn_deserted_base +spawn_deserted_base_2 + + +;[spawn_freedom_special] +;spawn_squads = bar_freedom_general_squad +;spawn_num = {!squad_exist(bar_freedom_general_squad) =actor_community(actor_freedom) +bar_dolg_leader_dead +bar_dolg_petrenko_dead -bar_stalker_barman_dead} 1, 0 + +;[spawn_freedom_special_2] +;spawn_squads = bar_freedom_bunker_squad +;spawn_num = {!squad_exist(bar_freedom_bunker_squad) =actor_community(actor_freedom) +bar_dolg_leader_dead +bar_dolg_petrenko_dead -bar_stalker_barman_dead} 1, 0 + +;[spawn_freedom_special_3] +;spawn_squads = bar_freedom_visitors_squad +;spawn_num = {!squad_exist(bar_freedom_visitors_squad) =actor_community(actor_freedom) +bar_dolg_leader_dead +bar_dolg_petrenko_dead -bar_stalker_barman_dead} 1, 0 + + +[spawn_deserted_base] +spawn_squads = bar_dolg_bunker_squad_rat_mlr_squad +spawn_num = {!squad_name_exist(bar_dolg_bunker_squad_rat_mlr_squad) +bar_dolg_leader_dead +bar_dolg_petrenko_dead +bar_stalker_barman_dead} 1, 0 + +[spawn_deserted_base_2] +spawn_squads = bar_dolg_general_squad_rat_mlr_squad +spawn_num = {!squad_name_exist(bar_dolg_general_squad_rat_mlr_squad) +bar_dolg_leader_dead +bar_dolg_petrenko_dead +bar_stalker_barman_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +bar_dolg_leader = bar\bar_dolg_bunker_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_dolg_general.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_dolg_general.ltx new file mode 100644 index 00000000..7c976aac --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_dolg_general.ltx @@ -0,0 +1,74 @@ +[smart_terrain] +squad_id = 2 +max_population = 3 +respawn_params = respawn@bar_dolg_general +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = smart_control +;att_restr = bar_dolg_territory +;def_restr = bar_dolg_territory +;safe_restr = bar_bar_entry_zone +;spawn_point = nil + +[respawn@bar_dolg_general] ;-- Type: faction {dolg} = faction base\courtyard +spawn_duty@novice +spawn_duty@advanced +spawn_duty@veteran +spawn_duty_special +spawn_duty_special_2 +spawn_duty_special_3 +spawn_duty_special_4 + + +[spawn_duty@novice] +spawn_squads = duty_sim_squad_novice, duty_sim_squad_novice, duty_sim_squad_advanced +spawn_num = {+bar_dolg_leader_dead +bar_dolg_petrenko_dead} 0, 2 + +[spawn_duty@advanced] +spawn_squads = duty_sim_squad_advanced, duty_sim_squad_advanced, duty_sim_squad_novice +spawn_num = {+bar_dolg_leader_dead +bar_dolg_petrenko_dead} 0, 2 + +[spawn_duty@veteran] +spawn_squads = duty_sim_squad_veteran, duty_sim_squad_advanced, duty_sim_squad_novice +spawn_num = {+bar_dolg_leader_dead +bar_dolg_petrenko_dead} 0, 2 + +[spawn_duty_special] +spawn_squads = bar_dolg_general_squad +spawn_num = {!squad_name_exist(bar_dolg_general_squad) -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +[spawn_duty_special_2] +spawn_squads = bar_dolg_bunker_squad +spawn_num = {!squad_name_exist(bar_dolg_bunker_squad) -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +[spawn_duty_special_3] +spawn_squads = bar_zastava_2_commander_squad +spawn_num = {!squad_exist(bar_zastava_2_commander_squad) -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +[spawn_duty_special_4] +spawn_squads = bar_duty_security_squad_leader_squad +spawn_num = {!squad_exist(bar_duty_security_squad_leader_squad) -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + + +;[on_changing_level] + +;[smart_control] +;noweap_zone = bar_dolg_territory +;ignore_zone = bar_bar_entry_zone +;alarm_start_sound = bar_dolg_warn +;alarm_stop_sound = nil + +[exclusive] +bar_dolg_medic = bar\bar_dolg_medic_logic.ltx +bar_dolg_medic_bodyguard = bar\bar_dolg_medic_logic.ltx + +bar_dolg_general_petrenko = bar\bar_dolg_general_logic.ltx +bar_dolg_general_zoneguard = bar\bar_dolg_general_logic.ltx + +bar_dolg_general_animpoint_kamp1 = bar\bar_dolg_general_logic.ltx +bar_dolg_general_animpoint_kamp2 = bar\bar_dolg_general_logic.ltx +bar_dolg_general_animpoint_kamp3 = bar\bar_dolg_general_logic.ltx +bar_dolg_general_animpoint_kamp4 = bar\bar_dolg_general_logic.ltx + +;sick_duty_stalker_bar_general = bar\bar_dolg_medic_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_visitors.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_visitors.ltx new file mode 100644 index 00000000..a7eb0bd0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_visitors.ltx @@ -0,0 +1,100 @@ +[smart_terrain] +squad_id = 3 +max_population = 8 +min_population = 3 +respawn_params = respawn@bar_visitors +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@bar_visitors] ;-- Type: Bar 100 +spawn_stalker@novice +spawn_ecolog@novice +spawn_csky@novice + + +[spawn_stalker@novice] +spawn_squads = stalker_sim_squad_advanced_3_4, stalker_sim_squad_novice, stalker_sim_squad_advanced +spawn_num = {+bar_stalker_barman_dead} 0, 1 + +[spawn_ecolog@novice] +spawn_squads = ecolog_sim_squad_novice, ecolog_sim_squad_novice, ecolog_sim_squad_advanced +spawn_num = {+bar_stalker_barman_dead} 0, 1 + +[spawn_csky@novice] +spawn_squads = csky_sim_squad_novice, csky_sim_squad_novice, csky_sim_squad_advanced +spawn_num = {+bar_stalker_barman_dead} 0, 1 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +bar_informator_mlr = bar\bar_visitors_other_logic.ltx +guid_bar_stalker_navigator = bar\bar_visitors_other_logic.ltx +bar_visitors_cardan_tech = bar\bar_visitors_cardan_logic.ltx + +bar_visitors_beh_trade_job_1 = bar\bar_visitors_logic.ltx +bar_visitors_beh_tech_job_1 = bar\bar_visitors_cardan_logic.ltx + +bar_barman = bar\bar_barman.ltx +bar_guard1 = bar\bar_guard1.ltx +bar_guard2 = bar\bar_guard2.ltx + +bar_arena_manager = bar\bar_visitors_logic.ltx +bar_arena_guard = bar\bar_visitors_logic.ltx + +bar_visitors_animp_01 = bar\bar_visitors_logic.ltx +bar_visitors_animp_02 = bar\bar_visitors_logic.ltx +bar_visitors_animp_03 = bar\bar_visitors_logic.ltx +bar_visitors_animp_04 = bar\bar_visitors_logic.ltx +bar_visitors_animp_05 = bar\bar_visitors_logic.ltx +bar_visitors_animp_06 = bar\bar_visitors_logic.ltx +bar_visitors_animp_07 = bar\bar_visitors_logic.ltx +bar_visitors_animp_08 = bar\bar_visitors_logic.ltx +bar_visitors_animp_09 = bar\bar_visitors_logic.ltx +bar_visitors_animp_10 = bar\bar_visitors_logic.ltx +bar_visitors_animp_11 = bar\bar_visitors_logic.ltx +bar_visitors_animp_12 = bar\bar_visitors_logic.ltx +bar_visitors_animp_13 = bar\bar_visitors_logic.ltx +bar_visitors_animp_14 = bar\bar_visitors_logic.ltx +bar_visitors_animp_15 = bar\bar_visitors_logic.ltx +bar_visitors_animp_16 = bar\bar_visitors_logic.ltx +bar_visitors_animp_17 = bar\bar_visitors_logic.ltx +bar_visitors_animp_18 = bar\bar_visitors_logic.ltx +bar_visitors_animp_19 = bar\bar_visitors_logic.ltx +;bar_visitors_animp_20 = bar\bar_visitors_logic.ltx +;bar_visitors_animp_21 = bar\bar_visitors_logic.ltx +;bar_visitors_animp_22 = bar\bar_visitors_logic.ltx +;bar_visitors_animp_23 = bar\bar_visitors_logic.ltx +;bar_visitors_animp_24 = bar\bar_visitors_logic.ltx +;bar_visitors_animp_25 = bar\bar_visitors_logic.ltx +;bar_visitors_animp_26 = bar\bar_visitors_logic.ltx + +bar_visitors_animpoint_kamp1 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp2 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp3 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp4 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp5 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp6 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp7 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp8 = bar\bar_visitors_logic.ltx +bar_visitors_animpoint_kamp9 = bar\bar_visitors_logic.ltx + +bar_visitors_animp_arena_1 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_2 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_3 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_4 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_5 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_6 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_7 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_8 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_9 = bar\bar_visitors_logic.ltx +bar_visitors_animp_arena_10 = bar\bar_visitors_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_zastava.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_zastava.ltx new file mode 100644 index 00000000..e579c7ea --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_zastava.ltx @@ -0,0 +1,64 @@ +[smart_terrain] +squad_id = 4 +max_population = 1 +respawn_params = respawn@bar_zastava +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = bar_dolg_territory +;def_restr = bar_dolg_territory +;safe_restr = nil +;spawn_point = nil + +[respawn@bar_zastava] ;-- Type: checkpoint +;spawn_duty@advanced +;spawn_duty@veteran +;spawn_duty_special +;spawn_freedom_special +spawn_deserted_base + + +;[spawn_duty@advanced] +;spawn_squads = duty_sim_squad_advanced, duty_sim_squad_advanced, duty_sim_squad_novice +;spawn_num = {+bar_zastava_minigunner_dead +bar_zastava_duty_guard1_dead +bar_zastava_duty_guard2_dead +bar_zastava_duty_guard3_dead +bar_zastava_duty_guard4_dead +bar_zastava_duty_guard5_dead +bar_zastava_duty_guard6_dead +bar_zastava_duty_guard7_dead +bar_zastava_duty_guard8_dead +bar_zastava_duty_guard9_dead -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +;[spawn_duty@veteran] +;spawn_squads = duty_sim_squad_veteran, duty_sim_squad_veteran, duty_sim_squad_advanced +;spawn_num = {+bar_zastava_minigunner_dead +bar_zastava_duty_guard1_dead +bar_zastava_duty_guard2_dead +bar_zastava_duty_guard3_dead +bar_zastava_duty_guard4_dead +bar_zastava_duty_guard5_dead +bar_zastava_duty_guard6_dead +bar_zastava_duty_guard7_dead +bar_zastava_duty_guard8_dead +bar_zastava_duty_guard9_dead -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +;[spawn_duty_special] +;spawn_squads = bar_duty_security_squad_leader_squad +;spawn_num = {!squad_exist(bar_duty_security_squad_leader_squad) -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +;[spawn_freedom_special] +;spawn_squads = bar_freedom_security_squad +;spawn_num = {!squad_exist(bar_freedome_security_squad) =actor_community(actor_freedom) +bar_dolg_leader_dead +bar_dolg_petrenko_dead -bar_stalker_barman_dead} 1, 0 + + +[spawn_deserted_base] Normal mutants - Rates of groups: ( 1 dog + 3 snork + 1 fracture ) +spawn_squads = simulation_mix_dogs, simulation_snork, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture +spawn_num = {+bar_stalker_barman_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +bar_zastava_minigunner_excl = bar\bar_zastava_smart.ltx + +faction_base_defense_enemy1 = bar\bar_zastava_smart.ltx +faction_base_defense_enemy2 = bar\bar_zastava_smart.ltx +faction_base_defense_enemy3 = bar\bar_zastava_smart.ltx + +duty_guard1 = bar\bar_zastava_smart.ltx +duty_guard2 = bar\bar_zastava_smart.ltx +duty_guard3 = bar\bar_zastava_smart.ltx +duty_guard4 = bar\bar_zastava_smart.ltx +duty_guard5 = bar\bar_zastava_smart.ltx +duty_guard6 = bar\bar_zastava_smart.ltx +duty_guard7 = bar\bar_zastava_smart.ltx +duty_guard8 = bar\bar_zastava_smart.ltx +duty_guard9 = bar\bar_zastava_smart.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_zastava_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_zastava_2.ltx new file mode 100644 index 00000000..4d6ba379 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_zastava_2.ltx @@ -0,0 +1,60 @@ +[smart_terrain] +squad_id = 5 +max_population = 1 +respawn_params = respawn@bar_zastava_2 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = bar_dolg_territory +;def_restr = bar_dolg_territory +;safe_restr = nil +;spawn_point = nil + +[respawn@bar_zastava_2] ;-- Type: checkpoint +;spawn_duty@advanced +;spawn_duty@veteran +;spawn_duty_special +;spawn_freedom_special +spawn_deserted_base + + +;[spawn_duty@advanced] +;spawn_squads = duty_sim_squad_advanced, duty_sim_squad_advanced, duty_sim_squad_novice +;spawn_num = {+bar_zastava_2_minigunner_dead +bar_zastava_2_duty2_guard1_dead +bar_zastava_2_duty2_guard2_dead +bar_zastava_2_duty2_guard3_dead +bar_zastava_2_duty2_guard4_dead +bar_zastava_2_duty2_guard5_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} 1, 0 + +;[spawn_duty@veteran] +;spawn_squads = duty_sim_squad_advanced, duty_sim_squad_advanced, duty_sim_squad_veteran +;spawn_num = {+bar_zastava_2_minigunner_dead +bar_zastava_2_duty2_guard1_dead +bar_zastava_2_duty2_guard2_dead +bar_zastava_2_duty2_guard3_dead +bar_zastava_2_duty2_guard4_dead +bar_zastava_2_duty2_guard5_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} 1, 0 + +;[spawn_duty_special] +;spawn_squads = bar_zastava_2_commander_squad +;spawn_num = {!squad_exist(bar_zastava_2_commander_squad) -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +;[spawn_freedom_special] +;spawn_squads = bar_freedom_guard_squad +;spawn_num = {!squad_exist(bar_freedom_guard_squad) =actor_community(actor_freedom) +bar_dolg_leader_dead +bar_dolg_petrenko_dead -bar_stalker_barman_dead} 1, 0 + + +[spawn_deserted_base] Normal mutants - Rates of groups: ( 1 dog + 3 snork + 1 fracture + 2 lurker ) +spawn_squads = simulation_mix_dogs, simulation_snork, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture, simulation_lurker, simulation_lurker_1_2 +spawn_num = {+bar_stalker_barman_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +bar_zastava_2_minigunner_excl = bar\bar_zastava_2_smart.ltx + +faction_base_defense_enemy1 = bar\bar_zastava_2_smart.ltx +faction_base_defense_enemy2 = bar\bar_zastava_2_smart.ltx +faction_base_defense_enemy3 = bar\bar_zastava_2_smart.ltx + +duty2_guard1 = bar\bar_zastava_2_smart.ltx +duty2_guard2 = bar\bar_zastava_2_smart.ltx +duty2_guard3 = bar\bar_zastava_2_smart.ltx +duty2_guard4 = bar\bar_zastava_2_smart.ltx +duty2_guard5 = bar\bar_zastava_2_smart.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_zastava_dogs_lair.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_zastava_dogs_lair.ltx new file mode 100644 index 00000000..12cf3e49 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_zastava_dogs_lair.ltx @@ -0,0 +1,42 @@ +[smart_terrain] +squad_id = 6 +max_population = 1 +respawn_params = respawn@bar_zastava_dogs_lair +respawn_only_smart = false +respawn_idle = 345600 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@bar_zastava_dogs_lair] +spawn_dogs +spawn_snork +spawn_deserted_base + + +[spawn_dogs] +spawn_squads = simulation_pseudodog, simulation_dog, simulation_mix_dogs, simulation_mix_dogs +spawn_num = {~10} 1, 0 + +[spawn_snork] +spawn_squads = trx_bar_zastava_snork +spawn_num = {=actor_week_in_zone(4) ~10} 1, 0 + + +[spawn_deserted_base] Normal mutants - Rates of groups: ( 1 tushkano + 2 dog + 1 pseudodog + 1 cat ) +spawn_squads = simulation_tushkano, simulation_dog_5_7, simulation_mix_dogs, simulation_pseudodog, simulation_cat +spawn_num = {+bar_stalker_barman_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +faction_base_defense_enemy1 = bar\bar_zastava_dogs_lair_smart_logic.ltx +faction_base_defense_enemy2 = bar\bar_zastava_dogs_lair_smart_logic.ltx +faction_base_defense_enemy3 = bar\bar_zastava_dogs_lair_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_zastava_dogs_lair_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_zastava_dogs_lair_2.ltx new file mode 100644 index 00000000..7989bc1e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/bar/smart_def/bar_zastava_dogs_lair_2.ltx @@ -0,0 +1,42 @@ +[smart_terrain] +squad_id = 6 +max_population = 1 +respawn_params = respawn@bar_zastava_dogs_lair_2 +respawn_only_smart = false +respawn_idle = 345600 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@bar_zastava_dogs_lair_2] +spawn_dogs +spawn_snork +spawn_deserted_base + + +[spawn_dogs] +spawn_squads = simulation_pseudodog, simulation_dog, simulation_mix_dogs, simulation_mix_dogs +spawn_num = {~10} 1, 0 + +[spawn_snork] +spawn_squads = trx_bar_zastava_2_snork +spawn_num = {=actor_week_in_zone(4) ~10} 1, 0 + + +[spawn_deserted_base] Normal mutants - Rates of groups: ( 1 tushkano + 2 dog + 1 pseudodog + 1 cat ) +spawn_squads = simulation_tushkano, simulation_dog_5_7, simulation_mix_dogs, simulation_pseudodog, simulation_cat +spawn_num = {+bar_stalker_barman_dead +bar_dolg_leader_dead +bar_dolg_petrenko_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +faction_base_defense_enemy1 = bar\bar_zastava_dogs_lair_2_smart_logic.ltx +faction_base_defense_enemy2 = bar\bar_zastava_dogs_lair_2_smart_logic.ltx +faction_base_defense_enemy3 = bar\bar_zastava_dogs_lair_2_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_1.ltx new file mode 100644 index 00000000..9cd451d2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_1.ltx @@ -0,0 +1,40 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(ds2_st_dogs) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(ds2_st_dogs) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(ds_grverfer2) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(ds_grverfer2) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(ds_ptr2) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(ds_ptr2) =is_dark_night} ph_idle@spawn_dark_monster_3 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_boar_night:ds2_st_dogs)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:ds2_st_dogs)% ph_idle@reset, {~10} %=create_squad(simulation_mix_dogs_night:ds2_st_dogs)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:ds2_st_dogs)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:ds2_st_dogs)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_white_night:ds2_st_dogs)% ph_idle@reset, {~10} %=create_squad(simulation_mix_dogs_night:ds2_st_dogs)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_green_night:ds2_st_dogs)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_mix_dogs_night:ds_grverfer2)% ph_idle@reset_2, {~10} %=create_squad(simulation_cat_night:ds_grverfer2)% ph_idle@reset_2, {~10} %=create_squad(simulation_tushkano_night:ds_grverfer2)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:ds_grverfer2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_mix_dogs_night:ds_grverfer2)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_white_night:ds_grverfer2)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_green_night:ds_grverfer2)% ph_idle@reset_2, {~10} %=create_squad(simulation_karlik_night:ds_grverfer2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_boar_night:ds_ptr2)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_3_5_night:ds_ptr2)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:ds_ptr2)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:ds_ptr2)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_lurker_blue_night:ds_ptr2)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:ds_ptr2)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:ds_ptr2)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_green_night:ds_ptr2)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_2.ltx new file mode 100644 index 00000000..3ea50b74 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_2.ltx @@ -0,0 +1,40 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(ds_boars_nest) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(ds_boars_nest) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(ds2_st_hoofs) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(ds2_st_hoofs) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(ds_deb1) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(ds_deb1) =is_dark_night} ph_idle@spawn_dark_monster_3 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_dog_night:ds_boars_nest)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:ds_boars_nest)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:ds_boars_nest)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:ds_boars_nest)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_fracture_night:ds_boars_nest)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:ds_boars_nest)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:ds_boars_nest)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:ds_boars_nest)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_tushkano_night:ds2_st_hoofs)% ph_idle@reset_2, {~10} %=create_squad(simulation_cat_night:ds2_st_hoofs)% ph_idle@reset_2, {~10} %=create_squad(simulation_dog_night:ds2_st_hoofs)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:ds2_st_hoofs)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_psy_dog_night:ds2_st_hoofs)% ph_idle@reset_2, {~10} %=create_squad(simulation_lurker_blue_night:ds2_st_hoofs)% ph_idle@reset_2, {~10} %=create_squad(simulation_dog_night:ds2_st_hoofs)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:ds2_st_hoofs)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_dog_5_7_night:ds_deb1)% ph_idle@reset_3, {~10} %=create_squad(simulation_flesh_night:ds_deb1)% ph_idle@reset_3, {~10} %=create_squad(simulation_mix_boar_flesh_night:ds_deb1)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:ds_deb1)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psy_dog_night:ds_deb1)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:ds_deb1)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:ds_deb1)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:ds_deb1)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_3.ltx new file mode 100644 index 00000000..5ff88a7e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_endless_night_spawn_logic_3.ltx @@ -0,0 +1,40 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(ds_kem1) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(ds_kem1) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(ds_kem3) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(ds_kem3) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(ds_ptr3) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(ds_ptr3) =is_dark_night} ph_idle@spawn_dark_monster_3 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_tushkano_night:ds_kem1)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:ds_kem1)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:ds_kem1)% ph_idle@reset, {~10} %=create_squad(simulation_flesh_night:ds_kem1)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_green_night:ds_kem1)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:ds_kem1)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:ds_kem1)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:ds_kem1)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_tushkano_night:ds_kem3)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:ds_kem3)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:ds_kem3)% ph_idle@reset_2, {~10} %=create_squad(simulation_psy_dog_night:ds_kem3)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:ds_kem3)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_green_night:ds_kem3)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:ds_kem3)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:ds_kem3)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:ds_ptr3)% ph_idle@reset_3, {~10} %=create_squad(simulation_mix_dogs_night:ds_ptr3)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:ds_ptr3)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_3_5_night:ds_ptr3)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_bloodsucker_green_night:ds_ptr3)% ph_idle@reset_3, {~10} %=create_squad(simulation_lurker_blue_night:ds_ptr3)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:ds_ptr3)% ph_idle@reset_3, {~10} %=create_squad(simulation_psy_dog_night:ds_ptr3)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_kem2_smart_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_kem2_smart_logic.ltx new file mode 100644 index 00000000..396d13e2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_kem2_smart_logic.ltx @@ -0,0 +1,79 @@ +[logic@ds_kem2_smart_terrain_guard_work_1] +active = beh@ds_kem2_smart_terrain_guard_work_1 +suitable = {!surge_started} true +prior = 45 + +[logic@ds_kem2_smart_terrain_guard_work_2] +active = beh@ds_kem2_smart_terrain_guard_work_2 +suitable = {!surge_started} true +prior = 45 + +[logic@ds_kem2_smart_terrain_camp_work_1] +active = beh@ds_kem2_smart_terrain_camp_work_1 +suitable = {!surge_started} true +prior = 45 + +[logic@ds_kem2_smart_terrain_camp_work_2] +active = beh@ds_kem2_smart_terrain_camp_work_2 +suitable = {!surge_started} true +prior = 45 + +[logic@ds_kem2_smart_terrain_camp_work_3] +active = beh@ds_kem2_smart_terrain_camp_work_3 +suitable = {!surge_started} true +prior = 45 + +[logic@ds_kem2_smart_terrain_camp_work_4] +active = beh@ds_kem2_smart_terrain_camp_work_1 +suitable = {!surge_started} true +prior = 45 + +[logic@ds_kem2_smart_terrain_camp_work_5] +active = beh@ds_kem2_smart_terrain_camp_work_1 +suitable = {!surge_started} true +prior = 45 + +[beh@general_work] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +turn_on_campfire = true +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = {!actor_true_enemy} true, false + +[beh@ds_kem2_smart_terrain_guard_work_1]:beh@general_work +pt1 = 88860000, guard | pos: 423.52526855469, -2.0671410560608, -353.05349731445 look: 422.71884155273, -2.0660417079926, -353.03463745117 +path_end = loop + +[beh@ds_kem2_smart_terrain_guard_work_2]:beh@general_work +pt1 = 88860000, guard | pos: 423.52526855469, -2.0671410560608, -353.05349731445 look: 422.71884155273, -2.0660417079926, -353.03463745117 +path_end = loop + +[beh@ds_kem2_smart_terrain_camp_work_1]:beh@general_work +pt1 = 88860000, sit_ass | pos: 429.58721923828, -1.8103351593018, -359.88464355469 look: 429.60424804688, -1.8103456497192, -360.65832519531 +path_end = loop + +[beh@ds_kem2_smart_terrain_camp_work_2]:beh@general_work +pt1 = 88860000, sit_ass | pos: 431.06314086914, -1.8100671768188, -365.35357666016 look: 430.01754760742, -1.810188293457, -365.34133911133 +path_end = loop + +[beh@ds_kem2_smart_terrain_camp_work_3]:beh@general_work +pt1 = 88860000, sit_ass | pos: 431.12603759766, -1.810115814209, -367.07574462891 look: 429.98156738281, -1.810191988945, -367.05285644531 +path_end = loop + +[beh@ds_kem2_smart_terrain_camp_work_4]:beh@general_work +pt1 = 88860000, sit_ass | pos: 429.7717590332, -1.8102136850357, -371.54592895508 look: 429.18688964844, -1.7809131145477, -370.4697265625 +path_end = loop + +[beh@ds_kem2_smart_terrain_camp_work_5]:beh@general_work +pt1 = 88860000, sit_ass | pos: 426.1203918457, -1.8139481544495, -361.08941650391 look: 427.00616455078, -1.8097674846649, -361.07632446289 +path_end = loop diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_kem2_squad_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_kem2_squad_logic.ltx new file mode 100644 index 00000000..f8eb9942 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/ds_kem2_squad_logic.ltx @@ -0,0 +1,176 @@ +[logic@ds_kem2_squad_1] +active = walker@ds_kem2_squad_1 +suitable = {=target_squad_name(ds_kem2_military_mlr_2_squad)} true +prior = 200 + +[walker@ds_kem2_squad_1]:walker@generic +path_walk = walker_1_walk +path_look = walker_1_look +on_info = {=surge_started} beh@ds_kem2_military_mlr_2_surge_work_1 +meet = meet +danger = danger + +[logic@ds_kem2_squad_2] +active = walker@ds_kem2_squad_2 +suitable = {=target_squad_name(ds_kem2_military_mlr_2_squad)} true +prior = 200 + +[walker@ds_kem2_squad_2]:walker@generic +path_walk = walker_2_walk +path_look = walker_2_look +on_info = {=surge_started} beh@ds_kem2_military_mlr_2_surge_work_2 +meet = meet +danger = danger + +[logic@ds_kem2_squad_3] +active = walker@ds_kem2_squad_3 +suitable = {=target_squad_name(ds_kem2_military_mlr_2_squad)} true +prior = 200 + +[walker@ds_kem2_squad_3]:walker@generic +path_walk = walker_3_walk +path_look = walker_3_look +on_info = {=surge_started} beh@ds_kem2_military_mlr_2_surge_work_3 +meet = meet +danger = danger + +[logic@ds_kem2_squad_4] +active = walker@ds_kem2_squad_4 +suitable = {=target_squad_name(ds_kem2_military_mlr_2_squad)} true +prior = 200 + +[walker@ds_kem2_squad_4]:walker@generic +path_walk = patrol_3_walk +path_look = patrol_3_look +on_info = {=surge_started} beh@ds_kem2_military_mlr_2_surge_work_4 +meet = meet +danger = danger + +[logic@ds_kem2_sniper_1] +active = beh@ds_kem2_military_mlr_2_sniper_1 +suitable = {=target_squad_name(ds_kem2_military_mlr_2_sniper)} true +prior = 200 + +[logic@ds_kem2_sniper_2] +active = beh@ds_kem2_military_mlr_2_sniper_2 +suitable = {=target_squad_name(ds_kem2_military_mlr_2_sniper)} true +prior = 200 + +[walker@generic] +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +turn_on_campfire = true +combat_ignore_cond = {=check_enemy_name(sim_default) =fighting_dist_ge(50)} true, false +combat_ignore_keep_when_attacked = false +meet = meet +danger = danger + +[beh@general_guard] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +turn_on_campfire = true +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = {!actor_true_enemy} true, false +meet = meet +danger = danger + +[beh@general_surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +combat_ignore_cond = {=check_enemy_name(sim_default) =fighting_dist_ge(50)} true, false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +meet = meet +danger = danger + +[meet] +close_anim = nil +close_victim = nil +far_anim = nil +far_victim = nil +close_distance = 0 +far_distance = 0 +close_snd_distance = 3 +abuse = false +use = {=actor_enemy} false, true +allow_break = false +meet_on_talking = true +trade_enable = false + +[danger] +danger_expiration_time = 90000 +danger_inertion_time_grenade = 90000 +danger_inertion_time_hit = 90000 +danger_inertion_time_sound = 90000 +danger_inertion_time_ricochet = 90000 + +[beh@ds_kem2_military_mlr_2_squad_1]:beh@general_guard +pt1 = 88860000, fold_arms | pos: look: +path_end = loop +on_info = {=surge_started} beh@ds_kem2_military_mlr_2_surge_work_1 + +[beh@ds_kem2_military_mlr_2_squad_2]:beh@general_guard +pt1 = 88860000, guard | pos: look: +path_end = loop +on_info = {=surge_started} beh@ds_kem2_military_mlr_2_surge_work_2 + +[beh@ds_kem2_military_mlr_2_squad_3]:beh@general_guard +pt1 = 88860000, guard | pos: look: +on_info = {=surge_started} beh@ds_kem2_military_mlr_2_surge_work_3 + +[beh@ds_kem2_military_mlr_2_squad_4]:beh@general_guard +pt1 = 88860000, guard | pos: look: +path_end = loop +on_info = {=surge_started} beh@ds_kem2_military_mlr_2_surge_work_4 + +[beh@ds_kem2_military_mlr_2_sniper_1]:beh@general_guard +pt1 = 88860000, hide | pos: 425.82708862305, -1.4545923471451, -371.61181640625 look: 422.65588378906, -2.0685701370239, -371.75402832031 +path_end = loop +on_info = {=surge_started} beh@ds_kem2_military_mlr_2_surge_work_5 + +[beh@ds_kem2_military_mlr_2_sniper_2]:beh@general_guard +pt1 = 88860000, guard | pos: 425.44036865234, -1.8094553947449, -366.69326782227 look: 422.88067626953, -2.0674715042114, -366.32406616211 +path_end = loop +on_info = {=surge_started} beh@ds_kem2_military_mlr_2_surge_work_6 + +[beh@ds_kem2_military_mlr_2_surge_work_1]:beh@general_surge +pt1 = 15000, hide | pos: 426.69250488281, -1.8105762004852, -369.59625244141 look: 426.69250488281, -1.8105762004852, -369.59625244141 +on_info = {=surge_complete} beh@ds_kem2_military_mlr_2_squad_1 + +[beh@ds_kem2_military_mlr_2_surge_work_2]:beh@general_surge +pt1 = 15000, caution | pos: 426.90667724609, -1.8104662895203, -366.4560546875 look: 426.90667724609, -1.8104662895203, -366.4560546875 +on_info = {=surge_complete} beh@ds_kem2_military_mlr_2_squad_2 + +[beh@ds_kem2_military_mlr_2_surge_work_3]:beh@general_surge +pt1 = 15000, hide | pos: 427.71258544922, -1.8130663633347, -361.57656860352 look: 427.71258544922, -1.8130663633347, -361.57656860352 +on_info = {=surge_complete} beh@ds_kem2_military_mlr_2_squad_3 + +[beh@ds_kem2_military_mlr_2_surge_work_4]:beh@general_surge +pt1 = 15000, caution | pos: 428.19927978516, -1.8103235960007, -371.45910644531 look: 428.19927978516, -1.8103235960007, -371.45910644531 +on_info = {=surge_complete} beh@ds_kem2_military_mlr_2_squad_4 + +[beh@ds_kem2_military_mlr_2_surge_work_5]:beh@general_surge +pt1 = 15000, hide | pos: 425.81708862305, -1.4545923471451, -371.61181640625 look: 422.65588378906, -2.0685701370239, -371.75402832031 +on_info = {=surge_complete} beh@ds_kem2_military_mlr_2_sniper_1 + +[beh@ds_kem2_military_mlr_2_surge_work_6]:beh@general_surge +pt1 = 15000, caution | pos: 425.44036865234, -1.8094553947449, -366.69326782227 look: 422.88067626953, -2.0674715042114, -366.32406616211 +on_info = {=surge_complete} beh@ds_kem2_military_mlr_2_sniper_2 diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/mod_dar_crow_spawner_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/mod_dar_crow_spawner_redone.ltx new file mode 100644 index 00000000..92863c1d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/mod_dar_crow_spawner_redone.ltx @@ -0,0 +1,21 @@ +![logic] +!active = sr_crow_spawner +active = sr_idle@check_story + +[sr_idle@check_story] +on_info = {-story_mode_disabled} sr_idle@check_actor, {+story_mode_disabled -yan_x16_complete_end} sr_idle@check_actor %+yan_kill_brain_done% + +[sr_idle@check_actor] +on_info = {=actor_community(actor_monolith) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, {=actor_community(actor_greh) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, sr_idle@check_helmet + +[sr_idle@check_helmet] +on_info = {=actor_has_item(good_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, {=actor_has_item(bad_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, sr_idle@check_spawner + +[sr_idle@check_spawner] +on_info = sr_crow_spawner + +![sr_crow_spawner] +max_crows_on_level = 5 +spawn_path = dar_crow_spawn_1, dar_crow_spawn_2, dar_crow_spawn_3, dar_crow_spawn_4, dar_crow_spawn_5 + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds2_domik_st.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds2_domik_st.ltx new file mode 100644 index 00000000..20503fe8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds2_domik_st.ltx @@ -0,0 +1,36 @@ +[smart_terrain] +squad_id = 1 +max_population = 1 +respawn_params = respawn@ds2_domik_st +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +faction_controlled = stalker, csky, ecolog, dolg, killer, bandit, renegade, isg +default_faction = stalker +faction_respawn_num = {+lttz_hb_spawned_ds_isg_leader_squad -lttz_hb_removed_ds_isg_leader_squad} 0, 2 + +;[respawn@ds2_domik_st] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +dasc_tech_mlr = darkscape\ds2_domik_st_smart_logic.ltx +dasc_trade_mlr = darkscape\ds2_domik_st_smart_logic.ltx + +ds_domik_isg_leader = darkscape\ds_domik_isg_leader.ltx + +ds2_domik_st_camp_work_1 = darkscape\ds2_domik_st_smart_logic.ltx +ds2_domik_st_camp_work_2 = darkscape\ds2_domik_st_smart_logic.ltx +ds2_domik_st_camp_work_3 = darkscape\ds2_domik_st_smart_logic.ltx +ds2_domik_st_camp_work_4 = darkscape\ds2_domik_st_smart_logic.ltx +ds2_domik_st_camp_work_5 = darkscape\ds2_domik_st_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds2_lager_st.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds2_lager_st.ltx new file mode 100644 index 00000000..870850ab --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds2_lager_st.ltx @@ -0,0 +1,48 @@ +[smart_terrain] +squad_id = 15 +max_population = 2 +respawn_params = respawn@ds2_lager_st +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@ds2_lager_st] ;-- Type: faction { bandit, killer, renegade, ISG } = hideout +spawn_bandit@novice +spawn_killer@advanced +spawn_renegade@advanced +spawn_isg_special + + +[spawn_bandit@novice] +spawn_squads = bandit_sim_squad_novice, bandit_sim_squad_novice, bandit_sim_squad_advanced +spawn_num = {!squad_name_exist(ds_ds2_lager_st_isg_squad)} 1, 0 + +[spawn_killer@advanced] +spawn_squads = merc_sim_squad_advanced, merc_sim_squad_novice, merc_sim_squad_novice +spawn_num = {!squad_name_exist(ds_ds2_lager_st_isg_squad)} 1, 0 + +[spawn_renegade@advanced] +spawn_squads = renegade_sim_squad_advanced, renegade_sim_squad_novice, renegade_sim_squad_novice +spawn_num = {!squad_name_exist(ds_ds2_lager_st_isg_squad)} 1, 0 + +[spawn_isg_special] +spawn_squads = isg_sim_squad_novice, isg_sim_squad_novice, isg_sim_squad_advanced +spawn_num = {!squad_name_exist(ds_ds2_lager_st_isg_squad) +isg_entered_the_zone} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +ds2_lager_st_camp_work_1 = darkscape\ds2_lager_st_smart_logic.ltx +ds2_lager_st_camp_work_2 = darkscape\ds2_lager_st_smart_logic.ltx +ds2_lager_st_camp_work_3 = darkscape\ds2_lager_st_smart_logic.ltx +ds2_lager_st_camp_work_4 = darkscape\ds2_lager_st_smart_logic.ltx +ds2_lager_st_camp_work_5 = darkscape\ds2_lager_st_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds2_st_dogs.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds2_st_dogs.ltx new file mode 100644 index 00000000..00385be7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds2_st_dogs.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 16 +max_population = 2 +respawn_params = respawn@ds_st_dogs +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@ds_st_dogs] ;-- Type: +spawn_all_normal +spawn_mutants_rare + + +[spawn_all_normal] ;-- Normal mutants - Rates of groups: ( 1 cat + 4 fleshes/boars ) +spawn_squads = simulation_cat_3_5, simulation_boar_3_5, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = 2 + +[spawn_mutants_rare] ;-- Rare mutants - Rates of groups: ( 1 karlik ) +spawn_squads = simulation_karlik +spawn_num = {~10} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds2_st_hoofs.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds2_st_hoofs.ltx new file mode 100644 index 00000000..72bec9e9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds2_st_hoofs.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 17 +max_population = 1 +respawn_params = respawn@ds2_st_hoofs +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@ds2_st_hoofs] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 tushkano + 2 dogs + 1 cats + 1 flesh ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_dog_5_7, simulation_mix_dogs, simulation_cat_3_5, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_boars_nest.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_boars_nest.ltx new file mode 100644 index 00000000..a8d1e31b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_boars_nest.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 2 +max_population = 1 +;respawn_params = respawn@ds_boars_nest +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@ds_boars_nest] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_deb1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_deb1.ltx new file mode 100644 index 00000000..f18f4707 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_deb1.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 3 +max_population = 1 +respawn_params = respawn@ds_deb1 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@ds_deb1] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 tushkano + 2 dogs + 1 cats + 1 flesh ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_dog_5_7, simulation_mix_dogs, simulation_cat_3_5, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_grverfer2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_grverfer2.ltx new file mode 100644 index 00000000..3d9bb03c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_grverfer2.ltx @@ -0,0 +1,24 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 5 +max_population = 1 +;respawn_params = respawn@ds_grverfer2 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@ds_grverfer2] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_kem1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_kem1.ltx new file mode 100644 index 00000000..66f125ec --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_kem1.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 6 +max_population = 1 +respawn_params = respawn@ds_kem1 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@ds_kem1] ;-- Type: +spawn_all_normal +spawn_lurker + + +[spawn_all_normal] ;-- Normal mutants - Rates of groups: ( 1 tushkano + 2 dogs + 3 fleshes/boars ) +spawn_squads = simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = 1 + +[spawn_lurker] ;-- Hard mutants - Rates of groups: ( 2 lurker ) +spawn_squads = simulation_lurker, simulation_lurker_brown +spawn_num = {~50} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_kem2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_kem2.ltx new file mode 100644 index 00000000..ec4ee702 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_kem2.ltx @@ -0,0 +1,50 @@ +[smart_terrain] +squad_id = 7 +max_population = 1 +respawn_params = respawn@ds_kem2 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + + +[respawn@ds_kem2] ;-- Type: faction {army} = checkpoint +spawn_army_special +;spawn_army_special_2 + +[spawn_army_special] +spawn_squads = ds_kem2_military_mlr_2_squad +spawn_num = {!squad_name_exist(ds_kem2_military_mlr_2_squad)} 1, 0 + +;[spawn_army_special_2] +;spawn_squads = ds_kem2_military_mlr_2_sniper +;spawn_num = {!squad_name_exist(ds_kem2_military_mlr_2_sniper)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +ds_kem2_squad_1 = darkscape\ds_kem2_squad_logic.ltx +ds_kem2_squad_2 = darkscape\ds_kem2_squad_logic.ltx +ds_kem2_squad_3 = darkscape\ds_kem2_squad_logic.ltx +;ds_kem2_squad_4 = darkscape\ds_kem2_squad_logic.ltx + +ds_kem2_sniper_1 = darkscape\ds_kem2_squad_logic.ltx +ds_kem2_sniper_2 = darkscape\ds_kem2_squad_logic.ltx + +;ds_kem2_smart_terrain_guard_work_1 = darkscape\ds_kem2_smart_logic.ltx +;ds_kem2_smart_terrain_guard_work_2 = darkscape\ds_kem2_smart_logic.ltx + +ds_kem2_smart_terrain_camp_work_1 = darkscape\ds_kem2_smart_logic.ltx +ds_kem2_smart_terrain_camp_work_2 = darkscape\ds_kem2_smart_logic.ltx +ds_kem2_smart_terrain_camp_work_3 = darkscape\ds_kem2_smart_logic.ltx +ds_kem2_smart_terrain_camp_work_4 = darkscape\ds_kem2_smart_logic.ltx +ds_kem2_smart_terrain_camp_work_5 = darkscape\ds_kem2_smart_logic.ltx + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_kem3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_kem3.ltx new file mode 100644 index 00000000..c6d297e0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_kem3.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 8 +max_population = 2 +respawn_params = respawn@ds_kem3 +respawn_only_smart = false +respawn_idle = 345600 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@ds_kem3] ;-- Type: +spawn_heli_strong +spawn_heli_weak + + +[spawn_heli_strong] +spawn_helicopter = simulation_helicopter_strong +spawn_num = {!down_to_earth_functor !heli_exist_on_level} 1, 0 + +[spawn_heli_weak] +spawn_helicopter = simulation_helicopter_weak +spawn_num = {=down_to_earth_functor !heli_exist_on_level} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_ptr.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_ptr.ltx new file mode 100644 index 00000000..8e3f1f32 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_ptr.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 10 +max_population = 2 +respawn_params = respawn@ds_ptr +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +faction_controlled = killer, bandit, renegade, army +default_faction = bandit +faction_respawn_num = 1 + +;[respawn@ds_ptr] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + + + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_ptr2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_ptr2.ltx new file mode 100644 index 00000000..d17ced2c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_ptr2.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 11 +max_population = 2 +respawn_params = respawn@ds_ptr2 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@ds_ptr2] ;-- Type: +spawn_predatory_c_2_1 +spawn_predatory_c_2_2 + + +[spawn_predatory_c_2_1] ;-- Normal\hard mutants - Rates of groups: ( 1 lurker + 1 pseudodog + 1 dogs ) +spawn_squads = simulation_pseudodog, simulation_mix_dogs, simulation_lurker, simulation_mix_dogs +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_predatory_c_2_2] ;-- Hard mutants - Rates of groups: ( 3 lurker + 1 pseudodog + 1 dogs ) +spawn_squads = simulation_lurker_blue, simulation_lurker_black, simulation_lurker_1_2, simulation_pseudodog, simulation_mix_dogs +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_ptr3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_ptr3.ltx new file mode 100644 index 00000000..a968856a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_ptr3.ltx @@ -0,0 +1,29 @@ +[smart_terrain] +squad_id = 12 +max_population = 2 +respawn_params = respawn@ds_ptr3 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@ds_ptr3] ;-- Type: +spawn_lurker + + +[spawn_lurker] ;-- Hard mutants - Rates of groups: ( 2 lurker ) +spawn_squads = simulation_lurker, simulation_lurker_blue +spawn_num = 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_ptr4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_ptr4.ltx new file mode 100644 index 00000000..b3053cf8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkscape/smart/ds_ptr4.ltx @@ -0,0 +1,43 @@ +[smart_terrain] +squad_id = 13 +max_population = 2 +respawn_params = respawn@ds_ptr4 +respawn_only_smart = true +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@ds_ptr4] ;-- Type: random stalker spawn +spawn_army_squad +spawn_bandit_squad +spawn_killer_squad +spawn_renegade_squad + + +[spawn_army_squad] +spawn_squads = ds_ptr4_army_mlr_2_squad +spawn_num = {!squad_name_exist(ds_ptr4_army_mlr_2_squad) !squad_name_exist(ds_ptr4_bandit_mlr_2_squad) !squad_name_exist(ds_ptr4_killer_mlr_2_squad) !squad_name_exist(ds_ptr4_renegade_mlr_2_squad) =actor_week_in_zone(1)} 1, 0 + +[spawn_bandit_squad] +spawn_squads = ds_ptr4_bandit_mlr_2_squad +spawn_num = {!squad_name_exist(ds_ptr4_army_mlr_2_squad) !squad_name_exist(ds_ptr4_bandit_mlr_2_squad) !squad_name_exist(ds_ptr4_killer_mlr_2_squad) !squad_name_exist(ds_ptr4_renegade_mlr_2_squad)} 1, 0 + +[spawn_killer_squad] +spawn_squads = ds_ptr4_killer_mlr_2_squad +spawn_num = {!squad_name_exist(ds_ptr4_army_mlr_2_squad) !squad_name_exist(ds_ptr4_bandit_mlr_2_squad) !squad_name_exist(ds_ptr4_killer_mlr_2_squad) !squad_name_exist(ds_ptr4_renegade_mlr_2_squad) =actor_week_in_zone(2)} 1, 0 + +[spawn_renegade_squad] +spawn_squads = ds_ptr4_renegade_mlr_2_squad +spawn_num = {!squad_name_exist(ds_ptr4_army_mlr_2_squad) !squad_name_exist(ds_ptr4_bandit_mlr_2_squad) !squad_name_exist(ds_ptr4_killer_mlr_2_squad) !squad_name_exist(ds_ptr4_renegade_mlr_2_squad)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/mod_val_crow_spawner_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/mod_val_crow_spawner_redone.ltx new file mode 100644 index 00000000..b3e5aa56 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/mod_val_crow_spawner_redone.ltx @@ -0,0 +1,19 @@ +![logic] +!active = sr_crow_spawner +active = sr_idle@check_story + +[sr_idle@check_story] +on_info = {-story_mode_disabled} sr_idle@check_actor, {+story_mode_disabled -yan_x16_complete_end} sr_idle@check_actor %+yan_kill_brain_done% + +[sr_idle@check_actor] +on_info = {=actor_community(actor_monolith) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, {=actor_community(actor_greh) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, sr_idle@check_helmet + +[sr_idle@check_helmet] +on_info = {=actor_has_item(good_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, {=actor_has_item(bad_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, sr_idle@check_spawner + +[sr_idle@check_spawner] +on_info = sr_crow_spawner + +![sr_crow_spawner] +max_crows_on_level = 4 +spawn_path = val_crow_spawn_1, val_crow_spawn_2, val_crow_spawn_3, val_crow_spawn_4, val_crow_spawn_5 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/mod_val_smart_terrain_7_3_radio_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/mod_val_smart_terrain_7_3_radio_redone.ltx new file mode 100644 index 00000000..058969f2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/mod_val_smart_terrain_7_3_radio_redone.ltx @@ -0,0 +1,2 @@ +![ph_sound] +volume = {=surge_started}0, 1 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/mod_val_smart_terrain_7_3_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/mod_val_smart_terrain_7_3_smart_logic_redone.ltx new file mode 100644 index 00000000..77675b64 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/mod_val_smart_terrain_7_3_smart_logic_redone.ltx @@ -0,0 +1,70 @@ +[logic@val_smart_terrain_7_3_bandit_barman] +suitable = {=check_npc_name(sim_default_bandit_barman)} true, {=check_npc_barman} true +active = beh@val_smart_terrain_7_3_beh_barman_work +prior = 200 +can_select_weapon = true +dont_keep_items = true +level_spot = barman +trade = items\trade\trade_generic_barman.ltx + +[beh@general_barman] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +reach_distance = 10 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = {!actor_true_enemy} true, false +meet = meet@barman + +[beh@general_surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {!actor_true_enemy} true, false + +[meet@barman] +close_anim = nil +close_victim = nil +far_anim = nil +far_victim = nil +close_distance = 0 +far_distance = 0 +close_snd_distance = 3 +abuse = false +use = {=actor_enemy} false, true +allow_break = false +meet_on_talking = false +trade_enable = false + +[beh@val_smart_terrain_7_3_beh_barman_work]:beh@general_barman +pt1 = 88860000, fold_arms | pos: 38.53352355957, 0.03549325466156, 41.456050872803 look: 38.337184906006, 0.029632717370987, 40.466979980469 +path_end = loop +on_info = {=surge_started} beh@val_smart_terrain_7_3_beh_barman_surge_work +on_info2 = {=is_night} beh@val_smart_terrain_7_3_beh_barman_sleeper_work + +[beh@val_smart_terrain_7_3_beh_barman_surge_work]:beh@general_surge +pt1 = 88860000, smoking_stand | pos: 15.318681716919, 0.086453795433044, 32.67654800415 look: 16.157444000244, 0.086408019065857, 32.87963104248 +path_end = loop +on_info = {=surge_complete} beh@val_smart_terrain_7_3_beh_barman_work + +[beh@val_smart_terrain_7_3_beh_barman_sleeper_work]:beh@general_barman +pt1 = 88860000, drunk_sit_ass | pos: 17.960680007935, 0.16824585199356, 26.692844390869 look: 18.187705993652, 0.077889263629913, 27.502815246582 +path_end = loop +on_info = {!is_night} beh@val_smart_terrain_7_3_beh_barman_work \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/mod_val_smart_terrain_7_5_bandit_boss_sultan_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/mod_val_smart_terrain_7_5_bandit_boss_sultan_redone.ltx new file mode 100644 index 00000000..8a2e5e57 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/mod_val_smart_terrain_7_5_bandit_boss_sultan_redone.ltx @@ -0,0 +1,50 @@ +[logic@val_smart_terrain_7_5_bandit_bodyguard1] +suitable = {=target_squad_name(guards_boss_bandit_in_main_base)} true +active = beh@val_smart_terrain_7_5_bandit_bodyguard_work_1 +prior = 200 + +[logic@val_smart_terrain_7_5_bandit_bodyguard2] +suitable = {=target_squad_name(guards_boss_bandit_in_main_base)} true +active = beh@val_smart_terrain_7_5_bandit_bodyguard_work_2 +prior = 200 + +[logic@val_smart_terrain_7_5_bandit_bodyguard3] +suitable = {=target_squad_name(guards_boss_bandit_in_main_base)} true +active = beh@val_smart_terrain_7_5_bandit_bodyguard_work_3 +prior = 200 + +![logic@zat_b7_bandit_boss_sultan] +on_death = death_leader + +[death_leader] +on_info = %+zat_b5_sultan_dead% + +[beh@general_guard] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +reach_distance = 10 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = {!actor_true_enemy} true, false + +[beh@val_smart_terrain_7_5_bandit_bodyguard_work_1]:beh@general_guard +pt1 = 88860000, guard | pos: 28.893632888794, 4.5425424575806, -86.448852539062 look: 28.24019241333, 4.5424118041992, -85.476989746094 +path_end = loop + +[beh@val_smart_terrain_7_5_bandit_bodyguard_work_2]:beh@general_guard +pt1 = 88860000, guard | pos: 12.844927787781, 4.5411801338196, -81.435401916504 look: 13.999754905701, 4.5381903648376, -81.606719970703 +path_end = loop + +[beh@val_smart_terrain_7_5_bandit_bodyguard_work_3]:beh@general_guard +pt1 = 88860000, guard | pos: 19.433670043945, 4.5424356460571, -89.39916229248 look: 19.44554901123, 4.5423579216003, -89.845153808594 +path_end = loop diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_1_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_1_2.ltx new file mode 100644 index 00000000..95fcf012 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_1_2.ltx @@ -0,0 +1,38 @@ +[smart_terrain] +squad_id = 1 +max_population = 2 +respawn_params = respawn@val_smart_terrain_1_2 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@val_smart_terrain_1_2] +spawn_army@novice +spawn_army@advanced + + +[spawn_army@novice] +spawn_squads = army_sim_squad_novice, army_sim_squad_novice, army_sim_squad_advanced +spawn_num = {+dar_control_poltergeist_killed} 0, 1 + +[spawn_army@advanced] +spawn_squads = army_sim_squad_advanced, army_sim_squad_novice, army_sim_squad_novice +spawn_num = {+dar_control_poltergeist_killed} 0, 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + + + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_3_0.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_3_0.ltx new file mode 100644 index 00000000..4920e869 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_3_0.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 2 +max_population = 1 +respawn_params = respawn@val_smart_terrain_3_0 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@val_smart_terrain_3_0] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 tushkano + 2 dogs + 1 cats + 1 flesh ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_cat_3_5, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_4_0.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_4_0.ltx new file mode 100644 index 00000000..85b58839 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_4_0.ltx @@ -0,0 +1,31 @@ +[smart_terrain] +squad_id = 3 +max_population = 1 +respawn_params = respawn@val_smart_terrain_4_0 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +faction_controlled = stalker, bandit, killer, dolg, renegade +default_faction = stalker +faction_respawn_num = 1 + +;[respawn@val_smart_terrain_4_0] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +val_smart_terrain_4_0_camp_work_1 = darkvalley\val_smart_terrain_4_0_smart_logic.ltx +val_smart_terrain_4_0_camp_work_2 = darkvalley\val_smart_terrain_4_0_smart_logic.ltx +val_smart_terrain_4_0_camp_work_3 = darkvalley\val_smart_terrain_4_0_smart_logic.ltx +val_smart_terrain_4_0_camp_work_4 = darkvalley\val_smart_terrain_4_0_smart_logic.ltx +val_smart_terrain_4_0_camp_work_5 = darkvalley\val_smart_terrain_4_0_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_5_10.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_5_10.ltx new file mode 100644 index 00000000..a3046df8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_5_10.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 4 +max_population = 1 +respawn_params = respawn@val_smart_terrain_5_10 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@val_smart_terrain_5_10] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 tushkano + 2 dogs + 1 cats + 1 flesh ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_cat, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_5_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_5_7.ltx new file mode 100644 index 00000000..7e6b65e3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_5_7.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 15 +max_population = 1 +;respawn_params = respawn@val_smart_terrain_5_7 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@val_smart_terrain_5_7] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_5_8.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_5_8.ltx new file mode 100644 index 00000000..f88b02de --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_5_8.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 16 +max_population = 1 +;respawn_params = respawn@val_smart_terrain_5_8 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@val_smart_terrain_5_8] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_6_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_6_4.ltx new file mode 100644 index 00000000..179c5ff0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_6_4.ltx @@ -0,0 +1,25 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 5 +max_population = 1 +;respawn_params = respawn@val_smart_terrain_6_4 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@val_smart_terrain_6_4] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +faction_base_defense_enemy1 = darkvalley\val_smart_terrain_6_4_smart_logic.ltx +faction_base_defense_enemy2 = darkvalley\val_smart_terrain_6_4_smart_logic.ltx +faction_base_defense_enemy3 = darkvalley\val_smart_terrain_6_4_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_6_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_6_5.ltx new file mode 100644 index 00000000..831b6de3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_6_5.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 6 +max_population = 1 +;respawn_params = respawn@val_smart_terrain_6_5 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@val_smart_terrain_6_5] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_11.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_11.ltx new file mode 100644 index 00000000..2bc43e53 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_11.ltx @@ -0,0 +1,22 @@ +[smart_terrain] +squad_id = 17 +max_population = 1 +;respawn_params = respawn@val_smart_terrain_7_11 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@val_smart_terrain_7_11] ;-- + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_3.ltx new file mode 100644 index 00000000..9076e701 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_3.ltx @@ -0,0 +1,43 @@ +[smart_terrain] +squad_id = 7 +max_population = 4 +respawn_params = respawn@val_smart_terrain_7_3 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@val_smart_terrain_7_3] ;-- Type: faction {bandit} = faction base\north +spawn_bandit_special +spawn_bandit_special_2 + + +[spawn_bandit_special] +spawn_squads = bandit_novice_visiters_camp +spawn_num = {!squad_name_exist(bandit_novice_visiters_camp) -zat_b5_sultan_dead} 1, 0 + +[spawn_bandit_special_2] +spawn_squads = bandit_novice_visiters_2_camp +spawn_num = {!squad_name_exist(bandit_novice_visiters_2_camp) -zat_b5_sultan_dead} 1, 0 + + +[on_changing_level] +on_info = {+zat_b5_sultan_dead} %=remove_squad(val_smart_terrain_7_3_bandit_mechanic_stalker_squad) =remove_squad(bandit_barman_mlr_squad) =remove_squad(bandit_novice_visiters_camp) =remove_squad(bandit_novice_visiters_2_camp)% + +;[smart_control] + +[exclusive] +val_smart_terrain_7_3_bandit_mechanic = darkvalley\val_smart_terrain_7_3_smart_logic.ltx +val_smart_terrain_7_3_bandit_barman = darkvalley\val_smart_terrain_7_3_smart_logic.ltx + +val_smart_terrain_7_3_beh_tech_job_1 = darkvalley\val_smart_terrain_7_3_smart_logic.ltx +val_smart_terrain_7_3_camp_work_1 = darkvalley\val_smart_terrain_7_3_smart_logic.ltx +val_smart_terrain_7_3_camp_work_2 = darkvalley\val_smart_terrain_7_3_smart_logic.ltx +val_smart_terrain_7_3_camp_work_3 = darkvalley\val_smart_terrain_7_3_smart_logic.ltx +val_smart_terrain_7_3_camp_work_4 = darkvalley\val_smart_terrain_7_3_smart_logic.ltx +val_smart_terrain_7_3_camp_work_5 = darkvalley\val_smart_terrain_7_3_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_4.ltx new file mode 100644 index 00000000..ae065c66 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_4.ltx @@ -0,0 +1,38 @@ +[smart_terrain] +squad_id = 8 +max_population = 2 +respawn_params = respawn@val_smart_terrain_7_4 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@val_smart_terrain_7_4] ;-- Type: faction {bandit} =faction base\center +spawn_deserted_base + + +[spawn_deserted_base] ;-- Normal mutants - Rates of groups:( 1 tushkano + 2 dogs + 1 pseudodog + 1 cats ) +spawn_squads = simulation_tushkano, simulation_dog_5_7, simulation_mix_dogs, simulation_pseudodog, simulation_cat +spawn_num = {+zat_b5_sultan_dead} 4, 0 + + +[on_changing_level] +on_info = {+zat_b5_sultan_dead} %=remove_squad(bandit_novice_visiters_base) =remove_squad(bandit_novice_visiters_2_base) =remove_squad(val_smart_terrain_7_4_bandit_trader_stalker_squad)% + +;[smart_control] + +[exclusive] +val_smart_terrain_7_4_bandit_trader = darkvalley\val_smart_terrain_7_4_smart_logic.ltx +val_smart_terrain_7_4_beh_trade_job_1 = darkvalley\val_smart_terrain_7_4_smart_logic.ltx + +faction_base_defense_enemy1 = darkvalley\val_smart_terrain_7_4_smart_logic.ltx +faction_base_defense_enemy2 = darkvalley\val_smart_terrain_7_4_smart_logic.ltx +faction_base_defense_enemy3 = darkvalley\val_smart_terrain_7_4_smart_logic.ltx +faction_base_defense_enemy4 = darkvalley\val_smart_terrain_7_4_smart_logic.ltx +faction_base_defense_enemy5 = darkvalley\val_smart_terrain_7_4_smart_logic.ltx +faction_base_defense_enemy6 = darkvalley\val_smart_terrain_7_4_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_5.ltx new file mode 100644 index 00000000..0938dea5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_5.ltx @@ -0,0 +1,68 @@ +[smart_terrain] +squad_id = 9 +max_population = 1 +respawn_params = respawn@val_smart_terrain_7_5 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@val_smart_terrain_7_5] ;-- Type: faction {bandit} = faction base\south +spawn_bandit@novice +spawn_bandit@advanced +spawn_bandit@veteran +spawn_bandit_special +spawn_bandit_special_2 +spawn_bandit_special_3 + + +[spawn_bandit@novice] +spawn_squads = bandit_sim_squad_novice, bandit_sim_squad_novice, bandit_sim_squad_advanced +spawn_num = {+zat_b5_sultan_dead} 0, 4 + +[spawn_bandit@advanced] +spawn_squads = bandit_sim_squad_advanced, bandit_sim_squad_novice, bandit_sim_squad_novice +spawn_num = {+zat_b5_sultan_dead} 0, 4 + +[spawn_bandit@veteran] +spawn_squads = bandit_sim_squad_veteran, bandit_sim_squad_advanced, bandit_sim_squad_advanced +spawn_num = {+zat_b5_sultan_dead} 0, 1 + +[spawn_bandit_special] +spawn_squads = bandit_novice_visiters_base +spawn_num = {!squad_name_exist(bandit_novice_visiters_base) -zat_b5_sultan_dead} 1, 0 + +[spawn_bandit_special_2] +spawn_squads = bandit_novice_visiters_2_base +spawn_num = {!squad_name_exist(bandit_novice_visiters_2_base) -zat_b5_sultan_dead} 1, 0 + +[spawn_bandit_special_3] +spawn_squads = guards_boss_bandit_in_main_base +spawn_num = {!squad_name_exist(guards_boss_bandit_in_main_base) -zat_b5_sultan_dead} 1, 0 + + +[on_changing_level] +on_info = {+zat_b5_sultan_dead} %=remove_squad(bandit_main_base_medic_mlr_squad) =remove_squad(guid_dv_mal_mlr_squad) =remove_squad(bandit_guards_in_main_base) =remove_squad(guards_boss_bandit_in_main_base)% + +;[smart_control] + +[exclusive] +guid_dv_mal_mlr = darkvalley\guid_dv_mal_mlr.ltx +bandit_main_base_medic_mlr = darkvalley\bandit_main_base_medic_mlr.ltx + +zat_b7_bandit_boss_sultan = darkvalley\val_smart_terrain_7_5_bandit_boss_sultan.ltx + +val_smart_terrain_7_5_camp_work_1 = darkvalley\val_smart_terrain_7_5_smart_logic.ltx +val_smart_terrain_7_5_camp_work_2 = darkvalley\val_smart_terrain_7_5_smart_logic.ltx +val_smart_terrain_7_5_camp_work_3 = darkvalley\val_smart_terrain_7_5_smart_logic.ltx +val_smart_terrain_7_5_camp_work_4 = darkvalley\val_smart_terrain_7_5_smart_logic.ltx +val_smart_terrain_7_5_camp_work_5 = darkvalley\val_smart_terrain_7_5_smart_logic.ltx + +val_smart_terrain_7_5_bandit_bodyguard1 = darkvalley\val_smart_terrain_7_5_bandit_boss_sultan.ltx +val_smart_terrain_7_5_bandit_bodyguard2 = darkvalley\val_smart_terrain_7_5_bandit_boss_sultan.ltx +val_smart_terrain_7_5_bandit_bodyguard3 = darkvalley\val_smart_terrain_7_5_bandit_boss_sultan.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_8.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_8.ltx new file mode 100644 index 00000000..1ab270b7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_7_8.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 10 +max_population = 1 +respawn_params = respawn@val_smart_terrain_7_8 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@val_smart_terrain_7_8] ;-- Type: +spawn_tushkano + + +[spawn_tushkano] ;-- Weak mutants - Rates of groups: ( 3 tushkano ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_tushkano_7_10 +spawn_num = 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_8_6.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_8_6.ltx new file mode 100644 index 00000000..08b2886e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_8_6.ltx @@ -0,0 +1,28 @@ +[smart_terrain] ;-- Disabled +squad_id = 11 +max_population = 1 +;respawn_params = respawn@val_smart_terrain_8_6 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@val_smart_terrain_8_6] +;spawn_bandit + + +;[spawn_bandit] +;spawn_squads = bandit_sim_squad_novice, bandit_sim_squad_advanced +;spawn_num = 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_8_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_8_7.ltx new file mode 100644 index 00000000..cfdc5b7b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_8_7.ltx @@ -0,0 +1,24 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 12 +;max_population = 1 +;respawn_params = respawn@val_smart_terrain_8_7 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@val_smart_terrain_8_7] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_8_9.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_8_9.ltx new file mode 100644 index 00000000..444026a4 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_8_9.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 13 +max_population = 1 +respawn_params = respawn@val_smart_terrain_8_9 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@val_smart_terrain_8_9] ;-- Type: +spawn_tushkano + + +[spawn_tushkano] ;-- Weak mutants - Rates of groups: ( 3 tushkano ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_tushkano_7_10 +spawn_num = 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_10.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_10.ltx new file mode 100644 index 00000000..290c2f30 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_10.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 14 +max_population = 1 +respawn_params = respawn@agr_smart_terrain_1_2 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@agr_smart_terrain_1_2] ;-- Type: c_2_1 + c_2_2 +spawn_all_hard_c_2_1 +spawn_all_worst_c_2_2 + + +[spawn_all_hard_c_2_1] ;-- Hard mutants - Rates of groups: ( 1 fracture + 2 snork + 1 psydog + 2 karlik) +spawn_squads = simulation_fracture, simulation_fracture, simulation_snork_2_3, simulation_psy_dog, simulation_karlik, simulation_karlik +spawn_num = {!actor_week_in_zone(4)} 1, {=actor_week_in_zone(4)} 0 + +[spawn_all_worst_c_2_2] ;-- Worst mutants - Rates of groups: ( 1 fracture + 2 snork + 1 bloodsucker + 1 psysucker + 1 karlik + 1 burer ) +spawn_squads = simulation_fracture, simulation_fracture, simulation_snork_2_5, simulation_psy_dog_squad, simulation_karlik, simulation_karlik +spawn_num = {=actor_week_in_zone(4)} 1, {!actor_week_in_zone(4)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_2.ltx new file mode 100644 index 00000000..e808f755 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_2.ltx @@ -0,0 +1,36 @@ +[smart_terrain] +squad_id = 15 +max_population = 1 +respawn_params = respawn@val_smart_terrain_9_2 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 500 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@val_smart_terrain_9_2] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 1 tushkano + 2 dogs + 2 flesh ) +spawn_squads = simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_flesh, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_cat, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +faction_base_defense_enemy1 = darkvalley\val_smart_terrain_9_2_smart_logic.ltx +faction_base_defense_enemy2 = darkvalley\val_smart_terrain_9_2_smart_logic.ltx +faction_base_defense_enemy3 = darkvalley\val_smart_terrain_9_2_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_4.ltx new file mode 100644 index 00000000..4921de92 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_4.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 16 +max_population = 2 +respawn_params = respawn@val_smart_terrain_9_4 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@val_smart_terrain_9_4] ;-- Type: faction {renegade} = safezone +spawn_renegade@novice +spawn_renegade@advanced + + +[spawn_renegade@novice] +spawn_squads = renegade_sim_squad_novice, renegade_sim_squad_novice, renegade_sim_squad_advanced +spawn_num = {+zat_b5_sultan_dead -mar_renegade_trader_dead} 4, 1 + +[spawn_renegade@advanced] +spawn_squads = renegade_sim_squad_advanced, renegade_sim_squad_novice, renegade_sim_squad_novice +spawn_num = {+zat_b5_sultan_dead -mar_renegade_trader_dead} 4, 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_6.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_6.ltx new file mode 100644 index 00000000..ff7dde83 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/smart/val_smart_terrain_9_6.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 17 +max_population = 1 +respawn_params = respawn@val_smart_terrain_9_6 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@val_smart_terrain_9_6] ;-- Type: +spawn_tushkano + + +[spawn_tushkano] ;-- Weak mutants - Rates of groups: ( 3 tushkano ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_tushkano_7_10 +spawn_num = 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_1.ltx new file mode 100644 index 00000000..59ca8c03 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_1.ltx @@ -0,0 +1,51 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(val_smart_terrain_3_0) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(val_smart_terrain_3_0) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(val_smart_terrain_7_11) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(val_smart_terrain_7_11) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(val_smart_terrain_8_9) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_8_9) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(val_smart_terrain_9_10) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(val_smart_terrain_9_10) =is_dark_night} ph_idle@spawn_dark_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10 } %=create_squad(simulation_tushkano_night:val_smart_terrain_3_0)% ph_idle@reset, {~10} %=create_squad(simulation_boar_night:val_smart_terrain_3_0)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_3_0)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:val_smart_terrain_3_0)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:val_smart_terrain_3_0)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:val_smart_terrain_3_0)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:val_smart_terrain_3_0)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:val_smart_terrain_3_0)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_tushkano_night:val_smart_terrain_7_11)% ph_idle@reset_2, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_7_11)% ph_idle@reset_2, {~10} %=create_squad(simulation_flesh_night:val_smart_terrain_7_11)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:val_smart_terrain_7_11)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:val_smart_terrain_7_11)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:val_smart_terrain_7_11) +% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_3_6_night:val_smart_terrain_7_11)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:val_smart_terrain_7_11)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:val_smart_terrain_8_9)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:val_smart_terrain_8_9)% ph_idle@reset_3, {~10} %=create_squad(simulation_lurker_brown_night:val_smart_terrain_8_9)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_psy_dog_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_flesh_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_cat_night:val_smart_terrain_9_10)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_chimera_night:val_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_gigant_night:val_smart_terrain_9_10)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_2.ltx new file mode 100644 index 00000000..edfcdb1d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_2.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(val_smart_terrain_5_7) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(val_smart_terrain_5_7) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(val_smart_terrain_5_8) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(val_smart_terrain_5_8) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(val_smart_terrain_7_8) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_7_8) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(val_smart_terrain_5_10) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(val_smart_terrain_5_10) =is_dark_night} ph_idle@spawn_dark_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_cat_night:val_smart_terrain_5_7)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_5_7)% ph_idle@reset, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:val_smart_terrain_5_7)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:val_smart_terrain_5_7)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:val_smart_terrain_5_7)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_5_7)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:val_smart_terrain_5_7)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:val_smart_terrain_5_7)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_5_8)% ph_idle@reset_2, {~10} %=create_squad(simulation_cat_night:val_smart_terrain_5_8)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_3_6_night:val_smart_terrain_5_8)%, {~10} %=create_squad(simulation_pseudodog_night:val_smart_terrain_5_8)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_bloodsucker_green_night:val_smart_terrain_5_8)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:val_smart_terrain_5_8)% ph_idle@reset_2, {~10} %=create_squad(simulation_lurker_night:val_smart_terrain_5_8)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:val_smart_terrain_5_8)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_snork_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_tushkano_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_mix_zombie_night:val_smart_terrain_7_8)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psy_dog_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:val_smart_terrain_7_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:val_smart_terrain_7_8)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_snork_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_cat_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:val_smart_terrain_5_10)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_lurker_blue_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_5_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:val_smart_terrain_5_10)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_3.ltx new file mode 100644 index 00000000..e4094a79 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/darkvalley/val_endless_night_spawn_logic_3.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(val_smart_terrain_6_4) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(val_smart_terrain_6_4) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(val_smart_terrain_6_5) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(val_smart_terrain_6_5) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(val_smart_terrain_8_7) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(val_smart_terrain_8_7) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(val_smart_terrain_9_2) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(val_smart_terrain_9_2) =is_dark_night} ph_idle@spawn_dark_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_tushkano_night:val_smart_terrain_6_4)% ph_idle@reset, {~10} %=create_squad(simulation_boar_night:val_smart_terrain_6_4)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:val_smart_terrain_6_4)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_6_4)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_green_night:val_smart_terrain_6_4)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:val_smart_terrain_6_4)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:val_smart_terrain_6_4)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:val_smart_terrain_6_4)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:val_smart_terrain_6_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_6_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:val_smart_terrain_6_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:val_smart_terrain_6_5)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:val_smart_terrain_6_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:val_smart_terrain_6_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_white_night)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_green_night:val_smart_terrain_6_5)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:val_smart_terrain_8_7)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_8_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_green_night:val_smart_terrain_8_7)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_tushkano_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_fracture_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_lurker_blue_night:val_smart_terrain_9_2)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_pseudodog_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_fracture_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_green_night:val_smart_terrain_9_2)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_white_night:val_smart_terrain_9_2)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/cit_bandits_spawn_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/cit_bandits_spawn_logic.ltx new file mode 100644 index 00000000..74f4a8a8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/cit_bandits_spawn_logic.ltx @@ -0,0 +1,18 @@ +[logic@cit_bandits_poltergeist] +active = mob_home@1 +suitable = {=target_squad_name(cit_bandits_poltergeist_squad)} true +monster_job = true +prior = 200 + + +[mob_home@1] +;path_home = home +home_min_radius = 1 +home_max_radius = 2 +out_restr = cit_smart_house_of_culture_spot + +[mob_home@2] +;path_home = home +home_min_radius = 1 +home_max_radius = 2 +out_restr = cit_bandits_base_zone diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_1.ltx new file mode 100644 index 00000000..382218b5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_1.ltx @@ -0,0 +1,30 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(zombie_smart_ds_mlr_1) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(zombie_smart_ds_mlr_1) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(cit_bandits_2) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(cit_bandits_2) =is_dark_night} ph_idle@spawn_dark_monster_2 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_tushkano_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:zombie_smart_ds_mlr_1)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:zombie_smart_ds_mlr_1)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_brown_night:zombie_smart_ds_mlr_1)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_cat_night:cit_bandits_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_dog_night:cit_bandits_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:cit_bandits_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_snork_night:cit_bandits_2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_bloodsucker_red_night:cit_bandits_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:cit_bandits_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:cit_bandits_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_brown_night:cit_bandits_2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_2.ltx new file mode 100644 index 00000000..dae95d9b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_2.ltx @@ -0,0 +1,30 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(zombie_smart_ds_mlr_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(zombie_smart_ds_mlr_2) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(cit_killers_2) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(cit_killers_2) =is_dark_night} ph_idle@spawn_dark_monster_2 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_tushkano_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:zombie_smart_ds_mlr_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_red_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_brown_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:zombie_smart_ds_mlr_2)% ph_idle@reset, {~10} %=create_squad(simulation_karlik_night:zombie_smart_ds_mlr_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_tushkano_night:cit_killers_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_dog_night:cit_killers_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:cit_killers_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:cit_killers_2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_psysucker_brown_night:cit_killers_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:cit_killers_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_red_night:cit_killers_2)% ph_idle@reset_2, {~10} %=create_squad(simulation_karlik_night:cit_killers_2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_3.ltx new file mode 100644 index 00000000..3dcef9cb --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/cit_endless_night_spawn_logic_3.ltx @@ -0,0 +1,30 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(cit_kanaliz1) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(cit_kanaliz1) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(cit_kanaliz2) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(cit_kanaliz2) =is_dark_night} ph_idle@spawn_dark_monster_2 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_dog_night:cit_kanaliz1)% ph_idle@reset, {~10} %=create_squad(simulation_boar_night:cit_kanaliz1)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:cit_kanaliz1)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:cit_kanaliz1)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_chimera_2weak_night:cit_kanaliz1)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:cit_kanaliz1)% ph_idle@reset, {~10} %=create_squad(simulation_gigant_night:cit_kanaliz1)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:cit_kanaliz1)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_cat_night:cit_kanaliz2)% ph_idle@reset_2, {~10} %=create_squad(simulation_mix_boar_flesh_night:cit_kanaliz2)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:cit_kanaliz2)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:cit_kanaliz2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_chimera_2weak_night:cit_kanaliz2)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:cit_kanaliz2)% ph_idle@reset_2, {~10} %=create_squad(simulation_gigant_night:cit_kanaliz2)% ph_idle@reset_2, {~10} %=create_squad(simulation_lurker_brown_night:cit_kanaliz2)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/mod_cit_crow_spawner_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/mod_cit_crow_spawner_redone.ltx new file mode 100644 index 00000000..7735e234 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/mod_cit_crow_spawner_redone.ltx @@ -0,0 +1,21 @@ +![logic] +!active = sr_crow_spawner +active = sr_idle@check_story + +[sr_idle@check_story] +on_info = {-story_mode_disabled} sr_idle@check_actor, {+story_mode_disabled -yan_x16_complete_end} sr_idle@check_actor %+yan_kill_brain_done% + +[sr_idle@check_actor] +on_info = {=actor_community(actor_monolith) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, {=actor_community(actor_greh) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, sr_idle@check_helmet + +[sr_idle@check_helmet] +on_info = {=actor_has_item(good_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, {=actor_has_item(bad_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, sr_idle@check_spawner + +[sr_idle@check_spawner] +on_info = sr_crow_spawner + +![sr_crow_spawner] +max_crows_on_level = 4 +spawn_path = cit_crow_spawn_1, cit_crow_spawn_2, cit_crow_spawn_3, cit_crow_spawn_4, cit_crow_spawn_5 + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/mod_cit_killers_merc_barman_mlr_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/mod_cit_killers_merc_barman_mlr_logic_redone.ltx new file mode 100644 index 00000000..d7d0b3b8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/mod_cit_killers_merc_barman_mlr_logic_redone.ltx @@ -0,0 +1,5 @@ +![logic@cit_killers_merc_barman_mlr] +on_death = death_aslan + +[death_aslan] +on_info = %+cit_killers_aslan_dead% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/mod_cit_killers_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/mod_cit_killers_smart_logic_redone.ltx new file mode 100644 index 00000000..3ee0792a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/mod_cit_killers_smart_logic_redone.ltx @@ -0,0 +1,5 @@ +![logic@cit_killers_merc_trader] +on_death = death_dushman + +[death_dushman] +on_info = %+cit_killers_dushman_dead% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/mod_deadcity_radio_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/mod_deadcity_radio_redone.ltx new file mode 100644 index 00000000..058969f2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/mod_deadcity_radio_redone.ltx @@ -0,0 +1,2 @@ +![ph_sound] +volume = {=surge_started}0, 1 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_bandits.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_bandits.ltx new file mode 100644 index 00000000..f89b45d5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_bandits.ltx @@ -0,0 +1,50 @@ +[smart_terrain] +squad_id = 1 +max_population = 3 +respawn_params = respawn@cit_bandits +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@cit_bandits] ;-- Type: +spawn_deserted_base + + +[spawn_deserted_base] +spawn_squads = monolith_sim_squad_veteran, monolith_sim_squad_advanced, monolith_sim_squad_novice +spawn_num = {+cit_killers_aslan_dead +cit_killers_dushman_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +cit_bandits_poltergeist = dead_city\cit_bandits_spawn_logic.ltx + + + + + + + + + + + + + + + + + + + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_bandits_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_bandits_2.ltx new file mode 100644 index 00000000..3a68b82e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_bandits_2.ltx @@ -0,0 +1,32 @@ +[smart_terrain] +squad_id = 5 +max_population = 3 +respawn_params = respawn@cit_bandits_2 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@cit_bandits_2] ;-- Type: +spawn_deserted_base + + +[spawn_deserted_base] +spawn_squads = monolith_sim_squad_veteran, monolith_sim_squad_advanced, monolith_sim_squad_novice +spawn_num = {+cit_killers_aslan_dead +cit_killers_dushman_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_kanaliz1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_kanaliz1.ltx new file mode 100644 index 00000000..24ee3d45 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_kanaliz1.ltx @@ -0,0 +1,37 @@ +[smart_terrain] +squad_id = 2 +max_population = 1 +respawn_params = respawn@cit_kanaliz1 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@cit_kanaliz1] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 +;spawn_zombied_special + +[spawn_all_weak_c_1_1] ;-- Normal mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 cats + 1 flesh ) +spawn_squads = simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 2, {=actor_week_in_zone(1)} 0 ;!squad_name_exist(cit_kanaliz1_zombied_squad) + +[spawn_all_normal_c_1_2] ;-- Normal mutants - Rates of groups: ( 2 dogs + 1 pseudodog + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_pseudodog, simulation_cat, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 2, {!actor_week_in_zone(1)} 0 ;!squad_name_exist(cit_kanaliz1_zombied_squad) + +;[spawn_zombied_special] +;spawn_squads = cit_kanaliz1_zombied_squad +;spawn_num = {!squad_name_exist(cit_kanaliz1_zombied_squad) -yan_kill_brain_done ~20} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_kanaliz2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_kanaliz2.ltx new file mode 100644 index 00000000..653045ef --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_kanaliz2.ltx @@ -0,0 +1,39 @@ +[smart_terrain] +squad_id = 3 +max_population = 1 +respawn_params = respawn@cit_kanaliz2 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@cit_kanaliz2] ;-- Type: faction {zombied} = mhee... +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 +spawn_zombied_special + +[spawn_all_weak_c_1_1] ;-- Normal mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 cats + 1 flesh ) +spawn_squads = simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh +spawn_num = {!actor_week_in_zone(1) !squad_name_exist(cit_kanaliz2_zombied_squad)} 2, {=actor_week_in_zone(1)!squad_name_exist(cit_kanaliz2_zombied_squad)} 0, 0 + +[spawn_all_normal_c_1_2] ;-- Normal mutants - Rates of groups: ( 2 dogs + 1 pseudodog + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_pseudodog, simulation_cat, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1) !squad_name_exist(cit_kanaliz2_zombied_squad)} 2, {!actor_week_in_zone(1) !squad_name_exist(cit_kanaliz2_zombied_squad)} 0, 0 + +[spawn_zombied_special] +spawn_squads = cit_kanaliz2_zombied_squad +spawn_num = {!squad_name_exist(cit_kanaliz2_zombied_squad) -yan_kill_brain_done ~20} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_killers.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_killers.ltx new file mode 100644 index 00000000..0d780577 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_killers.ltx @@ -0,0 +1,81 @@ +[smart_terrain] +squad_id = 4 +max_population = 4 +respawn_params = respawn@cit_killers +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +def_restr = cit_killers_base_zone +;safe_restr = nil +;spawn_point = cit_killers_merc_trader_spawn + +[respawn@cit_killers] ;-- Type: faction {killer} = faction base +spawn_killer@novice +spawn_killer@advanced +spawn_killer@veteran +spawn_killer_special +spawn_killer_special_2 +spawn_killer_special_3 + +[spawn_killer@novice] +spawn_squads = merc_sim_squad_novice, merc_sim_squad_novice, merc_sim_squad_advanced +spawn_num = {+cit_killers_aslan_dead +cit_killers_dushman_dead} 1, 2 + +[spawn_killer@advanced] +spawn_squads = merc_sim_squad_advanced, merc_sim_squad_advanced, merc_sim_squad_novice +spawn_num = {+cit_killers_aslan_dead +cit_killers_dushman_dead} 1, 2 + +[spawn_killer@veteran] +spawn_squads = merc_sim_squad_veteran, merc_sim_squad_advanced, merc_sim_squad_advanced +spawn_num = {+cit_killers_aslan_dead +cit_killers_dushman_dead} 0, 2 + +[spawn_killer_special] +spawn_squads = cit_killers_merc_guard_squad_1 +spawn_num = {!squad_name_exist(cit_killers_merc_guard_squad_1) -cit_killers_aslan_dead} 1, 0 ;{-cit_killers_dushman_dead} + +[spawn_killer_special_2] +spawn_squads = cit_killers_merc_guard_squad_2 +spawn_num = {!squad_name_exist(cit_killers_merc_guard_squad_2) -cit_killers_aslan_dead} 1, 0 ;{-cit_killers_dushman_dead} + +[spawn_killer_special_3] +spawn_squads = cit_killers_merc_guard_squad_3 +spawn_num = {!squad_name_exist(cit_killers_merc_guard_squad_3) -cit_killers_aslan_dead} 1, 0 ;{-cit_killers_dushman_dead} + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +cit_killers_merc_trader = dead_city\cit_killers_smart_logic.ltx +cit_killers_merc_mechanic = dead_city\cit_killers_smart_logic.ltx +cit_killers_merc_barman_mlr = dead_city\cit_killers_merc_barman_mlr_logic.ltx +cit_killers_merc_medic = dead_city\cit_killers_smart_logic.ltx + +ds_killer_guide_main_base = dead_city\ds_killer_guide_main_base_logic.ltx + +cit_killers_beh_trade_job_1 = dead_city\cit_killers_smart_logic.ltx +cit_killers_beh_tech_job_1 = dead_city\cit_killers_smart_logic.ltx + +cit_killers_camp_work_1 = dead_city\cit_killers_smart_logic.ltx +cit_killers_camp_work_2 = dead_city\cit_killers_smart_logic.ltx +cit_killers_camp_work_3 = dead_city\cit_killers_smart_logic.ltx +cit_killers_camp_work_4 = dead_city\cit_killers_smart_logic.ltx +cit_killers_camp_work_5 = dead_city\cit_killers_smart_logic.ltx +cit_killers_camp_work_6 = dead_city\cit_killers_smart_logic.ltx +cit_killers_camp_work_7 = dead_city\cit_killers_smart_logic.ltx +cit_killers_camp_work_8 = dead_city\cit_killers_smart_logic.ltx +cit_killers_camp_work_9 = dead_city\cit_killers_smart_logic.ltx +cit_killers_camp_work_10 = dead_city\cit_killers_smart_logic.ltx +cit_killers_camp_work_11 = dead_city\cit_killers_smart_logic.ltx +cit_killers_camp_work_12 = dead_city\cit_killers_smart_logic.ltx + +faction_base_defense_enemy1 = dead_city\cit_killers_smart_logic.ltx +faction_base_defense_enemy2 = dead_city\cit_killers_smart_logic.ltx +faction_base_defense_enemy3 = dead_city\cit_killers_smart_logic.ltx +faction_base_defense_enemy4 = dead_city\cit_killers_smart_logic.ltx +faction_base_defense_enemy5 = dead_city\cit_killers_smart_logic.ltx +faction_base_defense_enemy6 = dead_city\cit_killers_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_killers_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_killers_2.ltx new file mode 100644 index 00000000..ffadcec6 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_killers_2.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 6 +max_population = 3 +respawn_params = respawn@cit_killers_2 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@cit_killers_2] ;-- Type: +spawn_deserted_base + + +[spawn_deserted_base] +spawn_squads = monolith_sim_squad_veteran, monolith_sim_squad_advanced, monolith_sim_squad_novice +spawn_num = {+cit_killers_aslan_dead +cit_killers_dushman_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +faction_base_defense_enemy1 = dead_city\cit_killers_2_smart_logic +faction_base_defense_enemy2 = dead_city\cit_killers_2_smart_logic +faction_base_defense_enemy3 = dead_city\cit_killers_2_smart_logic +faction_base_defense_enemy4 = dead_city\cit_killers_2_smart_logic +faction_base_defense_enemy5 = dead_city\cit_killers_2_smart_logic +faction_base_defense_enemy6 = dead_city\cit_killers_2_smart_logic \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_killers_vs_bandits.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_killers_vs_bandits.ltx new file mode 100644 index 00000000..ce2ce108 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/cit_killers_vs_bandits.ltx @@ -0,0 +1,49 @@ +[smart_terrain] ;Spawns for more quests as merc. +squad_id = 7 +max_population = 0 ;broken npc path finding +respawn_params = respawn@cit_killers_vs_bandits +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@cit_killers_vs_bandits] ;-- Type: faction {killer\bandits} = barracks\safezone +;spawn_bandit_special +;spawn_bandit_special_2 +;spawn_bandit_special_3 +spawn_killer_special +spawn_killer_special_2 + + +;[spawn_bandit_special] +;spawn_squads = cit_bandit_guard_squad_1 +;spawn_num = {!squad_name_exist(cit_bandit_guard_squad_1)} 1, 0 + +;[spawn_bandit_special_2] +;spawn_squads = cit_bandit_guard_squad_2 +;spawn_num = {!squad_name_exist(cit_bandit_guard_squad_2)} 1, 0 + +;[spawn_bandit_special_3] +;spawn_squads = cit_bandit_guard_squad_3 +;spawn_num = {!squad_name_exist(cit_bandit_guard_squad_3)} 1, 0 + +[spawn_killer_special] +spawn_squads = cit_killers_guard_squad_1 +spawn_num = {!squad_name_exist(cit_killers_guard_squad_1) -cit_killers_aslan_dead -cit_killers_dushman_dead} 1, 0 + +[spawn_killer_special_2] +spawn_squads = cit_killers_guard_squad_2 +spawn_num = {!squad_name_exist(cit_killers_guard_squad_2) -cit_killers_aslan_dead -cit_killers_dushman_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/zombie_smart_ds_mlr_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/zombie_smart_ds_mlr_1.ltx new file mode 100644 index 00000000..e4a668ee --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/zombie_smart_ds_mlr_1.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 25 +max_population = 1 +respawn_params = respawn@zombie_smart_ds_mlr_1 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@zombie_smart_ds_mlr_1] ;-- Type: faction {zombied} = mhee... +spawn_zombie +spawn_mutants + + +[spawn_zombie] ;-- Weak mutants - Rates of groups: ( 3 zombie ) +spawn_squads = simulation_zombie, simulation_zombie_3_6, simulation_mix_zombie +spawn_num = {+yan_kill_brain_done} 0, 2 + +[spawn_mutants] ;-- Normal mutants - Rates of groups: ( 2 dogs + 1 pseudodog + 2 cat ) +spawn_squads = simulation_dog, simulation_mix_dogs, simulation_pseudodog, simulation_cat, simulation_cat_3_5 +spawn_num = {+yan_kill_brain_done} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/zombie_smart_ds_mlr_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/zombie_smart_ds_mlr_2.ltx new file mode 100644 index 00000000..7f2c8429 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smart/zombie_smart_ds_mlr_2.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 26 +max_population = 1 +respawn_params = respawn@zombie_smart_ds_mlr_2 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@zombie_smart_ds_mlr_2] ;-- Type: faction {zombied} = mhee... +spawn_zombie +spawn_mutants + + +[spawn_zombie] ;-- Weak mutants - Rates of groups: ( 3 zombie ) +spawn_squads = simulation_zombie, simulation_zombie_3_6, simulation_mix_zombie +spawn_num = {+bar_deactivate_radar_done} 0, 2 + +[spawn_mutants] ;-- Normal mutants - Rates of groups: ( 2 dogs + 1 pseudodog + 2 cat ) +spawn_squads = simulation_dog, simulation_mix_dogs, simulation_pseudodog, simulation_cat, simulation_cat_3_5 +spawn_num = {+bar_deactivate_radar_done} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smarts/zombie_smart_ds_mlr_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smarts/zombie_smart_ds_mlr_1.ltx new file mode 100644 index 00000000..e4a668ee --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smarts/zombie_smart_ds_mlr_1.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 25 +max_population = 1 +respawn_params = respawn@zombie_smart_ds_mlr_1 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@zombie_smart_ds_mlr_1] ;-- Type: faction {zombied} = mhee... +spawn_zombie +spawn_mutants + + +[spawn_zombie] ;-- Weak mutants - Rates of groups: ( 3 zombie ) +spawn_squads = simulation_zombie, simulation_zombie_3_6, simulation_mix_zombie +spawn_num = {+yan_kill_brain_done} 0, 2 + +[spawn_mutants] ;-- Normal mutants - Rates of groups: ( 2 dogs + 1 pseudodog + 2 cat ) +spawn_squads = simulation_dog, simulation_mix_dogs, simulation_pseudodog, simulation_cat, simulation_cat_3_5 +spawn_num = {+yan_kill_brain_done} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smarts/zombie_smart_ds_mlr_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smarts/zombie_smart_ds_mlr_2.ltx new file mode 100644 index 00000000..7f2c8429 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/dead_city/smarts/zombie_smart_ds_mlr_2.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 26 +max_population = 1 +respawn_params = respawn@zombie_smart_ds_mlr_2 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@zombie_smart_ds_mlr_2] ;-- Type: faction {zombied} = mhee... +spawn_zombie +spawn_mutants + + +[spawn_zombie] ;-- Weak mutants - Rates of groups: ( 3 zombie ) +spawn_squads = simulation_zombie, simulation_zombie_3_6, simulation_mix_zombie +spawn_num = {+bar_deactivate_radar_done} 0, 2 + +[spawn_mutants] ;-- Normal mutants - Rates of groups: ( 2 dogs + 1 pseudodog + 2 cat ) +spawn_squads = simulation_dog, simulation_mix_dogs, simulation_pseudodog, simulation_cat, simulation_cat_3_5 +spawn_num = {+bar_deactivate_radar_done} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/devushka.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/devushka.ltx new file mode 100644 index 00000000..a9b5bed2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/devushka.ltx @@ -0,0 +1,180 @@ +[logic@devushka] +suitable = {=target_squad_name(devushka_squad)} true +prior = 140 +active = walker@devushka_walk_1 +level_spot = special + +[walker@devushka] +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +reach_distance = 10 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = false + +[walker@devushka_walk_1]:walker@devushka +path_walk = guard_2_walk +path_look = guard_2_look +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} walker@sleeper_1 +on_info3 = {=is_rain} walker@rain_1 +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +reach_distance = 5 +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = false +on_game_timer = 6500 | remark@smoking_stand_3 + +[walker@devushka_walk_2]:walker@devushka +path_walk = surge_hide_9_walk +path_look = surge_hide_9_look +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} walker@sleeper_1 +on_info3 = {=is_rain} walker@rain_1 +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +reach_distance = 5 +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = false +on_game_timer = 500 | remark@smoking_stand_1 + +[walker@devushka_walk_3]:walker@devushka +path_walk = surge_hide_11_walk +path_look = surge_hide_11_look +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} walker@sleeper_1 +on_info3 = {=is_rain} walker@rain_1 +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +reach_distance = 5 +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = false +on_game_timer = 150 | remark@smoking_stand_1 + +[walker@devushka_home_1]:walker@devushka +path_walk = hide_2_walk +path_look = hide_1_look +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} walker@sleeper_1 +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +reach_distance = 5 +gather_items_enabled = true +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = false +on_game_timer = 8000 | remark@sit_ass + +[walker@devushka_home_2]:walker@devushka +path_walk = hide_2_walk +path_look = hide_1_look +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} walker@sleeper_1 +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +reach_distance = 5 +gather_items_enabled = true +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = false +on_game_timer = 1500 | remark@eat_bread + +[walker@devushka_home_3]:walker@devushka +path_walk = hide_2_walk +path_look = hide_1_look +on_info = {=surge_started} walker@surge_1 +;on_info2 = {=is_night} walker@sleeper_1 +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +reach_distance = 5 +gather_items_enabled = true +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = false +on_game_timer = 3500 | walker@sleeper_1 + +[remark@sit_ass]:walker@devushka +anim = sit_ass +on_info = {=surge_started} walker@surge +on_game_timer = 10500 | walker@devushka_walk_2 + +[remark@eat_bread]:walker@devushka +anim = eat_bread +on_info = {=surge_started} walker@surge +on_game_timer = 800 | remark@use_pda + +[remark@use_pda]:walker@devushka +anim = use_pda +on_info = {=surge_started} walker@surge +on_game_timer = 500 | walker@devushka_walk_1 + +[remark@smoking_stand_1]:walker@devushka +anim = smoking_stand +on_info = {=surge_started} walker@surge +on_game_timer = 900 | walker@devushka_home_2 + +[remark@smoking_stand_2]:walker@devushka +anim = smoking_stand +on_info = {=surge_started} walker@surge +on_game_timer = 900 | sleeper@sleeper_2 + +[remark@smoking_stand_3]:walker@devushka +anim = smoking_stand +on_info = {=surge_started} walker@surge +on_game_timer = 900 | campfire_point@devushka + +[campfire_point@devushka]:walker@devushka +smart = esc_smart_terrain_2_12 +use_camp = true +anim = idle, guard +on_game_timer = 10500 | walker@devushka_home_1 + +[walker@rain_1] +path_walk = hide_2_walk +path_look = hide_1_look +on_info = {!is_rain} walker@devushka_home_1 +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = false + +[walker@surge_1] +path_walk = hide_2_walk +path_look = hide_1_look +on_info = {!surge_started} walker@devushka_home_1 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = false + +[walker@sleeper_1] +path_walk = guardermlr_2_walk +path_look = guardermlr_2_look +on_info = {=surge_started} walker@surge_1 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = false +;on_info = {!is_night} walker@devushka_home_2 +on_game_timer = 12500 | remark@smoking_stand_2 + +[sleeper@sleeper_2] +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = false +path_main = hide_2_walk +meet = no_meet +on_info = {!is_night} remark@eat_bread + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_2_12_stalker_fanat.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_2_12_stalker_fanat.ltx new file mode 100644 index 00000000..03bd267f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_2_12_stalker_fanat.ltx @@ -0,0 +1,147 @@ +[logic@esc_2_12_stalker_fanat] +suitable = {=target_squad_name(esc_2_12_stalker_fanat_squad)} true +prior = 140 +active = walker@guarder_2 +level_spot = quest_npc +;on_combat = combat + +;[combat] +;combat_type = {=cond_scheme_cover()} cover, {=cond_scheme_camper()} camper + +[walker@fanat] +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, false +combat_ignore_keep_when_attacked = {=is_warfare} false, true +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +use_camp = false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false + +[walker@guarder_2] +path_walk = guardermlr_2_walk +path_look = guardermlr_2_look +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_info3 = {=is_rain} walker@rain_1 +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, false +combat_ignore_keep_when_attacked = {=is_warfare} false, true +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +reach_distance = 10 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +on_game_timer = 11500 | walker@patrol_walk_1 + +[walker@patrol_walk_1] +path_walk = surge_hide_8_walk +path_look = surge_hide_10_look +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_info3 = {=is_rain} walker@rain_1 +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, false +combat_ignore_keep_when_attacked = {=is_warfare} false, true +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +on_game_timer = 3000 | remark@drink_vodka + +[walker@patrol_walk_2] +path_walk = guardermlr_2_walk +path_look = guardermlr_2_look +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_info3 = {=is_rain} walker@rain_1 +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, false +combat_ignore_keep_when_attacked = {=is_warfare} false, true +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +on_game_timer = 10500 | walker@fanat_home_1 + +[walker@fanat_home_1] +path_walk = surge_hide_8_walk +path_look = surge_hide_10_look +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_info3 = {=is_rain} walker@rain_1 +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, false +combat_ignore_keep_when_attacked = {=is_warfare} false, true +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +on_game_timer = 450 | remark@fold_arms + +[walker@fanat_home_2] +path_walk = surge_hide_8_walk +path_look = surge_hide_10_look +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_info3 = {=is_rain} walker@rain_1 +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, false +combat_ignore_keep_when_attacked = {=is_warfare} false, true +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +on_game_timer = 11500 | remark@eat_bread + +[remark@drink_vodka]:walker@fanat +anim = drink_vodka_stand +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_game_timer = 190 | walker@patrol_walk_2 + +[remark@fold_arms]:walker@fanat +anim = fold_arms +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_game_timer = 5500 | walker@fanat_home_2 + +[remark@eat_bread]:walker@fanat +anim = eat_bread +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_game_timer = 800 | remark@use_pda + +[remark@use_pda]:walker@fanat +anim = use_pda +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_game_timer = 400 | walker@guarder_2 + +[walker@rain_1] +path_walk = surge_hide_8_walk +path_look = surge_hide_10_look +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_info3 = {!is_rain} walker@guarder_2 +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, false +combat_ignore_keep_when_attacked = {=is_warfare} false, true +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = false + +[walker@surge_1] +path_walk = surge_hide_8_walk +path_look = surge_hide_10_look +on_info = {!surge_started} walker@guarder_2 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false + +[sleeper@sleeper_1] +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +path_main = fanat_sleeper +meet = no_meet +on_info = {!is_night} remark@eat_bread + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_2_12_stalker_wolf.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_2_12_stalker_wolf.ltx new file mode 100644 index 00000000..6024a14a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_2_12_stalker_wolf.ltx @@ -0,0 +1,146 @@ +[logic@esc_2_12_stalker_wolf] +active = walker@guarder_1 +level_spot = quest_npc +suitable = {=check_npc_name(esc_2_12_stalker_wolf)} true +prior = 140 + +[walker@wolf] +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +use_camp = false +meet = meet@send_far +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false + +[walker@guarder_1]:walker@wolf +path_walk = guarder_1_walk +path_look = guarder_1_look +on_info = {=surge_started} walker@hide_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_info3 = {=is_heavy_rain} walker@rain_1 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +combat_ignore_cond = {!is_enemy_actor_or_companion !enemy_in_zone(esc_2_12_stalker_wolf_kill_zone)} true, false +combat_ignore_keep_when_attacked = false +on_game_timer = 11500 | walker@patrol_walk_1 + +[walker@guarder_2]:walker@wolf +path_walk = guarder_1_walk +path_look = guarder_1_look +on_info = {=surge_started} walker@hide_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_info3 = {=is_heavy_rain} walker@rain_1 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +combat_ignore_cond = {!is_enemy_actor_or_companion !enemy_in_zone(esc_2_12_stalker_wolf_kill_zone)} true, false +combat_ignore_keep_when_attacked = false +on_game_timer = 11500 | walker@patrol_walk_3 + +[walker@patrol_walk_1]:walker@wolf +path_walk = nimble_sleeper +path_look = surge_hide_1_walk +on_info = {=surge_started} walker@hide_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_info3 = {=is_heavy_rain} walker@rain_1 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +combat_ignore_cond = {!is_enemy_actor_or_companion !enemy_in_zone(esc_2_12_stalker_wolf_kill_zone)} true, false +combat_ignore_keep_when_attacked = false +meet = meet@send_far +on_game_timer = 300 | remark@fold_arms + +[walker@patrol_walk_2]:walker@wolf +path_walk = surge_hide_1_walk +path_look = surge_hide_1_look +on_info = {=surge_started} walker@hide_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_info3 = {=is_heavy_rain} walker@rain_1 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +combat_ignore_cond = {!is_enemy_actor_or_companion !enemy_in_zone(esc_2_12_stalker_wolf_kill_zone)} true, false +combat_ignore_keep_when_attacked = false +meet = meet@send_far +on_game_timer = 450 | remark@eat_bread + +[walker@patrol_walk_3]:walker@wolf +path_walk = surge_hide_9_walk +path_look = surge_hide_9_look +on_info = {=surge_started} walker@hide_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_info3 = {=is_heavy_rain} walker@rain_1 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +combat_ignore_cond = {!is_enemy_actor_or_companion !enemy_in_zone(esc_2_12_stalker_wolf_kill_zone)} true, false +combat_ignore_keep_when_attacked = false +on_game_timer = 150 | remark@fold_arms + +[remark@fold_arms]:walker@wolf +anim = fold_arms +on_info = {=surge_started} walker@hide_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_game_timer = 2500 | walker@patrol_walk_2 + +[remark@eat_bread]:walker@wolf +anim = eat_bread +on_info = {=surge_started} walker@hide_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_game_timer = 800 | remark@use_pda + +[remark@use_pda]:walker@wolf +anim = use_pda +on_info = {=surge_started} walker@hide_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_game_timer = 500 | walker@guarder_2 + +[walker@rain_1]:walker@wolf +path_walk = hide_1_walk +path_look = hide_1_look +on_info = {=surge_started} walker@hide_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_info3 = {!is_heavy_rain} walker@guarder_1 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = false + +[walker@hide_1]:walker@wolf +path_walk = hide_1_walk +path_look = hide_1_look +on_info = {!surge_started} walker@guarder_1 +out_restr = esc_smart_terrain_2_12_surge_hide_a1 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +combat_ignore_cond = {!enemy_in_zone(esc_2_12_stalker_wolf_kill_zone)} true, false +combat_ignore_keep_when_attacked = false + +[sleeper@sleeper_1] +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +path_main = nimble_sleeper ;surge_hide_1_walk +meet = no_meet +on_info = {!is_night} remark@eat_bread + +[meet@send_far] +close_anim = nil +close_victim = nil +far_anim = nil +far_victim = nil +close_snd_hello = nil +close_snd_bye = nil +use = {=actor_enemy} false, {=dist_to_actor_le(3)} true, false +snd_on_use = {=is_wounded} nil, {=actor_enemy} nil, {=has_enemy} meet_use_no_fight, {=actor_has_weapon} meet_use_no_weapon, {!dist_to_actor_le(3)} nil, meet_use_no_talk_leader +meet_on_talking = false +trade_enable = false +allow_break = false diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_3_16_military_mechan_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_3_16_military_mechan_logic.ltx new file mode 100644 index 00000000..084926ae --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_3_16_military_mechan_logic.ltx @@ -0,0 +1,110 @@ +[logic@army_south_mechan_mlr] +suitable = {=check_npc_name(army_south_mechan_mlr)} true, {=check_npc_mechanic} true +prior = 200 +active = walker@base_1 +can_select_weapon = {=is_warfare} true, false +level_spot = mechanic +trade = items\trade\trade_generic_mechanic.ltx +dont_keep_items = true + +[walker@base_1] +path_walk = south_mechan_1_walk +path_look = south_mechan_1_look +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_info3 = {=is_heavy_rain} walker@rain_1 +on_info4 = {+awr_army_south_mechan_mlr_access} walker@mechan_mlr_access +use_camp = false +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +on_game_timer = 16050 | walker@base_2 + +[walker@base_2] +path_walk = south_mechan_hide_1_walk +path_look = south_mechan_hide_1_look +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} sleeper@sleeper_1 +on_info3 = {=is_heavy_rain} walker@rain_1 +use_camp = false +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +on_game_timer = 15000 | remark@drink_vodka + +[remark@drink_vodka]:walker@base_2 +anim = animpoint_sit_ass_drink_vodka +on_game_timer = 950 | walker@base_1 + +[walker@rain_1] +path_walk = south_mechan_hide_1_walk +path_look = south_mechan_hide_1_look +on_info = {!is_heavy_rain} walker@base_1 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +use_camp = false + +[walker@surge_1] +path_walk = south_mechan_hide_1_walk +path_look = south_mechan_hide_1_look +on_info = {!surge_started} walker@base_1 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +use_camp = false +meet = meet + +[sleeper@sleeper_1] +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +path_main = south_mechan_sleeper +meet = no_meet +on_info = {!is_night} walker@base_1 + +[walker@mechan_mlr_access] +path_walk = esc_1_walk +path_look = esc_1_look +gather_items_enabled = false +help_wounded_enabled = false +on_game_timer = 25 | remark@drink +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +meet = no_meet + +[remark@drink]:walker@mechan_mlr_access +anim = animpoint_sit_ass_drink_vodka +meet = meet +on_game_timer = 2000 | walker@base_1 %=awr_timer_msg_off% + +[meet] +close_anim = nil +close_victim = nil +far_anim = nil +far_victim = nil +close_distance = 0 +far_distance = 0 +close_snd_distance = 3 +abuse = false +use = {=actor_enemy} false, true +allow_break = false +meet_on_talking = false +trade_enable = false diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_3_16_military_trader_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_3_16_military_trader_logic.ltx new file mode 100644 index 00000000..31cec1e7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_3_16_military_trader_logic.ltx @@ -0,0 +1,109 @@ +[logic@esc_3_16_military_trader] +suitable = {=check_npc_name(esc_3_16_military_trader)} true, {=check_npc_trader} true +prior = 200 +active = walker@mil_1 +level_spot = trader +can_select_weapon = {=is_warfare} true, false +dont_keep_items = true +trade = items\trade\trade_military_esc.ltx + +[walker@mil_1] +path_walk = military_trader_1_walk +path_look = military_trader_1_look +on_info = {=is_night} sleeper@milit +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +use_camp = false +meet = meet +on_game_timer = 15000 | walker@mil_2 + +[walker@mil_2] +path_walk = esc_1_walk +path_look = south_mechan_1_look +on_info = {=surge_started} walker@surge_1 +on_info2 = {=is_night} sleeper@milit +on_info3 = {=is_heavy_rain} walker@rain_1 +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +use_camp = false +meet = meet +on_game_timer = 350 | beh@mil_3 + +[walker@rain_1] +path_walk = military_trader_1_walk +path_look = military_trader_1_look +on_info = {!is_heavy_rain} walker@mil_1 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +use_camp = false +meet = meet + +[walker@surge_1] +path_walk = military_trader_1_walk +path_look = military_trader_1_look +on_info = {!surge_started} walker@mil_1 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +use_camp = false +meet = meet + +[sleeper@milit] +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +path_main = military_trader_sleeper +meet = no_meet +on_info = {!is_night} walker@mil_1 + +[meet] +close_anim = nil +close_victim = nil +far_anim = nil +far_victim = nil +close_distance = 0 +far_distance = 0 +close_snd_distance = 3 +abuse = false +use = {=actor_enemy} false, true +allow_break = false +meet_on_talking = false +trade_enable = false ;{+zaim1} false, {+zaim2} false, {+zaim3} false, true + +[beh@general] +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = walk +jog_anim = rush +run_anim = rush +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +use_camp = false +meet = meet + +[beh@mil_3]:beh@general +pt1 = 15000, fold_arms | pos: -139.45146179199, -29.689914703369, -351.18307495117 look: -139.47183227539, -29.690269470215, -352.20761108398 +on_game_timer = 15000 | walker@mil_1 diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_1.ltx new file mode 100644 index 00000000..8a1d3f4e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_1.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(esc_smart_terrain_1_11) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(esc_smart_terrain_1_11) =is_dark_night} ph_idle@spawn_night_monster_1 +on_info2 = {=actor_near_smart(esc_smart_terrain_4_9) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(esc_smart_terrain_4_9) =is_dark_night} ph_idle@spawn_night_monster_2 +on_info3 = {=actor_near_smart(esc_smart_terrain_4_11) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(esc_smart_terrain_4_11) =is_dark_night} ph_idle@spawn_night_monster_3 +on_info4 = {=actor_near_smart(esc_smart_terrain_5_12) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(esc_smart_terrain_5_12) =is_dark_night} ph_idle@spawn_night_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_1_11)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_1_11)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_1_11)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_1_11)% ph_idle@reset, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_1_11)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_1_11)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_1_11)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_1_11)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:esc_smart_terrain_4_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:esc_smart_terrain_4_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_4_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_4_9)% ph_idle@reset_2, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:esc_smart_terrain_4_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:esc_smart_terrain_4_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_4_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_4_9)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_4_11)% ph_idle@reset_3, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_4_11)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_4_11)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_5_12)% ph_idle@reset_4, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_5_12)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_5_12)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_2.ltx new file mode 100644 index 00000000..cd708f10 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_2.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(esc_smart_terrain_8_9) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(esc_smart_terrain_8_9) =is_dark_night} ph_idle@spawn_night_monster_1 +on_info2 = {=actor_near_smart(esc_smart_terrain_8_10) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(esc_smart_terrain_8_10) =is_dark_night} ph_idle@spawn_night_monster_2 +on_info3 = {=actor_near_smart(esc_smart_terrain_9_7) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(esc_smart_terrain_9_7) =is_dark_night} ph_idle@spawn_night_monster_3 +on_info4 = {=actor_near_smart(esc_smart_terrain_9_10) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(esc_smart_terrain_9_10) =is_dark_night} ph_idle@spawn_night_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_8_9)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_8_9)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_8_9)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_8_9)% ph_idle@reset, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_8_9)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_8_9)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_8_9)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_8_9)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:esc_smart_terrain_8_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:esc_smart_terrain_8_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_8_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_8_10)% ph_idle@reset_2, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:esc_smart_terrain_8_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:esc_smart_terrain_8_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_boar_3_5_night:esc_smart_terrain_8_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_8_10)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_9_7)% ph_idle@reset_3, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_9_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_9_7)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_lurker_blue_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_9_10)% ph_idle@reset_4, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_lurker_blue_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_9_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_9_10)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_3.ltx new file mode 100644 index 00000000..3b0a0ccb --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_endless_night_spawn_logic_3.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(esc_smart_terrain_3_7) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(esc_smart_terrain_3_7) =is_dark_night} ph_idle@spawn_night_monster_1 +on_info2 = {=actor_near_smart(esc_smart_terrain_5_4) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(esc_smart_terrain_5_4) =is_dark_night} ph_idle@spawn_night_monster_2 +on_info3 = {=actor_near_smart(esc_smart_terrain_5_6) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(esc_smart_terrain_5_6) =is_dark_night} ph_idle@spawn_night_monster_3 +on_info4 = {=actor_near_smart(esc_smart_terrain_6_6) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(esc_smart_terrain_6_6) =is_dark_night} ph_idle@spawn_night_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_3_7)% ph_idle@reset, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_3_7)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:esc_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:esc_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_5_4)% ph_idle@reset_2, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:esc_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:esc_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_boar_3_5_night:esc_smart_terrain_5_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:esc_smart_terrain_5_4)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_5_6)% ph_idle@reset_3, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_5_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_5_6)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_6_6)% ph_idle@reset_4, ph_idle@wait_reset + +;[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_cat_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:esc_smart_terrain_6_6)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:esc_smart_terrain_6_6)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_smart_terrain_3_7_squad_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_smart_terrain_3_7_squad_logic.ltx new file mode 100644 index 00000000..442c9211 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_smart_terrain_3_7_squad_logic.ltx @@ -0,0 +1,105 @@ +[logic@esc_smart_terrain_3_7_monster_work_1] +active = beh@esc_smart_terrain_3_7_monster_work_1 +suitable = {=target_squad_name()} true +prior = 200 + +[logic@esc_smart_terrain_3_7_monster_work_2] +active = beh@esc_smart_terrain_3_7_monster_work_2 +suitable = {=target_squad_name()} true +prior = 200 + +[logic@esc_smart_terrain_3_7_monster_work_3] +active = beh@esc_smart_terrain_3_7_monster_work_3 +suitable = {=target_squad_name()} true +prior = 200 + +[logic@esc_smart_terrain_3_7_monster_work_4] +active = beh@esc_smart_terrain_3_7_monster_work_4 +suitable = {=target_squad_name()} true +prior = 200 + +[logic@esc_smart_terrain_3_7_bandit_work_1] +active = beh@esc_smart_terrain_3_7_bandit_work_1 +suitable = {!surge_started} true +prior = 200 + +[logic@esc_smart_terrain_3_7_bandit_work_2] +active = beh@esc_smart_terrain_3_7_bandit_work_2 +suitable = {!surge_started} true +prior = 200 + +[logic@esc_smart_terrain_3_7_bandit_work_3] +active = beh@esc_smart_terrain_3_7_bandit_work_3 +suitable = {!surge_started} true +prior = 200 + +[logic@esc_smart_terrain_3_7_renegade_work_1] +active = beh@esc_smart_terrain_3_7_renegade_work_1 +suitable = {!surge_started} true +prior = 200 + +[logic@esc_smart_terrain_3_7_renegade_work_2] +active = beh@esc_smart_terrain_3_7_renegade_work_2 +suitable = {!surge_started} true +prior = 200 + +[logic@esc_smart_terrain_3_7_renegade_work_3] +active = beh@esc_smart_terrain_3_7_renegade_work_3 +suitable = {!surge_started} true +prior = 200 + +[beh@general_monster] +behavior_state = beh_move +target = waypoint + +[beh@general_guard] +behavior_state = beh_move +target = waypoint +walk_dist = 90 +jog_dist = 150 +wait_anim = guard +jog_anim = assault +run_anim = assault +delay_anim = guard +use_camp = true +turn_on_campfire = false + +[beh@esc_smart_terrain_3_7_monster_work_1]:beh@general_monster +pt1 = 88860000,misc | pos: +path_end = loop + +[beh@esc_smart_terrain_3_7_monster_work_2]:beh@general_monster +pt1 = 88860000,misc | pos: +path_end = loop + +[beh@esc_smart_terrain_3_7_monster_work_3]:beh@general_monster +pt1 = 88860000,misc | pos: +path_end = loop + +[beh@esc_smart_terrain_3_7_monster_work_4]:beh@general_monster +pt1 = 88860000,misc | pos: +path_end = loop + +[beh@esc_smart_terrain_3_7_bandit_work_1]:beh@general_guard +pt1 = 88860000,guard | pos: -151.39683532715, -2.9083452224731, 312.47732543945 look: -151.65705871582, -3.0879528522491, 314.79708862305 +path_end = loop + +[beh@esc_smart_terrain_3_7_bandit_work_2]:beh@general_guard +pt1 = 88860000,hide | pos: -158.66584777832, -1.4026627540588, 310.36944580078 look: -159.22314453125, -1.6401720046997, 311.83892822266 +path_end = loop + +[beh@esc_smart_terrain_3_7_bandit_work_3]:beh@general_guard +pt1 = 88860000,guard | pos: -152.68740844727, -2.3553175926208, 303.92379760742 look: -152.31729125977, -2.3126533031464, 302.54901123047 +path_end = loop + +[beh@esc_smart_terrain_3_7_renegade_work_1]:beh@general_guard +pt1 = 88860000,guard | pos: -151.39683532715, -2.9083452224731, 312.47732543945 look: -151.65705871582, -3.0879528522491, 314.79708862305 +path_end = loop + +[beh@esc_smart_terrain_3_7_renegade_work_2]:beh@general_guard +pt1 = 88860000,hide | pos: -158.66584777832, -1.4026627540588, 310.36944580078 look: -159.22314453125, -1.6401720046997, 311.83892822266 +path_end = loop + +[beh@esc_smart_terrain_3_7_renegade_work_3]:beh@general_guard +pt1 = 88860000,guard | pos: -152.68740844727, -2.3553175926208, 303.92379760742 look: -152.31729125977, -2.3126533031464, 302.54901123047 +path_end = loop \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_smart_terrain_5_2_squad_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_smart_terrain_5_2_squad_logic.ltx new file mode 100644 index 00000000..095e44a2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_smart_terrain_5_2_squad_logic.ltx @@ -0,0 +1,170 @@ +[logic@esc_smart_terrain_5_2_squad_1] +active = walker@karat_army_esc_smart_terrain_2_12_squad_1 +suitable = {=target_squad_name(karat_army_esc_smart_terrain_2_12) !surge_started} true +prior = 200 +on_death = death@soldier_1 + +[death@soldier_1] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[walker@karat_army_esc_smart_terrain_2_12_squad_1]:walker@generic +path_walk = guard_1_walk +path_look = guard_1_look + +[logic@esc_smart_terrain_5_2_squad_2] +active = walker@karat_army_esc_smart_terrain_2_12_squad_2 +suitable = {=target_squad_name(karat_army_esc_smart_terrain_2_12) !surge_started} true +prior = 200 +on_death = death@soldier_2 + +[death@soldier_2] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[walker@karat_army_esc_smart_terrain_2_12_squad_2]:walker@generic +path_walk = guard_2_walk +path_look = guard_2_look +meet = meet +danger = danger + +[logic@esc_smart_terrain_5_2_squad_3] +active = walker@karat_army_esc_smart_terrain_2_12_squad_3 +suitable = {=target_squad_name(karat_army_esc_smart_terrain_2_12) !surge_started} true +prior = 200 +on_death = death@soldier_3 + +[death@soldier_3] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[walker@karat_army_esc_smart_terrain_2_12_squad_3]:walker@generic +path_walk = walker_1_walk +path_look = walker_1_look +meet = meet +danger = danger + +[logic@esc_smart_terrain_5_2_squad_4] +active = beh@karat_army_esc_smart_terrain_2_12_squad_4 +suitable = {=target_squad_name(karat_army_esc_smart_terrain_2_12) !surge_started} true +prior = 45 +on_death = death@soldier_4 + +[death@soldier_4] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[logic@esc_smart_terrain_5_2_squad_5] +active = beh@karat_army_esc_smart_terrain_2_12_squad_5 +suitable = {=target_squad_name(karat_army_esc_smart_terrain_2_12) !surge_started} true +prior = 200 +on_death = death@soldier_5 + +[death@soldier_5] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[logic@esc_smart_terrain_5_2_squad_6] +active = beh@karat_army_esc_smart_terrain_2_12_squad_6 +suitable = {=target_squad_name(karat_army_esc_smart_terrain_2_12) !surge_started} true +prior = 200 +on_death = death@soldier_6 + +[death@soldier_6] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[logic@esc_smart_terrain_5_2_squad_7] +active = beh@karat_army_esc_smart_terrain_2_12_squad_7 +suitable = {=target_squad_name(karat_army_esc_smart_terrain_2_12) !surge_started} +prior = 45 +on_death = death@soldier_7 + +[death@soldier_7] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[logic@esc_smart_terrain_5_2_squad_8] +active = beh@karat_army_esc_smart_terrain_2_12_squad_8 +suitable = {=target_squad_name(karat_army_esc_smart_terrain_2_12) !surge_started} +prior = 45 +on_death = death@soldier_8 + +[death@soldier_8] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[logic@esc_smart_terrain_5_2_squad_9] +active = beh@karat_army_esc_smart_terrain_2_12_squad_9 +suitable = {=target_squad_name(karat_army_esc_smart_terrain_2_12) !surge_started} +prior = 45 +on_death = death@soldier_9 + +[death@soldier_9] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[walker@generic] +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +turn_on_campfire = true +combat_ignore_cond = {=check_enemy_name(sim_default) =fighting_dist_ge(50)} true, false +combat_ignore_keep_when_attacked = false +meet = meet +danger = danger + +[beh@general_guard] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +turn_on_campfire = true +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = {!actor_true_enemy} true, false +meet = meet +danger = danger + +[meet] +close_anim = nil +close_victim = nil +far_anim = nil +far_victim = nil +close_distance = 0 +far_distance = 0 +close_snd_distance = 3 +abuse = false +use = {=actor_enemy} false, true +allow_break = false +meet_on_talking = true +trade_enable = false + +[danger] +danger_expiration_time = 30000 +danger_inertion_time_grenade = 90000 +danger_inertion_time_hit = 90000 +danger_inertion_time_sound = 90000 +danger_inertion_time_ricochet = 90000 + +[beh@karat_army_esc_smart_terrain_2_12_squad_4]:beh@general_guard +pt1 = 88860000, fold_arms | pos: 22.135007858276, 16.518793106079, 679.134765625 look: 21.459903717041, 16.518703460693, 679.12866210938 +path_end = loop + +[beh@karat_army_esc_smart_terrain_2_12_squad_5]:beh@general_guard +pt1 = 88860000, guard | pos: 8.0143709182739, 16.572008132935, 686.26989746094 look: 8.4900608062744, 16.48752784729, 685.63330078125 +path_end = loop + +[beh@karat_army_esc_smart_terrain_2_12_squad_6]:beh@general_guard +pt1 = 88860000, guard | pos: 12.111597061157, 15.46762752533, 657.26501464844 look: 12.632202148438, 15.332869529724, 656.07891845703 +path_end = loop + +[beh@karat_army_esc_smart_terrain_2_12_squad_7]:beh@general_guard +pt1 = 88860000, guard | pos: 68.67569732666, 8.3970699310303, 609.76428222656 look: 68.536018371582, 8.2060842514038, 608.64208984375 +path_end = loop + +[beh@karat_army_esc_smart_terrain_2_12_squad_8]:beh@general_guard +pt1 = 88860000, guard | pos: 74.100608825684, 8.9517211914062, 611.13305664062 look: 74.403991699219, 8.7994794845581, 610.07751464844 +path_end = loop + +[beh@karat_army_esc_smart_terrain_2_12_squad_9]:beh@general_guard +pt1 = 88860000, sit_ass | pos: 68.257446289062, 9.0887355804443, 614.18585205078 look: 68.67569732666, 8.3970699310303, 609.76428222656 +path_end = loop diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_smart_terrain_6_8_squad_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_smart_terrain_6_8_squad_logic.ltx new file mode 100644 index 00000000..4e5773d1 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/esc_smart_terrain_6_8_squad_logic.ltx @@ -0,0 +1,171 @@ +[logic@esc_smart_terrain_6_8_squad_1] +active = walker@most_army_esc_smart_terrain_6_8_squad_1 +suitable = {=target_squad_name(most_army_esc_smart_terrain_6_8)} true +prior = 200 +on_death = death@soldier_1 + +[death@soldier_1] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[walker@most_army_esc_smart_terrain_6_8_squad_1]:walker@generic +path_walk = guard_1_walk +path_look = guard_1_look +on_info = {=surge_started} beh@esc_smart_terrain_6_8_surge_work_1 +meet = meet +danger = danger + +[logic@esc_smart_terrain_6_8_squad_2] +active = walker@most_army_esc_smart_terrain_6_8_squad_2 +suitable = {=target_squad_name(most_army_esc_smart_terrain_6_8)} true +prior = 200 +on_death = death@soldier_2 + +[death@soldier_2] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[walker@most_army_esc_smart_terrain_6_8_squad_2]:walker@generic +path_walk = guard_3_walk +path_look = guard_3_look +on_info = {=surge_started} beh@esc_smart_terrain_6_8_surge_work_2 +meet = meet +danger = danger + +[logic@esc_smart_terrain_6_8_squad_3] +active = walker@most_army_esc_smart_terrain_6_8_squad_3 +suitable = {=target_squad_name(most_army_esc_smart_terrain_6_8)} true +prior = 200 +on_death = death@soldier_3 + +[death@soldier_3] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[walker@most_army_esc_smart_terrain_6_8_squad_3]:walker@generic +path_walk = guard_4_walk +path_look = guard_4_look +on_info = {=surge_started} beh@esc_smart_terrain_6_8_surge_work_3 +meet = meet +danger = danger + +[logic@esc_smart_terrain_6_8_squad_4] +active = walker@most_army_esc_smart_terrain_6_8_squad_4 +suitable = {=target_squad_name(most_army_esc_smart_terrain_6_8)} true +prior = 200 +on_death = death@soldier_4 + +[death@soldier_4] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[walker@most_army_esc_smart_terrain_6_8_squad_4]:walker@generic +path_walk = guard_5_walk +path_look = guard_5_look +on_info = {=surge_started} beh@esc_smart_terrain_6_8_surge_work_4 +meet = meet +danger = danger + +[logic@esc_smart_terrain_6_8_squad_5] +active = walker@most_army_esc_smart_terrain_6_8_squad_5 +suitable = {=target_squad_name(most_army_esc_smart_terrain_6_8)} true +prior = 200 +on_death = death@soldier_5 + +[death@soldier_5] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[walker@most_army_esc_smart_terrain_6_8_squad_5]:walker@generic +path_walk = sniper_1_walk +path_look = sniper_1_look +sniper = false +radius = 50 +on_info = {=surge_started} beh@esc_smart_terrain_6_8_surge_work_5 +meet = meet +danger = danger + +[logic@esc_smart_terrain_6_8_squad_6] +active = campfire_point@most_army_esc_smart_terrain_6_8_squad_6 +suitable = {=target_squad_name(most_army_esc_smart_terrain_6_8)} true +prior = 200 +on_death = death@soldier_6 + +[death@soldier_6] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +;[walker@most_army_esc_smart_terrain_6_8_squad_6]:walker@generic + +[campfire_point@most_army_esc_smart_terrain_6_8_squad_6]:walker@generic +smart = esc_smart_terrain_6_8 +use_camp = true +anim = idle, guard +on_info = {=surge_started} beh@esc_smart_terrain_6_8_surge_work_6 +meet = meet +danger = danger + +[walker@generic] +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +turn_on_campfire = true +combat_ignore_cond = {=check_enemy_name(sim_default) =fighting_dist_ge(50)} true, false +combat_ignore_keep_when_attacked = false +meet = meet +danger = danger + +[danger] +danger_expiration_time = 30000 +danger_inertion_time_grenade = 90000 +danger_inertion_time_hit = 90000 +danger_inertion_time_sound = 90000 +danger_inertion_time_ricochet = 90000 + +[meet] +close_anim = nil +close_victim = nil +far_anim = nil +far_victim = nil +close_distance = 0 +far_distance = 0 +close_snd_distance = 3 +abuse = false +use = {=actor_enemy} false, true +allow_break = false +meet_on_talking = true +trade_enable = false + +[beh@general_surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +combat_ignore_cond = {=check_enemy_name(sim_default) =fighting_dist_ge(50)} true, false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +meet = meet +danger = danger + +[beh@esc_smart_terrain_6_8_surge_work_1]:beh@general_surge +pt1 = 15000, binocular | pos: -0.82295793294907, 2.4562945365906, 64.287994384766 look: 0.40065768361092, 2.4561319351196, 64.198188781738 +on_info = {=surge_complete} walker@most_army_esc_smart_terrain_6_8_squad_1 + +[beh@esc_smart_terrain_6_8_surge_work_2]:beh@general_surge +pt1 = 15000, idle | pos: -4.0547852516174, 2.4539427757263, 60.8310546875 look: -2.8573482036591, 2.4570174217224, 61.621185302734 +on_info = {=surge_complete} walker@most_army_esc_smart_terrain_6_8_squad_2 + +[beh@esc_smart_terrain_6_8_surge_work_3]:beh@general_surge +pt1 = 15000, idle | pos: -12.217488288879, 2.4681160449982, 59.66955947876 look: -11.521687507629, 2.4658484458923, 60.82836151123 +on_info = {=surge_complete} walker@most_army_esc_smart_terrain_6_8_squad_3 + +[beh@esc_smart_terrain_6_8_surge_work_4]:beh@general_surge +pt1 = 15000, caution | pos: -13.456106185913, 2.4518508911133, 67.510528564453 look: -11.678283691406, 2.4584500789642, 68.847145080566 +on_info = {=surge_complete} walker@most_army_esc_smart_terrain_6_8_squad_4 + +[beh@esc_smart_terrain_6_8_surge_work_5]:beh@general_surge +pt1 = 15000, smoking_stand | pos: -25.056449890137, 2.4664018154144, 76.92618560791 look: -23.717769622803, 2.4734718799591, 77.984725952148 +on_info = {=surge_complete} walker@most_army_esc_smart_terrain_6_8_squad_5 + +[beh@esc_smart_terrain_6_8_surge_work_6]:beh@general_surge +pt1 = 15000, barricade | pos: -21.361507415771, 2.4643862247467, 89.158432006836 look: -19.97703742981, 2.4589288234711, 91.102867126465 +on_info = {=surge_complete} campfire_point@most_army_esc_smart_terrain_6_8_squad_6 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_crow_spawner_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_crow_spawner_redone.ltx new file mode 100644 index 00000000..37a550a9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_crow_spawner_redone.ltx @@ -0,0 +1,19 @@ +![logic] +!active = sr_crow_spawner +active = sr_idle@check_story + +[sr_idle@check_story] +on_info = {-story_mode_disabled} sr_idle@check_actor, {+story_mode_disabled -yan_x16_complete_end} sr_idle@check_actor %+yan_kill_brain_done% + +[sr_idle@check_actor] +on_info = {=actor_community(actor_monolith) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, {=actor_community(actor_greh) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, sr_idle@check_helmet + +[sr_idle@check_helmet] +on_info = {=actor_has_item(good_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, {=actor_has_item(bad_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, sr_idle@check_spawner + +[sr_idle@check_spawner] +on_info = sr_crow_spawner + +![sr_crow_spawner] +max_crows_on_level = 5 +spawn_path = esc_crow_spawn_1, esc_crow_spawn_2, esc_crow_spawn_3, esc_crow_spawn_4, esc_crow_spawn_5 diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_smart_terrain_2_12_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_smart_terrain_2_12_smart_logic_redone.ltx new file mode 100644 index 00000000..31b4da9f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_smart_terrain_2_12_smart_logic_redone.ltx @@ -0,0 +1,26 @@ +![logic@esc_smart_terrain_2_12_camp_work_19] +active = beh@esc_smart_terrain_2_12_camp_work_19 +suitable = {!surge_started} true +prior = 45 + +[beh@general_work] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +turn_on_campfire = true +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = {!actor_true_enemy} true, false + +[beh@esc_smart_terrain_2_12_camp_work_19]:beh@general_work +pt1 = 88860000, sit_ass | pos: -233.78042602539, -20.038074493408, -156.4732208252 look: -235.31875610352, -19.739292144775, -156.46011352539 +path_end = loop + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_smart_terrain_3_16_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_smart_terrain_3_16_smart_logic_redone.ltx new file mode 100644 index 00000000..a3e24615 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_smart_terrain_3_16_smart_logic_redone.ltx @@ -0,0 +1,135 @@ +![logic@esc_smart_terrain_3_16_camp_work_1] +on_death = death@soldier_1 + +[death@soldier_1] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +![logic@esc_smart_terrain_3_16_camp_work_2] +on_death = death@soldier_2 + +[death@soldier_2] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +![logic@esc_smart_terrain_3_16_camp_work_3] +on_death = death@soldier_3 + +[death@soldier_3] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +![logic@esc_smart_terrain_3_16_camp_work_4] +on_death = death@soldier_4 + +[death@soldier_4] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +![logic@esc_smart_terrain_3_16_camp_work_5] +on_death = death@soldier_5 + +[death@soldier_5] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[logic@esc_smart_terrain_3_16_camp_work_6] +active = beh@esc_smart_terrain_3_16_camp_work_6 +suitable = {!surge_started} true +prior = 45 +on_death = death@soldier_6 + +[death@soldier_6] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[logic@esc_smart_terrain_3_16_camp_work_7] +active = beh@esc_smart_terrain_3_16_camp_work_7 +suitable = {!surge_started} true +prior = 45 +on_death = death@soldier_7 + +[death@soldier_7] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[logic@esc_smart_terrain_3_16_camp_work_8] +active = beh@esc_smart_terrain_3_16_camp_work_8 +suitable = {!surge_started} true +prior = 45 +on_death = death@soldier_8 + +[death@soldier_8] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[logic@esc_smart_terrain_3_16_camp_work_9] +active = beh@esc_smart_terrain_3_16_camp_work_9 +suitable = {!surge_started} true +prior = 45 +on_death = death@soldier_9 + +[death@soldier_9] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[logic@esc_smart_terrain_3_16_camp_work_10] +active = beh@esc_smart_terrain_3_16_camp_work_10 +suitable = {!surge_started} true +prior = 45 +on_death = death@soldier_10 + +[death@soldier_10] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[beh@general_work] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +turn_on_campfire = true +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = {!actor_true_enemy} true, false +meet = meet +danger = danger + +[meet] +close_anim = nil +close_victim = nil +far_anim = nil +far_victim = nil +close_distance = 0 +far_distance = 0 +close_snd_distance = 3 +abuse = false +use = {=actor_enemy} false, true +allow_break = false +meet_on_talking = true +trade_enable = false + +[danger] +danger_expiration_time = 30000 +danger_inertion_time_grenade = 90000 +danger_inertion_time_hit = 90000 +danger_inertion_time_sound = 90000 +danger_inertion_time_ricochet = 90000 + +[beh@esc_smart_terrain_3_16_camp_work_6]:beh@general_work +pt1 = 88860000, sit_ass | pos: -122.15475463867, -30.051349639893, -383.92443847656 look: -120.48983764648, -29.747680664062, -384.61486816406 +path_end = loop + +[beh@esc_smart_terrain_3_16_camp_work_7]:beh@general_work +pt1 = 88860000, sit_ass | pos: -121.94188690186, -30.051347732544, -385.97399902344 look: -120.33186340332, -29.629438400269, -384.27127075195 +path_end = loop + +[beh@esc_smart_terrain_3_16_camp_work_8]:beh@general_work +pt1 = 88860000, sit_ass | pos: -110.72119903564, -30.200836181641, -357.86309814453 look: -112.22673034668, -30.023263931274, -359.36572265625 +path_end = loop + +[beh@esc_smart_terrain_3_16_camp_work_9]:beh@general_work +pt1 = 88860000, sit_ass | pos: -111.23129272461, -30.315315246582, -361.46115112305 look: -112.42178344727, -30.041728973389, -359.55014038086 +path_end = loop + +[beh@esc_smart_terrain_3_16_camp_work_10]:beh@general_work +pt1 = 88860000, idle | pos: -114.02665710449, -30.389665603638, -360.05572509766 look: -112.38818359375, -30.020149230957, -359.41442871094 +path_end = loop + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_smart_terrain_5_2_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_smart_terrain_5_2_smart_logic_redone.ltx new file mode 100644 index 00000000..19e01628 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_smart_terrain_5_2_smart_logic_redone.ltx @@ -0,0 +1,108 @@ +![logic@esc_smart_terrain_5_2_camp_work_1] +on_death = death@soldier_1 + +[death@soldier_1] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +![logic@esc_smart_terrain_5_2_camp_work_2] +on_death = death@soldier_2 + +[death@soldier_2] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +![logic@esc_smart_terrain_5_2_camp_work_3] +on_death = death@soldier_3 + +[death@soldier_3] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +![logic@esc_smart_terrain_5_2_camp_work_4] +on_death = death@soldier_4 + +[death@soldier_4] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +![logic@esc_smart_terrain_5_2_camp_work_5] +on_death = death@soldier_5 + +[death@soldier_5] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[logic@esc_smart_terrain_5_2_camp_work_6] +active = beh@esc_smart_terrain_5_2_camp_work_6 +suitable = {!surge_started} true +prior = 45 +on_death = death@soldier_6 + +[death@soldier_6] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[logic@esc_smart_terrain_5_2_camp_work_7] +active = beh@esc_smart_terrain_5_2_camp_work_7 +suitable = {!surge_started} true +prior = 45 +on_death = death@soldier_7 + +[death@soldier_7] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[logic@esc_smart_terrain_5_2_camp_work_8] +active = beh@esc_smart_terrain_5_2_camp_work_8 +suitable = {!surge_started} true +prior = 45 +on_death = death@soldier_8 + +[death@soldier_8] +on_info = {=killed_by_actor =actor_community(actor_stalker)} %=dec_faction_goodwill_to_actor(stalker:25) =send_tip(st_honor_sidorovich_deal:stalker)% + +[beh@general_work] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +turn_on_campfire = true +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = {!actor_true_enemy} true, false +meet = meet +danger = danger + +[meet] +close_anim = nil +close_victim = nil +far_anim = nil +far_victim = nil +close_distance = 0 +far_distance = 0 +close_snd_distance = 3 +abuse = false +use = {=actor_enemy} false, true +allow_break = false +meet_on_talking = true +trade_enable = false + +[danger] +danger_expiration_time = 30000 +danger_inertion_time_grenade = 90000 +danger_inertion_time_hit = 90000 +danger_inertion_time_sound = 90000 +danger_inertion_time_ricochet = 90000 + +[beh@esc_smart_terrain_5_2_camp_work_6]:beh@general_work +pt1 = 88860000, sit_ass | pos: 31.437065124512, 16.653995513916, 678.78564453125 look: 30.823877334595, 16.531633377075, 677.45849609375 +path_end = loop + +[beh@esc_smart_terrain_5_2_camp_work_7]:beh@general_work +pt1 = 88860000, sit_ass | pos: 32.804035186768, 16.517543792725, 677.14935302734 look: 30.935361862183, 16.531770706177, 677.63562011719 +path_end = loop + +[beh@esc_smart_terrain_5_2_camp_work_8]:beh@general_work +pt1 = 88860000, sit_ass | pos: 31.633562088013, 16.601379394531, 674.22808837891 look: 31.474407196045, 16.516576766968, 675.52124023438 +path_end = loop \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_smart_terrain_7_11_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_smart_terrain_7_11_smart_logic_redone.ltx new file mode 100644 index 00000000..9e54822e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/mod_esc_smart_terrain_7_11_smart_logic_redone.ltx @@ -0,0 +1,43 @@ +[logic@esc_smart_terrain_7_11_camp_work_6] +active = beh@esc_smart_terrain_7_11_camp_work_6 +suitable = {!surge_started} true +prior = 45 + +[logic@esc_smart_terrain_7_11_camp_work_7] +active = beh@esc_smart_terrain_7_11_camp_work_7 +suitable = {!surge_started} true +prior = 45 + +[logic@esc_smart_terrain_7_11_camp_work_8] +active = beh@esc_smart_terrain_7_11_camp_work_8 +suitable = {!surge_started} true +prior = 45 + +[beh@general_work] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +turn_on_campfire = true +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = {!actor_true_enemy} true, false + +[beh@esc_smart_terrain_7_11_camp_work_6]:beh@general_work +pt1 = 88860000, sit_ass | pos: 130.14399719238, -7.6034712791443, 9.9611558914185 look: 128.20147705078, -7.5916266441345, 8.6504049301147 +path_end = loop + +[beh@esc_smart_terrain_7_11_camp_work_7]:beh@general_work +pt1 = 88860000, sit_ass | pos: 127.1028213501, -7.6059575080872, 10.397469520569 look: 128.30569458008, -7.5973587036133, 8.5573883056641 +path_end = loop + +[beh@esc_smart_terrain_7_11_camp_work_8]:beh@general_work +pt1 = 88860000, sit_ass | pos: 106.3256072998, -2.8580090999603, -0.36990475654602 look: 108.34425354004, -2.8497829437256, -0.24990943074226 +path_end = loop diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_1_11.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_1_11.ltx new file mode 100644 index 00000000..76f7416a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_1_11.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 1 +max_population = 1 +;respawn_params = respawn@esc_smart_terrain_1_11 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@esc_smart_terrain_1_11] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_2_12.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_2_12.ltx new file mode 100644 index 00000000..81e31e78 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_2_12.ltx @@ -0,0 +1,71 @@ +[smart_terrain] +squad_id = 2 +max_population = 2 +respawn_params = respawn@esc_smart_terrain_2_12 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_2_12] ;-- Type: faction {stalker} = rookie villige +spawn_stalker@novice +spawn_stalker_special + + +[spawn_stalker@novice] +spawn_squads = stalker_sim_squad_novice, stalker_sim_squad_novice, stalker_sim_squad_advanced +spawn_num = 1 + +[spawn_stalker_special] +spawn_squads = escape_novice_visiters_village +spawn_num = {!squad_name_exist(escape_novice_visiters_village)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +devushka = escape\devushka.ltx + +esc_2_12_stalker_fanat = escape\esc_2_12_stalker_fanat.ltx +esc_2_12_stalker_wolf = escape\esc_2_12_stalker_wolf.ltx +;esc_2_12_stalker_nimble = escape\esc_2_12_stalker_nimble.ltx + +guard_1 = escape\esc_smart_terrain_2_12_smart_logic.ltx +;guard_2 = escape\esc_smart_terrain_2_12_smart_logic.ltx +guard_3 = escape\esc_smart_terrain_2_12_smart_logic.ltx +guard_4 = escape\esc_smart_terrain_2_12_smart_logic.ltx + +walker_1 = escape\esc_smart_terrain_2_12_smart_logic.ltx +walker_2 = escape\esc_smart_terrain_2_12_smart_logic.ltx +walker_3 = escape\esc_smart_terrain_2_12_smart_logic.ltx +walker_4 = escape\esc_smart_terrain_2_12_smart_logic.ltx +walker_5 = escape\esc_smart_terrain_2_12_smart_logic.ltx + +esc_smart_terrain_2_12_camp_work_1 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_camp_work_2 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_camp_work_3 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_camp_work_4 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_camp_work_5 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_camp_work_6 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_camp_work_7 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_camp_work_8 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_camp_work_9 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_camp_work_19 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_surge_work_1 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_surge_work_2 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_surge_work_3 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_surge_work_4 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_surge_work_5 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_surge_work_6 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_surge_work_7 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_surge_work_8 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_surge_work_9 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_surge_work_10 = escape\esc_smart_terrain_2_12_smart_logic.ltx +esc_smart_terrain_2_12_surge_work_11 = escape\esc_smart_terrain_2_12_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_2_14.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_2_14.ltx new file mode 100644 index 00000000..d6d88693 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_2_14.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 3 +max_population = 1 +respawn_params = respawn@esc_smart_terrain_2_14 +respawn_only_smart = true +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_2_14] ;-- Type: +spawn_rat_special + + +[spawn_rat_special] ;-- Weak mutants - Rates of groups: ( 1 rat ) +spawn_squads = esc_smart_terrain_2_14_rat_mlr_squad +spawn_num = {!squad_name_exist(esc_smart_terrain_2_14_rat_mlr_squad)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_3_16.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_3_16.ltx new file mode 100644 index 00000000..e35b0a62 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_3_16.ltx @@ -0,0 +1,53 @@ +[smart_terrain] +squad_id = 4 +max_population = 2 +respawn_params = respawn@esc_smart_terrain_3_16 +respawn_only_smart = true +respawn_idle = 172800 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_3_16] +spawn_army_special +spawn_army_special_2 +spawn_army_special_3 + + +[spawn_army_special] +spawn_squads = esc_smart_terrain_3_16_military_mlr_squad +spawn_num = {!squad_name_exist(esc_smart_terrain_3_16_military_mlr_squad)} 1, 0 + +[spawn_army_special_2] +spawn_squads = esc_smart_terrain_3_16_military_mlr_patrol +spawn_num = {!squad_name_exist(esc_smart_terrain_3_16_military_mlr_patrol)} 1, 0 + +[spawn_army_special_3] +spawn_squads = kpp_army_mlr_esc_smart_terrain_3_16 +spawn_num = {!squad_name_exist(kpp_army_mlr_esc_smart_terrain_3_16)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +army_south_mechan_mlr = escape\esc_3_16_military_mechan_logic.ltx +esc_3_16_military_trader = escape\esc_3_16_military_trader_logic.ltx + +esc_smart_terrain_3_16_minigunner_excl = escape\esc_smart_terrain_3_16_smart_logic.ltx + +esc_smart_terrain_3_16_camp_work_1 = escape\esc_smart_terrain_3_16_smart_logic.ltx +esc_smart_terrain_3_16_camp_work_2 = escape\esc_smart_terrain_3_16_smart_logic.ltx +esc_smart_terrain_3_16_camp_work_3 = escape\esc_smart_terrain_3_16_smart_logic.ltx +esc_smart_terrain_3_16_camp_work_4 = escape\esc_smart_terrain_3_16_smart_logic.ltx +esc_smart_terrain_3_16_camp_work_5 = escape\esc_smart_terrain_3_16_smart_logic.ltx +esc_smart_terrain_3_16_camp_work_6 = escape\esc_smart_terrain_3_16_smart_logic.ltx +esc_smart_terrain_3_16_camp_work_7 = escape\esc_smart_terrain_3_16_smart_logic.ltx +esc_smart_terrain_3_16_camp_work_8 = escape\esc_smart_terrain_3_16_smart_logic.ltx +esc_smart_terrain_3_16_camp_work_9 = escape\esc_smart_terrain_3_16_smart_logic.ltx +esc_smart_terrain_3_16_camp_work_10 = escape\esc_smart_terrain_3_16_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_3_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_3_7.ltx new file mode 100644 index 00000000..6c3618eb --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_3_7.ltx @@ -0,0 +1,67 @@ +[smart_terrain] +squad_id = 5 +max_population = 1 +respawn_params = respawn@esc_smart_terrain_3_7 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_3_7] ;-- Type: +spawn_all_weak +;spawn_mutants_special +;spawn_mutants_special_2 +;spawn_mutants_special_3 +;spawn_bandit_special +;spawn_renegade_special + + +[spawn_all_weak] ;-- Normal mutants - Rates of groups: ( 2 dogs + 2 fleshes/boars ) +spawn_squads = simulation_dog, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {~20} 1, 0 + +;[spawn_mutants_special] ;-- Normal mutants - Rates of groups: ( 1 fleshes/boars ) +;spawn_squads = esc_monster_smart_terrain_3_7_squad +;spawn_num = {!squad_name_exist(esc_monster_smart_terrain_3_7_squad) !squad_name_exist(esc_monster_smart_terrain_3_7_squad2) !squad_name_exist(esc_monster_smart_terrain_3_7_squad3) ~10} 1, 0 + +;[spawn_mutants_special_2] ;-- Normal mutants - Rates of groups: ( 1 dogs ) +;spawn_squads = esc_monster_smart_terrain_3_7_squad2 +;spawn_num = {!squad_name_exist(esc_monster_smart_terrain_3_7_squad) !squad_name_exist(esc_monster_smart_terrain_3_7_squad2) !squad_name_exist(esc_monster_smart_terrain_3_7_squad3) ~10} 1, 0 + +;[spawn_mutants_special_3] ;-- Normal mutants - Rates of groups: ( 1 cats ) +;spawn_squads = esc_monster_smart_terrain_3_7_squad3 +;spawn_num = {!squad_name_exist(esc_monster_smart_terrain_3_7_squad) !squad_name_exist(esc_monster_smart_terrain_3_7_squad2) !squad_name_exist(esc_monster_smart_terrain_3_7_squad3) ~10} 1, 0 + +;[spawn_bandit_special] +;spawn_squads = esc_bandit_smart_terrain_3_7_squad +;spawn_num = {!squad_name_exist(esc_bandit_smart_terrain_3_7_squad) !squad_name_exist(esc_renegade_smart_terrain_3_7_squad) ~10} 1, 0 + +;[spawn_renegade_special] +;spawn_squads = esc_renegade_smart_terrain_3_7_squad +;spawn_num = {!squad_name_exist(esc_bandit_smart_terrain_3_7_squad) !squad_name_exist(esc_renegade_smart_terrain_3_7_squad) ~10} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +esc_smart_terrain_3_7_bandit_work_1 = escape\esc_smart_terrain_3_7_squad_logic.ltx +esc_smart_terrain_3_7_bandit_work_2 = escape\esc_smart_terrain_3_7_squad_logic.ltx +esc_smart_terrain_3_7_bandit_work_3 = escape\esc_smart_terrain_3_7_squad_logic.ltx + +;esc_smart_terrain_3_7_renegade_work_1 = escape\esc_smart_terrain_3_7_squad_logic.ltx +;esc_smart_terrain_3_7_renegade_work_2 = escape\esc_smart_terrain_3_7_squad_logic.ltx +;esc_smart_terrain_3_7_renegade_work_3 = escape\esc_smart_terrain_3_7_squad_logic.ltx + +;esc_smart_terrain_3_7_monster_work_1 = escape\esc_smart_terrain_3_7_squad_logic.ltx +;esc_smart_terrain_3_7_monster_work_2 = escape\esc_smart_terrain_3_7_squad_logic.ltx +;esc_smart_terrain_3_7_monster_work_3 = escape\esc_smart_terrain_3_7_squad_logic.ltx +;esc_smart_terrain_3_7_monster_work_4 = escape\esc_smart_terrain_3_7_squad_logic.ltx + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_4_11.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_4_11.ltx new file mode 100644 index 00000000..4dd289f6 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_4_11.ltx @@ -0,0 +1,25 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 7 +;max_population = 1 +;respawn_params = respawn@esc_smart_terrain_4_11 +;respawn_only_smart = true +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@esc_smart_terrain_4_11] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +faction_base_defense_enemy1 = escape\esc_smart_terrain_4_11_smart_logic.ltx +faction_base_defense_enemy2 = escape\esc_smart_terrain_4_11_smart_logic.ltx +faction_base_defense_enemy3 = escape\esc_smart_terrain_4_11_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_4_13.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_4_13.ltx new file mode 100644 index 00000000..022d3521 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_4_13.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 8 +max_population = 1 +respawn_params = respawn@esc_smart_terrain_4_13 +respawn_only_smart = true +respawn_idle = 345600 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_4_13] ;-- Type: +spawn_heli_strong +spawn_heli_weak + + +[spawn_heli_strong] +spawn_helicopter = simulation_helicopter_strong +spawn_num = {!down_to_earth_functor !heli_exist_on_level} 1, 0 + +[spawn_heli_weak] +spawn_helicopter = simulation_helicopter_weak +spawn_num = {=down_to_earth_functor !heli_exist_on_level} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_4_9.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_4_9.ltx new file mode 100644 index 00000000..da1e396e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_4_9.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 10 +max_population = 1 +respawn_params = respawn@esc_smart_terrain_4_9 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_4_9] ;-- Type: +spawn_tushkano + + +[spawn_tushkano] ;-- Weak mutants - Rates of groups: ( 1 tushkano ) +spawn_squads = simulation_tushkano +spawn_num = {~20} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_12.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_12.ltx new file mode 100644 index 00000000..12115b84 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_12.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 11 +max_population = 1 +respawn_params = respawn@esc_smart_terrain_5_12 +respawn_only_smart = true +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_5_12] ;-- +spawn_all_weak + + +[spawn_all_weak] ;-- Weak mutants - Rates of groups:(1 tushkano + 2 dogs + 2 fleshes/boars) +spawn_squads = simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_mix_boar_flesh, simulation_flesh +spawn_num = {~10} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_2.ltx new file mode 100644 index 00000000..f346ac90 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_2.ltx @@ -0,0 +1,52 @@ +[smart_terrain] +squad_id = 12 +max_population = 1 +;min_population = 1 +respawn_params = respawn@esc_smart_terrain_5_2 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_5_2] ;-- Type: faction {army} = outpost\checkpoint +spawn_army_novice +spawn_army_special + + +[spawn_army_novice] +spawn_squads = army_sim_squad_novice, army_sim_squad_novice, army_sim_squad_novice +spawn_num = 1 + +[spawn_army_special] +spawn_squads = karat_army_esc_smart_terrain_2_12 +spawn_num = {!squad_name_exist(karat_army_esc_smart_terrain_2_12)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive]] +esc_smart_terrain_5_2_squad_1 = escape\esc_smart_terrain_5_2_squad_logic.ltx +esc_smart_terrain_5_2_squad_2 = escape\esc_smart_terrain_5_2_squad_logic.ltx +esc_smart_terrain_5_2_squad_3 = escape\esc_smart_terrain_5_2_squad_logic.ltx +esc_smart_terrain_5_2_squad_4 = escape\esc_smart_terrain_5_2_squad_logic.ltx +esc_smart_terrain_5_2_squad_5 = escape\esc_smart_terrain_5_2_squad_logic.ltx +esc_smart_terrain_5_2_squad_6 = escape\esc_smart_terrain_5_2_squad_logic.ltx +esc_smart_terrain_5_2_squad_7 = escape\esc_smart_terrain_5_2_squad_logic.ltx +esc_smart_terrain_5_2_squad_8 = escape\esc_smart_terrain_5_2_squad_logic.ltx +esc_smart_terrain_5_2_squad_9 = escape\esc_smart_terrain_5_2_squad_logic.ltx + +esc_smart_terrain_5_2_camp_work_1 = escape\esc_smart_terrain_5_2_smart_logic.ltx +esc_smart_terrain_5_2_camp_work_2 = escape\esc_smart_terrain_5_2_smart_logic.ltx +esc_smart_terrain_5_2_camp_work_3 = escape\esc_smart_terrain_5_2_smart_logic.ltx +esc_smart_terrain_5_2_camp_work_4 = escape\esc_smart_terrain_5_2_smart_logic.ltx +esc_smart_terrain_5_2_camp_work_5 = escape\esc_smart_terrain_5_2_smart_logic.ltx +esc_smart_terrain_5_2_camp_work_6 = escape\esc_smart_terrain_5_2_smart_logic.ltx +esc_smart_terrain_5_2_camp_work_7 = escape\esc_smart_terrain_5_2_smart_logic.ltx +esc_smart_terrain_5_2_camp_work_8 = escape\esc_smart_terrain_5_2_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_4.ltx new file mode 100644 index 00000000..5e50f7f9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_4.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 13 +max_population = 1 +respawn_params = respawn@esc_smart_terrain_5_4 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_5_4] ;-- Type: c_1_1 + c_1_2 +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Normal mutants - Rates of groups: ( 2 dogs + 1 flesh + 1 boar ) +spawn_squads = simulation_dog, simulation_mix_dogs, simulation_flesh, simulation_boar +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 2 fleshes/boars ) +spawn_squads = simulation_dog_5_7, simulation_mix_dogs, simulation_boar_3_5, simulation_mix_boar_flesh +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_6.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_6.ltx new file mode 100644 index 00000000..139986a5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_6.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 14 +max_population = 1 +;respawn_params = respawn@esc_smart_terrain_5_6 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@esc_smart_terrain_5_6] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_7.ltx new file mode 100644 index 00000000..ed6aa100 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_7.ltx @@ -0,0 +1,62 @@ +[smart_terrain] +squad_id = 15 +max_population = 2 +respawn_params = respawn@esc_smart_terrain_5_7 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_5_7] ;-- Type: faction {stalker\csky} = outpost\safezone +spawn_stalker@novice +spawn_stalker@advanced +spawn_csky@novice +spawn_csky@advanced +spawn_stalker_special + + +[spawn_stalker@novice] +spawn_squads = stalker_sim_squad_novice, stalker_sim_squad_novice, stalker_sim_squad_advanced +spawn_num = 2 + +[spawn_stalker@advanced] +spawn_squads = stalker_sim_squad_novice, stalker_sim_squad_novice, stalker_sim_squad_advanced +spawn_num = 2 + +[spawn_csky@novice] +spawn_squads = csky_sim_squad_novice, csky_sim_squad_novice, csky_sim_squad_advanced +spawn_num = {-csky_stalker_leader_dead ~50} 1, 0 + +[spawn_csky@advanced] +spawn_squads = csky_sim_squad_advanced, csky_sim_squad_advanced, csky_sim_squad_novice +spawn_num = {+csky_stalker_leader_dead} 4, 0 + +[spawn_stalker_special] +spawn_squads = escape_main_base_mlr_guards +spawn_num = {!squad_name_exist(escape_main_base_mlr_guards)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +esc_main_base_trader_mlr = escape\esc_smart_terrain_5_7_smart_logic.ltx +esc_smart_terrain_5_7_loner_mechanic = escape\esc_smart_terrain_5_7_smart_logic.ltx + +esc_smart_terrain_5_7_beh_tech_job_1 = escape\esc_smart_terrain_5_7_smart_logic.ltx +esc_smart_terrain_5_7_beh_trade_job_1 = escape\esc_smart_terrain_5_7_smart_logic.ltx + +esc_smart_terrain_5_7_camp_work_1 = escape\esc_smart_terrain_5_7_smart_logic.ltx +esc_smart_terrain_5_7_camp_work_2 = escape\esc_smart_terrain_5_7_smart_logic.ltx +esc_smart_terrain_5_7_camp_work_3 = escape\esc_smart_terrain_5_7_smart_logic.ltx +esc_smart_terrain_5_7_camp_work_4 = escape\esc_smart_terrain_5_7_smart_logic.ltx +esc_smart_terrain_5_7_camp_work_5 = escape\esc_smart_terrain_5_7_smart_logic.ltx +esc_smart_terrain_5_7_camp_work_6 = escape\esc_smart_terrain_5_7_smart_logic.ltx +esc_smart_terrain_5_7_camp_work_7 = escape\esc_smart_terrain_5_7_smart_logic.ltx +esc_smart_terrain_5_7_camp_work_8 = escape\esc_smart_terrain_5_7_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_9.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_9.ltx new file mode 100644 index 00000000..6477e3f9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_5_9.ltx @@ -0,0 +1,27 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 16 +max_population = 1 +;respawn_params = respawn@esc_smart_terrain_5_9 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@esc_smart_terrain_5_9] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +esc_smart_terrain_5_9_camp_work_1 = escape\esc_smart_terrain_5_9_smart_logic.ltx +esc_smart_terrain_5_9_camp_work_2 = escape\esc_smart_terrain_5_9_smart_logic.ltx +esc_smart_terrain_5_9_camp_work_3 = escape\esc_smart_terrain_5_9_smart_logic.ltx +esc_smart_terrain_5_9_camp_work_4 = escape\esc_smart_terrain_5_9_smart_logic.ltx +esc_smart_terrain_5_9_camp_work_5 = escape\esc_smart_terrain_5_9_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_6_6.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_6_6.ltx new file mode 100644 index 00000000..13d3e087 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_6_6.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 17 +;max_population = 1 +;respawn_params = respawn@esc_smart_terrain_5_12 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@esc_smart_terrain_5_12] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_6_8.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_6_8.ltx new file mode 100644 index 00000000..0ddbeced --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_6_8.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 18 +max_population = 1 +respawn_params = respawn@esc_smart_terrain_6_8 +respawn_only_smart = true +respawn_idle = 259200 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_6_8] ;-- Type: faction {army} = bridge checkpoint +spawn_army_special + + +[spawn_army_special] +spawn_squads = most_army_esc_smart_terrain_6_8 +spawn_num = {!squad_name_exist(most_army_esc_smart_terrain_6_8)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +esc_smart_terrain_6_8_squad_1 = escape\esc_smart_terrain_6_8_squad_logic.ltx +esc_smart_terrain_6_8_squad_2 = escape\esc_smart_terrain_6_8_squad_logic.ltx +esc_smart_terrain_6_8_squad_3 = escape\esc_smart_terrain_6_8_squad_logic.ltx +esc_smart_terrain_6_8_squad_4 = escape\esc_smart_terrain_6_8_squad_logic.ltx +esc_smart_terrain_6_8_squad_5 = escape\esc_smart_terrain_6_8_squad_logic.ltx +esc_smart_terrain_6_8_squad_6 = escape\esc_smart_terrain_6_8_squad_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_7_11.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_7_11.ltx new file mode 100644 index 00000000..d1df253a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_7_11.ltx @@ -0,0 +1,30 @@ +[smart_terrain] +squad_id = 19 +max_population = 2 +;respawn_params = respawn@esc_smart_terrain_7_11 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@esc_smart_terrain_7_11] ;-- Type: faction {bandit} = raiding camp + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +esc_smart_terrain_7_11_camp_work_1 = escape\esc_smart_terrain_7_11_smart_logic.ltx +esc_smart_terrain_7_11_camp_work_2 = escape\esc_smart_terrain_7_11_smart_logic.ltx +esc_smart_terrain_7_11_camp_work_3 = escape\esc_smart_terrain_7_11_smart_logic.ltx +esc_smart_terrain_7_11_camp_work_4 = escape\esc_smart_terrain_7_11_smart_logic.ltx +esc_smart_terrain_7_11_camp_work_5 = escape\esc_smart_terrain_7_11_smart_logic.ltx +esc_smart_terrain_7_11_camp_work_6 = escape\esc_smart_terrain_7_11_smart_logic.ltx +esc_smart_terrain_7_11_camp_work_7 = escape\esc_smart_terrain_7_11_smart_logic.ltx +esc_smart_terrain_7_11_camp_work_8 = escape\esc_smart_terrain_7_11_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_8_10.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_8_10.ltx new file mode 100644 index 00000000..68a407e3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_8_10.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 20 +max_population = 1 +min_population = 1 +respawn_params = respawn@esc_smart_terrain_8_10 +respawn_only_smart = false ;true +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_8_10] ;-- Type: c_1_1+ c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 tushkano + 2 dogs + 1 flesh ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_cat_3_5, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_8_9.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_8_9.ltx new file mode 100644 index 00000000..230942a6 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_8_9.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 21 +max_population = 1 +min_population = 1 +respawn_params = respawn@esc_smart_terrain_8_9 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_8_9] ;-- Type: c_1_1+ c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 dogs + 3 fleshes/boars ) +spawn_squads = simulation_dog, simulation_dog_5_7, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2] ;-- Normal mutants - Rates of groups: ( 2 dogs + 1 pseudodog + 2 fleshes/boars ) +spawn_squads = simulation_dog_5_7, simulation_mix_dogs, simulation_pseudodog, simulation_boar_3_5, simulation_mix_boar_flesh +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_9_10.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_9_10.ltx new file mode 100644 index 00000000..691ea5ff --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_9_10.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 23 +max_population = 1 +respawn_params = respawn@esc_smart_terrain_9_10 +respawn_only_smart = false +respawn_idle = 345600 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_9_10] ;-- Type: +spawn_lurker + +[spawn_lurker] ;-- Hard mutants - Rates of groups: ( 1 lurker ) +spawn_squads = simulation_lurker_blue +spawn_num = {~10} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_9_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_9_7.ltx new file mode 100644 index 00000000..58a3d66a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/escape/smart/esc_smart_terrain_9_7.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 22 +max_population = 1 +min_population = 1 +respawn_params = respawn@esc_smart_terrain_9_7 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@esc_smart_terrain_9_7] ;-- Type: c_1_1+ c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 dogs + 3 fleshes/boars ) +spawn_squads = simulation_dog, simulation_dog_5_7, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2] ;-- Normal mutants - Rates of groups: ( 2 dogs + 1 pseudodog + 2 fleshes/boars ) +spawn_squads = simulation_dog_5_7, simulation_mix_dogs, simulation_pseudodog, simulation_boar_3_5, simulation_mix_boar_flesh +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/baraholka_trader_day_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/baraholka_trader_day_logic.ltx new file mode 100644 index 00000000..b665efa1 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/baraholka_trader_day_logic.ltx @@ -0,0 +1,23 @@ +[logic@trader_day] +suitable = {=check_npc_name(baraholka_trader_night) =is_day} true +prior = 200 +active = sleeper@sleeper_1 +can_select_weapon = true +level_spot = quest_npc +dont_keep_items = true +on_death = death + +[death] +on_info = %+gar_baraholka_yurko_dead% + +[sleeper@sleeper_1] +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +path_main = trader_night_sleeper +meet = no_meet +;on_info = {-zat_b7_bandit_boss_sultan_task_3_begin !is_day} walker@base +;on_info2 = {+zat_b7_bandit_boss_sultan_task_3_begin} walker@base diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/baraholka_trader_night_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/baraholka_trader_night_logic.ltx new file mode 100644 index 00000000..fed32400 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/baraholka_trader_night_logic.ltx @@ -0,0 +1,39 @@ +[logic@trader_night] +suitable = {=check_npc_name(baraholka_trader_night) !is_day} true +trade = items\trade\trade_stalker_flea_market_night.ltx +prior = 200 +active = walker@base +can_select_weapon = true +level_spot = trader +dont_keep_items = true +on_death = death + +[death] +on_info = %+gar_baraholka_yurko_dead% + +[walker@base] +path_walk = trader_1_walk +path_look = trader_1_look +;on_info2 = {=surge_started} walker@surge +;on_info = {-zat_b7_bandit_boss_sultan_task_3_begin =is_day} sleeper@sleeper_1 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +meet = meet + +[meet] +close_anim = nil +close_victim = nil +far_anim = nil +far_victim = nil +close_distance = 0 +far_distance = 0 +close_snd_distance = 3 +abuse = false +use = {=actor_enemy} false, true +allow_break = false +meet_on_talking = false +trade_enable = false \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_1.ltx new file mode 100644 index 00000000..b15cbbc9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_1.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(gar_smart_terrain_1_5) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(gar_smart_terrain_1_5) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(gar_smart_terrain_1_7) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(gar_smart_terrain_1_7) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(gar_smart_terrain_2_4) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(gar_smart_terrain_2_4) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(gar_smart_terrain_6_7) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(gar_smart_terrain_6_7) =is_dark_night} ph_idle@spawn_dark_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_1_5)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:gar_smart_terrain_1_5)% ph_idle@reset, {~10} %=create_squad(simulation_boar_night:gar_smart_terrain_1_5)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_1_5)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:gar_smart_terrain_1_5)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:gar_smart_terrain_1_5)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_1_5)% ph_idle@reset, {~10} %=create_squad(simulation_karlik_night:gar_smart_terrain_1_5)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:gar_smart_terrain_1_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_1_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:gar_smart_terrain_1_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_1_7)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:gar_smart_terrain_1_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_1_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:gar_smart_terrain_1_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_1_7)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_2_4)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~10} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_2_4)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_2_4)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:gar_smart_terrain_6_7)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_karlik_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_6_7)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_2.ltx new file mode 100644 index 00000000..287fc52a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_2.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(gar_smart_terrain_5_5) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(gar_smart_terrain_5_5) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(gar_smart_terrain_5_6) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(gar_smart_terrain_5_6) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(gar_smart_terrain_6_6) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(gar_smart_terrain_6_6) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(gar_smart_terrain_7_4) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(gar_smart_terrain_7_4) =is_dark_night} ph_idle@spawn_dark_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_5_5)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_5_5)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_5_5)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:gar_smart_terrain_5_5)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_5_5)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_5_5)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_5_5)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:gar_smart_terrain_5_5)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_5_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_5_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_boar_night:gar_smart_terrain_5_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_5_6)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_5_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_5_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:gar_smart_terrain_5_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_psy_dog_night:gar_smart_terrain_5_6)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:gar_smart_terrain_6_6)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psy_dog_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:gar_smart_terrain_6_6)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:gar_smart_terrain_6_6)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:gar_smart_terrain_7_4)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_psy_dog_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_7_4)% ph_idle@reset_4, {~10} %=create_squad(simulation_karlik_night:gar_smart_terrain_7_4)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_3.ltx new file mode 100644 index 00000000..1add4c9d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/gar_endless_night_spawn_logic_3.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(gar_smart_terrain_4_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(gar_smart_terrain_4_2) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(gar_smart_terrain_6_1) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(gar_smart_terrain_6_1) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(gar_smart_terrain_8_3) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(gar_smart_terrain_8_3) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(gar_smart_terrain_8_5) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(gar_smart_terrain_8_5) =is_dark_night} ph_idle@spawn_dark_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:gar_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:gar_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_6_1)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_6_1)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_6_1)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_6_1)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:gar_smart_terrain_6_1)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_6_1)% ph_idle@reset_2, {~10} %=create_squad(simulation_psy_dog_night:gar_smart_terrain_6_1)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_6_1)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_8_3)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:gar_smart_terrain_8_3)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:gar_smart_terrain_8_3)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_fracture_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_8_5)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_pseudodog_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_white_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_green_night:gar_smart_terrain_8_5)% ph_idle@reset_4, {~10} %=create_squad(simulation_lurker_blue_night:gar_smart_terrain_8_5)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/mod_gar_crow_spawner_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/mod_gar_crow_spawner_redone.ltx new file mode 100644 index 00000000..eacec88f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/mod_gar_crow_spawner_redone.ltx @@ -0,0 +1,19 @@ +![logic] +!active = sr_crow_spawner +active = sr_idle@check_story + +[sr_idle@check_story] +on_info = {-story_mode_disabled} sr_idle@check_actor, {+story_mode_disabled -yan_x16_complete_end} sr_idle@check_actor %+yan_kill_brain_done% + +[sr_idle@check_actor] +on_info = {=actor_community(actor_monolith) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, {=actor_community(actor_greh) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, sr_idle@check_helmet + +[sr_idle@check_helmet] +on_info = {=actor_has_item(good_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, {=actor_has_item(bad_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, sr_idle@check_spawner + +[sr_idle@check_spawner] +on_info = sr_crow_spawner + +![sr_crow_spawner] +max_crows_on_level = 5 +spawn_path = gar_crow_spawn_1, gar_crow_spawn_2, gar_crow_spawn_3, gar_crow_spawn_4, gar_crow_spawn_5 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/mod_gar_smart_terrain_3_5_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/mod_gar_smart_terrain_3_5_smart_logic_redone.ltx new file mode 100644 index 00000000..50dcbad1 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/mod_gar_smart_terrain_3_5_smart_logic_redone.ltx @@ -0,0 +1,37 @@ +![logic@gar_smart_terrain_3_5_camp_work_9] +active = animpoint@gar_smart_terrain_3_5_animpoint_mlr_4 +prior = 65 + +[logic@hangar_gar_character_logic] +suitable = {=check_npc_name(sim_default_stalker_3)} true +active = animpoint@sit +prior = 200 +on_death = death + +[death] +on_info = %+gar_hangar_character_dead% + +![animpoint@sit] +cover_name = gar_smart_cover_mlr_tech_angar +reach_movement = walk_noweap +avail_animations = animpoint_sit_normal +use_camp = false +meet = meet@character +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +reach_distance = 10 +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false + +[meet@character] +close_anim = nil +close_victim = nil +far_anim = nil +far_victim = nil +close_distance = 0 +far_distance = 0 +close_snd_distance = 3 +use = {=actor_enemy} false, true +trade_enable = false diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/mod_gar_smart_terrain_5_2_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/mod_gar_smart_terrain_5_2_smart_logic_redone.ltx new file mode 100644 index 00000000..92a4ef17 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/mod_gar_smart_terrain_5_2_smart_logic_redone.ltx @@ -0,0 +1,75 @@ +[logic@gar_smart_terrain_5_2_guard_work_1] +active = beh@gar_smart_terrain_5_2_guard_work_1 +suitable = {=target_squad_name(stalker_sim_dolg_post)} true +prior = 200 + +[logic@gar_smart_terrain_5_2_guard_work_2] +active = beh@gar_smart_terrain_5_2_guard_work_2 +suitable = {=target_squad_name(stalker_sim_dolg_post)} true +prior = 200 + +[logic@gar_smart_terrain_5_2_guard_work_3] +active = beh@gar_smart_terrain_5_2_guard_work_3 +suitable = {=target_squad_name(stalker_sim_dolg_post)} true +prior = 200 + +[beh@general_guard] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = false + +[beh@general_surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false + +[beh@gar_smart_terrain_5_2_guard_work_1]:beh@general_guard +pt1 = 88860000, guard | pos: 27.316558837891, 0.39998286962509, 200.11589050293 look: 27.004856109619, 0.40251207351685, 199.12585449219 +path_end = loop +on_info = {=surge_started} beh@gar_smart_terrain_5_2_surge_work_1 + +[beh@gar_smart_terrain_5_2_guard_work_2]:beh@general_guard +pt1 = 88860000, guard | pos: 24.931638717651, 0.39881062507629, 238.67102050781 look: 23.962772369385, 0.39802825450897, 238.87631225586 +path_end = loop +on_info = {=surge_started} beh@gar_smart_terrain_5_2_surge_work_2 + +[beh@gar_smart_terrain_5_2_guard_work_3]:beh@general_guard +pt1 = 88860000, guard | pos: 27.532020568848, 0.39941847324371, 238.3621673584 look: 28.915735244751, 0.42033135890961, 236.85572814941 +path_end = loop +on_info = {=surge_started} beh@gar_smart_terrain_5_2_surge_work_3 + +[beh@gar_smart_terrain_5_2_surge_work_1]:beh@general_surge +pt1 = 88860000, guard | pos: 44.686729431152, 0.91298007965088, 244.04870605469 look: 44.464752197266, 0.91293454170227, 243.44853210449 +path_end = loop +on_info = {=surge_complete} beh@gar_smart_terrain_5_2_guard_work_1 + +[beh@gar_smart_terrain_5_2_surge_work_2]:beh@general_surge +pt1 = 88860000, guard | pos: 44.632553100586, 0.91204476356506, 241.4719543457 look: 43.678031921387, 0.91305804252625, 240.873046875 +path_end = loop +on_info = {=surge_complete} beh@gar_smart_terrain_5_2_guard_work_2 + +[beh@gar_smart_terrain_5_2_surge_work_3]:beh@general_surge +pt1 = 88860000, hide | pos: 39.454650878906, 0.91193068027496, 235.47171020508 look: 39.566371917725, 0.91323459148407, 234.66983032227 +path_end = loop +on_info = {=surge_complete} beh@gar_smart_terrain_5_2_guard_work_3 + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/mod_trader_baraholka_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/mod_trader_baraholka_logic_redone.ltx new file mode 100644 index 00000000..67ff9279 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/mod_trader_baraholka_logic_redone.ltx @@ -0,0 +1,5 @@ +![logic@trader_baraholka] +on_death = death + +[death] +on_info = %+gar_baraholka_syoma_dead% \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_1_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_1_5.ltx new file mode 100644 index 00000000..81be548a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_1_5.ltx @@ -0,0 +1,23 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 1 +max_population = 1 +;respawn_params = respawn@gar_smart_terrain_1_5 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@gar_smart_terrain_1_5] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_1_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_1_7.ltx new file mode 100644 index 00000000..d17bdd4b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_1_7.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 2 +max_population = 2 +respawn_params = respawn@gar_smart_terrain_1_7 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@gar_smart_terrain_1_7] ;-- Type: +spawn_all_weak +spawn_zombie + + +[spawn_all_weak] ;-- Normal mutants - Rates of groups: ( 1 tushkano + 3 dogs + 1 cat) +spawn_squads = simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_mix_dogs, simulation_cat +spawn_num = {~20} 1, 0 + +[spawn_zombie] ;-- Weak mutants - Rates of groups: ( 3 zombie ) +spawn_squads = simulation_zombie, simulation_zombie_3_6, simulation_mix_zombie +spawn_num = {+yan_kill_brain_done} 0, 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_2_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_2_4.ltx new file mode 100644 index 00000000..af316ba8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_2_4.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 3 +max_population = 1 +;respawn_params = respawn@gar_smart_terrain_2_4 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@gar_smart_terrain_2_4] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_3_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_3_5.ltx new file mode 100644 index 00000000..a4fba1cf --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_3_5.ltx @@ -0,0 +1,63 @@ +[smart_terrain] +squad_id = 5 +max_population = 2 +;min_population = 1 +respawn_params = respawn@gar_smart_terrain_3_5 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@gar_smart_terrain_3_5] ;-- Type: faction {stalker\bandit\army} = trade hangar +spawn_stalker_special +spawn_bandit_special +spawn_bandit_special_2 +spawn_army_special +spawn_army_special_2 + + +[spawn_stalker_special] +spawn_squads = start_visitirs_hangar_mlr_squad +spawn_num = {!squad_exist(start_visitirs_hangar_mlr_squad) -gar_hangar_character_dead} 1, 0 + +[spawn_bandit_special] +spawn_squads = start_depo_bandit_gar_smart_terrain_3_5 +spawn_num = {!squad_exist(start_depo_bandit_gar_smart_terrain_3_5) =actor_community(actor_bandit) +gar_hangar_character_dead} 1, 0 + +[spawn_bandit_special_2] +spawn_squads = start_depo_bandit_gar_smart_terrain_3_5 +spawn_num = {!squad_exist(start_depo_bandit_gar_smart_terrain_3_5) =actor_community(actor_renegade) +gar_hangar_character_dead} 1, 0 + +[spawn_army_special] +spawn_squads = start_depo_army_gar_smart_terrain_3_5 +spawn_num = {!squad_exist(start_depo_army_gar_smart_terrain_3_5) =actor_community(actor_army) +gar_hangar_character_dead} 1, 0 + +[spawn_army_special_2] +spawn_squads = start_depo_army_gar_smart_terrain_3_5 +spawn_num = {!squad_exist(start_depo_army_gar_smart_terrain_3_5) =actor_community(actor_killer) +gar_hangar_character_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +;hunter_gar_mec_logic = garbage\gar_smart_terrain_3_5_smart_logic.ltx +hunter_gar_trader_logic = garbage\gar_smart_terrain_3_5_smart_logic.ltx +hangar_gar_character_logic = garbage\gar_smart_terrain_3_5_smart_logic.ltx + +gar_smart_terrain_3_5_beh_trade_1 = garbage\gar_smart_terrain_3_5_smart_logic.ltx +gar_smart_terrain_3_5_camp_work_2 = garbage\gar_smart_terrain_3_5_smart_logic.ltx +gar_smart_terrain_3_5_camp_work_3 = garbage\gar_smart_terrain_3_5_smart_logic.ltx +gar_smart_terrain_3_5_camp_work_4 = garbage\gar_smart_terrain_3_5_smart_logic.ltx +gar_smart_terrain_3_5_camp_work_5 = garbage\gar_smart_terrain_3_5_smart_logic.ltx +gar_smart_terrain_3_5_camp_work_6 = garbage\gar_smart_terrain_3_5_smart_logic.ltx +gar_smart_terrain_3_5_camp_work_9 = garbage\gar_smart_terrain_3_5_smart_logic.ltx +gar_smart_terrain_3_5_camp_work_10 = garbage\gar_smart_terrain_3_5_smart_logic.ltx +gar_smart_terrain_3_5_camp_work_11 = garbage\gar_smart_terrain_3_5_smart_logic.ltx +gar_smart_terrain_3_5_camp_work_12 = garbage\gar_smart_terrain_3_5_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_3_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_3_7.ltx new file mode 100644 index 00000000..d5bc5aec --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_3_7.ltx @@ -0,0 +1,22 @@ +[smart_terrain] +squad_id = 6 +max_population = 3 +;respawn_params = respawn@gar_smart_terrain_3_7 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@gar_smart_terrain_3_7] ;-- Type: faction {army} = guardsite + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_4_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_4_2.ltx new file mode 100644 index 00000000..2797e949 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_4_2.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 7 +max_population = 2 +respawn_params = respawn@gar_smart_terrain_4_2 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@gar_smart_terrain_4_2] ;-- Type: +spawn_fracture +spawn_zombie + + +[spawn_fracture] ;-- Hard mutants - Rates of groups: ( 2 fracture ) +spawn_squads = simulation_fracture, simulation_fracture +spawn_num = {~20} 1, 0 + +[spawn_zombie] ;-- Weak mutants - Rates of groups: ( 3 zombie ) +spawn_squads = simulation_zombie, simulation_zombie_3_6, simulation_mix_zombie +spawn_num = {+yan_kill_brain_done} 0, 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_4_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_4_5.ltx new file mode 100644 index 00000000..6bdc9abf --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_4_5.ltx @@ -0,0 +1,24 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 8 +max_population = 1 +;respawn_params = respawn@gar_smart_terrain_4_5 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@gar_smart_terrain_4_5] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +gar_smart_terrain_4_5_camp_work_1 = garbage\gar_smart_terrain_4_5_smart_logic.ltx +gar_smart_terrain_4_5_camp_work_2 = garbage\gar_smart_terrain_4_5_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_2.ltx new file mode 100644 index 00000000..df2d6d7b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_2.ltx @@ -0,0 +1,44 @@ +[smart_terrain] +squad_id = 9 +max_population = 2 +;min_population = 1 +respawn_params = respawn@gar_smart_terrain_5_2 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@gar_smart_terrain_5_2] ;-- Type: faction {duty} = checkpoint\camp +spawn_duty@advanced +spawn_duty_special + + +[spawn_duty@advanced] +spawn_squads = duty_sim_squad_novice, duty_sim_squad_novice, duty_sim_squad_advanced +spawn_num = {+bar_dolg_leader_dead +bar_dolg_petrenko_dead} 0, 2 + +[spawn_duty_special] +spawn_squads = stalker_sim_dolg_post +spawn_num = {!squad_name_exist(stalker_sim_dolg_post) -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +gar_smart_terrain_5_2_camp_work_1 = garbage\gar_smart_terrain_5_2_smart_logic.ltx +gar_smart_terrain_5_2_camp_work_2 = garbage\gar_smart_terrain_5_2_smart_logic.ltx +gar_smart_terrain_5_2_camp_work_3 = garbage\gar_smart_terrain_5_2_smart_logic.ltx +gar_smart_terrain_5_2_camp_work_4 = garbage\gar_smart_terrain_5_2_smart_logic.ltx +gar_smart_terrain_5_2_camp_work_5 = garbage\gar_smart_terrain_5_2_smart_logic.ltx +gar_smart_terrain_5_2_camp_work_6 = garbage\gar_smart_terrain_5_2_smart_logic.ltx + +;gar_smart_terrain_5_2_guard_work_1 = garbage\gar_smart_terrain_5_2_smart_logic.ltx +gar_smart_terrain_5_2_guard_work_2 = garbage\gar_smart_terrain_5_2_smart_logic.ltx +gar_smart_terrain_5_2_guard_work_3 = garbage\gar_smart_terrain_5_2_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_4.ltx new file mode 100644 index 00000000..11c8af18 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_4.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 10 +;max_population = 1 +;respawn_params = respawn@gar_smart_terrain_5_4 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@gar_smart_terrain_5_4] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_5.ltx new file mode 100644 index 00000000..ab224678 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_5.ltx @@ -0,0 +1,35 @@ +[smart_terrain] +squad_id = 11 +max_population = 1 +respawn_params = respawn@gar_smart_terrain_5_5 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@gar_smart_terrain_5_5] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Normal mutants - Rates of groups: ( 2 tushkano + 2 dogs + 1 cats ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 2 cats ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_cat, simulation_cat_3_5 +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_6.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_6.ltx new file mode 100644 index 00000000..bc4b4fb2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_6.ltx @@ -0,0 +1,29 @@ +[smart_terrain] +squad_id = 12 +max_population = 1 +respawn_params = respawn@gar_smart_terrain_5_6 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@gar_smart_terrain_5_6] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 tushkano + 2 dogs + 1 cats + 1 flesh ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 pseudodog + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_pseudodog, simulation_cat_3_5, simulation_mix_boar_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_8.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_8.ltx new file mode 100644 index 00000000..cc79410b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_5_8.ltx @@ -0,0 +1,22 @@ +[smart_terrain] +squad_id = 22 +max_population = 2 +;respawn_params = respawn@gar_smart_terrain_5_8 +;respawn_only_smart = false +;respawn_idle = 172800 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@gar_smart_terrain_5_8] ;-- Type: faction {army} = checkpoint\camp + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_6_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_6_1.ltx new file mode 100644 index 00000000..cf9cce56 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_6_1.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 13 +max_population = 1 +respawn_params = respawn@gar_smart_terrain_6_1 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@gar_smart_terrain_6_1] ;-- Type: +spawn_all_weak +spawn_all_normal + + +[spawn_all_weak] ;-- Normal mutants - Rates of groups:( 2 dogs + 1 cats + 1 fleshes/boars ) +spawn_squads = simulation_dog, simulation_mix_dogs, simulation_cat, simulation_mix_boar_flesh +spawn_num = {~50} 1, 0 + +[spawn_all_normal] ;-- Normal mutants - Rates of groups:( 2 dogs + 3 fleshes/boars ) +spawn_squads = simulation_dog_5_7, simulation_mix_dogs, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {~50} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_6_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_6_3.ltx new file mode 100644 index 00000000..b74855d7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_6_3.ltx @@ -0,0 +1,41 @@ +[smart_terrain] +squad_id = 14 +max_population = 2 +respawn_params = respawn@gar_smart_terrain_6_3 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@gar_smart_terrain_6_3] ;-- Type: faction {stalker} = tradepost +;spawn_stalker@novice +spawn_stalker_special + + +;[spawn_stalker@novice] +;spawn_squads = stalker_sim_squad_novice, stalker_sim_squad_novice, stalker_sim_squad_advanced +;spawn_num = {+gar_baraholka_syoma_dead +gar_baraholka_yurko_dead} 0, 1 + +[spawn_stalker_special] +spawn_squads = stalker_gar_smart_terrain_6_3 +spawn_num = {!squad_exist(stalker_gar_smart_terrain_6_3) -gar_baraholka_syoma_dead -gar_baraholka_yurko_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +trader_baraholka_day = garbage\trader_baraholka_day_logic.ltx +trader_baraholka_night = garbage\trader_baraholka_night_logic.ltx +trader_day = garbage\baraholka_trader_day_logic.ltx +trader_night = garbage\baraholka_trader_night_logic.ltx + +gar_smart_terrain_6_3_camp_work_1 = garbage\gar_smart_terrain_6_3_smart_logic.ltx + +;recruiter_bandit = garbage\baraholka_logic_recruiter_bandit.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_6_6.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_6_6.ltx new file mode 100644 index 00000000..7fc71b46 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_6_6.ltx @@ -0,0 +1,38 @@ +[smart_terrain] +squad_id = 15 +max_population = 2 +respawn_params = respawn@gar_smart_terrain_6_6 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@gar_smart_terrain_6_6] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 +spawn_mutants_rare + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 tushkano + 2 dogs + 1 cats + 1 flesh ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_cat_3_5, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + +[spawn_mutants_rare] ;-- Rare mutants - Rates of groups: ( 1 karlik ) +spawn_squads = simulation_karlik, simulation_karlik, simulation_fracture +spawn_num = {~10} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_6_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_6_7.ltx new file mode 100644 index 00000000..ee5f22bc --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_6_7.ltx @@ -0,0 +1,25 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 16 +max_population = 1 +;respawn_params = respawn@gar_smart_terrain_6_7 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@gar_smart_terrain_6_7] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_7_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_7_4.ltx new file mode 100644 index 00000000..17c49c70 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_7_4.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 18 +max_population = 1 +respawn_params = respawn@gar_smart_terrain_7_4 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@gar_smart_terrain_7_4] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 tushkano + 2 dogs + 1 cats + 1 flesh ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 pseudodog + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_pseudodog, simulation_cat_3_5, simulation_mix_boar_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_8_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_8_3.ltx new file mode 100644 index 00000000..103141ff --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_8_3.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 28 +max_population = 2 +respawn_params = respawn@gar_smart_terrain_8_3 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@gar_smart_terrain_8_3] +spawn_all_normal + + +[spawn_all_normal] ;-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_cat_3_5, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_8_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_8_5.ltx new file mode 100644 index 00000000..ccf1ad1e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/smart/gar_smart_terrain_8_5.ltx @@ -0,0 +1,32 @@ +[smart_terrain] +squad_id = 19 +max_population = 1 +respawn_params = respawn@gar_smart_terrain_8_5 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@gar_smart_terrain_8_5] ;-- Type: +spawn_fracture +spawn_lurker + +[spawn_fracture] ;-- Hard mutants - Rates of groups: ( 2 fracture ) +spawn_squads = simulation_fracture, simulation_fracture +spawn_num = {~20} 1, 0 + +[spawn_lurker] ;-- Hard mutants - Rates of groups: ( 2 lurker ) +spawn_squads = simulation_lurker, simulation_lurker_blue +spawn_num = {~50} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/trader_baraholka_day_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/trader_baraholka_day_logic.ltx new file mode 100644 index 00000000..ce714444 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/trader_baraholka_day_logic.ltx @@ -0,0 +1,39 @@ +[logic@trader_baraholka_day] +suitable = {=check_npc_name(baraholka_trader) =is_day} true +trade = items\trade\trade_stalker_flea_market.ltx +prior = 200 +active = animpoint@baraholka_1 +can_select_weapon = true +level_spot = trader +dont_keep_items = true +on_death = death + +[death] +on_info = %+gar_baraholka_syoma_dead% + +[animpoint@baraholka_1] +cover_name = gar_cover_day_trader_baraholka +avail_animations = animpoint_sit_ass +use_camp = false +meet = meet +;on_info = {-zat_b7_bandit_boss_sultan_task_3_begin =is_night} sleeper@sleeper_1 +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false + +[meet] +close_anim = nil +close_victim = nil +far_anim = nil +far_victim = nil +close_distance = 0 +far_distance = 0 +close_snd_distance = 3 +abuse = false +use = {=actor_enemy} false, true +allow_break = false +meet_on_talking = false +trade_enable = false \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/trader_baraholka_night_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/trader_baraholka_night_logic.ltx new file mode 100644 index 00000000..86b1a0fc --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/garbage/trader_baraholka_night_logic.ltx @@ -0,0 +1,23 @@ +[logic@trader_baraholka_night] +suitable = {=check_npc_name(baraholka_trader) !is_day} true +prior = 200 +active = sleeper@sleeper_1 +can_select_weapon = true +level_spot = quest_npc +dont_keep_items = true +on_death = death + +[death] +on_info = %+gar_baraholka_syoma_dead% + +[sleeper@sleeper_1] +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +path_main = trader_day_sleeper +meet = no_meet +;on_info = {-zat_b7_bandit_boss_sultan_task_3_begin !is_night} animpoint@baraholka_1 +;on_info2 = {+zat_b7_bandit_boss_sultan_task_3_begin} walker@base diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_brain_system_message_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_brain_system_message_redone.ltx new file mode 100644 index 00000000..e49d04e3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_brain_system_message_redone.ltx @@ -0,0 +1,6 @@ +![sr_idle@check_story] +on_info = {=actor_community(actor_monolith)} sr_idle@nil, {=actor_community(actor_greh)} sr_idle@nil, {+story_mode_disabled} sr_idle@nil, sr_idle@system_idle + +![sr_idle@primary_off] +on_info = %=stop_sound_looped =play_sound(x16_brain_stop)% +on_timer = 1000 | sr_idle@primary_idle ;%=run_cam_effector(radar_stop:2506:false)% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_generator_sound_1_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_generator_sound_1_redone.ltx new file mode 100644 index 00000000..93d07b9c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_generator_sound_1_redone.ltx @@ -0,0 +1,11 @@ +![sr_idle@on] +on_info = {-yan_labx16_switcher_1_off} %=play_sound_looped(x16_engine1_run)% +on_info2 = {+yan_labx16_switcher_1_off} sr_idle@off %=play_sound(x16_engine1_stop)% + +![sr_idle@off] +on_game_timer = 5 | %=stop_sound_looped% +on_game_timer2 = 100 | sr_idle@reactivate + +[sr_idle@reactivate] +on_info = {-yan_labx16_switcher_1_off} %=play_sound_looped(x16_engine1_run)% +on_info2 = {+yan_labx16_switcher_1_off} sr_idle@off %=play_sound(x16_engine1_stop)% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_generator_sound_2_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_generator_sound_2_redone.ltx new file mode 100644 index 00000000..4b203482 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_generator_sound_2_redone.ltx @@ -0,0 +1,11 @@ +![sr_idle@on] +on_info = {-yan_labx16_switcher_2_off} %=play_sound_looped(x16_engine1_run)% +on_info2 = {+yan_labx16_switcher_2_off} sr_idle@off %=play_sound(x16_engine1_stop)% + +![sr_idle@off] +on_game_timer = 5 | %=stop_sound_looped% +on_game_timer2 = 100 | sr_idle@reactivate + +[sr_idle@reactivate] +on_info = {-yan_labx16_switcher_2_off} %=play_sound_looped(x16_engine1_run)% +on_info2 = {+yan_labx16_switcher_2_off} sr_idle@off %=play_sound(x16_engine1_stop)% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_generator_sound_3_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_generator_sound_3_redone.ltx new file mode 100644 index 00000000..80d3ca7a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_generator_sound_3_redone.ltx @@ -0,0 +1,11 @@ +![sr_idle@on] +on_info = {-yan_labx16_switcher_3_off} %=play_sound_looped(x16_engine2_run)% +on_info2 = {+yan_labx16_switcher_3_off} sr_idle@off %=play_sound(x16_engine2_stop)% + +![sr_idle@off] +on_game_timer = 5 | %=stop_sound_looped% +on_game_timer2 = 100 | sr_idle@reactivate + +[sr_idle@reactivate] +on_info = {-yan_labx16_switcher_3_off} %=play_sound_looped(x16_engine2_run)% +on_info2 = {+yan_labx16_switcher_3_off} sr_idle@off %=play_sound(x16_engine2_stop)% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_pult_sound_1_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_pult_sound_1_redone.ltx new file mode 100644 index 00000000..31a04848 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_pult_sound_1_redone.ltx @@ -0,0 +1,3 @@ +![sr_idle@on] +on_info = {-yan_labx16_switcher_1_off} %=play_sound_looped(x16_hum_2)% +on_info2 = {+yan_labx16_switcher_1_off} %=play_sound_looped(x16_hum_2)% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_pult_sound_2_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_pult_sound_2_redone.ltx new file mode 100644 index 00000000..24cef55f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_pult_sound_2_redone.ltx @@ -0,0 +1,3 @@ +![sr_idle@on] +on_info = {-yan_labx16_switcher_2_off} %=play_sound_looped(x16_hum_2)% +on_info2 = {+yan_labx16_switcher_2_off} %=play_sound_looped(x16_hum_2)% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_pult_sound_3_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_pult_sound_3_redone.ltx new file mode 100644 index 00000000..81ece9f1 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_pult_sound_3_redone.ltx @@ -0,0 +1,3 @@ +![sr_idle@on] +on_info = {-yan_labx16_switcher_3_off} %=play_sound_looped(x16_hum_2)% +on_info2 = {+yan_labx16_switcher_3_off} %=play_sound_looped(x16_hum_2)% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_spawner_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_spawner_redone.ltx new file mode 100644 index 00000000..70c71a6f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_spawner_redone.ltx @@ -0,0 +1,39 @@ +![logic] +active = ;sr_idle@spawner +active = sr_idle@check_1 + +[sr_idle@check_1] +on_info = {=actor_community(actor_monolith)} sr_idle@mspawner_1, {=actor_community(actor_greh)} sr_idle@mspawner_1, sr_idle@spawner_1 + +[sr_idle@spawner_1] +on_info = sr_idle@check_2 %=create_squad(zombied_x162_st_poltergeist_squad:x162_st_poltergeist) =spawn_object(labx16_snork_5:x16_zombied_1_walk:0) =spawn_object(labx16_snork_6:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_1:x16_zombied_master_1_walk:0) =spawn_object(labx16_zombie_2:x16_zombied_master_2_walk:0) =spawn_object(labx16_zombie_8:x16_zombied_1_walk:0) =spawn_object(labx16_zombie_11:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_12:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_13:x16_zombied_5_walk:0) =spawn_object(labx16_zombie_18:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_6:x16_zombied_1_walk:0) =spawn_object(labx16_zombie_7:x16_zombied_1_walk:0) =spawn_object(main_story_3_lab_x16_documents:x16_ghost_deadway)% + +[sr_idle@mspawner_1] +on_info = sr_idle@check_2 %=spawn_object(labx16_ecolog_2a:x16_snork_home_2:0) =spawn_object(labx16_ecolog_1:x16_zombied_master_1_walk:0) =spawn_object(labx16_ecolog_2:x16_zombied_master_2_walk:0) =spawn_object(labx16_ecolog_8:x16_zombied_1_walk:0) =spawn_object(labx16_ecolog_11:x16_zombied_4_walk:0) =spawn_object(labx16_ecolog_12:x16_zombied_4_walk:0) =spawn_object(labx16_ecolog_13:x16_zombied_5_walk:0) =spawn_object(labx16_ecolog_18:x16_zombied_4_walk:0) =spawn_object(labx16_ecolog_19:x16_zombied_5_walk:0) =spawn_object(labx16_ecolog_6:x16_zombied_1_walk:0) =spawn_object(labx16_ecolog_7:x16_zombied_1_walk:0)% + +[sr_idle@check_2] +on_info = {=actor_community(actor_monolith)} sr_idle@mspawner_2, {=actor_community(actor_greh)} sr_idle@mspawner_2, sr_idle@spawner_2 + +[sr_idle@spawner_2] +on_actor_in_zone = floor_3_space_restrictor | sr_idle@nil %=spawn_object(labx16_snork_5:x16_zombied_7_walk:0) =spawn_object(labx16_snork_7:x16_zombied_7_walk:0) =spawn_object(labx16_snork_8:x16_zombied_7_walk:0)% + +[sr_idle@mspawner_2] +on_actor_in_zone = floor_3_space_restrictor | sr_idle@mwait %=spawn_object(labx16_ecolog_16:x16_zombied_7_walk:0) =spawn_object(labx16_ecolog_17:x16_zombied_7_walk:0)% + +[sr_idle@mwait] +on_info = {+mil_attack_start} sr_idle@mspawner_3 + +[sr_idle@mspawner_3] +on_game_timer = 180 | sr_idle@mlab_on %+yantar_attack_start =spawn_object(labx16_ecolog_7a:x16_controller_home_1:0) =spawn_object(labx16_ecolog_8a:x16_controller_home_1:0) =spawn_object(labx16_ecolog_controller:x16_controller_home_1:0)% ;=spawn_object(labx16_ecolog_16:x16_zombied_7_walk:0) =spawn_object(labx16_ecolog_17:x16_zombied_7_walk:0) + +[sr_idle@mlab_on] +on_info = {-yan_labx16_switcher_primary_off -yan_kill_brain_done} sr_idle@mend + +[sr_idle@mend] +on_game_timer = 3500 | sr_idle@nil %=spawn_object(labx16_snork_2:x16_snork_home_2:0) =spawn_object(labx16_zombie_1:x16_zombied_master_1_walk:0) =spawn_object(labx16_zombie_2:x16_zombied_master_2_walk:0) =spawn_object(labx16_zombie_8:x16_zombied_1_walk:0) =spawn_object(labx16_zombie_11:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_12:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_13:x16_zombied_5_walk:0) =spawn_object(labx16_zombie_18:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_19:x16_zombied_5_walk:0) =spawn_object(labx16_zombie_3:yan_zombied_walk_zasada_1:0) =spawn_object(labx16_zombie_4:yan_zombied_walk_zasada_1:0) =spawn_object(labx16_zombie_5:yan_zombied_walk_zasada_1:0) =spawn_object(labx16_snork_3:yan_zombies_attack_camp_1:0)% + +![sr_idle@nil] +on_info = {=actor_community(actor_monolith)} sr_idle@mspawner_1 +on_info2 = {=actor_community(actor_greh)} sr_idle@mspawner_1 + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_timer_restrictor_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_timer_restrictor_redone.ltx new file mode 100644 index 00000000..40776439 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_x16_timer_restrictor_redone.ltx @@ -0,0 +1,17 @@ +![sr_idle] +on_actor_inside = {+yan_labx16_switcher_primary_off} sr_idle@nil, {=actor_has_item(good_psy_helmet)} sr_idle@nil, {=actor_community(actor_monolith) =actor_community(actor_greh)} sr_idle@nil %=kill_actor% +on_info = {=actor_community(actor_monolith)} sr_idle@on, {=actor_community(actor_greh)} sr_idle@on + +[sr_idle@on] +on_info = {+mil_attack_start} sr_timer@1 + +[sr_timer@1] +type = dec +start_value = 220000 +on_value = 0 | sr_idle@nil %=kill_actor% +;on_actor_outside = sr_idle %=kill_actor% +on_info = {-yan_kill_brain_done} sr_idle@nil +string = st_helmet_countdown + +![sr_idle@nil] + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_controller_respawn_01_0000_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_controller_respawn_01_0000_redone.ltx new file mode 100644 index 00000000..12d0b5ce --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_controller_respawn_01_0000_redone.ltx @@ -0,0 +1,16 @@ +![logic] +active =; sr_idle +active = sr_idle@check + +[sr_idle@check] +on_info = {=actor_community(actor_monolith)} sr_idle@mspawn, {=actor_community(actor_greh)} sr_idle@mspawn, sr_idle@spawn + +[sr_idle@spawn] +on_actor_inside = {-brain_snork_respawn_01} sr_idle@nil %+brain_snork_respawn_01 =create_squad(zombied_x162_st_poltergeist_squad:x162_st_poltergeist)% + +[sr_idle@mspawn] +on_actor_inside = {-brain_snork_respawn_01} sr_idle@nil %+brain_snork_respawn_01 =create_squad(ecolog_x162_st_poltergeist_squad:x162_st_poltergeist)% + + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_controller_respawn_01_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_controller_respawn_01_redone.ltx new file mode 100644 index 00000000..3a7b43aa --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_controller_respawn_01_redone.ltx @@ -0,0 +1,13 @@ +![logic] +active = ;sr_idle +active = sr_idle@check + +[sr_idle@check] +on_info = {=actor_community(actor_monolith)} sr_idle@mspawn, {=actor_community(actor_greh)} sr_idle@mspawn, sr_idle + +![sr_idle] +on_actor_inside = {-yan_controller_respawn_01} sr_idle@nil %+yan_controller_respawn_01 =spawn_object(labx16_controller:x16_controller_home_1:0)% + +[sr_idle@mspawn] +on_actor_inside = {-yan_controller_respawn_01} sr_idle@nil %+yan_controller_respawn_01 =spawn_object(labx16_ecolog_controller:x16_controller_home_1:0)% + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher1_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher1_redone.ltx new file mode 100644 index 00000000..fc34c1fa --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher1_redone.ltx @@ -0,0 +1,56 @@ +![logic] +!active = ph_button@active +active = ph_idle@check_switcher_1 + +[ph_idle@check_switcher_1] +on_info = {-yan_labx16_switcher_primary_off} ph_button@active, {+yan_labx16_switcher_primary_off} ph_button@deactivate + +![ph_button@active] +!on_info = {+yan_labx16_switcher_1_off} ph_idle@nil +on_info2 = {=actor_community(actor_monolith)} ph_button@mdeactive, {=actor_community(actor_greh)} ph_button@mdeactive +anim_blend = true +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher +on_press = ph_button@deactivate %+yan_labx16_switcher_1_off =turn_off(yan_labx16switcher_lamp1) =turn_off(yan_labx16switcher_primary_1_red) =turn_on(yan_labx16switcher_primary_1_green) =play_sound(x16_switch_1) =spawn_object(labx16_zombie_9:x16_zombied_7_walk:0) =yan_gluk% + +![ph_button@deactivate] +on_info = {=actor_community(actor_monolith)} ph_button@mdeactive, {=actor_community(actor_greh)} ph_button@mdeactive +anim_blend = true +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = ph_button@reactivate %-yan_labx16_switcher_1_off =play_sound(switch_2) =turn_on(yan_labx16switcher_lamp1) =turn_on(yan_labx16switcher_primary_1_red) =turn_off(yan_labx16switcher_primary_1_green)% +!on_timer = 500 | ph_idle@nil %+yan_labx16_switcher_1_off =turn_off(yan_labx16switcher_lamp1) =turn_off(yan_labx16switcher_primary_1_red) =turn_on(yan_labx16switcher_primary_1_green) =play_sound(x16_switch_1) =spawn_object(labx16_zombie_9:x16_zombied_7_walk:0)% + +[ph_button@reactivate] +anim_blend = true +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher +on_press = ph_button@deactivate %+yan_labx16_switcher_1_off =play_sound(x16_switch_1) =turn_off(yan_labx16switcher_lamp1) =turn_off(yan_labx16switcher_primary_1_red) =turn_on(yan_labx16switcher_primary_1_green)% + +[ph_button@mdeactive] +anim_blend = true +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = ph_button@midle %-yan_labx16_switcher_1_off =play_sound(system_message_2)% + +[ph_button@midle] +on_info = {+yan_labx16_switcher_primary_try} ph_button@mreboot +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher + +[ph_button@mreboot] +anim_blend = true +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = ph_button@mreactivate %+yan_labx16_switcher_1_off =play_sound(switch_2) =spawn_object(labx16_ecolog_9:x16_zombied_7_walk:0)% + +[ph_button@mreactivate] +on_info = {+yantar_attack_start} ph_button@mactive %=spawn_object(labx16_ecolog_9:x16_zombied_7_walk:0)% +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher + +[ph_button@mactive] +on_info = {+yantar_attack_start} ph_idle@nil %=turn_on(yan_labx16switcher_lamp1) =turn_on(yan_labx16switcher_primary_1_red) =turn_off(yan_labx16switcher_primary_1_green)% +anim_blend = true +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher2_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher2_redone.ltx new file mode 100644 index 00000000..abb68840 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher2_redone.ltx @@ -0,0 +1,66 @@ +![logic] +!active = ph_button@active +active = ph_idle@check_switcher_2 + +[ph_idle@check_switcher_2] +on_info = {-yan_labx16_switcher_primary_off} ph_button@active, {+yan_labx16_switcher_primary_off} ph_button@deactivate + +![ph_button@active] +!on_info = {+yan_labx16_switcher_2_off} ph_idle@nil +on_info2 = {=actor_community(actor_monolith)} ph_button@mdeactive, {=actor_community(actor_greh)} ph_button@mdeactive +anim_blend = true +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher +on_press = ph_button@deactivate %+yan_labx16_switcher_2_off =turn_off(yan_labx16switcher_lamp2) =turn_off(yan_labx16switcher_primary_2_red) =turn_on(yan_labx16switcher_primary_2_green) =play_sound(x16_switch_1) =spawn_object(labx16_zombie_10:x16_zombied_7_walk:0)% + +![ph_button@deactivate] +on_info = {=actor_community(actor_monolith)} ph_button@mdeactive, {=actor_community(actor_greh)} ph_button@mdeactive +anim_blend = true +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = ph_button@reactivate %-yan_labx16_switcher_2_off =play_sound(switch_2) =turn_on(yan_labx16switcher_lamp2) =turn_on(yan_labx16switcher_primary_2_red) =turn_off(yan_labx16switcher_primary_2_green) =spawn_object(labx16_zombie_10:x16_zombied_7_walk:0)% +!on_timer = 500 | ph_idle@nil %+yan_labx16_switcher_2_off =turn_off(yan_labx16switcher_lamp2) =turn_off(yan_labx16switcher_primary_2_red) =turn_on(yan_labx16switcher_primary_2_green) =play_sound(x16_switch_1) =spawn_object(labx16_zombie_10:x16_zombied_7_walk:0)% + + +[ph_button@reactivate] +anim_blend = true +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher +on_press = ph_button@deactivate %+yan_labx16_switcher_2_off =play_sound(x16_switch_1) =turn_off(yan_labx16switcher_lamp2) =turn_off(yan_labx16switcher_primary_2_red) =turn_on(yan_labx16switcher_primary_2_green)% + +[ph_button@mdeactive] +anim_blend = true +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = ph_button@midle %-yan_labx16_switcher_2_off =turn_off(yan_labx16switcher_lamp2) =turn_off(yan_labx16switcher_primary_2_red) =turn_on(yan_labx16switcher_primary_2_green) =play_sound(system_message_3)% + +[ph_button@midle] +on_info = {+yan_labx16_switcher_primary_try} ph_button@mreboot +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher + +[ph_button@mreboot] +anim_blend = true +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = ph_button@mreactivate %+yan_labx16_switcher_2_off =play_sound(switch_2) =spawn_object(labx16_ecolog_10:x16_zombied_7_walk:0)% + +[ph_button@mreactivate] +on_info = {+yantar_attack_start} ph_button@mactive %=spawn_object(labx16_ecolog_10:x16_zombied_7_walk:0)% +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher + +[ph_button@mactive] +on_info = {+yantar_attack_start} ph_idle@mfx_1 %=turn_on(yan_labx16switcher_lamp2) =turn_on(yan_labx16switcher_primary_2_red) =turn_off(yan_labx16switcher_primary_2_green)% +anim_blend = true +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher + +[ph_idle@mfx_1] +on_timer = 24000 | ph_idle@mfx_2 %=yan_gluk% +[ph_idle@mfx_2] +on_timer = 15000 | ph_idle@mfx_3 %=yan_gluk% +[ph_idle@mfx_3] +on_timer = 24000 | ph_idle@nil %=yan_gluk% + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher3_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher3_redone.ltx new file mode 100644 index 00000000..ef89694d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher3_redone.ltx @@ -0,0 +1,99 @@ +![logic] +!active = ph_button@active +active = ph_idle@check_switcher_3 + +[ph_idle@check_switcher_3] +on_info = {-yan_labx16_switcher_primary_off} ph_button@active, {+yan_labx16_switcher_primary_off} ph_button@deactivate + +![ph_button@active] +!on_info = {+yan_labx16_switcher_3_off} ph_idle@nil +on_info2 = {=actor_community(actor_monolith)} ph_button@mdeactive, {=actor_community(actor_greh)} ph_button@mdeactive +anim_blend = true +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher +on_press = ph_button@deactivate %+yan_labx16_switcher_3_off =turn_off(yan_labx16switcher_lamp3) =turn_off(yan_labx16switcher_primary_3_red) =turn_on(yan_labx16switcher_primary_3_green) =play_sound(x16_switch_1) =spawn_object(labx16_zombie_14:x16_zombied_7_walk:0) =spawn_object(labx16_zombie_15:x16_zombied_7_walk:0) =yan_gluk% + +![ph_button@deactivate] +on_info = {=actor_community(actor_monolith)} ph_button@mdeactive, {=actor_community(actor_greh)} ph_button@mdeactive +anim_blend = true +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = ph_button@reactivate %-yan_labx16_switcher_3_off =play_sound(switch_2) =turn_on(yan_labx16switcher_lamp3) =turn_on(yan_labx16switcher_primary_3_red) =turn_off(yan_labx16switcher_primary_3_green)% +!on_timer = 500 | ph_idle@nil %+yan_labx16_switcher_3_off =turn_off(yan_labx16switcher_lamp3) =turn_off(yan_labx16switcher_primary_3_red) =turn_on(yan_labx16switcher_primary_3_green) =play_sound(x16_switch_1) =spawn_object(labx16_zombie_14:x16_zombied_7_walk:0) =spawn_object(labx16_zombie_15:x16_zombied_7_walk:0)% + +[ph_button@reactivate] +anim_blend = true +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher +on_press = ph_button@deactivate %+yan_labx16_switcher_3_off =play_sound(x16_switch_1) =turn_off(yan_labx16switcher_lamp3) =turn_off(yan_labx16switcher_primary_3_red) =turn_on(yan_labx16switcher_primary_3_green)% + +[ph_button@mdeactive] +anim_blend = true +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = ph_button@midle %-yan_labx16_switcher_3_off =turn_off(yan_labx16switcher_lamp3) =turn_off(yan_labx16switcher_primary_3_red) =turn_on(yan_labx16switcher_primary_3_green) =play_sound(system_message_4)% + +[ph_button@midle] +on_info = {+yan_labx16_switcher_primary_try} ph_button@mreboot +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher + +[ph_button@mreboot] +anim_blend = true +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = ph_button@mreactivate %+yan_labx16_switcher_3_off =play_sound(switch_2) =spawn_object(labx16_ecolog_15:x16_zombied_7_walk:0)% + +[ph_button@mreactivate] +on_info = {+yantar_attack_start} ph_button@merror_mode %-yan_labx16_switcher_3_off% +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher + +[ph_button@merror_mode] +anim_blend = true +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = ph_button@mactive %+yan_labx16_switcher_3_off =play_sound(switch_2)% + +[ph_button@mactive] +on_info = {+yantar_attack_start} ph_idle@mfx_1 %=spawn_object(labx16_ecolog_16:x16_zombied_7_walk:0) =spawn_object(labx16_ecolog_17:x16_zombied_7_walk:0) =turn_on(yan_labx16switcher_lamp3) =turn_on(yan_labx16switcher_primary_3_red) =turn_off(yan_labx16switcher_primary_3_green)% +anim_blend = true +anim = lab_primary_switcher_idle + +[ph_idle@mfx_1] +on_info = {-yan_kill_brain_done} ph_idle@nil +on_timer = 9000 | ph_idle@mfx_2 %=yan_gluk% +[ph_idle@mfx_2] +on_info = {-yan_kill_brain_done} ph_idle@nil +on_timer = 9000 | ph_idle@mfx_3 %=yan_gluk% +[ph_idle@mfx_3] +on_info = {-yan_kill_brain_done} ph_idle@nil +on_timer = 9000 | ph_idle@mfx_4 %=yan_gluk% +[ph_idle@mfx_4] +on_info = {-yan_kill_brain_done} ph_idle@nil +on_timer = 9000 | ph_idle@mfx_5 %=yan_gluk% +[ph_idle@mfx_5] +on_info = {-yan_kill_brain_done} ph_idle@nil +on_timer = 9000 | ph_idle@mfx_6 %=yan_gluk% +[ph_idle@mfx_6] +on_info = {-yan_kill_brain_done} ph_idle@nil +on_timer = 9000 | ph_idle@mfx_7 %=yan_gluk% +[ph_idle@mfx_7] +on_info = {-yan_kill_brain_done} ph_idle@nil +on_timer = 9000 | ph_idle@mfx_8 %=yan_gluk% +[ph_idle@mfx_8] +on_info = {-yan_kill_brain_done} ph_idle@nil +on_timer = 9000 | ph_idle@mfx_9 %=yan_gluk% +[ph_idle@mfx_9] +on_info = {-yan_kill_brain_done} ph_idle@nil +on_timer = 9000 | ph_idle@mfx_10 %=yan_gluk% +[ph_idle@mfx_10] +on_info = {-yan_kill_brain_done} ph_idle@nil +on_timer = 9000 | ph_idle@mfx_11 %=yan_gluk% +[ph_idle@mfx_11] +on_info = {-yan_kill_brain_done} ph_idle@nil +on_timer = 9000 | ph_idle@mfx_12 %=yan_gluk% +[ph_idle@mfx_12] +on_info = {-yan_kill_brain_done} ph_idle@nil +on_timer = 9000 | ph_idle@mfx_13 %=yan_gluk% + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher_primary_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher_primary_redone.ltx new file mode 100644 index 00000000..d3fc0850 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_labx16_switcher_primary_redone.ltx @@ -0,0 +1,130 @@ +![logic] +active = ph_button@init + +![ph_button@init] +!on_info = {+yan_labx16_switcher_primary_off} ph_idle@nil +anim = lab_primary_switcher_idle +on_timer = 1 | ph_button@active %=turn_on(yan_labx16switcher_primary_1_green) =turn_on(yan_labx16switcher_primary_2_green) =turn_on(yan_labx16switcher_primary_3_green)% + +![ph_button@active] +!on_info = {+yan_labx16_switcher_primary_off} ph_idle@nil +on_info2 = {=actor_community(actor_monolith)} ph_button@mdeactive, {=actor_community(actor_greh)} ph_button@mdeactive +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher +on_press = {+yan_labx16_switcher_1_off +yan_labx16_switcher_2_off +yan_labx16_switcher_3_off} ph_idle@check %+yan_labx16_switcher_primary_try% + +[ph_idle@check] +on_info = {+yan_labx16_switcher_primary_try} ph_button@surge %=play_sound(system_message_1) =turn_off(yan_labx16switcher_primary_1_green) =turn_off(yan_labx16switcher_primary_2_green) =turn_off(yan_labx16switcher_primary_3_green)% + +[ph_button@surge] +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher +on_press = {+yan_labx16_switcher_1_off +yan_labx16_switcher_2_off +yan_labx16_switcher_3_off} ph_idle@idle %+yan_labx16_switcher_primary_off =play_sound(x16_switch_1)% + +[ph_idle@idle] +on_info = ph_button@deactivate %+yantar_attack_start +yan_kill_brain_done +yan_x16_complete_end =create_squad(zombied_x162_st_burer_squad:x162_st_burer) =spawn_object(labx16_zombie_16:x16_zombied_7_walk:0) =spawn_object(labx16_zombie_17:x16_zombied_7_walk:0) =spawn_object(labx16_zombie_11:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_12:x16_zombied_4_walk:0) =spawn_object(labx16_zombie_13:x16_zombied_5_walk:0) =spawn_object(labx16_zombie_18:x16_zombied_4_walk:0) =spawn_object(labx16_ecolog_1:x16_zombied_master_1_walk:0) =spawn_object(labx16_ecolog_2:x16_zombied_master_2_walk:0) =spawn_object(labx16_snork_7:x16_zombied_7_walk:0) =spawn_object(labx16_snork_8:x16_zombied_7_walk:0) =spawn_object(labx16_killer_dead:x16_ghost_deadway)% ;=play_sound(x16_brain_death_d) + +![ph_button@deactivate] +on_info = {=actor_community(actor_monolith)} ph_button@mdeactive, {=actor_community(actor_greh)} ph_button@mdeactive +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = {-yan_labx16_switcher_1_off -yan_labx16_switcher_2_off -yan_labx16_switcher_3_off} ph_idle@on %-yan_labx16_switcher_primary_off =play_sound(switch_2)% +!on_timer = 500 | ph_idle@nil %+yan_labx16_switcher_primary_off +yantar_attack_start =turn_off(yan_labx16switcher_primary_1_green) =turn_off(yan_labx16switcher_primary_2_green) =turn_off(yan_labx16switcher_primary_3_green) =play_sound(switch_2) =spawn_object(labx16_zombie_16:x16_zombied_7_walk:0) =spawn_object(labx16_zombie_17:x16_zombied_7_walk:0)% ;=play_sound(x16_brain_death) + +[ph_idle@on] +on_info = {-yan_labx16_switcher_primary_off} ph_button@reactivate %-yan_kill_brain_done =turn_on(yan_labx16switcher_primary_1_green) =turn_on(yan_labx16switcher_primary_2_green) =turn_on(yan_labx16switcher_primary_3_green) =yan_gluk% ;=play_sound_looped(x16_brain_run) + +[ph_button@reactivate] +anim_blend = true +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher +on_press = {+yan_labx16_switcher_1_off +yan_labx16_switcher_2_off +yan_labx16_switcher_3_off} ph_idle@check_2 %+yan_labx16_switcher_primary_try% + +[ph_idle@check_2] +on_info = {+yan_labx16_switcher_primary_try} ph_button@surge_2 %=play_sound(system_message_1)% + +[ph_button@surge_2] +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher +on_press = {+yan_labx16_switcher_1_off +yan_labx16_switcher_2_off +yan_labx16_switcher_3_off} ph_idle@off %+yan_labx16_switcher_primary_off =turn_off(yan_labx16switcher_primary_1_green) =turn_off(yan_labx16switcher_primary_2_green) =turn_off(yan_labx16switcher_primary_3_green) =play_sound(x16_switch_1)% + +[ph_idle@off] +on_info = {+yan_labx16_switcher_primary_off} ph_button@deactivate %+yan_labx16_switcher_primary_try +yan_kill_brain_done =yan_gluk% ;=play_sound(x16_brain_stop) + +[ph_button@mdeactive] +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = {-yan_labx16_switcher_1_off -yan_labx16_switcher_2_off -yan_labx16_switcher_3_off} ph_idle@mcheck %=play_sound(system_message_1) +yan_labx16_switcher_primary_try% + +[ph_idle@mcheck] +on_info = {+yan_labx16_switcher_primary_try} ph_button@midle %=play_sound_looped(klaxon_1)% + +[ph_button@midle] +on_info = {+yan_labx16_switcher_1_off +yan_labx16_switcher_2_off +yan_labx16_switcher_3_off} ph_button@mreactivate +anim_blend = true +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = {-yan_labx16_switcher_1_off -yan_labx16_switcher_2_off -yan_labx16_switcher_3_off} ph_idle@mreboot %=stop_sound_looped% + +[ph_idle@mreboot] +on_info = {+yan_labx16_switcher_primary_try} ph_button@mreactivate %=play_sound_looped(message_1) =play_sound_looped(klaxon_1)% + +[ph_button@mreactivate] +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = {+yan_labx16_switcher_1_off +yan_labx16_switcher_2_off +yan_labx16_switcher_3_off} ph_button@switcher_1 %-yan_labx16_switcher_primary_try =turn_on(yan_labx16switcher_primary_1_green) =turn_on(yan_labx16switcher_primary_2_green) =turn_on(yan_labx16switcher_primary_3_green)% + +[ph_button@switcher_1] +on_info = {-yan_labx16_switcher_primary_try} ph_idle@msound_idle_1 %=play_sound(switch_2) =stop_sound_looped% +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher + +[ph_idle@msound_idle_1] +on_timer = 3500 | ph_idle@msound_1 + +[ph_idle@msound_1] +on_info = %=play_sound(x16_begin)% +on_timer = 10000 | ph_idle@msound_2 + +[ph_idle@msound_2] +on_info = %=play_sound_looped(klaxon_1)% +on_timer = 3600 | ph_idle@msound_idle_2 + +[ph_idle@msound_idle_2] +on_timer = 1000 | ph_idle@msound_3 %=stop_sound_looped =play_sound_looped(klaxon_2)% + +[ph_idle@msound_3] +on_info = %=play_sound(system_message_2)% +on_timer = 8000 | ph_idle@msound_4 %=yan_gluk% + +[ph_idle@msound_4] +on_info = %=stop_sound_looped =play_sound_looped(klaxon_3)% +on_timer = 50 | ph_idle@mrun_for_it %=turn_off (yan_labx16switcher_primary_1_green) =turn_off(yan_labx16switcher_primary_2_green) =turn_off(yan_labx16switcher_primary_3_green)% ;=play_sound(x16_brain_stop) + +[ph_idle@mrun_for_it] +on_timer = 10 | ph_button@merror_mode %=play_sound_looped(message_2) =play_sound_looped(message_3) +mil_attack_start% + +[ph_button@merror_mode] +anim = lab_primary_switcher_off +tooltip = pas_b400_tip_switcher +on_press = {+yan_labx16_switcher_1_off +yan_labx16_switcher_2_off +yan_labx16_switcher_3_off} ph_button@switcher_2 %-yan_labx16_switcher_primary_off =play_sound(x16_begin)% + +[ph_button@switcher_2] +on_info = ph_idle@msound_idle_3 %=play_sound(x16_switch_1)% +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher + +[ph_idle@msound_idle_3] +on_info = ph_idle@msound_idle_4 %=stop_sound_looped =play_sound_looped(klaxon_3)% + +[ph_idle@msound_idle_4] +on_timer = 9000 | ph_idle@msound_end + +[ph_idle@msound_end] +on_timer = 5 | ph_button@mactive %=stop_sound_looped =turn_on(yan_labx16switcher_primary_1_green) =turn_on(yan_labx16switcher_primary_2_green) =turn_on(yan_labx16switcher_primary_3_green)% + +[ph_button@mactive] +on_info = {-yan_labx16_switcher_primary_off} ph_idle@nil %-yan_kill_brain_done +yan_x16_complete_end% ;=play_sound_looped(x16_brain_run) +anim_blend = true +anim = lab_primary_switcher_idle +tooltip = pas_b400_tip_switcher diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_zasada_restrictor_0000_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_zasada_restrictor_0000_redone.ltx new file mode 100644 index 00000000..80d7af17 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_zasada_restrictor_0000_redone.ltx @@ -0,0 +1,15 @@ +![logic] +active = ;sr_idle +active = sr_idle@check + +[sr_idle@check] +on_info = {=actor_community(actor_monolith)} msr_idle, {=actor_community(actor_greh)} msr_idle, sr_idle + +![sr_idle] +on_actor_inside = {-x16_zasada_3} sr_idle@nil %+x16_zasada_3 =spawn_object(labx16_zombie_3:yan_zombied_walk_zasada_1:0) =spawn_object(labx16_zombie_4:yan_zombied_walk_zasada_1:0) =spawn_object(labx16_snork_6:yan_zombied_walk_zasada_1:0)% + +[msr_idle] +on_actor_inside = {-x16_zasada_3} sr_idle@nil %+x16_zasada_3 =spawn_object(labx16_ecolog_3:yan_zombied_walk_zasada_1:0) =spawn_object(labx16_ecolog_4:yan_zombied_walk_zasada_1:0)% + +![sr_idle@nil] + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_zasada_restrictor_0001_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_zasada_restrictor_0001_redone.ltx new file mode 100644 index 00000000..f13accea --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_zasada_restrictor_0001_redone.ltx @@ -0,0 +1,16 @@ +![logic] +active = ;sr_idle +active = sr_idle@check + +[sr_idle@check] +on_info = {=actor_community(actor_monolith)} sr_idle@mspawn, {=actor_community(actor_greh)} sr_idle@mspawn, sr_idle + +![sr_idle] +on_actor_inside = {-x16_zasada_4} sr_idle@nil %+x16_zasada_4 =spawn_object(labx16_snork_5:yan_zombies_attack_camp_2:0) =spawn_object(labx16_snork_6:yan_zombies_attack_camp_2:0) =spawn_object(labx16_snork_3:yan_zombies_attack_camp_2:0) =spawn_object(labx16_snork_3:yan_zombies_attack_camp_2:0)% ;=play_sound(red_bloodsucker_growl) + +[sr_idle@mspawn] +on_actor_inside = {-x16_zasada_4} sr_idle@nil %+x16_zasada_4 =spawn_object(labx16_ecolog_5a:yan_zombies_attack_camp_2:0) =spawn_object(labx16_ecolog_6a:yan_zombies_attack_camp_2:0)% ;=play_sound(red_bloodsucker_growl) + +![sr_idle@nil] +on_game_timer = 8000 | sr_idle + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_zasada_restrictor_2_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_zasada_restrictor_2_redone.ltx new file mode 100644 index 00000000..57602cd3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_zasada_restrictor_2_redone.ltx @@ -0,0 +1,16 @@ +![logic] +active = ;sr_idle +active = sr_idle@check + +[sr_idle@check] +on_info = {=actor_community(actor_monolith)} sr_idle@mspawn, {=actor_community(actor_greh)} sr_idle@mspawn, sr_idle@spawn + +[sr_idle@spawn] +on_actor_inside = {-x16_zasada_2} sr_idle@nil %+x16_zasada_2 =spawn_object(labx16_snork_1:x16_snork_home_8:0) =create_squad(zombied_x162_st_gigant_squad:x162_st_gigant)% + +[sr_idle@mspawn] +on_actor_inside = {-x16_zasada_2} sr_idle@nil %+x16_zasada_2 =spawn_object(labx16_ecolog_1a:x16_snork_home_8:0) =create_squad(ecolog_x162_st_gigant_squad:x162_st_gigant)% + +![sr_idle@nil] +on_game_timer = 8000 | sr_idle + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_zasada_restrictor_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_zasada_restrictor_redone.ltx new file mode 100644 index 00000000..8de7bafd --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yan_zasada_restrictor_redone.ltx @@ -0,0 +1,15 @@ +![logic] +active = ;sr_idle +active = sr_idle@check + +[sr_idle@check] +on_info = {=actor_community(actor_monolith)} sr_idle@mspawn, {=actor_community(actor_greh)} sr_idle@mspawn, sr_idle + +![sr_idle] +on_actor_inside = {-yan_test_info} sr_idle@nil %+yan_test_info =play_sound(x16_grate_fall) =spawn_object(labx16_snork_6:yan_zombies_attack_camp_1:0) =spawn_object(labx16_snork_3:yan_zombies_attack_camp_1:0) =spawn_object(labx16_snork_3:yan_zombies_attack_camp_1:0) =spawn_object(labx16_snork_5:yan_zombies_attack_camp_1:0) =spawn_object(labx16_snork_6:yan_zombies_attack_camp_1:0) =spawn_object(labx16_snork_3:brain_snork_jump_3:0)% + +[sr_idle@mspawn] +on_actor_inside = {-yan_test_info} sr_idle@nil %+yan_test_info =play_sound(x16_grate_fall) =spawn_object(labx16_ecolog_6:yan_zombied_walk_zasada_1:0) =spawn_object(labx16_ecolog_3a:yan_zombies_attack_camp_1:0) =spawn_object(labx16_ecolog_4a:yan_zombied_walk_zasada_1:0)% ;(labx16_ecolog_4a:brain_snork_jump_3:0) + +![sr_idle@nil] +on_game_timer = 8000 | sr_idle diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yantar_psi_radiotion_75_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yantar_psi_radiotion_75_redone.ltx new file mode 100644 index 00000000..a117872b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/mod_yantar_psi_radiotion_75_redone.ltx @@ -0,0 +1,28 @@ +![sr_psy_antenna@no_helmet] +eff_intensity = 100 +hit_intensity = 100 +postprocess = psy_antenna_indoor.ppe +on_info = {=actor_has_item(good_psy_helmet)} sr_psy_antenna@good_psy_helmet, {=actor_has_item(bad_psy_helmet)} sr_psy_antenna@bad_psy_helmet +on_info2 = ;{=actor_community(actor_monolith)} sr_idle@nil, {+yantar_attack_start} sr_idle@nil +on_info3 = {=actor_community(actor_monolith)} sr_idle@mnil, {=actor_community(actor_greh)} sr_idle@mnil, {+yan_labx16_switcher_primary_off} sr_idle@nil + +![sr_psy_antenna@bad_psy_helmet] +eff_intensity = 75 +hit_intensity = 0.2 +postprocess = psy_antenna_indoor.ppe +on_info = {=actor_has_item(good_psy_helmet)} sr_psy_antenna@good_psy_helmet, {=actor_has_item(bad_psy_helmet)}, sr_psy_antenna@no_helmet +on_info2 = ;{=actor_community(actor_monolith)} sr_idle@nil, {+yantar_attack_start} sr_idle@nil +on_info3 = {=actor_community(actor_monolith)} sr_idle@mnil, {=actor_community(actor_greh)} sr_idle@mnil, {+yan_labx16_switcher_primary_off} sr_idle@nil + +![sr_psy_antenna@good_psy_helmet] +eff_intensity = 75 +hit_intensity = 0 +postprocess = psy_antenna_indoor.ppe +on_info = {=actor_has_item(good_psy_helmet)}, {=actor_has_item(bad_psy_helmet)} sr_psy_antenna@bad_psy_helmet, sr_psy_antenna@no_helmet +on_info2 = ;{=actor_community(actor_monolith)} sr_idle@nil, {+yantar_attack_start} sr_idle@nil +on_info3 = {=actor_community(actor_monolith)} sr_idle@mnil, {=actor_community(actor_greh)} sr_idle@mnil, {+yan_labx16_switcher_primary_off} sr_idle@nil + +![sr_idle@nil] +on_info = {-yan_labx16_switcher_primary_off} sr_psy_antenna@good_psy_helmet + +[sr_idle@mnil] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/smart/x162_st_burer.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/smart/x162_st_burer.ltx new file mode 100644 index 00000000..1ad04f2f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/smart/x162_st_burer.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 1 +max_population = 1 +respawn_params = respawn@x162_st_burer +respawn_only_smart = false +respawn_idle = 345600 +respawn_radius = 500 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@x162_st_burer] ;-- Type: +spawn_x16_worst +spawn_x16_isg + + +[spawn_x16_worst] ;-- Worst mutants - Rates of groups:( 2 karlik + 3 burer + 3 controller ) +spawn_squads = simulation_karlik, simulation_karlik, simulation_burer, simulation_burer_1_2_day, simulation_bur_5rat_day, simulation_controller, simulation_contr_5sn, simulation_contr_4tush_3sn +spawn_num = {=actor_community(actor_monolith)} 0,{=actor_community(actor_greh)} 0,{+yan_kill_brain_done} 1, 0 + +[spawn_x16_isg] +spawn_squads = isg_x162_st_burer_squad +spawn_num = {=actor_community(actor_monolith)} 0,{=actor_community(actor_greh)} 0,{+yan_kill_brain_done +isg_entered_the_zone !squad_name_exist(isg_x162_st_burer_squad) ~10} 1, 0 + + +[on_changing_level] +on_info = {+yan_controller_respawn_01} %=destroy_object(labx16_killer_dead)% + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/smart/x162_st_gigant.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/smart/x162_st_gigant.ltx new file mode 100644 index 00000000..0288021c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/smart/x162_st_gigant.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 2 +max_population = 2 +respawn_params = respawn@x162_st_gigant +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 500 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@x162_st_gigant] ;-- Type: +spawn_x16_normal +spawn_x16_ecolog + + +[spawn_x16_normal] ;-- Hard mutants - Rates of groups:( 1 tushkano + 1 snork + 1 fracture + 1 zombie ) +spawn_squads = simulation_tushkano, simulation_snork, simulation_fracture, simulation_zombie_blind +spawn_num = {=actor_community(actor_monolith)} 0,{=actor_community(actor_greh)} 0,{+yan_kill_brain_done} 1, 0 + +[spawn_x16_ecolog] +spawn_squads = ecolog_x162_st_gigant_squad +spawn_num = {+yan_kill_brain_done !squad_name_exist(ecolog_x162_st_gigant_squad)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/smart/x162_st_poltergeist.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/smart/x162_st_poltergeist.ltx new file mode 100644 index 00000000..ff6fdc55 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/smart/x162_st_poltergeist.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 4 +max_population = 2 +respawn_params = respawn@x162_st_poltergeist +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 500 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@x162_st_poltergeist] ;-- Type: +spawn_x16_hard + + +[spawn_x16_hard] ;-- Hard mutants - Rates of groups:( 2 bloodsucker + 2 psysucker + 2 zombie ) +spawn_squads = simulation_bloodsucker, simulation_bloodsucker_1_2, simulation_psysucker, simulation_psysucker_1_2, simulation_zombie_blind_3zomb, simulation_zombie_blind_3zomb_civ +spawn_num = {=actor_community(actor_monolith)} 0,{=actor_community(actor_greh)} 0,{+yan_kill_brain_done} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/smart/x162_st_snork.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/smart/x162_st_snork.ltx new file mode 100644 index 00000000..f4559971 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/smart/x162_st_snork.ltx @@ -0,0 +1,29 @@ +[smart_terrain] +squad_id = 3 +max_population = 1 +respawn_params = respawn@x162_st_snork +respawn_only_smart = false ;true +respawn_idle = 43200 +respawn_radius = 500 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@x162_st_snork] ;-- Type: +spawn_x16_normal + + +[spawn_x16_normal] ;-- Normal mutants - Rates of groups:( 3 snork + 2 tushkano ) +spawn_squads = simulation_snork, simulation_snork_2_3, simulation_snork_2_5, simulation_tushkano, simulation_tushkano_7_10 +spawn_num = {=actor_community(actor_monolith)} 0,{=actor_community(actor_greh)} 0,{+yan_kill_brain_done} 1, 0 + + +[on_changing_level] +on_info = %=script(redone_remove_labx16_object:clean_mess)% + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/x16_main_generator_sound.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/x16_main_generator_sound.ltx new file mode 100644 index 00000000..08b94251 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx16/x16_main_generator_sound.ltx @@ -0,0 +1,26 @@ +[logic] +active = sr_idle@check + +[sr_idle@check] +on_info = {-yan_kill_brain_done} sr_idle@on +on_info2 = {+yan_kill_brain_done} sr_idle@off + +[sr_idle@start] +on_info = sr_idle@on %=stop_sound_looped% +;on_info = %=play_sound(x16_begin)% +;on_signal = sound_end | sr_idle@on + +[sr_idle@on] +on_info = %=play_sound_looped(x16_brain_run)% +on_info_2 = {+yan_kill_brain_done} sr_idle@stop + +[sr_idle@stop] +on_info = sr_idle@off %=stop_sound_looped% +;on_info = %=play_sound(x16_brain_stop)% +;on_signal = sound_end | sr_idle@off + +[sr_idle@off] +on_info = %=play_sound_looped(x16_brain_death_d)% +on_info_2 = {-yan_kill_brain_done} sr_idle@start + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/;mod_dar_military_scout_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/;mod_dar_military_scout_logic_redone.ltx new file mode 100644 index 00000000..1f0fff51 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/;mod_dar_military_scout_logic_redone.ltx @@ -0,0 +1,24 @@ +![camper@dar_military_scout_hide]:walker@generic +!def_state_moving = assault +!def_state_campering = hide_na +!radius = 10 +combat_ignore_cond = {=check_enemy_name(actor)} false, true + +![camper@dar_military_scout_camper1]:walker@generic +!def_state_moving = assault +!def_state_campering = hide_na +!radius = 10 +combat_ignore_cond = {=check_enemy_name(actor)} false, true + +![camper@dar_military_scout_camper2]:walker@generic +!def_state_moving = assault +!def_state_campering = hide_na +!radius = 10 +combat_ignore_cond = {=check_enemy_name(actor)} false, true + +![camper@dar_military_scout_camper3]:walker@generic +!def_state_moving = assault +!def_state_campering = hide_na +!radius = 10 +combat_ignore_cond = {=check_enemy_name(actor)} false, true + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/mod_dar_control_poltergeist_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/mod_dar_control_poltergeist_logic_redone.ltx new file mode 100644 index 00000000..03969f05 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/mod_dar_control_poltergeist_logic_redone.ltx @@ -0,0 +1,2 @@ +![mob_death@com_center_poltergeist] +on_info =%+dar_door3_free +dar_control_poltergeist_killed +dar_lx18_complete_end% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/mod_dar_door3_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/mod_dar_door3_redone.ltx new file mode 100644 index 00000000..232a1c1c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/mod_dar_door3_redone.ltx @@ -0,0 +1,3 @@ +![ph_door@open] +on_info = {+dar_door3_closed} ph_door@holding, {+dar_door3_free} ph_door@open_free + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/mod_x18_poltergeist_door_closer_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/mod_x18_poltergeist_door_closer_redone.ltx new file mode 100644 index 00000000..d6f2af82 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/mod_x18_poltergeist_door_closer_redone.ltx @@ -0,0 +1,9 @@ +![sr_idle@ready] +on_actor_in_zone = dar_close_door_zone | sr_idle@wait_assault %+dar_door3_closed =create_squad(dar_control_poltergeist_squad:dar_control_poltergeist)% + +![sr_idle@wait_assault] +on_info = {+dar_door3_free} sr_idle@wait_dream %=create_squad(dar_military_scout_squad:dar_military_scout)% ;=x18_gluk =run_cam_effector(radar_stop:2506:false) =create_squad(dar_military_spetsnaz_squad:dar_military_scout) ;-- not in use yet + + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/mod_x18_spawn_corpses_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/mod_x18_spawn_corpses_redone.ltx new file mode 100644 index 00000000..eedceb37 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/mod_x18_spawn_corpses_redone.ltx @@ -0,0 +1,2 @@ +![sr_idle@1] +on_info = sr_idle@2 %=spawn_corpse(dar_corpse_3:dar_corpse_1_deadway) =spawn_corpse(dar_corpse_4:dar_corpse_2_deadway) =spawn_corpse(dar_corpse_kalugin:dar_corpse_kalugin_deadway) =spawn_corpse(dar_corpse_ecolog_guard:dar_corpse_ecolog_guard_deadway)% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_angar.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_angar.ltx new file mode 100644 index 00000000..7d87bd03 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_angar.ltx @@ -0,0 +1,29 @@ +[smart_terrain] +squad_id = 1 +max_population = 2 +respawn_params = respawn@dar_angar +respawn_only_smart = false +respawn_idle = 345600 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@dar_angar] ;-- Type: +spawn_lx18_worst + + +[spawn_lx18_worst] ;-- Worst mutants - Rates of groups: ( 1 bloodsucker + 1 psysucker + 1 burer; 1 gigant ) +spawn_squads = simulation_bloodsucker_1_2, simulation_psysucker_1_2, simulation_bur_5rat_day, ;dar_angar_gigant_squad +spawn_num = {+dar_control_poltergeist_killed} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +angar_gigant = labx18\dar_angar_gigant.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_control_poltergeist.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_control_poltergeist.ltx new file mode 100644 index 00000000..f0e6c658 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_control_poltergeist.ltx @@ -0,0 +1,29 @@ +[smart_terrain] +squad_id = 2 +max_population = 2 +respawn_params = respawn@dar_control_poltergeist +respawn_only_smart = false +respawn_idle = 345600 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@dar_control_poltergeist] +spawn_lx18_worst + + +[spawn_lx18_worst] ;-- Worst mutants - Rates of groups: ( 1 bloodsucker + 1 psysucker + 1 burer + 2 controller ) +spawn_squads = simulation_bloodsucker_1_2, simulation_psysucker_1_2, simulation_bur_5rat_day, simulation_contr_5rat_3tush, simulation_contr_5sn +spawn_num = {+dar_control_poltergeist_killed} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +com_center_poltergeist = labx18\dar_control_poltergeist_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_military_scout.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_military_scout.ltx new file mode 100644 index 00000000..4580e711 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_military_scout.ltx @@ -0,0 +1,26 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 3 +;max_population = 0 +;respawn_params = respawn@dar_military_scout +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@dar_military_scout] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +dar_military_scout_hide = labx18\dar_military_scout_logic.ltx +dar_military_scout_camper1 = labx18\dar_military_scout_logic.ltx +dar_military_scout_camper2 = labx18\dar_military_scout_logic.ltx +dar_military_scout_camper3 = labx18\dar_military_scout_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_poltergeist_ring.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_poltergeist_ring.ltx new file mode 100644 index 00000000..56c0242b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_poltergeist_ring.ltx @@ -0,0 +1,32 @@ +[smart_terrain] +squad_id = 4 +max_population = 2 +respawn_params = respawn@dar_poltergeist_ring +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +spawn_point = dar_poltergeist_ring_way + +[respawn@dar_poltergeist_ring] ;-- Type: +spawn_lx18_hard + + +[spawn_lx18_hard] ;-- Hard\normal mutants - Rates of groups: ( 2 polter + 2 ~bloodsucker ~psysucker ~karlik ~controller ~zombie ~burer ) +spawn_squads = dar_poltergeist_ring_squad_1, dar_poltergeist_ring_squad_2, dar_monster_ring_squad_1, dar_monster_ring_squad_2 +spawn_num = {+dar_control_poltergeist_killed} 2, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +dar_poltergeist_ring_base = labx18\dar_poltergeist_ring_logic.ltx +dar_poltergeist_ring_1_1 = labx18\dar_poltergeist_ring_logic.ltx +dar_poltergeist_ring_1_2 = labx18\dar_poltergeist_ring_logic.ltx +dar_poltergeist_ring_end = labx18\dar_poltergeist_ring_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_poltergeist_tele.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_poltergeist_tele.ltx new file mode 100644 index 00000000..1d2cdc2c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_poltergeist_tele.ltx @@ -0,0 +1,29 @@ +[smart_terrain] +squad_id = 5 +max_population = 1 +respawn_params = respawn@dar_poltergeist_tele +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +spawn_point = dar_poltergeist_tele + +[respawn@dar_poltergeist_tele] ;-- Type: +spawn_lx18_rare + + +[spawn_lx18_rare] ;-- Hard\normal mutants - Rates of groups: ( 3 polter ) +spawn_squads = simulation_poltergeist_black, dar_poltergeist_tele_squad +spawn_num = {+dar_control_poltergeist_killed} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +dar_poltergeist_tele_logic = labx18\dar_poltergeist_tele_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_poltergeist_tele_round.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_poltergeist_tele_round.ltx new file mode 100644 index 00000000..2a2719af --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_poltergeist_tele_round.ltx @@ -0,0 +1,29 @@ +[smart_terrain] +squad_id = 6 +max_population = 1 +respawn_params = respawn@dar_poltergeist_tele_round +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +spawn_point = dar_poltergeist_tele_round_home + +[respawn@dar_poltergeist_tele_round] ;-- Type: +spawn_lx18_rare + + +[spawn_lx18_rare] ;-- Hard\normal mutants - Rates of groups: ( 2 polter ) +spawn_squads = simulation_poltergeist_black, dar_poltergeist_tele_round_squad +spawn_num = {+dar_control_poltergeist_killed} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +dar_poltergeist_tele_round_logic = labx18\dar_poltergeist_tele_round_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_smart_snork.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_smart_snork.ltx new file mode 100644 index 00000000..b17513a3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/labx18/smart/dar_smart_snork.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 7 +max_population = 2 +respawn_params = respawn@dar_smart_snork +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@dar_smart_snork] ;-- Type: +spawn_lx18_normal + + +[spawn_lx18_normal] ;-- Weak\Normal mutants - Rates of groups: ( 2 tushkano + 3 snork + 1 fracture ) +spawn_squads = simulation_tushkano, simulation_tushkano_7_10, simulation_snork, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture +spawn_num = {+dar_control_poltergeist_killed} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_1.ltx new file mode 100644 index 00000000..7a0b2926 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_1.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(mar_smart_terrain_3_7) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(mar_smart_terrain_3_7) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(mar_smart_terrain_3_10) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mar_smart_terrain_3_10) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(mar_smart_terrain_4_7) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(mar_smart_terrain_4_7) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(mar_smart_terrain_6_7) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(mar_smart_terrain_6_7) =is_dark_night} ph_idle@spawn_dark_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:mar_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:mar_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:mar_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_3_7)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:mar_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:mar_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_3_7)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_3_7)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_cat_night:mar_smart_terrain_3_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:mar_smart_terrain_3_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:mar_smart_terrain_3_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_3_10)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:mar_smart_terrain_3_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_3_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_karlik_night:mar_smart_terrain_3_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_3_10)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_psy_dog_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:mar_smart_terrain_4_7)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_chimera_night:mar_smart_terrain_4_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:mar_smart_terrain_4_7)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_psy_dog_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_3_5_night:mar_smart_terrain_6_7)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_psy_dog_night:mar_smart_terrain_6_7)% ph_idle@reset_4, {~10} %=create_squad(simulation_gigant_night:mar_smart_terrain_6_7)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_2.ltx new file mode 100644 index 00000000..fca82528 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_2.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(mar_smart_terrain_6_8) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(mar_smart_terrain_6_8) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(mar_smart_terrain_6_10) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mar_smart_terrain_6_10) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(mar_smart_terrain_8_8) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(mar_smart_terrain_8_8) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(mar_smart_terrain_8_9) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(mar_smart_terrain_8_9) =is_dark_night} ph_idle@spawn_dark_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_6_8)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:mar_smart_terrain_6_8)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:mar_smart_terrain_6_8)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:mar_smart_terrain_6_8)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_6_8)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_6_8)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:mar_smart_terrain_6_8)% ph_idle@reset, {~10} %=create_squad(simulation_psy_dog_night:mar_smart_terrain_6_8)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_tushkano_night:mar_smart_terrain_6_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:mar_smart_terrain_6_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:mar_smart_terrain_6_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_6_10)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_6_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_6_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:mar_smart_terrain_6_10)% ph_idle@reset_2, {~10} %=create_squad(simulation_psy_dog_night:mar_smart_terrain_6_10)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_snork_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:mar_smart_terrain_8_8)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psy_dog_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_8_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_burer_night:mar_smart_terrain_8_8)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_snork_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~10} %=create_squad(simulation_dog_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~10} %=create_squad(simulation_cat_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~10} %=create_squad(simulation_boar_night:mar_smart_terrain_8_9)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_lurker_blue_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~10} %=create_squad(simulation_contr_5rat_3tush_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_8_9)% ph_idle@reset_4, {~10} %=create_squad(simulation_chimera_night:mar_smart_terrain_8_9)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_3.ltx new file mode 100644 index 00000000..61a98f3b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mar_endless_night_spawn_logic_3.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(mar_smart_terrain_7_7) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(mar_smart_terrain_7_7) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(mar_smart_terrain_8_4) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mar_smart_terrain_8_4) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(mar_smart_terrain_10_7) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(mar_smart_terrain_10_7) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(mar_smart_terrain_10_10) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(mar_smart_terrain_10_10) =is_dark_night} ph_idle@spawn_dark_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_7_7)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:mar_smart_terrain_7_7)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:mar_smart_terrain_7_7)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:mar_smart_terrain_7_7)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_7_7)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:mar_smart_terrain_7_7)% ph_idle@reset, {~10} %=create_squad(simulation_chimera_night:mar_smart_terrain_7_7)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_7_7)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:mar_smart_terrain_8_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:mar_smart_terrain_8_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:mar_smart_terrain_8_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_8_4)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:mar_smart_terrain_8_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:mar_smart_terrain_8_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_8_4)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_8_4)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_tushkano_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_dog_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:mar_smart_terrain_10_7)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_boar_night:mar_smart_terrain_10_7)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:mar_smart_terrain_10_7)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_fracture_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_lurker_blue_night:mar_smart_terrain_10_10)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_pseudodog_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_fracture_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:mar_smart_terrain_10_10)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_night:mar_smart_terrain_10_10)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_crow_spawner_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_crow_spawner_redone.ltx new file mode 100644 index 00000000..b0f72d02 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_crow_spawner_redone.ltx @@ -0,0 +1,19 @@ +![logic] +!active = sr_crow_spawner +active = sr_idle@check_story + +[sr_idle@check_story] +on_info = {-story_mode_disabled} sr_idle@check_actor, {+story_mode_disabled -yan_x16_complete_end} sr_idle@check_actor %+yan_kill_brain_done% + +[sr_idle@check_actor] +on_info = {=actor_community(actor_monolith) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, {=actor_community(actor_greh) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, sr_idle@check_helmet + +[sr_idle@check_helmet] +on_info = {=actor_has_item(good_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, {=actor_has_item(bad_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, sr_idle@check_spawner + +[sr_idle@check_spawner] +on_info = sr_crow_spawner + +![sr_crow_spawner] +max_crows_on_level = 5 +spawn_path = mar_crow_spawn_1, mar_crow_spawn_2, mar_crow_spawn_3, mar_crow_spawn_4, mar_crow_spawn_5 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_11_3_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_11_3_smart_logic_redone.ltx new file mode 100644 index 00000000..eba96c33 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_11_3_smart_logic_redone.ltx @@ -0,0 +1,3 @@ +![logic@mar_smart_terrain_11_3_collector_work] +active = walker@mar_smart_terrain_11_3_collector_work +suitable = {=npc_community(stalker)} true, {=npc_community(csky)} true, {=npc_community(ecolog)} true, {=npc_community(army)} true diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_12_2_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_12_2_smart_logic_redone.ltx new file mode 100644 index 00000000..30e2714a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_12_2_smart_logic_redone.ltx @@ -0,0 +1,48 @@ +![logic@mar_smart_terrain_12_2_collector_work] +active = walker@mar_smart_terrain_12_2_collector_work +suitable = {=npc_community(stalker)} true, {=npc_community(csky)} true, {=npc_community(ecolog)} true, {=npc_community(army)} true + +[logic@mar_smart_terrain_12_2_camp_work_6] +active = beh@mar_smart_terrain_12_2_camp_work_6 +suitable = {!surge_started} true +prior = 45 + +[logic@mar_smart_terrain_12_2_camp_work_7] +active = beh@mar_smart_terrain_12_2_camp_work_7 +suitable = {!surge_started} true +prior = 45 + +[logic@mar_smart_terrain_12_2_camp_work_8] +active = beh@mar_smart_terrain_12_2_camp_work_8 +suitable = {!surge_started} true +prior = 45 + +[beh@general_work] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +turn_on_campfire = true +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = false + +[beh@mar_smart_terrain_12_2_camp_work_6]:beh@general_work +pt1 = 88860000, sit_ass | pos: 582.88635253906, 3.0272789001465, 410.47271728516 look: 581.25933837891, 3.1870319843292, 411.89233398438 +path_end = loop + +[beh@mar_smart_terrain_12_2_camp_work_7]:beh@general_work +pt1 = 88860000, sit_ass | pos: 580.630859375, 2.9817399978638, 410.10726928711 look: 581.27111816406, 3.1863985061646, 411.93655395508 +path_end = loop + +[beh@mar_smart_terrain_12_2_camp_work_8]:beh@general_work +pt1 = 88860000, sit_ass | pos: 579.32287597656, 2.8790109157562, 412.45388793945 look: 581.46997070312, 3.2193348407745, 412.14294433594 +path_end = loop + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_3_3_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_3_3_smart_logic_redone.ltx new file mode 100644 index 00000000..9a8022c7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_3_3_smart_logic_redone.ltx @@ -0,0 +1,92 @@ +[logic@mar_smart_terrain_3_3_guard_work_1] +active = beh@mar_smart_terrain_3_3_guard_work_1 +suitable = {=target_squad_name(renegade_guard_mar_smart_terrain_3_3)} true ;{!surge_started =npc_community(renegade)} true +prior = 200 + +[logic@mar_smart_terrain_3_3_trader_logic] +suitable = {=check_npc_name(mar_renegade_trader)} true +active = beh@mar_smart_terrain_3_3_trader_work_1 +prior = 200 +can_select_weapon = false +dont_keep_items = true +level_spot = trader +trade = items\trade\trade_renegade.ltx +on_death = death_trader + +[death_trader] +on_info = %+mar_renegade_trader_dead% + +[beh@general_guard] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = {!actor_true_enemy} true, false +meet = meet + +[beh@general_surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {!actor_true_enemy} true, false + +[meet] +close_anim = nil +close_victim = nil +far_anim = nil +far_victim = nil +close_distance = 0 +far_distance = 0 +close_snd_distance = 3 +abuse = false +;use = {=actor_enemy} false, true +allow_break = false +meet_on_talking = false +trade_enable = false + +[beh@mar_smart_terrain_3_3_guard_work_1]:beh@general_guard +pt1 = 88860000, guard | pos: -102.17450714111, 0.28349053859711, 334.62121582031 look: -103.18497467041, 0.29522895812988, 333.81231689453 +path_end = loop +on_info = {=surge_started} beh@mar_smart_terrain_3_3_surge_work_1 + +[beh@mar_smart_terrain_3_3_trader_work_1]:beh@general_guard +pt1 = 88860000, fold_arms | pos: -166.23594665527, 1.2154817581177, 404.42706298828 look: -167.17866516113, 1.201287984848, 403.93496704102 +path_end = loop +on_info = {=is_night} beh@mar_smart_terrain_3_3_trader_sleeper_work_1 +on_info2 = {=surge_started} beh@mar_smart_terrain_3_3_trader_surge_work_1 + +[beh@mar_smart_terrain_3_3_surge_work_1]:beh@general_surge +pt1 = 88860000, guard | pos: -66.679733276367, 0.23225954174995, 304.81878662109 look: -65.98218536377, 0.26270437240601, 304.23452758789 +path_end = loop +on_info = {=surge_complete} beh@mar_smart_terrain_3_3_guard_work_1 + +[beh@mar_smart_terrain_3_3_trader_surge_work_1]:beh@general_guard +pt1 = 100, idle | pos: -181.83827209473, 1.240157365799, 408.89813232422 look: -181.83827209473, 1.240157365799, 408.89813232422 +pt2 = 100, idle | pos: -181.61006164551, 2.5379238128662, 414.4421081543 look: -181.61006164551, 2.5379238128662, 414.4421081543 +pt3 = 88860000, smoking_stand | pos: -179.36306762695, 2.496452331543, 418.27770996094 look: -178.08337402344, 2.3998425006866, 417.59329223633 +;path_end = loop +on_info = {=surge_complete} beh@mar_smart_terrain_3_3_trader_work_1 + +[beh@mar_smart_terrain_3_3_trader_sleeper_work_1]:beh@general_guard +pt1 = 100, idle | pos: -181.83827209473, 1.240157365799, 408.89813232422 look: -181.83827209473, 1.240157365799, 408.89813232422 +pt2 = 100, idle | pos: -181.61006164551, 2.5379238128662, 414.4421081543 look: -181.61006164551, 2.5379238128662, 414.4421081543 +pt3 = 88860000, drunk_sit_ass | pos: -175.93263244629, 2.4545187950134, 420.1438293457 look: -175.91630554199, 2.4256129264832, 419.57049560547 +;path_end = loop +on_info = {!is_night} beh@mar_smart_terrain_3_3_trader_work_1 + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_4_5_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_4_5_smart_logic_redone.ltx new file mode 100644 index 00000000..ba5aa700 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_4_5_smart_logic_redone.ltx @@ -0,0 +1,122 @@ +[logic@mar_smart_terrain_4_5_guard_work_1] +active = beh@mar_smart_terrain_4_5_guard_work_1 +suitable = {=target_squad_name(mar_renegade_guard_patrol)} true ;{!surge_started =npc_community(renegade)} true +prior = 200 + +[logic@mar_smart_terrain_4_5_guard_work_2] +active = beh@mar_smart_terrain_4_5_guard_work_2 +suitable = {=target_squad_name(mar_renegade_guard_patrol)} true ;{!surge_started =npc_community(renegade)} true +prior = 200 + +[logic@mar_smart_terrain_4_5_guard_work_3] +active = beh@mar_smart_terrain_4_5_guard_work_3 +suitable = {=target_squad_name(mar_renegade_guard_patrol)} true ;{!surge_started =npc_community(renegade)} true +prior = 200 + +[logic@mar_smart_terrain_4_5_mechanic_logic] +suitable = {=check_npc_name(mar_renegade_mechanic)} true +active = beh@mar_smart_terrain_4_5_mechanic_work_1 +prior = 200 +can_select_weapon = true +dont_keep_items = true +level_spot = mechanic +trade = items\trade\trade_generic_mechanic.ltx +on_death = death_mechanic + +[death_mechanic] +on_info = %+mar_renegade_mechanic_dead% + +[beh@general_guard] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = {!actor_true_enemy} true, false +meet = meet + +[beh@general_surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {!actor_true_enemy} true, false + +[meet] +close_anim = nil +close_victim = nil +far_anim = nil +far_victim = nil +close_distance = 0 +far_distance = 0 +close_snd_distance = 3 +abuse = false +;use = {=actor_enemy} false, true +allow_break = false +meet_on_talking = false +trade_enable = false + +[beh@mar_smart_terrain_4_5_guard_work_1]:beh@general_guard +pt1 = 88860000, guard | pos: -22.130926132202, 1.3520023822784, 302.73327636719 look: -20.949447631836, 1.4185507297516, 302.74871826172 +path_end = loop +on_info = {=surge_started} beh@mar_smart_terrain_4_5_surge_work_1 + +[beh@mar_smart_terrain_4_5_guard_work_2]:beh@general_guard +pt1 = 88860000, guard | pos: -56.102127075195, 0.32276093959808, 255.72845458984 look: -56.189502716064, 0.28120201826096, 254.16116333008 +path_end = loop +on_info = {=surge_started} beh@mar_smart_terrain_4_5_surge_work_2 + +[beh@mar_smart_terrain_4_5_guard_work_3]:beh@general_guard +pt1 = 30000, guard | pos: -52.357490539551, 0.46181523799896, 310.07559204102 look: -52.897644042969, 0.42069625854492, 311.70074462891 +pt2 = 30000, guard | pos: -33.12162399292, 0.99425029754639, 313.0598449707 look: -32.454566955566, 1.0350238084793, 314.18930053711 +pt3 = 30000, guard | pos: -34.121109008789, 1.1312124729156, 264.22564697266 look: -33.278354644775, 1.0799858570099, 263.03125, 126162 +pt4 = 50000, binocular | pos: -53.769592285156, 0.49783384799957, 256.45532226562 look: -53.50598526001, 0.43051421642303, 251.93171691895 +pt5 = 100000, smoking_stand | pos: -82.267395019531, 0.47735011577606, 292.60342407227 look: -80.736793518066, 0.55484676361084, 291.66186523438 +path_end = loop +on_info = {=surge_started} beh@mar_smart_terrain_4_5_surge_work_3 + +[beh@mar_smart_terrain_4_5_mechanic_work_1]:beh@general_guard +pt1 = 88860000, idle | pos: -41.070526123047, 0.83952760696411, 299.06350708008 look: -42.211521148682, 0.85883629322052, 298.53637695312 +path_end = loop +on_info = {=is_night} beh@mar_smart_terrain_4_5_mechanic_sleeper_work_1 +on_info2 = {=surge_started} beh@mar_smart_terrain_4_5_mechanic_surge_work_1 + +[beh@mar_smart_terrain_4_5_surge_work_1]:beh@general_surge +pt1 = 88860000, idle | pos: -64.608497619629, 0.4090513586998, 301.75866699219 look: -65.166435241699, 0.44713652133942, 300.01336669922 +path_end = loop +on_info = {=surge_complete} beh@mar_smart_terrain_3_3_guard_work_1 + +[beh@mar_smart_terrain_4_5_surge_work_2]:beh@general_surge +pt1 = 1000, idle | pos: -42.187362670898, 1.048748254776, 276.03903198242 look: -42.929580688477, -1.3546957969666, 268.80407714844 +pt2 = 88860000, smoking_stand | pos: -43.331748962402, -1.1223545074463, 267.94931030273 look: -42.929580688477, -1.3546957969666, 268.80407714844 +;path_end = loop +on_info = {=surge_complete} beh@mar_smart_terrain_4_5_guard_work_2 + +[beh@mar_smart_terrain_4_5_surge_work_3]:beh@general_surge +pt1 = 88860000, smoking_stand | pos: -67.112495422363, 0.26309049129486, 304.40640258789 look: -26.799217224121, 17.709882736206, 266.99923706055 +path_end = loop +on_info = {=surge_complete} beh@mar_smart_terrain_4_5_guard_work_3 + +[beh@mar_smart_terrain_4_5_mechanic_surge_work_1]:beh@general_guard +pt1 = 88860000, guard | pos: -67.655487060547, 0.29054844379425, 303.61352539062 look: -66.823997497559, 0.2875799536705, 303.69750976562 +path_end = loop +on_info = {=surge_complete} beh@mar_smart_terrain_4_5_mechanic_work_1 + +[beh@mar_smart_terrain_4_5_mechanic_sleeper_work_1]:beh@general_guard +pt1 = 88860000, sleep_sit | pos: -67.655487060547, 0.29054844379425, 303.61352539062 look: -66.823997497559, 0.2875799536705, 303.69750976562 +path_end = loop +on_info = {!is_night} beh@mar_smart_terrain_4_5_mechanic_work_1 diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_base_radio_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_base_radio_redone.ltx new file mode 100644 index 00000000..c510a4da --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_base_radio_redone.ltx @@ -0,0 +1,17 @@ +![logic] +!active = ph_sound +active = ph_idle@music + +[ph_idle@music] +on_info = %=play_sound(mar_smart_terrain_base_radio_mlr)% +on_info2 = {=is_night} ph_idle@night +on_info3 = {=surge_started} ph_idle@surge + +[ph_idle@night] +on_info = %=play_sound(no_sound_mlr)% +on_info2 = {!is_night} ph_idle@music + +[ph_idle@surge] +on_info = %=play_sound(broken_radio_mlr)% +on_info2 = {!surge_started} ph_idle@music + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_base_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_base_smart_logic_redone.ltx new file mode 100644 index 00000000..7c52be0c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_base_smart_logic_redone.ltx @@ -0,0 +1,21 @@ +![logic@guard_1] +suitable = {=target_squad_name(mar_smart_terrain_base_lager_squad) !surge_started} true, {=npc_community(army) !surge_started} true, {=npc_community(renegade) !surge_started} true + +![logic@guard_2] +suitable = {=target_squad_name(mar_smart_terrain_base_lager_squad) !surge_started} true, {=npc_community(army) !surge_started} true, {=npc_community(renegade) !surge_started} true + +![logic@mar_base_animpoint_kamp1] +suitable = {=target_squad_name(mar_smart_terrain_base_lager_squad) !surge_started} true, {=npc_community(army) !surge_started} true, {=npc_community(renegade) !surge_started} true + +![logic@mar_base_animpoint_kamp2] +suitable = {=target_squad_name(mar_smart_terrain_base_lager_squad) !surge_started} true, {=npc_community(army) !surge_started} true, {=npc_community(renegade) !surge_started} true + +![logic@mar_base_animpoint_kamp3] +suitable = {=target_squad_name(mar_smart_terrain_base_lager_squad) !surge_started} true, {=npc_community(army) !surge_started} true, {=npc_community(renegade) !surge_started} true + +![logic@mar_base_animpoint_kamp4] +suitable = {=target_squad_name(mar_smart_terrain_base_lager_squad) !surge_started} true, {=npc_community(army) !surge_started} true, {=npc_community(renegade) !surge_started} true + +![logic@mar_smart_terrain_base_surge_def] +suitable = {=target_squad_name(mar_smart_terrain_base_lager_squad) !surge_started} true, {=npc_community(army) !surge_started} true, {=npc_community(renegade) !surge_started} true + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_base_stalker_guide_marsh_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_base_stalker_guide_marsh_redone.ltx new file mode 100644 index 00000000..330ad772 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/mod_mar_smart_terrain_base_stalker_guide_marsh_redone.ltx @@ -0,0 +1,5 @@ +![logic@mar_smart_terrain_base_stalker_guide_marsh] +on_death = death_leader + +[death_leader] +on_info = %+csky_stalker_leader_dead% \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/;mar_smart_terrain_doc.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/;mar_smart_terrain_doc.ltx new file mode 100644 index 00000000..d5ad1546 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/;mar_smart_terrain_doc.ltx @@ -0,0 +1,6 @@ +[smart_terrain] ;-- Disabled +squad_id = 26 +max_population = 1 + + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/;mar_smart_terrain_doc_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/;mar_smart_terrain_doc_2.ltx new file mode 100644 index 00000000..cf46ab63 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/;mar_smart_terrain_doc_2.ltx @@ -0,0 +1,6 @@ +[smart_terrain] ;-- Disabled +squad_id = 27 +max_population = 1 + + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_10_10.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_10_10.ltx new file mode 100644 index 00000000..90223710 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_10_10.ltx @@ -0,0 +1,23 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 1 +max_population = 2 +;respawn_params = respawn@mar_smart_terrain_10_10 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@mar_smart_terrain_10_10] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +mar_smart_terrain_10_10_collector_work = marsh\mar_smart_terrain_10_10_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_10_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_10_5.ltx new file mode 100644 index 00000000..4894ae52 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_10_5.ltx @@ -0,0 +1,38 @@ +[smart_terrain] +squad_id = 2 +max_population = 2 +respawn_params = respawn@mar_smart_terrain_10_5 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +faction_controlled = army, bandit, csky, renegade, stalker +default_faction = army +faction_respawn_num = 1 + +;[respawn@mar_smart_terrain_10_5] ;-- Type: faction {army} = outpost + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +mar_smart_terrain_10_5_minigunner_excl = marsh\mar_smart_terrain_10_5_smart_logic.ltx + +mar_smart_terrain_10_5_camp_work_1 = marsh\mar_smart_terrain_10_5_smart_logic.ltx +mar_smart_terrain_10_5_camp_work_2 = marsh\mar_smart_terrain_10_5_smart_logic.ltx +mar_smart_terrain_10_5_camp_work_3 = marsh\mar_smart_terrain_10_5_smart_logic.ltx +mar_smart_terrain_10_5_camp_work_4 = marsh\mar_smart_terrain_10_5_smart_logic.ltx +mar_smart_terrain_10_5_camp_work_5 = marsh\mar_smart_terrain_10_5_smart_logic.ltx + + + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_10_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_10_7.ltx new file mode 100644 index 00000000..4f1f3cd7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_10_7.ltx @@ -0,0 +1,23 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 3 +max_population = 1 +;respawn_params = respawn@mar_smart_terrain_10_7 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@mar_smart_terrain_10_7] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_11_11.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_11_11.ltx new file mode 100644 index 00000000..46c3d41c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_11_11.ltx @@ -0,0 +1,31 @@ +[smart_terrain] +squad_id = 4 +max_population = 2 +respawn_params = respawn@mar_smart_terrain_11_11 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +faction_controlled = bandit, csky, army, renegade +default_faction = renegade +faction_respawn_num = 1 + +;[respawn@mar_smart_terrain_11_11] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +mar_smart_terrain_11_11_camp_work_1 = marsh\mar_smart_terrain_11_11_smart_logic.ltx +mar_smart_terrain_11_11_camp_work_2 = marsh\mar_smart_terrain_11_11_smart_logic.ltx +mar_smart_terrain_11_11_camp_work_3 = marsh\mar_smart_terrain_11_11_smart_logic.ltx +mar_smart_terrain_11_11_camp_work_4 = marsh\mar_smart_terrain_11_11_smart_logic.ltx +mar_smart_terrain_11_11_camp_work_5 = marsh\mar_smart_terrain_11_11_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_11_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_11_3.ltx new file mode 100644 index 00000000..2d408c12 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_11_3.ltx @@ -0,0 +1,23 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 5 +max_population = 1 +;respawn_params = respawn@mar_smart_terrain_11_3 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil0 + +;[respawn@mar_smart_terrain_11_3] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +mar_smart_terrain_11_3_collector_work = marsh\mar_smart_terrain_11_3_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_12_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_12_2.ltx new file mode 100644 index 00000000..accd384e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_12_2.ltx @@ -0,0 +1,36 @@ +[smart_terrain] +squad_id = 6 +max_population = 2 +respawn_params = respawn@mar_smart_terrain_12_2 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +faction_controlled = stalker, bandit, csky, army, renegade +default_faction = army +faction_respawn_num = 1 + +;[respawn@mar_smart_terrain_11_11] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +mar_smart_terrain_12_2_collector_work = marsh\mar_smart_terrain_12_2_smart_logic.ltx + +mar_smart_terrain_12_2_camp_work_1 = marsh\mar_smart_terrain_12_2_smart_logic.ltx +mar_smart_terrain_12_2_camp_work_2 = marsh\mar_smart_terrain_12_2_smart_logic.ltx +mar_smart_terrain_12_2_camp_work_3 = marsh\mar_smart_terrain_12_2_smart_logic.ltx +mar_smart_terrain_12_2_camp_work_4 = marsh\mar_smart_terrain_12_2_smart_logic.ltx +mar_smart_terrain_12_2_camp_work_5 = marsh\mar_smart_terrain_12_2_smart_logic.ltx +mar_smart_terrain_12_2_camp_work_6 = marsh\mar_smart_terrain_12_2_smart_logic.ltx +mar_smart_terrain_12_2_camp_work_7 = marsh\mar_smart_terrain_12_2_smart_logic.ltx +mar_smart_terrain_12_2_camp_work_8 = marsh\mar_smart_terrain_12_2_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_3_10.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_3_10.ltx new file mode 100644 index 00000000..771284f8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_3_10.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 7 +max_population = 1 +respawn_params = respawn@mar_smart_terrain_3_10 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@mar_smart_terrain_3_10] ;-- Type: +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 tushkano + 2 dogs + 2 cats ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_cat +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2] ;-- Normal mutants - Rates of groups: (2 dogs + 3 fleshes/boars + 2 lurker) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_mix_boar_flesh, simulation_flesh, simulation_boar, simulation_lurker, simulation_lurker_blue +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_3_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_3_3.ltx new file mode 100644 index 00000000..941d03b9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_3_3.ltx @@ -0,0 +1,76 @@ +[smart_terrain] +squad_id = 8 +max_population = 2 +respawn_params = respawn@mar_smart_terrain_3_3 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 100 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@mar_smart_terrain_3_3] ;-- Type: faction {renegade\bandit} = faction camp\safezone +spawn_renegade@novice_c_4_1 +spawn_renegade@novice_c_4_2 +spawn_renegade@veteran_c_4_1 +spawn_renegade@veteran_c_4_2 +spawn_renegade_special +spawn_renegade_special_2 +spawn_deserted_base +spawn_deserted_base_2 + + +[spawn_renegade@novice_c_4_1] +spawn_squads = renegade_sim_squad_novice, renegade_sim_squad_novice, renegade_sim_squad_advanced +spawn_num = {!actor_week_in_zone(1)} 1,{=actor_week_in_zone(1)} 0 + +[spawn_renegade@novice_c_4_2] +spawn_squads = renegade_sim_squad_novice, renegade_sim_squad_novice, renegade_sim_squad_advanced +spawn_num = {=actor_week_in_zone(1)} 2,{!actor_week_in_zone(1)} 0 + +[spawn_renegade@veteran_c_4_1] +spawn_squads = renegade_sim_squad_veteran, renegade_sim_squad_advanced, renegade_sim_squad_advanced +spawn_num = {!actor_week_in_zone(3) -mar_renegade_trader_dead -mar_renegade_mechanic_dead} 1,{=actor_week_in_zone(3) -mar_renegade_trader_dead -mar_renegade_mechanic_dead} 0, 0 + +[spawn_renegade@veteran_c_4_2] +spawn_squads = renegade_sim_squad_veteran, renegade_sim_squad_veteran, renegade_sim_squad_advanced +spawn_num = {=actor_week_in_zone(3) -mar_renegade_trader_dead -mar_renegade_mechanic_dead} 3,{!actor_week_in_zone(3) -mar_renegade_trader_dead -mar_renegade_mechanic_dead} 0, 0 + +[spawn_renegade_special] +spawn_squads = mar_smart_terrain_3_3_renegade_squad +spawn_num = {!squad_name_exist(mar_smart_terrain_3_3_renegade_squad) -mar_renegade_trader_dead -mar_renegade_mechanic_dead} 1, 0 + +[spawn_renegade_special_2] +spawn_squads = renegade_guard_mar_smart_terrain_3_3 +spawn_num = {!squad_name_exist(renegade_guard_mar_smart_terrain_3_3) -mar_renegade_trader_dead -mar_renegade_mechanic_dead} 1, 0 + + +[spawn_deserted_base] +spawn_squads = mar_smart_terrain_3_3_csky_squad +spawn_num = {!squad_name_exist(mar_smart_terrain_3_3_csky_squad) !squad_name_exist(mar_smart_terrain_3_3_army_squad) -csky_stalker_leader_dead +mar_renegade_trader_dead +mar_renegade_mechanic_dead} 1, 0 + +[spawn_deserted_base_2] +spawn_squads = mar_smart_terrain_3_3_army_squad +spawn_num = {!squad_name_exist(mar_smart_terrain_3_3_csky_squad) !squad_name_exist(mar_smart_terrain_3_3_army_squad) -agr_military_colonel_kovalski_dead +mar_renegade_trader_dead +mar_renegade_mechanic_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +mar_smart_terrain_3_3_trader_logic = marsh\mar_smart_terrain_3_3_smart_logic.ltx + +mar_smart_terrain_3_3_camp_work_1 = marsh\mar_smart_terrain_3_3_smart_logic.ltx +mar_smart_terrain_3_3_camp_work_2 = marsh\mar_smart_terrain_3_3_smart_logic.ltx +mar_smart_terrain_3_3_camp_work_3 = marsh\mar_smart_terrain_3_3_smart_logic.ltx +mar_smart_terrain_3_3_camp_work_4 = marsh\mar_smart_terrain_3_3_smart_logic.ltx +mar_smart_terrain_3_3_camp_work_5 = marsh\mar_smart_terrain_3_3_smart_logic.ltx + +mar_smart_terrain_3_3_guard_work_1 = marsh\mar_smart_terrain_3_3_smart_logic.ltx +;mar_smart_terrain_3_3_guard_work_2 = marsh\mar_smart_terrain_3_3_smart_logic.ltx +;mar_smart_terrain_3_3_guard_work_3 = marsh\mar_smart_terrain_3_3_smart_logic.ltx +;mar_smart_terrain_3_3_guard_work_4 = marsh\mar_smart_terrain_3_3_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_3_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_3_7.ltx new file mode 100644 index 00000000..654ff457 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_3_7.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 9 +max_population = 1 +respawn_params = respawn@mar_smart_terrain_3_7 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@mar_smart_terrain_3_7] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 1 fleshes/boars ) +spawn_squads = simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh, simulation_boar +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 pseudodog + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_pseudodog, simulation_cat, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_4_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_4_5.ltx new file mode 100644 index 00000000..e0e6d78b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_4_5.ltx @@ -0,0 +1,76 @@ +[smart_terrain] +squad_id = 10 +max_population = 2 +respawn_params = respawn@mar_smart_terrain_4_5 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 100 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@mar_smart_terrain_4_5] Type: faction {renegade} = guardpost +spawn_renegade@novice_c_4_1 +spawn_renegade@novice_c_4_2 +spawn_renegade@advanced_c_4_1 +spawn_renegade@advanced_c_4_2 +spawn_renegade_special +spawn_renegade_special_2 +spawn_deserted_base +spawn_deserted_base_2 + + +[spawn_renegade@novice_c_4_1] +spawn_squads = renegade_sim_squad_novice, renegade_sim_squad_novice, renegade_sim_squad_advanced +spawn_num = {!actor_week_in_zone(1)} 1,{=actor_week_in_zone(1)} 0 + +[spawn_renegade@novice_c_4_2] +spawn_squads = renegade_sim_squad_novice, renegade_sim_squad_novice, renegade_sim_squad_advanced +spawn_num = {=actor_week_in_zone(1)} 2,{!actor_week_in_zone(1)} 0 + +[spawn_renegade@advanced_c_4_1] +spawn_squads = renegade_sim_squad_advanced, renegade_sim_squad_advanced, renegade_sim_squad_novice +spawn_num = {!actor_week_in_zone(2) -mar_renegade_trader_dead -mar_renegade_mechanic_dead} 1,{=actor_week_in_zone(2) -mar_renegade_trader_dead -mar_renegade_mechanic_dead} 0, 0 + +[spawn_renegade@advanced_c_4_2] +spawn_squads = renegade_sim_squad_advanced, renegade_sim_squad_advanced, renegade_sim_squad_novice +spawn_num = {=actor_week_in_zone(2) -mar_renegade_trader_dead -mar_renegade_mechanic_dead} 2,{!actor_week_in_zone(2) -mar_renegade_trader_dead -mar_renegade_mechanic_dead} 0, 0 + +[spawn_renegade_special] +spawn_squads = mar_smart_terrain_4_5_renegade_squad +spawn_num = {!squad_name_exist(mar_smart_terrain_4_5_renegade_squad) -mar_renegade_trader_dead -mar_renegade_mechanic_dead} 1, 0 + +[spawn_renegade_special_2] +spawn_squads = mar_renegade_guard_patrol_squad +spawn_num = {!squad_name_exist(mar_renegade_guard_patrol_squad) -mar_renegade_trader_dead -mar_renegade_mechanic_dead} 1, 0 + + +[spawn_deserted_base] +spawn_squads = mar_smart_terrain_4_5_csky_squad +spawn_num = {=squad_name_exist(mar_smart_terrain_3_3_csky_squad) !squad_name_exist(mar_smart_terrain_4_5_csky_squad) -csky_stalker_leader_dead +mar_renegade_trader_dead +mar_renegade_mechanic_dead} 1, 0 + +[spawn_deserted_base_2] +spawn_squads = mar_smart_terrain_4_5_army_squad +spawn_num = {=squad_name_exist(mar_smart_terrain_3_3_army_squad) !squad_name_exist(mar_smart_terrain_4_5_army_squad) -agr_military_colonel_kovalski_dead +mar_renegade_trader_dead +mar_renegade_mechanic_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +mar_smart_terrain_4_5_mechanic_logic = marsh\mar_smart_terrain_4_5_smart_logic.ltx + +mar_smart_terrain_4_5_camp_work_1 = marsh\mar_smart_terrain_4_5_smart_logic.ltx +mar_smart_terrain_4_5_camp_work_2 = marsh\mar_smart_terrain_4_5_smart_logic.ltx +mar_smart_terrain_4_5_camp_work_3 = marsh\mar_smart_terrain_4_5_smart_logic.ltx +mar_smart_terrain_4_5_camp_work_4 = marsh\mar_smart_terrain_4_5_smart_logic.ltx +mar_smart_terrain_4_5_camp_work_5 = marsh\mar_smart_terrain_4_5_smart_logic.ltx + +mar_smart_terrain_4_5_guard_work_1 = marsh\mar_smart_terrain_4_5_smart_logic.ltx +mar_smart_terrain_4_5_guard_work_2 = marsh\mar_smart_terrain_4_5_smart_logic.ltx +mar_smart_terrain_4_5_guard_work_3 = marsh\mar_smart_terrain_4_5_smart_logic.ltx +;mar_smart_terrain_3_3_guard_work_4 = marsh\mar_smart_terrain_4_5_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_4_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_4_7.ltx new file mode 100644 index 00000000..6b626778 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_4_7.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 11 +max_population = 1 +respawn_params = respawn@mar_smart_terrain_4_7 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@mar_smart_terrain_4_7] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 tushkano + 2 dogs + 2 cats ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_cat +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2] ;-- Normal mutants - Rates of groups: (2 dogs + 3 fleshes/boars + 2 lurker) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_mix_boar_flesh, simulation_flesh, simulation_boar, simulation_lurker, simulation_lurker_blue +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_5_12.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_5_12.ltx new file mode 100644 index 00000000..247643dc --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_5_12.ltx @@ -0,0 +1,56 @@ +[smart_terrain] +squad_id = 12 +max_population = 2 +respawn_params = respawn@mar_smart_terrain_5_12 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 100 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@mar_smart_terrain_5_12] ;-- Type: faction {csky} = guard camp +spawn_csky@advanced +spawn_deserted_base +spawn_deserted_base_2 + +[spawn_csky@advanced] +spawn_squads = csky_sim_squad_advanced, csky_sim_squad_advanced, csky_sim_squad_novice +spawn_num = {-csky_stalker_leader_dead} 0, 2 + + +[spawn_deserted_base] +spawn_squads = camp_army_mar_smart_terrain_5_12 +spawn_num = {=squad_name_exist(mar_smart_terrain_base_army_squad) !squad_name_exist(camp_army_mar_smart_terrain_5_12) -agr_military_colonel_kovalski_dead +csky_stalker_leader_dead} 1, 0 + +[spawn_deserted_base_2] +spawn_squads = camp_renegade_mar_smart_terrain_5_12 +spawn_num = {=squad_name_exist(mar_smart_terrain_base_renegade_squad) !squad_name_exist(camp_renegade_mar_smart_terrain_5_12) -mar_renegade_trader_dead +csky_stalker_leader_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +mar_smart_terrain_5_12_camp_work_1 = marsh\mar_smart_terrain_5_12_smart_logic.ltx +mar_smart_terrain_5_12_camp_work_2 = marsh\mar_smart_terrain_5_12_smart_logic.ltx +mar_smart_terrain_5_12_camp_work_3 = marsh\mar_smart_terrain_5_12_smart_logic.ltx +mar_smart_terrain_5_12_camp_work_4 = marsh\mar_smart_terrain_5_12_smart_logic.ltx +mar_smart_terrain_5_12_camp_work_5 = marsh\mar_smart_terrain_5_12_smart_logic.ltx + +mar_smart_terrain_5_12_surge_work_1 = marsh\mar_smart_terrain_5_12_smart_logic.ltx +mar_smart_terrain_5_12_surge_work_2 = marsh\mar_smart_terrain_5_12_smart_logic.ltx +mar_smart_terrain_5_12_surge_work_3 = marsh\mar_smart_terrain_5_12_smart_logic.ltx +mar_smart_terrain_5_12_surge_work_4 = marsh\mar_smart_terrain_5_12_smart_logic.ltx +mar_smart_terrain_5_12_surge_work_5 = marsh\mar_smart_terrain_5_12_smart_logic.ltx +mar_smart_terrain_5_12_surge_work_6 = marsh\mar_smart_terrain_5_12_smart_logic.ltx +mar_smart_terrain_5_12_surge_work_7 = marsh\mar_smart_terrain_5_12_smart_logic.ltx +mar_smart_terrain_5_12_surge_work_8 = marsh\mar_smart_terrain_5_12_smart_logic.ltx + +faction_base_defense_enemy1 = marsh\mar_smart_terrain_5_12_smart_logic.ltx +faction_base_defense_enemy2 = marsh\mar_smart_terrain_5_12_smart_logic.ltx +faction_base_defense_enemy3 = marsh\mar_smart_terrain_5_12_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_5_8.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_5_8.ltx new file mode 100644 index 00000000..7d3fc755 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_5_8.ltx @@ -0,0 +1,26 @@ +[smart_terrain] +squad_id = 13 +max_population = 2 +respawn_params = respawn@mar_smart_terrain_5_8 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +faction_controlled = bandit, csky, ecolog, renegade +default_faction = csky +faction_respawn_num = 1 + +;[respawn@mar_smart_terrain_5_8] ;-- Type: faction {csky} = outpost + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_10.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_10.ltx new file mode 100644 index 00000000..f68d6560 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_10.ltx @@ -0,0 +1,23 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 14 +;max_population = 1 +;respawn_params = respawn@mar_smart_terrain_6_10 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@mar_smart_terrain_6_10] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_11.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_11.ltx new file mode 100644 index 00000000..b970fd72 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_11.ltx @@ -0,0 +1,40 @@ +[smart_terrain] +squad_id = 15 +max_population = 2 +respawn_params = respawn@mar_smart_terrain_6_11 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 100 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@mar_smart_terrain_6_11] ;-- Type: faction {csky} = guard tower +spawn_csky_special +spawn_deserted_base +spawn_deserted_base_2 + + +[spawn_csky_special] +spawn_squads = tower_csky_mar_smart_terrain_6_11 +spawn_num = {!squad_exist(tower_csky_mar_smart_terrain_6_11) -csky_stalker_leader_dead} 1, 0 + + +[spawn_deserted_base] +spawn_squads = tower_army_mar_smart_terrain_6_11 +spawn_num = {=squad_name_exist(mar_smart_terrain_base_army_squad) !squad_name_exist(tower_army_mar_smart_terrain_6_11) -agr_military_colonel_kovalski_dead +csky_stalker_leader_dead} 1, 0 + +[spawn_deserted_base_2] +spawn_squads = tower_renegade_mar_smart_terrain_6_11 +spawn_num = {=squad_name_exist(mar_smart_terrain_base_renegade_squad) !squad_name_exist(tower_renegade_mar_smart_terrain_6_11) -mar_renegade_trader_dead +csky_stalker_leader_dead} 1, 0 + + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_4.ltx new file mode 100644 index 00000000..302d1261 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_4.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 16 +;max_population = 1 +;respawn_params = respawn@mar_smart_terrain_4_5 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@mar_smart_terrain_4_5] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_7.ltx new file mode 100644 index 00000000..5f0bafc4 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_7.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 16 +max_population = 1 +respawn_params = respawn@mar_smart_terrain_6_7 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@mar_smart_terrain_6_7] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Normal mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 pseudodog + 1 cats ) +spawn_squads = simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_pseudodog, simulation_cat +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 pseudodog + 1 cats ) +spawn_squads = simulation_tushkano, simulation_dog_5_7, simulation_mix_dogs, simulation_pseudodog, simulation_cat_3_5 +spawn_num = {=actor_week_in_zone(1)} 2, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_8.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_8.ltx new file mode 100644 index 00000000..b586c0e2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_6_8.ltx @@ -0,0 +1,38 @@ +[smart_terrain] +squad_id = 18 +max_population = 1 +respawn_params = respawn@mar_smart_terrain_6_8 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@mar_smart_terrain_6_8] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats ) +spawn_squads = simulation_dog, simulation_mix_dogs, simulation_cat +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 pseudodog + 1 cats ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_pseudodog, simulation_cat +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + + + + + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_7_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_7_3.ltx new file mode 100644 index 00000000..4d978088 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_7_3.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 19 +max_population = 2 +respawn_params = respawn@mar_smart_terrain_7_3 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@mar_smart_terrain_7_3] ;-- Type: +spawn_renegade_special +;spawn_predatory@squad + + +[spawn_renegade_special] +spawn_squads = na_agro_renegade_mar_smart_terrain_7_3 +spawn_num = {!squad_exist(na_agro_renegade_mar_smart_terrain_7_3) -mar_renegade_trader_dead -mar_renegade_mechanic_dead} 1, 0 + +;[spawn_predatory@squad] ;-- Hard mutants - Rates of groups: ( 1 bloodsucker ) +;spawn_squads = na_agro_blood_mar_smart_terrain_7_3 +;spawn_num = {!squad_exist(na_agro_blood_mar_smart_terrain_7_3)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_7_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_7_7.ltx new file mode 100644 index 00000000..bb520dcf --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_7_7.ltx @@ -0,0 +1,32 @@ +[smart_terrain] +squad_id = 20 +max_population = 1 +respawn_params = respawn@mar_smart_terrain_7_7 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@mar_smart_terrain_7_7] ;-- Type: +spawn_flesh_boar +spawn_dogs + +[spawn_flesh_boar] ;-- Normal mutants - Rates of groups:( 2 dogs + 3 fleshes/boars ) +spawn_squads = simulation_boar_3_5, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = 1 + +[spawn_dogs] ;-- Normal mutants - Rates of groups:( 2 dogs ) +spawn_squads = simulation_dog, simulation_dog_5_7 +spawn_num = {~50} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_8_11.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_8_11.ltx new file mode 100644 index 00000000..b402a156 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_8_11.ltx @@ -0,0 +1,38 @@ +[smart_terrain] +squad_id = 21 +max_population = 2 +respawn_params = respawn@mar_smart_terrain_8_11 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +faction_controlled = csky, ecolog +default_faction = ecolog +faction_respawn_num = 1 + +;[respawn@mar_smart_terrain_8_11] ;-- Type: faction {ecolog} = campsite + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +mar_smart_terrain_8_11_camp_work_1 = marsh\mar_smart_terrain_8_11_smart_logic.ltx +mar_smart_terrain_8_11_camp_work_2 = marsh\mar_smart_terrain_8_11_smart_logic.ltx +mar_smart_terrain_8_11_camp_work_3 = marsh\mar_smart_terrain_8_11_smart_logic.ltx +mar_smart_terrain_8_11_camp_work_4 = marsh\mar_smart_terrain_8_11_smart_logic.ltx + +mar_smart_terrain_8_11_surge_work_1 = marsh\mar_smart_terrain_8_11_smart_logic.ltx +mar_smart_terrain_8_11_surge_work_2 = marsh\mar_smart_terrain_8_11_smart_logic.ltx +mar_smart_terrain_8_11_surge_work_3 = marsh\mar_smart_terrain_8_11_smart_logic.ltx +mar_smart_terrain_8_11_surge_work_4 = marsh\mar_smart_terrain_8_11_smart_logic.ltx +mar_smart_terrain_8_11_surge_work_5 = marsh\mar_smart_terrain_8_11_smart_logic.ltx +mar_smart_terrain_8_11_surge_work_6 = marsh\mar_smart_terrain_8_11_smart_logic.ltx +mar_smart_terrain_8_11_surge_work_7 = marsh\mar_smart_terrain_8_11_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_8_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_8_4.ltx new file mode 100644 index 00000000..59f3d21c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_8_4.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 22 +max_population = 1 +respawn_params = respawn@mar_smart_terrain_8_4 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@mar_smart_terrain_8_4] ;-- Type: +spawn_lurker + + +[spawn_lurker] ;-- Hard mutants - Rates of groups: ( 2 lurker ) +spawn_squads = simulation_lurker, simulation_lurker_blue +spawn_num = {~50} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_8_8.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_8_8.ltx new file mode 100644 index 00000000..215a55f7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_8_8.ltx @@ -0,0 +1,23 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 23 +max_population = 1 +;respawn_params = respawn@mar_smart_terrain_8_8 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@mar_smart_terrain_8_8] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +mar_smart_terrain_8_8_collector_work = marsh\mar_smart_terrain_8_8_smart_logic \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_8_9.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_8_9.ltx new file mode 100644 index 00000000..229d88e0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_8_9.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 24 +max_population = 2 +respawn_params = respawn@mar_smart_terrain_8_9 +respawn_only_smart = false +respawn_idle = 345600 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@mar_smart_terrain_8_9] ;-- Type: +spawn_heli_strong +spawn_heli_weak + + +[spawn_heli_strong] +spawn_helicopter = simulation_helicopter_strong +spawn_num = {!down_to_earth_functor !heli_exist_on_level} 1, 0 + +[spawn_heli_weak] +spawn_helicopter = simulation_helicopter_weak +spawn_num = {=down_to_earth_functor !heli_exist_on_level} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_base.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_base.ltx new file mode 100644 index 00000000..91e1ae71 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/marsh/smart/mar_smart_terrain_base.ltx @@ -0,0 +1,92 @@ +[smart_terrain] +squad_id = 25 +max_population = 4 +respawn_params = respawn@mar_smart_terrain_base +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 100 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = mar_smart_terrain_base_sr_no_assault +;spawn_point = nil + +[respawn@mar_smart_terrain_base] ;-- Type: faction {csky\stalker} = faction base\safezone +spawn_csky@novice +spawn_csky@advanced +spawn_csky@veteran +spawn_csky_special +spawn_deserted_base +spawn_deserted_base_2 + + +[spawn_csky@novice] +spawn_squads = csky_sim_squad_novice, csky_sim_squad_novice, csky_sim_squad_advanced +spawn_num = {+csky_stalker_leader_dead} 0, 4 + +[spawn_csky@advanced] +spawn_squads = csky_sim_squad_advanced, csky_sim_squad_advanced, csky_sim_squad_novice +spawn_num = {+csky_stalker_leader_dead} 0, 2 + +[spawn_csky@veteran] +spawn_squads = csky_sim_squad_veteran, csky_sim_squad_advanced, csky_sim_squad_advanced +spawn_num = {+csky_stalker_leader_dead} 0, 2 + +[spawn_csky_special] +spawn_squads = mar_smart_terrain_base_lager_squad +spawn_num = {!squad_name_exist(mar_smart_terrain_base_lager_squad) -csky_stalker_leader_dead} 1, 0 + + +[spawn_deserted_base] +spawn_squads = mar_smart_terrain_base_army_squad +spawn_num = {!squad_name_exist(mar_smart_terrain_base_army_squad) !squad_name_exist(mar_smart_terrain_base_renegade_squad) -agr_military_colonel_kovalski_dead +csky_stalker_leader_dead} 1, 0 + +[spawn_deserted_base_2] +spawn_squads = mar_smart_terrain_base_renegade_squad +spawn_num = {!squad_name_exist(mar_smart_terrain_base_army_squad) !squad_name_exist(mar_smart_terrain_base_renegade_squad) -mar_renegade_trader_dead +csky_stalker_leader_dead} 1, 0 + + +:[on_changing_level] + +;[smart_control] + +[exclusive] +mar_base_stalker_barmen = marsh\mar_base_stalker_barmen.ltx +mar_base_owl_stalker_trader = marsh\mar_base_owl_stalker_trader.ltx +mar_base_stalker_tech = marsh\mar_base_stalker_tech.ltx + +guid_marsh_mlr = marsh\guid_marsh_mlr.ltx +dog_doctor = marsh\mar_smart_terrain_base_dog_doctor.ltx +marsh_doctor = marsh\mar_smart_terrain_base_doctor.ltx +real_marsh_doctor = marsh\mar_smart_terrain_base_real_marsh_doctor.ltx +mar_smart_terrain_base_stalker_guide_marsh = marsh\mar_smart_terrain_base_stalker_guide_marsh.ltx + +guard_1 = marsh\mar_smart_terrain_base_smart_logic.ltx +guard_2 = marsh\mar_smart_terrain_base_smart_logic.ltx + +mar_smart_terrain_base_beh_trade_job_1 = marsh\mar_base_owl_stalker_trader.ltx +mar_smart_terrain_base_beh_tech_job_1 = marsh\mar_base_stalker_tech.ltx + +mar_base_animpoint_kamp1 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_base_animpoint_kamp2 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_base_animpoint_kamp3 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_base_animpoint_kamp4 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_base_animpoint_kamp5 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_base_animpoint_kamp6 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_base_animpoint_kamp7 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_base_animpoint_kamp8 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_base_animpoint_kamp9 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_base_animpoint_kamp10 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_base_animpoint_kamp11 = marsh\mar_smart_terrain_base_smart_logic.ltx + +mar_smart_terrain_base_surge_work_1 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_smart_terrain_base_surge_work_2 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_smart_terrain_base_surge_work_3 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_smart_terrain_base_surge_work_4 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_smart_terrain_base_surge_work_5 = marsh\mar_smart_terrain_base_smart_logic.ltx +mar_smart_terrain_base_surge_work_6 = marsh\mar_smart_terrain_base_smart_logic.ltx + +faction_base_defense_enemy1 = marsh\mar_smart_terrain_base_smart_logic.ltx +faction_base_defense_enemy2 = marsh\mar_smart_terrain_base_smart_logic.ltx +faction_base_defense_enemy3 = marsh\mar_smart_terrain_base_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_1.ltx new file mode 100644 index 00000000..fd95fce0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_1.ltx @@ -0,0 +1,30 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(mil_smart_terrain_2_1) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(mil_smart_terrain_2_1) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(mil_smart_terrain_4_3) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mil_smart_terrain_4_3) =is_dark_night} ph_idle@spawn_dark_monster_2 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:mil_smart_terrain_2_1)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:mil_smart_terrain_2_1)% ph_idle@reset, {~10} %=create_squad(simulation_tushkano_night:mil_smart_terrain_2_1)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:mil_smart_terrain_2_1)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:mil_smart_terrain_2_1)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:mil_smart_terrain_2_1)% ph_idle@reset, {~10} %=create_squad(simulation_chimera_night:mil_smart_terrain_2_1)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:mil_smart_terrain_2_1)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_brown_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_red_night:mil_smart_terrain_4_3)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_snork_2_5_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_chimera_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_brown_night:mil_smart_terrain_4_3)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_red_night:mil_smart_terrain_4_3)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_2.ltx new file mode 100644 index 00000000..a45384ae --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_2.ltx @@ -0,0 +1,30 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(mil_smart_terrain_2_6) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(mil_smart_terrain_2_6) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(mil_smart_terrain_4_7) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mil_smart_terrain_4_7) =is_dark_night} ph_idle@spawn_dark_monster_2 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_pseudodog_night:mil_smart_terrain_2_6)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:mil_smart_terrain_2_6)% ph_idle@reset, {~10} %=create_squad(simulation_karlik_night:mil_smart_terrain_2_6)% ph_idle@reset, {~10} %=create_squad(simulation_poltergeist_black_night:mil_smart_terrain_2_6)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_psysucker_night:mil_smart_terrain_2_6)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:mil_smart_terrain_2_6)% ph_idle@reset, {~10} %=create_squad(simulation_snork_2_5_night:mil_smart_terrain_2_6)% ph_idle@reset, {~10} %=create_squad(simulation_poltergeist_black_night:mil_smart_terrain_2_6)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_tushkano_night:mil_smart_terrain_4_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:mil_smart_terrain_4_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:mil_smart_terrain_4_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:mil_smart_terrain_4_7)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_psy_dog_night:mil_smart_terrain_4_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_night:mil_smart_terrain_4_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:mil_smart_terrain_4_7)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:mil_smart_terrain_4_7)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_3.ltx new file mode 100644 index 00000000..5a4c2276 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mil_endless_night_spawn_logic_3.ltx @@ -0,0 +1,30 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(mil_smart_terrain_4_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(mil_smart_terrain_4_2) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(mil_smart_terrain_4_5) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(mil_smart_terrain_4_5) =is_dark_night} ph_idle@spawn_dark_monster_2 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:mil_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:mil_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_mix_dogs_night:mil_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:mil_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:mil_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:mil_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:mil_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:mil_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_mix_dogs_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_snork_night:mil_smart_terrain_4_5)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_gigant_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_psy_dog_night:mil_smart_terrain_4_5)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:mil_smart_terrain_4_5)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_crow_spawner_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_crow_spawner_redone.ltx new file mode 100644 index 00000000..85434a52 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_crow_spawner_redone.ltx @@ -0,0 +1,44 @@ +![logic] +!active = sr_crow_spawner +active = sr_idle@check_story + +[sr_idle@check_story] +on_info = {-story_mode_disabled} sr_idle@check_actor, {+story_mode_disabled -yan_x16_complete_end} sr_idle@check_actor %+yan_kill_brain_done% + +[sr_idle@check_actor] +on_info = {=actor_community(actor_monolith) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, {=actor_community(actor_greh) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, sr_idle@check_helmet + +[sr_idle@check_helmet] +on_info = {=actor_has_item(good_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, {=actor_has_item(bad_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, sr_idle@check_spawner + +[sr_idle@check_spawner] +on_info = sr_crow_spawner + +![sr_crow_spawner] +max_crows_on_level = 4 +spawn_path = mil_crow_spawn_1, mil_crow_spawn_2, mil_crow_spawn_3, mil_crow_spawn_4, mil_crow_spawn_5 + +on_info50 = {+mil_freedom_leader_dead -mil_spawn_complete =actor_community(actor_stalker)} sr_idle@spawn_3 +on_info51 = {+mil_freedom_leader_dead -mil_spawn_complete =actor_community(actor_bandit)} sr_idle@spawn_3 +on_info52 = {+mil_freedom_leader_dead -mil_spawn_complete =actor_community(actor_csky)} sr_idle@spawn_3 +on_info53 = {+mil_freedom_leader_dead -mil_spawn_complete =actor_community(actor_ecolog)} sr_idle@spawn_3 +on_info54 = {+mil_freedom_leader_dead -mil_spawn_complete =actor_community(actor_freedom)} sr_idle@spawn_3 +on_info55 = {+mil_freedom_leader_dead -mil_spawn_complete =actor_community(actor_killer)} sr_idle@spawn_3 +on_info56 = {+mil_freedom_leader_dead -mil_spawn_complete =actor_community(actor_dolg)} sr_idle@spawn_1 +on_info57 = {+mil_freedom_leader_dead -mil_spawn_complete =actor_community(actor_army)} sr_idle@spawn_2 +on_info68 = {+mil_freedom_leader_dead -mil_spawn_complete =actor_community(actor_renegade)} sr_idle@spawn_3 +on_info59 = {+mil_freedom_leader_dead -mil_spawn_complete =actor_community(actor_monolith)} sr_idle@spawn_3 +on_info61 = {+mil_freedom_leader_dead -mil_spawn_complete =actor_community(actor_greh)} sr_idle@spawn_3 +on_info62 = {+mil_freedom_leader_dead -mil_spawn_complete =actor_community(actor_isg)} sr_idle@spawn_3 + +[sr_idle@spawn_1]:sr_crow_spawner +on_game_timer = 43200 | sr_idle@spawn_end %=create_squad(mil_duty_entrance_7_8_squad:mil_smart_terrain_7_4) =create_squad(mil_duty_warehouse_7_7_squad:mil_smart_terrain_7_4) =create_squad(mil_duty_warehouse_7_10_squad:mil_smart_terrain_7_4) =create_squad(mil_duty_warehouse_7_12_squad:mil_smart_terrain_7_4)% + +[sr_idle@spawn_2]:sr_crow_spawner +on_game_timer = 43200 | sr_idle@spawn_end %=create_squad(mil_army_entrance_7_8_squad:mil_smart_terrain_7_4) =create_squad(mil_army_warehouse_7_7_squad:mil_smart_terrain_7_4) =create_squad(mil_army_warehouse_7_10_squad:mil_smart_terrain_7_4) =create_squad(mil_army_warehouse_7_12_squad:mil_smart_terrain_7_4)% + +[sr_idle@spawn_3]:sr_crow_spawner +on_game_timer = 43200 | sr_idle@spawn_end %=create_squad(mil_monolith_entrance_7_8_squad:mil_smart_terrain_3_8) =create_squad(mil_monolith_warehouse_7_7_squad:mil_smart_terrain_3_8) =create_squad(mil_monolith_warehouse_7_10_squad:mil_smart_terrain_3_8) =create_squad(mil_monolith_warehouse_7_12_squad:mil_smart_terrain_3_8)% + +[sr_idle@spawn_end]:sr_crow_spawner +on_info = sr_idle@check_spawner %+mil_spawn_complete% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_freedom_mlr_characters_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_freedom_mlr_characters_logic_redone.ltx new file mode 100644 index 00000000..07251e04 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_freedom_mlr_characters_logic_redone.ltx @@ -0,0 +1,55 @@ +![logic@mil_freedom_barman_mlr] +suitable = {=check_npc_name(mil_freedom_barman_mlr)} true, {=check_npc_barman} true +active = beh@mil_freedom_barman_work_1 + +[beh@general_barman] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +reach_movement = walk_noweap +reach_distance = 10 +invulnerable = {!actor_true_enemy} true, false +combat_ignore_cond = {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = false +corpse_detection_enabled = false +gather_items_enabled = false +help_wounded_enabled = false +use_camp = false +meet = meet@barman + +[beh@general_surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +invulnerable = {!actor_true_enemy} true, false +combat_ignore_cond = {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +meet = no_meet + +[beh@mil_freedom_barman_work_1]:beh@general_barman +pt1 = 88860000, ward | pos: -60.11109161377, -6.7447609901428, -15.399458885193 look: -58.891841888428, -6.9009099006653, -16.175771713257 +path_end = loop +on_info = {=is_night} beh@mil_freedom_barman_sleeper_work_1 +on_info2 = {=surge_started} beh@mil_freedom_barman_surge_work_1 + +[beh@mil_freedom_barman_surge_work_1]:beh@general_surge +pt1 = 88860000, guard | pos: -23.889720916748, -7.3642907142639, -26.99095916748 look: -23.86438369751, -7.3637666702271, -27.704570770264 +path_end = loop +on_info = {=surge_complete} beh@mil_freedom_barman_work_1 + +[beh@mil_freedom_barman_sleeper_work_1]:beh@general_barman +pt1 = 88860000, sleep_sit | pos: -23.889720916748, -7.3642907142639, -26.99095916748 look: -23.86438369751, -7.3637666702271, -27.704570770264 +path_end = loop +on_info = {!is_night} beh@mil_freedom_barman_work_1 diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_smart_terrain_4_2_sleeper_bloodsuckers_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_smart_terrain_4_2_sleeper_bloodsuckers_redone.ltx new file mode 100644 index 00000000..95aeb957 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_smart_terrain_4_2_sleeper_bloodsuckers_redone.ltx @@ -0,0 +1,12 @@ +![mob_walker@sleep_1_night] +home_max_radius = 55 + +![mob_walker@sleep_2_night] +home_max_radius = 55 + +![mob_walker@sleep_3_night] +home_max_radius = 55 + +![mob_walker@sleep_4_night] +home_max_radius = 55 + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_smart_terrain_7_7_radio_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_smart_terrain_7_7_radio_redone.ltx new file mode 100644 index 00000000..c10c20d3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_smart_terrain_7_7_radio_redone.ltx @@ -0,0 +1,14 @@ +![sr_idle@music] +on_info4 = {+mil_freedom_leader_dead} sr_idle@end %=stop_sound% + +![sr_idle@propaganda] +on_info4 = {+mil_freedom_leader_dead} sr_idle@end %=stop_sound% + +![sr_idle@night] +on_info3 = {+mil_freedom_leader_dead} sr_idle@end %=stop_sound% + +![sr_idle@surge] +on_info3 = {+mil_freedom_leader_dead} sr_idle@end %=stop_sound% + +[sr_idle@end] +on_info = %=play_sound(broken_radio_mlr)% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_smart_terrain_7_7_smart_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_smart_terrain_7_7_smart_logic_redone.ltx new file mode 100644 index 00000000..41242ad3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/mod_mil_smart_terrain_7_7_smart_logic_redone.ltx @@ -0,0 +1,5 @@ +![logic@mil_smart_terrain_7_7_freedom_leader] +on_death = death_leader + +[death_leader] +on_info = %+mil_freedom_leader_dead% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_1.ltx new file mode 100644 index 00000000..a46d83eb --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_1.ltx @@ -0,0 +1,52 @@ +[smart_terrain] +squad_id = 1 +max_population = 2 +respawn_params = respawn@mil_smart_terrain_4_3 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_2_1_sr_attack +;def_restr = mil_space_restrictors_2_1_sr_defense +;safe_restr = nil +;spawn_point = nil + +[respawn@mil_smart_terrain_4_3] ;-- Type: faction {zombied} = wahyy... +spawn_zombied_squad +spawn_zombie +spawn_mutants + + +[spawn_zombied_squad] +spawn_squads = zombied_sim_squad_veteran, zombied_sim_squad_advanced, simulation_zombie_blind_3zomb +spawn_num = {+bar_deactivate_radar_done } 0, 1 + +[spawn_zombie] ;-- Weak\normal mutants - Rates of groups: ( 2 zombie ) +spawn_squads = simulation_zombie_3_6, simulation_mix_zombie +spawn_num = {+yan_kill_brain_done +bar_deactivate_radar_done} 0, 1 + +[spawn_mutants] ;-- Normal\hard mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 cat + 1 snork + 1 fracture + 1 psy dog + 1 lurker ) +spawn_squads = simulation_tushkano_7_10, simulation_dog_5_7, simulation_mix_dogs, simulation_cat_3_5, simulation_snork_2_3, simulation_fracture, simulation_psy_dog, simulation_lurker_1_2 +spawn_num = {+yan_kill_brain_done +bar_deactivate_radar_done} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + + + + + + + + + + + + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_10.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_10.ltx new file mode 100644 index 00000000..e0053f40 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_10.ltx @@ -0,0 +1,27 @@ +[smart_terrain] +squad_id = 2 +max_population = 2 +;respawn_params = respawn@mil_smart_terrain_2_10 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_2_10_sr_attack +;def_restr = mil_space_restrictors_2_10_sr_defense +;safe_restr = nil +;spawn_point = nil + +faction_controlled = bandit, killer, dolg, freedom, monolith +default_faction = freedom +faction_respawn_num = 1 + + +;[respawn@mil_smart_terrain_2_10] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_2.ltx new file mode 100644 index 00000000..41b8bc4f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_2.ltx @@ -0,0 +1,38 @@ +[smart_terrain] +squad_id = 3 +max_population = 2 +respawn_params = respawn@mil_smart_terrain_2_2 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_2_2_sr_attack +;def_restr = mil_space_restrictors_2_2_sr_defense +;safe_restr = nil +;spawn_point = nil + +;faction_controlled = bandit, killer, dolg, freedom, monolith +;default_faction = killer +;faction_respawn_num = 1 + + +[respawn@mil_smart_terrain_2_2] ;-- Type: {faction: killer} = checkpoint +spawn_killer_special +spawn_killer_special_2 + + +[spawn_killer_special] +spawn_squads = mil_merc_terrain_2_2_outpost_squad +spawn_num = {!squad_name_exist(mil_merc_terrain_2_2_outpost_squad) -cit_killers_aslan_dead} 1, 0 ;{-cit_killers_dushman_dead} + +[spawn_killer_special_2] +spawn_squads = mil_merc_terrain_2_2_outpost_squad2 +spawn_num = {!squad_name_exist(mil_merc_terrain_2_2_outpost_squad2) -cit_killers_aslan_dead} 1, 0 ;{-cit_killers_dushman_dead} + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_4.ltx new file mode 100644 index 00000000..dec3d178 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_4.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 4 +max_population = 1 +;respawn_params = respawn@mil_smart_terrain_2_4 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_2_4_sr_attack +;def_restr = mil_space_restrictors_2_4_sr_defense +;safe_restr = nil +;spawn_point = nil + +;[respawn@mil_smart_terrain_2_4] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive]] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_6.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_6.ltx new file mode 100644 index 00000000..19358f5d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_2_6.ltx @@ -0,0 +1,38 @@ +[smart_terrain] +squad_id = 5 +max_population = 2 +respawn_params = respawn@mil_smart_terrain_2_1 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_2_6_sr_attack +;def_restr = mil_space_restrictors_2_6_sr_defense +;safe_restr = nil +;spawn_point = nil + +[respawn@mil_smart_terrain_2_1] ;-- Type: faction {zombied} = nhoo... +spawn_zombied_squad +spawn_mutants +spawn_mutants_rare + + +[spawn_zombied_squad] +spawn_squads = zombied_sim_squad_veteran, zombied_sim_squad_advanced +spawn_num = {+bar_deactivate_radar_done} 0, 1 + +[spawn_mutants] ;-- Normal\hard mutants - Rates of groups: ( 2 dogs + 1 cats + 3 fleshes/boars + 1 lurker ) +spawn_squads = simulation_dog_5_7, simulation_mix_dogs, simulation_cat_3_5, simulation_mix_boar_flesh, simulation_boar_3_5, simulation_lurker_1_2 +spawn_num = {+yan_kill_brain_done +bar_deactivate_radar_done} 1, 0 + +[spawn_mutants_rare] ;-- Rare mutants - Rates of groups: ( 1 polter + 1 karlik ) +spawn_squads = simulation_poltergeist, simulation_karlik +spawn_num = {~10} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_3_8.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_3_8.ltx new file mode 100644 index 00000000..21428d5c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_3_8.ltx @@ -0,0 +1,39 @@ +[smart_terrain] +squad_id = 6 +max_population = 2 +respawn_params = respawn@mil_smart_terrain_3_8 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_3_8_sr_attack +;def_restr = mil_space_restrictors_3_8_sr_defense +;safe_restr = nil +;spawn_point = nil + +[respawn@mil_smart_terrain_3_8] ;-- Type: +spawn_freedom_special +spawn_duty_special +spawn_army_special + + +[spawn_freedom_special] +spawn_squads = mil_freedom_smart_terrain_3_8_squad +spawn_num = {!squad_name_exist(mil_freedom_smart_terrain_3_8_squad) -mil_freedom_leader_dead} 1, 0 + +[spawn_duty_special] +spawn_squads = mil_duty_smart_terrain_3_8_squad +spawn_num = {!squad_name_exist(mil_duty_smart_terrain_3_8_squad) =actor_community(actor_dolg) +mil_freedom_leader_dead} 1, 0 + +[spawn_army_special] +spawn_squads = mil_army_smart_terrain_3_8_squad +spawn_num = {!squad_name_exist(mil_army_smart_terrain_3_8_squad) =actor_community(actor_army) +mil_freedom_leader_dead} 1, 0 + + +[on_changing_level] +on_info = %=script(redone_xr_dynamic_object:dynamic_object:misc\spawn_object\mil_smart_terrain_3_8_object.ltx)% + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_2.ltx new file mode 100644 index 00000000..c605fa09 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_2.ltx @@ -0,0 +1,32 @@ +[smart_terrain] +squad_id = 7 +max_population = 2 +respawn_params = respawn@mil_smart_terrain_4_2 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_4_2_sr_attack +;def_restr = mil_space_restrictors_4_2_sr_defense +;safe_restr = nil +;spawn_point = nil + +[respawn@mil_smart_terrain_4_2] ;-- Type: +spawn_bloodsucker + + +[spawn_bloodsucker] ;-- Hard mutants - Rates of groups: ( bloodsucker ) +spawn_squads = mil_smart_terrain_4_2_bloodsuckers_sleepers +spawn_num = {!squad_name_exist(mil_smart_terrain_4_2_bloodsuckers_sleepers) =actor_week_in_zone(1)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +sleeper_bloodsucker_1 = military\mil_smart_terrain_4_2_sleeper_bloodsuckers.ltx +sleeper_bloodsucker_2 = military\mil_smart_terrain_4_2_sleeper_bloodsuckers.ltx +sleeper_bloodsucker_3 = military\mil_smart_terrain_4_2_sleeper_bloodsuckers.ltx +sleeper_bloodsucker_4 = military\mil_smart_terrain_4_2_sleeper_bloodsuckers.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_3.ltx new file mode 100644 index 00000000..63b97dec --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_3.ltx @@ -0,0 +1,36 @@ +[smart_terrain] +squad_id = 8 +max_population = 2 +respawn_params = respawn@mil_smart_terrain_2_1 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_4_3_sr_attack +;def_restr = mil_space_restrictors_4_3_sr_defense +;safe_restr = nil +;spawn_point = nil + +[respawn@mil_smart_terrain_2_1] ;-- Type: faction {zombied} = nhoo... +spawn_zombie +spawn_mutants + + +[spawn_zombie] +spawn_squads = simulation_zombie_3_6, simulation_mix_zombie +spawn_num = {+yan_kill_brain_done +bar_deactivate_radar_done} 0, 1 + +[spawn_mutants] ;-- Normal\hard mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 cats + 1 lurker ) +spawn_squads = simulation_tushkano, simulation_dog_5_7, simulation_mix_dogs, simulation_cat_3_5, simulation_lurker_1_2 +spawn_num = {+yan_kill_brain_done +bar_deactivate_radar_done} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + + + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_5.ltx new file mode 100644 index 00000000..8c97f5ec --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_5.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 9 +max_population = 2 +respawn_params = respawn@mil_smart_terrain_4_5 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_4_5_sr_attack +;def_restr = mil_space_restrictors_4_5_sr_defense +;safe_restr = nil +;spawn_point = nil + +[respawn@mil_smart_terrain_4_5] ;-- Type: +spawn_tushkano + + +[spawn_tushkano] ;-- Weak mutants - Rates of groups: ( 2 tushkano + 1 dogs + 1 cat ) +spawn_squads = simulation_tushkano, simulation_tushkano_7_10, simulation_mix_dogs, simulation_cat +spawn_num = 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_7.ltx new file mode 100644 index 00000000..ae2287f5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_7.ltx @@ -0,0 +1,35 @@ +[smart_terrain] +squad_id = 10 +max_population = 1 +respawn_params = respawn@mil_smart_terrain_4_7 +respawn_only_smart = true +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_4_7_sr_attack +;def_restr = mil_space_restrictors_4_7_sr_defense +;safe_restr = nil +;spawn_point = nil + +[respawn@mil_smart_terrain_4_7] ;-- Type: +spawn_mutants + + +[spawn_mutants] ;-- Normal\hard mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 cat + 1 snork + 1 fracture + 1 psy dog + 1 lurker ) +spawn_squads = simulation_tushkano_7_10, simulation_dog_5_7, simulation_mix_dogs, simulation_cat_3_5, simulation_snork_2_3, simulation_fracture, simulation_psy_dog, simulation_lurker_1_2 +spawn_num = {+yan_kill_brain_done +bar_deactivate_radar_done} 1, 0 + + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +faction_base_defense_enemy1 = military\mil_smart_terrain_4_7_smart_logic.ltx +faction_base_defense_enemy2 = military\mil_smart_terrain_4_7_smart_logic.ltx +faction_base_defense_enemy3 = military\mil_smart_terrain_4_7_smart_logic.ltx +faction_base_defense_enemy4 = military\mil_smart_terrain_4_7_smart_logic.ltx +faction_base_defense_enemy5 = military\mil_smart_terrain_4_7_smart_logic.ltx +faction_base_defense_enemy6 = military\mil_smart_terrain_4_7_smart_logic.ltx diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_8.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_8.ltx new file mode 100644 index 00000000..063159c5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_4_8.ltx @@ -0,0 +1,29 @@ +[smart_terrain] +squad_id = 11 +max_population = 1 +respawn_params = respawn@mil_smart_terrain_4_8 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_4_8_sr_attack +;def_restr = mil_space_restrictors_4_8_sr_defense +;safe_restr = nil +;spawn_point = nil + +[respawn@mil_smart_terrain_4_8] ;-- Type: faction {stalker} = camp +spawn_stalker@advanced + + +[spawn_stalker@advanced] +spawn_squads = stalker_sim_squad_advanced_3_4, stalker_sim_squad_veteran_3_4 +spawn_num = {+mil_freedom_leader_dead} 0, 1 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +stalker_gatekeeper = military\stalker_gatekeeper.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_10.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_10.ltx new file mode 100644 index 00000000..871eaa5c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_10.ltx @@ -0,0 +1,36 @@ +[smart_terrain] +squad_id = 12 +max_population = 4 +respawn_params = respawn@mil_smart_terrain_7_10 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 500 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_7_10_sr_attack +;def_restr = mil_space_restrictors_7_10_sr_defense +;safe_restr = nil +;spawn_point = nil + +[respawn@mil_smart_terrain_7_10] ;-- Type: faction {freedom} = west\main base +spawn_deserted_base +spawn_deserted_base_2 + + +[spawn_deserted_base] +spawn_squads = duty_sim_squad_novice, duty_sim_squad_novice, duty_sim_squad_advanced +spawn_num = {=actor_community(actor_dolg) +mil_freedom_leader_dead} 2, 0 + +[spawn_deserted_base_2] +spawn_squads = army_sim_squad_novice, army_sim_squad_novice, army_sim_squad_advanced +spawn_num = {=actor_community(actor_army) +mil_freedom_leader_dead} 2, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +mil_smart_terrain_7_10_freedom_trader = military\mil_smart_terrain_7_10_smart_logic.ltx +mil_smart_terrain_7_10_beh_trade_job_1 = military\mil_smart_terrain_7_10_smart_logic.ltx + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_12.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_12.ltx new file mode 100644 index 00000000..96c015d7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_12.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 13 +max_population = 3 +respawn_params = respawn@mil_smart_terrain_7_12 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 500 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@mil_smart_terrain_7_12] ;-- Type: faction {freedom} = barracks + faction {stalker, bandir, killer} = safezone +spawn_deserted_base +spawn_deserted_base_2 + + +[spawn_deserted_base] +spawn_squads = monolith_sim_squad_advanced, monolith_sim_squad_advanced, monolith_sim_squad_novice +spawn_num = {=actor_community(actor_monolith) +mil_freedom_leader_dead} 2, 0 + +[spawn_deserted_base_2] +spawn_squads = greh_sim_squad_advanced, greh_sim_squad_advanced, greh_sim_squad_novice +spawn_num = {=actor_community(actor_greh) +mil_freedom_leader_dead} 2, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_4.ltx new file mode 100644 index 00000000..200d0d02 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_4.ltx @@ -0,0 +1,43 @@ +[smart_terrain] +squad_id = 14 +max_population = 2 +respawn_params = respawn@mil_smart_terrain_7_4 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 100 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_7_4_sr_attack +;def_restr = mil_space_restrictors_7_4_sr_defense +;safe_restr = nil +;spawn_point = nil + +[respawn@mil_smart_terrain_7_4] ;-- Type: +;spawn_duty@novice +;spawn_freedom@novice +spawn_duty_special +spawn_freedom_special + + +;[spawn_duty@novice] +;spawn_squads = duty_sim_squad_novice, duty_sim_squad_novice, duty_sim_squad_advanced +;spawn_num = {+bar_dolg_leader_dead +bar_dolg_petrenko_dead} 0, 1 + +;[spawn_freedom@novice] +;spawn_squads = freedom_sim_squad_novice, freedom_sim_squad_novice, freedom_sim_squad_advanced +;spawn_num = {+bar_dolg_leader_dead +bar_dolg_petrenko_dead -mil_freedom_leader_dead} 1, 0 + +[spawn_duty_special] +spawn_squads = mil_duty_terrain_7_4_outpost_squad +spawn_num = {!squad_name_exist(mil_duty_terrain_7_4_outpost_squad) -bar_dolg_leader_dead} 1, 0 ;{-bar_dolg_petrenko_dead} + +[spawn_freedom_special] +spawn_squads = mil_freedom_terrain_7_4_outpost_squad +spawn_num = {!squad_name_exist(mil_freedom_terrain_7_4_outpost_squad) +bar_dolg_leader_dead +bar_dolg_petrenko_dead -mil_freedom_leader_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_7.ltx new file mode 100644 index 00000000..24aa5b69 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_7.ltx @@ -0,0 +1,91 @@ +[smart_terrain] +squad_id = 15 +max_population = 4 +respawn_params = respawn@mil_smart_terrain_7_7 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_7_7_sr_attack +;def_restr = mil_space_restrictors_7_7_sr_defense +;safe_restr = nil +;spawn_point = nil + +[respawn@mil_smart_terrain_7_7] ;-- Type: faction {freedom} = center\main base +spawn_freedom@novice +spawn_freedom@advanced +spawn_freedom@veteran +spawn_freedom_special +spawn_freedom_special_2 +spawn_freedom_special_3 +spawn_freedom_special_4 + + +[spawn_freedom@novice] +spawn_squads = freedom_sim_squad_novice, freedom_sim_squad_novice, freedom_sim_squad_advanced +spawn_num = {+mil_freedom_leader_dead} 0, 2 + +[spawn_freedom@advanced] +spawn_squads = freedom_sim_squad_advanced, freedom_sim_squad_advanced, freedom_sim_squad_novice +spawn_num = {+mil_freedom_leader_dead} 0, 2 + +[spawn_freedom@veteran] +spawn_squads = freedom_sim_squad_veteran, freedom_sim_squad_advanced, freedom_sim_squad_advanced +spawn_num = {+mil_freedom_leader_dead} 0, 2 + +[spawn_freedom_special] +spawn_squads = mil_7_7_protect_mlr_squad +spawn_num = {!squad_name_exist(mil_7_7_protect_mlr_squad) -mil_freedom_leader_dead} 1, 0 + +[spawn_freedom_special_2] +spawn_squads = mil_freedom_smart_terrain_7_8_squad +spawn_num = {!squad_name_exist(mil_freedom_smart_terrain_7_8_squad) -mil_freedom_leader_dead} 1, 0 + +[spawn_freedom_special_3] +spawn_squads = mil_freedom_smart_terrain_7_10_squad +spawn_num = {!squad_name_exist(mil_freedom_smart_terrain_7_10_squad) -mil_freedom_leader_dead} 1, 0 + +[spawn_freedom_special_4] +spawn_squads = mil_freedom_smart_terrain_7_12_squad +spawn_num = {!squad_name_exist(mil_freedom_smart_terrain_7_12_squad) -mil_freedom_leader_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +mil_freedom_guid = military\mil_freedom_mlr_characters_logic.ltx +mil_freedom_medic = military\mil_freedom_mlr_characters_logic.ltx +mil_freedom_barman_mlr = military\mil_freedom_mlr_characters_logic.ltx + +mil_smart_terrain_7_7_beh_tech_job_1 = military\mil_smart_terrain_7_7_smart_logic.ltx +mil_smart_terrain_7_7_freedom_mechanic = military\mil_smart_terrain_7_7_smart_logic.ltx +mil_smart_terrain_7_7_freedom_leader = military\mil_smart_terrain_7_7_smart_logic.ltx +mil_smart_terrain_7_7_freedom_bodyguard1 = military\mil_smart_terrain_7_7_smart_logic.ltx +mil_smart_terrain_7_7_freedom_bodyguard2 = military\mil_smart_terrain_7_7_smart_logic.ltx + +mil_smart_terrain_7_7_camp_work_1 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx +mil_smart_terrain_7_7_camp_work_2 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx +mil_smart_terrain_7_7_camp_work_3 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx +mil_smart_terrain_7_7_camp_work_4 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx +mil_smart_terrain_7_7_camp_work_5 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx +mil_smart_terrain_7_7_camp_work_6 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx +mil_smart_terrain_7_7_camp_work_8 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx +mil_smart_terrain_7_7_camp_work_9 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx +mil_smart_terrain_7_7_camp_work_10 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx +mil_smart_terrain_7_7_camp_work_13 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx +mil_smart_terrain_7_7_camp_work_15 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx +mil_smart_terrain_7_7_camp_work_18 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx +mil_smart_terrain_7_7_camp_work_19 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx +mil_smart_terrain_7_7_camp_work_20 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx +mil_smart_terrain_7_7_camp_work_21 = military\mil_smart_terrain_7_7_smart_logic_mlr.ltx + +faction_base_defense_enemy1 = military\mil_smart_terrain_7_7_smart_logic.ltx +faction_base_defense_enemy2 = military\mil_smart_terrain_7_7_smart_logic.ltx +faction_base_defense_enemy3 = military\mil_smart_terrain_7_7_smart_logic.ltx +faction_base_defense_enemy4 = military\mil_smart_terrain_7_7_smart_logic.ltx +faction_base_defense_enemy5 = military\mil_smart_terrain_7_7_smart_logic.ltx +faction_base_defense_enemy6 = military\mil_smart_terrain_7_7_smart_logic.ltx + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_8.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_8.ltx new file mode 100644 index 00000000..4452041a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_7_8.ltx @@ -0,0 +1,22 @@ +[smart_terrain] +squad_id = 16 +max_population = 2 +;respawn_params = respawn@mil_smart_terrain_7_8 +;respawn_only_smart = false +;respawn_idle = 200 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_7_8_sr_attack +;def_restr = mil_space_restrictors_7_8_sr_defense +;safe_restr = nil +;spawn_point = nil + +;[respawn@mil_smart_terrain_7_8] ;-- Type: faction {freedom} = gateguard + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_8_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_8_3.ltx new file mode 100644 index 00000000..bafa5044 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/military/smart/mil_smart_terrain_8_3.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 17 +max_population = 1 +respawn_params = respawn@mil_smart_terrain_8_3 +respawn_only_smart = true +respawn_idle = 172800 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = mil_space_restrictors_8_3_sr_attack +;def_restr = mil_space_restrictors_8_3_sr_defense +;safe_restr = nil +;spawn_point = nil + +[respawn@mil_smart_terrain_8_3] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 2 fleshes/boars ) +spawn_squads = simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh, simulation_boar +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_dog_5_7, simulation_mix_dogs, simulation_cat_3_5, simulation_mix_boar_flesh, simulation_flesh, simulation_boar_3_5 +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/mlr/mod_escape_sr_rupor_mlr_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/mlr/mod_escape_sr_rupor_mlr_redone.ltx new file mode 100644 index 00000000..0e23e8a9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/mlr/mod_escape_sr_rupor_mlr_redone.ltx @@ -0,0 +1,32 @@ +![ph_idle@wait] +on_info = %=play_sound(escape_sr_rupor_mlr_sound)% ph_idle@sound_idle +on_info2 = {=check_smart_alarm_status(esc_smart_terrain_3_16)} ph_idle@alarm +on_info3 = {=surge_started} ph_idle@surge + +![ph_idle@alarm] +on_info = %=play_sound(escape_sr_rupor_mlr_alarm)% +on_info2 = {!check_smart_alarm_status(esc_smart_terrain_3_16)} ph_idle@wait +on_info3 = {=surge_started} ph_idle@surge + +[ph_idle@sound_idle] +on_info = {=surge_started} ph_idle@surge +on_game_timer = 840 |ph_idle@wait + +[ph_idle@surge] +on_info = %=stop_sound% +on_game_timer = 100 | ph_idle@surge_started + +[ph_idle@surge_started] +on_info = %=play_sound(escape_blowout_siren)% +;on_info2 = {!surge_started} ph_idle@sound_idle +on_game_timer = 370 | ph_idle@surge_siren_end + +[ph_idle@surge_siren_end] +on_info = %=play_sound(escape_blowout_siren_1)% +on_signal = sound_end | ph_idle@surge_act_idle + +[ph_idle@surge_act_idle] +on_info = {=surge_started} ph_idle@surge +on_game_timer = 1240 | ph_idle@sound_idle + +[ph_idle@nil] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/pole/pol_smart_terrain_2_1_smart_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/pol_smart_terrain_2_1_smart_logic.ltx new file mode 100644 index 00000000..07d597aa --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/pol_smart_terrain_2_1_smart_logic.ltx @@ -0,0 +1,42 @@ +[logic@pol_smart_terrain_2_1_guard_work_1] +active = beh@pol_smart_terrain_2_1_guard_work_1 +suitable = {=target_squad_name(pol_renegade_guard1)} true +prior = 200 + +[logic@pol_smart_terrain_2_1_guard_work_2] +active = beh@pol_smart_terrain_2_1_guard_work_2 +suitable = {=target_squad_name(pol_renegade_guard1)} true +prior = 200 + +[logic@pol_smart_terrain_2_1_guard_work_3] +active = beh@pol_smart_terrain_2_1_guard_work_3 +suitable = {=target_squad_name(pol_renegade_guard1)} true +prior = 200 + +[beh@general_guard] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true +invulnerable = false + +[beh@pol_smart_terrain_2_1_guard_work_1]:beh@general_guard +pt1 = 100, guard | pos: -6.1126842498779, 0.45707225799561, 118.77732849121 look: -6.1126842498779, 0.45707225799561, 118.77732849121 +pt2 = 10000, guard | pos: -4.3642206192017, 0.3946173787117, 120.65453338623 look: -4.0511808395386, 0.39449846744537, 120.47067260742 + +[beh@pol_smart_terrain_2_1_guard_work_2]:beh@general_guard +pt1 = 10000, guard | pos: 17.915309906006, -0.0032001584768295, 109.66539001465 look: 17.415990829468, -0.0023594349622726, 110.29475402832 + +[beh@pol_smart_terrain_2_1_guard_work_3]:beh@general_guard +pt1 = 10000, guard | pos: 64.445945739746, -0.0026708245277405, 146.36608886719 look: 63.21178817749, -0.0003075897693634, 145.92973327637 + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_sim_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_sim_1.ltx new file mode 100644 index 00000000..9db62768 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_sim_1.ltx @@ -0,0 +1,35 @@ +[smart_terrain] +squad_id = 1 +max_population = 2 +respawn_params = respawn@pol_sim_1 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@pol_sim_1] ;-- Type: +spawn_all_weak +spawn_zombie + + +[spawn_all_weak] ;-- Normal mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_tushkano, simulation_mix_dogs, simulation_cat, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {!squad_name_exist(pol_renegade_guard1) +yan_kill_brain_done ~40} 1, 0 + +[spawn_zombie] ;-- Weak mutants - Rates of groups: ( 1 tushkano + 2 zombie ) +spawn_squads = simulation_tushkano, simulation_zombie_3_6, simulation_mix_zombie, pol_zombie_squad_1 +spawn_num = {!squad_name_exist(pol_renegade_guard1) -yan_kill_brain_done ~40} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] +;guard_1 = pole\pol_sim_1_smart_logic.ltx + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_sim_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_sim_2.ltx new file mode 100644 index 00000000..224e0b90 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_sim_2.ltx @@ -0,0 +1,23 @@ +[smart_terrain] ;-- does not exist +squad_id = 2 +;squad_count = 1 +;max_population = 1 +;respawn_params = respawn@pol_sim_2 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@pol_sim_2] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_1_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_1_1.ltx new file mode 100644 index 00000000..edc33b0e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_1_1.ltx @@ -0,0 +1,31 @@ +[smart_terrain] +squad_id = 2 +max_population = 2 +respawn_params = respawn@pol_smart_terrain_1_1 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@pol_smart_terrain_1_1] ;-- Type: +spawn_mutant_mix + + +[spawn_mutant_mix] ;-- Normal mutants - Rates of groups:( 1 tushkano + 1 dogs + 1 cat + 1 fleshes/boars + 1 zombie ) +spawn_squads = simulation_tushkano, simulation_mix_dogs, simulation_cat, simulation_mix_boar_flesh, pol_zombie_squad_2 +spawn_num = {!squad_name_exist(pol_smart_terrain_1_1_mlr_squad)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] +;guard_1 = pole\pol_smart_terrain_1_1_smart_logic.ltx +;patrol_1 = pole\pol_smart_terrain_1_1_smart_logic.ltx + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_1_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_1_2.ltx new file mode 100644 index 00000000..d523caf6 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_1_2.ltx @@ -0,0 +1,29 @@ +[smart_terrain] +squad_id = 3 +max_population = 2 +respawn_params = respawn@pol_smart_terrain_1_2 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@pol_smart_terrain_1_2] ;-- Type: +spawn_mutant_mix + + +[spawn_mutant_mix] ;-- Normal mutants - Rates of groups:( 2 dogs + 1 cats + 1 tushkano ) +spawn_squads = simulation_dog, simulation_dog_5_7, simulation_cat, simulation_tushkano +spawn_num = {!squad_name_exist(pol_renegade_guard1)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] +;guard_1 = pole\pol_smart_terrain_1_1_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_1_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_1_3.ltx new file mode 100644 index 00000000..22373fa5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_1_3.ltx @@ -0,0 +1,29 @@ +[smart_terrain] +squad_id = 4 +max_population = 2 +respawn_params = respawn@pol_smart_terrain_1_3 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@pol_smart_terrain_1_3] ;-- Type: +spawn_mutant_mix + + +[spawn_mutant_mix] ;-- Normal mutants - Rates of groups:( 1 zombie + 2 dogs + 1 tushkano ) +spawn_squads = pol_zombie_squad_3, simulation_dog_5_7, simulation_mix_dogs, simulation_tushkano +spawn_num = {!squad_name_exist(pol_smart_terrain_1_3_squad) ~40} 1, 0 + + +;[exclusive] +;guard_1 = pole\pol_smart_terrain_1_3_smart_logic.ltx +;patrol_1 = pole\pol_smart_terrain_1_3_smart_logic.ltx + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_2_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_2_1.ltx new file mode 100644 index 00000000..a9405cfb --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_2_1.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 5 +max_population = 2 +respawn_params = respawn@pol_smart_terrain_2_1 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@pol_smart_terrain_2_1] ;-- Type: faction {renegade} = outpost\camp +spawn_zombie + + +[spawn_zombie] ;-- Weak mutants - Rates of groups: ( 1 tushkano + 2 zombie ) +spawn_squads = pol_zombie_squad_4, simulation_mix_zombie, simulation_tushkano +spawn_num = {!squad_name_exist(pol_renegade_guard1) -yan_kill_brain_done ~20} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +pol_smart_terrain_2_1_guard_work_1 = pole\pol_smart_terrain_2_1_smart_logic.ltx +pol_smart_terrain_2_1_guard_work_2 = pole\pol_smart_terrain_2_1_smart_logic.ltx +pol_smart_terrain_2_1_guard_work_3 = pole\pol_smart_terrain_2_1_smart_logic.ltx + +;patrol_1 = pole\pol_smart_terrain_2_1_smart_logic.ltx ;-- broken diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_2_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_2_2.ltx new file mode 100644 index 00000000..25aea8f5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/pole/smart/pol_smart_terrain_2_2.ltx @@ -0,0 +1,39 @@ +[smart_terrain] +squad_id = 6 +max_population = 2 +respawn_params = respawn@pol_smart_terrain_2_2 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 200 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@pol_smart_terrain_2_2] ;-- Type: faction {renegade} = outpost\camp +spawn_mutants_mix +spawn_zombie +spawn_isg_special + + +[spawn_mutants_mix] ;-- Normal mutants - Rates of groups:( 1 dogs + 1 cats + 2 polter + 2 karlik ) +spawn_squads = simulation_mix_dogs, simulation_cat_3_5, simulation_poltergeist_tele, simulation_poltergeist_tele, simulation_karlik, simulation_karlik +spawn_num = {!squad_name_exist(pol_renegade_guard1) +yan_kill_brain_done} 1, 0 + +[spawn_zombie] ;-- Weak mutants - Rates of groups: ( 3 zombie ) +spawn_squads = pol_zombie_squad_1, simulation_zombie_3_6, simulation_mix_zombie +spawn_num = {!squad_name_exist(pol_renegade_guard1) -yan_kill_brain_done ~20} 1, 0 + +[spawn_isg_special] +spawn_squads = pol_smart_terrain_2_2_isg_squad +spawn_num = {!squad_name_exist(pol_renegade_guard1) +isg_entered_the_zone ~10} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] +;patrol_1 = pole\pol_smart_terrain_2_2_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/mod_ros_crow_spawner_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/mod_ros_crow_spawner_redone.ltx new file mode 100644 index 00000000..dbb96cf3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/mod_ros_crow_spawner_redone.ltx @@ -0,0 +1,20 @@ +![logic] +!active = sr_crow_spawner +active = sr_idle@check_story + +[sr_idle@check_story] +on_info = {-story_mode_disabled} sr_idle@check_actor, {+story_mode_disabled -yan_x16_complete_end} sr_idle@check_actor %+yan_kill_brain_done% + +[sr_idle@check_actor] +on_info = {=actor_community(actor_monolith) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, {=actor_community(actor_greh) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, sr_idle@check_helmet + +[sr_idle@check_helmet] +on_info = {=actor_has_item(good_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, {=actor_has_item(bad_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, sr_idle@check_spawner + +[sr_idle@check_spawner] +on_info = {+yan_kill_brain_done} sr_crow_spawner + +![sr_crow_spawner] +max_crows_on_level = 5 +spawn_path = ros_crow_spawn_1, ros_crow_spawn_2, ros_crow_spawn_3, ros_crow_spawn_4, ros_crow_spawn_5 +on_info = {-yan_kill_brain_done} sr_crow_spawner \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_climb_sound_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_climb_sound_logic.ltx new file mode 100644 index 00000000..c585de6e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_climb_sound_logic.ltx @@ -0,0 +1,34 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@base] +nonscript_usable = true + +[ph_idle@wait_actor]:ph_idle@base +tips = Climb:Ladder +on_use = ph_idle@reset %+ros_climb_ladder% + +[ph_idle@reset] +on_info = {+ladder_sound} ph_idle@ladder_sound_1 %-ros_climb_ladder% + +[ph_idle@ladder_sound_1]:ph_idle@base +on_info = %=play_sound(ros_climb_sound_1)% +on_signal = sound_end | ph_idle@ladder_sound_2 + +[ph_idle@ladder_sound_2]:ph_idle@base +on_info = %=play_sound(ros_climb_sound_2)% +on_signal = sound_end | ph_idle@ladder_sound_3 + +[ph_idle@ladder_sound_3]:ph_idle@base +on_info = %=play_sound(ros_climb_sound_3)% +on_signal = sound_end | ph_idle@ladder_sound_4 + +[ph_idle@ladder_sound_4]:ph_idle@base +on_info = %=play_sound(ros_climb_sound_4)% +on_signal = sound_end | ph_idle@end + +[ph_idle@end] +on_timer = 2000 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_climb_transition_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_climb_transition_logic.ltx new file mode 100644 index 00000000..a3706b6c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_climb_transition_logic.ltx @@ -0,0 +1,14 @@ +[logic] +active = ph_idle@teleport + +[ph_idle@teleport] +on_info = {=dist_to_actor_le(3) +ros_climb_ladder} ph_idle@fade_in %=run_postprocess(fade_in) +ladder_sound =disable_ui% + +[ph_idle@fade_in] +on_game_timer = 15 | ph_idle@wait %=script(redone_lc_ros_transition_local:teleport_actor) -ladder_sound =enable_ui% + +[ph_idle@wait] +on_timer = 2000 | ph_idle@teleport + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_door_hidden_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_door_hidden_logic.ltx new file mode 100644 index 00000000..61cd9837 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_door_hidden_logic.ltx @@ -0,0 +1,30 @@ +[logic] +active = ph_door@closed + +[ph_door@closed] +locked = false +closed = true +;snd_open_start = trader_door_open_start +;snd_close_start = trader_door_close_start +;snd_close_stop = trader_door_close_stop +on_use = ph_door@reset %+ros_hidden_door_open% ;%=play_sound(trader_door_open_start)% + +[ph_door@reset] +on_info = ph_door@open %-ros_hidden_door_open% + +[ph_door@open] +locked = false +closed = true +;snd_open_start = trader_door_open_start +;snd_close_start = trader_door_close_start +;snd_close_stop = trader_door_close_stop +on_info = ph_door@close + +[ph_door@close] +on_game_timer = 10 | ph_door@end ;%=play_sound(trader_door_close_start)% + +[ph_door@end] +on_timer = 1000 | ph_door@closed + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_door_transition_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_door_transition_logic.ltx new file mode 100644 index 00000000..f12be2a5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_door_transition_logic.ltx @@ -0,0 +1,14 @@ +[logic] +active = ph_idle@teleport + +[ph_idle@teleport] +on_info = {=dist_to_actor_le(1) +ros_hidden_door_open} ph_idle@fade_in %=run_postprocess(fade_in) =play_sound(trader_door_open_start) =disable_ui% + +[ph_idle@fade_in] +on_game_timer = 15 | ph_idle@wait %=script(redone_lc_ros_transition_local:teleport_actor) =play_sound(trader_door_close_start) =enable_ui% + +[ph_idle@wait] +on_timer = 1000 | ph_idle@teleport + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_1.ltx new file mode 100644 index 00000000..6c2e2bc9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_1.ltx @@ -0,0 +1,31 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(ros_smart_poltergeist2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(ros_smart_poltergeist2) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(ros_smart_snork1) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(ros_smart_snork1) =is_dark_night} ph_idle@spawn_dark_monster_2 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:ros_smart_poltergeist2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:ros_smart_poltergeist2)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:ros_smart_poltergeist2)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:ros_smart_poltergeist2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:ros_smart_poltergeist2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:ros_smart_poltergeist2)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:ros_smart_poltergeist2)% ph_idle@reset, {~10} %=create_squad(simulation_psy_dog_night:ros_smart_poltergeist2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:ros_smart_snork1)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:ros_smart_snork1)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:ros_smart_snork1)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_red_night:ros_smart_snork1)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:ros_smart_snork1)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:ros_smart_snork1)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_brown_night:ros_smart_snork1)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_red_night:ros_smart_snork1)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_2.ltx new file mode 100644 index 00000000..452a1ef1 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_2.ltx @@ -0,0 +1,20 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(ros_smart_monster4) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(ros_smart_monster4) =is_dark_night} ph_idle@spawn_dark_monster_1 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_dog_night:ros_smart_monster4)% ph_idle@reset, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:ros_smart_monster4)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:ros_smart_monster4)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_brown_night:ros_smart_monster4)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:ros_smart_monster4)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:ros_smart_monster4)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:ros_smart_monster4)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_brown_night:ros_smart_monster4)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_3.ltx new file mode 100644 index 00000000..83536e48 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_endless_night_spawn_logic_3.ltx @@ -0,0 +1,20 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(ros_smart_monster5) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(ros_smart_monster5) =is_dark_night} ph_idle@spawn_dark_monster_1 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_red_night:ros_smart_monster5)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_brown_night:ros_smart_monster5)% ph_idle@reset, {~10} %=create_squad(simulation_poltergeist_black_night:ros_smart_monster5)% ph_idle@reset, {~10} %=create_squad(simulation_burer_night:ros_smart_monster5)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_gigant_night:ros_smart_monster5)% ph_idle@reset, {~10} %=create_squad(simulation_chimera_night:ros_smart_monster5)% ph_idle@reset, {~10} %=create_squad(simulation_poltergeist_black_night:ros_smart_monster5)% ph_idle@reset, {~10} %=create_squad(simulation_burer_night:ros_smart_monster5)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_lc_transition_logic_hid.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_lc_transition_logic_hid.ltx new file mode 100644 index 00000000..1e6b18fe --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_lc_transition_logic_hid.ltx @@ -0,0 +1,14 @@ +[logic] +active = ph_idle@teleport + +[ph_idle@teleport] +on_info = {=dist_to_actor_le(0.5)} ph_idle@fade_in %=run_postprocess(fade_in) =disable_ui% + +[ph_idle@fade_in] +on_game_timer = 15 | ph_idle@wait %=script(redone_lc_ros_transition_local:teleport_actor) =enable_ui% + +[ph_idle@wait] +on_timer = 5000 | ph_idle@teleport + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_smart_stalker_killers1_smart_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_smart_stalker_killers1_smart_logic.ltx new file mode 100644 index 00000000..d7d80f40 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/ros_smart_stalker_killers1_smart_logic.ltx @@ -0,0 +1,92 @@ +[logic@ros_smart_stalker_killers1_guard_work_1] +active = beh@ros_smart_stalker_killers1_guard_work_1 +suitable = {!surge_started} true +prior = 200 + +[logic@ros_smart_stalker_killers1_guard_work_2] +active = beh@ros_smart_stalker_killers1_guard_work_2 +suitable = {!surge_started} true +prior = 200 + +[logic@ros_smart_stalker_killers1_guard_work_3] +active = beh@ros_smart_stalker_killers1_guard_work_3 +suitable = {!surge_started} true +prior = 200 + +[logic@ros_smart_stalker_killers1_guard_work_4] +active = beh@ros_smart_stalker_killers1_guard_work_4 +suitable = {!surge_started} true +prior = 200 + +[logic@ros_smart_stalker_killers1_guard_work_5] +active = beh@ros_smart_stalker_killers1_guard_work_5 +suitable = {!surge_started} true +prior = 200 + +[logic@ros_smart_stalker_killers1_camp_work_1] +active = beh@ros_smart_stalker_killers1_camp_work_1 +suitable = {!surge_started} true +prior = 45 + +[logic@ros_smart_stalker_killers1_camp_work_2] +active = beh@ros_smart_stalker_killers1_camp_work_2 +suitable = {!surge_started} true +prior = 45 + +[beh@general_guard] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +delay_anim = guard +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {!actor_true_enemy} true, false + +[beh@general_work] +behavior_state = beh_move +target = waypoint +walk_dist = 90 +jog_dist = 150 +wait_anim = guard +jog_anim = assault +run_anim = assault +delay_anim = guard +use_camp = true +turn_on_campfire = true +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = true + +[beh@ros_smart_stalker_killers1_guard_work_1]:beh@general_guard +pt1 = 88860000,hide | pos: -226.03277587891, 4.5571184158325, 53.652900695801 look: -225.60137939453, 4.9697222709656, 54.408302307129 +path_end = loop + +[beh@ros_smart_stalker_killers1_guard_work_2]:beh@general_guard +pt1 = 88860000,hide | pos: -239.54244995117, 4.5597152709961, 61.015357971191 look: -239.04281616211, 4.8370161056519, 61.862991333008 +path_end = loop + +[beh@ros_smart_stalker_killers1_guard_work_3]:beh@general_guard +pt1 = 88860000,hide | pos: -244.99716491699, 4.5565819740295, 55.532032012939 look: -245.32739257812, 4.5406951904297, 55.849632263184 +path_end = loop + +[beh@ros_smart_stalker_killers1_guard_work_4]:beh@general_guard +pt1 = 88860000,guard | pos: look: +path_end = loop + +[beh@ros_smart_stalker_killers1_guard_work_5]:beh@general_guard +pt1 = 88860000,guard | pos: look: +path_end = loop + +[beh@ros_smart_stalker_killers1_camp_work_1]:beh@general_work +pt1 = 88860000,sit_ass | pos: -264.59246826172, -0.0015785992145538, 12.501624107361 look: -263.22497558594, 0.34754139184952, 14.234840393066 +path_end = loop + +[beh@ros_smart_stalker_killers1_camp_work_2]:beh@general_work +pt1 = 88860000,sit_ass | pos: -264.58145141602, -0.007137805223465, 16.577444076538 look: -263.22497558594, 0.34754139184952, 14.234840393066 +path_end = loop + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_killers1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_killers1.ltx new file mode 100644 index 00000000..55761793 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_killers1.ltx @@ -0,0 +1,27 @@ +[smart_terrain] +squad_id = 2 +max_population = 2 +respawn_params = respawn@ros_smart_killers1 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +faction_controlled = stalker, bandit, killer, dolg, army, +default_faction = killer +faction_respawn_num = 1 + +;[respawn@ros_smart_killers1] ;-- Type: + + +[on_changing_level] +on_info = %=script(redone_xr_dynamic_object:dynamic_object:misc\spawn_object\ros_smart_killers1_object.ltx)% + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_monster4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_monster4.ltx new file mode 100644 index 00000000..ac09cd00 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_monster4.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 5 +max_population = 2 +respawn_params = respawn@ros_smart_monster4 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@ros_smart_monster4] ;-- Type: faction {zombied} = wahyy... +spawn_zombie +spawn_mutants + + +[spawn_zombie] ;-- Weak\normal mutants - Rates of groups: ( 4 zombie ) +spawn_squads = simulation_zombie, simulation_zombie_3_6, simulation_mix_zombie, simulation_zombie_blind_3zomb_civ +spawn_num = {+yan_kill_brain_done} 0, 1 + +[spawn_mutants] ;-- Normal\hard mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 cat + 2 snork + 1 fracture + 1 psy dog + 1 lurker ) +spawn_squads = simulation_tushkano_7_10, simulation_dog_5_7, simulation_mix_dogs, simulation_cat_3_5, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture, simulation_psy_dog, simulation_lurker_1_2 +spawn_num = {+yan_kill_brain_done} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_monster5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_monster5.ltx new file mode 100644 index 00000000..fc7a6caf --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_monster5.ltx @@ -0,0 +1,38 @@ +[smart_terrain] +squad_id = 6 +max_population = 2 +respawn_params = respawn@ros_smart_monster5 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@ros_smart_monster5] ;-- Type: faction {zombied} = wahat... +spawn_zombie +spawn_mutants +spawn_mutants_rare + + +[spawn_zombie] ;-- Normal mutants - Rates of groups: ( 3 zombie + 1 zombied ) +spawn_squads = simulation_zombie_3_6, simulation_mix_zombie, zombied_sim_squad_mix +spawn_num = {+yan_kill_brain_done} 0, 1 + +[spawn_mutants] ;-- Normal mutants - Rates of groups: ( 1 tushkano + 1 dog + 2 snork + 1 fracture ) +spawn_squads = simulation_tushkano_7_10, simulation_mix_dogs, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture +spawn_num = {+yan_kill_brain_done} 1, 0 + +[spawn_mutants_rare] ;-- Rare mutants - Rates of groups: ( 1 polter ) +spawn_squads = simulation_poltergeist_tele ;simulation_poltergeist_black +spawn_num = {~20} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_monster7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_monster7.ltx new file mode 100644 index 00000000..b97e8bdc --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_monster7.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 8 +max_population = 1 +respawn_params = respawn@ros_smart_monster7 +respawn_only_smart = true +respawn_idle = 345600 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@ros_smart_monster7] ;-- Type: +spawn_all_normal + + +[spawn_all_normal] ;-- Normal\hard mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 cat + 2 snork ) +spawn_squads = simulation_tushkano_7_10, simulation_dog_5_7, simulation_mix_dogs, simulation_cat_3_5, simulation_snork_2_3, simulation_snork_2_5 +spawn_num = {+yan_kill_brain_done ~50} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_poltergeist2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_poltergeist2.ltx new file mode 100644 index 00000000..acd360a1 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_poltergeist2.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 11 +max_population = 2 +respawn_params = respawn@ros_smart_poltergeist2 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@ros_smart_poltergeist2] ;-- Type: +spawn_tushkano +spawn_snork + + +[spawn_tushkano] ;-- Weak mutants - Rates of groups: ( 2 tushkano ) +spawn_squads = simulation_tushkano, simulation_tushkano_7_10 +spawn_num = {~20} 1, 0 + +[spawn_snork] ;-- Normal\hard mutants - Rates of groups: ( 3 snork ) +spawn_squads = simulation_snork, simulation_snork_2_3, simulation_snork_2_5 +spawn_num = {+yan_kill_brain_done} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_snork1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_snork1.ltx new file mode 100644 index 00000000..f6bbf6be --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_snork1.ltx @@ -0,0 +1,35 @@ +[smart_terrain] +squad_id = 12 +max_population = 1 +respawn_params = respawn@ros_smart_snork1 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@ros_smart_snork1] ;-- Type: +spawn_dogs +spawn_snork + + +[spawn_dogs] ;-- Normal\hard mutants - Rates of groups: ( 3 dogs ) +spawn_squads = simulation_dog, simulation_dog_5_7, simulation_mix_dogs +spawn_num = 1 + +[spawn_snork] ;-- Normal\hard mutants - Rates of groups: ( 3 snork + 1 fracture ) +spawn_squads = simulation_snork, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture +spawn_num = 1 + + +[on_changing_level] +on_info = %=script(redone_xr_dynamic_object:dynamic_object:misc\spawn_object\ros_smart_snork1_objects.ltx)% + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_stalker1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_stalker1.ltx new file mode 100644 index 00000000..548714ab --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_stalker1.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 15 +;max_population = 1 +;respawn_params = respawn@ros_smart_stalker1 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@ros_smart_stalker1] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_stalker_killers1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_stalker_killers1.ltx new file mode 100644 index 00000000..ccdb25b5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/rostok/smart/ros_smart_stalker_killers1.ltx @@ -0,0 +1,35 @@ +[smart_terrain] +squad_id = 14 +max_population = 2 +respawn_params = respawn@ros_smart_stalker_killers1 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +faction_controlled = bandit, killer, dolg, army +default_faction = killer +faction_respawn_num = 1 + +;[respawn@ros_smart_stalker_killers1] ;-- Type: + + +[on_changing_level] +on_info = %=script(redone_xr_dynamic_object:dynamic_object:misc\spawn_object\ros_smart_stalker_killers1_objects.ltx)% + +;[smart_control] + +[exclusive] +ros_smart_stalker_killers1_guard_work_1 = rostok\ros_smart_stalker_killers1_smart_logic.ltx +ros_smart_stalker_killers1_guard_work_2 = rostok\ros_smart_stalker_killers1_smart_logic.ltx +ros_smart_stalker_killers1_guard_work_3 = rostok\ros_smart_stalker_killers1_smart_logic.ltx +;ros_smart_stalker_killers1_guard_work_4 = rostok\ros_smart_stalker_killers1_smart_logic.ltx +;ros_smart_stalker_killers1_guard_work_5 = rostok\ros_smart_stalker_killers1_smart_logic.ltx + +ros_smart_stalker_killers1_camp_work_1 = rostok\ros_smart_stalker_killers1_smart_logic.ltx +;ros_smart_stalker_killers1_camp_work_2 = rostok\ros_smart_stalker_killers1_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/mod_trc_crow_spawner_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/mod_trc_crow_spawner_redone.ltx new file mode 100644 index 00000000..ac4f85b6 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/mod_trc_crow_spawner_redone.ltx @@ -0,0 +1,19 @@ +![logic] +!active = sr_crow_spawner +active = sr_idle@check_story + +[sr_idle@check_story] +on_info = {-story_mode_disabled} sr_idle@check_actor, {+story_mode_disabled -yan_x16_complete_end} sr_idle@check_actor %+yan_kill_brain_done% + +[sr_idle@check_actor] +on_info = {=actor_community(actor_monolith) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, {=actor_community(actor_greh) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, sr_idle@check_helmet + +[sr_idle@check_helmet] +on_info = {=actor_has_item(good_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, {=actor_has_item(bad_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, sr_idle@check_spawner + +[sr_idle@check_spawner] +on_info = sr_crow_spawner + +![sr_crow_spawner] +max_crows_on_level = 5 +spawn_path = trc_crow_spawn_1, trc_crow_spawn_2, trc_crow_spawn_3, trc_crow_spawn_4, trc_crow_spawn_5 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_1.ltx new file mode 100644 index 00000000..390eb5a5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_1.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 1 +max_population = 1 +respawn_params = respawn@trc_sim_1 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@trc_sim_1] ;-- Type: faction {bandit, renegade} = campsite +spawn_bandits@novice +spawn_renegade@novice + + +[spawn_bandits@novice] +spawn_squads = bandit_sim_squad_novice, renegade_sim_squad_novice, renegade_sim_squad_advanced +spawn_num = {+zat_b5_sultan_dead} 0, 2 + +[spawn_renegade@novice] +spawn_squads = renegade_sim_squad_novice, renegade_sim_squad_novice, renegade_sim_squad_advanced +spawn_num = {+zat_b5_sultan_dead} 2, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_10.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_10.ltx new file mode 100644 index 00000000..1c23c5e6 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_10.ltx @@ -0,0 +1,26 @@ +[smart_terrain] +squad_id = 10 +max_population = 2 +respawn_params = respawn@trc_sim_10 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +faction_controlled = stalker, bandit, csky, ecolog, dolg +default_faction = dolg +faction_respawn_num = 1 + +;[respawn@trc_sim_10] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_11.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_11.ltx new file mode 100644 index 00000000..4d08094a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_11.ltx @@ -0,0 +1,23 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 11 +max_population = 1 +;respawn_params = respawn@trc_sim_14 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@trc_sim_14] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_12.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_12.ltx new file mode 100644 index 00000000..b63227f9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_12.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 12 +max_population = 1 +respawn_params = respawn@trc_sim_12 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@trc_sim_12] ;-- Type: c_2_1 + c_2_2 edited +spawn_predatory_c_2_1 +spawn_predatory_c_2_2 + + +[spawn_predatory_c_2_1] ;-- Hard mutants - Rates of groups: ( 1 dogs + 3 lurker + 1 psy dog ) +spawn_squads = simulation_mix_dogs, simulation_lurker_blue, simulation_lurker_brown, simulation_lurker_black, simulation_psy_dog +spawn_num = {!actor_week_in_zone(4)} 1, {=actor_week_in_zone(4)} 0 + +[spawn_predatory_c_2_2] ;-- Hard mutants - Rates of groups: ( 1 dogs + 2 lurker + 1 psy dog ) +spawn_squads = simulation_mix_dogs, simulation_lurker, simulation_lurker_1_2, simulation_psy_dog_squad +spawn_num = {=actor_week_in_zone(4)} 1, {!actor_week_in_zone(4)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_13.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_13.ltx new file mode 100644 index 00000000..89c7f81d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_13.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 13 +max_population = 2 +respawn_params = respawn@trc_sim_13 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@trc_sim_13] ;-- Type: +spawn_zombie +spawn_snork + + +[spawn_zombie] ;-- Weak mutants - Rates of groups: ( 3 zombie ) +spawn_squads = simulation_zombie, simulation_zombie_3_6, simulation_mix_zombie +spawn_num = {+bar_deactivate_radar_done +yan_kill_brain_done} 0, 1 + +[spawn_snork] ;-- Normal\hard mutants - Rates of groups: ( 2 snork + 2 fracture ) +spawn_squads = simulation_snork_2_3, simulation_snork_2_5, simulation_fracture, simulation_fracture +spawn_num = {+bar_deactivate_radar_done +yan_kill_brain_done} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_14.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_14.ltx new file mode 100644 index 00000000..cc36c8b3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_14.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 14 +max_population = 1 +respawn_params = respawn@trc_sim_14 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@trc_sim_14] ;-- Type: +spawn_tushkano + + +[spawn_tushkano] ;-- Weak mutants - Rates of groups: ( 2 tushkano ) +spawn_squads = simulation_tushkano, simulation_tushkano_7_10 +spawn_num = 2 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_15.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_15.ltx new file mode 100644 index 00000000..fe92d770 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_15.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 15 +max_population = 2 +respawn_params = respawn@trc_sim_15 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@trc_sim_15] ;-- Type: +spawn_snork +spawn_lurker + + +[spawn_snork] ;-- Normal mutants - Rates of groups: ( 3 snork ) +spawn_squads = simulation_snork, simulation_snork_2_3, simulation_snork_2_5 +spawn_num = 2 + +[spawn_lurker] ;-- Hard mutants - Rates of groups: ( 2 lurker ) +spawn_squads = simulation_lurker, simulation_lurker_blue +spawn_num = {~50} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_16.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_16.ltx new file mode 100644 index 00000000..def23e0a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_16.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 16 +max_population = 1 +respawn_params = respawn@trc_sim_16 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@trc_sim_16] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Normal mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 pseudodog +1 cats ) +spawn_squads = simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_pseudodog, simulation_cat +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 pseudodog + 3 fleshes/boars ) +spawn_squads = simulation_dog, simulation_mix_dogs, simulation_pseudodog, simulation_mix_boar_flesh, simulation_flesh, simulation_boar_3_5 +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_17.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_17.ltx new file mode 100644 index 00000000..1fc6fc68 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_17.ltx @@ -0,0 +1,38 @@ +[smart_terrain] +squad_id = 17 +max_population = 1 +respawn_params = respawn@trc_sim_17 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@trc_sim_17] ;-- Type: faction {zombied} = wahyy... +spawn_zombied_squad +spawn_zombie +spawn_snork + + +[spawn_zombied_squad] +spawn_squads = zombied_sim_squad_novice, zombied_sim_squad_novice, zombied_sim_squad_mix +spawn_num = {+bar_deactivate_radar_done} 0, 1 + +[spawn_zombie] ;-- Normal mutants - Rates of groups: ( 2 zombie ) +spawn_squads = simulation_zombie_blind_3zomb, simulation_zombie_blind_3zomb_civ +spawn_num = {+bar_deactivate_radar_done +yan_kill_brain_done} 0, 1 + +[spawn_snork] ;-- Normal\hard mutants - Rates of groups: ( 2 snork + 2 fracture ) +spawn_squads = simulation_snork_2_3, simulation_snork_2_5, simulation_fracture, simulation_fracture +spawn_num = {+bar_deactivate_radar_done +yan_kill_brain_done} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_18.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_18.ltx new file mode 100644 index 00000000..374bb2e6 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_18.ltx @@ -0,0 +1,26 @@ +[smart_terrain] +squad_id = 18 +max_population = 2 +respawn_params = respawn@trc_sim_18 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +faction_controlled = stalker, bandit, freedom, army, dolg, renegade +default_faction = army +faction_respawn_num = 1 + +;[respawn@trc_sim_18] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_19.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_19.ltx new file mode 100644 index 00000000..62905bd1 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_19.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 19 +max_population = 1 +respawn_params = respawn@trc_sim_19 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@trc_sim_19] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Normal mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 pseudodog + 1 cats +1 flesh ) +spawn_squads = simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_pseudodog, simulation_cat, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 pseudodog + 3 fleshes/boars ) +spawn_squads = simulation_dog, simulation_mix_dogs, simulation_pseudodog, simulation_mix_boar_flesh, simulation_flesh, simulation_boar_3_5 +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_2.ltx new file mode 100644 index 00000000..2e7b3f08 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_2.ltx @@ -0,0 +1,23 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 2 +max_population = 1 +;respawn_params = respawn@trc_sim_2 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@trc_sim_2] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_20.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_20.ltx new file mode 100644 index 00000000..25f1a5cc --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_20.ltx @@ -0,0 +1,37 @@ +[smart_terrain] +squad_id = 20 +max_population = 1 +respawn_params = respawn@trc_sim_20 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@trc_sim_20] ;-- Type: faction {bandit, renegade} = outpost +spawn_bandit@novice +spawn_renegade@novice + + +[spawn_bandit@novice] +spawn_squads = bandit_sim_squad_novice, bandit_sim_squad_novice, bandit_sim_squad_advanced +spawn_num = {+zat_b5_sultan_dead} 4, 2 + +[spawn_renegade@novice] +spawn_squads = renegade_sim_squad_novice, renegade_sim_squad_novice, renegade_sim_squad_advanced +spawn_num = {+zat_b5_sultan_dead} 4, 2 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +trucks_cemetery_bandit_mechanic = trucks_cemetery\trucks_cemetery_bandit_mechanic_logic.ltx +trucks_cemetery_bandit_trader = trucks_cemetery\trucks_cemetery_bandit_trader_logic.ltx + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_21.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_21.ltx new file mode 100644 index 00000000..1c6bfd76 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_21.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 21 +max_population = 1 +respawn_params = respawn@trc_sim_21 +respawn_only_smart = false +respawn_idle = 345600 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@trc_sim_21] +spawn_gigant +spawn_chimera + + +[spawn_gigant] ;-- Hard mutants - Rates of groups: ( 1 gigant ) +spawn_squads = simulation_gigant +spawn_num = {~10} 1, 0 + +[spawn_chimera] ;-- Hard mutants - Rates of groups: ( 1 chimera ) +spawn_squads = simulation_chimera +spawn_num = {~10} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_3.ltx new file mode 100644 index 00000000..289aefa3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_3.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 3 +max_population = 1 +;respawn_params = respawn@trc_sim_3 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@trc_sim_3] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_4.ltx new file mode 100644 index 00000000..3b954251 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_4.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 4 +max_population = 1 +respawn_params = respawn@trc_sim_4 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@trc_sim_4] ;-- Type: c_2_1 + c_2_2 edited +spawn_predatory_c_2_1 +spawn_predatory_c_2_2 + + +[spawn_predatory_c_2_1] ;-- Hard mutants - Rates of groups: ( 1 dogs + 3 lurker + 1 psy dog ) +spawn_squads = simulation_mix_dogs, simulation_lurker_blue, simulation_lurker_brown, simulation_lurker_black, simulation_psy_dog +spawn_num = {!actor_week_in_zone(4)} 1, {=actor_week_in_zone(4)} 0 + +[spawn_predatory_c_2_2] ;-- Hard mutants - Rates of groups: ( 1 dogs + 2 lurker + 1 psy dog ) +spawn_squads = simulation_mix_dogs, simulation_lurker, simulation_lurker_1_2, simulation_psy_dog_squad +spawn_num = {=actor_week_in_zone(4)} 1, {!actor_week_in_zone(4)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_5.ltx new file mode 100644 index 00000000..447a08ac --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_5.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 5 +max_population = 0 +;respawn_params = respawn@trc_sim_5 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@trc_sim_5] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_6.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_6.ltx new file mode 100644 index 00000000..abcb96cd --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_6.ltx @@ -0,0 +1,22 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 6 +max_population = 1 +;respawn_params = respawn@trc_sim_6 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@trc_sim_6] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_7.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_7.ltx new file mode 100644 index 00000000..3bc08d73 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_7.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 7 +max_population = 1 +respawn_params = respawn@trc_sim_7 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@trc_sim_7] ;-- Type: +spawn_all_weak +spawn_all_normal + + +[spawn_all_weak] ;-- Weak mutants - Rates of groups:( 2 tushkano + 2 dogs + 2 cats ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_cat +spawn_num = 1 + +[spawn_all_normal] ;-- Normal mutants - Rates of groups: ( 2 dogs + 2 cats + 3 fleshes/boars ) +spawn_squads = simulation_dog, simulation_mix_dogs, simulation_cat, simulation_cat_3_5, simulation_mix_boar_flesh, simulation_flesh, simulation_boar_3_5 +spawn_num = 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_8.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_8.ltx new file mode 100644 index 00000000..2491e7c0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_8.ltx @@ -0,0 +1,23 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 8 +max_population = 2 +;respawn_params = respawn@trc_sim_8 +;respawn_only_smart = false +;respawn_idle = 86400 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +;[respawn@trc_sim_8] ;-- Type: + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_9.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_9.ltx new file mode 100644 index 00000000..411bcc6e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/smart/trc_sim_9.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 9 +max_population = 1 +respawn_params = respawn@trc_sim_9 +;respawn_only_smart = false +;respawn_idle = 259200 +;respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@trc_sim_9] ;-- Type: c_2_1 + c_2_2 edited +spawn_predatory_c_2_1 +spawn_predatory_c_2_2 + + +[spawn_predatory_c_2_1] ;-- Hard mutants - Rates of groups: ( 1 dogs + 3 lurker + 1 psy dog ) +spawn_squads = simulation_mix_dogs, simulation_lurker_blue, simulation_lurker_brown, simulation_lurker_black, simulation_psy_dog +spawn_num = {!actor_week_in_zone(4)} 1, {=actor_week_in_zone(4)} 0 + +[spawn_predatory_c_2_2] ;-- Hard mutants - Rates of groups: ( 1 dogs + 2 lurker + 1 psy dog ) +spawn_squads = simulation_mix_dogs, simulation_lurker, simulation_lurker_1_2, simulation_psy_dog_squad +spawn_num = {=actor_week_in_zone(4)} 1, {!actor_week_in_zone(4)} 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_1.ltx new file mode 100644 index 00000000..fe78d0a7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_1.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(trc_sim_5) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(trc_sim_5) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(trc_sim_9) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(trc_sim_9) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(trc_sim_16) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(trc_sim_16) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(trc_sim_19) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(trc_sim_19) =is_dark_night} ph_idle@spawn_dark_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:trc_sim_5)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:trc_sim_5)% ph_idle@reset, {~10} %=create_squad(simulation_boar_3_5_night:trc_sim_5)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:trc_sim_5)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:trc_sim_5)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_1_2_night:trc_sim_5)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_1_2_night:trc_sim_5)% ph_idle@reset, {~10} %=create_squad(simulation_psy_dog_night:trc_sim_5)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_dog_night:trc_sim_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_cat_night:trc_sim_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_boar_night:trc_sim_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:trc_sim_9)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_gigant_night:trc_sim_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:trc_sim_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:trc_sim_9)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:trc_sim_9)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_dog_night:trc_sim_16)% ph_idle@reset_3, {~10} %=create_squad(simulation_cat_night:trc_sim_16)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:trc_sim_16)% ph_idle@reset_3, {~10} %=create_squad(simulation_lurker_brown_night:trc_sim_16)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:trc_sim_16)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_16)% ph_idle@reset_3, {~10} %=create_squad(simulation_karlik_night:trc_sim_16)% ph_idle@reset_3, {~10} %=create_squad(simulation_lurker_brown_night:trc_sim_16)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_mix_dogs_night:trc_sim_19)% ph_idle@reset_4, {~10} %=create_squad(simulation_cat_3_5_night:trc_sim_19)% ph_idle@reset_4, {~10} %=create_squad(simulation_psy_dog_night:trc_sim_19)% ph_idle@reset_4, {~10} %=create_squad(simulation_karlik_night:trc_sim_19)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:trc_sim_19)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_19)% ph_idle@reset_4, {~10} %=create_squad(simulation_psy_dog_night:trc_sim_19)% ph_idle@reset_4, {~10} %=create_squad(simulation_karlik_night:trc_sim_19)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_2.ltx new file mode 100644 index 00000000..323fec4d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_2.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(trc_sim_11) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(trc_sim_11) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(trc_sim_13) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(trc_sim_13) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(trc_sim_14) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(trc_sim_14) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(trc_sim_15) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(trc_sim_15) =is_dark_night} ph_idle@spawn_dark_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_psy_dog_night:trc_sim_11)% ph_idle@reset, {~10} %=create_squad(simulation_dog_5_7_night:trc_sim_11)% ph_idle@reset, {~10} %=create_squad(simulation_cat_3_5_night:trc_sim_11)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_brown_night:trc_sim_11)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_chimera_2weak_night:trc_sim_11)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_11)% ph_idle@reset, {~10} %=create_squad(simulation_karlik_night:trc_sim_11)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_brown_night:trc_sim_11)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_tushkano_night:trc_sim_13)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:trc_sim_13)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:trc_sim_13)% ph_idle@reset_2, {~10} %=create_squad(simulation_snork_2_3_night:trc_sim_13)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_karlik_night:trc_sim_13)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:trc_sim_13)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:trc_sim_13)% ph_idle@reset_2, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_13)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_psy_dog_night:trc_sim_14)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_white_night:trc_sim_14)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_14)% ph_idle@reset_3, {~10} %=create_squad(simulation_snork_2_3_night:trc_sim_14)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_contr_5zomb_weak_night:trc_sim_14)% ph_idle@reset_3, {~10} %=create_squad(simulation_bur_5rat_day_night:trc_sim_14)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_14)% ph_idle@reset_3, {~10} %=create_squad(simulation_snork_2_3_night:trc_sim_14)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_lurker_brown_night:trc_sim_15)% ph_idle@reset_4, {~10} %=create_squad(simulation_chimera_night:trc_sim_15)% ph_idle@reset_4, {~10} %=create_squad(simulation_psy_dog_night:trc_sim_15)% ph_idle@reset_4, {~10} %=create_squad(simulation_snork_2_5_night:trc_sim_15)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_lurker_brown_night:trc_sim_15)% ph_idle@reset_4, {~10} %=create_squad(simulation_chimera_night:trc_sim_15)% ph_idle@reset_4, {~10} %=create_squad(simulation_psysucker_night:trc_sim_15)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_15)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_3.ltx new file mode 100644 index 00000000..9c3161d2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/trucks_cemetery/trc_endless_night_spawn_logic_3.ltx @@ -0,0 +1,50 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(trc_sim_10) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(trc_sim_10) =is_dark_night} ph_idle@spawn_dark_monster_1 +on_info2 = {=actor_near_smart(trc_sim_6) =is_night} ph_idle@spawn_night_monster_2, {=actor_near_smart(trc_sim_6) =is_dark_night} ph_idle@spawn_dark_monster_2 +on_info3 = {=actor_near_smart(trc_sim_8) =is_night} ph_idle@spawn_night_monster_3, {=actor_near_smart(trc_sim_8) =is_dark_night} ph_idle@spawn_dark_monster_3 +on_info4 = {=actor_near_smart(trc_sim_17) =is_night} ph_idle@spawn_night_monster_4, {=actor_near_smart(trc_sim_17) =is_dark_night} ph_idle@spawn_dark_monster_4 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:trc_sim_10)% ph_idle@reset, {~10} %=create_squad(simulation_dog_night:trc_sim_10)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:trc_sim_10)% ph_idle@reset, {~10} %=create_squad(simulation_cat_night:trc_sim_10)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_10)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:trc_sim_10)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:trc_sim_10)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_blue_night:trc_sim_10)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_2] +on_info = {~10} %=create_squad(simulation_snork_night:trc_sim_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_fracture_night:trc_sim_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_night:trc_sim_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_pseudodog_night:trc_sim_6)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_2] +on_info = {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_psysucker_night:trc_sim_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_zombie_blind_3zomb_civ_night:trc_sim_6)% ph_idle@reset_2, {~10} %=create_squad(simulation_psy_dog_night:trc_sim_6)% ph_idle@reset_2, ph_idle@wait_reset + +[ph_idle@reset_2] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_3] +on_info = {~10} %=create_squad(simulation_psy_dog_night:trc_sim_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_psysucker_night:trc_sim_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_snork_2_5_night:trc_sim_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_8)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_3] +on_info = {~10} %=create_squad(simulation_gigant_night:trc_sim_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_chimera_night:trc_sim_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_snork_2_5_night:trc_sim_8)% ph_idle@reset_3, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_8)% ph_idle@reset_3, ph_idle@wait_reset + +[ph_idle@reset_3] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@spawn_night_monster_4] +on_info = {~10} %=create_squad(simulation_pseudodog_night:trc_sim_17)% ph_idle@reset_4, {~10} %=create_squad(simulation_fracture_night:trc_sim_17)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_17)% ph_idle@reset_4, {~10} %=create_squad(simulation_lurker_blue_night:trc_sim_17)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_4] +on_info = {~10} %=create_squad(simulation_psysucker_night:trc_sim_17)% ph_idle@reset_4, {~10} %=create_squad(simulation_contr_5rat_3tush_night:trc_sim_17)% ph_idle@reset_4, {~10} %=create_squad(simulation_bloodsucker_night:trc_sim_17)% ph_idle@reset_4, {~10} %=create_squad(simulation_bur_5rat_day_night:trc_sim_17)% ph_idle@reset_4, ph_idle@wait_reset + +[ph_idle@reset_4] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_crow_spawner_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_crow_spawner_redone.ltx new file mode 100644 index 00000000..9c507889 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_crow_spawner_redone.ltx @@ -0,0 +1,46 @@ +![logic] +!active = sr_crow_spawner +active = sr_idle@check_story + +[sr_idle@check_story] +on_info = {-story_mode_disabled} sr_idle@check_actor, {+story_mode_disabled -yan_x16_complete_end} sr_idle@check_actor %+yan_kill_brain_done% + +[sr_idle@check_actor] +on_info = {=actor_community(actor_monolith) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, {=actor_community(actor_greh) -yan_x16_complete_end} sr_idle@check_helmet %+yan_kill_brain_done%, sr_idle@check_helmet + +[sr_idle@check_helmet] +on_info = {=actor_has_item(good_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, {=actor_has_item(bad_psy_helmet)} sr_idle@check_spawner %+living_legend_psy_helmet%, sr_idle@check_spawner + +[sr_idle@check_spawner] +on_info = {+yan_kill_brain_done} sr_crow_spawner +on_info2 = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead -yan_spawn_complete} sr_idle@check_spawn_1_1 + +[sr_idle@check_spawn_1_1] +on_info = {-agr_military_colonel_kovalski_dead} sr_idle@spawn_1_1, sr_idle@spawn_2_1 +[sr_idle@check_spawn_2_1] +on_info = {-cit_killers_aslan_dead -cit_killers_dushman_dead} sr_idle@spawn_2_1, sr_idle@spawn_end_1 +[sr_idle@spawn_1_1] +on_game_timer = 43200 | sr_idle@check_spawn_2_1 %=create_squad(yan_army_spetsnaz_squad:yan_smart_terrain_3_6) =create_squad(yan_army_spetsnaz_squad2:yan_smart_terrain_6_4)% +[sr_idle@spawn_2_1] +on_game_timer = 86400 | sr_idle@spawn_end_1 %=create_squad(yan_killer_special_team:yan_smart_terrain_4_4) =create_squad(yan_killer_special_team:yan_smart_terrain_4_5) =create_squad(yan_killer_special_team2:yan_smart_terrain_5_5)% + +[sr_idle@spawn_end_1] +on_info = sr_idle@check_spawner %+yan_spawn_complete% + +![sr_crow_spawner] +max_crows_on_level = 5 +spawn_path = yan_crow_spawn_1, yan_crow_spawn_2, yan_crow_spawn_3, yan_crow_spawn_4, yan_crow_spawn_5 +on_info50 = {-yan_kill_brain_done} sr_idle@check_spawner +on_info51 = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead -yan_spawn_complete} sr_idle@check_spawn_1_2 + +[sr_idle@check_spawn_1_2]:sr_crow_spawner +on_info = {-agr_military_colonel_kovalski_dead sr_idle@spawn_1_2, sr_idle@spawn_2_2 +[sr_idle@check_spawn_2_2]:sr_crow_spawner +on_info = {-cit_killers_aslan_dead -cit_killers_dushman_dead} sr_idle@spawn_2_2, sr_idle@spawn_end_2 +[sr_idle@spawn_1_2]:sr_crow_spawner +on_game_timer = 43200 | sr_idle@check_spawn_2_2 %=create_squad(yan_army_spetsnaz_squad:yan_smart_terrain_3_6) =create_squad(yan_army_spetsnaz_squad2:yan_smart_terrain_6_4)% +[sr_idle@spawn_2_2]:sr_crow_spawner +on_game_timer = 86400 | sr_idle@spawn_end_2_2 %=create_squad(yan_killer_special_team:yan_smart_terrain_4_4) =create_squad(yan_killer_special_team:yan_smart_terrain_4_5) =create_squad(yan_killer_special_team2:yan_smart_terrain_5_5)% + +[sr_idle@spawn_end_2]:sr_crow_spawner +on_info = sr_idle@check_spawner %+yan_spawn_complete% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_saharov_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_saharov_logic_redone.ltx new file mode 100644 index 00000000..c24b5717 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_saharov_logic_redone.ltx @@ -0,0 +1,5 @@ +![logic@yan_saharov] +on_death = death_saharov + +[death_saharov] +on_info = %+yan_stalker_sakharov_dead% \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_saharov_no_weapons.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_saharov_no_weapons.ltx new file mode 100644 index 00000000..3a628e66 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_saharov_no_weapons.ltx @@ -0,0 +1,2 @@ +![logic@yan_saharov] +can_select_weapon = false \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_scientist_bunker_door2_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_scientist_bunker_door2_redone.ltx new file mode 100644 index 00000000..66102be3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_scientist_bunker_door2_redone.ltx @@ -0,0 +1,12 @@ +![ph_door@closed] +on_use = ph_door@open %+yan_smart_terrain_6_4_outer_door_open% +on_info1 = {+yan_smart_terrain_6_4_inner_door_open} ph_door@locked %-yan_smart_terrain_6_4_outer_door_open% + +![ph_door@open] +on_use = ph_door@closed %-yan_smart_terrain_6_4_outer_door_open% +on_info = {+yan_smart_terrain_6_4_inner_door_open} ph_door@closed %-yan_smart_terrain_6_4_outer_door_open% +on_game_timer = 20 | ph_door@closed %-yan_smart_terrain_6_4_outer_door_open% + +![ph_door@locked] +on_info1 = {-yan_smart_terrain_6_4_inner_door_open} ph_door@closed +on_game_timer = 20 | ph_door@closed diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_scientist_bunker_door_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_scientist_bunker_door_redone.ltx new file mode 100644 index 00000000..8bb03cf5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_scientist_bunker_door_redone.ltx @@ -0,0 +1,12 @@ +![ph_door@closed] +on_use = ph_door@open %+yan_smart_terrain_6_4_inner_door_open% +on_info1 = {+yan_smart_terrain_6_4_outer_door_open} ph_door@locked %-yan_smart_terrain_6_4_inner_door_open% + +![ph_door@open] +on_use = ph_door@closed %-yan_smart_terrain_6_4_inner_door_open% +on_info = {+yan_smart_terrain_6_4_outer_door_open} ph_door@closed %-yan_smart_terrain_6_4_inner_door_open% +on_game_timer = 20 | ph_door@closed %-yan_smart_terrain_6_4_inner_door_open% + +![ph_door@locked] +on_info1 = {-yan_smart_terrain_6_4_outer_door_open} ph_door@closed +on_game_timer = 20 | ph_door@closed diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_scientists_logic_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_scientists_logic_redone.ltx new file mode 100644 index 00000000..65e6eed8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_scientists_logic_redone.ltx @@ -0,0 +1,104 @@ +![logic@yan_kruglov] +on_death = death_kruglov + +[death_kruglov] +on_info = %+yan_ecolog_kruglov_dead% + +![walker@yan_kruglov]:walker@def +on_info2 = {+yantar_tunnel_finish} campfire_point@kruglov + +[campfire_point@kruglov]:walker@def_lab +smart = yan_smart_terrain_2_4 +use_camp = true +anim = scaner_stand, guard +on_info = {=surge_started} beh@surge_1 +on_info2 = {+mortal_sin} walker@yan_kruglov_sin + +[walker@yan_kruglov_sin]:walker@def +path_walk = collector_1_walk +path_look = collector_1_look +on_info = {=surge_started} walker@hide_1 +on_info2 = {-mortal_sin} campfire_point@kruglov + +![logic@yan_semenov] +on_death = death_semenov + +[death_semenov] +on_info = %+yan_ecolog_semenov_dead% + +![logic@yan_vasiliev] +on_death = death_vasiliev + +[death_vasiliev] +on_info = %+yan_ecolog_vasilyev_dead% + +![walker@yan_vasiliev]:walker@def +path_walk = collector_3_walk +path_look = collector_3_look +on_info2 = {+yantar_tunnel_finish} campfire_point@vasiliev + +[campfire_point@vasiliev]:walker@def_lab +smart = yan_smart_terrain_3_4 +use_camp = true +anim = probe_stand, guard +on_info = {=surge_started} beh@surge_2 +on_info2 = {+mortal_sin} walker@yan_vasiliev_sin + +[walker@yan_vasiliev_sin]:walker@def +path_walk = collector_3_walk +path_look = collector_3_look +on_info = {=surge_started} walker@hide_1 +on_info2 = {-mortal_sin} campfire_point@vasiliev + +![patrol@base]:walker@def +on_info2 = {+yantar_tunnel_finish} campfire_point@yan_lab_guards + +[campfire_point@yan_lab_guards]:walker@def_lab +smart = yan_smart_terrain_3_4 +use_camp = false +anim = idle, guard +on_info = {=surge_started} beh@surge_3 +on_info2 = {+mortal_sin} patrol@base_sin + +[patrol@base_sin]:walker@def +path_walk = patrol_base +;commander = true +formation = line +meet = no_meet +def_state_moving = patrol +on_info = {=surge_started} walker@hide_4 +on_info2 = {-mortal_sin} campfire_point@yan_lab_guards + +[walker@def_lab] +;combat_ignore_cond = {=actor_enemy =check_enemy_name(actor)} false, true +;combat_ignore_keep_when_attacked = true +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false + +[beh@general] +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false + +[beh@surge_1]:beh@general +pt1 = 1500, idle | pos: -2.238817691803, 0.3178773522377, -6.5258741378784 look: -3.6336867809296, 0.31765586137772, 0.1618187725544 +on_info = {=surge_complete} walker@yan_kruglov + +[beh@surge_2]:beh@general +pt1 = 150, idle | pos: 26.950548171997, 0.026626795530319, 5.3820586204529, 78402, 2234 +pt2 = 1500, idle | pos: 28.244895935059, 0.3146465420723, -11.436881065369 look: 24.818380355835, 0.31357181072235, -5.9259762763977 +on_info = {=surge_complete} walker@yan_vasiliev + +[beh@surge_3]:beh@general +pt1 = 150, idle | pos: 27.782852172852, 0.034076303243637, 7.705039024353, 78773, 2234 look: 28.872228622437, 0.03869166970253, 5.879819393158 +pt2 = 1500, idle | pos: 21.94327545166, 0.31483441591263, -11.678646087646 look: 24.818380355835, 0.31357181072235, -5.9259762763977 +on_info = {=surge_complete} patrol@base \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_smart_terrain_6_4_ph_door_inner_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_smart_terrain_6_4_ph_door_inner_redone.ltx new file mode 100644 index 00000000..d741f460 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_smart_terrain_6_4_ph_door_inner_redone.ltx @@ -0,0 +1,39 @@ +![ph_door@closed] +on_use = ph_door@open %+yan_smart_terrain_6_4_inner_door_open% +;on_info = {!check_smart_alarm_status(yan_smart_terrain_6_4:normal)} ph_door@locked_alarm +on_info2 = {+yan_smart_terrain_6_4_outer_door_open} ph_door@locked %-yan_smart_terrain_6_4_inner_door_open% +;on_info3 = {+yan_smart_terrain_6_4_forced_open} ph_door@surge %+yan_smart_terrain_6_4_inner_door_open% + +![ph_door@open] +on_use = ph_door@closed %-yan_smart_terrain_6_4_inner_door_open% +;on_info = {!check_smart_alarm_status(yan_smart_terrain_6_4:normal)} ph_door@locked %-yan_smart_terrain_6_4_inner_door_open% +on_info2 = {!surge_started +yan_smart_terrain_6_4_outer_door_open} ph_door@locked %-yan_smart_terrain_6_4_inner_door_open% +on_game_timer = 20 | ph_door@closed %-yan_smart_terrain_6_4_inner_door_open% + +![ph_door@locked] +on_info = {-yan_smart_terrain_6_4_outer_door_open} ph_door@closed +;on_info2 = {!check_smart_alarm_status(yan_smart_terrain_6_4:normal)} ph_door@locked_alarm +;on_info3 = {+yan_smart_terrain_6_4_forced_open} ph_door@surge %+yan_smart_terrain_6_4_inner_door_open% +on_game_timer = 20 | ph_door@closed + +![ph_door@locked_alarm] +;on_info = {=check_smart_alarm_status(yan_smart_terrain_6_4:normal)} ph_door@closed +;on_info2 = {=check_smart_alarm_status(yan_smart_terrain_6_4:alarm)} ph_door@locked_base_alarm + +![ph_door@locked_base_alarm] +;on_info = {=check_smart_alarm_status(yan_smart_terrain_6_4:normal)} ph_door@closed +;on_info2 = {=check_smart_alarm_status(yan_smart_terrain_6_4:danger)} ph_door@locked_alarm + +![ph_door@surge] +;on_info = {!check_smart_alarm_status(yan_smart_terrain_6_4:normal)} ph_door@locked %-yan_smart_terrain_6_4_inner_door_open% +;on_info2 = {-yan_smart_terrain_6_4_forced_open} ph_door@open + + + + + + + + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_smart_terrain_6_4_ph_door_outer_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_smart_terrain_6_4_ph_door_outer_redone.ltx new file mode 100644 index 00000000..2064becc --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_smart_terrain_6_4_ph_door_outer_redone.ltx @@ -0,0 +1,54 @@ +![ph_door@closed] +on_use = ph_door@open %+yan_smart_terrain_6_4_outer_door_open% +;on_info = {!check_smart_alarm_status(yan_smart_terrain_6_4:normal)} ph_door@locked_alarm +on_info2 = {+yan_smart_terrain_6_4_inner_door_open} ph_door@locked +;on_info3 = {+yan_smart_terrain_6_4_forced_open} ph_door@surge %+yan_smart_terrain_6_4_outer_door_open% +snd_open_start = trader_door_open_start +snd_close_start = trader_door_close_start +snd_close_stop = trader_door_close_stop + +![ph_door@open] +on_use = ph_door@closed %-yan_smart_terrain_6_4_outer_door_open% +;on_info = {!check_smart_alarm_status(yan_smart_terrain_6_4:normal)} ph_door@locked %-yan_smart_terrain_6_4_outer_door_open% +;on_info2 = {+yan_smart_terrain_6_4_forced_open} ph_door@surge %+yan_smart_terrain_6_4_outer_door_open% +on_game_timer = 20 | ph_door@closed %-yan_smart_terrain_6_4_outer_door_open% + +![ph_door@locked] +on_info = {-yan_smart_terrain_6_4_inner_door_open} ph_door@closed +;on_info2 = {!check_smart_alarm_status(yan_smart_terrain_6_4:normal)} ph_door@locked_alarm +;on_info3 = {+yan_smart_terrain_6_4_forced_open} ph_door@surge %+yan_smart_terrain_6_4_outer_door_open% +on_game_timer = 20 | ph_door@closed + +![ph_door@locked_alarm] +;on_info = {=check_smart_alarm_status(yan_smart_terrain_6_4:normal)} ph_door@closed +;on_info2 = {=check_smart_alarm_status(yan_smart_terrain_6_4:alarm)} ph_door@locked_base_alarm + +![ph_door@locked_base_alarm] +;on_info = {=check_smart_alarm_status(yan_smart_terrain_6_4:normal)} ph_door@closed +;on_info2 = {=check_smart_alarm_status(yan_smart_terrain_6_4:danger)} ph_door@locked_alarm + +![ph_door@surge] +;on_info = {!check_smart_alarm_status(yan_smart_terrain_6_4:normal)} ph_door@locked %-yan_smart_terrain_6_4_outer_door_open% +;on_info2 = {-yan_smart_terrain_6_4_forced_open} ph_door@closed %-yan_smart_terrain_6_4_outer_door_open% + + + + + + + + + + + + + + + + + + + + + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_smart_terrain_6_4_sr_light_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_smart_terrain_6_4_sr_light_redone.ltx new file mode 100644 index 00000000..67568c2e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_smart_terrain_6_4_sr_light_redone.ltx @@ -0,0 +1,14 @@ +![logic] +active = sr_light +;active = sr_light_off + +;[sr_light_off] +;light_on = false +;on_info = {=is_night} sr_light_on + +;[sr_light_on] +;light_on = true +;on_info = {!is_night} sr_light_off + +![sr_light] +light_on = true \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_smart_terrain_6_4_sr_steam_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_smart_terrain_6_4_sr_steam_redone.ltx new file mode 100644 index 00000000..56438722 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_smart_terrain_6_4_sr_steam_redone.ltx @@ -0,0 +1,13 @@ +![logic] +active = sr_idle@wait + +![sr_idle@wait] +on_info = {=surge_started} sr_idle@open_doors %+yan_smart_terrain_6_4_forced_open% + +![sr_idle@open_doors] +on_info = {+yan_smart_terrain_6_4_forced_open =squads_in_zone_yan_smart_terrain_6_4} %-yan_smart_terrain_6_4_forced_open% + +![sr_idle@wait_out] +on_game_timer2 = 300 | sr_idle@wait %-yan_smart_terrain_6_4_forced_open% + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_space_restrictor_0000_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_space_restrictor_0000_redone.ltx new file mode 100644 index 00000000..a755f4d3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_space_restrictor_0000_redone.ltx @@ -0,0 +1,9 @@ +![logic] +active = ;sr_idle +active = sr_idle@check + +[sr_idle@check] +on_info = {=actor_community(actor_monolith)} sr_idle@mspawn, {=actor_community(actor_greh)} sr_idle@mspawn, sr_idle + +[sr_idle@mspawn] +on_actor_inside = {-yan_tonnel_snork_spawn_1} sr_idle@nil %+yan_tonnel_snork_spawn_1 =spawn_object(yan_stalker_gigant_military:yan_gigant_walk:0)% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_space_restrictor_0001_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_space_restrictor_0001_redone.ltx new file mode 100644 index 00000000..5fa81104 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_space_restrictor_0001_redone.ltx @@ -0,0 +1,9 @@ +![logic] +active = ;sr_idle +active = sr_idle@check + +[sr_idle@check] +on_info = {=actor_community(actor_monolith)} sr_idle@mspawn, {=actor_community(actor_greh)} sr_idle@mspawn, sr_idle + +[sr_idle@mspawn] +on_actor_inside = {-yan_tonnel_snork_spawn_3} sr_idle@nil %+yan_tonnel_snork_spawn_3 =spawn_object(yan_stalker_military_2:yan_gigant_walk:0)% diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_space_restrictor_0005_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_space_restrictor_0005_redone.ltx new file mode 100644 index 00000000..01da35f0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_space_restrictor_0005_redone.ltx @@ -0,0 +1,9 @@ +![logic] +active = ;sr_idle +active = sr_idle@check + +[sr_idle@check] +on_info = {=actor_community(actor_monolith)} sr_idle@mspawn, {=actor_community(actor_greh)} sr_idle@mspawn, sr_idle + +[sr_idle@mspawn] +on_actor_inside = {-yan_giant_spawner_01} sr_idle@nil %+yan_giant_spawner_01% \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_space_restrictor_0006_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_space_restrictor_0006_redone.ltx new file mode 100644 index 00000000..a4bdf9ac --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_space_restrictor_0006_redone.ltx @@ -0,0 +1,9 @@ +![logic] +active = ;sr_idle +active = sr_idle@check + +[sr_idle@check] +on_info = {=actor_community(actor_monolith)} sr_idle@mspawn, {=actor_community(actor_greh)} sr_idle@mspawn, sr_idle + +[sr_idle@mspawn] +on_actor_inside = {-yan_tonnel_snork_spawn_2} sr_idle@nil %+yan_tonnel_snork_spawn_2 =spawn_object(yan_stalker_military_4:yan_gigant_walk:0)% \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_tonnel_gigant_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_tonnel_gigant_redone.ltx new file mode 100644 index 00000000..3eb13ba0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yan_tonnel_gigant_redone.ltx @@ -0,0 +1,5 @@ +![mob_walker] +out_restr = yantar_tunnel_surge_hide + +![mob_walker@2] +out_restr = yantar_tunnel_surge_hide \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_psi_radiotion_30_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_psi_radiotion_30_redone.ltx new file mode 100644 index 00000000..110aab7d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_psi_radiotion_30_redone.ltx @@ -0,0 +1,25 @@ +![sr_psy_antenna@no_helmet] +eff_intensity = 30 +hit_intensity = 20 +on_info = {=actor_has_item(good_psy_helmet)} sr_psy_antenna@good_psy_helmet, {=actor_has_item(bad_psy_helmet)} sr_psy_antenna@bad_psy_helmet +on_info2 = ;{=actor_community(actor_monolith)} sr_idle@nil, {+yantar_attack_start} sr_idle@nil, {+yan_labx16_switcher_primary_off} sr_idle@nil +on_info3 = {=actor_community(actor_monolith)} sr_idle@mnil, {=actor_community(actor_greh)} sr_idle@mnil, {+yan_labx16_switcher_primary_off} sr_idle@nil + +![sr_psy_antenna@bad_psy_helmet] +eff_intensity = 20 +hit_intensity = 0 +on_info = {=actor_has_item(good_psy_helmet)} sr_psy_antenna@good_psy_helmet, {=actor_has_item(bad_psy_helmet)}, sr_psy_antenna@no_helmet +on_info2 = ;{=actor_community(actor_monolith)} sr_idle@nil, {+yantar_attack_start} sr_idle@nil, {+yan_labx16_switcher_primary_off} sr_idle@nil +on_info3 = {=actor_community(actor_monolith)} sr_idle@mnil, {=actor_community(actor_greh)} sr_idle@mnil, {+yan_labx16_switcher_primary_off} sr_idle@nil + +![sr_psy_antenna@good_psy_helmet] +eff_intensity = 10 +hit_intensity = 0 +on_info = {=actor_has_item(good_psy_helmet)}, {=actor_has_item(bad_psy_helmet)} sr_psy_antenna@bad_psy_helmet, sr_psy_antenna@no_helmet +on_info2 = ;{=actor_community(actor_monolith)} sr_idle@nil, {+yantar_attack_start} sr_idle@nil, {+yan_labx16_switcher_primary_off} sr_idle@nil +on_info3 = {=actor_community(actor_monolith)} sr_idle@mnil, {=actor_community(actor_greh)} sr_idle@mnil, {+yan_labx16_switcher_primary_off} sr_idle@nil + +![sr_idle@nil] +on_info = {-yan_labx16_switcher_primary_off} sr_psy_antenna@no_helmet + +[sr_idle@mnil] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_psi_radiotion_55_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_psi_radiotion_55_redone.ltx new file mode 100644 index 00000000..8c5ffd6a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_psi_radiotion_55_redone.ltx @@ -0,0 +1,25 @@ +![sr_psy_antenna@no_helmet] +eff_intensity = 40 +hit_intensity = 20 +on_info = {=actor_has_item(good_psy_helmet)} sr_psy_antenna@good_psy_helmet, {=actor_has_item(bad_psy_helmet)} sr_psy_antenna@bad_psy_helmet +on_info2 = ;{=actor_community(actor_monolith)} sr_idle@nil, {+yantar_attack_start} sr_idle@nil, {+yan_labx16_switcher_primary_off} sr_idle@nil +on_info3 = {=actor_community(actor_monolith)} sr_idle@mnil, {=actor_community(actor_greh)} sr_idle@mnil, {+yan_labx16_switcher_primary_off} sr_idle@nil + +![sr_psy_antenna@bad_psy_helmet] +eff_intensity = 20 +hit_intensity = 0 +on_info = {=actor_has_item(good_psy_helmet)} sr_psy_antenna@good_psy_helmet, {=actor_has_item(bad_psy_helmet)}, sr_psy_antenna@no_helmet +on_info2 = ;{=actor_community(actor_monolith)} sr_idle@nil, {+yantar_attack_start} sr_idle@nil, {+yan_labx16_switcher_primary_off} sr_idle@nil +on_info3 = {=actor_community(actor_monolith)} sr_idle@mnil, {=actor_community(actor_greh)} sr_idle@mnil, {+yan_labx16_switcher_primary_off} sr_idle@nil + +![sr_psy_antenna@good_psy_helmet] +eff_intensity = 10 +hit_intensity = 0 +on_info = {=actor_has_item(good_psy_helmet)}, {=actor_has_item(bad_psy_helmet)} sr_psy_antenna@bad_psy_helmet, sr_psy_antenna@no_helmet +on_info2 = ;{=actor_community(actor_monolith)} sr_idle@nil, {+yantar_attack_start} sr_idle@nil, {+yan_labx16_switcher_primary_off} sr_idle@nil +on_info3 = {=actor_community(actor_monolith)} sr_idle@mnil, {=actor_community(actor_greh)} sr_idle@mnil, {+yan_labx16_switcher_primary_off} sr_idle@nil + +![sr_idle@nil] +on_info = {-yan_labx16_switcher_primary_off} sr_psy_antenna@no_helmet + +[sr_idle@mnil] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_psi_radiotion_5_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_psi_radiotion_5_redone.ltx new file mode 100644 index 00000000..4e9b6962 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_psi_radiotion_5_redone.ltx @@ -0,0 +1,25 @@ +![sr_psy_antenna@no_helmet] +eff_intensity = 30 +hit_intensity = 0 +on_info = {=actor_has_item(good_psy_helmet)} sr_psy_antenna@good_psy_helmet, {=actor_has_item(bad_psy_helmet)} sr_psy_antenna@bad_psy_helmet +on_info2 = ;{=actor_community(actor_monolith)} sr_idle@nil, {+yantar_attack_start} sr_idle@nil, {+yan_labx16_switcher_primary_off} sr_idle@nil +on_info3 = {=actor_community(actor_monolith)} sr_idle@mnil, {=actor_community(actor_greh)} sr_idle@mnil, {+yan_labx16_switcher_primary_off} sr_idle@nil + +![sr_psy_antenna@bad_psy_helmet] +eff_intensity = 20 +hit_intensity = 0 +on_info = {=actor_has_item(good_psy_helmet)} sr_psy_antenna@good_psy_helmet, {=actor_has_item(bad_psy_helmet)}, sr_psy_antenna@no_helmet +on_info2 = ;{=actor_community(actor_monolith)} sr_idle@nil, {+yantar_attack_start} sr_idle@nil, {+yan_labx16_switcher_primary_off} sr_idle@nil +on_info3 = {=actor_community(actor_monolith)} sr_idle@mnil, {=actor_community(actor_greh)} sr_idle@mnil, {+yan_labx16_switcher_primary_off} sr_idle@nil + +![sr_psy_antenna@good_psy_helmet] +eff_intensity = 10 +hit_intensity = 0 +on_info = {=actor_has_item(good_psy_helmet)}, {=actor_has_item(bad_psy_helmet)} sr_psy_antenna@bad_psy_helmet, sr_psy_antenna@no_helmet +on_info2 = ;{=actor_community(actor_monolith)} sr_idle@nil, {+yantar_attack_start} sr_idle@nil, {+yan_labx16_switcher_primary_off} sr_idle@nil +on_info3 = {=actor_community(actor_monolith)} sr_idle@mnil, {=actor_community(actor_greh)} sr_idle@mnil, {+yan_labx16_switcher_primary_off} sr_idle@nil + +![sr_idle@nil] +on_info = {-yan_labx16_switcher_primary_off} sr_psy_antenna@no_helmet + +[sr_idle@mnil] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_tunnel_finish_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_tunnel_finish_redone.ltx new file mode 100644 index 00000000..bdaa0075 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_tunnel_finish_redone.ltx @@ -0,0 +1,7 @@ +![sr_idle] +on_actor_inside ={-story_mode_disabled +yantar_tunnel_start -yantar_tunnel_finish} sr_idle@spawn %+yantar_tunnel_finish =yan_saharov_message(3)% + +[sr_idle@spawn] +on_info = sr_idle@nil %=create_squad(bandit_sim_squad_alpha:yan_smart_terrain_2_4) =create_squad(bandit_sim_squad_advanced:yan_smart_terrain_2_4)% + + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_tunnel_start_redone.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_tunnel_start_redone.ltx new file mode 100644 index 00000000..3915a908 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/mod_yantar_tunnel_start_redone.ltx @@ -0,0 +1,12 @@ +![logic] +active = ;sr_idle +active = sr_idle@check + +[sr_idle@check] +on_info = {=actor_community(actor_monolith)} sr_idle@mspawn, {=actor_community(actor_greh)} sr_idle@mspawn, sr_idle + +![sr_idle] +on_actor_inside = {-yantar_tunnel_start} sr_idle@nil %+yantar_tunnel_start =create_squad(yan_ecolog_guard_mlr_squad:yan_smart_terrain_3_6) =create_squad(yan_ecolog_guard_mlr_squad2:yan_smart_terrain_4_4) =spawn_object(yan_tonnel_snork_2:yan_tonnel_snorks_walk_3:0) =spawn_object(yan_tonnel_snork_4:yan_snork_tun_home_1:0) =spawn_object(yan_tonnel_zombied_1:yan_zombies_9_walk:0) =spawn_object(yan_tonnel_zombied_2:yan_zombies_9_walk:0) =spawn_object(yan_tonnel_zombied_3:yan_zombies_10_walk:0) =spawn_object(yan_tonnel_zombied_1:yan_zombies_9_walk:0) =spawn_object(yan_tonnel_zombied_2:yan_zombies_9_walk:0) =spawn_object(yan_tonnel_zombied_3:yan_zombies_10_walk:0)% + +[sr_idle@mspawn] +on_actor_inside = {-yantar_tunnel_start} sr_idle@nil %+yantar_tunnel_start =spawn_object(yan_stalker_military_5:yan_gigant_walk:0) =spawn_object(yan_stalker_military_1:yan_gigant_walk:0) =spawn_object(yan_stalker_military_3:yan_gigant_walk:0) =spawn_object(yan_stalker_military_6:yan_gigant_walk:0)% \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_1_6.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_1_6.ltx new file mode 100644 index 00000000..9c62748b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_1_6.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 1 +max_population = 2 +respawn_params = respawn@yan_smart_terrain_1_6 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@yan_smart_terrain_1_6] ;-- Type: +spawn_mutants +spawn_mutants_rare + + +[spawn_mutants] ;-- Normal\hard mutants - Rates of groups: ( 1 tushkano + 2 snork + 2 fracture + psy dog ) +spawn_squads = simulation_tushkano_7_10, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture, simulation_psy_dog +spawn_num = {~20} 1, 0 + +[spawn_mutants_rare] ;-- Rare mutants - Rates of groups: ( 1 karlik ) +spawn_squads = simulation_karlik +spawn_num = {+yan_kill_brain_done ~10} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_2_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_2_4.ltx new file mode 100644 index 00000000..fefc56d7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_2_4.ltx @@ -0,0 +1,39 @@ +[smart_terrain] +squad_id = 2 +max_population = 2 +respawn_params = respawn@yan_smart_terrain_2_4 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@yan_smart_terrain_2_4] ;-- Type: faction {zombied} = nhoo... +spawn_zombies_mix +;spawn_mutants +spawn_ecolog_special + + +[spawn_zombies_mix] ;-- Weak\normal mutants - Rates of groups: ( 2 zombie + 1 zombied ) +spawn_squads = simulation_zombie_3_6, simulation_mix_zombie, zombied_sim_squad_mix +spawn_num = {+yan_kill_brain_done} 0, 1 + +;[spawn_mutants] ;-- Normal\hard mutants - Rates of groups: ( 1 tushkano + 2 snork + 2 fracture + 1 dogs ) +;spawn_squads = simulation_tushkano_7_10, simulation_mix_dogs, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture +;spawn_num = {+yan_kill_brain_done ~20} 1, 0 + +[spawn_ecolog_special] +spawn_squads = yan_ecolog_guard_mlr_squad +spawn_num = {+yan_kill_brain_done !squad_name_exist(yan_ecolog_guard_mlr_squad) -yan_stalker_sakharov_dead -yan_ecolog_vasilyev_dead -yan_ecolog_semenov_dead -yan_ecolog_kruglov_dead} 1, 0 + + +[on_changing_level] +on_info = %=script(redone_xr_dynamic_object:dynamic_object:misc\spawn_object\yan_smart_terrain_2_4_object.ltx)% + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_2_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_2_5.ltx new file mode 100644 index 00000000..d1a22693 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_2_5.ltx @@ -0,0 +1,34 @@ +[smart_terrain] +squad_id = 3 +max_population = 1 +respawn_params = respawn@yan_smart_terrain_2_5 +respawn_only_smart = true +respawn_idle = 345600 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@yan_smart_terrain_2_5] ;-- Type: +spawn_mutants +spawn_ecolog_special + + +[spawn_mutants] ;-- Normal\hard mutants - Rates of groups: ( 1 tushkano + 2 snork + 1 dogs ) +spawn_squads = simulation_tushkano_7_10, simulation_mix_dogs, simulation_snork_2_3, simulation_snork_2_5 +spawn_num = {+yan_kill_brain_done ~20} 1, 0 + +[spawn_ecolog_special] +spawn_squads = yan_ecolog_lab_squad +spawn_num = {+yan_kill_brain_done !squad_name_exist(yan_ecolog_lab_squad) -yan_stalker_sakharov_dead -yan_ecolog_vasilyev_dead -yan_ecolog_semenov_dead -yan_ecolog_kruglov_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_3_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_3_4.ltx new file mode 100644 index 00000000..bd758804 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_3_4.ltx @@ -0,0 +1,43 @@ +[smart_terrain] +squad_id = 4 +max_population = 2 +respawn_params = respawn@yan_smart_terrain_3_4 +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@yan_smart_terrain_3_4] ;-- Type: faction {zombied} = wahyy... +spawn_zombies +spawn_mutants +spawn_stalkers_special +spawn_stalkers_special_2 + + +[spawn_zombies] ;-- Weak\normal mutants - Rates of groups: ( 3 zombies ) +spawn_squads = simulation_zombie, simulation_zombie_3_6, simulation_mix_zombie +spawn_num = {+yan_kill_brain_done} 0, 1 + +[spawn_mutants] ;-- Normal mutants - Rates of groups: ( 1 tushkano + 2 snork + 1 fracture ) +spawn_squads = simulation_tushkano_7_10, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture +spawn_num = {+yan_kill_brain_done ~20} 1, 0 + +[spawn_stalkers_special] +spawn_squads = yan_bandit_lab_squad +spawn_num = {+yan_kill_brain_done !squad_name_exist(yan_bandit_lab_squad) !squad_name_exist(yan_csky_lab_squad)} 1, 0 + +[spawn_stalkers_special_2] +spawn_squads = yan_csky_lab_squad +spawn_num = {+yan_kill_brain_done !squad_name_exist(yan_bandit_lab_squad) !squad_name_exist(yan_csky_lab_squad)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_3_6.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_3_6.ltx new file mode 100644 index 00000000..5a70e983 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_3_6.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 5 +max_population = 1 +respawn_params = respawn@yan_smart_terrain_3_6 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@yan_smart_terrain_3_6] ;-- Type: +spawn_deserted_base + + +[spawn_deserted_base] ;-- Normal\hard mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 cat + 1 snork + 1 fracture ) +spawn_squads = simulation_tushkano_7_10, simulation_dog_5_7, simulation_mix_dogs, simulation_cat_3_5, simulation_snork_2_3, simulation_fracture +spawn_num = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead} 1, 0 + +;[spawn_deserted_base] +;spawn_squads = yan_army_spetsnaz_squad +;spawn_num = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead -agr_military_colonel_kovalski_dead !squad_name_exist(yan_army_spetsnaz_squad)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_4_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_4_2.ltx new file mode 100644 index 00000000..4a48e35f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_4_2.ltx @@ -0,0 +1,39 @@ +[smart_terrain] +squad_id = 6 +max_population = 2 +respawn_params = respawn@yan_smart_terrain_4_2 +respawn_only_smart = false +respawn_idle = 86400 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@yan_smart_terrain_4_2] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 +spawn_lurker + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 2 tushkano + 2 dogs + 1 cats + 1 flesh ) +spawn_squads = simulation_tushkano, simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2] ;-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_cat, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + +[spawn_lurker] ;-- Hard mutants - Rates of groups: ( 2 lurker ) +spawn_squads = simulation_lurker, simulation_lurker_blue +spawn_num = {~20} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_4_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_4_4.ltx new file mode 100644 index 00000000..f22ee3eb --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_4_4.ltx @@ -0,0 +1,38 @@ +[smart_terrain] +squad_id = 7 +max_population = 1 +respawn_params = respawn@yan_smart_terrain_4_4 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@yan_smart_terrain_4_4] ;-- Type: +spawn_deserted_base + + +[spawn_deserted_base] ;-- Normal\hard mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 cat + 1 snork + 1 fracture ) +spawn_squads = simulation_tushkano_7_10, simulation_dog_5_7, simulation_mix_dogs, simulation_cat_3_5, simulation_snork_2_3, simulation_fracture +spawn_num = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead} 1, 0 + +;[spawn_deserted_base] +;spawn_squads = yan_killer_special_team2 +;spawn_num = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead -cit_killers_aslan_dead -cit_killers_dushman_dead !squad_name_exist(yan_killer_special_team2)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +yan_smart_terrain_4_4_zombie_wave_1 = yantar\yan_smart_terrain_4_4_smart_logic.ltx +yan_smart_terrain_4_4_zombie_wave_2 = yantar\yan_smart_terrain_4_4_smart_logic.ltx +yan_smart_terrain_4_4_zombie_wave_3 = yantar\yan_smart_terrain_4_4_smart_logic.ltx +yan_smart_terrain_4_4_zombie_wave_4 = yantar\yan_smart_terrain_4_4_smart_logic.ltx +yan_smart_terrain_4_4_zombie_wave_5 = yantar\yan_smart_terrain_4_4_smart_logic.ltx + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_4_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_4_5.ltx new file mode 100644 index 00000000..7d6c025a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_4_5.ltx @@ -0,0 +1,29 @@ +[smart_terrain] +squad_id = 8 +max_population = 1 +respawn_params = respawn@yan_smart_terrain_4_5 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@yan_smart_terrain_4_5] ;-- Type: +spawn_deserted_base + + +[spawn_deserted_base] ;-- Normal\hard mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 cat + 1 snork + 1 fracture ) +spawn_squads = simulation_tushkano_7_10, simulation_dog_5_7, simulation_mix_dogs, simulation_cat_3_5, simulation_snork_2_3, simulation_fracture +spawn_num = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_5_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_5_3.ltx new file mode 100644 index 00000000..3e3e437a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_5_3.ltx @@ -0,0 +1,28 @@ +[smart_terrain] +squad_id = 9 +max_population = 2 +respawn_params = respawn@yan_smart_terrain_5_3 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@yan_smart_terrain_5_3] ;-- Type: +spawn_deserted_base + + +[spawn_deserted_base] ;-- Normal\hard mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 cat + 1 snork + 1 fracture ) +spawn_squads = simulation_tushkano_7_10, simulation_dog_5_7, simulation_mix_dogs, simulation_cat_3_5, simulation_snork_2_3, simulation_fracture +spawn_num = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_5_5.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_5_5.ltx new file mode 100644 index 00000000..ea10419f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_5_5.ltx @@ -0,0 +1,37 @@ +[smart_terrain] +squad_id = 11 +max_population = 1 +respawn_params = respawn@yan_smart_terrain_5_5 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 1000 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@yan_smart_terrain_5_5] ;-- Type: +spawn_deserted_base + + +[spawn_deserted_base] ;-- Normal\hard mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 cat + 1 snork + 1 fracture ) +spawn_squads = simulation_tushkano_7_10, simulation_dog_5_7, simulation_mix_dogs, simulation_cat_3_5, simulation_snork_2_3, simulation_fracture +spawn_num = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead} 1, 0 + +;[spawn_deserted_base] +;spawn_squads = yan_killer_special_team +;spawn_num = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead -cit_killers_aslan_dead -cit_killers_dushman_dead !squad_name_exist(yan_killer_special_team)} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +yan_smart_terrain_5_5_zombie_wave_1 = yantar\yan_smart_terrain_5_5_smart_logic.ltx +yan_smart_terrain_5_5_zombie_wave_2 = yantar\yan_smart_terrain_5_5_smart_logic.ltx +yan_smart_terrain_5_5_zombie_wave_3 = yantar\yan_smart_terrain_5_5_smart_logic.ltx +yan_smart_terrain_5_5_zombie_wave_4 = yantar\yan_smart_terrain_5_5_smart_logic.ltx +yan_smart_terrain_5_5_zombie_wave_5 = yantar\yan_smart_terrain_5_5_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_6_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_6_2.ltx new file mode 100644 index 00000000..a3885de5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_6_2.ltx @@ -0,0 +1,39 @@ +[smart_terrain] +squad_id = 12 +max_population = 1 +respawn_params = respawn@yan_smart_terrain_5_5 +respawn_only_smart = false +respawn_idle = 259200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@yan_smart_terrain_5_5] ;-- Type: c_1_1 + c_1_2 edited +spawn_all_weak_c_1_1 +spawn_all_normal_c_1_2 + + +[spawn_all_weak_c_1_1] ;-- Weak mutants - Rates of groups: ( 1 tushkano + 2 dogs + 1 cats + 1 flesh ) +spawn_squads = simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_flesh +spawn_num = {!actor_week_in_zone(1)} 1, {=actor_week_in_zone(1)} 0 + +[spawn_all_normal_c_1_2];-- Normal mutants - Rates of groups: ( 2 dogs + 1 cats + 3 fleshes/boars ) +spawn_squads = simulation_mix_dogs, simulation_mix_dogs, simulation_cat, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {=actor_week_in_zone(1)} 1, {!actor_week_in_zone(1)} 0 + + +;[on_changing_level] + +;[smart_control] + +[exclusive] +yan_smart_terrain_6_2_zombie_wave_1 = yantar\yan_smart_terrain_6_2_smart_logic.ltx +yan_smart_terrain_6_2_zombie_wave_2 = yantar\yan_smart_terrain_6_2_smart_logic.ltx +yan_smart_terrain_6_2_zombie_wave_3 = yantar\yan_smart_terrain_6_2_smart_logic.ltx +yan_smart_terrain_6_2_zombie_wave_4 = yantar\yan_smart_terrain_6_2_smart_logic.ltx +yan_smart_terrain_6_2_zombie_wave_5 = yantar\yan_smart_terrain_6_2_smart_logic.ltx + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_6_4.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_6_4.ltx new file mode 100644 index 00000000..6ec91675 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_6_4.ltx @@ -0,0 +1,75 @@ +[smart_terrain] +squad_id = 13 +max_population = 3 +respawn_params = respawn@yan_smart_terrain_6_4 +respawn_only_smart = false +respawn_idle = 43200 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = smart_control +;att_restr = yan_smart_terrain_6_4_att +;def_restr = yan_smart_terrain_6_4_def +;safe_restr = nil +;spawn_point = nil + +[respawn@yan_smart_terrain_6_4] ;-- Type: faction {ecolog} = south\base +spawn_ecolog@novice +spawn_ecolog@advanced +spawn_ecolog_special +;spawn_deserted_base + + +[spawn_ecolog@novice] +spawn_squads = ecolog_sim_squad_novice, ecolog_sim_squad_advanced +spawn_num = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead} 0, 2 + +[spawn_ecolog@advanced] +spawn_squads = ecolog_sim_squad_advanced, ecolog_sim_squad_veteran +spawn_num = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead} 0, 2 + +[spawn_ecolog_special] +spawn_squads = ecolog_sim_squad_advanced_1e_1ls_1ss, ecolog_sim_squad_advanced_2e_2ls_1ss, ecolog_sim_squad_advanced_1e_2ls, ecolog_sim_squad_advanced_1e_2es +spawn_num = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead} 0, 2 + +;[spawn_deserted_base] +;spawn_squads = yan_army_spetsnaz_squad2 +;spawn_num = {+yan_stalker_sakharov_dead +yan_ecolog_vasilyev_dead +yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead -agr_military_colonel_kovalski_dead !squad_name_exist(yan_army_spetsnaz_squad2)} 1, 0 + + +[on_changing_level] +on_info = %=script(redone_xr_dynamic_object:dynamic_object:misc\spawn_object\yan_smart_terrain_6_4_object.ltx)% + +;[smart_control] +;noweap_zone = yan_space_restrictor_no_weapon_actor_base_cut2 +;ignore_zone = yan_smart_terrain_6_4_def +;alarm_start_sound = nil +;alarm_stop_sound = nil + +[exclusive] +mechanic_army_yan_mlr = yantar\mechanic_army_yan_mlr_logic.ltx +yan_povar_army_mlr = yantar\yan_povar_army_mlr.ltx +yan_bunker_guards = yantar\yan_scientists.ltx + +yan_saharov = yantar\yan_saharov.ltx +yan_kruglov = yantar\yan_scientists.ltx +yan_semenov = yantar\yan_scientists.ltx +yan_vasiliev = yantar\yan_scientists.ltx + +yan_smart_terrain_6_4_camp_work_1 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_camp_work_2 = yantar\yan_smart_terrain_6_4_smart_logic.ltx + +yan_smart_terrain_6_4_zombie_wave_1 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_zombie_wave_2 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_zombie_wave_3 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_zombie_wave_4 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_zombie_wave_5 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_zombie_wave_6 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_zombie_wave_7 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_zombie_wave_8 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_zombie_wave_9 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_zombie_wave_10 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_zombie_wave_11 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_zombie_wave_12 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_zombie_wave_13 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_zombie_wave_14 = yantar\yan_smart_terrain_6_4_smart_logic.ltx +yan_smart_terrain_6_4_zombie_wave_15 = yantar\yan_smart_terrain_6_4_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_snork_u.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_snork_u.ltx new file mode 100644 index 00000000..91ebae36 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_snork_u.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 15 +max_population = 2 +respawn_params = respawn@yan_smart_terrain_snork_u +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@yan_smart_terrain_snork_u] ;-- Type: +spawn_snork +spawn_zombie + + +[spawn_snork] ;-- Normal mutants - Rates of groups: ( 2 snork ) +spawn_squads = simulation_snork_2_3, simulation_snork_2_5 +spawn_num = {=actor_community(actor_monolith)} 0,{=actor_community(actor_greh)} 0,{+yan_kill_brain_done} 1, 0 + +[spawn_zombie] ;-- Weak mutants - Rates of groups: ( 1 zombie + 1 zombied ) +spawn_squads = simulation_mix_zombie, zombied_sim_squad_mix +spawn_num = {=actor_community(actor_monolith)} 0,{=actor_community(actor_greh)} 0,{+yan_kill_brain_done} 0, 1 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_zombi_spawn.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_zombi_spawn.ltx new file mode 100644 index 00000000..d3c30007 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/smart/yan_smart_terrain_zombi_spawn.ltx @@ -0,0 +1,43 @@ +[smart_terrain] +squad_id = 14 +max_population = 2 +respawn_params = respawn@yan_smart_terrain_zombi_spawn +respawn_only_smart = false +respawn_idle = 172800 +respawn_radius = 50 +;arrive_dist = 0 +;smart_control = nil +;att_restr = nil +;def_restr = nil +;safe_restr = nil +;spawn_point = nil + +[respawn@yan_smart_terrain_zombi_spawn] ;-- Type: faction {zombied} = wahyy... +spawn_zombied_squad +spawn_zombie +spawn_mutants +spawn_ecolog_special + + +[spawn_zombied_squad] +spawn_squads = zombied_sim_squad_novice, zombied_sim_squad_advanced, zombied_sim_squad_mix +spawn_num = {+yan_kill_brain_done} 0, 1 + +[spawn_zombie] ;-- Weak\normal mutants - Rates of groups: ( 3 zombies ) +spawn_squads = simulation_zombie, simulation_zombie_3_6, simulation_mix_zombie +spawn_num = {+yan_kill_brain_done} 0, 1 + +[spawn_mutants] ;-- Normal\hard mutants - Rates of groups: ( 1 tushkano + 2 snork + 2 fracture ) +spawn_squads = simulation_tushkano_7_10, simulation_snork_2_3, simulation_snork_2_5, simulation_fracture, simulation_fracture +spawn_num = {+yan_kill_brain_done} 1, 0 + +[spawn_ecolog_special] +spawn_squads = yan_ecolog_guard_mlr_squad2 +spawn_num = {+yan_kill_brain_done !squad_name_exist(yan_ecolog_guard_mlr_squad2) -yan_stalker_sakharov_dead -yan_ecolog_vasilyev_dead -yan_ecolog_semenov_dead +yan_ecolog_kruglov_dead} 1, 0 + + +;[on_changing_level] + +;[smart_control] + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_bunker_radio.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_bunker_radio.ltx new file mode 100644 index 00000000..492b6a22 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_bunker_radio.ltx @@ -0,0 +1,9 @@ +[logic] +active = ph_sound + +[ph_sound] +snd = esc_sidorovich_radio +looped = false +min_idle = 300 +max_idle = 500 +random = true \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_ecolog_bunker_rupor.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_ecolog_bunker_rupor.ltx new file mode 100644 index 00000000..be806edd --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_ecolog_bunker_rupor.ltx @@ -0,0 +1,27 @@ +[logic] +active = ph_idle@sound_idle + +[ph_idle@sound_idle] +on_info = {=surge_started} ph_idle@surge +;on_info2 = {+yan_stalker_sakharov_dead} ph_idle@nil + +[ph_idle@surge] +on_game_timer = 100 | ph_idle@surge_started + +[ph_idle@surge_started] +on_info = %=play_sound(yan_blowout_siren)% +;on_info2 = {!surge_started} ph_idle@sound_idle +on_game_timer = 370 | ph_idle@surge_siren_end + +[ph_idle@surge_siren_end] +on_info = %=play_sound(yan_blowout_siren_1)% +on_signal = sound_end | ph_idle@surge_act_idle + +[ph_idle@surge_act_idle] +on_info = {=surge_started} ph_idle@surge +on_game_timer = 1240 | ph_idle@sound_idle + +[ph_idle@nil] + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_ecolog_bunker_sound.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_ecolog_bunker_sound.ltx new file mode 100644 index 00000000..9308a2a4 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_ecolog_bunker_sound.ltx @@ -0,0 +1,13 @@ +[logic] +active = ph_idle@play + +[ph_idle@play] +on_info = %=play_sound_looped(yan_sci_tech_sounds)% +on_info2 = {+yan_stalker_sakharov_dead} ph_idle@nil + +[ph_idle@nil] +on_info = %=stop_sound_looped% + +[collide] +ignore_static + diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_1.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_1.ltx new file mode 100644 index 00000000..f307dd4a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_1.ltx @@ -0,0 +1,20 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(yan_smart_terrain_1_6) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(yan_smart_terrain_1_6) =is_dark_night} ph_idle@spawn_dark_monster_1 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_snork_night:yan_smart_terrain_1_6)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:yan_smart_terrain_1_6)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:yan_smart_terrain_1_6)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:yan_smart_terrain_1_6)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_psysucker_white_night:yan_smart_terrain_1_6)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:yan_smart_terrain_1_6)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:yan_smart_terrain_1_6)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:yan_smart_terrain_1_6)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_2.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_2.ltx new file mode 100644 index 00000000..de533b82 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_2.ltx @@ -0,0 +1,20 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(yan_smart_terrain_4_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(yan_smart_terrain_4_2) =is_dark_night} ph_idle@spawn_dark_monster_1 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_snork_night:yan_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_fracture_night:yan_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:yan_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_brown_night:yan_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_chimera_night:yan_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:yan_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_red_night:yan_smart_terrain_4_2)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_brown_night:yan_smart_terrain_4_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_3.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_3.ltx new file mode 100644 index 00000000..94490a67 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_endless_night_spawn_logic_3.ltx @@ -0,0 +1,20 @@ +[logic] +active = ph_idle@wait_actor + +[ph_idle@wait_actor] +on_info = {=actor_near_smart(yan_smart_terrain_6_2) =is_night} ph_idle@spawn_night_monster_1, {=actor_near_smart(yan_smart_terrain_6_2) =is_dark_night} ph_idle@spawn_dark_monster_1 + +[ph_idle@spawn_night_monster_1] +on_info = {~10} %=create_squad(simulation_mix_zombie_night:yan_smart_terrain_6_2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_night:yan_smart_terrain_6_2)% ph_idle@reset, {~10} %=create_squad(simulation_lurker_brown_night:yan_smart_terrain_6_2)% ph_idle@reset, {~10} %=create_squad(simulation_pseudodog_night:yan_smart_terrain_6_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@spawn_dark_monster_1] +on_info = {~10} %=create_squad(simulation_zombie_blind_3zomb_night:yan_smart_terrain_6_2)% ph_idle@reset, {~10} %=create_squad(simulation_snork_2_3_night:yan_smart_terrain_6_2)% ph_idle@reset, {~10} %=create_squad(simulation_bloodsucker_night:yan_smart_terrain_6_2)% ph_idle@reset, {~10} %=create_squad(simulation_psysucker_night:yan_smart_terrain_6_2)% ph_idle@reset, ph_idle@wait_reset + +[ph_idle@reset] +on_game_timer = 86400 | ph_idle@wait_actor + +[ph_idle@wait_reset] +on_game_timer = 580 | ph_idle@wait_actor + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_tonnel_military_1_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_tonnel_military_1_logic.ltx new file mode 100644 index 00000000..ead24d3a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_tonnel_military_1_logic.ltx @@ -0,0 +1,7 @@ +[logic] +active = walker + +[walker] +path_walk = yan_gigant_walk +path_look = yan_gigant_look +out_restr = yantar_tunnel_restrictor_3 diff --git a/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_tonnel_military_2_logic.ltx b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_tonnel_military_2_logic.ltx new file mode 100644 index 00000000..7ab0faf9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/scripts/yantar/yan_tonnel_military_2_logic.ltx @@ -0,0 +1,7 @@ +[logic] +active = walker@2 + +[walker@2] +path_walk = yan_gigant_walk2 +path_look = yan_gigant_look2 +out_restr = yantar_tunnel_restrictor_3 \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/text/eng/st_characters_mar.xml b/mods/Redone Collection_backup/gamedata/configs/text/eng/st_characters_mar.xml new file mode 100644 index 00000000..8df890ab --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/text/eng/st_characters_mar.xml @@ -0,0 +1,11 @@ + + + + + Pasha + + + Vladim + + + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/text/eng/ui_st_screen_esc.xml b/mods/Redone Collection_backup/gamedata/configs/text/eng/ui_st_screen_esc.xml new file mode 100644 index 00000000..e5127a56 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/text/eng/ui_st_screen_esc.xml @@ -0,0 +1,8 @@ + + + + + -25 goodwill for dishonor Sidorovich deal with Military + + + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/text/rus/st_characters_mar.xml b/mods/Redone Collection_backup/gamedata/configs/text/rus/st_characters_mar.xml new file mode 100644 index 00000000..1d6287b7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/text/rus/st_characters_mar.xml @@ -0,0 +1,11 @@ + + + + + Pasha + + + Vadim + + + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/configs/text/rus/ui_st_screen_esc.xml b/mods/Redone Collection_backup/gamedata/configs/text/rus/ui_st_screen_esc.xml new file mode 100644 index 00000000..d82539e6 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/configs/text/rus/ui_st_screen_esc.xml @@ -0,0 +1,8 @@ + + + + + -25 доброй воли за бесчестье Сидоровича сделка с Военными + + + \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/scripts/game_achievements.script b/mods/Redone Collection_backup/gamedata/scripts/game_achievements.script new file mode 100644 index 00000000..57df110a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/game_achievements.script @@ -0,0 +1,880 @@ +-------------------------------- +----- Written by Darryl123 ----- +-------------------------------- + +------------------------- +----- Miscellaneous ----- +------------------------- + +-- Check if achievements can be unlocked. +function can_unlock() + return (db.actor and db.actor.afterFirstUpdate) +end + +-- Counts how many achievements exist. +local achievements_count = nil +function get_achievements_count() + -- Check if a count has already been made. + if (achievements_count) then + return achievements_count + end + -- Scan the achievements section for achievements. + achievements_count = 0 + local line_count = ini_sys:line_count("achievements") or 0 + for i = 0, line_count - 1 do + -- Check whether the achievement requires story mode. + local junk1, section, junk2 = ini_sys:r_line("achievements", i, "", "") + + local ignore = ini_sys:r_bool_ex(section, "ignore", false) + local story = ini_sys:r_bool_ex(section, "story", false) + local ironman = ini_sys:r_bool_ex(section, "ironman", false) + local warfare = ini_sys:r_bool_ex(section, "warfare", false) + + local is_story = (story and not has_alife_info("story_mode_disabled")) + local is_ironman = (ironman and IsHardcoreMode()) + local is_warfare = (warfare and _G.WARFARE) + + if (not (story or ironman or warfare)) -- if achievement has no restricted mode + or (is_story and not ironman) -- if achievement for story mode only + or (is_story and is_ironman) + or (is_warfare) + then + if (not ignore) then + achievements_count = achievements_count + 1 + end + end + end + return achievements_count +end + +-- Counts how many achievements are locked. +function get_achievements_locked_count() + return get_achievements_count() - get_achievements_unlocked_count() +end + +-- Counts how many achievements are unlocked. +function get_achievements_unlocked_count() + return game_statistics.get_actor_achievements_count() +end + +-- Checks whether an achievement is unlocked. +function has_achievement(achievement) + return game_statistics.has_actor_achievement(achievement) +end + +-------------------- +----- Functors ----- +-------------------- + +-- Bookworm Food +function bookworm_food_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("bookworm_food")) then + return true + end + -- Unlock the achievement. + if (bookworm_food_requirements()) then + bookworm_food_rewards() + return true + end +end + +-- Completionist. +function completionist_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("completionist")) then + return true + end + -- Unlock the achievement. + if (completionist_requirements()) then + completionist_rewards() + return true + end +end + +-- Down to Earth. +function down_to_earth_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("down_to_earth")) then + return true + end + -- Unlock the achievement. + if (down_to_earth_requirements()) then + down_to_earth_rewards() + return true + end +end + +-- Duga Free. +function duga_free_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("duga_free")) then + return true + end + -- Unlock the achievement. + if (duga_free_requirements()) then + duga_free_rewards() + return true + end +end + +-- Geologist. +function geologist_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("geologist")) then + return true + end + -- Unlock the achievement. + if (geologist_requirements()) then + geologist_rewards() + return true + end +end + +-- Heavy Pockets. +function heavy_pockets_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("heavy_pockets")) then + return true + end + -- Unlock the achievement. + if (heavy_pockets_requirements()) then + heavy_pockets_rewards() + return true + end +end + +-- Infopreneur. +function infopreneur_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("infopreneur")) then + return true + end + -- Unlock the achievement. + if (infopreneur_requirements()) then + infopreneur_rewards() + return true + end +end + +-- Mechanized Warfare. +function mechanized_warfare_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("mechanized_warfare")) then + return true + end + -- Unlock the achievement. + if (mechanized_warfare_requirements()) then + mechanized_warfare_rewards() + return true + end +end + +-- Patriarch. +function patriarch_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("patriarch")) then + return true + end + -- Unlock the achievement. + if (patriarch_requirements()) then + patriarch_rewards() + return true + end +end + +-- Radiotherapy. +function radiotherapy_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("radiotherapy")) then + return true + end + -- Unlock the achievement. + if (radiotherapy_requirements()) then + radiotherapy_rewards() + return true + end +end + +-- Rag and Bone. +function rag_and_bone_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("rag_and_bone")) then + return true + end + -- Unlock the achievement. + if (rag_and_bone_requirements()) then + rag_and_bone_rewards() + return true + end +end + +-- Silver or Lead. +function silver_or_lead_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("silver_or_lead")) then + return true + end + -- Unlock the achievement. + if (silver_or_lead_requirements()) then + silver_or_lead_rewards() + return true + end +end + +-- Tourist. +function tourist_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("tourist")) then + return true + end + -- Unlock the achievement. + if (has_alife_info("tourist_achievement_delay")) then + tourist_rewards() + return true + end + -- An infoportion delays the achievement. + -- Without this it often unlocks during level transition. + if (tourist_requirements()) then + db.actor:give_info_portion("tourist_achievement_delay") + return false + end +end + +-- Well Dressed. +function well_dressed_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("well_dressed")) then + return true + end + -- Unlock the achievement. + if (well_dressed_requirements()) then + well_dressed_rewards() + return true + end +end + +-- Wishful Thinking. +function wishful_thinking_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("wishful_thinking")) then + return true + end + -- Unlock the achievement. + if (wishful_thinking_requirements()) then + wishful_thinking_rewards() + return true + end +end + +-- Infantile Pleasure. +function infantile_pleasure_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("infantile_pleasure")) then + return true + end + -- Unlock the achievement. + if (infantile_pleasure_requirements()) then + infantile_pleasure_rewards() + return true + end +end + +-- Recycler. +function recycler_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("recycler")) then + return true + end + -- Unlock the achievement. + if (recycler_requirements()) then + recycler_rewards() + return true + end +end + +-- Artificer Eagerness. +function artificer_eagerness_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("artificer_eagerness")) then + return true + end + -- Unlock the achievement. + if (artificer_eagerness_requirements()) then + artificer_eagerness_rewards() + return true + end +end + +-- Unforeseen Guest. +function unforeseen_guest_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("unforeseen_guest")) then + return true + end + -- Unlock the achievement. + if (unforeseen_guest_requirements()) then + unforeseen_guest_rewards() + return true + end +end + +-- Absolver. +function absolver_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("absolver")) then + return true + end + -- Unlock the achievement. + if (absolver_requirements()) then + absolver_rewards() + return true + end +end + +-- Collaborator. +function collaborator_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("collaborator")) then + return true + end + -- Unlock the achievement. + if (collaborator_requirements()) then + collaborator_rewards() + return true + end +end + +-- Iron Curtain. +function iron_curtain_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("iron_curtain")) then + return true + end + -- Unlock the achievement. + if (iron_curtain_requirements()) then + iron_curtain_rewards() + return true + end +end + +-- Murky Spirit. +function murky_spirit_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("murky_spirit")) then + return true + end + -- Unlock the achievement. + if (murky_spirit_requirements()) then + murky_spirit_rewards() + return true + end +end + +-- Invictus. +function invictus_functor() + -- Check if it can be unlocked. + if (not can_unlock()) then + return false + end + -- Check if it is already unlocked. + if (has_achievement("invictus")) then + return true + end + -- Unlock the achievement. + if (invictus_requirements()) then + invictus_rewards() + return true + end +end + +------------------------ +----- Requirements ----- +------------------------ + +-- Bookworm Food +-- Requires all encyclopedia articles be unlocked. +function bookworm_food_requirements() + return ( + (ui_pda_encyclopedia_tab.get_articles_locked_count() == 0) + ) +end + + +-- Completionist. +-- Requires all available achievements to be unlocked. +function completionist_requirements() + return ( + (get_achievements_locked_count() <= 1) + ) +end + +-- Down to Earth. +-- Requires 3 helicopters killed, or just one with an RPG-7. +function down_to_earth_requirements() + return ( + (game_statistics.get_statistic_count("helicopters_downed") >= 3) + or (game_statistics.get_statistic_count("helicopters_downed2") >= 1) + ) +end + +-- Duga Free. +-- Requires story mode, and that the Miracle Machine and Brain Scorcher are disabled. +function duga_free_requirements() + return ( + not (has_alife_info("story_mode_disabled")) + and (has_alife_info("yan_labx16_switcher_primary_off")) + and (has_alife_info("bar_deactivate_radar_done")) + ) +end + +-- Geologist. +-- Requires 50 artefacts be detected by the player. +function geologist_requirements() + return ( + (game_statistics.get_statistic_count("artefacts_detected") >= 50) + ) +end + +-- Heavy Pockets. +-- Requires player to possess 1,000,000 RU. +function heavy_pockets_requirements() + return ( + (db.actor:money() >= 1000000) + ) +end + +-- Infopreneur. +-- Requires player to deliver 50 PDAs. +function infopreneur_requirements() + return ( + (game_statistics.get_statistic_count("pdas_delivered") >= 50) + ) +end + +-- Mechanized Warfare. +-- Requires a mechanic to own all tools. +function mechanized_warfare_requirements() + return ( + (has_alife_info("agr_smart_terrain_1_6_army_mechanic_stalker_upgrade_tier_3")) + or (has_alife_info("army_south_mechan_mlr_upgrade_tier_3")) + or (has_alife_info("bar_visitors_stalker_mechanic_upgrade_tier_3")) + or (has_alife_info("cit_killers_merc_mechanic_stalker_upgrade_tier_3")) + or (has_alife_info("dasc_tech_mlr_upgrade_tier_3")) + or (has_alife_info("val_smart_terrain_7_3_bandit_mechanic_stalker_upgrade_tier_3")) + or (has_alife_info("esc_smart_terrain_5_7_loner_mechanic_stalker_upgrade_tier_3")) + or (has_alife_info("jup_b217_stalker_tech_upgrade_tier_3")) + or (has_alife_info("jup_cont_mech_bandit_upgrade_tier_3")) + or (has_alife_info("mar_base_stalker_tech_upgrade_tier_3")) + or (has_alife_info("mil_smart_terrain_7_7_freedom_mechanic_stalker_upgrade_tier_3")) + or (has_alife_info("mechanic_monolith_jup_depo_upgrade_tier_3")) + or (has_alife_info("mechanic_monolith_kbo_upgrade_tier_3")) + or (has_alife_info("pri_monolith_monolith_mechanic_stalker_upgrade_tier_3")) + or (has_alife_info("merc_pri_a18_mech_mlr_upgrade_tier_3")) + or (has_alife_info("trucks_cemetery_bandit_mechanic_upgrade_tier_3")) + or (has_alife_info("yan_ecolog_kruglov_upgrade_tier_3")) + or (has_alife_info("zat_a2_stalker_mechanic_upgrade_tier_3")) + or (has_alife_info("zat_stancia_mech_merc_upgrade_tier_3")) + or (has_alife_info("mechanic_army_yan_mlr_upgrade_tier_3")) + or (has_alife_info("jup_depo_isg_tech_upgrade_tier_3")) + or (has_alife_info("sim_default_army_mechanic_upgrade_tier_3")) + or (has_alife_info("sim_default_bandit_mechanic_upgrade_tier_3")) + or (has_alife_info("sim_default_csky_mechanic_upgrade_tier_3")) + or (has_alife_info("sim_default_dolg_mechanic_upgrade_tier_3")) + or (has_alife_info("sim_default_ecolog_mechanic_upgrade_tier_3")) + or (has_alife_info("sim_default_freedom_mechanic_upgrade_tier_3")) + or (has_alife_info("sim_default_killer_mechanic_upgrade_tier_3")) + or (has_alife_info("sim_default_monolith_mechanic_upgrade_tier_3")) + or (has_alife_info("sim_default_stalker_mechanic_upgrade_tier_3")) + or (has_alife_info("sim_default_renegade_mechanic_upgrade_tier_3")) + or (has_alife_info("sim_default_greh_mechanic_upgrade_tier_3")) + or (has_alife_info("sim_default_isg_mechanic_upgrade_tier_3")) + ) +end + +-- Patriarch. +-- Requires rank of 'Legend' be reached. +function patriarch_requirements() + return ( + (db.actor:character_rank() >= 50000) + ) +end + +-- Radiotherapy. +-- Requires 25 emissions and 25 psi-storms to be survived. +function radiotherapy_requirements() + return ( + (game_statistics.get_statistic_count("emissions") >= 25) + and (game_statistics.get_statistic_count("psi_storms") >= 25) + ) +end + +-- Rag and Bone. +-- Requires 100 stashes be found and looted. +function rag_and_bone_requirements() + return ( + (game_statistics.get_statistic_count("stashes_found") >= 100) + ) +end + +-- Silver or Lead. +-- Requires player to kill 500 stalkers or have 50 surrender to you. +function silver_or_lead_requirements() + return ( + (game_statistics.get_statistic_count("killed_stalkers") >= 500) + or (game_statistics.get_statistic_count("enemies_surrendered") >= 50) + ) +end + +-- Tourist. +-- Requires player to visit all levels. +function tourist_requirements() + return ( + (game_statistics.has_actor_visitied_all_levels()) + ) +end + +-- Well Dressed. +-- Requires player to kill 500 mutants or field dress 250 mutant parts. +function well_dressed_requirements() + return ( + (game_statistics.get_statistic_count("killed_monsters") >= 500) + or (game_statistics.get_statistic_count("field_dressings") >= 250) + ) +end + +-- Wishful Thinking. +-- Requires story mode, and for the player to finish Living Legend questlines. +function wishful_thinking_requirements() + return ( + not (has_alife_info("story_mode_disabled")) + and (has_alife_info("living_legend_done")) + ) +end + +-- Infantile Pleasure +-- Requires player to smash 200 boxes +function infantile_pleasure_requirements() + return ((game_statistics.get_statistic_count("boxes_smashed") >= 200)) +end + +-- Recycler +-- Requires player to disassemble 200 items +function recycler_requirements() + return ((game_statistics.get_statistic_count("items_disassembled") >= 200)) +end + +-- Artificer Eagerness +-- Requires player to craft 50 items +function artificer_eagerness_requirements() + return ((game_statistics.get_statistic_count("items_crafted") >= 50)) +end + +-- Unforeseen Guest +-- Requires player to stay disguised for 5 hours under stalkers watch +function unforeseen_guest_requirements() + return ((game_statistics.get_statistic_count("minutes_disguised") >= 5*60)) +end + +-- Absolver. +-- Requires story mode, and for the player to finish Mortal Sin questlines. +function absolver_requirements() + return ( + not (has_alife_info("story_mode_disabled")) + and (has_alife_info("mortal_sin_zone_hero")) + ) +end + +-- Collaborator. +-- Requires story mode, and for the player to finish Operation Afterglow questlines. +function collaborator_requirements() + return ( + not (has_alife_info("story_mode_disabled")) + and (has_alife_info("operation_afterglow_complete")) + ) +end + + +-- Iron Curtain. +-- Requires Warfare mode, and for the player's faction to take over the levels. +function iron_curtain_requirements() + return ( + IsWarfare() and (has_alife_info("warfare_actor_faction_domination")) + ) +end + +-- Murky Spirit. +-- Requires story mode, and for the player to finish Lost to the Zone questlines. +function murky_spirit_requirements() + return ( + not (has_alife_info("story_mode_disabled")) + and (has_alife_info("operation_afterglow_complete")) + and IsHardcoreMode() + and not (has_alife_info("ironman_flag_off")) + ) +end + +-- Invictus. +-- Requires story mode, and for the player to finish Living Legend questlines. +function invictus_requirements() + return ( + not (has_alife_info("story_mode_disabled")) + and (has_alife_info("operation_afterglow_complete")) + and IsHardcoreMode() + and not (has_alife_info("ironman_flag_off")) + and not (has_alife_info("ironman_flag_died")) + and (game_difficulties.get_game_factor("type") == 3) + and (game_difficulties.get_eco_factor("type") == 3) + and not (has_alife_info("diff_gameplay_flag_change")) + and not (has_alife_info("diff_economy_flag_change")) + and not (has_alife_info("debug_mode_flag_on")) + ) +end + +------------------- +----- Rewards ----- +------------------- + +-- Bookworm Food. +-- Future memory sticks become rare PDAs. +function bookworm_food_rewards() + SendScriptCallback("actor_on_achievement_earned","bookworm_food","st_achievement_15_unlock") +end + +-- Completionist. +function completionist_rewards() + SendScriptCallback("actor_on_achievement_earned","completionist","st_achievement_10_unlock") +end + +-- Down to Earth. +-- Weaker helicopters are respawned. +function down_to_earth_rewards() + SendScriptCallback("actor_on_achievement_earned","down_to_earth","st_achievement_12_unlock") +end + +-- Duga Free. +-- Yantar & Radar psi-fields disabled. +function duga_free_rewards() + SendScriptCallback("actor_on_achievement_earned","duga_free","st_achievement_4_unlock") +end + +-- Geologist. +-- Increased spawn chance of artefacts. +function geologist_rewards() + SendScriptCallback("actor_on_achievement_earned","geologist","st_achievement_13_unlock") +end + +-- Heavy Pockets. +-- Traders sell cheaper and rarer goods. +function heavy_pockets_rewards() + SendScriptCallback("actor_on_achievement_earned","heavy_pockets","st_achievement_1_unlock") +end + +-- Infopreneur. +-- Money received for delivering PDAs increased. +function infopreneur_rewards() + SendScriptCallback("actor_on_achievement_earned","infopreneur","st_achievement_3_unlock") +end + +-- Mechanized Warfare. +-- A mechanic can now fully upgrade equipment. +function mechanized_warfare_rewards() + SendScriptCallback("actor_on_achievement_earned","mechanized_warfare","st_achievement_7_unlock") +end + +-- Patriarch. +-- Larger sized squads can be recruited. +function patriarch_rewards() + SendScriptCallback("actor_on_achievement_earned","patriarch","st_achievement_14_unlock") +end + +-- Radiotherapy. +-- 25% chance of surviving emissions and psi-vortices. +function radiotherapy_rewards() + SendScriptCallback("actor_on_achievement_earned","radiotherapy","st_achievement_2_unlock") +end + +-- Rag and Bone. +-- Random chance of better loot in task reward stashes. +function rag_and_bone_rewards() + SendScriptCallback("actor_on_achievement_earned","rag_and_bone","st_achievement_9_unlock") +end + +-- Silver or Lead. +-- 33% chance of a second stash from surrendering stalkers. +function silver_or_lead_rewards() + SendScriptCallback("actor_on_achievement_earned","silver_or_lead","st_achievement_6_unlock") +end + +-- Tourist. +-- 3 "Tourist's stashes" are revealed. +function tourist_rewards() + for i=1,3 do + treasure_manager.create_random_stash(nil, "Curious stash", nil) + end + db.actor:disable_info_portion("tourist_achievement_delay") + SendScriptCallback("actor_on_achievement_earned","tourist","st_achievement_8_unlock") +end + +-- Well Dressed. +-- 20% chance of extra parts when field dressing mutants. +function well_dressed_rewards() + SendScriptCallback("actor_on_achievement_earned","well_dressed","st_achievement_5_unlock") +end + +-- Wishful Thinking. +-- Unlock "Renegades" faction +function wishful_thinking_rewards() + axr_main.config:w_value("unlocked_factions","renegade",true) + axr_main.config:save() + SendScriptCallback("actor_on_achievement_earned","wishful_thinking","st_achievement_11_unlock") +end + +-- Infantile Pleasure. +-- 25% chance of extra items found in boxes. +function infantile_pleasure_rewards() + SendScriptCallback("actor_on_achievement_earned","infantile_pleasure","st_achievement_16_unlock") +end + +-- Recycler. +-- 33% chance of extra part obtained from disassembling. +function recycler_rewards() + SendScriptCallback("actor_on_achievement_earned","recycler","st_achievement_17_unlock") +end + +-- Artificer Eagerness. +-- 1 less part used for crafting. +function artificer_eagerness_rewards() + SendScriptCallback("actor_on_achievement_earned","artificer_eagerness","st_achievement_18_unlock") +end + +-- Unforeseen Guest. +-- less suspicious spikes upon sudden actions. +function unforeseen_guest_rewards() + SendScriptCallback("actor_on_achievement_earned","unforeseen_guest","st_achievement_19_unlock") +end + +-- Absolver. +-- Unlock "Sin" faction +function absolver_rewards() + axr_main.config:w_value("unlocked_factions","greh",true) + axr_main.config:save() + SendScriptCallback("actor_on_achievement_earned","absolver","st_achievement_20_unlock") +end + +-- Collaborator. +-- Unlock "ISG" faction +function collaborator_rewards() + axr_main.config:w_value("unlocked_factions","isg",true) + axr_main.config:save() + SendScriptCallback("actor_on_achievement_earned","collaborator","st_achievement_21_unlock") +end + +-- Iron Curtain. +-- Reward 40,000 RU +function iron_curtain_rewards() + db.actor:give_money(40000) + SendScriptCallback("actor_on_achievement_earned","iron_curtain","st_achievement_22_unlock") +end + +-- Murky Spirit. +function murky_spirit_rewards() + SendScriptCallback("actor_on_achievement_earned","murky_spirit","st_achievement_23_unlock") +end + +-- Invictus. +function invictus_rewards() + SendScriptCallback("actor_on_achievement_earned","invictus","st_achievement_24_unlock") +end \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/scripts/game_statistics.script b/mods/Redone Collection_backup/gamedata/scripts/game_statistics.script new file mode 100644 index 00000000..151c792a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/game_statistics.script @@ -0,0 +1,587 @@ +-------------------------------- +----- Written by Darryl123 ----- +-------------------------------- + +--[[ + +- Modified by Tronex +- 2019/4/29 + +- NPC rank and rep progression by different stats + +--]] + +------------------ +----- Tables ----- +------------------ + +-- Achievements unlocked. +actor_achievements = { + ["bookworm_food"] = { unlocked = false, rank = 1000, rept = 0 }, + ["completionist"] = { unlocked = false, rank = 1000, rept = 0 }, + ["down_to_earth"] = { unlocked = false, rank = 1000, rept = 0 }, + ["duga_free"] = { unlocked = false, rank = 1000, rept = 0 }, + ["geologist"] = { unlocked = false, rank = 1000, rept = 0 }, + ["heavy_pockets"] = { unlocked = false, rank = 1000, rept = 0 }, + ["infopreneur"] = { unlocked = false, rank = 1000, rept = 0 }, + ["mechanized_warfare"] = { unlocked = false, rank = 1000, rept = 0 }, + ["patriarch"] = { unlocked = false, rank = 1000, rept = 0 }, + ["radiotherapy"] = { unlocked = false, rank = 1000, rept = 0 }, + ["rag_and_bone"] = { unlocked = false, rank = 1000, rept = 0 }, + ["silver_or_lead"] = { unlocked = false, rank = 1000, rept = 0 }, + ["tourist"] = { unlocked = false, rank = 1000, rept = 0 }, + ["well_dressed"] = { unlocked = false, rank = 1000, rept = 0 }, + ["wishful_thinking"] = { unlocked = false, rank = 1000, rept = 0 }, + ["infantile_pleasure"] = { unlocked = false, rank = 1000, rept = 0 }, + ["recycler"] = { unlocked = false, rank = 1000, rept = 0 }, + ["artificer_eagerness"] = { unlocked = false, rank = 1000, rept = 0 }, + ["unforeseen_guest"] = { unlocked = false, rank = 1000, rept = 0 }, + ["absolver"] = { unlocked = false, rank = 1000, rept = 0 }, + ["collaborator"] = { unlocked = false, rank = 1000, rept = 0 }, + ["iron_curtain"] = { unlocked = false, rank = 1000, rept = 0 }, + ["murky_spirit"] = { unlocked = false, rank = 1000, rept = 0 }, + ["invictus"] = { unlocked = false, rank = 1000, rept = 0 }, +} + +-- Artefacts found and detected. +-- Should be empty by default. +actor_artefacts = { +} + +-- Unlocked Anomaly maps. Should be empty by default. +actor_anomaly_maps = { +} + +-- Miscellaneous data that requires recording. +actor_miscellaneous = { + ["actual_rank"] = 0, + ["actual_rept"] = 0, +} + +-- Levels visited. +actor_visited_levels = { + ["jupiter"] = false, + ["jupiter_underground"] = false, + ["k00_marsh"] = false, + ["k01_darkscape"] = false, + ["k02_trucks_cemetery"] = false, + ["l01_escape"] = false, + ["l02_garbage"] = false, + ["l03_agroprom"] = false, + ["l03u_agr_underground"] = false, + ["l04_darkvalley"] = false, + ["l04u_labx18"] = false, + ["l05_bar"] = false, + ["l06_rostok"] = false, + ["l07_military"] = false, + ["l08_yantar"] = false, + ["l08u_brainlab"] = false, + ["l09_deadcity"] = false, + ["l10_limansk"] = false, + ["l10_radar"] = false, + ["l10_red_forest"] = false, + ["l10u_bunker"] = false, + ["l11_hospital"] = false, + ["l11_pripyat"] = false, + ["l12_stancia"] = false, + ["l12_stancia_2"] = false, + ["l12u_control_monolith"] = false, + ["l12u_sarcofag"] = false, + ["l13_generators"] = false, + ["l13u_warlab"] = false, + ["labx8"] = false, + ["pripyat"] = false, + ["zaton"] = false, + ["y04_pole"] = false, +} + +-- Smart terrains visited. +-- Should be empty by default. +actor_visited_smarts = { +} + +-- Tracked player statistics and their rank and reputation rewards. +actor_statistics = { + ["arena_battles"] = { count = 0, rank = 7, rept = 8 }, + ["artefacts_detected"] = { count = 0, rank = 4, rept = 0 }, + ["artefacts_found"] = { count = 0, rank = 2, rept = 0 }, + ["articles"] = { count = 0, rank = 2, rept = 0 }, -- Counter is incremented but isn't used. + ["boxes_smashed"] = { count = 0, rank = 1, rept = 0 }, + ["deaths"] = { count = 0, rank = 0, rept = 0 }, + ["donations"] = { count = 0, rank = 3, rept = 1 }, -- Actual points given depends on item condition. + ["emissions"] = { count = 0, rank = 14, rept = 0 }, + ["enemies_surrendered"] = { count = 0, rank = 4, rept = 0 }, + ["field_dressings"] = { count = 0, rank = 1, rept = 0 }, + ["helicopters_downed"] = { count = 0, rank = 100, rept = 25 }, + ["helicopters_downed2"] = { count = 0, rank = 50, rept = 0 }, -- Bonus points for using explosives. + ["killed_companions"] = { count = 0, rank = 0, rept = -75 }, + ["killed_monsters"] = { count = 0, rank = 2, rept = 0 }, + ["killed_prisoners"] = { count = 0, rank = 0, rept = -25 }, + ["killed_stalkers"] = { count = 0, rank = 0, rept = 0 }, -- Unused; see below and the "rank_kill_points" config section. + ["killed_stalkers_e"] = { count = 0, rank = 0, rept = 2 }, -- Enemy relations. + ["killed_stalkers_f"] = { count = 0, rank = 0, rept = -100 }, -- Friendly relations. + ["killed_stalkers_n"] = { count = 0, rank = 0, rept = -75 }, -- Neutral relations. + ["level_changes"] = { count = 0, rank = 0, rept = 0 }, + ["pdas_delivered"] = { count = 0, rank = 3, rept = 2 }, + ["psi_storms"] = { count = 0, rank = 7, rept = 0 }, + ["stashes_found"] = { count = 0, rank = 2, rept = 0 }, + ["tasks_cancelled"] = { count = 0, rank = 0, rept = -25 }, + ["tasks_completed"] = { count = 0, rank = 10, rept = 8 }, + ["tasks_failed"] = { count = 0, rank = 0, rept = -25 }, + ["wounded_helped"] = { count = 0, rank = 5, rept = 8 }, + -- new + ["items_crafted"] = { count = 0, rank = 1, rept = 0 }, + ["items_disassembled"] = { count = 0, rank = 1, rept = 0 }, + ["self_repairs"] = { count = 0, rank = 1, rept = 0 }, + ["minutes_disguised"] = { count = 0, rank = 1, rept = 0 }, +} + +-- Saved NPC statistics and their rank and reputation rewards. +npc_statistics = { + ["artefacts_found"] = { save = true, rank = 150, rept = 0 }, + ["boxes_smashed"] = { save = false, rank = 10, rept = 0 }, + ["field_dressings"] = { save = false, rank = 25, rept = 0 }, + ["helicopters_downed"] = { save = false, rank = 2500, rept = 50 }, + ["helicopters_downed2"] = { save = false, rank = 1000, rept = 50 }, + ["killed_monsters"] = { save = true, rank = 100, rept = 0 }, + ["killed_stalkers"] = { save = true, rank = 0, rept = 0 }, -- All + ["killed_stalkers_e"] = { save = false, rank = 100, rept = 10 }, -- Enemy relations. + ["killed_stalkers_f"] = { save = false, rank = 0, rept = -100 }, -- Friendly relations. + ["killed_stalkers_n"] = { save = false, rank = 0, rept = -75 }, -- Neutral relations. + ["corpse_looted"] = { save = true, rank = 10, rept = 0 }, + ["wounded_helped"] = { save = true, rank = 50, rept = 100 }, + ["items_sold"] = { save = true, rank = 10, rept = 0 }, +} + +--------------------- +----- Callbacks ----- +--------------------- + +-- Called when actor takes an item. +function actor_on_item_take(item) + if not (item and IsArtefact(item)) then return end + + -- Hack to prevent player from exploting Artefacts Containers (gaining rank by recieving artefacts) + if _G.ARTY_FROM_CONT then + _G.ARTY_FROM_CONT = nil + return + end + + local artefact = item:get_artefact() + local anomaly = bind_anomaly_zone.parent_zones_by_artefact_id[item:id()] + -- Artefacts found counter incrementation. + -- Checks to make sure artefact id hasn't already been logged. + if (artefact) then + artefact:FollowByPath("NULL", 0, vector():set(500,500,500)) + if not (actor_artefacts[item:id()]) then + actor_artefacts[item:id()] = true + increment_statistic("artefacts_found") + else + return + end + end + -- Artefacts detected counter incrementation. + -- Requires the artefact be associated with an anomaly. + if (artefact and anomaly) then + anomaly:on_artefact_take(item) + increment_statistic("artefacts_detected") + else + bind_anomaly_zone.artefact_ways_by_id[item:id()] = nil + end +end + +-- Called when an NPC is killed. +function npc_on_death_callback(victim, killer) + -- Return if the actor is not the killer. + if not (killer and victim) then return end + local id = killer:id() + local killer_faction = character_community(killer) + local victim_faction = character_community(victim) + --if not (killer:id() == AC_ID) then return end + -- Increment statistics based on faction relations. + + local stat + if (xr_conditions.is_factions_friends(nil, nil, { killer_faction, victim_faction })) then + stat = "killed_stalkers_f" + elseif (xr_conditions.is_factions_enemies(nil, nil, { killer_faction, victim_faction })) then + stat = "killed_stalkers_e" + else + stat = "killed_stalkers_n" + end + + if (id == AC_ID) then + increment_statistic("killed_stalkers") + increment_statistic(stat) + else + increment_npc_statistic(killer,"killed_stalkers") + increment_npc_statistic(killer,stat) + end +end + +-- Called when an achievement is earned. +function actor_on_achievement_earned(achievement, message) + if (achievement and message) then + news_manager.send_tip(db.actor, message, nil, achievement, nil, nil) + if actor_achievements[achievement] then + actor_achievements[achievement].unlocked = true + + if actor_achievements[achievement].rank then + increment_rank( actor_achievements[achievement].rank ) + end + + if actor_achievements[achievement].rept then + increment_reputation( actor_achievements[achievement].rept ) + end + else + actor_achievements[achievement] = {} + actor_achievements[achievement].unlocked = true + end + end +end + +-- Called when the game is loaded. +function on_game_load() + if (not IsTestMode()) then + actor_visited_levels[level.name()] = true + end + + if DEV_DEBUG and (not has_alife_info("debug_mode_flag_on")) then + give_info("debug_mode_flag_on") + printf("~ Player used debug mode!") + end +end + +-- Called when the game starts. +function on_game_start() + RegisterScriptCallback("actor_on_item_take", actor_on_item_take) + RegisterScriptCallback("npc_on_death_callback", npc_on_death_callback) + RegisterScriptCallback("actor_on_achievement_earned", actor_on_achievement_earned) + RegisterScriptCallback("on_game_load", on_game_load) + RegisterScriptCallback("on_level_changing", on_level_changing) + RegisterScriptCallback("actor_on_interaction", actor_on_interaction) + create_relations_tables() +end + +-- Called when changing levels. +function on_level_changing() + if (not IsTestMode()) then + increment_statistic("level_changes") + end +end + +----------------------- +----- Incrementors ---- +----------------------- + +-- Increments actor rank value. +-- Impose restrictions at double the minimum and maximum ranks' values. +function increment_rank(value) + db.actor:change_character_rank(value or 0) + if (db.actor:character_rank() < 0) then db.actor:set_character_rank(0) end + if (db.actor:character_rank() > 1000000000) then db.actor:set_character_rank(1000000000) end + check_for_rank_change() +end +function increment_npc_rank(npc, value) + if (not npc) then return end + --npc:change_character_rank(value or 0) + npc:set_character_rank(npc:character_rank() + (value or 0)) + if (npc:character_rank() < 0) then npc:set_character_rank(0) end + if (npc:character_rank() > 1000000000) then npc:set_character_rank(1000000000) end + --printf("/ NPC stats | +Rank = %s | id: %s - name: %s", npc:character_rank(), npc:id(), npc:character_name()) +end + +-- Increments actor reputation value. +-- Impose restrictions at double the minimum and maximum reputations' values. +function increment_reputation(value) + -- Fix for arena causing reputation changes + if has_alife_info("bar_arena_fight") then + return + end + + db.actor:change_character_reputation(value or 0) + if (db.actor:character_reputation() < -4000) then db.actor:set_character_reputation(-4000) end + if (db.actor:character_reputation() > 4000) then db.actor:set_character_reputation(4000) end + check_for_reputation_change() +end +function increment_npc_reputation(npc,value) + if (not npc) then return end + --npc:change_character_reputation(value or 0) + npc:set_character_reputation(npc:character_reputation() + (value or 0)) + if (npc:character_reputation() < -4000) then npc:set_character_reputation(-4000) end + if (npc:character_reputation() > 4000) then npc:set_character_reputation(4000) end + --printf("/ NPC stats | +Rep = %s | id: %s - name: %s", npc:character_reputation(), npc:id(), npc:character_name()) +end + +-- Increments a statistic counter. +-- Also updates actor rank and reputation values. +function increment_statistic(value, custom_rank, custom_rept) + local statistic = value and actor_statistics[value] or nil + if (statistic and statistic.count and statistic.rank and statistic.rept) then + statistic.count = statistic.count + 1 + increment_rank(custom_rank or statistic.rank) + increment_reputation(custom_rept or statistic.rept) + end +end +function increment_npc_statistic(npc, value, custom_rank, custom_rept) + local statistic = value and npc_statistics[value] or nil + if (npc and IsStalker(npc) and npc:alive() and statistic and statistic.rank and statistic.rept) then + if statistic.save then + local se_npc = alife_object(npc:id()) + if se_npc then + local m_data = alife_storage_manager.get_se_obj_state(se_npc,true) + if (m_data) then + m_data[value] = m_data[value] and m_data[value] + 1 or 1 + end + end + end + increment_npc_rank(npc, custom_rank or statistic.rank) + increment_npc_reputation(npc, custom_rept or statistic.rept) + end +end + +------------------------- +----- Miscellaneous ----- +------------------------- + +-- Gets the count for unlocked achievements. +function get_actor_achievements_count() + local count = 0 + for k, v in pairs(actor_achievements) do + if (v.unlocked == true) then + count = count + 1 + end + end + return count +end + +-- Gets the count for visited levels. +function get_actor_visited_levels_count() + local count = 0 + for k, v in pairs(actor_visited_levels) do + if (v == true) then + count = count + 1 + end + end + return count +end + +-- Gets the count for visited smarts. +function get_actor_visited_smarts_count() + local count = 0 + for k, v in pairs(actor_visited_smarts) do + if (v == true) then + count = count + 1 + end + end + return count +end + +-- Gets the count value for a statistic. +function get_statistic_count(value) + local statistic = value and actor_statistics[value] or nil + return (statistic and statistic.count) and statistic.count or 0 +end + +-- Gets whether the actor has an achievement unlocked. +function has_actor_achievement(value) + local achievement = value and actor_achievements[value] + return achievement and achievement.unlocked or false +end + +-- Gets whether the actor has visited all levels. +function has_actor_visitied_all_levels() + for k, v in pairs (actor_visited_levels) do + if (v == false) then + return false + end + end + return true +end + +-- Gets whether the actor has visited a specific level. +function has_actor_visited_level(value) + return value and actor_visited_levels[value] or false +end + +-- Gets whether the actor has visited a specific smart. +function has_actor_visited_smart(value) + return value and actor_visited_smarts[value] or false +end + +-- Called when a smart terrain is visited. +function actor_on_interaction(typ, obj, name) + if (typ ~= "smarts") then + return + end + + actor_visited_smarts[name] = true +end + +----------------------------- +----- Rank & Reputation ----- +----------------------------- + +-- Creates the rank and reputation tables. +local rank_table, rept_table +function create_relations_tables() + -- Check if the rank and reputation tables are initialised. + if not (rank_table and rept_table) then + -- Matches each rank and reputation to a value. + local function parse_string(value) + local result = {} + for name in string.gmatch(value, "([%w_%-.\\]+)[%,%s]*") do + result[#result + 1] = name + end + return result + end + -- Retrieve the rank and reputation values from configs. + local ini = ini_file("creatures\\game_relations.ltx") + local rank_table_temp = parse_string(ini:r_string_ex("game_relations", "rating")) + local rept_table_temp = parse_string(ini:r_string_ex("game_relations", "reputation")) + -- Fill the contents of the rank table. + rank_table = {} + for index = 2, #rank_table_temp, 2 do + rank_table[#rank_table + 1] = tonumber(rank_table_temp[index]) + end + -- Fill the contents of the reputation table. + rept_table = {} + for index = 2, #rept_table_temp, 2 do + rept_table[#rept_table + 1] = tonumber(rept_table_temp[index]) + end + end +end + +-- Checks for changes the actor's rank. +function check_for_rank_change(suppress) + local current_rank = db.actor:character_rank() + local new_rank, old_rank = 0, 0 + for index = 1, #rank_table do + if (current_rank <= rank_table[index]) then + break + end + new_rank = new_rank + 1 + end + for index = 1, #rank_table do + if (actor_miscellaneous.actual_rank <= rank_table[index]) then + break + end + old_rank = old_rank + 1 + end + if (not suppress) then + if (old_rank > new_rank) then + news_manager.send_tip(db.actor, "st_rank_decreased", nil, "rank_change", nil, nil) + elseif (new_rank > old_rank) then + news_manager.send_tip(db.actor, "st_rank_increased", nil, "rank_change", nil, nil) + end + end + actor_miscellaneous.actual_rank = current_rank +end + +-- Checks for changes to the actor's reputation. +function check_for_reputation_change(suppress) + local current_rept = db.actor:character_reputation() + local new_rept, old_rept = 0, 0 + for index = 1, #rept_table do + if (current_rept <= rept_table[index]) then + break + end + new_rept = new_rept + 1 + end + for index = 1, #rept_table do + if (actor_miscellaneous.actual_rept <= rept_table[index]) then + break + end + old_rept = old_rept + 1 + end + if (not suppress) then + if (old_rept > new_rept) then + news_manager.send_tip(db.actor, "st_reputation_decreased", nil, "rep_change", nil, nil) + elseif (new_rept > old_rept) then + news_manager.send_tip(db.actor, "st_reputation_increased", nil, "rep_change", nil, nil) + end + end + actor_miscellaneous.actual_rept = current_rept +end + +---------------------------- +----- Saving & Loading ----- +---------------------------- + +-- Loads the contents of the tables the regular way. +-- Unimplemented as Call of Chernobyl doesn't use this. +function load(packet) + if (USE_MARSHAL) then + return + end +end + + +-- Loads the contents of the tables using MARSHAL. +function load_state(data) + -- If no saved data exists then return. + if not (data.game_statistics) then + return + end + + -- See the comments in the save_state method as to how this works. + + actor_artefacts = data.game_statistics.actor_artefacts or actor_artefacts + actor_anomaly_maps = data.game_statistics.actor_anomaly_maps or actor_anomaly_maps + actor_miscellaneous = data.game_statistics.actor_miscellaneous or actor_miscellaneous + actor_visited_levels = data.game_statistics.actor_visited_levels or actor_visited_levels + actor_visited_smarts = data.game_statistics.actor_visited_smarts or actor_visited_smarts + + if (data.game_statistics.actor_achievements) then + for k, v in pairs(data.game_statistics.actor_achievements) do + if (actor_achievements[k]) then + actor_achievements[k].unlocked = v + end + end + end + + if (data.game_statistics.actor_statistics) then + for k, v in pairs(data.game_statistics.actor_statistics) do + if (actor_statistics[k]) then + actor_statistics[k].count = v + end + end + end +end + +-- Saves the contents of the tables the regular way. +-- Unimplemented as Call of Chernobyl doesn't use this. +function save(packet) + if (USE_MARSHAL) then + return + end +end + +-- Saves the contents of the tables using MARSHAL. +function save_state(data) + -- Create a table to store saved data. + if (not data.game_statistics) then + data.game_statistics = {} + end + + -- Save tables as they are if they only record true/false values. + data.game_statistics.actor_artefacts = actor_artefacts + data.game_statistics.actor_anomaly_maps = actor_anomaly_maps + data.game_statistics.actor_miscellaneous = actor_miscellaneous + data.game_statistics.actor_visited_levels = actor_visited_levels + data.game_statistics.actor_visited_smarts = actor_visited_smarts + + -- Couple of things to be noted here. + -- Rank and reputation values are stored in these tables as well, and we really don't want to save those. + -- If we did, it would mean any changes to their values in this script file would be ignored by existing saves. + -- However, saving the data this way also prevents any potential nil value crashes if new statistics and such are added. + + data.game_statistics.actor_achievements = {} + for k, v in pairs(actor_achievements) do + data.game_statistics.actor_achievements[k] = v.unlocked + end + + data.game_statistics.actor_statistics = {} + for k, v in pairs(actor_statistics) do + data.game_statistics.actor_statistics[k] = v.count + end +end \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/scripts/modxml_renegade_desc_dxml.script b/mods/Redone Collection_backup/gamedata/scripts/modxml_renegade_desc_dxml.script new file mode 100644 index 00000000..f2c3b990 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/modxml_renegade_desc_dxml.script @@ -0,0 +1,83 @@ +function on_xml_read() + RegisterScriptCallback("on_xml_read", function(xml_file_name, xml_obj) + local xml_to_change = [[gameplay\character_desc_marsh.xml]] + if xml_file_name == xml_to_change then + local renegade_trader_profile = [[ + + mar_renegade_trader_name + ui_inGame2_bandit_1 + + Детальная No information is available. + >mar_renegade_trader + renegade + + + + + [spawn] \n + wpn_ak74u \n + ammo_5.45x39_fmj = 1 \n + wpn_hpsa \n + ammo_9x19_fmj = 1 \n +#include "gameplay\supplies\character_items_nd.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" + stalker_terrain + characters_voice\human\bandit_1\ + actors\stalker_renegade\stalker_renegade_1a_face_3 + + val_smart_terrain_7_4_bandit_trader_stalker_start_dialog + dm_init_trader + drx_sl_task_completed_dialog + dm_ordered_task_completed_dialog + drx_sl_val_smart_terrain_7_4_bandit_trader_stalker_meet_dialog + dm_ordered_task_dialog + buy_route + debt_register + debt_pay_off + actor_break_dialog + + + + mar_renegade_mechanic_name + ui_inGame2_band_2_mask + Детальная No information is available. + mar_renegade_mechanic + renegade + + + + + + [spawn] \n + wpn_ak74u \n + ammo_5.45x39_fmj = 1 \n + wpn_hpsa \n + ammo_9x19_fmj = 1 \n +#include "gameplay\supplies\character_items_nd.xml" +#include "gameplay\supplies\character_food.xml" +#include "gameplay\supplies\character_drugs.xml" + +#include "gameplay\character_criticals.xml" + stalker_terrain + 1 + characters_voice\human\bandit_1\ + actors\stalker_renegade\stalker_renegade_leader + + val_smart_terrain_7_3_bandit_mechanic_stalker_start_dialog + dm_init_trader + dm_init_mechanic + dm_ordered_task_completed_dialog + dm_broker_dialog + drx_sl_mechanic_task_dialog + dm_tech_repair + dm_encrypted_pda + actor_break_dialog + + ]] + xml_obj:insertFromXMLString(renegade_trader_profile) + end + end) +end \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/scripts/modxml_renegade_info_awr_dxml.script b/mods/Redone Collection_backup/gamedata/scripts/modxml_renegade_info_awr_dxml.script new file mode 100644 index 00000000..9ad80a3a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/modxml_renegade_info_awr_dxml.script @@ -0,0 +1,13 @@ +function on_xml_read() + RegisterScriptCallback("on_xml_read", function(xml_file_name, xml_obj) + local xml_to_change = [[gameplay\info_awr.xml]] + if xml_file_name == xml_to_change then + local renegade_info_awr_profile = [[ + + + + ]] + xml_obj:insertFromXMLString(renegade_info_awr_profile) + end + end) +end \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/scripts/modxml_renegade_info_mlr_dxml.script b/mods/Redone Collection_backup/gamedata/scripts/modxml_renegade_info_mlr_dxml.script new file mode 100644 index 00000000..d069a09c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/modxml_renegade_info_mlr_dxml.script @@ -0,0 +1,12 @@ +function on_xml_read() + RegisterScriptCallback("on_xml_read", function(xml_file_name, xml_obj) + local xml_to_change = [[gameplay\info_mlr.xml]] + if xml_file_name == xml_to_change then + local renegade_info_mlr_profile = [[ + + + ]] + xml_obj:insertFromXMLString(renegade_info_mlr_profile) + end + end) +end \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/scripts/modxml_renegade_profile_mlr_dxml.script b/mods/Redone Collection_backup/gamedata/scripts/modxml_renegade_profile_mlr_dxml.script new file mode 100644 index 00000000..5eaaccc1 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/modxml_renegade_profile_mlr_dxml.script @@ -0,0 +1,19 @@ +function on_xml_read() + RegisterScriptCallback("on_xml_read", function(xml_file_name, xml_obj) + local xml_to_change = [[gameplay\npc_profile_mlr.xml]] + if xml_file_name == xml_to_change then + local renegade_profile = [[ + + mar_renegade_trader + mar_renegade_trader + + + + mar_renegade_mechanic + mar_renegade_mechanic + + ]] + xml_obj:insertFromXMLString(renegade_profile) + end + end) +end \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_endless_agr_night_mutants.script b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_agr_night_mutants.script new file mode 100644 index 00000000..237555f4 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_agr_night_mutants.script @@ -0,0 +1,30 @@ +function actor_on_first_update() + local pool = { + ["agr_endless_night_spawn_01"] = { + pos = vector():set(28.622802734375, 4.2881875038147, -124.99558258057), + smart = "agr_smart_terrain_4_6", + }, + ["agr_endless_night_spawn_02"] = { + pos = vector():set(52.704040527344, 16.574716567993, 123.60317993164), + smart = "agr_smart_terrain_5_2", + }, + ["agr_endless_night_spawn_03"] = { + pos = vector():set(-97.329170227051, 12.251251220703, 158.92121887207), + smart = "agr_smart_terrain_2_2", + } + } + + for sec,v in pairs(pool) do + local se = get_story_se_item(sec) + if not (se) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + se = alife():create(sec,pos,vid,gid) + end + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_endless_bar_night_mutants.script b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_bar_night_mutants.script new file mode 100644 index 00000000..d105a552 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_bar_night_mutants.script @@ -0,0 +1,30 @@ +function actor_on_first_update() + local pool = { + ["bar_endless_night_spawn_01"] = { + pos = vector():set(197.84326171875, 2.120393037796, -84.757629394531), + smart = "bar_zastava_dogs_lair", + }, + ["bar_endless_night_spawn_02"] = { + pos = vector():set(42.580982208252, -0.0022871494293213, 207.98942565918), + smart = "bar_zastava_dogs_lair_2", + }, + ["bar_endless_night_spawn_03"] = { + pos = vector():set(147.11489868164, -0.003469854593277, 64.117401123047), + smart = "bar_visitors", + } + } + + for sec,v in pairs(pool) do + local se = get_story_se_item(sec) + if not (se) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + se = alife():create(sec,pos,vid,gid) + end + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_endless_cit_night_mutants.script b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_cit_night_mutants.script new file mode 100644 index 00000000..c1f7ee35 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_cit_night_mutants.script @@ -0,0 +1,30 @@ +function actor_on_first_update() + local pool = { + ["cit_endless_night_spawn_01"] = { + pos = vector():set(-134.28648376465, -1.4032030105591, -330.41253662109), + smart = "zombie_smart_ds_mlr_1", + }, + ["cit_endless_night_spawn_02"] = { + pos = vector():set(51.318702697754, 3.5220413208008, 68.45654296875), + smart = "zombie_smart_ds_mlr_2", + }, + ["cit_endless_night_spawn_03"] = { + pos = vector():set(-221.71157836914, 9.9104175567627, -180.50151062012), + smart = "cit_kanaliz1", + } + } + + for sec,v in pairs(pool) do + local se = get_story_se_item(sec) + if not (se) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + se = alife():create(sec,pos,vid,gid) + end + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_endless_ds_night_mutants.script b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_ds_night_mutants.script new file mode 100644 index 00000000..324b2701 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_ds_night_mutants.script @@ -0,0 +1,30 @@ +function actor_on_first_update() + local pool = { + ["ds_endless_night_spawn_01"] = { + pos = vector():set(-13.702819824219, -0.45751050114632, -327.75891113281), + smart = "ds2_st_dogs", + }, + ["ds_endless_night_spawn_02"] = { + pos = vector():set(248.58453369141, -0.55253577232361, -86.308952331543), + smart = "ds_boars_nest", + }, + ["ds_endless_night_spawn_03"] = { + pos = vector():set(207.64343261719, -2.2147569656372, 552.82995605469), + smart = "ds_kem3", + } + } + + for sec,v in pairs(pool) do + local se = get_story_se_item(sec) + if not (se) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + se = alife():create(sec,pos,vid,gid) + end + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_endless_esc_night_mutants.script b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_esc_night_mutants.script new file mode 100644 index 00000000..3f910a3a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_esc_night_mutants.script @@ -0,0 +1,30 @@ +function actor_on_first_update() + local pool = { + ["esc_endless_night_spawn_01"] = { + pos = vector():set(-86.41145324707, -4.1926307678223, -78.133041381836), + smart = "esc_smart_terrain_4_11", + }, + ["esc_endless_night_spawn_02"] = { + pos = vector():set(312.53915405273, 3.3987352848053, 126.92022705078), + smart = "esc_smart_terrain_8_9", + }, + ["esc_endless_night_spawn_03"] = { + pos = vector():set(129.46849060059, -0.71068423986435, 322.65246582031), + smart = "esc_smart_terrain_6_6", + } + } + + for sec,v in pairs(pool) do + local se = get_story_se_item(sec) + if not (se) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + se = alife():create(sec,pos,vid,gid) + end + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_endless_gar_night_mutants.script b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_gar_night_mutants.script new file mode 100644 index 00000000..e388845a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_gar_night_mutants.script @@ -0,0 +1,30 @@ +function actor_on_first_update() + local pool = { + ["gar_endless_night_spawn_01"] = { + pos = vector():set(-210.73924255371, 0.29106289148331, -34.128147125244), + smart = "gar_smart_terrain_1_5", + }, + ["gar_endless_night_spawn_02"] = { + pos = vector():set(197.09075927734, 1.3092757463455, -109.58041381836), + smart = "gar_smart_terrain_6_6", + }, + ["gar_endless_night_spawn_03"] = { + pos = vector():set(270.46417236328, 0.50552141666412, 177.38319396973), + smart = "gar_smart_terrain_8_3", + } + } + + for sec,v in pairs(pool) do + local se = get_story_se_item(sec) + if not (se) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + se = alife():create(sec,pos,vid,gid) + end + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_endless_mar_night_mutants.script b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_mar_night_mutants.script new file mode 100644 index 00000000..9aba42f7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_mar_night_mutants.script @@ -0,0 +1,30 @@ +function actor_on_first_update() + local pool = { + ["mar_endless_night_spawn_01"] = { + pos = vector():set(-152.15197753906, 0.80081522464752, 86.731491088867), + smart = "mar_smart_terrain_3_7", + }, + ["mar_endless_night_spawn_02"] = { + pos = vector():set(272.58688354492, 4.4342155456543, 55.053783416748), + smart = "mar_smart_terrain_8_8", + }, + ["mar_endless_night_spawn_03"] = { + pos = vector():set(364.51748657227, 2.1262073516846, 115.86725616455), + smart = "mar_smart_terrain_10_7", + } + } + + for sec,v in pairs(pool) do + local se = get_story_se_item(sec) + if not (se) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + se = alife():create(sec,pos,vid,gid) + end + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_endless_mil_night_mutants.script b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_mil_night_mutants.script new file mode 100644 index 00000000..b00db200 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_mil_night_mutants.script @@ -0,0 +1,30 @@ +function actor_on_first_update() + local pool = { + ["mil_endless_night_spawn_01"] = { + pos = vector():set(238.30529785156, 1.3474156856537, 437.15505981445), + smart = "mil_smart_terrain_2_1", + }, + ["mil_endless_night_spawn_02"] = { + pos = vector():set(38.137920379639, -13.218147277832, 333.01922607422), + smart = "mil_smart_terrain_2_6", + }, + ["mil_endless_night_spawn_03"] = { + pos = vector():set(-364.98373413086, -15.18780040741, 203.99565124512), + smart = "mil_smart_terrain_4_2", + } + } + + for sec,v in pairs(pool) do + local se = get_story_se_item(sec) + if not (se) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + se = alife():create(sec,pos,vid,gid) + end + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_endless_ros_night_mutants.script b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_ros_night_mutants.script new file mode 100644 index 00000000..a5f9bf4f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_ros_night_mutants.script @@ -0,0 +1,30 @@ +function actor_on_first_update() + local pool = { + ["ros_endless_night_spawn_01"] = { + pos = vector():set(-221.39151000977, 0.098205626010895, 115.52049255371), + smart = "ros_smart_poltergeist2", + }, + ["ros_endless_night_spawn_02"] = { + pos = vector():set(-288.29718017578, -0.0036440342664719, 195.13694763184), + smart = "ros_smart_monster4", + }, + ["ros_endless_night_spawn_03"] = { + pos = vector():set(-285.64953613281, 0.54708015918732, 115.35409545898), + smart = "ros_smart_monster5", + } + } + + for sec,v in pairs(pool) do + local se = get_story_se_item(sec) + if not (se) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + se = alife():create(sec,pos,vid,gid) + end + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_endless_trc_night_mutants.script b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_trc_night_mutants.script new file mode 100644 index 00000000..a4f574f0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_trc_night_mutants.script @@ -0,0 +1,30 @@ +function actor_on_first_update() + local pool = { + ["trc_endless_night_spawn_01"] = { + pos = vector():set(138.85020446777, 3.9266076087952, -124.36943054199), + smart = "trc_sim_5", + }, + ["trc_endless_night_spawn_02"] = { + pos = vector():set(198.9889831543, 10.085237503052, 163.07121276855), + smart = "trc_sim_11", + }, + ["trc_endless_night_spawn_03"] = { + pos = vector():set(-52.121494293213, 13.674411773682, 285.16284179688), + smart = "trc_sim_17", + } + } + + for sec,v in pairs(pool) do + local se = get_story_se_item(sec) + if not (se) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + se = alife():create(sec,pos,vid,gid) + end + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_endless_val_night_mutants.script b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_val_night_mutants.script new file mode 100644 index 00000000..67fbdde9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_val_night_mutants.script @@ -0,0 +1,30 @@ +function actor_on_first_update() + local pool = { + ["val_endless_night_spawn_01"] = { + pos = vector():set(-58.37699508667, -0.39553779363632, -374.03778076172), + smart = "val_smart_terrain_3_0", + }, + ["val_endless_night_spawn_02"] = { + pos = vector():set(-134.28462219238, -1.4056015014648, -330.41253662109), + smart = "val_smart_terrain_5_8", + }, + ["val_endless_night_spawn_03"] = { + pos = vector():set(-47.002891540527, -3.0274252891541, -145.11131286621), + smart = "val_smart_terrain_6_5", + } + } + + for sec,v in pairs(pool) do + local se = get_story_se_item(sec) + if not (se) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + se = alife():create(sec,pos,vid,gid) + end + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_endless_yan_night_mutants.script b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_yan_night_mutants.script new file mode 100644 index 00000000..bf760297 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_endless_yan_night_mutants.script @@ -0,0 +1,30 @@ +function actor_on_first_update() + local pool = { + ["yan_endless_night_spawn_01"] = { + pos = vector():set(161.0279083252, -0.71909606456757, 65.10375213623), + smart = "yan_smart_terrain_1_6", + }, + ["yan_endless_night_spawn_02"] = { + pos = vector():set(-209.48184204102, 6.8956809043884, -161.16413879395), + smart = "yan_smart_terrain_4_2", + }, + ["yan_endless_night_spawn_03"] = { + pos = vector():set(-161.47422790527, 6.5996909141541, -308.79528808594), + smart = "yan_smart_terrain_6_2", + } + } + + for sec,v in pairs(pool) do + local se = get_story_se_item(sec) + if not (se) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + se = alife():create(sec,pos,vid,gid) + end + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_lc_ros_transition_local.script b/mods/Redone Collection_backup/gamedata/scripts/redone_lc_ros_transition_local.script new file mode 100644 index 00000000..ee460dbd --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_lc_ros_transition_local.script @@ -0,0 +1,309 @@ +function actor_on_first_update() + local lc_pool = { + ["lc_ros01_ros02"] = { + pos = vector():set(-136.3947,-0.0025,122.3627), + smart = "ros_smart_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros01_ros02.1"] = { + pos = vector():set(-135.5676,-0.000,122.1426), + smart = "ros_smart_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros01_ros02.2"] = { + pos = vector():set(-137.3257,-0.0067,121.5680), + smart = "ros_smart_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros01_ros02.3"] = { + pos = vector():set(-136.9949,-0.0018,122.1856), + smart = "ros_smart_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros02_ros01"] = { + pos = vector():set(-136.9901,0.0062,124.2836), + smart = "ros_smart_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros02_ros01.1"] = { + pos = vector():set(-136.9537,0.0044,125.0893), + smart = "ros_smart_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros02_ros01.2"] = { + pos = vector():set(-138.3931,0.0078,124.3509), + smart = "ros_smart_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros02_ros01.3"] = { + pos = vector():set(-138.4250,0.0095,124.6852), + smart = "ros_smart_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros02_ros01.4"] = { + pos = vector():set(-138.6385,0.0060,124.1129), + smart = "ros_smart_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros02_ros01.5"] = { + pos = vector():set(-137.5683,0.0036,123.8512), + smart = "ros_smart_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros03_ros04"] = { + pos = vector():set(-196.8538,3.0381,68.4065), + smart = "ros_smart_snork1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros05_ros06"] = { + pos = vector():set(-211.6216,-0.0015,9.8376), + smart = "ros_smart_stalker_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros05_ros06.1"] = { + pos = vector():set(-210.3275,-0.0004,9.9314), + smart = "ros_smart_stalker_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros05_ros06.2"] = { + pos = vector():set(-211.0420,-0.0011,10.7245), + smart = "ros_smart_stalker_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros06_ros05"] = { + pos = vector():set(-212.0351,8.8153,9.2077), + smart = "ros_smart_stalker_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros06_ros05.1"] = { + pos = vector():set(-212.5222,8.6005,8.4991), + smart = "ros_smart_stalker_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros06_ros05.2"] = { + pos = vector():set(-212.6854,8.8162,9.5271), + smart = "ros_smart_stalker_killers1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros07_ros08"] = { + pos = vector():set(-172.6166,-0.0011,60.7795), + smart = "ros_smart_snork1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros07_ros08.1"] = { + pos = vector():set(-171.1199,-0.0027,61.0932), + smart = "ros_smart_snork1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros07_ros08.2"] = { + pos = vector():set(-172.9888,-0.0005,62.2433), + smart = "ros_smart_snork1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros07_ros08.3"] = { + pos = vector():set(-171.8293,-3.9115,62.2001), + smart = "ros_smart_snork1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros08_ros07"] = { + pos = vector():set(-188.0054,17.6997,75.3117), + smart = "ros_smart_snork1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros08_ros07.1"] = { + pos = vector():set(-188.5492,17.6990,75.2511), + smart = "ros_smart_snork1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + }, + ["lc_ros08_ros07.2"] = { + pos = vector():set(-186.6996,17.6995,74.1847), + smart = "ros_smart_snork1", + spot = "level_changer_spot_mini", + hint = "space_restrictor_to_rostok_desc", + } + } + + for sec,v in pairs(lc_pool) do + local se = get_story_se_item(sec) + if not (se) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + se = alife():create(sec,pos,vid,gid) + end + + if (se.position:distance_to_sqr(v.pos) > 0.1) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + TeleportObject(se.id,pos,vid,gid) + end + + if (level.map_has_object_spot(se.id,v.spot) == 0) then + level.map_add_object_spot_ser(se.id,v.spot,game.translate_string(v.hint)) + end + end +end + +function check_name(actor,obj,p) + return p and p[1] and obj and string.find(obj:name(),p[1]) and true +end + +function teleport_actor(actor,obj) + local p = { + ["lc_ros01_ros02"] = { + pos = vector():set(-136.99494934082, -0.0014290809631348, 122.18569946289), + w_p = vector():set(-137.00665283203, 0.0017983913421631, 124.59739685059), + smart = "ros_smart_killers1", + }, + ["lc_ros01_ros02.1"] = { + pos = vector():set(-136.99494934082, -0.0014290809631348, 122.18569946289), + w_p = vector():set(-137.00665283203, 0.0017983913421631, 124.59739685059), + smart = "ros_smart_killers1", + }, + ["lc_ros01_ros02.2"] = { + pos = vector():set(-136.99494934082, -0.0014290809631348, 122.18569946289), + w_p = vector():set(-137.00665283203, 0.0017983913421631, 124.59739685059), + smart = "ros_smart_killers1", + }, + ["lc_ros01_ros02.3"] = { + pos = vector():set(-136.99494934082, -0.0014290809631348, 122.18569946289), + w_p = vector():set(-137.00665283203, 0.0017983913421631, 124.59739685059), + smart = "ros_smart_killers1", + }, + ["lc_ros02_ros01"] = { + pos = vector():set(-137.00665283203, 0.0017983913421631, 124.59739685059), + w_p = vector():set(-136.99494934082, -0.0014290809631348, 122.18569946289), + smart = "ros_smart_killers1", + }, + ["lc_ros02_ros01.1"] = { + pos = vector():set(-137.00665283203, 0.0017983913421631, 124.59739685059), + w_p = vector():set(-136.99494934082, -0.0014290809631348, 122.18569946289), + smart = "ros_smart_killers1", + }, + ["lc_ros02_ros01.2"] = { + pos = vector():set(-137.00665283203, 0.0017983913421631, 124.59739685059), + w_p = vector():set(-136.99494934082, -0.0014290809631348, 122.18569946289), + smart = "ros_smart_killers1", + }, + ["lc_ros02_ros01.3"] = { + pos = vector():set(-137.00665283203, 0.0017983913421631, 124.59739685059), + w_p = vector():set(-136.99494934082, -0.0014290809631348, 122.18569946289), + smart = "ros_smart_killers1", + }, + ["lc_ros02_ros01.4"] = { + pos = vector():set(-137.00665283203, 0.0017983913421631, 124.59739685059), + w_p = vector():set(-136.99494934082, -0.0014290809631348, 122.18569946289), + smart = "ros_smart_killers1", + }, + ["lc_ros02_ros01.5"] = { + pos = vector():set(-137.00665283203, 0.0017983913421631, 124.59739685059), + w_p = vector():set(-136.99494934082, -0.0014290809631348, 122.18569946289), + smart = "ros_smart_killers1", + }, + ["lc_ros03_ros04"] = { + pos = vector():set(-196.85385131836, 3.0381197929382, 68.406555175781), + w_p = vector():set(-196.1629486084, 0.062152981758118, 69.714248657227), + smart = "ros_smart_snork1", + }, + ["lc_ros05_ros06"] = { + pos = vector():set(-211.20606994629, -0.0010014176368713, 10.295828819275), + w_p = vector():set(-212.22702026367, 8.8150157928467, 8.7844772338867), + smart = "ros_smart_stalker_killers1", + }, + ["lc_ros05_ros06.1"] = { + pos = vector():set(-211.20606994629, -0.0010014176368713, 10.295828819275), + w_p = vector():set(-212.22702026367, 8.8150157928467, 8.7844772338867), + smart = "ros_smart_stalker_killers1", + }, + ["lc_ros05_ros06.2"] = { + pos = vector():set(-211.20606994629, -0.0010014176368713, 10.295828819275), + w_p = vector():set(-212.22702026367, 8.8150157928467, 8.7844772338867), + smart = "ros_smart_stalker_killers1", + }, + ["lc_ros06_ros05"] = { + pos = vector():set(-212.22702026367, 8.8150157928467, 8.7844772338867), + w_p = vector():set(-211.20606994629, -0.0010014176368713, 10.295828819275), + smart = "ros_smart_stalker_killers1", + }, + ["lc_ros06_ros05.1"] = { + pos = vector():set(-212.22702026367, 8.8150157928467, 8.7844772338867), + w_p = vector():set(-211.20606994629, -0.0010014176368713, 10.295828819275), + smart = "ros_smart_stalker_killers1", + }, + ["lc_ros06_ros05.2"] = { + pos = vector():set(-212.22702026367, 8.8150157928467, 8.7844772338867), + w_p = vector():set(-211.20606994629, -0.0010014176368713, 10.295828819275), + smart = "ros_smart_stalker_killers1", + }, + ["lc_ros07_ros08"] = { + pos = vector():set(-172.27548217773, -0.00015679001808167, 61.4404296875), + w_p = vector():set(-188.33070373535, 17.697116851807, 74.735275268555), + smart = "ros_smart_snork1", + }, + ["lc_ros07_ros08.1"] = { + pos = vector():set(-172.27548217773, -0.00015679001808167, 61.4404296875), + w_p = vector():set(-188.33070373535, 17.697116851807, 74.735275268555), + smart = "ros_smart_snork1", + }, + ["lc_ros07_ros08.2"] = { + pos = vector():set(-172.27548217773, -0.00015679001808167, 61.4404296875), + w_p = vector():set(-188.33070373535, 17.697116851807, 74.735275268555), + smart = "ros_smart_snork1", + }, + ["lc_ros07_ros08.3"] = { + pos = vector():set(-172.27548217773, -0.00015679001808167, 61.4404296875), + w_p = vector():set(-188.33070373535, 17.697116851807, 74.735275268555), + smart = "ros_smart_snork1", + }, + ["lc_ros08_ros07"] = { + pos = vector():set(-188.33070373535, 17.697116851807, 74.735275268555), + w_p = vector():set(-172.27548217773, -0.00015679001808167, 61.4404296875), + smart = "ros_smart_snork1", + }, + ["lc_ros08_ros07.1"] = { + pos = vector():set(-188.33070373535, 17.697116851807, 74.735275268555), + w_p = vector():set(-172.27548217773, -0.00015679001808167, 61.4404296875), + smart = "ros_smart_snork1", + }, + ["lc_ros08_ros07.2"] = { + pos = vector():set(-188.33070373535, 17.697116851807, 74.735275268555), + w_p = vector():set(-172.27548217773, -0.00015679001808167, 61.4404296875), + smart = "ros_smart_snork1", + }, + } + + local sec = obj and obj:section() + local v = sec and p[sec] + + if (v and v.w_p and v.pos and v.smart) then + db.actor:set_actor_position(v.w_p) + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_remove_labx16_object.script b/mods/Redone Collection_backup/gamedata/scripts/redone_remove_labx16_object.script new file mode 100644 index 00000000..eceeba27 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_remove_labx16_object.script @@ -0,0 +1,41 @@ +local HI = has_alife_info +local GI = give_info +function NI(str) + return not (has_alife_info(str)) +end + +local storage_data = {} + +function clean_mess(actor,smart,p) + if (HI("remove_objects")) then + return + end + local zone = db.zone_by_name["yan_attack_zombies_space_restrictor"] + if (smart and zone) then + local section_list = { + ["physic_destroyable_object"] = true, + ["explosive_fuelcan"] = true, + } + for id = 1,65534 do + local se = alife():object(id) + if (se and section_list[se:section_name()] and simulation_objects.is_on_the_same_level(se,smart) and zone:inside(se.position)) then + safe_release_manager.release(se) + printf("Release [%s]",se:name()) + end + end + GI("remove_objects") + end +end + +function save_state(m_data) + m_data.gameplay_labx16_redone_storage_data = storage_data +end + +function load_state(m_data) + storage_data = m_data.gameplay_labx16_redone_storage_data or {} +end + +function on_game_start() + RegisterScriptCallback("save_state",save_state) + RegisterScriptCallback("load_state",load_state) +end \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/scripts/redone_xr_dynamic_object.script b/mods/Redone Collection_backup/gamedata/scripts/redone_xr_dynamic_object.script new file mode 100644 index 00000000..5eaa5175 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/scripts/redone_xr_dynamic_object.script @@ -0,0 +1,119 @@ + +local dynamic_object_storage = {} + +function dynamic_object(actor,obj,p) + local ini = p and p[1] and ini_file(p[1]) + local smart_name = ini and ini:r_string_ex("dynamic_object_configs","smart") + local smart = smart_name and SIMBOARD.smarts_by_names[smart_name] + + if not (smart) then + return + end + + if not (dynamic_object_storage[smart_name]) then + dynamic_object_storage[smart_name] = {} + end + + local lst = dynamic_object_storage[smart_name] + + local n = ini:line_count("exclusive") + for k=0,n-1 do + local r,i,v = ini:r_line("exclusive",k) + local s = get_object_config(v) + if (i and s) then + local idx = lst[i] + local sec = s.sec + local pos = s.pos + local ang = s.ang + local con = s.con and ini:r_string_to_condlist("dynamic_object_configs",s.con,"true") + if (xr_logic.pick_section_from_condlist(db.actor,obj,con) == "true") then + local se = idx and tonumber(idx.id) and alife():object(tonumber(idx.id)) + if (se and string.find(se:name(),sec)) then + -- Correct. Update object. + se.position = vector():set(pos) + se.angle = vector():set(ang) + else + -- Wrong object or doesn't exit. Try to delete the old object and create a new one. + if (se and idx.sec and string.find(se:name(),idx.sec)) then + alife_release(se) + end + local new_se = alife():create(sec,pos,smart.m_level_vertex_id,smart.m_game_vertex_id) + if (new_se) then + new_se.angle = vector():set(ang) + lst[i] = {id = tonumber(new_se.id),sec = tostring(sec)} + --printf("GhenTuong: dynamic_object create %s [%s]",new_se.id,new_se:name()) + end + end + else + if (idx) then + local se = tonumber(idx.id) and alife():object(tonumber(idx.id)) + if (se and idx.sec and string.find(se:name(),idx.sec)) then + --printf("GhenTuong: dynamic_object delete %s [%s]",se.id,se:name()) + alife_release(se) + end + lst[i] = nil + end + end + end + end + + for i,idx in pairs(lst) do + if (i and idx) then + if not (ini:line_exist("exclusive",i)) then + local se = idx and tonumber(idx.id) and alife():object(tonumber(idx.id)) + if (se and idx.sec and string.find(se:name(),idx.sec)) then + --printf("GhenTuong: dynamic_object delete %s [%s]",se.id,se:name()) + alife_release(se) + end + lst[i] = nil + end + else + lst[i] = nil + end + end +end +--[[ +if not (ini:section_exist("exclusive") and ini:line_exist("exclusive",i)) then + return +end + +local v = ini:r_string_ex("exclusive",i) +--]] + +function get_object_config(v) + local str = v and str_explode(v,"|") + local sec = str[1] and (str[1] ~= "") and (str[1] ~= "nil") and tostring(str[1]) + + local tp = str[2] and str_explode(str[2],",") or nil + local td = str[3] and str_explode(str[3],",") or nil + local pox = tp and tonumber(tp[1]) + local poy = tp and tonumber(tp[2]) + local poz = tp and tonumber(tp[3]) + local rox = td and tonumber(td[1]) and math.rad(tonumber(td[1])) + local roy = td and tonumber(td[2]) and math.rad(tonumber(td[2])) + local roz = td and tonumber(td[3]) and math.rad(tonumber(td[3])) + local con = str[4] or "nil" + + if not (pox and poy and poz and rox and roy and roz and con) then + return + end + return {sec = sec, pos = vector():set(pox,poy,poz), ang = vector():set(rox,roy,roz), con = con} +end + +function get_object(smart_name,index) + local idx = dynamic_object_storage_loaded and dynamic_object_storage[smart_name] and dynamic_object_storage[smart_name][index] + return idx and {id = tonumber(idx.id),sec = tostring(idx.sec)} +end + +function save_state(m_data) + m_data.xr_dynamic_object_storage = dynamic_object_storage +end + +function load_state(m_data) + dynamic_object_storage = m_data.xr_dynamic_object_storage or {} +end + +function on_game_start() + RegisterScriptCallback("save_state",save_state) + RegisterScriptCallback("load_state",load_state) +end \ No newline at end of file diff --git a/mods/Redone Collection_backup/gamedata/sounds/ambient/background/yantar/device_hum_0.ogg b/mods/Redone Collection_backup/gamedata/sounds/ambient/background/yantar/device_hum_0.ogg new file mode 100644 index 00000000..6f06cfb3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/ambient/background/yantar/device_hum_0.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f5e8679c688d0584500428f5dc60c7fe4da64decc1846fdc57ba8c4a68d3e0a +size 9918 diff --git a/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_agr.ogg b/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_agr.ogg new file mode 100644 index 00000000..09a1edc8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_agr.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26c60bdf2d4ff43058294d7eeab3fced20e0cae8b0ce4b6077fab59fd207a087 +size 6642421 diff --git a/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_bar_1.ogg b/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_bar_1.ogg new file mode 100644 index 00000000..72de050d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_bar_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07de94f5a8810e55e907d035b44d29aec3cc3401a51ab24adf349b3e685f19d7 +size 719181 diff --git a/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_bar_2.ogg b/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_bar_2.ogg new file mode 100644 index 00000000..72de050d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_bar_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07de94f5a8810e55e907d035b44d29aec3cc3401a51ab24adf349b3e685f19d7 +size 719181 diff --git a/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_esc_1.ogg b/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_esc_1.ogg new file mode 100644 index 00000000..72de050d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_esc_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07de94f5a8810e55e907d035b44d29aec3cc3401a51ab24adf349b3e685f19d7 +size 719181 diff --git a/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_esc_2.ogg b/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_esc_2.ogg new file mode 100644 index 00000000..72de050d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_esc_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07de94f5a8810e55e907d035b44d29aec3cc3401a51ab24adf349b3e685f19d7 +size 719181 diff --git a/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_yan_1.ogg b/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_yan_1.ogg new file mode 100644 index 00000000..72de050d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_yan_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07de94f5a8810e55e907d035b44d29aec3cc3401a51ab24adf349b3e685f19d7 +size 719181 diff --git a/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_yan_2.ogg b/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_yan_2.ogg new file mode 100644 index 00000000..72de050d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/ambient/blowout/blowout_siren_yan_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07de94f5a8810e55e907d035b44d29aec3cc3401a51ab24adf349b3e685f19d7 +size 719181 diff --git a/mods/Redone Collection_backup/gamedata/sounds/ambient/siren1.ogg b/mods/Redone Collection_backup/gamedata/sounds/ambient/siren1.ogg new file mode 100644 index 00000000..381eab23 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/ambient/siren1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9af22d9a1a8fd1f676cf96b63d872eafe29a47d4eda1fe0163ecacc14ea52982 +size 352095 diff --git a/mods/Redone Collection_backup/gamedata/sounds/anomaly/brain_scorcher_l.ogg b/mods/Redone Collection_backup/gamedata/sounds/anomaly/brain_scorcher_l.ogg new file mode 100644 index 00000000..0fdc2211 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/anomaly/brain_scorcher_l.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0891dac5acb3b836be02baf19f8a66478dbb40ed30cdcd7c355282f06e3ffd6d +size 177858 diff --git a/mods/Redone Collection_backup/gamedata/sounds/anomaly/brain_scorcher_r.ogg b/mods/Redone Collection_backup/gamedata/sounds/anomaly/brain_scorcher_r.ogg new file mode 100644 index 00000000..935321dc --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/anomaly/brain_scorcher_r.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e55efd4c5a6fbb3ddbd81b6d4e616890889b8bd40ad4c2e42a960f8f8310aaab +size 177395 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_1.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_1.ogg new file mode 100644 index 00000000..8a88a46b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35d3502431fbd12119512d4961476ddeec077b5264990d1975bc7fb7d1e74bed +size 100741 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_10.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_10.ogg new file mode 100644 index 00000000..fa5e0eda --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_10.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0eca7d06db3f929f0c3f76366d32c5e8d0f9c0853a4d07a813ac3ea3507e6891 +size 39735 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_11.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_11.ogg new file mode 100644 index 00000000..56e59dd0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_11.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20d09cd054968a3daffcefcc1a8e3a6e9687768ff8d2ba571d0a4fdabfe722c6 +size 43933 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_12.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_12.ogg new file mode 100644 index 00000000..a417609c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_12.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0ca7a3c46c33e38a2f6478d171b1834d5feb2b6cd7c2691ad0cccfd261fdbb49 +size 39030 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_13.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_13.ogg new file mode 100644 index 00000000..7d91b51d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_13.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:917177dc9336510100a1fe7825e850deff193f1e3d62f1268f401f9bc304a844 +size 41627 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_14.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_14.ogg new file mode 100644 index 00000000..3b5d8edd --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_14.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7ebf06436bef5361210bf73764d32b445c5c1317c69b7046fbb7a8d23e0c625 +size 54674 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_15.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_15.ogg new file mode 100644 index 00000000..43c4c76c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_15.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83a075dbed3236fb4889fd23f3bb2c485ceaec4559faa8f94957e060453878a1 +size 78955 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_16.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_16.ogg new file mode 100644 index 00000000..d6e1a9fa --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_16.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d37ad55d2075aefea07867e55f642639776cd0e4ee7ccf3e55bfc52b8e221e0 +size 61106 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_17.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_17.ogg new file mode 100644 index 00000000..ac7491df --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_17.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f368bd9bf3f8198151e4a660054069af76d45531829eaa6a2f8008fd3c37197 +size 90139 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_2.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_2.ogg new file mode 100644 index 00000000..7c85aab3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83320ae3e515a45a632a0a5b0a39444934dfd4d7d54f9dae4193edeebb708e86 +size 107889 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_3.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_3.ogg new file mode 100644 index 00000000..cf941846 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_3.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f62d68c1d92e12c9ad80715ba0985de51933deea8aade8228618fba5aac43628 +size 125209 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_4.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_4.ogg new file mode 100644 index 00000000..024113c7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_4.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b86dda0921759dcb2b7db01aa2ff8f719819b94abe86da94ec54dfd10baed74 +size 284854 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_5.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_5.ogg new file mode 100644 index 00000000..0aa1e088 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_5.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff5e28072d8b6cca012e89ad6077c968e6ca0504444c56ea6ab6b46d592d5bbc +size 93336 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_6.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_6.ogg new file mode 100644 index 00000000..0805d936 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_6.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f594d90b4161957de7cb86b70e569c6974a181eb00ba1ba168db194de72e34a +size 123537 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_7.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_7.ogg new file mode 100644 index 00000000..344f05d8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_7.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57a19fc0a2085954e44468843283f34f44e860b56cccb313e6aed3191d16b181 +size 95331 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_8.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_8.ogg new file mode 100644 index 00000000..d077b5b1 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_8.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d05952c80977dc0c52381877a899dc7321f291734abc91d85a6886c6e4f88f1 +size 64549 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_9.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_9.ogg new file mode 100644 index 00000000..e2e96c23 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/comandir_megafon_9.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ab11244b5e322bb7433b00913f8436bb3b7c1f53381767496262068ed1cef09 +size 56369 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/kovalsky_surge_phase_1.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/kovalsky_surge_phase_1.ogg new file mode 100644 index 00000000..09a1edc8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/agroprom/kovalsky_surge_phase_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26c60bdf2d4ff43058294d7eeab3fced20e0cae8b0ce4b6077fab59fd207a087 +size 6642421 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/bar_start_megafon_1.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/bar_start_megafon_1.ogg new file mode 100644 index 00000000..14e6d451 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/bar_start_megafon_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bf5581f81c7355479ca027374930ab7f34c72235a1b7c2427ea008efea3f2bc +size 50099 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/bar_start_megafon_2.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/bar_start_megafon_2.ogg new file mode 100644 index 00000000..f8b2538c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/bar_start_megafon_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87a7ccf9007c57100df48327a43784196070c91ea2c1bec950d957e5e1dec003 +size 79542 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/bar_start_megafon_3.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/bar_start_megafon_3.ogg new file mode 100644 index 00000000..b3a85e73 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/bar_start_megafon_3.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e05f31fef1e2cd49cc0fcb6fc1c2d26b02d184979bd7d7a98af5cdeb0a7d546 +size 58320 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/bar_start_megafon_4.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/bar_start_megafon_4.ogg new file mode 100644 index 00000000..8f2df176 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/bar_start_megafon_4.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b6d3dbfb9e7ce02913ca32a5a45233ceb778d8665a1e226a4565de7fbaa535b +size 64872 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/duty_gunfire_mega_1.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/duty_gunfire_mega_1.ogg new file mode 100644 index 00000000..e7a13744 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/duty_gunfire_mega_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a5a86ddd4f1f1027e17df4fa1ed8857c5b4fa4080fbd79679d782b677248f62 +size 36170 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/duty_gunfire_mega_2.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/duty_gunfire_mega_2.ogg new file mode 100644 index 00000000..96ec7d53 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/duty_gunfire_mega_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc93769a5ebe3435b9684a03dde4b635cf9f36aa871975064df7c23a00d2d056 +size 34143 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/duty_gunfire_mega_3.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/duty_gunfire_mega_3.ogg new file mode 100644 index 00000000..72b7c9a8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/duty_gunfire_mega_3.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:994d7d24b259bc1cbc3086e1afd0ce4d538dbdd3b0298a870552022d7f3a6c7e +size 43360 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_1.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_1.ogg new file mode 100644 index 00000000..5fc83c10 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f1555e77b5d8c21d2d80474a245e359d7adb15896c4eac84e19e46931ac2cbdc +size 171532 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_10.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_10.ogg new file mode 100644 index 00000000..2a35120b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_10.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb9b7da4a939efe296adcac76c4e41215a18fb55c1a381f8f7b04b152506fabe +size 5227648 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_11.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_11.ogg new file mode 100644 index 00000000..ad8004d8 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_11.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b3c693470a2f19102c6ca6fc703e09ee35cafe98fb5467d5e31987b5608506e +size 131435 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_2.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_2.ogg new file mode 100644 index 00000000..eed4efad --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ff77b08802ede2d039a4129c94933c8beb99f7fbc9bacd538231bfbaabd36df +size 222550 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_3.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_3.ogg new file mode 100644 index 00000000..0aae114a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_3.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9bd64105d31b418e11247e72a029fd29261d0d7daaa9eba517d5ba2483bf2a2 +size 304242 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_4.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_4.ogg new file mode 100644 index 00000000..ab7cc27c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_4.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fb4a4464ceef9f6c39324b68e772924966163df549ea90ca9c7b568c48abf96 +size 90568 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_5.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_5.ogg new file mode 100644 index 00000000..03d58f4d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_5.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f19ad4ef36b2938d38bfd71b050b8a5a15bd258f5a93969363241fda6b1f574 +size 142197 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_6.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_6.ogg new file mode 100644 index 00000000..1b652745 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_6.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66c1c58a340a51530fdb29aaf22f2017e7a883d63067d911b77a351543c8bfe3 +size 189194 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_7.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_7.ogg new file mode 100644 index 00000000..8dcb531e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_7.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b534b54251af923881c952e838523c367ada56999a12344e55e80164acfd354c +size 250709 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_8.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_8.ogg new file mode 100644 index 00000000..da0a7dff --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_8.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35ebc9c03bc5b6b78654a1996fe3e1158ae38e2294a4fd82c17a4885280b5d4b +size 1147094 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_9.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_9.ogg new file mode 100644 index 00000000..228139e7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/mega_duty_propaganda_9.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7af31ff6938d5053b96383a62ba10731dc9708696e84840cc4e164ed387a81d3 +size 1296718 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/megaphone_duty_alarm.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/megaphone_duty_alarm.ogg new file mode 100644 index 00000000..4515dfa5 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/bar/megafon/megaphone_duty_alarm.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1127b19b0200ac996f8c122d6081212eced52441e41f9caf534f2b3c42d1dbe9 +size 56418 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_1.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_1.ogg new file mode 100644 index 00000000..cbcf0d31 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07c0feaa25a8d7440b8834a13e6a8b07fd950b2664560e3924934544537db047 +size 99316 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_2.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_2.ogg new file mode 100644 index 00000000..47d80330 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc2c10be1211e6346a234c188c54c657348f1a150800f5b7388a70be0af82a53 +size 102045 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_3.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_3.ogg new file mode 100644 index 00000000..8b3d416f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_3.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fb60fc4efb1c63ed8b749911c2da19b740c96a19f6b7d22753c7069b39dfcfd +size 120269 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_4.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_4.ogg new file mode 100644 index 00000000..3d708038 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_4.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed767c35c333e32bff778966c6261b692b802ead8803ad6346c20d44bcfa8a8f +size 274408 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_1.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_1.ogg new file mode 100644 index 00000000..e486aac3 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cee19117cc90a8519764b85bd8a18867aa4256bae9951ae3350201eac84af3e +size 48967 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_10.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_10.ogg new file mode 100644 index 00000000..df06a468 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_10.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba1a37f2b2b86d8b7f388318e2a07e675acd90f81de89b7cc7ea644ccee380bb +size 20820 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_11.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_11.ogg new file mode 100644 index 00000000..c348ca9e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_11.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d7ba4d1c05dec538c7c6415e8f300af61acc08c0ff76ab48d299455d0c60c7f +size 22134 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_12.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_12.ogg new file mode 100644 index 00000000..b6c219b0 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_12.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc761d11c9c3d287e98ebe9960b820cbd519f5a0a46a72f9fdcb42468b920a69 +size 26457 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_13.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_13.ogg new file mode 100644 index 00000000..8d9d5667 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_13.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a54af7db3e0d759d0c2ba4642b1851f20607cdbac54d2c4aab178c54dc9cc7d +size 35569 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_2.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_2.ogg new file mode 100644 index 00000000..977e947c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b52a3b6f1f07508df0d6c8c39c7add6e77b5bdbdf0c2fc57dd8828a4678cb74 +size 36087 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_3.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_3.ogg new file mode 100644 index 00000000..72311d76 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_3.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d378e77ab8474c87fc6bafe218c3d3961ba7dd79ccbb5e23d7917ec83c075f89 +size 20003 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_4.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_4.ogg new file mode 100644 index 00000000..6515d160 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_4.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:68fb8b5733414bbef6774ba023cd841041ae7bd85bc5cd9a405330a9ca078163 +size 26430 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_5.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_5.ogg new file mode 100644 index 00000000..32a8e306 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_5.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2267c1b312a85c2164b4ae61a15a32451088cacb871e4d2f3aa8531af5f88dad +size 38138 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_6.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_6.ogg new file mode 100644 index 00000000..31d557d2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_6.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8668de5c165bcea9da2437d6bcde11c86e8bfd2ea52aa16f478cd6cf19dc6e33 +size 39901 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_7.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_7.ogg new file mode 100644 index 00000000..33e4ce3d --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_7.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89d03dba62b159b9c8fbaf12218a774c461e715981fcf8aa3391ae661d13862c +size 43334 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_8.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_8.ogg new file mode 100644 index 00000000..e199c23f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_8.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89dafcdfb9f2f8bb02811e7c351a8fa0905a57c60284a24970c64fbb63c7d7e2 +size 24212 diff --git a/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_9.ogg b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_9.ogg new file mode 100644 index 00000000..990fe1a2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/characters_voice/scenario/escape/megafon_alarm_9.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:51014dd2933de24e89df65c91a7fde996f6b6a78a33482e5a61d464947db63d2 +size 47609 diff --git a/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_free_meg_music_1.ogg b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_free_meg_music_1.ogg new file mode 100644 index 00000000..7e410016 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_free_meg_music_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f90a3a769781bf097408ec97f0bab658ea799a0c4fc3811acb05fc1d53b6b3f +size 2504626 diff --git a/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_free_meg_music_2.ogg b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_free_meg_music_2.ogg new file mode 100644 index 00000000..c281b6e2 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_free_meg_music_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b24b5e9c5359f24f619dfaceed20fff500d716b4a59bf447ff54cd0b2c26733 +size 2103922 diff --git a/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_free_meg_music_3.ogg b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_free_meg_music_3.ogg new file mode 100644 index 00000000..5bcf0145 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_free_meg_music_3.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d5f5945ffbfc1133b038361f5b54cffc5f61ff6653d7c99a85df76d38b59829 +size 795735 diff --git a/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_1.ogg b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_1.ogg new file mode 100644 index 00000000..a87eccc7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f234e0567e89948ed4262ba534ad304bc2b6fc959a23f7a78e4478cae768a49 +size 169540 diff --git a/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_2.ogg b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_2.ogg new file mode 100644 index 00000000..6a620d0f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30a85bb1e6ce366d77dd58d8d4b386e163644fbda480b9352fcf0f7bc19ed48e +size 81286 diff --git a/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_3.ogg b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_3.ogg new file mode 100644 index 00000000..40996f77 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_3.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b114890f235e74921286cff107d4f3feb7c88678fee77c1db3a99c3c2b64272 +size 89046 diff --git a/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_4.ogg b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_4.ogg new file mode 100644 index 00000000..40119b95 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_4.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a09ec4a4b8c70545cbed60d2869d83d3d3a6cc7d82039d88fb64bbb04221460 +size 104772 diff --git a/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_5.ogg b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_5.ogg new file mode 100644 index 00000000..7b9cbcac --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_5.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46495dcc8e8774fe197814a33996326753e8e7a152b2028bcb6cf41ff5fd79ef +size 89905 diff --git a/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_6.ogg b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_6.ogg new file mode 100644 index 00000000..94cbf7f7 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_6.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71055a6f6a8230020f171841dbe32f7542b29fa27feffb447349e23877c6d212 +size 59504 diff --git a/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_7.ogg b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_7.ogg new file mode 100644 index 00000000..6c755438 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/mlr/freedom/val_freedom_megafon_7.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8c57162011b097266e19c8470126ba6bd43da327bc3086e1d97f75cf8576260 +size 66500 diff --git a/mods/Redone Collection_backup/gamedata/sounds/mlr/marsh/marsh_radio_1.ogg b/mods/Redone Collection_backup/gamedata/sounds/mlr/marsh/marsh_radio_1.ogg new file mode 100644 index 00000000..34e63085 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/mlr/marsh/marsh_radio_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a96e649328c188e6881674552e95dc593a6665ea756140c3565eb80d0dc4e65 +size 16015528 diff --git a/mods/Redone Collection_backup/gamedata/sounds/mlr/marsh/marsh_radio_2.ogg b/mods/Redone Collection_backup/gamedata/sounds/mlr/marsh/marsh_radio_2.ogg new file mode 100644 index 00000000..48ca9e0f --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/sounds/mlr/marsh/marsh_radio_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fb3fdd6531457f99fdf7fd5b3b2abdfb21d1a6a823dee0110d42752f3ea3791 +size 668420 diff --git a/mods/Redone Collection_backup/gamedata/textures/crete/crete_beton_ch_06.dds b/mods/Redone Collection_backup/gamedata/textures/crete/crete_beton_ch_06.dds new file mode 100644 index 00000000..8e14a1ac --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/crete/crete_beton_ch_06.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb676c6c877c6ac131465c3af2b502739fdc9b6663c40ccc4e3c141f7a370498 +size 11184996 diff --git a/mods/Redone Collection_backup/gamedata/textures/crete/crete_house_wall_1.dds b/mods/Redone Collection_backup/gamedata/textures/crete/crete_house_wall_1.dds new file mode 100644 index 00000000..86cd6256 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/crete/crete_house_wall_1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81f23fd34089039e18c521abaa78dae2f82d8666051c933a0d113e81d2589195 +size 44739428 diff --git a/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_04f.dds b/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_04f.dds new file mode 100644 index 00000000..c0e8bfd9 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_04f.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:faa075fd0facae878d65120227f938667038232ca33b6ce7b2036c0dc21e318d +size 44739428 diff --git a/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_08.dds b/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_08.dds new file mode 100644 index 00000000..7dbfb7ce --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_08.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dfd4d92fbed0410db242b5289e1bc4fba882b3243b277fd88ccd1776f2c644f4 +size 89478692 diff --git a/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_11_1.dds b/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_11_1.dds new file mode 100644 index 00000000..3120fc28 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_11_1.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e58b9c111eab3f19c2232856b258dfedf4a20c4a948eb698f257d80b2dc03d5 +size 11184996 diff --git a/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_11_2.dds b/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_11_2.dds new file mode 100644 index 00000000..985064cf --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_11_2.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb272cf048e4d69d10e79a75b05bcf84c05857c6d480f2f9af26dfaa0c5cd885 +size 5592580 diff --git a/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_12.dds b/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_12.dds new file mode 100644 index 00000000..2df09650 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_12.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7db0c915c81997cb7c58672dd5b70588c2c3d16bb707c2743ab67f6cbdb38a5 +size 5592580 diff --git a/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_13.dds b/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_13.dds new file mode 100644 index 00000000..33c6f91a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_13.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2f3c0ea1e0b41a800a2756e28118ac6820de43fa0d12210f3b7140649b3201f +size 89478692 diff --git a/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_15.dds b/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_15.dds new file mode 100644 index 00000000..dac3b806 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/crete/crete_stena_ch_15.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce086bf2c6de4f342da5ebe318cfb9725f418fe24d821c477b795676dad1d290 +size 5592612 diff --git a/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13.dds b/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13.dds new file mode 100644 index 00000000..33c6f91a --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2f3c0ea1e0b41a800a2756e28118ac6820de43fa0d12210f3b7140649b3201f +size 89478692 diff --git a/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13.thm b/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13.thm new file mode 100644 index 00000000..81114701 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29a5608f1c72c4193bd3b1e95170670522d9e2308a58168457a538e6233d72a3 +size 193 diff --git a/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13_bump#.dds b/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13_bump#.dds new file mode 100644 index 00000000..ef262a4b --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13_bump#.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ccbc9bde3bc23e0f9329e6b584fadef691aa2b52bc9c255821896257d92f0a6b +size 1398288 diff --git a/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13_bump.dds b/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13_bump.dds new file mode 100644 index 00000000..83b37f91 --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13_bump.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd5b6bd7d4502776550a87415d28b73d3004e8a8cd9c99677ba39ab423563f97 +size 5592592 diff --git a/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13_bump.thm b/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13_bump.thm new file mode 100644 index 00000000..ee41583c --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_13_bump.thm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44430bffbd9ecfeb04f034b63502e382f3b4dd8d158d710aa425de56739fac78 +size 138 diff --git a/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_15.dds b/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_15.dds new file mode 100644 index 00000000..16a7a87e --- /dev/null +++ b/mods/Redone Collection_backup/gamedata/textures/ston/ston_stena_ch_15.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30ff1dd45c3239c1e5839431efb776e960325e30f9608b456dfdf91a2aada472 +size 22369828 diff --git a/mods/Redone Collection_backup/meta.ini b/mods/Redone Collection_backup/meta.ini new file mode 100644 index 00000000..b1e2b760 --- /dev/null +++ b/mods/Redone Collection_backup/meta.ini @@ -0,0 +1,40 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2024.3.30.0 +newestVersion= +category="15," +nexusFileStatus=1 +installationFile=RedoneCollection_v2.2.2.zip +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=true +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2024-02-29T06:46:08Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[Plugins] +BAIN%20Installer\option0=00 MAIN INSTALL Redone Collection 2.2.2 +BAIN%20Installer\option1=02 SELECT ONE Agroprom Underground V2 [ NO ENDLESS SPAWN ] +BAIN%20Installer\option2=03 Optional Endless Night Mutant Addon [ RECOMMENDED ] +BAIN%20Installer\option3=04 Optional Add Barman Army Wearhouse +BAIN%20Installer\option4=05 Optional Add Traders Darkscape +BAIN%20Installer\option5=06 Optional Add Barman Dark Valley +BAIN%20Installer\option6=07 Optional Cordon Logic Addon +BAIN%20Installer\option7=08 Optional Cordon Tunnel Anomalies +BAIN%20Installer\option8=09 Optional Psy-Field Ambient Addon +BAIN%20Installer\option9=10 Redone Rank Progression Addon + +[installedFiles] +1\modid=0 +size=1 +1\fileid=0 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/items/items/items_spawn_point_lc_transition_red_forest.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/items/items/items_spawn_point_lc_transition_red_forest.ltx new file mode 100644 index 00000000..e13f5369 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/items/items/items_spawn_point_lc_transition_red_forest.ltx @@ -0,0 +1,16 @@ +[lc_tran_red] +GroupControlSection = spawn_group +$spawn = "physics\object" +$prefetch = 8 +class = O_PHYSIC +remove_time = 60 +visual = dynamics\light\light_signal.ogf +fixed_bones = link +script_binding = bind_physic_object.init +custom_data = scripts\red_forest\lc_red_transition_redone.ltx + +[lc_red01_limansk01]:lc_tran_red +story_id = lc_red_limansk + +[lc_limansk01_red01]:lc_tran_red +story_id = lc_limansk_red diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/items/items/items_spawn_point_red_forest.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/items/items/items_spawn_point_red_forest.ltx new file mode 100644 index 00000000..4e1bfef0 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/items/items/items_spawn_point_red_forest.ltx @@ -0,0 +1,105 @@ +[red_forest_phys_physic_object] +GroupControlSection = spawn_group +$spawn = "physics\object" +class = O_PHYS_S +remove_time = 60 +script_binding = bind_physic_object.init + +[red_forest_dstr_physic_object] +GroupControlSection = spawn_group +$spawn = "physics\destroyable_object" +class = O_DSTR_S +remove_time = 60 +script_binding = bind_physic_object.init + +[monolith_red_camp_priemnik_gorizont]:red_forest_dstr_physic_object +visual = dynamics\el_tehnika\priemnik_gorizont.ogf +fixed_bones = link +custom_data = scripts\red_forest\red_monolith_camp_radio.ltx + +;[monolith_red_outpost_transiver]:red_forest_dstr_physic_object +;visual = dynamics\el_tehnika\transiver.ogf +;fixed_bones = link +;custom_data = scripts\red_forest\red_monolith_outpost_transceiver.ltx + +;[monolith_red_outpost_rupor]:red_forest_dstr_physic_object +;visual = dynamics\el_tehnika\rupor.ogf +;fixed_bones = link +;custom_data = scripts\red_forest\red_monolith_outpost_megafone.ltx + +[red_combat_sound_1]:red_forest_dstr_physic_object +visual = dynamics\el_tehnika\priemnik_gorizont.ogf +fixed_bones = link +custom_data = scripts\red_forest\red_combat_ambient_sound_1.ltx + +[red_combat_sound_2]:red_forest_dstr_physic_object +visual = dynamics\el_tehnika\priemnik_gorizont.ogf +fixed_bones = link +custom_data = scripts\red_forest\red_combat_ambient_sound_2.ltx + +[red_battle_sound_1]:red_forest_dstr_physic_object +visual = dynamics\el_tehnika\priemnik_gorizont.ogf +fixed_bones = link +custom_data = scripts\red_forest\red_battle_ambient_sound_1.ltx + +[red_battle_sound_2]:red_forest_dstr_physic_object +visual = dynamics\el_tehnika\priemnik_gorizont.ogf +fixed_bones = link +custom_data = scripts\red_forest\red_battle_ambient_sound_2.ltx + +[red_tunnel_wall]:red_forest_phys_physic_object +visual = dynamics\door\door_katakomb_big_4.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[red_tunnel_door]:red_forest_phys_physic_object +visual = dynamics\door\door_metal_220x260_01_r.ogf +fixed_bones = link +custom_data = models\objects\ignore_static.ltx + +[red_tunnel_box_1]:red_forest_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[red_tunnel_box_2]:red_forest_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[red_tunnel_box_3]:red_forest_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[red_tunnel_box_4]:red_forest_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[red_tunnel_box_5]:red_forest_dstr_physic_object +visual = dynamics\box\box_wood_01.ogf +fixed_bones = link + +[red_tunnel_sign_1]:red_forest_phys_physic_object +visual = dynamics\decor\sign_stop.ogf + +[red_tunnel_dead_1]:red_forest_phys_physic_object +visual = dynamics\dead_body\skelet_crash.ogf + +[red_tunnel_dead_2]:red_forest_phys_physic_object +visual = dynamics\dead_body\skelet_crash_monster.ogf + +[red_tunnel_veh_1]:red_forest_dstr_physic_object +visual = dynamics\vehicles\veh_gaz66\veh_gaz_u_01.ogf +startup_animation = idle +custom_data = models\objects\ignore_static.ltx +story_id = red_tunnel_veh_1 + +[red_tunnel_veh_2]:red_forest_dstr_physic_object +visual = dynamics\vehicles\veh_kavz\veh_kavz_u_01.ogf +startup_animation = idle +custom_data = models\objects\ignore_static.ltx +story_id = red_tunnel_veh_2 + +[red_tunnel_veh_3]:red_forest_dstr_physic_object +visual = dynamics\vehicles\veh_zaz\veh_zaz_u_01.ogf +startup_animation = idle +custom_data = models\objects\ignore_static.ltx +story_id = red_tunnel_veh_3 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/mod_simulation_objects_props_RED.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/mod_simulation_objects_props_RED.ltx new file mode 100644 index 00000000..9c0f2d86 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/mod_simulation_objects_props_RED.ltx @@ -0,0 +1,156 @@ +;--------- SIMULATION -------- +;Limansk enterance +![red_bridge_bandit_smart_skirmish]:default_base ;mlr +sim_avail = true +territory = 1 +surge = 1 +killer = 1 +csky = 1 +stalker = 1 +bandit = 1 +dolg = 1 +freedom = 1 +monolith = 1 +zombied = 1 +army = 1 +all = 0 + +;Stancia1 exit camp +![red_smart_terrain_3_1]:default_base +sim_avail = true +surge = 1 +stalker = 1 +bandit = 1 +killer = 1 +dolg = 1 +ecolog = 1 +freedom = 1 +army = 1 +monolith = 0 +greh = 0 +zombied = 1 + +;underground mine +![red_smart_terrain_3_2]:default +sim_avail = {+bar_deactivate_radar_done} false, true +lair = 0 +surge = 1 +stalker = 0 +ecolog = 0 +csky = 0 +monolith = 1 +greh = 1 +zombied = 1 + +![red_smart_terrain_3_3]:default +sim_avail = {+bar_deactivate_radar_done} false, true +stalker = 1 +dolg = 1 +freedom = 1 +monolith = 1 +greh = 1 +zombied = 1 + +;Camp near Forester's house - at red forest gate +![red_smart_terrain_4_2]:default_base +sim_avail = true +surge = 1 +stalker = 1 +bandit = 1 +killer = 1 +dolg = 1 +ecolog = 1 +freedom = 1 +monolith = 0 +greh = 0 +zombied = 1 +all = 0 +army_heli = 0 + +![red_smart_terrain_4_3]:default +sim_avail = {+bar_deactivate_radar_done} false, true +stalker = 1 +dolg = 1 +freedom = 1 +monolith = 1 +greh = 1 +zombied = 1 + +![red_smart_terrain_4_5]:default +sim_avail = true +resource = 2 +stalker = 1 +bandit = 1 +killer = 1 +dolg = 1 +ecolog = 1 +freedom = 1 +monolith = 1 +zombied = 1 + +![red_smart_terrain_5_5]:default_lair +sim_avail = {+bar_deactivate_radar_done} true, false +stalker = 1 +bandit = 1 +killer = 1 +dolg = 1 +freedom = 1 +monolith = 0 + +![red_smart_terrain_5_6]:default_lair +sim_avail = true +territory = 1 + +;deeper forest - anomaly field with weird rocks +![red_smart_terrain_6_3]:default +sim_avail = true +resource = 2 +stalker = 1 +ecolog = 2 +monolith = 0 +greh = 1 +zombied = 1 + +![red_smart_terrain_6_6]:default +sim_avail = true +surge = 1 +monolith = 1 +killer = 1 +stalker = 1 +ecolog = 1 +bandit = 1 +dolg = 1 +freedom = 1 +army = 1 +csky = 1 +zombied = 1 + +;bridge - forest side +![red_smart_terrain_bridge]:default_base +sim_avail = true +surge = 1 +territory = 1 +stalker = 1 +csky = 1 +bandit = 1 +killer = 1 +dolg = 1 +freedom = 1 +monolith = 1 +zombied = 1 +army = 1 +greh = 1 +all = 0 + +;deeper forest - near T72 tank +![red_smart_terrain_monsters]:default_lair +sim_avail = true +resource = 2 + +;tunnel to deeper forest - little mine +![red_smart_terrain_monsters_2]:default +sim_avail = true +zombied = 1 + +![red_smart_terrain_monsters_3]:default_lair +sim_avail = true diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/mod_simulation_spawn_point_RED.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/mod_simulation_spawn_point_RED.ltx new file mode 100644 index 00000000..6ac66c7a --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/mod_simulation_spawn_point_RED.ltx @@ -0,0 +1,23 @@ +![red_smart_terrain_4_2];mlr +stalkers_base_red_forest_mlr_squad = 0 + +![red_bridge_bandit_smart_skirmish];mlr +protectors_red_bridge_bandit_smart_skirmish_squad = 0 +monolith_sim_squad_advanced = 0 + +![red_smart_terrain_3_2] +monolith_bridge_trader_mlr_squad +red_3_2_monolith_guard_squad = 1 +red_greh_trader_squad = 0 +red_greh_tech_squad = 0 +red_3_2_greh_guard_squad = 0 +;simulation_contr_3sn_3gzomb = 0 + +![red_smart_terrain_5_6] +simulation_chimera = 0 + +![red_smart_terrain_6_3] +ecolog_sim_squad_advanced_2e_2ls_1ss = 1 + +![red_smart_terrain_monsters] +red_6_3_black_chimera = 1 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/sound/mod_script_sound_redone_rad.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/sound/mod_script_sound_redone_rad.ltx new file mode 100644 index 00000000..793bf2b9 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/sound/mod_script_sound_redone_rad.ltx @@ -0,0 +1,6 @@ +[monolith_rad_outpost_speech] +type = 3d +path = characters_voice\scenario\radar\monolith_radio_1 +shuffle = rnd +idle = 5,15,100 +levels = l10_radar \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/sound/mod_script_sound_redone_red.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/sound/mod_script_sound_redone_red.ltx new file mode 100644 index 00000000..077b3d18 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/sound/mod_script_sound_redone_red.ltx @@ -0,0 +1,55 @@ +[monolith_red_camp_radio_speech] +type = 3d +path = characters_voice\scenario\red_forest\monolith_radio_1 +shuffle = rnd +idle = 5,15,100 +levels = l10_red_forest + +[monolith_red_outpost_speech] +type = 3d +path = characters_voice\scenario\red_forest\monolith_radio_2 +shuffle = rnd +idle = 5,15,100 +levels = l10_red_forest + +[red_combat_ambient_1] +type = 3d +path = ambient\background\red_forest\gunfire_red_ +shuffle = rnd +idle = 5,15,100 +levels = l10_red_forest + +[red_combat_ambient_2] +type = 3d +path = ambient\background\red_forest\gunfire_red_ +shuffle = rnd +idle = 5,15,100 +levels = l10_red_forest + +[red_combat_ambient_3] +type = 3d +path = ambient\background\red_forest\gunfire_red_ +shuffle = rnd +idle = 5,15,100 +levels = l10_red_forest + +[red_combat_ambient_4] +type = 3d +path = ambient\background\red_forest\gunfire_red_ +shuffle = rnd +idle = 5,15,100 +levels = l10_red_forest + +[red_battle_ambient_1] +type = 3d +path = ambient\tuman\fog_ambient_gunfire_ +shuffle = rnd +idle = 5,15,100 +levels = l10_red_forest + +[red_battle_ambient_2] +type = 3d +path = ambient\tuman\fog_ambient_gunfire_ +shuffle = rnd +idle = 5,15,100 +levels = l10_red_forest \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/spawn_object/red_effect_ambient_object.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/spawn_object/red_effect_ambient_object.ltx new file mode 100644 index 00000000..2a6cab47 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/spawn_object/red_effect_ambient_object.ltx @@ -0,0 +1,9 @@ +[dynamic_object_configs] +smart = red_bridge_bandit_smart_skirmish +condlist_0 = true + +[exclusive] +combat_ambient_1= red_combat_sound_1 | -254.22,14.93,-275.56 | 0,0,0 | condlist_0 +combat_ambient_2= red_combat_sound_2 | -236.89,17.44,-157.99 | 0,0,0 | condlist_0 +battle_ambient_1= red_battle_sound_1 | -200.00,6.30,-257.29 | 0,0,0 | condlist_0 +battle_ambient_2= red_battle_sound_2 | -193.82,18.73,-336.99 | 0,0,0 | condlist_0 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/spawn_object/red_smart_terrain_3_2_object.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/spawn_object/red_smart_terrain_3_2_object.ltx new file mode 100644 index 00000000..15a56a54 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/spawn_object/red_smart_terrain_3_2_object.ltx @@ -0,0 +1,6 @@ +[dynamic_object_configs] +smart = red_smart_terrain_3_2 +condlist_0 = true + +[exclusive] +radio_1 = monolith_red_camp_priemnik_gorizont | -159.33,3.13,-29.75 | 0,45,0 | condlist_0 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/spawn_object/red_smart_terrain_bridge_object.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/spawn_object/red_smart_terrain_bridge_object.ltx new file mode 100644 index 00000000..2c32c66b --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/spawn_object/red_smart_terrain_bridge_object.ltx @@ -0,0 +1,22 @@ +[dynamic_object_configs] +smart = red_smart_terrain_bridge +condlist_0 = true + +[exclusive] +;rupor_1 = monolith_red_outpost_rupor | -114.50,7.50,-253.63 | 0,90,0 | condlist_0 +;transiver_1 = monolith_red_outpost_transiver | -114.81,1.37,-255.56 | 0,-90,0 | condlist_0 +wall_1 = red_tunnel_wall | -205.04,3.00,-332.71 | 90,80,90 | condlist_0 +door_1 = red_tunnel_door | -207.77,2.13,-331.99 | 0,-10,180 | condlist_0 +box_1 = red_tunnel_box_1 | -197.88,1.01,-320.98 | 0,10,180 | condlist_0 +box_2 = red_tunnel_box_2 | -169.79,1.84,-317.38 | 0,10,180 | condlist_0 +box_3 = red_tunnel_box_3 | -198.85,1.01,-321.84 | 0,-10,180 | condlist_0 +box_4 = red_tunnel_box_4 | -198.97,1.01,-323.30 | 0,20,180 | condlist_0 +box_5 = red_tunnel_box_5 | -169.87,1.84,-316.12 | 0,35,180 | condlist_0 +sign_1 = red_tunnel_sign_1 | -192.06,0.23,-319.07 | 180,65,90 | condlist_0 +dead_1 = red_tunnel_dead_1 | -203.43,0.23,-331.16 | 90,0,-45 | condlist_0 +dead_2 = red_tunnel_dead_2 | -193.14,0.23,-312.77 | 0,10,90 | condlist_0 +vehicles_1 = red_tunnel_veh_1 | -201.47,0.13,-327.16 | 0,180,0 | condlist_0 +vehicles_2 = red_tunnel_veh_2 | -197.61,0.13,-308.80 | 0,-8,0 | condlist_0 +vehicles_3 = red_tunnel_veh_3 | -200.65,0.13,-309.30 | 0,-40,0 | condlist_0 + + diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_RED.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_RED.ltx new file mode 100644 index 00000000..cdf15277 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/misc/squad_descr/squad_descr_spawn_point_RED.ltx @@ -0,0 +1,305 @@ +![protectors_red_bridge_bandit_smart_skirmish_squad]:online_offline_group +faction = monolith +npc_random = sim_default_monolith_2, sim_default_monolith_3, sim_default_monolith_2, sim_default_monolith_3, sim_monolith_sniper, sim_monolith_sniper +npc_in_squad = 4, 4 +target_smart = red_bridge_bandit_smart_skirmish + +![monolith_bridge_trader_mlr_squad]:online_offline_group +faction = monolith +npc = monolith_bridge_trader_mlr +npc_in_squad = 1, 1 +target_smart = red_smart_terrain_3_2 + +[red_3_2_monolith_guard_squad]:online_offline_group +faction = monolith +npc_random = sim_default_monolith_3, sim_default_monolith_3, sim_default_monolith_3, sim_default_monolith_3, sim_default_monolith_3, sim_default_monolith_4 +npc_in_squad = 4, 4 +target_smart = red_smart_terrain_3_2 + +[red_6_6_monolith_guard_squad]:online_offline_group +faction = monolith +npc_random = sim_default_monolith_3, sim_default_monolith_3, sim_default_monolith_4, sim_default_monolith_3, sim_default_monolith_2, sim_default_monolith_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_6_6 + +[monolith_base_red_forest_mlr_squad]:online_offline_group +faction = monolith +npc_random = sim_default_monolith_1, sim_default_monolith_1, sim_default_monolith_1, sim_default_monolith_3, sim_default_monolith_2, sim_default_monolith_2 +npc_in_squad = 3, 6 +target_smart = red_smart_terrain_4_2 + +[monolith_base_red_forest_mlr_squad2]:online_offline_group +faction = monolith +npc_random = sim_default_monolith_1, sim_default_monolith_1, sim_default_monolith_2, sim_default_monolith_3, sim_default_monolith_2, sim_default_monolith_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_3_1 + +[red_monolith_outpost_mlr_squad]:online_offline_group +faction = monolith +npc_random = sim_default_monolith_1, sim_default_monolith_2, sim_default_monolith_2, sim_default_monolith_3, sim_default_monolith_2, sim_default_monolith_4 +npc_in_squad = 8, 10 +target_smart = red_smart_terrain_bridge + +;----------------------------------- + +![stalkers_base_red_forest_mlr_squad]:online_offline_group +faction = stalker +npc_random = sim_default_stalker_2, sim_default_stalker_2, sim_default_stalker_4, sim_default_stalker_3, sim_default_stalker_2 +npc_in_squad = 3, 6 +target_smart = red_smart_terrain_4_2 + +[csky_base_red_forest_mlr_squad]:online_offline_group +faction = csky +npc_random = sim_default_csky_3, sim_default_csky_3, sim_default_csky_4, sim_default_csky_3, sim_default_csky_2, sim_default_csky_2 +npc_in_squad = 3, 6 +target_smart = red_smart_terrain_4_2 + +[freedom_base_red_forest_mlr_squad]:online_offline_group +faction = freedom +npc_random = sim_default_freedom_1, sim_default_freedom_1, sim_default_freedom_4, sim_default_freedom_3, sim_default_freedom_2, sim_default_freedom_2 +npc_in_squad = 3, 6 +target_smart = red_smart_terrain_4_2 + +[ecolog_base_red_forest_mlr_squad]:online_offline_group +faction = ecolog +npc_random = sim_default_ecolog_3, sim_default_ecolog_3, sim_default_ecolog_4, sim_default_ecolog_3, sim_default_ecolog_2, sim_default_ecolog_1 +npc_in_squad = 3, 6 +target_smart = red_smart_terrain_4_2 + +[duty_base_red_forest_mlr_squad]:online_offline_group +faction = dolg +npc_random = sim_default_duty_1, sim_default_duty_3, sim_default_duty_4, sim_default_duty_3, sim_default_duty_2, sim_default_duty_2 +npc_in_squad = 3, 6 +target_smart = red_smart_terrain_4_2 + +[army_base_red_forest_mlr_squad]:online_offline_group +faction = army +npc_random = sim_default_military_3, sim_default_military_3, sim_default_military_4, sim_default_military_3, sim_default_military_2, sim_default_military_2 +npc_in_squad = 3, 6 +target_smart = red_smart_terrain_4_2 + +[killer_base_red_forest_mlr_squad]:online_offline_group +faction = killer +npc_random = sim_default_killer_1, sim_default_killer_2, sim_default_killer_4, sim_default_killer_3, sim_default_killer_2, sim_default_killer_2 +npc_in_squad = 3, 6 +target_smart = red_smart_terrain_4_2 + +[bandit_base_red_forest_mlr_squad]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_1, sim_default_bandit_2, sim_default_bandit_3, sim_default_bandit_3, sim_default_bandit_2, sim_default_bandit_2 +npc_in_squad = 3, 6 +target_smart = red_smart_terrain_4_2 + +[renegade_base_red_forest_mlr_squad]:online_offline_group +faction = renegade +npc_random = sim_default_renegade_1, sim_default_renegade_1, sim_default_renegade_2, sim_default_renegade_2, sim_default_renegade_2, sim_default_renegade_2 +npc_in_squad = 3, 6 +target_smart = red_smart_terrain_4_2 +;----------------------------------- + +[stalker_red_bridge_bandit_smart_skirmish_squad]:online_offline_group +faction = stalker +npc_random = sim_default_stalker_2, sim_default_stalker_2, sim_default_stalker_4, sim_default_stalker_3, sim_default_stalker_2 +npc_in_squad = 4, 4 +target_smart = red_bridge_bandit_smart_skirmish + +[red_stalker_outpost_mlr_squad]:online_offline_group +faction = stalker +npc_random = sim_default_stalker_1, sim_default_stalker_2, sim_default_stalker_2, sim_default_stalker_2, sim_default_stalker_4 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_bridge + +[red_6_6_stalker_guard_squad]:online_offline_group +faction = stalker +npc = sim_default_stalker_1, sim_default_stalker_2, sim_default_stalker_3, sim_default_stalker_2, sim_default_stalker_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_6_6 + +;----------------------------------- + +[csky_red_bridge_bandit_smart_skirmish_squad]:online_offline_group +faction = csky +npc_random = sim_default_csky_1, sim_default_csky_3, sim_default_csky_4, sim_default_csky_3, sim_default_csky_2, sim_default_csky_2 +npc_in_squad = 4, 4 +target_smart = red_bridge_bandit_smart_skirmish + +[red_csky_outpost_mlr_squad]:online_offline_group +faction = csky +npc_random = sim_default_csky_2, sim_default_csky_2, sim_default_csky_1, sim_default_csky_3, sim_default_csky_2, sim_default_csky_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_bridge + +[red_6_6_csky_guard_squad]:online_offline_group +faction = csky +npc_random = sim_default_csky_1, sim_default_csky_2, sim_default_csky_3, sim_default_csky_3, sim_default_csky_2, sim_default_csky_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_6_6 + +;----------------------------------- + +[ecolog_red_bridge_bandit_smart_skirmish_squad]:online_offline_group +faction = ecolog +npc_random = sim_default_ecolog_1, sim_default_ecolog_3, sim_default_ecolog_4, sim_default_ecolog_3, sim_default_ecolog_2, sim_default_ecolog_2 +npc_in_squad = 4, 4 +target_smart = red_bridge_bandit_smart_skirmish + +[red_ecolog_outpost_mlr_squad]:online_offline_group +faction = ecolog +npc_random = sim_default_ecolog_1, sim_default_ecolog_3, sim_default_ecolog_4, sim_default_ecolog_3, sim_default_ecolog_2, sim_default_ecolog_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_bridge + +[red_6_6_ecolog_guard_squad]:online_offline_group +faction = ecolog +npc_random = sim_default_ecolog_1, sim_default_ecolog_2, sim_default_ecolog_4, sim_default_ecolog_3, sim_default_ecolog_2, sim_default_ecolog_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_6_6 + +;----------------------------------- + +[freedom_red_bridge_bandit_smart_skirmish_squad]:online_offline_group +faction = freedom +npc_random = sim_default_freedom_1, sim_default_freedom_2, sim_default_freedom_4, sim_default_freedom_3, sim_default_freedom_2, sim_default_freedom_2 +npc_in_squad = 4, 4 +target_smart = red_bridge_bandit_smart_skirmish + +[red_freedom_outpost_mlr_squad]:online_offline_group +faction = freedom +npc_random = sim_default_freedom_1, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_3, sim_default_freedom_4, sim_default_freedom_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_bridge + +[red_6_6_freedom_guard_squad]:online_offline_group +faction = freedom +npc_random = sim_default_freedom_1, sim_default_freedom_2, sim_default_freedom_2, sim_default_freedom_3, sim_default_freedom_2, sim_default_freedom_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_6_6 + +;----------------------------------- + +[duty_red_bridge_bandit_smart_skirmish_squad]:online_offline_group +faction = dolg +npc_random = sim_default_duty_1, sim_default_duty_2, sim_default_duty_4, sim_default_duty_3, sim_default_duty_2, sim_default_duty_2 +npc_in_squad = 4, 4 +target_smart = red_bridge_bandit_smart_skirmish + +[red_duty_outpost_mlr_squad]:online_offline_group +faction = dolg +npc_random = sim_default_duty_2, sim_default_duty_2, sim_default_duty_2, sim_default_duty_3, sim_default_duty_2, sim_default_duty_4 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_bridge + +[red_6_6_duty_guard_squad]:online_offline_group +faction = dolg +npc_random = sim_default_duty_2, sim_default_duty_2, sim_default_duty_4, sim_default_duty_3, sim_default_duty_2, sim_default_duty_1 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_6_6 + +;----------------------------------- + +[army_red_bridge_bandit_smart_skirmish_squad]:online_offline_group +faction = army +npc_random = sim_default_military_2, sim_default_military_2, sim_default_military_4, sim_default_military_3, sim_default_military_2, sim_default_military_2 +npc_in_squad = 4, 4 +target_smart = red_bridge_bandit_smart_skirmish + +[red_army_outpost_mlr_squad]:online_offline_group +faction = army +npc_random = sim_default_military_1, sim_default_military_2, sim_default_military_2, sim_default_military_2, sim_default_military_4, sim_default_military_3 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_bridge + +[red_6_6_army_guard_squad]:online_offline_group +faction = army +npc_random = sim_default_military_2, sim_default_military_2, sim_default_military_1, sim_default_military_2, sim_default_military_2, sim_default_military_3 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_6_6 + +;----------------------------------- + +[killer_red_bridge_bandit_smart_skirmish_squad]:online_offline_group +faction = killer +npc_random = sim_default_killer_1, sim_default_killer_2, sim_default_killer_3, sim_default_killer_3, sim_killer_sniper, sim_killer_sniper +npc_in_squad = 6, 6 +target_smart = red_bridge_bandit_smart_skirmish + +[red_killer_outpost_mlr_squad]:online_offline_group +faction = killer +npc_random = sim_default_killer_1, sim_default_killer_2, sim_default_killer_4, sim_default_killer_3, sim_default_killer_2, sim_default_killer_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_bridge + +[red_6_6_killer_guard_squad]:online_offline_group +faction = killer +npc_random = sim_default_killer_3, sim_default_killer_3, sim_default_killer_4, sim_default_killer_3, sim_default_killer_2, sim_default_killer_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_6_6 + +;----------------------------------- + +[bandit_red_bridge_bandit_smart_skirmish_squad]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_2, sim_default_bandit_2, sim_default_bandit_4, sim_default_bandit_3, sim_default_bandit_2, sim_default_bandit_2 +npc_in_squad = 4, 4 +target_smart = red_bridge_bandit_smart_skirmish + +[red_bandit_outpost_mlr_squad]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_1, sim_default_bandit_2, sim_default_bandit_2, sim_default_bandit_3, sim_default_bandit_2, sim_default_bandit_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_bridge + +[red_6_6_bandit_guard_squad]:online_offline_group +faction = bandit +npc_random = sim_default_bandit_2, sim_default_bandit_3, sim_default_bandit_4, sim_default_bandit_2, sim_default_bandit_2, sim_default_bandit_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_6_6 + +;----------------------------------- + +[renegade_red_bridge_bandit_smart_skirmish_squad]:online_offline_group +faction = renegade +npc_random = sim_default_renegade_1, sim_default_renegade_1, sim_default_renegade_2, sim_default_renegade_2, sim_default_renegade_2, sim_default_renegade_2 +npc_in_squad = 4, 4 +target_smart = red_bridge_bandit_smart_skirmish + +[red_renegade_outpost_mlr_squad]:online_offline_group +faction = renegade +npc_random = sim_default_renegade_1, sim_default_renegade_1, sim_default_renegade_2, sim_default_renegade_2, sim_default_renegade_2, sim_default_renegade_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_bridge + +[red_6_6_renegade_guard_squad]:online_offline_group +faction = renegade +npc_random = sim_default_renegade_1, sim_default_renegade_1, sim_default_renegade_2, sim_default_renegade_2, sim_default_renegade_2, sim_default_renegade_2 +npc_in_squad = 6, 6 +target_smart = red_smart_terrain_6_6 + +;----------------------------------- + +![red_6_3_black_chimera]:online_offline_group +faction = monster +npc = chimera_strong4 +npc_in_squad = 1, 1 +target_smart = red_smart_terrain_monsters +story_id = red_6_3_black_chimera + +![red_greh_trader_squad]:online_offline_group +;faction = greh +;npc = red_greh_trader +;npc_in_squad = 1, 1 +;story_id = red_greh_trader_squad +;target_smart = red_smart_terrain_3_2 + +![red_greh_tech_squad]:online_offline_group +;faction = greh +;npc = red_greh_tech +;npc_in_squad = 1, 1 +;story_id = red_greh_tech_squad +;target_smart = red_smart_terrain_3_2 + +![red_3_2_greh_guard_squad]:online_offline_group +;faction = greh +;npc_random = sim_default_greh_1, sim_default_greh_2, sim_default_greh_3, sim_default_greh_3, sim_default_greh_4 +;npc_in_squad = 6, 6 +;target_smart = red_smart_terrain_3_2 \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/plugins/mod_dynamic_anomalies_red.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/plugins/mod_dynamic_anomalies_red.ltx new file mode 100644 index 00000000..c00e0c7a --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/plugins/mod_dynamic_anomalies_red.ltx @@ -0,0 +1,5 @@ +![l10_red_forest] + + ano_red_82 = electric, -199.68054199219, 0.13624352216721, -307.23428344727, 798, 2748 + ;ano_red_83 = electric, -200.60841369629, 0.13464376330376, -311.77584838867, 640, 2748 + ano_red_84 = electric, -199.94546508789, 2.2079412937164, -309.7067565918, 719, 2748 \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/plugins/mod_new_game_setup_red.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/plugins/mod_new_game_setup_red.ltx new file mode 100644 index 00000000..93392c06 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/plugins/mod_new_game_setup_red.ltx @@ -0,0 +1,4 @@ +![remove_objects] + +red_level_changer_to_limansk +lim_level_changer_to_red_forest \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/lc_red_transition_redone.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/lc_red_transition_redone.ltx new file mode 100644 index 00000000..a7245d01 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/lc_red_transition_redone.ltx @@ -0,0 +1,8 @@ +[logic] +active = ph_idle@transition + +[ph_idle@transition] +on_info = {=dist_to_actor_le(5)} %=script(lc_red_transition_redone:teleport_actor)% ph_idle@wait + +[ph_idle@wait] +on_timer = 2000 | ph_idle@transition diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/mod_red_3_2_smart_logic_redone.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/mod_red_3_2_smart_logic_redone.ltx new file mode 100644 index 00000000..15e54393 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/mod_red_3_2_smart_logic_redone.ltx @@ -0,0 +1,17 @@ +[logic@red_smart_terrain_3_2_guard_work_2] +active = beh@red_smart_terrain_3_2_guard_work_2 +suitable = true +prior = 41 + +[logic@red_smart_terrain_3_2_guard_work_3] +active = beh@red_smart_terrain_3_2_guard_work_3 +suitable = true +prior = 41 + +[beh@red_smart_terrain_3_2_guard_work_2]:beh@camp_general +pt1 = 88860000,guard | pos: -76.881134033203, 2.2461788654327, -57.950668334961 look: -76.175743103027, 2.2158513069153, -57.400169372559 +path_end = loop + +[beh@red_smart_terrain_3_2_guard_work_3]:beh@camp_general +pt1 = 88860000,guard | pos: -102.89811706543, 2.2951598167419, -56.98637008667 look: -98.691925048828, 2.3019394874573, -56.461265563965 +path_end = loop \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/mod_red_bridge_bandit_smart_skirmish_logic_redone.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/mod_red_bridge_bandit_smart_skirmish_logic_redone.ltx new file mode 100644 index 00000000..44914cd0 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/mod_red_bridge_bandit_smart_skirmish_logic_redone.ltx @@ -0,0 +1,31 @@ +![logic@monolith_bridge_trader_mlr] +active = ;walker@base +active = beh@red_monolith_trader +prior = 200 +on_death = death_monolith_trader + +[death_monolith_trader] +on_info = %+red_monolith_trader_dead% + +[beh@general] +behavior_state = beh_move +target = waypoint +walk_dist = 90 +jog_dist = 150 +wait_anim = guard +walk_anim = patrol ;assault +jog_anim = patrol ;assault +run_anim = patrol ;assault +delay_anim = guard +use_camp = false +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +combat_ignore_cond = {=is_warfare} false, {=actor_true_enemy =check_enemy_name(actor)} false, true +combat_ignore_keep_when_attacked = {=is_warfare} false, true +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false +meet = meet + +[beh@red_monolith_trader]:beh@general +pt1 = 88860000,ward | pos:-153.38375854492,2.1868035793304,-27.61990737915 look:-152.52996754646,2.1868035793304,-28.096381008625 +path_end = loop \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/mod_red_crow_spawner_redone.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/mod_red_crow_spawner_redone.ltx new file mode 100644 index 00000000..305fa2ac --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/mod_red_crow_spawner_redone.ltx @@ -0,0 +1,8 @@ +![sr_crow_spawner] +max_crows_on_level = 5 +spawn_path = red_crow_spawn_1, red_crow_spawn_2, red_crow_spawn_3, red_crow_spawn_4, red_crow_spawn_5 +on_info20 = %=script(xr_dynamic_object_redone:dynamic_object:misc\spawn_object\red_effect_ambient_object.ltx)% +on_info21 = %=script(xr_dynamic_object_redone:dynamic_object:misc\spawn_object\red_smart_terrain_3_2_object.ltx)% +on_info34 = {=actor_has_item(good_psy_helmet)} %+living_legend_psy_helmet%, {=actor_has_item(bad_psy_helmet)} %+living_legend_psy_helmet% + + diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/mod_red_forester_radio_redone.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/mod_red_forester_radio_redone.ltx new file mode 100644 index 00000000..058969f2 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/mod_red_forester_radio_redone.ltx @@ -0,0 +1,2 @@ +![ph_sound] +volume = {=surge_started}0, 1 \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_5_5_smart_logic_redone.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_5_5_smart_logic_redone.ltx new file mode 100644 index 00000000..8adf6e00 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_5_5_smart_logic_redone.ltx @@ -0,0 +1,74 @@ +[logic@red_smart_terrain_5_5_guard_work_1] +active = beh@red_smart_terrain_3_2_guard_work_1 +suitable = true +prior = 200 + +[logic@red_smart_terrain_5_5_guard_work_2] +active = beh@red_smart_terrain_3_2_guard_work_2 +suitable = true +prior = 200 + +[logic@red_smart_terrain_5_5_guard_work_3] +active = beh@red_smart_terrain_3_2_guard_work_3 +suitable = true +prior = 200 + +[logic@red_smart_terrain_5_5_guard_work_4] +active = beh@red_smart_terrain_3_2_guard_work_4 +suitable = true +prior = 200 + +[logic@red_smart_terrain_5_5_guard_work_5] +active = beh@red_smart_terrain_3_2_guard_work_5 +suitable = true +prior = 200 + +[beh@general] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = false + +[beh@surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false + +[beh@red_smart_terrain_3_2_guard_work_1]:beh@general +pt1 = 88860000,hide | pos: -30.536312103271, 0.919762134552, -347.23422241211 look: -29.775131225586, 0.90897035598755, -348.53540039062 +path_end = loop + +[beh@red_smart_terrain_3_2_guard_work_2]:beh@general +pt1 = 88860000,hide | pos: -33.450252532959, 1.6959818601608, -328.63848876953 look: -32.742240905762, 1.656730890274, -327.98059082031 +path_end = loop + +[beh@red_smart_terrain_3_2_guard_work_3]:beh@general +pt1 = 88860000,guard | pos: -8.0850496292114, -0.69226008653641, -329.71801757812 look: -9.0650825500488, -0.69313907623291, -329.31732177734 +path_end = loop + +[beh@red_smart_terrain_3_2_guard_work_4]:beh@general +pt1 = 88860000,hide | pos: -30.318309783936, 0.48565936088562, -317.05349731445 look: -30.329139709473, 0.38317477703094, -316.13763427734 +path_end = loop + +[beh@red_smart_terrain_3_2_guard_work_5]:beh@general +pt1 = 88860000,guard | pos: -3.3099265098572, 1.4241921901703, -332.25457763672 look: -2.714403629303, 1.5066841840744, -331.52233886719 +path_end = loop diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_army_mlr_characters_logic.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_army_mlr_characters_logic.ltx new file mode 100644 index 00000000..4d0c2fca --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_army_mlr_characters_logic.ltx @@ -0,0 +1,209 @@ +[logic@red_army_squad_guard_mlr_1] +active = beh@army_guard_1 +suitable = {=target_squad_name(red_6_6_army_guard_squad)} true +prior = 200 + +[logic@red_army_squad_guard_mlr_2] +active = beh@army_guard_2 +suitable = {=target_squad_name(red_6_6_army_guard_squad)} true +prior = 200 + +[logic@red_army_squad_guard_mlr_3] +active = beh@army_guard_3 +suitable = {=target_squad_name(red_6_6_army_guard_squad)} true +prior = 200 + +[logic@red_army_squad_guard_mlr_4] +active = beh@army_guard_4 +suitable = {=target_squad_name(red_6_6_army_guard_squad)} true +prior = 200 + +[logic@red_army_squad_guard_mlr_5] +active = beh@army_guard_5 +suitable = {=target_squad_name(red_6_6_army_guard_squad)} true +prior = 200 + +[logic@red_army_squad_guard_mlr_6] +active = beh@army_guard_6 +suitable = {=target_squad_name(red_6_6_army_guard_squad)} true +prior = 200 + +[logic@red_army_squad_guard_mlr_7] +active = beh@army_guard_7 +suitable = {=target_squad_name(red_army_outpost_mlr_squad)} true +prior = 200 + +[logic@red_army_squad_guard_mlr_8] +active = beh@army_guard_8 +suitable = {=target_squad_name(red_army_outpost_mlr_squad)} true +prior = 200 + +[logic@red_army_squad_guard_mlr_9] +active = beh@army_guard_9 +suitable = {=target_squad_name(red_army_outpost_mlr_squad)} true +prior = 200 + +[logic@red_army_squad_guard_mlr_10] +active = beh@army_guard_10 +suitable = {=target_squad_name(red_army_outpost_mlr_squad)} true +prior = 200 + +[logic@red_army_squad_guard_mlr_11] +active = beh@army_guard_11 +suitable = {=target_squad_name(red_army_outpost_mlr_squad)} true +prior = 200 + +[logic@red_army_squad_guard_mlr_12] +active = beh@army_guard_12 +suitable = {=target_squad_name(red_army_outpost_mlr_squad)} true +prior = 200 + +[beh@general] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = false + +[beh@surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false + +[beh@army_guard_1]:beh@general +pt1 = 88860000, guard | pos: 261.09741210938, -1.278151512146, -307.00775146484 look: 260.11511230469, -1.280345082283, -306.73223876953 +path_end = loop +on_info = {=surge_started} beh@surge_1 + +[beh@army_guard_2]:beh@general +pt1 = 88860000, guard | pos: 255.2179107666, -0.97214984893799, -318.86248779297 look: 254.28274536133, -1.0657855272293, -318.44515991211 +path_end = loop +on_info = {=surge_started} beh@surge_2 + +[beh@army_guard_3]:beh@general +pt1 = 88860000, guard | pos: 237.01438903809, -0.10033971071243, -283.44702148438 look: 235.68844604492, -0.06385001540184, -283.10388183594 +path_end = loop +on_info = {=surge_started} beh@surge_3 + +[beh@army_guard_4]:beh@general +pt1 = 88860000, guard | pos: 190.20082092285, -1.147012591362, -300.14068603516 look: 187.31065368652, -1.1901878118515, -300.67242431641 +path_end = loop +on_info = {=surge_started} beh@surge_4 + +[beh@army_guard_5]:beh@general +pt1 = 88860000, guard | pos: 217.60166931152, 0.60896825790405, -264.98028564453 look: 216.57116699219, 0.53197211027145, -265.05932617188 +path_end = loop +on_info = {=surge_started} beh@surge_5 + +[beh@army_guard_6]:beh@general +pt1 = 88860000, guard | pos: 187.43298339844, -1.3547611236572, -294.15420532227 look: 186.55555725098, -1.3880641460419, -293.68762207031 +path_end = loop +on_info = {=surge_started} beh@surge_6 + +[beh@army_guard_7]:beh@general +pt1 = 88860000, guard | pos: -100.58614349365, -0.039244785904884, -260.5544128418 look: -100.96884155273, -0.14579001069069, -261.85510253906 +path_end = loop +on_info = {=surge_started} beh@surge_7 + +[beh@army_guard_8]:beh@general +pt1 = 88860000, guard | pos: -117.1109085083, -0.63971590995789, -227.33744812012 look: -117.12147521973, -0.63976293802261, -228.03207397461 +path_end = loop +on_info = {=surge_started} beh@surge_8 + +[beh@army_guard_9]:beh@general +pt1 = 88860000, guard | pos: -91.386978149414, -0.74441361427307, -189.25192260742 look: -91.93000793457, -0.81735181808472, -189.68766784668 +path_end = loop +on_info = {=surge_started} beh@surge_9 + +[beh@army_guard_10]:beh@general ; +pt1 = 88860000, sit_ass | pos: -94.49543762207, -0.81734263896942, -190.5330657959 look: -94.122360229492, -0.81735837459564, -191.36186218262 +path_end = loop +;on_info = {=surge_started} beh@surge_11 + +[beh@army_guard_11]:beh@general +pt1 = 88860000, sit_knee | pos: -95.794860839844, -0.010705962777138, -238.97698974609 look: -94.772285461426, 0.059955149888992, -239.37768554688 +path_end = loop +;on_info = {=surge_started} beh@surge_12 + +[beh@army_guard_12]:beh@general +pt1 = 88860000, guard | pos: -91.237419128418, -0.81655019521713, -175.46961975098 look: -91.508850097656, -0.8166156411171, -176.77163696289 +path_end = loop +on_info = {=surge_started} beh@surge_10 + +[beh@surge_1]:beh@surge +pt1 = 88860000, guard | pos: 320.98449707031, -48.234279632568, -25.702243804932 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@army_guard_1 + +[beh@surge_2]:beh@surge +pt1 = 88860000, hide | pos: 318.2392578125, -47.560409545898, -25.768634796143 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@army_guard_2 + +[beh@surge_3]:beh@surge +pt1 = 88860000, hide | pos: 315.74710083008, -46.943187713623, -25.976787567139 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +on_info = {=surge_complete} beh@army_guard_3 + +[beh@surge_4]:beh@surge +pt1 = 88860000, hide | pos: 313.87976074219, -46.531192779541, -25.34361076355 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@army_guard_4 + +[beh@surge_5]:beh@surge +pt1 = 88860000, hide | pos: 315.63684082031, -47.395454406738, -22.22802734375 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@army_guard_5 + +[beh@surge_6]:beh@surge +pt1 = 88860000, guard | pos: 317.99768066406, -48.041015625, -22.403568267822 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@army_guard_6 + +[beh@surge_7]:beh@surge +pt1 = 88860000, guard | pos: -110.69400024414, -0.51395338773727, -215.46388244629 look: -111.84964752197, -0.64238369464874, -216.57768249512 +path_end = loop +on_info = {=surge_complete} beh@army_guard_7 + +[beh@surge_8]:beh@surge +pt1 = 88860000, guard | pos: -97.620040893555, -0.81635612249374, -193.13609313965 look: -96.5625, -0.81642097234726, -192.97434997559 +path_end = loop +on_info = {=surge_complete} beh@army_guard_8 + +[beh@surge_9]:beh@surge +pt1 = 88860000, guard | pos: -96.888122558594, -0.7479310631752, -187.58062744141 look: -98.054290771484, -0.81622606515884, -188.87913513184 +path_end = loop +on_info = {=surge_complete} beh@army_guard_9 + +[beh@surge_10]:beh@surge +pt1 = 88860000, guard | pos: -103.50947570801, -0.81777745485306, -190.06983947754 look: -103.24658203125, -0.8176161646843, -191.63522338867 +path_end = loop +on_info = {=surge_complete} beh@army_guard_10 + +;[beh@surge_11]:beh@surge +;pt1 = 88860000, guard | pos: 322.36441040039, -48.175971984863, -27.142284393311 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@army_guard_11 + +;[beh@surge_12]:beh@surge +;pt1 = 88860000, guard | pos: 313.71444702148, -46.638042449951, -21.719793319702 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@army_guard_12 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_bandit_mlr_characters_logic.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_bandit_mlr_characters_logic.ltx new file mode 100644 index 00000000..93ccda0d --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_bandit_mlr_characters_logic.ltx @@ -0,0 +1,209 @@ +[logic@red_bandit_squad_guard_mlr_1] +active = beh@bandit_guard_1 +suitable = {=target_squad_name(red_6_6_bandit_guard_squad)} true +prior = 200 + +[logic@red_bandit_squad_guard_mlr_2] +active = beh@bandit_guard_2 +suitable = {=target_squad_name(red_6_6_bandit_guard_squad)} true +prior = 200 + +[logic@red_bandit_squad_guard_mlr_3] +active = beh@bandit_guard_3 +suitable = {=target_squad_name(red_6_6_bandit_guard_squad)} true +prior = 200 + +[logic@red_bandit_squad_guard_mlr_4] +active = beh@bandit_guard_4 +suitable = {=target_squad_name(red_6_6_bandit_guard_squad)} true +prior = 200 + +[logic@red_bandit_squad_guard_mlr_5] +active = beh@bandit_guard_5 +suitable = {=target_squad_name(red_6_6_bandit_guard_squad)} true +prior = 200 + +[logic@red_bandit_squad_guard_mlr_6] +active = beh@bandit_guard_6 +suitable = {=target_squad_name(red_6_6_bandit_guard_squad)} true +prior = 200 + +[logic@red_bandit_squad_guard_mlr_7] +active = beh@bandit_guard_7 +suitable = {=target_squad_name(red_bandit_outpost_mlr_squad)} true +prior = 200 + +[logic@red_bandit_squad_guard_mlr_8] +active = beh@bandit_guard_8 +suitable = {=target_squad_name(red_bandit_outpost_mlr_squad)} true +prior = 200 + +[logic@red_bandit_squad_guard_mlr_9] +active = beh@bandit_guard_9 +suitable = {=target_squad_name(red_bandit_outpost_mlr_squad)} true +prior = 200 + +[logic@red_bandit_squad_guard_mlr_10] +active = beh@bandit_guard_10 +suitable = {=target_squad_name(red_bandit_outpost_mlr_squad)} true +prior = 200 + +[logic@red_bandit_squad_guard_mlr_11] +active = beh@bandit_guard_11 +suitable = {=target_squad_name(red_bandit_outpost_mlr_squad)} true +prior = 200 + +[logic@red_bandit_squad_guard_mlr_12] +active = beh@bandit_guard_12 +suitable = {=target_squad_name(red_bandit_outpost_mlr_squad)} true +prior = 200 + +[beh@general] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = false + +[beh@surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false + +[beh@bandit_guard_1]:beh@general +pt1 = 88860000, guard | pos: 261.09741210938, -1.278151512146, -307.00775146484 look: 260.11511230469, -1.280345082283, -306.73223876953 +path_end = loop +on_info = {=surge_started} beh@surge_1 + +[beh@bandit_guard_2]:beh@general +pt1 = 88860000, guard | pos: 255.2179107666, -0.97214984893799, -318.86248779297 look: 254.28274536133, -1.0657855272293, -318.44515991211 +path_end = loop +on_info = {=surge_started} beh@surge_2 + +[beh@bandit_guard_3]:beh@general +pt1 = 88860000, guard | pos: 237.01438903809, -0.10033971071243, -283.44702148438 look: 235.68844604492, -0.06385001540184, -283.10388183594 +path_end = loop +on_info = {=surge_started} beh@surge_3 + +[beh@bandit_guard_4]:beh@general +pt1 = 88860000, guard | pos: 190.20082092285, -1.147012591362, -300.14068603516 look: 187.31065368652, -1.1901878118515, -300.67242431641 +path_end = loop +on_info = {=surge_started} beh@surge_4 + +[beh@bandit_guard_5]:beh@general +pt1 = 88860000, guard | pos: 217.60166931152, 0.60896825790405, -264.98028564453 look: 216.57116699219, 0.53197211027145, -265.05932617188 +path_end = loop +on_info = {=surge_started} beh@surge_5 + +[beh@bandit_guard_6]:beh@general +pt1 = 88860000, guard | pos: 187.43298339844, -1.3547611236572, -294.15420532227 look: 186.55555725098, -1.3880641460419, -293.68762207031 +path_end = loop +on_info = {=surge_started} beh@surge_6 + +[beh@bandit_guard_7]:beh@general +pt1 = 88860000, guard | pos: -100.58614349365, -0.039244785904884, -260.5544128418 look: -100.96884155273, -0.14579001069069, -261.85510253906 +path_end = loop +on_info = {=surge_started} beh@surge_7 + +[beh@bandit_guard_8]:beh@general +pt1 = 88860000, guard | pos: -117.1109085083, -0.63971590995789, -227.33744812012 look: -117.12147521973, -0.63976293802261, -228.03207397461 +path_end = loop +on_info = {=surge_started} beh@surge_8 + +[beh@bandit_guard_9]:beh@general +pt1 = 88860000, guard | pos: -91.386978149414, -0.74441361427307, -189.25192260742 look: -91.93000793457, -0.81735181808472, -189.68766784668 +path_end = loop +on_info = {=surge_started} beh@surge_9 + +[beh@bandit_guard_10]:beh@general ; +pt1 = 88860000, sit_ass | pos: -94.49543762207, -0.81734263896942, -190.5330657959 look: -94.122360229492, -0.81735837459564, -191.36186218262 +path_end = loop +;on_info = {=surge_started} beh@surge_11 + +[beh@bandit_guard_11]:beh@general +pt1 = 88860000, sit_knee | pos: -95.794860839844, -0.010705962777138, -238.97698974609 look: -94.772285461426, 0.059955149888992, -239.37768554688 +path_end = loop +;on_info = {=surge_started} beh@surge_12 + +[beh@bandit_guard_12]:beh@general +pt1 = 88860000, guard | pos: -91.237419128418, -0.81655019521713, -175.46961975098 look: -91.508850097656, -0.8166156411171, -176.77163696289 +path_end = loop +on_info = {=surge_started} beh@surge_10 + +[beh@surge_1]:beh@surge +pt1 = 88860000, guard | pos: 320.98449707031, -48.234279632568, -25.702243804932 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@bandit_guard_1 + +[beh@surge_2]:beh@surge +pt1 = 88860000, hide | pos: 318.2392578125, -47.560409545898, -25.768634796143 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@bandit_guard_2 + +[beh@surge_3]:beh@surge +pt1 = 88860000, hide | pos: 315.74710083008, -46.943187713623, -25.976787567139 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +on_info = {=surge_complete} beh@bandit_guard_3 + +[beh@surge_4]:beh@surge +pt1 = 88860000, hide | pos: 313.87976074219, -46.531192779541, -25.34361076355 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@bandit_guard_4 + +[beh@surge_5]:beh@surge +pt1 = 88860000, hide | pos: 315.63684082031, -47.395454406738, -22.22802734375 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@bandit_guard_5 + +[beh@surge_6]:beh@surge +pt1 = 88860000, guard | pos: 317.99768066406, -48.041015625, -22.403568267822 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@bandit_guard_6 + +[beh@surge_7]:beh@surge +pt1 = 88860000, guard | pos: -110.69400024414, -0.51395338773727, -215.46388244629 look: -111.84964752197, -0.64238369464874, -216.57768249512 +path_end = loop +on_info = {=surge_complete} beh@bandit_guard_7 + +[beh@surge_8]:beh@surge +pt1 = 88860000, guard | pos: -97.620040893555, -0.81635612249374, -193.13609313965 look: -96.5625, -0.81642097234726, -192.97434997559 +path_end = loop +on_info = {=surge_complete} beh@bandit_guard_8 + +[beh@surge_9]:beh@surge +pt1 = 88860000, guard | pos: -96.888122558594, -0.7479310631752, -187.58062744141 look: -98.054290771484, -0.81622606515884, -188.87913513184 +path_end = loop +on_info = {=surge_complete} beh@bandit_guard_9 + +[beh@surge_10]:beh@surge +pt1 = 88860000, guard | pos: -103.50947570801, -0.81777745485306, -190.06983947754 look: -103.24658203125, -0.8176161646843, -191.63522338867 +path_end = loop +on_info = {=surge_complete} beh@bandit_guard_10 + +;[beh@surge_11]:beh@surge +;pt1 = 88860000, guard | pos: 322.36441040039, -48.175971984863, -27.142284393311 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@bandit_guard_11 + +;[beh@surge_12]:beh@surge +;pt1 = 88860000, guard | pos: 313.71444702148, -46.638042449951, -21.719793319702 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@bandit_guard_12 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_battle_ambient_sound_1.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_battle_ambient_sound_1.ltx new file mode 100644 index 00000000..31c1171f --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_battle_ambient_sound_1.ltx @@ -0,0 +1,12 @@ +[logic] +active = ph_idle@play + +[ph_idle@play] +on_info = %=play_sound(red_battle_ambient_1)% +on_info2 = {+lim_monolith_commander_dead} ph_idle@stop %=stop_sound% +nonscript_usable = false + +[ph_idle@stop] + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_battle_ambient_sound_2.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_battle_ambient_sound_2.ltx new file mode 100644 index 00000000..a03c5628 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_battle_ambient_sound_2.ltx @@ -0,0 +1,12 @@ +[logic] +active = ph_idle@play + +[ph_idle@play] +on_info = %=play_sound(red_battle_ambient_2)% +on_info2 = {+lim_monolith_commander_dead} ph_idle@stop %=stop_sound% +nonscript_usable = false + +[ph_idle@stop] + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_combat_ambient_sound_1.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_combat_ambient_sound_1.ltx new file mode 100644 index 00000000..6d7bfbd7 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_combat_ambient_sound_1.ltx @@ -0,0 +1,47 @@ +[logic] +active = ph_idle@delay + +[ph_idle@delay] +on_info = {+lim_monolith_commander_dead} ph_idle@stop %=stop_sound% +on_game_timer = 160 | ph_idle@play + +[ph_idle@play] +on_info = %=play_sound(red_combat_ambient_1)% +on_signal = sound_end | ph_idle@wait %=stop_sound% +nonscript_usable = false + +[ph_idle@wait] +on_info = {+lim_monolith_commander_dead} ph_idle@stop %=stop_sound% +on_game_timer = 1220 | ph_idle@play_2 + +[ph_idle@play_2] +on_info = %=play_sound(red_combat_ambient_2)% +on_signal = sound_end | ph_idle@wait %=stop_sound% +nonscript_usable = false + +[ph_idle@wait_2] +on_info = {+lim_monolith_commander_dead} ph_idle@stop %=stop_sound% +on_game_timer = 580 | ph_idle@play_3 + +[ph_idle@play_3] +on_info = %=play_sound(red_combat_ambient_3)% +on_signal = sound_end | ph_idle@wait %=stop_sound% +nonscript_usable = false + +[ph_idle@wait_3] +on_info = {+lim_monolith_commander_dead} ph_idle@stop %=stop_sound% +on_game_timer = 1220 | ph_idle@play_4 + +[ph_idle@play_4] +on_info = %=play_sound(red_combat_ambient_4)% +on_signal = sound_end | ph_idle@wait %=stop_sound% +nonscript_usable = false + +[ph_idle@wait_4] +on_info = {+lim_monolith_commander_dead} ph_idle@stop %=stop_sound% +on_game_timer = 580 | ph_idle@play + +[ph_idle@stop] + +[collide] +ignore_static diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_combat_ambient_sound_2.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_combat_ambient_sound_2.ltx new file mode 100644 index 00000000..949db375 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_combat_ambient_sound_2.ltx @@ -0,0 +1,47 @@ +[logic] +active = ph_idle@delay + +[ph_idle@delay] +on_info = {+lim_monolith_commander_dead} ph_idle@stop %=stop_sound% +on_game_timer = 320 | ph_idle@play + +[ph_idle@play] +on_info = %=play_sound(red_combat_ambient_2)% +on_signal = sound_end | ph_idle@wait %=stop_sound% +nonscript_usable = false + +[ph_idle@wait] +on_info = {+lim_monolith_commander_dead} ph_idle@stop %=stop_sound% +on_game_timer = 1220 | ph_idle@play_2 + +[ph_idle@play_2] +on_info = %=play_sound(red_combat_ambient_1)% +on_signal = sound_end | ph_idle@wait %=stop_sound% +nonscript_usable = false + +[ph_idle@wait_2] +on_info = {+lim_monolith_commander_dead} ph_idle@stop %=stop_sound% +on_game_timer = 580 | ph_idle@play_3 + +[ph_idle@play_3] +on_info = %=play_sound(red_combat_ambient_4)% +on_signal = sound_end | ph_idle@wait %=stop_sound% +nonscript_usable = false + +[ph_idle@wait_3] +on_info = {+lim_monolith_commander_dead} ph_idle@stop %=stop_sound% +on_game_timer = 1220 | ph_idle@play_4 + +[ph_idle@play_4] +on_info = %=play_sound(red_combat_ambient_3)% +on_signal = sound_end | ph_idle@wait %=stop_sound% +nonscript_usable = false + +[ph_idle@wait_4] +on_info = {+lim_monolith_commander_dead} ph_idle@stop %=stop_sound% +on_game_timer = 580 | ph_idle@play + +[ph_idle@stop] + +[collide] +ignore_static \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_csky_mlr_characters_logic.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_csky_mlr_characters_logic.ltx new file mode 100644 index 00000000..d0b47eeb --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_csky_mlr_characters_logic.ltx @@ -0,0 +1,209 @@ +[logic@red_csky_squad_guard_mlr_1] +active = beh@csky_guard_1 +suitable = {=target_squad_name(red_6_6_csky_guard_squad)} true +prior = 200 + +[logic@red_csky_squad_guard_mlr_2] +active = beh@csky_guard_2 +suitable = {=target_squad_name(red_6_6_csky_guard_squad)} true +prior = 200 + +[logic@red_csky_squad_guard_mlr_3] +active = beh@csky_guard_3 +suitable = {=target_squad_name(red_6_6_csky_guard_squad)} true +prior = 200 + +[logic@red_csky_squad_guard_mlr_4] +active = beh@csky_guard_4 +suitable = {=target_squad_name(red_6_6_csky_guard_squad)} true +prior = 200 + +[logic@red_csky_squad_guard_mlr_5] +active = beh@csky_guard_5 +suitable = {=target_squad_name(red_6_6_csky_guard_squad)} true +prior = 200 + +[logic@red_csky_squad_guard_mlr_6] +active = beh@csky_guard_6 +suitable = {=target_squad_name(red_6_6_csky_guard_squad)} true +prior = 200 + +[logic@red_csky_squad_guard_mlr_7] +active = beh@csky_guard_7 +suitable = {=target_squad_name(red_csky_outpost_mlr_squad)} true +prior = 200 + +[logic@red_csky_squad_guard_mlr_8] +active = beh@csky_guard_8 +suitable = {=target_squad_name(red_csky_outpost_mlr_squad)} true +prior = 200 + +[logic@red_csky_squad_guard_mlr_9] +active = beh@csky_guard_9 +suitable = {=target_squad_name(red_csky_outpost_mlr_squad)} true +prior = 200 + +[logic@red_csky_squad_guard_mlr_10] +active = beh@csky_guard_10 +suitable = {=target_squad_name(red_csky_outpost_mlr_squad)} true +prior = 200 + +[logic@red_csky_squad_guard_mlr_11] +active = beh@csky_guard_11 +suitable = {=target_squad_name(red_csky_outpost_mlr_squad)} true +prior = 200 + +[logic@red_csky_squad_guard_mlr_12] +active = beh@csky_guard_12 +suitable = {=target_squad_name(red_csky_outpost_mlr_squad)} true +prior = 200 + +[beh@general] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = false + +[beh@surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false + +[beh@csky_guard_1]:beh@general +pt1 = 88860000, guard | pos: 261.09741210938, -1.278151512146, -307.00775146484 look: 260.11511230469, -1.280345082283, -306.73223876953 +path_end = loop +on_info = {=surge_started} beh@surge_1 + +[beh@csky_guard_2]:beh@general +pt1 = 88860000, guard | pos: 255.2179107666, -0.97214984893799, -318.86248779297 look: 254.28274536133, -1.0657855272293, -318.44515991211 +path_end = loop +on_info = {=surge_started} beh@surge_2 + +[beh@csky_guard_3]:beh@general +pt1 = 88860000, guard | pos: 237.01438903809, -0.10033971071243, -283.44702148438 look: 235.68844604492, -0.06385001540184, -283.10388183594 +path_end = loop +on_info = {=surge_started} beh@surge_3 + +[beh@csky_guard_4]:beh@general +pt1 = 88860000, guard | pos: 190.20082092285, -1.147012591362, -300.14068603516 look: 187.31065368652, -1.1901878118515, -300.67242431641 +path_end = loop +on_info = {=surge_started} beh@surge_4 + +[beh@csky_guard_5]:beh@general +pt1 = 88860000, guard | pos: 217.60166931152, 0.60896825790405, -264.98028564453 look: 216.57116699219, 0.53197211027145, -265.05932617188 +path_end = loop +on_info = {=surge_started} beh@surge_5 + +[beh@csky_guard_6]:beh@general +pt1 = 88860000, guard | pos: 187.43298339844, -1.3547611236572, -294.15420532227 look: 186.55555725098, -1.3880641460419, -293.68762207031 +path_end = loop +on_info = {=surge_started} beh@surge_6 + +[beh@csky_guard_7]:beh@general +pt1 = 88860000, guard | pos: -100.58614349365, -0.039244785904884, -260.5544128418 look: -100.96884155273, -0.14579001069069, -261.85510253906 +path_end = loop +on_info = {=surge_started} beh@surge_7 + +[beh@csky_guard_8]:beh@general +pt1 = 88860000, guard | pos: -117.1109085083, -0.63971590995789, -227.33744812012 look: -117.12147521973, -0.63976293802261, -228.03207397461 +path_end = loop +on_info = {=surge_started} beh@surge_8 + +[beh@csky_guard_9]:beh@general +pt1 = 88860000, guard | pos: -91.386978149414, -0.74441361427307, -189.25192260742 look: -91.93000793457, -0.81735181808472, -189.68766784668 +path_end = loop +on_info = {=surge_started} beh@surge_9 + +[beh@csky_guard_10]:beh@general ; +pt1 = 88860000, sit_ass | pos: -94.49543762207, -0.81734263896942, -190.5330657959 look: -94.122360229492, -0.81735837459564, -191.36186218262 +path_end = loop +;on_info = {=surge_started} beh@surge_11 + +[beh@csky_guard_11]:beh@general +pt1 = 88860000, sit_knee | pos: -95.794860839844, -0.010705962777138, -238.97698974609 look: -94.772285461426, 0.059955149888992, -239.37768554688 +path_end = loop +;on_info = {=surge_started} beh@surge_12 + +[beh@csky_guard_12]:beh@general +pt1 = 88860000, guard | pos: -91.237419128418, -0.81655019521713, -175.46961975098 look: -91.508850097656, -0.8166156411171, -176.77163696289 +path_end = loop +on_info = {=surge_started} beh@surge_10 + +[beh@surge_1]:beh@surge +pt1 = 88860000, guard | pos: 320.98449707031, -48.234279632568, -25.702243804932 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@csky_guard_1 + +[beh@surge_2]:beh@surge +pt1 = 88860000, hide | pos: 318.2392578125, -47.560409545898, -25.768634796143 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@csky_guard_2 + +[beh@surge_3]:beh@surge +pt1 = 88860000, hide | pos: 315.74710083008, -46.943187713623, -25.976787567139 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +on_info = {=surge_complete} beh@csky_guard_3 + +[beh@surge_4]:beh@surge +pt1 = 88860000, hide | pos: 313.87976074219, -46.531192779541, -25.34361076355 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@csky_guard_4 + +[beh@surge_5]:beh@surge +pt1 = 88860000, hide | pos: 315.63684082031, -47.395454406738, -22.22802734375 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@csky_guard_5 + +[beh@surge_6]:beh@surge +pt1 = 88860000, guard | pos: 317.99768066406, -48.041015625, -22.403568267822 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@csky_guard_6 + +[beh@surge_7]:beh@surge +pt1 = 88860000, guard | pos: -110.69400024414, -0.51395338773727, -215.46388244629 look: -111.84964752197, -0.64238369464874, -216.57768249512 +path_end = loop +on_info = {=surge_complete} beh@csky_guard_7 + +[beh@surge_8]:beh@surge +pt1 = 88860000, guard | pos: -97.620040893555, -0.81635612249374, -193.13609313965 look: -96.5625, -0.81642097234726, -192.97434997559 +path_end = loop +on_info = {=surge_complete} beh@csky_guard_8 + +[beh@surge_9]:beh@surge +pt1 = 88860000, guard | pos: -96.888122558594, -0.7479310631752, -187.58062744141 look: -98.054290771484, -0.81622606515884, -188.87913513184 +path_end = loop +on_info = {=surge_complete} beh@csky_guard_9 + +[beh@surge_10]:beh@surge +pt1 = 88860000, guard | pos: -103.50947570801, -0.81777745485306, -190.06983947754 look: -103.24658203125, -0.8176161646843, -191.63522338867 +path_end = loop +on_info = {=surge_complete} beh@csky_guard_10 + +;[beh@surge_11]:beh@surge +;pt1 = 88860000, guard | pos: 322.36441040039, -48.175971984863, -27.142284393311 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@csky_guard_11 + +;[beh@surge_12]:beh@surge +;pt1 = 88860000, guard | pos: 313.71444702148, -46.638042449951, -21.719793319702 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@csky_guard_12 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_duty_mlr_characters_logic.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_duty_mlr_characters_logic.ltx new file mode 100644 index 00000000..75ef17de --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_duty_mlr_characters_logic.ltx @@ -0,0 +1,209 @@ +[logic@red_duty_squad_guard_mlr_1] +active = beh@duty_guard_1 +suitable = {=target_squad_name(red_6_6_duty_guard_squad)} true +prior = 200 + +[logic@red_duty_squad_guard_mlr_2] +active = beh@duty_guard_2 +suitable = {=target_squad_name(red_6_6_duty_guard_squad)} true +prior = 200 + +[logic@red_duty_squad_guard_mlr_3] +active = beh@duty_guard_3 +suitable = {=target_squad_name(red_6_6_duty_guard_squad)} true +prior = 200 + +[logic@red_duty_squad_guard_mlr_4] +active = beh@duty_guard_4 +suitable = {=target_squad_name(red_6_6_duty_guard_squad)} true +prior = 200 + +[logic@red_duty_squad_guard_mlr_5] +active = beh@duty_guard_5 +suitable = {=target_squad_name(red_6_6_duty_guard_squad)} true +prior = 200 + +[logic@red_duty_squad_guard_mlr_6] +active = beh@duty_guard_6 +suitable = {=target_squad_name(red_6_6_duty_guard_squad)} true +prior = 200 + +[logic@red_duty_squad_guard_mlr_7] +active = beh@duty_guard_7 +suitable = {=target_squad_name(red_duty_outpost_mlr_squad)} true +prior = 200 + +[logic@red_duty_squad_guard_mlr_8] +active = beh@duty_guard_8 +suitable = {=target_squad_name(red_duty_outpost_mlr_squad)} true +prior = 200 + +[logic@red_duty_squad_guard_mlr_9] +active = beh@duty_guard_9 +suitable = {=target_squad_name(red_duty_outpost_mlr_squad)} true +prior = 200 + +[logic@red_duty_squad_guard_mlr_10] +active = beh@duty_guard_10 +suitable = {=target_squad_name(red_duty_outpost_mlr_squad)} true +prior = 200 + +[logic@red_duty_squad_guard_mlr_11] +active = beh@duty_guard_11 +suitable = {=target_squad_name(red_duty_outpost_mlr_squad)} true +prior = 200 + +[logic@red_duty_squad_guard_mlr_12] +active = beh@duty_guard_12 +suitable = {=target_squad_name(red_duty_outpost_mlr_squad)} true +prior = 200 + +[beh@general] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = false + +[beh@surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false + +[beh@duty_guard_1]:beh@general +pt1 = 88860000, guard | pos: 261.09741210938, -1.278151512146, -307.00775146484 look: 260.11511230469, -1.280345082283, -306.73223876953 +path_end = loop +on_info = {=surge_started} beh@surge_1 + +[beh@duty_guard_2]:beh@general +pt1 = 88860000, guard | pos: 255.2179107666, -0.97214984893799, -318.86248779297 look: 254.28274536133, -1.0657855272293, -318.44515991211 +path_end = loop +on_info = {=surge_started} beh@surge_2 + +[beh@duty_guard_3]:beh@general +pt1 = 88860000, guard | pos: 237.01438903809, -0.10033971071243, -283.44702148438 look: 235.68844604492, -0.06385001540184, -283.10388183594 +path_end = loop +on_info = {=surge_started} beh@surge_3 + +[beh@duty_guard_4]:beh@general +pt1 = 88860000, guard | pos: 190.20082092285, -1.147012591362, -300.14068603516 look: 187.31065368652, -1.1901878118515, -300.67242431641 +path_end = loop +on_info = {=surge_started} beh@surge_4 + +[beh@duty_guard_5]:beh@general +pt1 = 88860000, guard | pos: 217.60166931152, 0.60896825790405, -264.98028564453 look: 216.57116699219, 0.53197211027145, -265.05932617188 +path_end = loop +on_info = {=surge_started} beh@surge_5 + +[beh@duty_guard_6]:beh@general +pt1 = 88860000, guard | pos: 187.43298339844, -1.3547611236572, -294.15420532227 look: 186.55555725098, -1.3880641460419, -293.68762207031 +path_end = loop +on_info = {=surge_started} beh@surge_6 + +[beh@duty_guard_7]:beh@general +pt1 = 88860000, guard | pos: -100.58614349365, -0.039244785904884, -260.5544128418 look: -100.96884155273, -0.14579001069069, -261.85510253906 +path_end = loop +on_info = {=surge_started} beh@surge_7 + +[beh@duty_guard_8]:beh@general +pt1 = 88860000, guard | pos: -117.1109085083, -0.63971590995789, -227.33744812012 look: -117.12147521973, -0.63976293802261, -228.03207397461 +path_end = loop +on_info = {=surge_started} beh@surge_8 + +[beh@duty_guard_9]:beh@general +pt1 = 88860000, guard | pos: -91.386978149414, -0.74441361427307, -189.25192260742 look: -91.93000793457, -0.81735181808472, -189.68766784668 +path_end = loop +on_info = {=surge_started} beh@surge_9 + +[beh@duty_guard_10]:beh@general ; +pt1 = 88860000, sit_ass | pos: -94.49543762207, -0.81734263896942, -190.5330657959 look: -94.122360229492, -0.81735837459564, -191.36186218262 +path_end = loop +;on_info = {=surge_started} beh@surge_11 + +[beh@duty_guard_11]:beh@general +pt1 = 88860000, sit_knee | pos: -95.794860839844, -0.010705962777138, -238.97698974609 look: -94.772285461426, 0.059955149888992, -239.37768554688 +path_end = loop +;on_info = {=surge_started} beh@surge_12 + +[beh@duty_guard_12]:beh@general +pt1 = 88860000, guard | pos: -91.237419128418, -0.81655019521713, -175.46961975098 look: -91.508850097656, -0.8166156411171, -176.77163696289 +path_end = loop +on_info = {=surge_started} beh@surge_10 + +[beh@surge_1]:beh@surge +pt1 = 88860000, guard | pos: 320.98449707031, -48.234279632568, -25.702243804932 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@duty_guard_1 + +[beh@surge_2]:beh@surge +pt1 = 88860000, hide | pos: 318.2392578125, -47.560409545898, -25.768634796143 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@duty_guard_2 + +[beh@surge_3]:beh@surge +pt1 = 88860000, hide | pos: 315.74710083008, -46.943187713623, -25.976787567139 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +on_info = {=surge_complete} beh@duty_guard_3 + +[beh@surge_4]:beh@surge +pt1 = 88860000, hide | pos: 313.87976074219, -46.531192779541, -25.34361076355 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@duty_guard_4 + +[beh@surge_5]:beh@surge +pt1 = 88860000, hide | pos: 315.63684082031, -47.395454406738, -22.22802734375 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@duty_guard_5 + +[beh@surge_6]:beh@surge +pt1 = 88860000, guard | pos: 317.99768066406, -48.041015625, -22.403568267822 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@duty_guard_6 + +[beh@surge_7]:beh@surge +pt1 = 88860000, guard | pos: -110.69400024414, -0.51395338773727, -215.46388244629 look: -111.84964752197, -0.64238369464874, -216.57768249512 +path_end = loop +on_info = {=surge_complete} beh@duty_guard_7 + +[beh@surge_8]:beh@surge +pt1 = 88860000, guard | pos: -97.620040893555, -0.81635612249374, -193.13609313965 look: -96.5625, -0.81642097234726, -192.97434997559 +path_end = loop +on_info = {=surge_complete} beh@duty_guard_8 + +[beh@surge_9]:beh@surge +pt1 = 88860000, guard | pos: -96.888122558594, -0.7479310631752, -187.58062744141 look: -98.054290771484, -0.81622606515884, -188.87913513184 +path_end = loop +on_info = {=surge_complete} beh@duty_guard_9 + +[beh@surge_10]:beh@surge +pt1 = 88860000, guard | pos: -103.50947570801, -0.81777745485306, -190.06983947754 look: -103.24658203125, -0.8176161646843, -191.63522338867 +path_end = loop +on_info = {=surge_complete} beh@duty_guard_10 + +;[beh@surge_11]:beh@surge +;pt1 = 88860000, guard | pos: 322.36441040039, -48.175971984863, -27.142284393311 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@duty_guard_11 + +;[beh@surge_12]:beh@surge +;pt1 = 88860000, guard | pos: 313.71444702148, -46.638042449951, -21.719793319702 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@duty_guard_12 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_ecolog_mlr_characters_logic.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_ecolog_mlr_characters_logic.ltx new file mode 100644 index 00000000..996c841b --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_ecolog_mlr_characters_logic.ltx @@ -0,0 +1,209 @@ +[logic@red_ecolog_squad_guard_mlr_1] +active = beh@ecolog_guard_1 +suitable = {=target_squad_name(red_6_6_ecolog_guard_squad)} true +prior = 200 + +[logic@red_ecolog_squad_guard_mlr_2] +active = beh@ecolog_guard_2 +suitable = {=target_squad_name(red_6_6_ecolog_guard_squad)} true +prior = 200 + +[logic@red_ecolog_squad_guard_mlr_3] +active = beh@ecolog_guard_3 +suitable = {=target_squad_name(red_6_6_ecolog_guard_squad)} true +prior = 200 + +[logic@red_ecolog_squad_guard_mlr_4] +active = beh@ecolog_guard_4 +suitable = {=target_squad_name(red_6_6_ecolog_guard_squad)} true +prior = 200 + +[logic@red_ecolog_squad_guard_mlr_5] +active = beh@ecolog_guard_5 +suitable = {=target_squad_name(red_6_6_ecolog_guard_squad)} true +prior = 200 + +[logic@red_ecolog_squad_guard_mlr_6] +active = beh@ecolog_guard_6 +suitable = {=target_squad_name(red_6_6_ecolog_guard_squad)} true +prior = 200 + +[logic@red_ecolog_squad_guard_mlr_7] +active = beh@ecolog_guard_7 +suitable = {=target_squad_name(red_ecolog_outpost_mlr_squad)} true +prior = 200 + +[logic@red_ecolog_squad_guard_mlr_8] +active = beh@ecolog_guard_8 +suitable = {=target_squad_name(red_ecolog_outpost_mlr_squad)} true +prior = 200 + +[logic@red_ecolog_squad_guard_mlr_9] +active = beh@ecolog_guard_9 +suitable = {=target_squad_name(red_ecolog_outpost_mlr_squad)} true +prior = 200 + +[logic@red_ecolog_squad_guard_mlr_10] +active = beh@ecolog_guard_10 +suitable = {=target_squad_name(red_ecolog_outpost_mlr_squad)} true +prior = 200 + +[logic@red_ecolog_squad_guard_mlr_11] +active = beh@ecolog_guard_11 +suitable = {=target_squad_name(red_ecolog_outpost_mlr_squad)} true +prior = 200 + +[logic@red_ecolog_squad_guard_mlr_12] +active = beh@ecolog_guard_12 +suitable = {=target_squad_name(red_ecolog_outpost_mlr_squad)} true +prior = 200 + +[beh@general] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = false + +[beh@surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false + +[beh@ecolog_guard_1]:beh@general +pt1 = 88860000, guard | pos: 261.09741210938, -1.278151512146, -307.00775146484 look: 260.11511230469, -1.280345082283, -306.73223876953 +path_end = loop +on_info = {=surge_started} beh@surge_1 + +[beh@ecolog_guard_2]:beh@general +pt1 = 88860000, guard | pos: 255.2179107666, -0.97214984893799, -318.86248779297 look: 254.28274536133, -1.0657855272293, -318.44515991211 +path_end = loop +on_info = {=surge_started} beh@surge_2 + +[beh@ecolog_guard_3]:beh@general +pt1 = 88860000, guard | pos: 237.01438903809, -0.10033971071243, -283.44702148438 look: 235.68844604492, -0.06385001540184, -283.10388183594 +path_end = loop +on_info = {=surge_started} beh@surge_3 + +[beh@ecolog_guard_4]:beh@general +pt1 = 88860000, guard | pos: 190.20082092285, -1.147012591362, -300.14068603516 look: 187.31065368652, -1.1901878118515, -300.67242431641 +path_end = loop +on_info = {=surge_started} beh@surge_4 + +[beh@ecolog_guard_5]:beh@general +pt1 = 88860000, guard | pos: 217.60166931152, 0.60896825790405, -264.98028564453 look: 216.57116699219, 0.53197211027145, -265.05932617188 +path_end = loop +on_info = {=surge_started} beh@surge_5 + +[beh@ecolog_guard_6]:beh@general +pt1 = 88860000, guard | pos: 187.43298339844, -1.3547611236572, -294.15420532227 look: 186.55555725098, -1.3880641460419, -293.68762207031 +path_end = loop +on_info = {=surge_started} beh@surge_6 + +[beh@ecolog_guard_7]:beh@general +pt1 = 88860000, guard | pos: -100.58614349365, -0.039244785904884, -260.5544128418 look: -100.96884155273, -0.14579001069069, -261.85510253906 +path_end = loop +on_info = {=surge_started} beh@surge_7 + +[beh@ecolog_guard_8]:beh@general +pt1 = 88860000, guard | pos: -117.1109085083, -0.63971590995789, -227.33744812012 look: -117.12147521973, -0.63976293802261, -228.03207397461 +path_end = loop +on_info = {=surge_started} beh@surge_8 + +[beh@ecolog_guard_9]:beh@general +pt1 = 88860000, guard | pos: -91.386978149414, -0.74441361427307, -189.25192260742 look: -91.93000793457, -0.81735181808472, -189.68766784668 +path_end = loop +on_info = {=surge_started} beh@surge_9 + +[beh@ecolog_guard_10]:beh@general ; +pt1 = 88860000, sit_ass | pos: -94.49543762207, -0.81734263896942, -190.5330657959 look: -94.122360229492, -0.81735837459564, -191.36186218262 +path_end = loop +;on_info = {=surge_started} beh@surge_11 + +[beh@ecolog_guard_11]:beh@general +pt1 = 88860000, sit_knee | pos: -95.794860839844, -0.010705962777138, -238.97698974609 look: -94.772285461426, 0.059955149888992, -239.37768554688 +path_end = loop +;on_info = {=surge_started} beh@surge_12 + +[beh@ecolog_guard_12]:beh@general +pt1 = 88860000, guard | pos: -91.237419128418, -0.81655019521713, -175.46961975098 look: -91.508850097656, -0.8166156411171, -176.77163696289 +path_end = loop +on_info = {=surge_started} beh@surge_10 + +[beh@surge_1]:beh@surge +pt1 = 88860000, guard | pos: 320.98449707031, -48.234279632568, -25.702243804932 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@ecolog_guard_1 + +[beh@surge_2]:beh@surge +pt1 = 88860000, hide | pos: 318.2392578125, -47.560409545898, -25.768634796143 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@ecolog_guard_2 + +[beh@surge_3]:beh@surge +pt1 = 88860000, hide | pos: 315.74710083008, -46.943187713623, -25.976787567139 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +on_info = {=surge_complete} beh@ecolog_guard_3 + +[beh@surge_4]:beh@surge +pt1 = 88860000, hide | pos: 313.87976074219, -46.531192779541, -25.34361076355 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@ecolog_guard_4 + +[beh@surge_5]:beh@surge +pt1 = 88860000, hide | pos: 315.63684082031, -47.395454406738, -22.22802734375 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@ecolog_guard_5 + +[beh@surge_6]:beh@surge +pt1 = 88860000, guard | pos: 317.99768066406, -48.041015625, -22.403568267822 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@ecolog_guard_6 + +[beh@surge_7]:beh@surge +pt1 = 88860000, guard | pos: -110.69400024414, -0.51395338773727, -215.46388244629 look: -111.84964752197, -0.64238369464874, -216.57768249512 +path_end = loop +on_info = {=surge_complete} beh@ecolog_guard_7 + +[beh@surge_8]:beh@surge +pt1 = 88860000, guard | pos: -97.620040893555, -0.81635612249374, -193.13609313965 look: -96.5625, -0.81642097234726, -192.97434997559 +path_end = loop +on_info = {=surge_complete} beh@ecolog_guard_8 + +[beh@surge_9]:beh@surge +pt1 = 88860000, guard | pos: -96.888122558594, -0.7479310631752, -187.58062744141 look: -98.054290771484, -0.81622606515884, -188.87913513184 +path_end = loop +on_info = {=surge_complete} beh@ecolog_guard_9 + +[beh@surge_10]:beh@surge +pt1 = 88860000, guard | pos: -103.50947570801, -0.81777745485306, -190.06983947754 look: -103.24658203125, -0.8176161646843, -191.63522338867 +path_end = loop +on_info = {=surge_complete} beh@ecolog_guard_10 + +;[beh@surge_11]:beh@surge +;pt1 = 88860000, guard | pos: 322.36441040039, -48.175971984863, -27.142284393311 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@ecolog_guard_11 + +;[beh@surge_12]:beh@surge +;pt1 = 88860000, guard | pos: 313.71444702148, -46.638042449951, -21.719793319702 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@ecolog_guard_12 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_freedom_mlr_characters_logic.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_freedom_mlr_characters_logic.ltx new file mode 100644 index 00000000..d252da5b --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_freedom_mlr_characters_logic.ltx @@ -0,0 +1,209 @@ +[logic@red_freedom_squad_guard_mlr_1] +active = beh@freedom_guard_1 +suitable = {=target_squad_name(red_6_6_freedom_guard_squad)} true +prior = 200 + +[logic@red_freedom_squad_guard_mlr_2] +active = beh@freedom_guard_2 +suitable = {=target_squad_name(red_6_6_freedom_guard_squad)} true +prior = 200 + +[logic@red_freedom_squad_guard_mlr_3] +active = beh@freedom_guard_3 +suitable = {=target_squad_name(red_6_6_freedom_guard_squad)} true +prior = 200 + +[logic@red_freedom_squad_guard_mlr_4] +active = beh@freedom_guard_4 +suitable = {=target_squad_name(red_6_6_freedom_guard_squad)} true +prior = 200 + +[logic@red_freedom_squad_guard_mlr_5] +active = beh@freedom_guard_5 +suitable = {=target_squad_name(red_6_6_freedom_guard_squad)} true +prior = 200 + +[logic@red_freedom_squad_guard_mlr_6] +active = beh@freedom_guard_6 +suitable = {=target_squad_name(red_6_6_freedom_guard_squad)} true +prior = 200 + +[logic@red_freedom_squad_guard_mlr_7] +active = beh@freedom_guard_7 +suitable = {=target_squad_name(red_freedom_outpost_mlr_squad)} true +prior = 200 + +[logic@red_freedom_squad_guard_mlr_8] +active = beh@freedom_guard_8 +suitable = {=target_squad_name(red_freedom_outpost_mlr_squad)} true +prior = 200 + +[logic@red_freedom_squad_guard_mlr_9] +active = beh@freedom_guard_9 +suitable = {=target_squad_name(red_freedom_outpost_mlr_squad)} true +prior = 200 + +[logic@red_freedom_squad_guard_mlr_10] +active = beh@freedom_guard_10 +suitable = {=target_squad_name(red_freedom_outpost_mlr_squad)} true +prior = 200 + +[logic@red_freedom_squad_guard_mlr_11] +active = beh@freedom_guard_11 +suitable = {=target_squad_name(red_freedom_outpost_mlr_squad)} true +prior = 200 + +[logic@red_freedom_squad_guard_mlr_12] +active = beh@freedom_guard_12 +suitable = {=target_squad_name(red_freedom_outpost_mlr_squad)} true +prior = 200 + +[beh@general] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = false + +[beh@surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false + +[beh@freedom_guard_1]:beh@general +pt1 = 88860000, guard | pos: 261.09741210938, -1.278151512146, -307.00775146484 look: 260.11511230469, -1.280345082283, -306.73223876953 +path_end = loop +on_info = {=surge_started} beh@surge_1 + +[beh@freedom_guard_2]:beh@general +pt1 = 88860000, guard | pos: 255.2179107666, -0.97214984893799, -318.86248779297 look: 254.28274536133, -1.0657855272293, -318.44515991211 +path_end = loop +on_info = {=surge_started} beh@surge_2 + +[beh@freedom_guard_3]:beh@general +pt1 = 88860000, guard | pos: 237.01438903809, -0.10033971071243, -283.44702148438 look: 235.68844604492, -0.06385001540184, -283.10388183594 +path_end = loop +on_info = {=surge_started} beh@surge_3 + +[beh@freedom_guard_4]:beh@general +pt1 = 88860000, guard | pos: 190.20082092285, -1.147012591362, -300.14068603516 look: 187.31065368652, -1.1901878118515, -300.67242431641 +path_end = loop +on_info = {=surge_started} beh@surge_4 + +[beh@freedom_guard_5]:beh@general +pt1 = 88860000, guard | pos: 217.60166931152, 0.60896825790405, -264.98028564453 look: 216.57116699219, 0.53197211027145, -265.05932617188 +path_end = loop +on_info = {=surge_started} beh@surge_5 + +[beh@freedom_guard_6]:beh@general +pt1 = 88860000, guard | pos: 187.43298339844, -1.3547611236572, -294.15420532227 look: 186.55555725098, -1.3880641460419, -293.68762207031 +path_end = loop +on_info = {=surge_started} beh@surge_6 + +[beh@freedom_guard_7]:beh@general +pt1 = 88860000, guard | pos: -100.58614349365, -0.039244785904884, -260.5544128418 look: -100.96884155273, -0.14579001069069, -261.85510253906 +path_end = loop +on_info = {=surge_started} beh@surge_7 + +[beh@freedom_guard_8]:beh@general +pt1 = 88860000, guard | pos: -117.1109085083, -0.63971590995789, -227.33744812012 look: -117.12147521973, -0.63976293802261, -228.03207397461 +path_end = loop +on_info = {=surge_started} beh@surge_8 + +[beh@freedom_guard_9]:beh@general +pt1 = 88860000, guard | pos: -91.386978149414, -0.74441361427307, -189.25192260742 look: -91.93000793457, -0.81735181808472, -189.68766784668 +path_end = loop +on_info = {=surge_started} beh@surge_9 + +[beh@freedom_guard_10]:beh@general ; +pt1 = 88860000, sit_ass | pos: -94.49543762207, -0.81734263896942, -190.5330657959 look: -94.122360229492, -0.81735837459564, -191.36186218262 +path_end = loop +;on_info = {=surge_started} beh@surge_11 + +[beh@freedom_guard_11]:beh@general +pt1 = 88860000, sit_knee | pos: -95.794860839844, -0.010705962777138, -238.97698974609 look: -94.772285461426, 0.059955149888992, -239.37768554688 +path_end = loop +;on_info = {=surge_started} beh@surge_12 + +[beh@freedom_guard_12]:beh@general +pt1 = 88860000, guard | pos: -91.237419128418, -0.81655019521713, -175.46961975098 look: -91.508850097656, -0.8166156411171, -176.77163696289 +path_end = loop +on_info = {=surge_started} beh@surge_10 + +[beh@surge_1]:beh@surge +pt1 = 88860000, guard | pos: 320.98449707031, -48.234279632568, -25.702243804932 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@freedom_guard_1 + +[beh@surge_2]:beh@surge +pt1 = 88860000, hide | pos: 318.2392578125, -47.560409545898, -25.768634796143 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@freedom_guard_2 + +[beh@surge_3]:beh@surge +pt1 = 88860000, hide | pos: 315.74710083008, -46.943187713623, -25.976787567139 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +on_info = {=surge_complete} beh@freedom_guard_3 + +[beh@surge_4]:beh@surge +pt1 = 88860000, hide | pos: 313.87976074219, -46.531192779541, -25.34361076355 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@freedom_guard_4 + +[beh@surge_5]:beh@surge +pt1 = 88860000, hide | pos: 315.63684082031, -47.395454406738, -22.22802734375 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@freedom_guard_5 + +[beh@surge_6]:beh@surge +pt1 = 88860000, guard | pos: 317.99768066406, -48.041015625, -22.403568267822 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@freedom_guard_6 + +[beh@surge_7]:beh@surge +pt1 = 88860000, guard | pos: -110.69400024414, -0.51395338773727, -215.46388244629 look: -111.84964752197, -0.64238369464874, -216.57768249512 +path_end = loop +on_info = {=surge_complete} beh@freedom_guard_7 + +[beh@surge_8]:beh@surge +pt1 = 88860000, guard | pos: -97.620040893555, -0.81635612249374, -193.13609313965 look: -96.5625, -0.81642097234726, -192.97434997559 +path_end = loop +on_info = {=surge_complete} beh@freedom_guard_8 + +[beh@surge_9]:beh@surge +pt1 = 88860000, guard | pos: -96.888122558594, -0.7479310631752, -187.58062744141 look: -98.054290771484, -0.81622606515884, -188.87913513184 +path_end = loop +on_info = {=surge_complete} beh@freedom_guard_9 + +[beh@surge_10]:beh@surge +pt1 = 88860000, guard | pos: -103.50947570801, -0.81777745485306, -190.06983947754 look: -103.24658203125, -0.8176161646843, -191.63522338867 +path_end = loop +on_info = {=surge_complete} beh@freedom_guard_10 + +;[beh@surge_11]:beh@surge +;pt1 = 88860000, guard | pos: 322.36441040039, -48.175971984863, -27.142284393311 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@freedom_guard_11 + +;[beh@surge_12]:beh@surge +;pt1 = 88860000, guard | pos: 313.71444702148, -46.638042449951, -21.719793319702 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@freedom_guard_12 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_killer_mlr_characters_logic.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_killer_mlr_characters_logic.ltx new file mode 100644 index 00000000..47bd8f68 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_killer_mlr_characters_logic.ltx @@ -0,0 +1,209 @@ +[logic@red_killer_squad_guard_mlr_1] +active = beh@killer_guard_1 +suitable = {=target_squad_name(red_6_6_killer_guard_squad)} true +prior = 200 + +[logic@red_killer_squad_guard_mlr_2] +active = beh@killer_guard_2 +suitable = {=target_squad_name(red_6_6_killer_guard_squad)} true +prior = 200 + +[logic@red_killer_squad_guard_mlr_3] +active = beh@killer_guard_3 +suitable = {=target_squad_name(red_6_6_killer_guard_squad)} true +prior = 200 + +[logic@red_killer_squad_guard_mlr_4] +active = beh@killer_guard_4 +suitable = {=target_squad_name(red_6_6_killer_guard_squad)} true +prior = 200 + +[logic@red_killer_squad_guard_mlr_5] +active = beh@killer_guard_5 +suitable = {=target_squad_name(red_6_6_killer_guard_squad)} true +prior = 200 + +[logic@red_killer_squad_guard_mlr_6] +active = beh@killer_guard_6 +suitable = {=target_squad_name(red_6_6_killer_guard_squad)} true +prior = 200 + +[logic@red_killer_squad_guard_mlr_7] +active = beh@killer_guard_7 +suitable = {=target_squad_name(red_killer_outpost_mlr_squad)} true +prior = 200 + +[logic@red_killer_squad_guard_mlr_8] +active = beh@killer_guard_8 +suitable = {=target_squad_name(red_killer_outpost_mlr_squad)} true +prior = 200 + +[logic@red_killer_squad_guard_mlr_9] +active = beh@killer_guard_9 +suitable = {=target_squad_name(red_killer_outpost_mlr_squad)} true +prior = 200 + +[logic@red_killer_squad_guard_mlr_10] +active = beh@killer_guard_10 +suitable = {=target_squad_name(red_killer_outpost_mlr_squad)} true +prior = 200 + +[logic@red_killer_squad_guard_mlr_11] +active = beh@killer_guard_11 +suitable = {=target_squad_name(red_killer_outpost_mlr_squad)} true +prior = 200 + +[logic@red_killer_squad_guard_mlr_12] +active = beh@killer_guard_12 +suitable = {=target_squad_name(red_killer_outpost_mlr_squad)} true +prior = 200 + +[beh@general] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = false + +[beh@surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false + +[beh@killer_guard_1]:beh@general +pt1 = 88860000, guard | pos: 261.09741210938, -1.278151512146, -307.00775146484 look: 260.11511230469, -1.280345082283, -306.73223876953 +path_end = loop +on_info = {=surge_started} beh@surge_1 + +[beh@killer_guard_2]:beh@general +pt1 = 88860000, guard | pos: 255.2179107666, -0.97214984893799, -318.86248779297 look: 254.28274536133, -1.0657855272293, -318.44515991211 +path_end = loop +on_info = {=surge_started} beh@surge_2 + +[beh@killer_guard_3]:beh@general +pt1 = 88860000, guard | pos: 237.01438903809, -0.10033971071243, -283.44702148438 look: 235.68844604492, -0.06385001540184, -283.10388183594 +path_end = loop +on_info = {=surge_started} beh@surge_3 + +[beh@killer_guard_4]:beh@general +pt1 = 88860000, guard | pos: 190.20082092285, -1.147012591362, -300.14068603516 look: 187.31065368652, -1.1901878118515, -300.67242431641 +path_end = loop +on_info = {=surge_started} beh@surge_4 + +[beh@killer_guard_5]:beh@general +pt1 = 88860000, guard | pos: 217.60166931152, 0.60896825790405, -264.98028564453 look: 216.57116699219, 0.53197211027145, -265.05932617188 +path_end = loop +on_info = {=surge_started} beh@surge_5 + +[beh@killer_guard_6]:beh@general +pt1 = 88860000, guard | pos: 187.43298339844, -1.3547611236572, -294.15420532227 look: 186.55555725098, -1.3880641460419, -293.68762207031 +path_end = loop +on_info = {=surge_started} beh@surge_6 + +[beh@killer_guard_7]:beh@general +pt1 = 88860000, guard | pos: -119.67526245117, 0.27558797597885, -268.39599609375 look: -118.30867004395, 0.27550387382507, -268.9814453125 +path_end = loop +on_info = {=surge_started} beh@surge_7 + +[beh@killer_guard_8]:beh@general +pt1 = 88860000, guard | pos: -116.31747436523, 0.4664620757103, -255.0908203125 look: -115.74002075195, 0.46672117710114, -255.18035888672 +path_end = loop +on_info = {=surge_started} beh@surge_8 + +[beh@killer_guard_9]:beh@general +pt1 = 88860000, guard | pos: -99.07999420166, 0.27176135778427, -269.62466430664 look: -98.640869140625, 0.25648379325867, -271.10009765625 +path_end = loop +on_info = {=surge_started} beh@surge_9 + +[beh@killer_guard_10]:beh@general +pt1 = 88860000, guard | pos: -117.01035308838, -0.64023810625076, -227.71569824219 look: -117.07551574707, -0.64376544952393, -228.67135620117 +path_end = loop +on_info = {=surge_started} beh@surge_10 + +[beh@killer_guard_11]:beh@general +pt1 = 88860000, sit_knee | pos: -94.579940795898, -0.81704634428024, -190.72244262695 look: -94.225479125977, -0.81714963912964, -191.43290710449 +path_end = loop +;on_info = {=surge_started} beh@surge_11 + +[beh@killer_guard_12]:beh@general +pt1 = 88860000, guard | pos: -91.610137939453, -0.81628715991974, -191.88710021973 look: -92.410385131836, -0.81694227457047, -192.15361022949 +path_end = loop +;on_info = {=surge_started} beh@surge_12 + +[beh@surge_1]:beh@surge +pt1 = 88860000, hide | pos: 181.8861541748, -0.21441453695297, -208.86123657227 look: 182.18424987793, -0.18252545595169, -209.82832336426 +path_end = loop +on_info = {=surge_complete} beh@killer_guard_1 + +[beh@surge_2]:beh@surge +pt1 = 88860000, guard | pos: 182.92933654785, -0.2258342653513, -204.18620300293 look: 182.93313598633, -0.18252272903919, -205.2258605957 +path_end = loop +on_info = {=surge_complete} beh@killer_guard_2 + +[beh@surge_3]:beh@surge +pt1 = 88860000, hide | pos: 177.96719360352, -0.17797777056694, -192.44175720215 look: 177.59188842773, -0.18888372182846, -191.52992248535 +path_end = loop +on_info = {=surge_complete} beh@killer_guard_3 + +[beh@surge_4]:beh@surge +pt1 = 88860000, guard | pos: 181.66423034668, -0.18746250867844, -195.79037475586 look: 181.34533691406, -0.23732340335846, -194.70288085938 +path_end = loop +on_info = {=surge_complete} beh@killer_guard_4 + +[beh@surge_5]:beh@surge +pt1 = 88860000, hide | pos: 176.31915283203, -0.21099716424942, -203.01792907715 look: 177.18368530273, -0.1900669336319, -203.39236450195 +path_end = loop +on_info = {=surge_complete} beh@killer_guard_5 + +[beh@surge_6]:beh@surge +pt1 = 88860000, guard | pos: 176.1925201416, -0.20936344563961, -206.0412902832 look: 176.99349975586, -0.17933666706085, -205.60354614258 +path_end = loop +on_info = {=surge_complete} beh@killer_guard_6 + +[beh@surge_7]:beh@surge +pt1 = 88860000, hide | pos: -113.75204467773, -0.64001190662384, -220.2021484375 look: -114.84027099609, -0.60566627979279, -221.5068359375 +path_end = loop +on_info = {=surge_complete} beh@killer_guard_7 + +[beh@surge_8]:beh@surge +pt1 = 88860000, hide | pos: -111.17091369629, -0.67727673053741, -209.04975891113 look: -111.47574615479, -0.65317982435226, -210.14183044434 +path_end = loop +on_info = {=surge_complete} beh@killer_guard_8 + +[beh@surge_9]:beh@surge +pt1 = 88860000, guard | pos: -103.07054901123, -0.81712251901627, -202.88200378418 look: -103.9397277832, -0.81681615114212, -203.35350036621 +path_end = loop +on_info = {=surge_complete} beh@killer_guard_9 + +[beh@surge_10]:beh@surge +pt1 = 88860000, guard | pos: -97.834114074707, -0.81990104913712, -188.9979095459 look: -98.137062072754, -0.81644916534424, -190.88673400879 +path_end = loop +on_info = {=surge_complete} beh@killer_guard_10 + +;[beh@surge_11]:beh@surge +;pt1 = 88860000, guard | pos: 322.36441040039, -48.175971984863, -27.142284393311 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@killer_guard_11 + +;[beh@surge_12]:beh@surge +;pt1 = 88860000, guard | pos: 313.71444702148, -46.638042449951, -21.719793319702 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@killer_guard_12 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_monolith_camp_radio.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_monolith_camp_radio.ltx new file mode 100644 index 00000000..fdbf18e0 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_monolith_camp_radio.ltx @@ -0,0 +1,23 @@ +[logic] +active = ph_idle@play + +[ph_idle@base] +nonscript_usable = true + +[ph_idle@play]:ph_idle@base +on_info = %=play_sound(monolith_red_camp_radio_speech)% +tips = Turn:Off +on_use = %=stop_sound% ph_idle@stop + +[ph_idle@stop]:ph_idle@base +on_info = {-red_monolith_trader_dead} ph_idle@reset, ph_idle@stop +tips = Turn:On +on_use = ph_idle@play + +[ph_idle@reset] +tips = Turn:On +on_use = ph_idle@play +on_game_timer = 15500 | ph_idle@play + +[collide] +ignore_static diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_monolith_mlr_characters_logic.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_monolith_mlr_characters_logic.ltx new file mode 100644 index 00000000..88021cd3 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_monolith_mlr_characters_logic.ltx @@ -0,0 +1,124 @@ +[logic@red_monolith_squad_guard_mlr_1] +active = beh@monolith_guard_1 +suitable = {=target_squad_name(red_6_6_monolith_guard_squad)} true +prior = 200 + +[logic@red_monolith_squad_guard_mlr_2] +active = beh@monolith_guard_2 +suitable = {=target_squad_name(red_6_6_monolith_guard_squad)} true +prior = 200 + +[logic@red_monolith_squad_guard_mlr_3] +active = beh@monolith_guard_3 +suitable = {=target_squad_name(red_6_6_monolith_guard_squad)} true +prior = 200 + +[logic@red_monolith_squad_guard_mlr_4] +active = beh@monolith_guard_4 +suitable = {=target_squad_name(red_6_6_monolith_guard_squad)} true +prior = 200 + +[logic@red_monolith_squad_guard_mlr_5] +active = beh@monolith_guard_5 +suitable = {=target_squad_name(red_6_6_monolith_guard_squad)} true +prior = 200 + +[logic@red_monolith_squad_guard_mlr_6] +active = beh@monolith_guard_6 +suitable = {=target_squad_name(red_6_6_monolith_guard_squad)} true +prior = 200 + +[logic@red_monolith_squad_guard_mlr_7] +active = beh@monolith_guard_7 +suitable = {=target_squad_name(red_monolith_outpost_mlr_squad)} true +prior = 200 + +[logic@red_monolith_squad_guard_mlr_8] +active = beh@monolith_guard_8 +suitable = {=target_squad_name(red_monolith_outpost_mlr_squad)} true +prior = 200 + +[logic@red_monolith_squad_guard_mlr_9] +active = beh@monolith_guard_9 +suitable = {=target_squad_name(red_monolith_outpost_mlr_squad)} true +prior = 200 + +[logic@red_monolith_squad_guard_mlr_10] +active = beh@monolith_guard_10 +suitable = {=target_squad_name(red_monolith_outpost_mlr_squad)} true +prior = 200 + +[logic@red_monolith_squad_guard_mlr_11] +active = beh@monolith_guard_11 +suitable = {=target_squad_name(red_monolith_outpost_mlr_squad)} true +prior = 200 + +[logic@red_monolith_squad_guard_mlr_12] +active = beh@monolith_guard_12 +suitable = {=target_squad_name(red_monolith_outpost_mlr_squad)} true +prior = 200 + +[beh@general] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = false + +[beh@monolith_guard_1]:beh@general +pt1 = 88860000, guard | pos: 263.67318725586, -1.3804399967194, -317.76922607422 look: 263.40649414062, -1.3797993659973, -316.52722167969 +path_end = loop + +[beh@monolith_guard_2]:beh@general +pt1 = 88860000, guard | pos: 261.32794189453, -1.2935316562653, -307.42724609375 look: 260.56286621094, -1.2935013771057, -307.17279052734 +path_end = loop + +[beh@monolith_guard_3]:beh@general +pt1 = 88860000, guard | pos: 237.01438903809, -0.10033971071243, -283.44702148438 look: 235.68844604492, -0.06385001540184, -283.10388183594 +path_end = loop + +[beh@monolith_guard_4]:beh@general +pt1 = 88860000, guard | pos: 190.20082092285, -1.147012591362, -300.14068603516 look: 187.31065368652, -1.1901878118515, -300.67242431641 +path_end = loop + +[beh@monolith_guard_5]:beh@general +pt1 = 88860000, guard | pos: 217.60166931152, 0.60896825790405, -264.98028564453 look: 216.57116699219, 0.53197211027145, -265.05932617188 +path_end = loop + +[beh@monolith_guard_6]:beh@general +pt1 = 88860000, guard | pos: 187.43298339844, -1.3547611236572, -294.15420532227 look: 186.55555725098, -1.3880641460419, -293.68762207031 +path_end = loop + +[beh@monolith_guard_7]:beh@general +pt1 = 88860000, guard | pos: -111.54479217529, -0.15344235301018, -288.88806152344 look: -110.61501312256, -0.1175919175148, -289.45959472656 +path_end = loop + +[beh@monolith_guard_8]:beh@general +pt1 = 88860000, guard | pos: -95.758636474609, 0.032176405191422, -239.58683776855 look: -94.696182250977, 0.080357849597931, -239.57418823242 +path_end = loop + +[beh@monolith_guard_9]:beh@general +pt1 = 88860000, guard | pos: -116.73320007324, -0.64363777637482, -227.47174072266 look: -116.74213409424, -0.64278769493103, -228.1428527832 +path_end = loop + +[beh@monolith_guard_10]:beh@general +pt1 = 88860000, guard | pos: -91.655410766602, -0.81885409355164, -175.32438659668 look: -91.596199035645, -0.82068961858749, -176.0732421875 +path_end = loop + +[beh@monolith_guard_11]:beh@general +pt1 = 88860000, guard | pos: -90.218376159668, -0.81923472881317, -191.1815032959 look: -91.27262878418, -0.81628996133804, -191.30047607422 +path_end = loop + +[beh@monolith_guard_12]:beh@general +pt1 = 88860000, trans_1 | pos: -94.618225097656, -0.817826628685, -191.36549377441 look: -94.262496948242, -0.81772184371948, -191.73176574707 +path_end = loop diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_monolith_outpost_megafone.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_monolith_outpost_megafone.ltx new file mode 100644 index 00000000..52a59833 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_monolith_outpost_megafone.ltx @@ -0,0 +1,18 @@ +[logic] +active = {+monolith_red_outpost_megafone} ph_idle@play, ph_idle@stop + +[ph_idle@play] +nonscript_usable = false +on_info = {+monolith_red_outpost_megafone} %=play_sound(monolith_red_outpost_speech)%, %=stop_sound% ph_idle@stop + +[ph_idle@stop] +nonscript_usable = false +on_info = {+monolith_red_outpost_megafone} ph_idle@play + +[collide] +ignore_static + + + + + diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_monolith_outpost_transceiver.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_monolith_outpost_transceiver.ltx new file mode 100644 index 00000000..1289fdf7 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_monolith_outpost_transceiver.ltx @@ -0,0 +1,43 @@ +[logic] +active = ph_idle@check + +[ph_idle@check] +on_info = {=actor_community(actor_monolith)} ph_idle@mstop, {=actor_community(actor_greh)} ph_idle@mstop, ph_idle@play + +[ph_idle@base] +nonscript_usable = true + +[ph_idle@play]:ph_idle@base +on_info = %+monolith_red_outpost_megafone% +tips = Turn:Off +on_use = %=stop_sound% ph_idle@stop + +[ph_idle@stop]:ph_idle@base +on_info = %-monolith_red_outpost_megafone% +on_info2 = {-red_monolith_trader_dead} ph_idle@reset, ph_idle@stop +tips = Turn:On +on_use = ph_idle@play + +[ph_idle@reset]:ph_idle@base +tips = Turn:On +on_use = ph_idle@play +on_game_timer = 15500 | ph_idle@play + +[ph_idle@mstop]:ph_idle@base +on_info = %-monolith_red_outpost_megafone% +tips = Turn:On +on_use = ph_idle@mplay + +[ph_idle@mplay]:ph_idle@base +on_info = %+monolith_red_outpost_megafone% +on_info2 = {+bar_deactivate_radar_done} ph_idle@mreset, ph_idle@mplay +tips = Turn:Off +on_use = %=stop_sound% ph_idle@mstop + +[ph_idle@mreset]:ph_idle@base +tips = Turn:Off +on_use = ph_idle@mstop +on_game_timer = 15500 | ph_idle@mstop + +[collide] +ignore_static diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_renegade_mlr_characters_logic.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_renegade_mlr_characters_logic.ltx new file mode 100644 index 00000000..b71f6b6e --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_renegade_mlr_characters_logic.ltx @@ -0,0 +1,209 @@ +[logic@red_renegade_squad_guard_mlr_1] +active = beh@renegade_guard_1 +suitable = {=target_squad_name(red_6_6_renegade_guard_squad)} true +prior = 200 + +[logic@red_renegade_squad_guard_mlr_2] +active = beh@renegade_guard_2 +suitable = {=target_squad_name(red_6_6_renegade_guard_squad)} true +prior = 200 + +[logic@red_renegade_squad_guard_mlr_3] +active = beh@renegade_guard_3 +suitable = {=target_squad_name(red_6_6_renegade_guard_squad)} true +prior = 200 + +[logic@red_renegade_squad_guard_mlr_4] +active = beh@renegade_guard_4 +suitable = {=target_squad_name(red_6_6_renegade_guard_squad)} true +prior = 200 + +[logic@red_renegade_squad_guard_mlr_5] +active = beh@renegade_guard_5 +suitable = {=target_squad_name(red_6_6_renegade_guard_squad)} true +prior = 200 + +[logic@red_renegade_squad_guard_mlr_6] +active = beh@renegade_guard_6 +suitable = {=target_squad_name(red_6_6_renegade_guard_squad)} true +prior = 200 + +[logic@red_renegade_squad_guard_mlr_7] +active = beh@renegade_guard_7 +suitable = {=target_squad_name(red_renegade_outpost_mlr_squad)} true +prior = 200 + +[logic@red_renegade_squad_guard_mlr_8] +active = beh@renegade_guard_8 +suitable = {=target_squad_name(red_renegade_outpost_mlr_squad)} true +prior = 200 + +[logic@red_renegade_squad_guard_mlr_9] +active = beh@renegade_guard_9 +suitable = {=target_squad_name(red_renegade_outpost_mlr_squad)} true +prior = 200 + +[logic@red_renegade_squad_guard_mlr_10] +active = beh@renegade_guard_10 +suitable = {=target_squad_name(red_renegade_outpost_mlr_squad)} true +prior = 200 + +[logic@red_renegade_squad_guard_mlr_11] +active = beh@renegade_guard_11 +suitable = {=target_squad_name(red_renegade_outpost_mlr_squad)} true +prior = 200 + +[logic@red_renegade_squad_guard_mlr_12] +active = beh@renegade_guard_12 +suitable = {=target_squad_name(red_renegade_outpost_mlr_squad)} true +prior = 200 + +[beh@general] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = false + +[beh@surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false + +[beh@renegade_guard_1]:beh@general +pt1 = 88860000, guard | pos: 261.09741210938, -1.278151512146, -307.00775146484 look: 260.11511230469, -1.280345082283, -306.73223876953 +path_end = loop +on_info = {=surge_started} beh@surge_1 + +[beh@renegade_guard_2]:beh@general +pt1 = 88860000, guard | pos: 255.2179107666, -0.97214984893799, -318.86248779297 look: 254.28274536133, -1.0657855272293, -318.44515991211 +path_end = loop +on_info = {=surge_started} beh@surge_2 + +[beh@renegade_guard_3]:beh@general +pt1 = 88860000, guard | pos: 237.01438903809, -0.10033971071243, -283.44702148438 look: 235.68844604492, -0.06385001540184, -283.10388183594 +path_end = loop +on_info = {=surge_started} beh@surge_3 + +[beh@renegade_guard_4]:beh@general +pt1 = 88860000, guard | pos: 190.20082092285, -1.147012591362, -300.14068603516 look: 187.31065368652, -1.1901878118515, -300.67242431641 +path_end = loop +on_info = {=surge_started} beh@surge_4 + +[beh@renegade_guard_5]:beh@general +pt1 = 88860000, guard | pos: 217.60166931152, 0.60896825790405, -264.98028564453 look: 216.57116699219, 0.53197211027145, -265.05932617188 +path_end = loop +on_info = {=surge_started} beh@surge_5 + +[beh@renegade_guard_6]:beh@general +pt1 = 88860000, guard | pos: 187.43298339844, -1.3547611236572, -294.15420532227 look: 186.55555725098, -1.3880641460419, -293.68762207031 +path_end = loop +on_info = {=surge_started} beh@surge_6 + +[beh@renegade_guard_7]:beh@general +pt1 = 88860000, guard | pos: -100.58614349365, -0.039244785904884, -260.5544128418 look: -100.96884155273, -0.14579001069069, -261.85510253906 +path_end = loop +on_info = {=surge_started} beh@surge_7 + +[beh@renegade_guard_8]:beh@general +pt1 = 88860000, guard | pos: -117.1109085083, -0.63971590995789, -227.33744812012 look: -117.12147521973, -0.63976293802261, -228.03207397461 +path_end = loop +on_info = {=surge_started} beh@surge_8 + +[beh@renegade_guard_9]:beh@general +pt1 = 88860000, guard | pos: -91.386978149414, -0.74441361427307, -189.25192260742 look: -91.93000793457, -0.81735181808472, -189.68766784668 +path_end = loop +on_info = {=surge_started} beh@surge_9 + +[beh@renegade_guard_10]:beh@general ; +pt1 = 88860000, sit_ass | pos: -94.49543762207, -0.81734263896942, -190.5330657959 look: -94.122360229492, -0.81735837459564, -191.36186218262 +path_end = loop +;on_info = {=surge_started} beh@surge_11 + +[beh@renegade_guard_11]:beh@general +pt1 = 88860000, sit_knee | pos: -95.794860839844, -0.010705962777138, -238.97698974609 look: -94.772285461426, 0.059955149888992, -239.37768554688 +path_end = loop +;on_info = {=surge_started} beh@surge_12 + +[beh@renegade_guard_12]:beh@general +pt1 = 88860000, guard | pos: -91.237419128418, -0.81655019521713, -175.46961975098 look: -91.508850097656, -0.8166156411171, -176.77163696289 +path_end = loop +on_info = {=surge_started} beh@surge_10 + +[beh@surge_1]:beh@surge +pt1 = 88860000, guard | pos: 320.98449707031, -48.234279632568, -25.702243804932 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@renegade_guard_1 + +[beh@surge_2]:beh@surge +pt1 = 88860000, hide | pos: 318.2392578125, -47.560409545898, -25.768634796143 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@renegade_guard_2 + +[beh@surge_3]:beh@surge +pt1 = 88860000, hide | pos: 315.74710083008, -46.943187713623, -25.976787567139 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +on_info = {=surge_complete} beh@renegade_guard_3 + +[beh@surge_4]:beh@surge +pt1 = 88860000, hide | pos: 313.87976074219, -46.531192779541, -25.34361076355 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@renegade_guard_4 + +[beh@surge_5]:beh@surge +pt1 = 88860000, hide | pos: 315.63684082031, -47.395454406738, -22.22802734375 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@renegade_guard_5 + +[beh@surge_6]:beh@surge +pt1 = 88860000, guard | pos: 317.99768066406, -48.041015625, -22.403568267822 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@renegade_guard_6 + +[beh@surge_7]:beh@surge +pt1 = 88860000, guard | pos: -110.69400024414, -0.51395338773727, -215.46388244629 look: -111.84964752197, -0.64238369464874, -216.57768249512 +path_end = loop +on_info = {=surge_complete} beh@renegade_guard_7 + +[beh@surge_8]:beh@surge +pt1 = 88860000, guard | pos: -97.620040893555, -0.81635612249374, -193.13609313965 look: -96.5625, -0.81642097234726, -192.97434997559 +path_end = loop +on_info = {=surge_complete} beh@renegade_guard_8 + +[beh@surge_9]:beh@surge +pt1 = 88860000, guard | pos: -96.888122558594, -0.7479310631752, -187.58062744141 look: -98.054290771484, -0.81622606515884, -188.87913513184 +path_end = loop +on_info = {=surge_complete} beh@renegade_guard_9 + +[beh@surge_10]:beh@surge +pt1 = 88860000, guard | pos: -103.50947570801, -0.81777745485306, -190.06983947754 look: -103.24658203125, -0.8176161646843, -191.63522338867 +path_end = loop +on_info = {=surge_complete} beh@renegade_guard_10 + +;[beh@surge_11]:beh@surge +;pt1 = 88860000, guard | pos: 322.36441040039, -48.175971984863, -27.142284393311 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@renegade_guard_11 + +;[beh@surge_12]:beh@surge +;pt1 = 88860000, guard | pos: 313.71444702148, -46.638042449951, -21.719793319702 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@renegade_guard_12 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_smart_terrain_monsters_logic.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_smart_terrain_monsters_logic.ltx new file mode 100644 index 00000000..00e82348 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_smart_terrain_monsters_logic.ltx @@ -0,0 +1,17 @@ +[logic@red_smart_terrain_monsters_logic] +active = mob_home@2 +suitable = {=target_squad_name(red_6_3_black_chimera)} true +monster_job = true +prior = 200 + +[mob_home@1] +path_home = home +home_min_radius = 10 +home_max_radius = 50 +out_restr = red_smart_terrain_monsters_defence + +[mob_home@2] +path_home = home +home_min_radius = 20 +home_max_radius = 100 +out_restr = red_smart_terrain_monsters_defence diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_stalker_mlr_characters_logic.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_stalker_mlr_characters_logic.ltx new file mode 100644 index 00000000..98f449a5 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/red_stalker_mlr_characters_logic.ltx @@ -0,0 +1,209 @@ +[logic@red_stalker_squad_guard_mlr_1] +active = beh@stalker_guard_1 +suitable = {=target_squad_name(red_6_6_stalker_guard_squad)} true +prior = 200 + +[logic@red_stalker_squad_guard_mlr_2] +active = beh@stalker_guard_2 +suitable = {=target_squad_name(red_6_6_stalker_guard_squad)} true +prior = 200 + +[logic@red_stalker_squad_guard_mlr_3] +active = beh@stalker_guard_3 +suitable = {=target_squad_name(red_6_6_stalker_guard_squad)} true +prior = 200 + +[logic@red_stalker_squad_guard_mlr_4] +active = beh@stalker_guard_4 +suitable = {=target_squad_name(red_6_6_stalker_guard_squad)} true +prior = 200 + +[logic@red_stalker_squad_guard_mlr_5] +active = beh@stalker_guard_5 +suitable = {=target_squad_name(red_6_6_stalker_guard_squad)} true +prior = 200 + +[logic@red_stalker_squad_guard_mlr_6] +active = beh@stalker_guard_6 +suitable = {=target_squad_name(red_6_6_stalker_guard_squad)} true +prior = 200 + +[logic@red_stalker_squad_guard_mlr_7] +active = beh@stalker_guard_7 +suitable = {=target_squad_name(red_stalker_outpost_mlr_squad)} true +prior = 200 + +[logic@red_stalker_squad_guard_mlr_8] +active = beh@stalker_guard_8 +suitable = {=target_squad_name(red_stalker_outpost_mlr_squad)} true +prior = 200 + +[logic@red_stalker_squad_guard_mlr_9] +active = beh@stalker_guard_9 +suitable = {=target_squad_name(red_stalker_outpost_mlr_squad)} true +prior = 200 + +[logic@red_stalker_squad_guard_mlr_10] +active = beh@stalker_guard_10 +suitable = {=target_squad_name(red_stalker_outpost_mlr_squad)} true +prior = 200 + +[logic@red_stalker_squad_guard_mlr_11] +active = beh@stalker_guard_11 +suitable = {=target_squad_name(red_stalker_outpost_mlr_squad)} true +prior = 200 + +[logic@red_stalker_squad_guard_mlr_12] +active = beh@stalker_guard_12 +suitable = {=target_squad_name(red_stalker_outpost_mlr_squad)} true +prior = 200 + +[beh@general] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +wait_anim = guard +walk_anim = patrol +jog_anim = assault +run_anim = assault +delay_anim = guard +combat_ignore_cond = false +combat_ignore_keep_when_attacked = false +gather_items_enabled = false +help_wounded_enabled = true +corpse_detection_enabled = false +invulnerable = false + +[beh@surge] +behavior_state = beh_move +target = waypoint +walk_dist = 100 +jog_dist = 220 +walk_anim = rush +jog_anim = rush +run_anim = rush +gather_items_enabled = false +help_wounded_enabled = false +corpse_detection_enabled = false +invulnerable = {=is_warfare} false, {!actor_true_enemy} true, false + +[beh@stalker_guard_1]:beh@general +pt1 = 88860000, guard | pos: 261.09741210938, -1.278151512146, -307.00775146484 look: 260.11511230469, -1.280345082283, -306.73223876953 +path_end = loop +on_info = {=surge_started} beh@surge_1 + +[beh@stalker_guard_2]:beh@general +pt1 = 88860000, guard | pos: 255.2179107666, -0.97214984893799, -318.86248779297 look: 254.28274536133, -1.0657855272293, -318.44515991211 +path_end = loop +on_info = {=surge_started} beh@surge_2 + +[beh@stalker_guard_3]:beh@general +pt1 = 88860000, guard | pos: 237.01438903809, -0.10033971071243, -283.44702148438 look: 235.68844604492, -0.06385001540184, -283.10388183594 +path_end = loop +on_info = {=surge_started} beh@surge_3 + +[beh@stalker_guard_4]:beh@general +pt1 = 88860000, guard | pos: 190.20082092285, -1.147012591362, -300.14068603516 look: 187.31065368652, -1.1901878118515, -300.67242431641 +path_end = loop +on_info = {=surge_started} beh@surge_4 + +[beh@stalker_guard_5]:beh@general +pt1 = 88860000, guard | pos: 217.60166931152, 0.60896825790405, -264.98028564453 look: 216.57116699219, 0.53197211027145, -265.05932617188 +path_end = loop +on_info = {=surge_started} beh@surge_5 + +[beh@stalker_guard_6]:beh@general +pt1 = 88860000, guard | pos: 187.43298339844, -1.3547611236572, -294.15420532227 look: 186.55555725098, -1.3880641460419, -293.68762207031 +path_end = loop +on_info = {=surge_started} beh@surge_6 + +[beh@stalker_guard_7]:beh@general +pt1 = 88860000, guard | pos: -100.58614349365, -0.039244785904884, -260.5544128418 look: -100.96884155273, -0.14579001069069, -261.85510253906 +path_end = loop +on_info = {=surge_started} beh@surge_7 + +[beh@stalker_guard_8]:beh@general +pt1 = 88860000, guard | pos: -117.1109085083, -0.63971590995789, -227.33744812012 look: -117.12147521973, -0.63976293802261, -228.03207397461 +path_end = loop +on_info = {=surge_started} beh@surge_8 + +[beh@stalker_guard_9]:beh@general +pt1 = 88860000, guard | pos: -91.386978149414, -0.74441361427307, -189.25192260742 look: -91.93000793457, -0.81735181808472, -189.68766784668 +path_end = loop +on_info = {=surge_started} beh@surge_9 + +[beh@stalker_guard_10]:beh@general ; +pt1 = 88860000, sit_ass | pos: -94.49543762207, -0.81734263896942, -190.5330657959 look: -94.122360229492, -0.81735837459564, -191.36186218262 +path_end = loop +;on_info = {=surge_started} beh@surge_11 + +[beh@stalker_guard_11]:beh@general +pt1 = 88860000, sit_knee | pos: -95.794860839844, -0.010705962777138, -238.97698974609 look: -94.772285461426, 0.059955149888992, -239.37768554688 +path_end = loop +;on_info = {=surge_started} beh@surge_12 + +[beh@stalker_guard_12]:beh@general +pt1 = 88860000, guard | pos: -91.237419128418, -0.81655019521713, -175.46961975098 look: -91.508850097656, -0.8166156411171, -176.77163696289 +path_end = loop +on_info = {=surge_started} beh@surge_10 + +[beh@surge_1]:beh@surge +pt1 = 88860000, guard | pos: 320.98449707031, -48.234279632568, -25.702243804932 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@stalker_guard_1 + +[beh@surge_2]:beh@surge +pt1 = 88860000, hide | pos: 318.2392578125, -47.560409545898, -25.768634796143 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@stalker_guard_2 + +[beh@surge_3]:beh@surge +pt1 = 88860000, hide | pos: 315.74710083008, -46.943187713623, -25.976787567139 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +on_info = {=surge_complete} beh@stalker_guard_3 + +[beh@surge_4]:beh@surge +pt1 = 88860000, hide | pos: 313.87976074219, -46.531192779541, -25.34361076355 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@stalker_guard_4 + +[beh@surge_5]:beh@surge +pt1 = 88860000, hide | pos: 315.63684082031, -47.395454406738, -22.22802734375 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@stalker_guard_5 + +[beh@surge_6]:beh@surge +pt1 = 88860000, guard | pos: 317.99768066406, -48.041015625, -22.403568267822 look: 343.57772827148, -51.649772644043, -23.52042388916 +path_end = loop +on_info = {=surge_complete} beh@stalker_guard_6 + +[beh@surge_7]:beh@surge +pt1 = 88860000, guard | pos: -110.69400024414, -0.51395338773727, -215.46388244629 look: -111.84964752197, -0.64238369464874, -216.57768249512 +path_end = loop +on_info = {=surge_complete} beh@stalker_guard_7 + +[beh@surge_8]:beh@surge +pt1 = 88860000, guard | pos: -97.620040893555, -0.81635612249374, -193.13609313965 look: -96.5625, -0.81642097234726, -192.97434997559 +path_end = loop +on_info = {=surge_complete} beh@stalker_guard_8 + +[beh@surge_9]:beh@surge +pt1 = 88860000, guard | pos: -96.888122558594, -0.7479310631752, -187.58062744141 look: -98.054290771484, -0.81622606515884, -188.87913513184 +path_end = loop +on_info = {=surge_complete} beh@stalker_guard_9 + +[beh@surge_10]:beh@surge +pt1 = 88860000, guard | pos: -103.50947570801, -0.81777745485306, -190.06983947754 look: -103.24658203125, -0.8176161646843, -191.63522338867 +path_end = loop +on_info = {=surge_complete} beh@stalker_guard_10 + +;[beh@surge_11]:beh@surge +;pt1 = 88860000, guard | pos: 322.36441040039, -48.175971984863, -27.142284393311 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@stalker_guard_11 + +;[beh@surge_12]:beh@surge +;pt1 = 88860000, guard | pos: 313.71444702148, -46.638042449951, -21.719793319702 look: 343.57772827148, -51.649772644043, -23.52042388916 +;path_end = loop +;on_info = {=surge_complete} beh@stalker_guard_12 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_3_1.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_3_1.ltx new file mode 100644 index 00000000..1f85f088 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_3_1.ltx @@ -0,0 +1,61 @@ +[smart_terrain] +squad_id = 1 +max_population = 1 +respawn_params = respawn@red_smart_terrain_3_1 +respawn_idle = 259200 + +[respawn@red_smart_terrain_3_1] ;-- Type: random stalker spawn +spawn_monolith_squad +spawn_stalker_squad +spawn_csky_squad +spawn_freedom_squad +spawn_ecolog_squad +spawn_duty_squad +spawn_army_squad +spawn_killer_squad +spawn_bandit_squad +spawn_renegade_squad + + +[spawn_monolith_squad] +spawn_squads = monolith_base_red_forest_mlr_squad2 +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad2) -red_monolith_trader_dead} 1, 0 + +[spawn_stalker_squad] +spawn_squads = stalkers_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad2) =actor_week_in_zone(2) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_csky_squad] +spawn_squads = csky_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad2) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_freedom_squad] +spawn_squads = freedom_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad2) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_ecolog_squad] +spawn_squads = ecolog_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad2) =actor_week_in_zone(3) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_duty_squad] +spawn_squads = duty_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad2) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_army_squad] +spawn_squads = army_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad2) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_killer_squad] +spawn_squads = killer_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad2) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_bandit_squad] +spawn_squads = bandit_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad2) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_renegade_squad] +spawn_squads = renegade_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad2) =actor_week_in_zone(4) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_3_2.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_3_2.ltx new file mode 100644 index 00000000..86c0fafe --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_3_2.ltx @@ -0,0 +1,33 @@ +[smart_terrain] +squad_id = 2 +max_population = 2 +respawn_params = respawn@red_smart_terrain_3_2 +respawn_idle = 86400 + +[respawn@red_smart_terrain_3_2] ;--Type: faction {monolith} = outpost +spawn_monolith@advanced +spawn_monolith@veteran + + +[spawn_monolith@advanced] +spawn_squads = monolith_sim_squad_advanced, monolith_sim_squad_advanced +spawn_num = {-bar_deactivate_radar_done -red_monolith_trader_dead} 1, 0 + +[spawn_monolith@veteran] +spawn_squads = monolith_sim_squad_veteran, monolith_sim_squad_advanced +spawn_num = {-bar_deactivate_radar_done -red_monolith_trader_dead} 1, 0 + + +[exclusive] +;red_greh_tech = red_forest\red_greh_tech.ltx +;red_greh_trader = red_forest\red_greh_trader.ltx +monolith_bridge_trader_mlr = red_forest\red_bridge_bandit_smart_skirmish_logic.ltx + +red_smart_terrain_3_2_camp_work_1 = red_forest\red_3_2_smart_logic.ltx +red_smart_terrain_3_2_camp_work_2 = red_forest\red_3_2_smart_logic.ltx +red_smart_terrain_3_2_camp_work_3 = red_forest\red_3_2_smart_logic.ltx +red_smart_terrain_3_2_camp_work_4 = red_forest\red_3_2_smart_logic.ltx +red_smart_terrain_3_2_camp_work_5 = red_forest\red_3_2_smart_logic.ltx +red_smart_terrain_3_2_guard_work_1 = red_forest\red_3_2_smart_logic.ltx +red_smart_terrain_3_2_guard_work_2 = red_forest\red_3_2_smart_logic.ltx +red_smart_terrain_3_2_guard_work_3 = red_forest\red_3_2_smart_logic.ltx \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_3_3.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_3_3.ltx new file mode 100644 index 00000000..088239c4 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_3_3.ltx @@ -0,0 +1,10 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 3 +max_population = 1 +;respawn_params = respawn@red_smart_terrain_3_3 +;respawn_idle = 0 + +;[respawn@red_smart_terrain_3_3] ;-- Type: + + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_4_2.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_4_2.ltx new file mode 100644 index 00000000..fba2760e --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_4_2.ltx @@ -0,0 +1,65 @@ +[smart_terrain] +squad_id = 4 +max_population = 2 +respawn_params = respawn@red_smart_terrain_4_2 +respawn_idle = 259200 + +[respawn@red_smart_terrain_4_2] ;-- Type: random stalker spawn +spawn_monolith_squad +spawn_stalker_squad +spawn_csky_squad +spawn_freedom_squad +spawn_ecolog_squad +spawn_duty_squad +spawn_army_squad +spawn_killer_squad +spawn_bandit_squad +spawn_renegade_squad + + +[spawn_monolith_squad] +spawn_squads = monolith_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad) -red_monolith_trader_dead} 1, 0 + +[spawn_stalker_squad] +spawn_squads = stalkers_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad) =actor_week_in_zone(2) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_csky_squad] +spawn_squads = csky_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_freedom_squad] +spawn_squads = freedom_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_ecolog_squad] +spawn_squads = ecolog_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad) =actor_week_in_zone(3) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_duty_squad] +spawn_squads = duty_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_army_squad] +spawn_squads = army_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_killer_squad] +spawn_squads = killer_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_bandit_squad] +spawn_squads = bandit_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + +[spawn_renegade_squad] +spawn_squads = renegade_base_red_forest_mlr_squad +spawn_num = {!squad_name_exist(stalkers_base_red_forest_mlr_squad) !squad_name_exist(csky_base_red_forest_mlr_squad) !squad_name_exist(freedom_base_red_forest_mlr_squad) !squad_name_exist(ecolog_base_red_forest_mlr_squad) !squad_name_exist(duty_base_red_forest_mlr_squad) !squad_name_exist(army_base_red_forest_mlr_squad) !squad_name_exist(killer_base_red_forest_mlr_squad) !squad_name_exist(bandit_base_red_forest_mlr_squad) !squad_name_exist(renegade_base_red_forest_mlr_squad) !squad_name_exist(monolith_base_red_forest_mlr_squad) =actor_week_in_zone(4) +red_monolith_trader_dead +bar_deactivate_radar_done} 1, 0 + + +[exclusive] +red_smart_terrain_4_2_camp_work_1 = red_forest\red_smart_terrain_4_2_logic.ltx +red_smart_terrain_4_2_camp_work_2 = red_forest\red_smart_terrain_4_2_logic.ltx +red_smart_terrain_4_2_camp_work_4 = red_forest\red_smart_terrain_4_2_logic.ltx +red_smart_terrain_4_2_camp_work_5 = red_forest\red_smart_terrain_4_2_logic.ltx diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_4_3.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_4_3.ltx new file mode 100644 index 00000000..565b9df2 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_4_3.ltx @@ -0,0 +1,10 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 5 +max_population = 1 +;respawn_params = respawn@red_smart_terrain_4_3 +;respawn_idle = 0 + +;[respawn@red_smart_terrain_4_3] ;-- Type: + + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_4_5.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_4_5.ltx new file mode 100644 index 00000000..0b770134 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_4_5.ltx @@ -0,0 +1,10 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 6 +max_population = 1 +;respawn_params = respawn@red_smart_terrain_4_5 +;respawn_idle = 0 + +;[respawn@red_smart_terrain_4_5] + + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_5_5.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_5_5.ltx new file mode 100644 index 00000000..b791e0b8 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_5_5.ltx @@ -0,0 +1,17 @@ +[smart_terrain] ;-- Disabled spawn +squad_id = 7 +max_population = 1 +;respawn_params = respawn@red_smart_terrain_5_5 +;respawn_idle = 0 + +;[respawn@red_smart_terrain_5_5] ;-- Type: + + +[exclusive] +red_smart_terrain_5_5_guard_work_1 = red_forest\red_5_5_smart_logic_redone.ltx +red_smart_terrain_5_5_guard_work_2 = red_forest\red_5_5_smart_logic_redone.ltx +red_smart_terrain_5_5_guard_work_3 = red_forest\red_5_5_smart_logic_redone.ltx +red_smart_terrain_5_5_guard_work_4 = red_forest\red_5_5_smart_logic_redone.ltx +red_smart_terrain_5_5_guard_work_5 = red_forest\red_5_5_smart_logic_redone.ltx + + diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_5_6.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_5_6.ltx new file mode 100644 index 00000000..6a8b5612 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_5_6.ltx @@ -0,0 +1,16 @@ +[smart_terrain] +squad_id = 8 +max_population = 1 +respawn_params = respawn@red_smart_terrain_5_6 +respawn_idle = 86400 + +[respawn@red_smart_terrain_5_6] ;--Type: +spawn_all_hard + + +[spawn_all_hard] ;-- Normal mutants - Rates of groups: ( 1 dogs + 1 pseudodog + 1 cats + 1 psy-dogs ) +spawn_squads = simulation_mix_dogs, simulation_pseudodog, simulation_cat, simulation_psy_dog_squad +spawn_num = 1 + + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_6_3.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_6_3.ltx new file mode 100644 index 00000000..699ee102 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_6_3.ltx @@ -0,0 +1,16 @@ +[smart_terrain] +squad_id = 9 +max_population = 2 +respawn_params = respawn@red_smart_terrain_6_3 +respawn_idle = 345600 + +[respawn@red_smart_terrain_6_3] ;--Type: +spawn_all_hard + + +[spawn_all_hard] ;-- Hard mutants - Rates of groups: ( 1 fracture + 1 karlik + 1 lurker + 1 psy-dog) +spawn_squads = simulation_fracture, simulation_karlik, simulation_lurker_1_2, simulation_psy_dog_squad +spawn_num = 1 + + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_6_6.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_6_6.ltx new file mode 100644 index 00000000..12236f49 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_6_6.ltx @@ -0,0 +1,144 @@ +[smart_terrain] +squad_id = 10 +max_population = 1 +respawn_params = respawn@red_smart_terrain_6_6 +respawn_idle = 172800 + +[respawn@red_smart_terrain_6_6] ;-- Type: player faction spawn +spawn_monolith_special +spawn_monolith_special_2 +spawn_monolith_special_3 +spawn_stalker_special +spawn_csky_special +spawn_ecolog_special +spawn_freedom_special +spawn_killer_special +spawn_dolg_special +spawn_army_special +spawn_bandit_special +spawn_renegade_special +spawn_isg_special + +[spawn_monolith_special] +spawn_squads = red_6_6_monolith_guard_squad +spawn_num = {!squad_name_exist(red_6_6_monolith_guard_squad) -bar_deactivate_radar_done} 1, 0 + +[spawn_monolith_special_2] +spawn_squads = red_6_6_killer_guard_squad +spawn_num = {!squad_name_exist(red_6_6_killer_guard_squad) =actor_community(actor_monolith) +bar_deactivate_radar_done} 1, 0 + +[spawn_monolith_special_3] +spawn_squads = red_6_6_killer_guard_squad +spawn_num = {!squad_name_exist(red_6_6_killer_guard_squad) =actor_community(actor_greh) +bar_deactivate_radar_done} 1, 0 + +[spawn_stalker_special] +spawn_squads = red_6_6_stalker_guard_squad +spawn_num = {!squad_name_exist(red_6_6_stalker_guard_squad) =actor_community(actor_stalker) +bar_deactivate_radar_done} 1, 0 + +[spawn_csky_special] +spawn_squads = red_6_6_csky_guard_squad +spawn_num = {!squad_name_exist(red_6_6_csky_guard_squad) =actor_community(actor_csky) +bar_deactivate_radar_done} 1, 0 + +[spawn_ecolog_special] +spawn_squads = red_6_6_ecolog_guard_squad +spawn_num = {!squad_name_exist(red_6_6_ecolog_guard_squad) =actor_community(actor_ecolog) +bar_deactivate_radar_done} 1, 0 + +[spawn_freedom_special] +spawn_squads = red_6_6_freedom_guard_squad +spawn_num = {!squad_name_exist(red_6_6_freedom_guard_squad) =actor_community(actor_freedom) +bar_deactivate_radar_done} 1, 0 + +[spawn_killer_special] +spawn_squads = red_6_6_killer_guard_squad +spawn_num = {!squad_name_exist(red_6_6_killer_guard_squad) =actor_community(actor_killer) +bar_deactivate_radar_done} 1, 0 + +[spawn_dolg_special] +spawn_squads = red_6_6_duty_guard_squad +spawn_num = {!squad_name_exist(red_6_6_duty_guard_squad) =actor_community(actor_dolg) +bar_deactivate_radar_done} 1, 0 + +[spawn_army_special] +spawn_squads = red_6_6_army_guard_squad +spawn_num = {!squad_name_exist(red_6_6_army_guard_squad) =actor_community(actor_army) +bar_deactivate_radar_done} 1, 0 + +[spawn_bandit_special] +spawn_squads = red_6_6_bandit_guard_squad +spawn_num = {!squad_name_exist(red_6_6_bandit_guard_squad) =actor_community(actor_bandit) +bar_deactivate_radar_done} 1, 0 + +[spawn_renegade_special] +spawn_squads = red_6_6_renegade_guard_squad +spawn_num = {!squad_name_exist(red_6_6_renegade_guard_squad) =actor_community(actor_renegade) +bar_deactivate_radar_done} 1, 0 + +[spawn_isg_special] +spawn_squads = red_6_6_killer_guard_squad +spawn_num = {!squad_name_exist(red_6_6_killer_guard_squad) =actor_community(actor_isg) +bar_deactivate_radar_done} 1, 0 + + +[exclusive] +red_monolith_squad_guard_mlr_1 = red_forest\red_monolith_mlr_characters_logic.ltx +red_monolith_squad_guard_mlr_2 = red_forest\red_monolith_mlr_characters_logic.ltx +red_monolith_squad_guard_mlr_3 = red_forest\red_monolith_mlr_characters_logic.ltx +red_monolith_squad_guard_mlr_4 = red_forest\red_monolith_mlr_characters_logic.ltx +red_monolith_squad_guard_mlr_5 = red_forest\red_monolith_mlr_characters_logic.ltx +red_monolith_squad_guard_mlr_6 = red_forest\red_monolith_mlr_characters_logic.ltx + +red_stalker_squad_guard_mlr_1 = red_forest\red_stalker_mlr_characters_logic.ltx +red_stalker_squad_guard_mlr_2 = red_forest\red_stalker_mlr_characters_logic.ltx +red_stalker_squad_guard_mlr_3 = red_forest\red_stalker_mlr_characters_logic.ltx +red_stalker_squad_guard_mlr_4 = red_forest\red_stalker_mlr_characters_logic.ltx +red_stalker_squad_guard_mlr_5 = red_forest\red_stalker_mlr_characters_logic.ltx +red_stalker_squad_guard_mlr_6 = red_forest\red_stalker_mlr_characters_logic.ltx + +red_csky_squad_guard_mlr_1 = red_forest\red_csky_mlr_characters_logic.ltx +red_csky_squad_guard_mlr_2 = red_forest\red_csky_mlr_characters_logic.ltx +red_csky_squad_guard_mlr_3 = red_forest\red_csky_mlr_characters_logic.ltx +red_csky_squad_guard_mlr_4 = red_forest\red_csky_mlr_characters_logic.ltx +red_csky_squad_guard_mlr_5 = red_forest\red_csky_mlr_characters_logic.ltx +red_csky_squad_guard_mlr_6 = red_forest\red_csky_mlr_characters_logic.ltx + +red_ecolog_squad_guard_mlr_1 = red_forest\red_duty_mlr_characters_logic.ltx +red_ecolog_squad_guard_mlr_2 = red_forest\red_duty_mlr_characters_logic.ltx +red_ecolog_squad_guard_mlr_3 = red_forest\red_duty_mlr_characters_logic.ltx +red_ecolog_squad_guard_mlr_4 = red_forest\red_duty_mlr_characters_logic.ltx +red_ecolog_squad_guard_mlr_5 = red_forest\red_duty_mlr_characters_logic.ltx +red_ecolog_squad_guard_mlr_6 = red_forest\red_duty_mlr_characters_logic.ltx + +red_freedom_squad_guard_mlr_1 = red_forest\red_freedom_mlr_characters_logic.ltx +red_freedom_squad_guard_mlr_2 = red_forest\red_freedom_mlr_characters_logic.ltx +red_freedom_squad_guard_mlr_3 = red_forest\red_freedom_mlr_characters_logic.ltx +red_freedom_squad_guard_mlr_4 = red_forest\red_freedom_mlr_characters_logic.ltx +red_freedom_squad_guard_mlr_5 = red_forest\red_freedom_mlr_characters_logic.ltx +red_freedom_squad_guard_mlr_6 = red_forest\red_freedom_mlr_characters_logic.ltx + +red_duty_squad_guard_mlr_1 = red_forest\red_duty_mlr_characters_logic.ltx +red_duty_squad_guard_mlr_2 = red_forest\red_duty_mlr_characters_logic.ltx +red_duty_squad_guard_mlr_3 = red_forest\red_duty_mlr_characters_logic.ltx +red_duty_squad_guard_mlr_4 = red_forest\red_duty_mlr_characters_logic.ltx +red_duty_squad_guard_mlr_5 = red_forest\red_duty_mlr_characters_logic.ltx +red_duty_squad_guard_mlr_6 = red_forest\red_duty_mlr_characters_logic.ltx + +red_army_squad_guard_mlr_1 = red_forest\red_army_mlr_characters_logic.ltx +red_army_squad_guard_mlr_2 = red_forest\red_army_mlr_characters_logic.ltx +red_army_squad_guard_mlr_3 = red_forest\red_army_mlr_characters_logic.ltx +red_army_squad_guard_mlr_4 = red_forest\red_army_mlr_characters_logic.ltx +red_army_squad_guard_mlr_5 = red_forest\red_army_mlr_characters_logic.ltx +red_army_squad_guard_mlr_6 = red_forest\red_army_mlr_characters_logic.ltx + +red_killer_squad_guard_mlr_1 = red_forest\red_killer_mlr_characters_logic.ltx +red_killer_squad_guard_mlr_2 = red_forest\red_killer_mlr_characters_logic.ltx +red_killer_squad_guard_mlr_3 = red_forest\red_killer_mlr_characters_logic.ltx +red_killer_squad_guard_mlr_4 = red_forest\red_killer_mlr_characters_logic.ltx +red_killer_squad_guard_mlr_5 = red_forest\red_killer_mlr_characters_logic.ltx +red_killer_squad_guard_mlr_6 = red_forest\red_killer_mlr_characters_logic.ltx + +red_bandit_squad_guard_mlr_1 = red_forest\red_bandit_mlr_characters_logic.ltx +red_bandit_squad_guard_mlr_2 = red_forest\red_bandit_mlr_characters_logic.ltx +red_bandit_squad_guard_mlr_3 = red_forest\red_bandit_mlr_characters_logic.ltx +red_bandit_squad_guard_mlr_4 = red_forest\red_bandit_mlr_characters_logic.ltx +red_bandit_squad_guard_mlr_5 = red_forest\red_bandit_mlr_characters_logic.ltx +red_bandit_squad_guard_mlr_6 = red_forest\red_bandit_mlr_characters_logic.ltx + +red_renegade_squad_guard_mlr_1 = red_forest\red_renegade_mlr_characters_logic.ltx +red_renegade_squad_guard_mlr_2 = red_forest\red_renegade_mlr_characters_logic.ltx +red_renegade_squad_guard_mlr_3 = red_forest\red_renegade_mlr_characters_logic.ltx +red_renegade_squad_guard_mlr_4 = red_forest\red_renegade_mlr_characters_logic.ltx +red_renegade_squad_guard_mlr_5 = red_forest\red_renegade_mlr_characters_logic.ltx +red_renegade_squad_guard_mlr_6 = red_forest\red_renegade_mlr_characters_logic.ltx \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_monsters.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_monsters.ltx new file mode 100644 index 00000000..072aefff --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_monsters.ltx @@ -0,0 +1,17 @@ +[smart_terrain] +squad_id = 12 +max_population = 1 +respawn_params = respawn@red_smart_terrain_monsters +respawn_idle = 259200 + +[respawn@red_smart_terrain_monsters] +spawn_mix + + +[spawn_mix] ;-- Hard mutants - Rates of groups: ( 1 lurker + 2 psy dogs + 1 chimera ) +spawn_squads = simulation_lurker_black, simulation_psy_dog, simulation_psy_dog_squad, red_6_3_black_chimera +spawn_num = {!squad_name_exist(red_6_3_black_chimera)} 1, 0 + + +[exclusive] +red_smart_terrain_monsters_logic = red_forest\red_smart_terrain_monsters_logic.ltx \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_monsters_2.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_monsters_2.ltx new file mode 100644 index 00000000..8806c72d --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_monsters_2.ltx @@ -0,0 +1,21 @@ +[smart_terrain] +squad_id = 13 +max_population = 1 +respawn_params = respawn@red_smart_terrain_monsters_2 +respawn_idle = 172800 + +[respawn@red_smart_terrain_monsters_2] ;-- Type: +spawn_all_normal +spawn_zombie_mix + + +[spawn_all_normal] ;-- Normal mutants - Rates of groups: ( 1 tushkano + 2 dogs + 2 cats + 3 fleshes/boars ) +spawn_squads = simulation_tushkano, simulation_dog, simulation_mix_dogs, simulation_cat, simulation_cat, simulation_mix_boar_flesh, simulation_flesh, simulation_boar +spawn_num = {+bar_deactivate_radar_done} 1, 0 + +[spawn_zombie_mix] ;-- Normal mutants - Rates of groups: ( 1 snork + 1 fracture + 1 zombied + 1 zombie ) +spawn_squads = simulation_snork_2_5, simulation_fracture, simulation_zombie_blind_3zomb, simulation_zombie_blind_3zomb_civ +spawn_num = {+bar_deactivate_radar_done} 0, 1 + + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_monsters_3.ltx b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_monsters_3.ltx new file mode 100644 index 00000000..413c95c5 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/configs/scripts/red_forest/smart/red_smart_terrain_monsters_3.ltx @@ -0,0 +1,16 @@ +[smart_terrain] +squad_id = 14 +max_population = 1 +respawn_params = respawn@red_smart_terrain_monsters_3 +respawn_idle = 86400 + +[respawn@red_smart_terrain_monsters_3] ;--Type: +spawn_zombie + + +[spawn_zombie] ;-- Weak\normal mutants - Rates of groups: ( 2 zombie ) +spawn_squads = simulation_zombie_3_6, simulation_mix_zombie +spawn_num = {+bar_deactivate_radar_done} 0, 1 + + +;[exclusive] \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/scripts/extended_bs_psy_field_redone.script b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/scripts/extended_bs_psy_field_redone.script new file mode 100644 index 00000000..dec9eaed --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/scripts/extended_bs_psy_field_redone.script @@ -0,0 +1,56 @@ + +local psy_extra_levels = { + ["l10_radar"] = true, + ["l10_red_forest"] = true, + ["l11_pripyat"] = true, +} + +local psy_immune_factions = { + ["monolith"] = true, + ["greh"] = true, + ["zombied"] = true, +} + +local function actor_on_first_update() + local lvl_name = level.name() + local faction = get_actor_true_community() + + psy_damage = 0 + if (psy_immune_factions[faction] or has_alife_info("bar_deactivate_radar_done") or has_alife_info("living_legend_psy_helmet")) then + return + end + + if (psy_extra_levels[lvl_name]) then + actor_menu.set_msg(1, game.translate_string("st_psy_danger"),7) + psy_damage = 1 + end +end + + +trigger = 0 +delay = 8500 +function actor_on_update() + tg = time_global() + + if trigger == 0 then + redone_delay = tg + delay + trigger = 1 + end + + if (trigger == 1 and tg > redone_delay and psy_damage == 1) then + damage = 0.08 + local m_data = alife_storage_manager.get_state() + arszi_psy.save_state(m_data) + local psy_table = m_data.psy_table + psy_table.actor_psy_health = psy_table.actor_psy_health - damage + actor_menu.set_msg(1, game.translate_string("st_psy_danger"),5) + trigger = 0 + end +end + + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) + RegisterScriptCallback("actor_on_update",actor_on_update) +end + diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/scripts/lc_red_space_restrictor_redone.script b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/scripts/lc_red_space_restrictor_redone.script new file mode 100644 index 00000000..061e42de --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/scripts/lc_red_space_restrictor_redone.script @@ -0,0 +1,18 @@ + +local to_del = { + ["red_space_restrictor_to_limansk"] = true, + ["lim_space_restrictor_to_red_forest"] = true, +} + +function actor_on_first_update() + for i = 1, 65534 do + local se_obj = alife_object(i) + if se_obj and se_obj.name and se_obj:name() and to_del[se_obj:name()] then + alife_release(se_obj) + end + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update", actor_on_first_update) +end \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/scripts/lc_red_transition_redone.script b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/scripts/lc_red_transition_redone.script new file mode 100644 index 00000000..134e7668 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/scripts/lc_red_transition_redone.script @@ -0,0 +1,72 @@ +function actor_on_first_update() + local lc_pool = { + ["lc_red01_limansk01"] = { + pos = vector():set(-205,0,-332), + smart = "red_bridge_bandit_smart_skirmish", + spot = "level_changer_left", + hint = "space_restrictor_to_limansk_desc", + }, + ["lc_limansk01_red01"] = { + pos = vector():set(13,0,-388), + smart = "lim_smart_terrain_1", + spot = "level_changer_right_down", + hint = "mil_space_restrictor_to_red_1_descr", + } + } + + for sec,v in pairs(lc_pool) do + local se = get_story_se_item(sec) + if not (se) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + se = alife():create(sec,pos,vid,gid) + end + + if (se.position:distance_to_sqr(v.pos) > 0.1) then + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + TeleportObject(se.id,pos,vid,gid) + end + + if (level.map_has_object_spot(se.id,v.spot) == 0) then + level.map_add_object_spot_ser(se.id,v.spot,game.translate_string(v.hint)) + end + end +end + +function check_name(actor,obj,p) + return p and p[1] and obj and string.find(obj:name(),p[1]) and true +end + +function teleport_actor(actor,obj) + local p = { + ["lc_red01_limansk01"] = { + pos = vector():set(7.2615,-0.009,-380.5515), + w_p = vector():set(-201.9342,0.1365,-320.1596), + smart = "lim_smart_terrain_1", + }, + ["lc_limansk01_red01"] = { + pos = vector():set(-201.9342,0.1365,-320.1596), + w_p = vector():set(7.2615,-0.009,-380.5515), + smart = "red_bridge_bandit_smart_skirmish", + }, + } + + local sec = obj and obj:section() + local v = sec and p[sec] + + if (v and v.w_p and v.pos and v.smart) then + db.actor:set_actor_position(v.w_p) + + local pos = v.pos + local vid = level.vertex_id(pos) + local gid = SIMBOARD.smarts_by_names[v.smart].m_game_vertex_id + ChangeLevel(pos,vid,gid,VEC_ZERO,true) + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/scripts/xr_dynamic_object_redone.script b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/scripts/xr_dynamic_object_redone.script new file mode 100644 index 00000000..5eaa5175 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/scripts/xr_dynamic_object_redone.script @@ -0,0 +1,119 @@ + +local dynamic_object_storage = {} + +function dynamic_object(actor,obj,p) + local ini = p and p[1] and ini_file(p[1]) + local smart_name = ini and ini:r_string_ex("dynamic_object_configs","smart") + local smart = smart_name and SIMBOARD.smarts_by_names[smart_name] + + if not (smart) then + return + end + + if not (dynamic_object_storage[smart_name]) then + dynamic_object_storage[smart_name] = {} + end + + local lst = dynamic_object_storage[smart_name] + + local n = ini:line_count("exclusive") + for k=0,n-1 do + local r,i,v = ini:r_line("exclusive",k) + local s = get_object_config(v) + if (i and s) then + local idx = lst[i] + local sec = s.sec + local pos = s.pos + local ang = s.ang + local con = s.con and ini:r_string_to_condlist("dynamic_object_configs",s.con,"true") + if (xr_logic.pick_section_from_condlist(db.actor,obj,con) == "true") then + local se = idx and tonumber(idx.id) and alife():object(tonumber(idx.id)) + if (se and string.find(se:name(),sec)) then + -- Correct. Update object. + se.position = vector():set(pos) + se.angle = vector():set(ang) + else + -- Wrong object or doesn't exit. Try to delete the old object and create a new one. + if (se and idx.sec and string.find(se:name(),idx.sec)) then + alife_release(se) + end + local new_se = alife():create(sec,pos,smart.m_level_vertex_id,smart.m_game_vertex_id) + if (new_se) then + new_se.angle = vector():set(ang) + lst[i] = {id = tonumber(new_se.id),sec = tostring(sec)} + --printf("GhenTuong: dynamic_object create %s [%s]",new_se.id,new_se:name()) + end + end + else + if (idx) then + local se = tonumber(idx.id) and alife():object(tonumber(idx.id)) + if (se and idx.sec and string.find(se:name(),idx.sec)) then + --printf("GhenTuong: dynamic_object delete %s [%s]",se.id,se:name()) + alife_release(se) + end + lst[i] = nil + end + end + end + end + + for i,idx in pairs(lst) do + if (i and idx) then + if not (ini:line_exist("exclusive",i)) then + local se = idx and tonumber(idx.id) and alife():object(tonumber(idx.id)) + if (se and idx.sec and string.find(se:name(),idx.sec)) then + --printf("GhenTuong: dynamic_object delete %s [%s]",se.id,se:name()) + alife_release(se) + end + lst[i] = nil + end + else + lst[i] = nil + end + end +end +--[[ +if not (ini:section_exist("exclusive") and ini:line_exist("exclusive",i)) then + return +end + +local v = ini:r_string_ex("exclusive",i) +--]] + +function get_object_config(v) + local str = v and str_explode(v,"|") + local sec = str[1] and (str[1] ~= "") and (str[1] ~= "nil") and tostring(str[1]) + + local tp = str[2] and str_explode(str[2],",") or nil + local td = str[3] and str_explode(str[3],",") or nil + local pox = tp and tonumber(tp[1]) + local poy = tp and tonumber(tp[2]) + local poz = tp and tonumber(tp[3]) + local rox = td and tonumber(td[1]) and math.rad(tonumber(td[1])) + local roy = td and tonumber(td[2]) and math.rad(tonumber(td[2])) + local roz = td and tonumber(td[3]) and math.rad(tonumber(td[3])) + local con = str[4] or "nil" + + if not (pox and poy and poz and rox and roy and roz and con) then + return + end + return {sec = sec, pos = vector():set(pox,poy,poz), ang = vector():set(rox,roy,roz), con = con} +end + +function get_object(smart_name,index) + local idx = dynamic_object_storage_loaded and dynamic_object_storage[smart_name] and dynamic_object_storage[smart_name][index] + return idx and {id = tonumber(idx.id),sec = tostring(idx.sec)} +end + +function save_state(m_data) + m_data.xr_dynamic_object_storage = dynamic_object_storage +end + +function load_state(m_data) + dynamic_object_storage = m_data.xr_dynamic_object_storage or {} +end + +function on_game_start() + RegisterScriptCallback("save_state",save_state) + RegisterScriptCallback("load_state",load_state) +end \ No newline at end of file diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_1.ogg b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_1.ogg new file mode 100644 index 00000000..a3355695 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:54aa07b8348851e9d15f280b7e58019aa9b82aad074bb31467bacd44605c5e69 +size 81611 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_12.ogg b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_12.ogg new file mode 100644 index 00000000..386875e0 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_12.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cf25f65ecd90554171bc3e3b750bd67c96fbeab58540c83371dbc1a166994b1a +size 105165 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_13.ogg b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_13.ogg new file mode 100644 index 00000000..b5146ec8 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_13.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a1db0e603a6e73e4943cd22328b6361e9555e23f94285c160fcacffab6e78eef +size 49296 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_14.ogg b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_14.ogg new file mode 100644 index 00000000..0a7920de --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_14.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73b675c545fbe8fd7100f4e830b10bc0c0d1425febac4116fd215195c991a728 +size 105484 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_2.ogg b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_2.ogg new file mode 100644 index 00000000..0ce38983 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0f055771c8c7a1e2a5e984fce4bd6545c0717ddd5b816ae89b2e07b3b6f8562 +size 64408 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_3.ogg b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_3.ogg new file mode 100644 index 00000000..179ea570 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_3.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3092a8287d6d2bf14a568c87ee011ce5cbd6f97188d88b9356752944f8c5a87 +size 91163 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_4.ogg b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_4.ogg new file mode 100644 index 00000000..dd660923 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_4.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41d14c22f2917230363aed16cafa950b3f6b6ecf972cdbb4e93676ce5ea5af91 +size 110649 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_5.ogg b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_5.ogg new file mode 100644 index 00000000..32eb2eb8 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_5.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f88132369273fef5e4221099377ebb216f0249b09a06a153d0eb88df2a336e2a +size 248992 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_6.ogg b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_6.ogg new file mode 100644 index 00000000..b41de72a --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_6.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f2e8644ea31b322c4d96c908a8449886c903b7870cbe2fef6a769514646d6ce +size 267986 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_7.ogg b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_7.ogg new file mode 100644 index 00000000..b0656f19 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_7.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7056b23f9f074309e66daf9950920b8431756f1cdb2b65cfd940a66cc1b7f69c +size 184533 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_8.ogg b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_8.ogg new file mode 100644 index 00000000..ccd60e25 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_8.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a97a446ee3c32734b5d06cad19e43afbf9061c367a9705e5311fd6592d9b3f47 +size 313488 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_9.ogg b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_9.ogg new file mode 100644 index 00000000..e795bcb6 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/ambient/background/red_forest/gunfire_red_9.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0438a1295897912955e7da0fc0e728c58e0996c2a9789d4055c1af4410ff809d +size 161786 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/characters_voice/scenario/red_forest/monolith_radio_1.ogg b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/characters_voice/scenario/red_forest/monolith_radio_1.ogg new file mode 100644 index 00000000..c04b9d49 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/characters_voice/scenario/red_forest/monolith_radio_1.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:830095384299a61c7913aacadeca389e4ed42dff06b85cba943281e3d0db485e +size 1957936 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/characters_voice/scenario/red_forest/monolith_radio_2.ogg b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/characters_voice/scenario/red_forest/monolith_radio_2.ogg new file mode 100644 index 00000000..c04b9d49 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/gamedata/sounds/characters_voice/scenario/red_forest/monolith_radio_2.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:830095384299a61c7913aacadeca389e4ed42dff06b85cba943281e3d0db485e +size 1957936 diff --git a/mods/Redone Radar and Red Forest - Duty Expansion Patch/meta.ini b/mods/Redone Radar and Red Forest - Duty Expansion Patch/meta.ini new file mode 100644 index 00000000..d43cdbb1 --- /dev/null +++ b/mods/Redone Radar and Red Forest - Duty Expansion Patch/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2024.3.31.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=Redone_Red_Forest_Duty_patch_0.9.1.5updated.zip +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=false +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2024-03-31T08:50:22Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/gamedata/configs/ui/soulslike_ui_sleep_dialog.xml b/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/gamedata/configs/ui/soulslike_ui_sleep_dialog.xml new file mode 100644 index 00000000..68be5f20 --- /dev/null +++ b/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/gamedata/configs/ui/soulslike_ui_sleep_dialog.xml @@ -0,0 +1,7 @@ + + + button_spawn + set_spawn_button + ui_button_ordinary + + \ No newline at end of file diff --git a/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/gamedata/configs/ui/soulslike_ui_sleep_dialog_16.xml b/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/gamedata/configs/ui/soulslike_ui_sleep_dialog_16.xml new file mode 100644 index 00000000..7469f8a8 --- /dev/null +++ b/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/gamedata/configs/ui/soulslike_ui_sleep_dialog_16.xml @@ -0,0 +1,7 @@ + + + button_spawn + set_spawn_button + ui_button_ordinary + + \ No newline at end of file diff --git a/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/gamedata/configs/ui/soulslike_ui_sleep_dialog_21.xml b/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/gamedata/configs/ui/soulslike_ui_sleep_dialog_21.xml new file mode 100644 index 00000000..39d6dbcb --- /dev/null +++ b/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/gamedata/configs/ui/soulslike_ui_sleep_dialog_21.xml @@ -0,0 +1,7 @@ + + + button_spawn + set_spawn_button + ui_button_ordinary + + \ No newline at end of file diff --git a/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/gamedata/scripts/soulslike_sleep_dialog.script b/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/gamedata/scripts/soulslike_sleep_dialog.script new file mode 100644 index 00000000..f81cb926 --- /dev/null +++ b/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/gamedata/scripts/soulslike_sleep_dialog.script @@ -0,0 +1,114 @@ +local _InitControls = ui_sleep_dialog.UISleep.InitControls +local _InitCallbacks = ui_sleep_dialog.UISleep.InitCallbacks +local _TestAndShow = ui_sleep_dialog.UISleep.TestAndShow +local _OnButtonSleep = ui_sleep_dialog.UISleep.OnButtonSleep + +function ui_sleep_dialog.UISleep.OnButtonSleep(self) + if not soulslike.IsSoulslikeMode() then + _OnButtonSleep(self) + return + end + local bleeding = db.actor.bleeding > 0 + local radiation = db.actor.radiation > 0 + + -- Prevent sleep if bleeding and/or iradiated. + if (bleeding or radiation) then + if (bleeding and radiation) then + actor_menu.set_msg(1, game.translate_string("st_sleep_bleeding_irradiated"),5) + elseif (bleeding) then + actor_menu.set_msg(1, game.translate_string("st_sleep_bleeding"),4) + elseif (radiation) then + actor_menu.set_msg(1, game.translate_string("st_sleep_irradiated"),4) + end + disable_info("sleep_active") + if self:IsShown() then + self:HideDialog() + Unregister_UI("UISleep") + end + return + end + + -- Check if actor is inside a safe zone + local actor_hide = GetEvent("current_safe_cover") and true or false + + -- Check if actor is inside a tent + if (not actor_hide) then + actor_hide = item_tent.get_nearby_tent(1.5) + end + + -- If all is no, dont sleep + if (not actor_hide) then + actor_menu.set_msg(1, game.translate_string("st_cant_sleep_find_shelter_mlr"),4) + disable_info("sleep_active") + if self:IsShown() then + self:HideDialog() + Unregister_UI("UISleep") + end + return + end + + _OnButtonSleep(self) +end + +function ui_sleep_dialog.UISleep.TestAndShow(self, force) + if not soulslike.IsSoulslikeMode() then + _TestAndShow(self, force) + return + end + + if force then + _TestAndShow(self, force) + else + -- Detour and show the UI so we can let the user + -- set their spawn point. Move the sleep check code + -- to the Sleep button click instead + self:Initialize() + self:ShowDialog(true) + Register_UI("UISleep","ui_sleep_dialog") + end +end + +function ui_sleep_dialog.UISleep.InitControls(self) + _InitControls(self) + + if not soulslike.IsSoulslikeMode() then + return + end + + local xml = CScriptXmlInit() + xml:ParseFile("soulslike_ui_sleep_dialog.xml") + + local function move(ctrl, deltaX, deltaY) + local pos = ctrl:GetWndPos() + ctrl:SetWndPos(vector2():set( pos.x + deltaX ,pos.y + deltaY )) + end + + -- Edited by Sota + --move(self.btn_sleep, 52, 0) + --move(self.btn_cancel, 52, 0) + local ratio = utils_xml.screen_ratio() + move(self.btn_sleep, 70.5 * ratio, 0) + move(self.btn_cancel, 70.5 * ratio, 0) + + self.btn_set_spawn = xml:Init3tButton("btn_set_spawn", self.back) + self:Register(self.btn_set_spawn, "btn_set_spawn") + + -- Edited by Sota + --if not utils_xml.is_widescreen() then + -- move(self.btn_set_spawn, 40, 0) + --end +end + +function ui_sleep_dialog.UISleep.InitCallbacks(self) + _InitCallbacks(self) + + if not soulslike.IsSoulslikeMode() then + return + end + + self:AddCallback("btn_set_spawn", ui_events.BUTTON_CLICKED, self.OnButtonSetSpawn, self) +end + +function ui_sleep_dialog.UISleep:OnButtonSetSpawn() + soulslike.set_spawn(true); +end \ No newline at end of file diff --git a/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/meta.ini b/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/meta.ini new file mode 100644 index 00000000..14e4f0b2 --- /dev/null +++ b/mods/UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2024.4.1.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=Soulslike_Sleep_Btn_Fix.zip +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=false +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2024-04-01T04:59:38Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/UI Rework G.A.M.M.A. Style/gamedata/scripts/souslike_gamemode_injector_mcm.script b/mods/UI Rework G.A.M.M.A. Style/gamedata/scripts/souslike_gamemode_injector_mcm.script new file mode 100644 index 00000000..de4623cc --- /dev/null +++ b/mods/UI Rework G.A.M.M.A. Style/gamedata/scripts/souslike_gamemode_injector_mcm.script @@ -0,0 +1,142 @@ +local _Main_Controls = ui_mm_faction_select.UINewGame.Main_Controls +local _Main_CallBacks = ui_mm_faction_select.UINewGame.Main_CallBacks +local _OnStartGame = ui_mm_faction_select.UINewGame.OnStartGame +local _OnCheckSetAzazel = ui_mm_faction_select.UINewGame.OnCheckSetAzazel + +function ui_mm_faction_select.UINewGame.Main_Controls(self, rand) + _Main_Controls(self, rand) +--[[ + local function move(ctrl, deltaX, deltaY) + local pos = ctrl:GetWndPos() + ctrl:SetWndPos(vector2():set( pos.x + deltaX ,pos.y + deltaY )) + end + + if efp_utils_mcm then + move(self.ck_azazel_mode_cap, 0, -10) + move(self.ck_azazel_mode, 0, -10) + else + move(self.ck_story_cap, 0, -10) + move(self.ck_story, 0, -10) + move(self.ck_azazel_mode_cap, 0, -15) + move(self.ck_azazel_mode, 0, -15) + move(self.ck_survival_cap, 0, -20) + move(self.ck_survival, 0, -20) + end +--]] + local xml = CScriptXmlInit() + xml:ParseFile ("soulslike_ui_mm_gamemode.xml") + + self.ck_soulslike_mode_cap = xml:InitStatic("main_dialog:options:cap_check_soulslike_mode",self.templ_options) + self.ck_soulslike_mode = xml:InitCheck("main_dialog:options:check_soulslike_mode", self.templ_options) + self:Register(self.ck_soulslike_mode,"check_soulslike_mode") +--[[ + if efp_utils_mcm then + move(self.ck_soulslike_mode_cap, 0, 65) + move(self.ck_soulslike_mode, 0, 65) + end +--]] + self.ck_states["ck_soulslike_mode"] = false +end + +function ui_mm_faction_select.UINewGame.Main_CallBacks(self) + _Main_CallBacks(self) + + self:AddCallback("check_soulslike_mode", ui_events.BUTTON_CLICKED, self.OnCheckSetSoulslike, self) + self:AddCallback("check_hardcore", ui_events.BUTTON_CLICKED, self.OnCheckHardcore, self) +end + + +function ui_mm_faction_select.UINewGame.OnStartGame(self) + if (not self.access) then + return + end + + local character_name = self.character_name:GetText() + + if axr_main and axr_main.config and character_name and character_name ~= "" then + local is_soulslike_mode = self.ck_soulslike_mode and self.ck_soulslike_mode:GetCheck() and true or nil + printf('[Soulslike] OnStartGame:is_soulslike_mode='..tostring(is_soulslike_mode)) + axr_main.config:w_value("character_creation", "new_game_soulslike_mode", is_soulslike_mode) + axr_main.config:save() + end + + _OnStartGame(self) +end + +function ui_mm_faction_select.UINewGame.OnCheckSetAzazel(self) + _OnCheckSetAzazel(self) + + if (not self.access) then + return + end + + self.ck_soulslike_mode:SetCheck(false) + self.ck_states["ck_soulslike_mode"] = false +end + +function ui_mm_faction_select.UINewGame:OnCheckHardcore() + if (not self.access) then + return + end + + self.ck_soulslike_mode:SetCheck(false) + self.ck_states["ck_soulslike_mode"] = false +end + +function ui_mm_faction_select.UINewGame:OnCheckSetSoulslike() + if (not self.access) then + return + end + + self.ck_azazel_mode:SetCheck(false) + self.ck_states["ck_azazel_mode"] = false + + self.ck_hardcore:SetCheck(false) + self.ck_states["ck_hardcore"] = false + + self:LoadMap() +end + +local function on_game_load(binder) + local config = axr_main.config + + if not (config) then + printf('[Soulslike] on_game_load:no config') + return + end + + local need_save + + -- Gameplay Options + if (USE_MARSHAL) then + if (config:r_value("character_creation","new_game_soulslike_mode", 1) == true) then + printf('[Soulslike] on_game_load:enable_soulslike_mode=true') + alife_storage_manager.get_state().enable_soulslike_mode = true + config:w_value("character_creation","new_game_soulslike_mode") + need_save = true + end + end + + if (need_save) then + config:save() + end +end + +local function actor_on_first_update() + if not soulslike.IsSoulslikeMode() then + return + end + + local state = alife_storage_manager.get_state() + + if not state.soulslike_mode_initial_spawn_set and level.name() ~= 'fake_start' then + printf('Initial spawn point set to '..level.name()) + soulslike.set_spawn(false) + state.soulslike_mode_initial_spawn_set = true + end +end + +function on_game_start() + RegisterScriptCallback("on_game_load",on_game_load) + RegisterScriptCallback("actor_on_first_update", actor_on_first_update) +end \ No newline at end of file diff --git a/mods/UI Rework G.A.M.M.A. Style/gamedata/textures/ui/ui_body_health_system.dds b/mods/UI Rework G.A.M.M.A. Style/gamedata/textures/ui/ui_body_health_system.dds deleted file mode 100644 index e91de099..00000000 --- a/mods/UI Rework G.A.M.M.A. Style/gamedata/textures/ui/ui_body_health_system.dds +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:370af16a27b06e5994a28a6fdcf6f402601dfc4fe41c4d9c4704d7d7140260d3 -size 262272 diff --git a/mods/UI Rework G.A.M.M.A. Style/gamedata/textures/ui/ui_body_health_system3.dds b/mods/UI Rework G.A.M.M.A. Style/gamedata/textures/ui/ui_body_health_system3.dds deleted file mode 100644 index 4ee0ba7b..00000000 --- a/mods/UI Rework G.A.M.M.A. Style/gamedata/textures/ui/ui_body_health_system3.dds +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3b959cec60d1b436a134b9bbcde7821faa26c7873c9932afb0a55a7adab0425e -size 1048704 diff --git a/mods/Yet Another Campfire Saving/gamedata/configs/text/eng/ish_campfire.xml b/mods/Yet Another Campfire Saving/gamedata/configs/text/eng/ish_campfire.xml new file mode 100644 index 00000000..dc6422f4 --- /dev/null +++ b/mods/Yet Another Campfire Saving/gamedata/configs/text/eng/ish_campfire.xml @@ -0,0 +1,70 @@ + + + + You can only %s near campfires, baby. + + + You can only %s near campfires and in friendly bases. + + + The campfire must be lit before you can %s. + + + YACS + + + Nope + + + Only Friendly + + + Friendly & Neutral + + + Yet Another Campfire Saving + + + Enable Campfire Saving + + + You will only be able to save near lit campfires and within friendly bases. + + + Enable Neutral Bases + + + Other factions will allow you to save in their bases depending on your goodwill. + + + Enable Sanctuaries + + + Certain influential individuals will allow you to save within their abodes if you are on good terms. + + + Enable Token Notifications + + + You will be notified of remaining time before you are granted a free save token. + + + Not A Mommy + + + You identify as Daddy. + + + Mommy + + + Daddy + + + You will be granted a %s Token in %i seconds. + + + You have a %s Token. Press SHIFT-F5 to redeem. + + + diff --git a/mods/Yet Another Campfire Saving/gamedata/configs/text/rus/ish_campfire.xml b/mods/Yet Another Campfire Saving/gamedata/configs/text/rus/ish_campfire.xml new file mode 100644 index 00000000..226a1d7c --- /dev/null +++ b/mods/Yet Another Campfire Saving/gamedata/configs/text/rus/ish_campfire.xml @@ -0,0 +1,72 @@ + + + + %s возможно только у костра + + + %s возможно только у костра или на дружественной базе + + + Костер необходимо разжечь для %s + + + YACS + + + Нет + + + Дружественный + + + Также нейтральный + + + Сохранения у костра + + + Включить сохранения у костра + + + Сохраниться можно будет только у зажженных костров и на дружественных базах. + + + Включить нейтральные базы + + + Остальные фракции позволят вам сохраниться на своих базах в зависимости от вашей репутации. + + + Включите убежища + + + Некоторые влиятельные люди позволят вам сохраниться в их жилищах если вы с ними в ладу. + + + Включить уведомления о токенах + + + Вы будете уведомлены об оставшемся времени, прежде чем вам будет предоставлен бесплатный токен сохранения. + + + Не Мамочка + + + Вы идентифицируете себя как Папочка + + + Вы определяете себя как Папочка + + + Мамочка + + + Папочка + + + Возможность %s сохранения будет предоставлена через %i секунд. + + + Возможность %s сохранения предоставлена. Нажмите SHIFT-F5 для активации. + + diff --git a/mods/Yet Another Campfire Saving/gamedata/scripts/ish_campfire_saving.script b/mods/Yet Another Campfire Saving/gamedata/scripts/ish_campfire_saving.script new file mode 100644 index 00000000..1a498403 --- /dev/null +++ b/mods/Yet Another Campfire Saving/gamedata/scripts/ish_campfire_saving.script @@ -0,0 +1,267 @@ +-- Yet Another Campfire Saving +-- Last modified: 2022.12.04 +-- https://github.com/Ishmaeel/YetAnotherCampfireSaving + +local campfire_saving = true +local campfire_radius = 15 +local base_radius = 50 +local boss_radius = 10 +local token_granted = time_infinite +local token_downtime = 1000 * 60 * 5 -- Five minutes +local token_redeemed = false +local notifications = false +local not_mommy = false +local neutral_bases = false +local enable_friendly_bosses = false +local enable_neutral_bosses = false + +local getstr = game.translate_string +local silent = true + +bonus_bases = {} +bonus_bases.pri_monolith = { monolith = true } +bonus_bases.pri_a18_smart_terrain = { killer = true } + +function require_shelter() + return surge_manager.actor_in_cover() +end + +function always_allow() + return true +end + +function never_allow() + return false +end + +the_bawses = { + zat_b18_noah = require_shelter, m_trader = require_shelter, m_lesnik = require_shelter, + trader_monolith_kbo = always_allow, mechanic_monolith_kbo = always_allow +} + +function on_game_start() + bind_campfire.check_no_nearby_campfire = check_no_nearby_campfire + + RegisterScriptCallback("on_before_save_input", on_before_save_input) + RegisterScriptCallback("on_option_change", on_option_change) + RegisterScriptCallback("actor_on_first_update", actor_on_first_update) + RegisterScriptCallback("on_console_execute", on_console_execute) + RegisterScriptCallback("on_key_release", on_key_release) + + on_option_change() +end + +function on_before_save_input(flags, typ_, text) + if campfire_saving and level_weathers.valid_levels[level.name()] then + token_redeemed = false + local error_message = nil + + local nearby_campfire = bind_campfire.get_nearby_campfire(campfire_radius, true) + + if not nearby_campfire then + error_message = strformat(getstr("st_ui_no_save_campfire_base"), text) + elseif not nearby_campfire:is_on() then + error_message = strformat(getstr("st_ui_no_save_campfire_unlit"), text) + end + + local within_safe_space = is_within_friendly_base() + + if not within_safe_space then + local evaluate_boss_safety = get_friendly_boss_safety_function() + + if evaluate_boss_safety then + within_safe_space = evaluate_boss_safety() + end + end + + if error_message and not within_safe_space then + token_redeemed = redeem_token() + + -- always prevent saving. + exec_console_cmd("main_menu off") + flags.ret = true + + -- only show message if token is not redeemed. + if not token_redeemed then + actor_menu.set_msg(1, error_message, 4) + end + end + end +end + +function is_within_friendly_base() + local friendly_bases = get_friendly_bases() + + for _, smart in pairs(friendly_bases) do + if smart.dist_to_actor < base_radius and surge_manager.actor_in_cover() then + return true + end + end + + return false +end + +function get_friendly_bases() + local friendly_bases = {} + local community = gameplay_disguise.get_default_comm() + + for _, smart in pairs(SIMBOARD.smarts_by_names) do + if ish_campfire_debug then + ish_campfire_debug.draw_map_dot(smart) + end + + if smart.is_on_actor_level and smart.props.base > 0 then + -- Base is considered friendly if it's marked for player's faction or "all" + local is_safe = smart.props[community] > 0 or smart.props.all > 0 + + -- Some bases are not properly marked for factions in vanilla configs, so we have an override table. + is_safe = is_safe or (bonus_bases[smart:name()] and bonus_bases[smart:name()][community]) + + -- Optional: Other factions may let you use their bases if you have good relations. + is_safe = is_safe or neutral_bases and is_base_neutral(smart, community) + + if is_safe then + table.insert(friendly_bases, smart) + end + end + end + + return friendly_bases +end + +function is_base_neutral(smart, community) + for _, faction in pairs(game_relations.factions_table) do + local influence = smart.props[faction] + if influence > 0 then + local relation = relation_registry.community_relation(faction, community) + local goodwill = relation_registry.community_goodwill(faction, db.actor:id()) + if relation + goodwill >= 0 then + return true + end + end + end + return false +end + +function get_friendly_boss_safety_function() + local boss_safety_function = never_allow + + local function iterate_func(obj) + if obj:id() > 0 then + local section = obj:section() + if the_bawses[section] then + local boss_alive = obj:alive() + local boss_relation = game_relations.get_npcs_relation(obj, db.actor) + + if d and d.news then + local relationship = game_relations.game_relations_by_num[boss_relation] + d.news("Boss found: %s - %s, %s", section, relationship, boss_alive and "alive" or "dead") + end + + if boss_alive and boss_relation == game_object.friend or (enable_neutral_bosses and boss_relation == game_object.neutral) then + boss_safety_function = the_bawses[section] + return true + end + end + end + end + + if enable_friendly_bosses then + level.iterate_nearest(db.actor:position(), boss_radius, iterate_func) + end + + return boss_safety_function +end + +function check_no_nearby_campfire() + return false -- Prevent vanilla campfire checking function from interfering. +end + +function on_option_change() + if ui_mcm then + campfire_saving = ui_mcm.get("yasc/enableCampfireSaving") + notifications = ui_mcm.get("yasc/enableNotifications") + not_mommy = ui_mcm.get("yasc/isNotMommy") + neutral_bases = ui_mcm.get("yasc/allowNeutralBases") + enable_friendly_bosses = ui_mcm.get("yasc/allowSanctuaries") >= 1 + enable_neutral_bosses = ui_mcm.get("yasc/allowSanctuaries") >= 2 + end +end + +function actor_on_first_update() + extend_token_downtime() +end + +function on_console_execute(cmd) + if cmd ~= "save" then + return + end + + if token_redeemed then + switch_to_rl_mode() + else + extend_token_downtime() + end +end + +function on_key_release(key) + if key == DIK_keys.DIK_F5 then + token_redeemed = redeem_token(silent and campfire_saving) + + if token_redeemed then + create_emergency_save() + end + end +end + +function extend_token_downtime() + token_granted = time_global() + token_downtime +end + +function redeem_token(suppress_notification) + local time_remaining = token_granted - time_global() + local has_token = time_remaining <= 0 + + if has_token and (key_state(DIK_keys.DIK_LSHIFT) ~= 0 or key_state(DIK_keys.DIK_RSHIFT) ~= 0) then + return true + end + + if not suppress_notification then + send_notification(time_remaining) + end + + return false +end + +function create_emergency_save() + exec_console_cmd(string.format("save %s - %ssave", (user_name() or "player"), get_parent_type())) +end + +function switch_to_rl_mode() + exec_console_cmd("quit") +end + +function send_notification(time_remaining) + if notifications then + local parent_type = get_parent_type() + + if time_remaining > 0 then + news(getstr("token_pending"), parent_type, time_remaining / 1000) + else + news(getstr("token_granted"), parent_type) + end + end +end + +function get_parent_type() + return getstr(string.format("mommy_%s", not not_mommy)) +end + +function news(message, ...) + message = string.format(message, ...) + if db.actor then + db.actor:give_game_news(getstr("ui_mcm_yacs_title"), message, "ui_inGame2_PD_storonnik_ravnovesiya", 0, 5000, 0) + else + printf(message) + end +end diff --git a/mods/Yet Another Campfire Saving/gamedata/scripts/ish_campfire_saving_mcm.script b/mods/Yet Another Campfire Saving/gamedata/scripts/ish_campfire_saving_mcm.script new file mode 100644 index 00000000..f3f607f4 --- /dev/null +++ b/mods/Yet Another Campfire Saving/gamedata/scripts/ish_campfire_saving_mcm.script @@ -0,0 +1,17 @@ +function on_mcm_load() + local op = { + id = "yasc", + sh = true, + gr = { + -- LuaFormatter off + {id = "title", type = "slide", link = "ui_options_slider_player", text = "ui_mcm_yacs_title", size = {512, 50}, spacing = 20}, + {id = "enableCampfireSaving", type = "check", val = 1, def = true}, + {id = "allowNeutralBases", type = "check", val = 1, def = false}, + {id = "allowSanctuaries", type = "radio_h", val = 2, def = 0, content = {{0, "Sanctuaries_None"}, {1, "Sanctuaries_Friendly"}, {2, "Sanctuaries_Neutral"}}}, + {id = "enableNotifications", type = "check", val = 1, def = false}, + {id = "isNotMommy", type = "check", val = 1, def = false} + -- LuaFormatter on + } + } + return op +end diff --git a/mods/Yet Another Campfire Saving/meta.ini b/mods/Yet Another Campfire Saving/meta.ini new file mode 100644 index 00000000..82a9b0df --- /dev/null +++ b/mods/Yet Another Campfire Saving/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2024.3.31.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=YetAnotherCampfireSaving.2022.12.04.zip +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=false +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2024-03-31T05:13:29Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/[DEV] Alternate Crouching/gamedata/scripts/rage_low_crouch.script b/mods/[DEV] Alternate Crouching/gamedata/scripts/rage_low_crouch.script new file mode 100644 index 00000000..cbd1725a --- /dev/null +++ b/mods/[DEV] Alternate Crouching/gamedata/scripts/rage_low_crouch.script @@ -0,0 +1,6 @@ +function on_key_release(key) + local bind = dik_to_bind(key) + if bind == key_bindings.kCROUCH then + level.press_action(bind_to_dik(key_bindings.kCROUCH)) + end +end diff --git a/mods/[DEV] Alternate Crouching/meta.ini b/mods/[DEV] Alternate Crouching/meta.ini new file mode 100644 index 00000000..55a1c1d9 --- /dev/null +++ b/mods/[DEV] Alternate Crouching/meta.ini @@ -0,0 +1,9 @@ +[General] +modid=0 +version= +newestVersion= +category=0 +installationFile= + +[installedFiles] +size=0 diff --git a/mods/[REQUIRED] Modpack Data/AnomalyLauncher.cfg b/mods/[REQUIRED] Modpack Data/AnomalyLauncher.cfg index 08aa63d5..4c61a16b 100644 --- a/mods/[REQUIRED] Modpack Data/AnomalyLauncher.cfg +++ b/mods/[REQUIRED] Modpack Data/AnomalyLauncher.cfg @@ -4,6 +4,6 @@ AVX 2560 1440 NODBG -1 +0 NOSNDFIX -NOSNDPREFETCH +SNDPREFETCH diff --git a/mods/[REQUIRED] Modpack Data/gamedata/configs/axr_options.ltx b/mods/[REQUIRED] Modpack Data/gamedata/configs/axr_options.ltx index 76495971..f7b08ef8 100644 --- a/mods/[REQUIRED] Modpack Data/gamedata/configs/axr_options.ltx +++ b/mods/[REQUIRED] Modpack Data/gamedata/configs/axr_options.ltx @@ -15,6 +15,7 @@ new_game_map = new_game_money = new_game_opened_routes = + new_game_soulslike_mode = new_game_story_mode = new_game_survival_mode = new_game_test = @@ -1363,7 +1364,7 @@ pawsys/pawgen/disable_mcmups = false pawsys/pawgen/enabled = true pawsys/pawgen/mcm_update_throttle = - pawsys/pawgen/mcm_ver = 2.1.2 + pawsys/pawgen/mcm_ver = 2.1.3 pawsys/pawgen/mwheel_poll_interval = pawsys/pawgen/pin_far_fade_dist = 100 pawsys/pawgen/pin_far_hide_dist = 150 @@ -1493,8 +1494,8 @@ scop/scop_fov = 0.4 scop/scope_fov = 0.4 selfkill/keybind_mcm = 14 - session_id = 467 - session_start = 1711790096000 + session_id = 490 + session_start = 1711948150000 sleep_timelapse/alifeOptimize = true sleep_timelapse/alifeSleepRadius = 75 sleep_timelapse/camUpdateTotalTime = 2500 @@ -1502,6 +1503,38 @@ sleep_timelapse/npcsImmuneToEmissions = true sleep_timelapse/playSound = true sleep_timelapse/timeFactorSpeed = 0.7 + soulslike/ambush/allow_bloodsucker_ambush = true + soulslike/ambush/allow_boar_ambush = true + soulslike/ambush/allow_burer_ambush = true + soulslike/ambush/allow_cats_ambush = true + soulslike/ambush/allow_chimera_ambush = true + soulslike/ambush/allow_controller_ambush = true + soulslike/ambush/allow_dogs_ambush = true + soulslike/ambush/allow_flesh_ambush = true + soulslike/ambush/allow_snorks_ambush = true + soulslike/ambush/allow_stalker_advanced_ambush = true + soulslike/ambush/allow_stalker_novice_ambush = true + soulslike/ambush/allow_stalker_sniper_ambush = true + soulslike/ambush/allow_stalker_veteran_ambush = true + soulslike/ambush/mutant_ambush_chance = 0.25 + soulslike/ambush/stalker_ambush_chance = 0.25 + soulslike/character/health_loss_on_respawn = 0.75 + soulslike/character/rank_loss_percent = 0.02 + soulslike/character/rep_loss_percent = 0.05 + soulslike/debug/enable_tips = false + soulslike/debug/is_enabled = false + soulslike/hardcore/is_enabled = false + soulslike/items/allow_artifact_loss = true + soulslike/items/allow_headgear_loss = true + soulslike/items/allow_outfit_loss = true + soulslike/items/allow_tool_loss = true + soulslike/items/allow_weapon_loss = true + soulslike/items/item_condition_loss_scalar = 0.05 + soulslike/items/item_loss_scalar = 0.2 + soulslike/items/keep_equipped_items_on_death = false + soulslike/scenarios/hidden_stash_scenario_weight = 0.1 + soulslike/scenarios/looter_npcs_marked = false + soulslike/scenarios/rf_detector_scenario_weight = 0.1 speed/debug = false speed/encumbrance = false speed/weapon = true @@ -1527,15 +1560,15 @@ ssfx_module/inter_grass/shooting_str_mcm = 0.3 ssfx_module/inter_grass/vertical_str_mcm = 1 ssfx_module/shadows/lod_max_mcm = 1 - ssfx_module/shadows/lod_min_mcm = 2 + ssfx_module/shadows/lod_min_mcm = 1 ssfx_module/shadows/lod_quality_mcm = 2.2 ssfx_module/shadows/volumetric_force_mcm = true ssfx_module/shadows/volumetric_int_mcm = 1.2 ssfx_module/shadows/volumetric_quality_mcm = 3 - ssfx_module/shadows/volumetric_resolution_mcm = 40 - ssfx_module/shw_cascades/grass_shw_distance_mcm = 20 - ssfx_module/shw_cascades/grass_shw_nondir_maxdistance_mcm = 26 - ssfx_module/shw_cascades/grass_shw_quality_mcm = 1 + ssfx_module/shadows/volumetric_resolution_mcm = 80 + ssfx_module/shw_cascades/grass_shw_distance_mcm = 12 + ssfx_module/shw_cascades/grass_shw_nondir_maxdistance_mcm = 22 + ssfx_module/shw_cascades/grass_shw_quality_mcm = 0 ssfx_module/shw_cascades/size_1_mcm = 16 ssfx_module/shw_cascades/size_2_mcm = 60 ssfx_module/shw_cascades/size_3_mcm = 160 @@ -1558,7 +1591,7 @@ ssfx_module/ssfx_rain_module/ssfx_rain_main/alpha_mcm = 0.84 ssfx_module/ssfx_rain_module/ssfx_rain_main/brightness_mcm = 0.09 ssfx_module/ssfx_rain_module/ssfx_rain_main/len_mcm = 1 - ssfx_module/ssfx_rain_module/ssfx_rain_main/quality_mcm = 1 + ssfx_module/ssfx_rain_module/ssfx_rain_main/quality_mcm = 0 ssfx_module/ssfx_rain_module/ssfx_rain_main/reflection_mcm = 0.5 ssfx_module/ssfx_rain_module/ssfx_rain_main/refraction_mcm = 1.5 ssfx_module/ssfx_rain_module/ssfx_rain_main/speed_mcm = 1.2 @@ -1567,8 +1600,8 @@ ssfx_module/ssfx_rain_module/ssfx_rain_main/width_mcm = 0.05 ssfx_module/ssfx_wetness/ssfx_gloss/auto_gloss_max_mcm = 1 ssfx_module/ssfx_wetness/ssfx_gloss/auto_gloss_mcm = true - ssfx_module/ssfx_wetness/ssfx_gloss/max_gloss_mcm = 0.64 - ssfx_module/ssfx_wetness/ssfx_gloss/min_gloss_mcm = 0.2 + ssfx_module/ssfx_wetness/ssfx_gloss/max_gloss_mcm = 0.5 + ssfx_module/ssfx_wetness/ssfx_gloss/min_gloss_mcm = 0.42 ssfx_module/ssfx_wetness/ssfx_gloss/specular_color_mcm = 0.6 ssfx_module/ssfx_wetness/ssfx_gloss/specular_int_mcm = 0.5 ssfx_module/ssfx_wetness/ssfx_wet_surf/buildup_speed_mcm = 1.4 @@ -1583,7 +1616,7 @@ ssfx_module/ssfx_wetness/ssfx_wet_surf/waterfall_min_speed_mcm = 0.2 ssfx_module/ssfx_wetness/ssfx_wet_surf/waterfall_size_mcm = 1.2 ssfx_module/ssfx_wetness/ssfx_wet_surf/waterfall_speed_mcm = 1.5 - ssfx_module/ssr/blur_mcm = 0.3 + ssfx_module/ssr/blur_mcm = 0.2 ssfx_module/ssr/general_int_mcm = 1.1 ssfx_module/ssr/quality_mcm = 2 ssfx_module/ssr/render_scale_mcm = 0.8 @@ -1769,7 +1802,7 @@ wpo/wpojam/oldammo = true wpo/wpojam/second_key = 0 wpo/wpojam/simplejam = true - wpo/wpojam/superjam = true + wpo/wpojam/superjam = false wpo/wpomisc/debug = false wpo/wpomisc/display = true wpo/wpomisc/fun = 1 @@ -1781,6 +1814,11 @@ xcvb_skinning/enable_text = true xcvb_skinning/kit_bonus = 1.5 xcvb_skinning/speed = 1 + yasc/allowNeutralBases = true + yasc/allowSanctuaries = 1 + yasc/enableCampfireSaving = true + yasc/enableNotifications = true + yasc/isNotMommy = true zrb/add_recipe = true zrb/deletion_timeout = 30 zrb/mod_enabled = true @@ -2984,37 +3022,41 @@ sound/radio/playlist_name_7 = sound/radio/underground_intereferences = true sound/radio/zone = true - video/advanced/actor_shadow = true - video/advanced/detail_density = 0.44 + video/advanced/actor_shadow = false + video/advanced/detail_bump = false + video/advanced/detail_density = 0.5 video/advanced/detail_height = 1.2 - video/advanced/detail_radius = 190 - video/advanced/dof_enable = true + video/advanced/detail_radius = 110 + video/advanced/dof_enable = false video/advanced/dynamic_wet_surfaces = false - video/advanced/enable_tessellation = true + video/advanced/enable_tessellation = false video/advanced/framelimit = 164 - video/advanced/geometry_lod = 1 + video/advanced/geometry_lod = 0.8 video/advanced/grass_shadow = false - video/advanced/ls_squality = 0.5 + video/advanced/ls_squality = 0.7 video/advanced/mblur = 0.05 video/advanced/mblur_enable = true - video/advanced/mipbias = -0.2 + video/advanced/mipbias = 0.2 video/advanced/optimize_dynamic_geom = 1 - video/advanced/optimize_static_geom = 0 - video/advanced/slight_fade = 0.8 - video/advanced/smaa = low - video/advanced/ssample_list = st_opt_off - video/advanced/ssao = st_opt_medium + video/advanced/optimize_static_geom = 2 + video/advanced/slight_fade = 0.5 + video/advanced/smaa = off + video/advanced/ssample_list = st_opt_on + video/advanced/ssao = st_opt_low video/advanced/ssao_mode = default video/advanced/steep_parallax = false - video/advanced/sun_quality = st_opt_high + video/advanced/sun = true + video/advanced/sun_quality = st_opt_low video/advanced/sunshafts_min = 0.2 - video/advanced/sunshafts_mode = combined - video/advanced/sunshafts_quality = st_opt_medium + video/advanced/sunshafts_mode = off + video/advanced/sunshafts_quality = st_opt_low video/advanced/sunshafts_value = 0.5 - video/advanced/texture_lod = 1 - video/advanced/tf_aniso = 4 + video/advanced/texture_lod = 3 + video/advanced/tf_aniso = 1 video/advanced/v_sync = false - video/advanced/vis_distance = 1.5 + video/advanced/vis_distance = 0.75 + video/advanced/volumetric_lights = false + video/advanced/volumetric_smoke = false video/basic/fov = 74 video/basic/hud_fov = 0.57 video/hud/autohide_stamina_bar = true diff --git a/profiles/Default/modlist.txt b/profiles/Default/modlist.txt index ab7b27ed..04fa062f 100644 --- a/profiles/Default/modlist.txt +++ b/profiles/Default/modlist.txt @@ -1,5 +1,6 @@ # This file was automatically generated by Mod Organizer. -Unmanaged_separator +-[DEV] Alternate Crouching -[DEV] Custom Traders -[DEV] Backpack Drops +Divergent - Developer Workspace_separator @@ -24,6 +25,7 @@ +bhsro_surgerykit +Binocular Renaimation -Last Load and Overrides_separator ++Redone Radar and Red Forest - Duty Expansion Patch +New Levels - Arrival Patch -Patches and Compatibility_separator +Usable Bar Doors @@ -38,6 +40,7 @@ +New Levels -Locations and Levels_separator -Weather and Environment_separator ++UI Rework G.A.M.M.A. Style - Soulslike Gamemode Patch +UI Rework G.A.M.M.A. Style +Underrail Cursors +Hide Tooltip @@ -93,7 +96,9 @@ +Soundscape Overhaul -Sounds and Music_separator +iTheon New Tasks ++Duty Expansion -Quests and Stories_separator ++Jabbers Soulslike Gamemode +Selfkill +Blackjack +Stealth Overhaul @@ -114,11 +119,14 @@ +Nitpicker's Modpack +TBs Angry Chimera Growls +Fair Fast Travel ++Yet Another Campfire Saving +Arszis Radiation Overhaul - Demonized Edition +Body Health System Realistic Overhaul +Groks Body Health System Redux ++Arrival - Busy Hands Bug Fix +Arrival -Gameplay Overhauls_separator ++RGD-2 Smoke Grenade +Glowsticks Reanimated +Glowsticks +ACE! 52