-
Notifications
You must be signed in to change notification settings - Fork 84
Gameplay
- Increase of the carrying weight. Adjustable in the same way as for armor, by parameters:
additional_inventory_weight = 11
additional_inventory_weight2 = 11
To display the extra weight in the artifact properties, you need to add to af_params.xml
, af_params_16.xml
something like:
<static_additional_inventory_weight width="257" height="20" complex_mode="1">
<texture>ui_inv_icon_additional_inventory_weight</texture>
<text font="letterica16" x="17" y="0"/>
</static_additional_inventory_weight>
<static_additional_inventory_weight2 width="257" height="20" complex_mode="1">
<texture>ui_inv_icon_additional_inventory_weight2</texture>
<text font="letterica16" x="17" y="0"/>
</static_additional_inventory_weight2>
If additional_inventory_weight
and additional_inventory_weight2
are the same, only additional_inventory_weight2
is displayed. As a reminder, the engine has confused the meaning of additional_inventory_weight
and additional_inventory_weight2
. additional_inventory_weight
is the weight before which you can still move, and additional_inventory_weight2
is the maximum weight carried, after which overloading begins and other coefficients are applied to the endurance calculation. I.e. additional_inventory_weight
must always be
equal to or greater than additional_inventory_weight2
and both must be specified.
-
Satiety. Enabled by the
af_satiety
option in the[features]
section. Enables thesatiety_restore_speed
processing in the artifact section. -
Psi Health. Enabled by the
af_psy_health
option in the[features]
section. Enablespsy_health_restore_speed
processing in the artifact section. When enabling it, you must remember to add a static to display it inaf_params.xml
,af_params_16.xml
:
<static_psy_health_restore_speed width="257" height="20" complex_mode="1">
<texture>ui_inv_icon_telepatic_immunity</texture>
<text font="letterica16" x="17" y="0"/>
</static_psy_health_restore_speed>
-
The
objects_radioactive
option in the[features]
section enables inventory radioactivity and psi. That is, all items in inventory that have positiveradiation_restore_speed
or negativepsy_health_restore_speed
(ifaf_psy_health
is enabled) increase radiation or decrease psi health. -
The
af_zero_condition
option in the[features]
section limits artifact processing so that only artifacts with a condition greater than zero are processed. Completely corrupted artifacts are ignored. -
The
af_radiation_immunity_mod
option in the[features]
section enables a mode in which artifacts withradiation_immunity
>1
will appropriately amplify radiation from other artifacts. I.e. red 20% will amplify the radiation of other artifacts by 20%. -
Added a callback for the
update_artefacts_on_belt
actor, which is called immediately after processing artifacts on the belt and is passed the number of seconds that were used when accounting for artifacts. -
Added
get_actor_obj():UpdateArtefactsOnBelt()
method, which can be called from the sleep loop to take into account the effect of artifacts on the belt. The same call will result in a call to the above callback. -
Added the ability to create custom keyboard actions via config with the ability to customize the key via menu. Example:
[custom_keyboard_action]
dlg_quickaction = kDLG_QUICKACTION
in config\ui\ui_keybinding.xml
:
<command id="kb_dlg_quickaction" exe="dlg_quickaction" />
in config\ui\carbody_new_16.xml
:
<take_all_btn x="765" y="727" width="157" height="48" highlight_text="1" accel_action="dlg_quickaction">
...
</take_all_btn>
But due to the fact that the engine binds all buttons without context, it is not so convenient. You can't, for example, in a dialog bind the same button as for running in the game.
- Added
outfit_af
option. It enables the mode when*_restore_speed
properties start to be processed for armor, like artifacts. In order for suits to work with health regeneration properties and so on. - Collision with corpses can be enabled in the
features
section with thecorpses_collision
parameter. Take into account that if it is enabled, the mobs will be dumb, stacked on the carcass with mutants, since they do not know how to bypass obstacles, as well as the mountain of corpses will lag. - Added the
gd_master_only
parameter to thefeatures
section to disable difficulty level changes. There will be a single difficulty level, the default one, i.e. master. - Fixed a bug where you could pick up an item without seeing it, i.e. from a closed closet, for example. Enabled by the option
pickup_check_overlaped
, just in case, so that you can keep the standard behavior of PM, if you need it.
Essentially thirst is another parameter and resource for the actor on par with hunger. A rough adaptation plan for the mod:
- Enable the feature in the main engine config:
[features]
actor_thirst = true
- Add into
actor.ltx
:
[actor_condition]
thirst_v = 0.01 ;thirst increase rate
thirst_power_v = 0.2 ;rate of power loss when thirst level is lower than thirst_light_limit
thirst_health_v = 0.01 ;rate of recovery or loss of health depending on thirst
thirst_light_limit = 0.5
thirst_critical_limit = 0.3
- Add into
maingame.xml
(andmaingame_16.xml
):
<thirst_static x="000" y="000" width="0" height="0" stretch="1">
<texture></texture>
</thirst_static>
- Add into
system.ltx
:
[main_ingame_indicators_thresholds]
thirst = 0.5,0.6,0.7,0.8,0.9
[tutorial_conditions_thresholds]
thirst = 0.6
- Add into
_g.script
:
function on_actor_thirst() --Thirst tutorial
end
- Also, add into one or few eatable items in configs:
eat_thirst = 1 ;Thirst quenching value
- For artifacts and costumes
thirst_restore_speed
processing also has been added.
You can turn thirst on/off at any time. Saves will be compatible. When disabling simply will not be processed action on the actor and indicators on the hood, but all scripting methods and item parameters will be available.
Simple and medium detectors fully work as in CoP, for elite detector works CoP-style UI output on the screen with settings in ui_detector_artefact.xml
.
Also left compatibility with OGSE-style system when the elite detector screen is assigned shader models_detector_3
, and the display of artifacts/anomalies/quest stuff is controlled by scripts. The limit of shown objects there has been raised from 8 to 24.
-
Old class of detectors without hood has been renamed to
CCustomDetectorSHOC
, they will work as before, no changes. -
Added ability to detect all artifacts by adding to detector config:
af_class_all = true
af_sound_all_ = detectors\art_beep1
af_freq_all = 0.05, 2
-
Added
get_actor_obj():IsDetectorActive()
check for scripts so you can check if the detector is in the actor's hands at the moment. -
Artifact parameters
af_rank
,can_be_controlled
,det_show_particles
,det_hide_particles
,particles_bone
,det_show_snd
,det_hide_snd
from CoP were added to the config to make artifacts invisible without detector. -
The detector can be held in the place with a bolt, knife or object to which the first slot (pistol slot) is assigned.
Added recovery of the active slot after loading a save.
-
Equal slots. Items are allowed to be in any slots from the list of slots specified in the
“slot”
parameter, rather than in a single slot specified in the“slot”
parameter. For example, like this:
slot = 1,2
Along with this, new options have been added to the [features]
section in the configs:
[features]
; The first and second slots of any weapon will be forced equal.
; Made for convenience - make slots in inventory equal in size, enable this mode - and that's it.
; No need to write slot = 1,2 in dozens of weapon configs.
forcibly_equivalent_slots = true
; Show extended context menu for equal slots.
; Adds move items to each available slot.
slots_extend_menu = true
- You can disable mouse wheel switching between slots with the
g_mouse_wheel_switch_slot
console command. If disabled, switching fire modes with the mouse wheel will work. Switching is not cyclic. I.e. when you reach the single mode in one direction and the automatic mode in the other, you will not be able to switch to another mode. Thus, you can quickly switch to single or automatic mode just by turning the wheel hard. - Slots for knife, binoculars, helmet, bioradar, spotting scope, artifact detector, flashlight are included in the
features
section by theogse_new_slots
parameter. - The old option to display suit slot in inventory can be enabled by the
old_outfit_slot_style
option in thefeatures
section. - Added
ruck_flag_preferred
option to allow for all items to react to theFRuckDefault
flag. If the flag is set, the loot will be picked up in the backpack instead of the default slot. To make it work properly, you need to add
default_to_ruck = false
in the [bolt]
section at least. Otherwise you won't be able to get and throw the bolt. And for reliability, also in [device_pda]
, [device_torch]
and in the grenade section.
- Added the ability to change the visibility of slots through the config section
[inventory]
, parametersslot_visible_1-12
(needed to activate the slot, by default in the engine part of the slots are made not activatable). For example:
[inventory]
slot_visible_10 = true ;now you can activate the 10th slot.
- Added the ability to accelerate switching to some slots. Example configuration:
[inventory]
slot_switch_fast_1 = true ;when switching to the first slot from another slot, the current weapon will be hidden immediately, with no retraction animation.
-
It is now possible to specify the number of available artifact slots for a suit by the
artefact_count
parameter in the suit config. If there is no suit, the newmin_belt
parameter from the[inventory]
section is used. And if the costume does not have the number of artifacts prescribed and/ormin_belt
is not prescribed in the inventory config, then the old parametermax_belt
is used, in which the maximum number of slots for artifacts must always be prescribed. The seventh square from the textureui_grid.dds
is used for locked slots for artes. It is possible to change the number of slots for artes at any time without the requirement to start a new game, previously it was impossible. **Please note that for this system to work properly, items placed on the belt must occupy exactly one cell (inv_grid_width = 1
,inv_grid_height = 1
), otherwise there will be crashes!
- Added support for almost all monsters from CoP with all their attacks, animations, auras, effectors, etc.
- Mutant auras have been redesigned a bit compared to CoP:
The way these auras are detected has been redone. In CoP, the mutants around were taken from the DA. They were not displayed, but they were available in the list. The solution is bad, because the detection radius of the DA is configurable and it is one. That is, if someone wants that the PDA would show stalkers only at a distance of 10 meters, then in addition, he will get that all the aura mutants will not act at a distance of no more than 10 meters. In our version uses its own Feel::Touch, and the radius for it is taken as the maximum range of aura of all mutants online.
Corrected *_enable_for_dead
handling. This parameter specifies whether to continue using this aura on a dead mob. For
radiation_*
it is by default true
. Except that in CoP, when updating the state of the actor, this parameter is not taken into account. So the effector
will be activated, but the hit will not be inflicted, because there are considered only the living. In our variant, the hit will be applied.
- Phantom section for Psi-dog can be overridden in its config by
phantom_section
parameter. - New options added to the controller's config:
tube_disable_camera_effect = true ; allows you to disable the actor's camera movement during an attack
tube_disable_actor_block = true ; allows you to disable actor control blocking during an attack
- The corpse of a fire poltergeist can be made visible by specifying its section:
dead_always_visible = true
- Taught poltergeists, burrs and pseudo-giants not to touch objects with bound bones, as well as objects that have the following in their section.
ph_heavy = true
;or
quest_item = true
- Added the
HugeKick_Hit_Jumping_Actor
option to the pseudo-giant section. If enabled, the actor's jumping will be ignored and a hit will be applied. - Added the ability for poltergeists to have different immunities in visible and invisible states. In the invisible state the poltergeist uses
immunities_sect
and in the visible state it usesvisible_immunities_sect
. Ifvisible_immunities_sect
is not present, then everything is unchanged. Example Usage - The
Spawn_Inventory_Item_Section
features have been extended. This parameter can now contain a comma-separated list of the form:
Spawn_Inventory_Item_Section = mutant_krovosos_red_jaw, 0.05, mutant_krovososos_jaw, 0.2
; i.e. if the random is less than 0.05, the mutant will have mutant_krovosos_red_jaw. If not, a new random number is generated and the next part is checked and so on until the list runs out or something is spun. If there is only one item in this list, everything works the same old way and its probability is taken from Spawn_Inventory_Item_Probability.
; Spawn_Inventory_Item_Probability is now an optional parameter and its default value is 0. This is so that it can be omitted if there is a list with probabilities in Spawn_Inventory_Item_Section.
- Fixed a bug where you could throw a weapon at a NPS and it would immediately go to his inventory. The thing is that there were two independent parts. One part is the engine scheme, which leads a non-person to the position of the item. The second part is is picking up anything that's within the radius of the person. Now the second part will be disabled if the first part is disabled. If anyone doesn't know, the engine scheme of picking up weapons for NPCs is disabled like this:
local manager = npc:motivation_action_manager()
manager:remove_evaluator( stalker_ids.property_items )
manager:add_evaluator( stalker_ids.property_items, property_evaluator_const( false ) )
- New parameter for stalkers is
max_hear_dist
, like mutants. The default value is-1
, i.e. it is not used. If the value is positive, all sounds beyond this distance are ignored and are not stored in memory. - New parameter for stalkers -
forget_killer_time
. This is the number of seconds to forget the killer id. The default value is the original 180 seconds. - Added the effect of fog on the vision of mobs. The deeper the object is in the fog, the slower the mobs should see it. Added parameters to
[vision_free_section]
and[vision_danger_section]
to regulate this:
fog_factor = 1 ;Sets the coefficient for fog density. The default is 1. In this case, at the fog_far distance, the dot will be the color of the fog, not the object, and at this distance the mobs will never see the object. If this coefficient is increased, the distance at which the mobs will not see the object will decrease. If you set it to 0, the fog will not affect vision, because the fog density will also become 0.
fog_pow = 5 ;Sets the curvature of fog density dependence on distance. Default is 5. The curvature of the fog density is calculated by the formula y = x to the degree of fog_pow.
;The graph of such a function looks like this:
; *
; *
; **
;***
; i.e. the farther away, the more the fog density increases. This is to ensure that the fog affects the vision more strongly the farther away the object is in the fog. That it would affect as little as possible at close and medium distances.
- Added the ability to customize the dependence of the actor's vision speed on semi-transparent obstacles. The more semi-transparent obstacles between the mob and the actor, the slower the mob will “look at” the actor. Off by default. Turns on in the mobs vision sections:
; the degree of slowing down of peering, depending on the density of translucent materials between the non-writer and the actor. The lower the value, the slower the peering is. At 1, the slowdown corresponds to the degree of translucency of the materials. I.e. if the bushes have a transparency of 0.7, then the speed of peeking will be multiplied by 0.7.
transparency_factor = 1
- Added dynamic size of visual memory of mobs. It is configured like this in the mobs section:
DynamicObjectsCount = 32
; how long to keep objects in visual memory if their number exceeds DynamicObjectsCount.
DynamicObjectsCount_adaptive = 10000 ;10 sec.
- If you specify in the stalker section
fast_can_kill_entity = true
then the engine will not waste resources on checking Friendly-Fire when calculating firing. This is suitable for OGSE, where combat and FF processing are in scripts.
- Added a wearable inventory box from NLC xp-dev branch (
CInventoryContainer
). - Added
eat_psy_health
property for eatable items (to restore psi health). - Exported to scripts (available for registration in
class_registrator.script
) and extendedCInfoDocument
class It now knows how to output an infoportion whose name is specified not only in its netpackage, but also from custom_data and config. It understands theknown_info
section in custom_data. Example:
[known_info].
info1
info2
infon
Understands the known_info
parameter in the config. Example:
[quest_doc1].
known_info = info1, info2, infon
- Added the ability for detectors to crackle from the actor's internal radiation. Enabled by the parameter
detect_actor_radiation = true
in the detector section.
- Added support for
zone_radius_%d
for anomaly detectors. If this parameter is present, the anomaly will be detected at that distance, not the distance specified in theradius
parameter. That is, for certain classes of anomalies, you can specify a smaller detection distance. A larger one cannot, because what is specified inradius
is the maximum detection distance. - New parameters for anomaly configs:
idle_light_shadow = true ; Enable shadow for idle_light, default is enabled
light_volumetric_enable = true
light_volumetric_quality = 0.9
light_volumetric_intensity = 0.05
light_volumetric_distance = 0.3
idle_light_volumetric_enable = true
idle_light_volumetric_quality = 0.9
idle_light_volumetric_intensity = 0.05
idle_light_volumetric_distance = 0.4
ignore_any = false ; To ignore anything within the radius of the anomaly. Can be used for bonfires, for example.
blowout_light_shadow = false ;Disable the shadow from the light of the activated anomaly.
DestroyAfterBlowout = true ;So you can remove mines after their explosion. Mines on the class of anomalies are made.
- For the flashlight you can turn on the volumetric light. Example settings:
[torch_definition]
volumetric_enabled = true
volumetric_for_actor = false ;So that for the actor volumetric light can be turned off, because it only looks nice for the NPS.
volumetric_quality = 1.0
volumetric_intensity = 0.15
volumetric_distance = 0.45
- Added support for
use_ai_locations = true/false
in the item section. Example:
[vodka].
use_ai_locations = false
When net_spawning this item, the corresponding flag will be turned off. This may be needed, for example, for quest items that constantly fail.
- A new parameter
show_info
has been added for the[demo_record]
section, which can be used to remove the red inscription in the middle of the screen. - Dragged visuals (those in
[ph_capture_visuals]
section) can be specified as path prefixes. Also added a ban on dragging objects with bones attached. - Added optional inversion of joints, for curved models that have them bent in the opposite direction. Will be used if the visual's castdate has:
[compat].
fix_cop_joints = true
Normally it is necessary to correct models in this case, but it may be useful.
- Added third mode for
silent_mode
for transitions. This mode is activated if level changer hassilent_mode = 2
. In this case, the transition will just silently throw the actor back. Kind of an anomaly like this. - Added ability to specify
health_hit_part
for different types of hits, for example:
health_hit_part = 1.0
health_fire_wound_hit_part = 0.5 ;for a bullet hit 0.5 will be used, the default health_hit_part value is used for all hits.
- If you add
keep_visual = true
to the object's config, its visual from the config will be used, not from the netpack. Made to allow changing object models without requiring a new game.