Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
24db936
Add better icon to vanilla actions
Kexanone May 5, 2025
7f8a675
Add better icon to ACE actions
Kexanone May 5, 2025
77a86ce
Give bandage actions higher priority
Kexanone May 6, 2025
2f44ebf
Use actual bandage and tq icons
Kexanone May 6, 2025
0e26808
Add background color to SCR_HealingUserAction
Kexanone May 6, 2025
18260e9
Move settings files to core and add new settings
Kexanone Jun 3, 2025
36be70e
Move and improve medical kit settings handling
Kexanone Jun 3, 2025
291c0e9
Reimplement second chance in core
Kexanone Jun 3, 2025
dfb48d6
Fix GM health tooltip
Kexanone Jun 3, 2025
3a008c3
Fix fall damage scaling
Kexanone Jun 3, 2025
d5036a3
Move stringtable to core
Kexanone Jun 3, 2025
de5197d
Move reposition to core
Kexanone Jun 3, 2025
e56eb79
Add resilience recovery scales
Kexanone Jun 4, 2025
733f2c3
Add epinephrine to core
Kexanone Jun 4, 2025
37d3de9
Add pain to core
Kexanone Jun 4, 2025
d942178
Add morphine effect override
Kexanone Jun 4, 2025
3c656a0
Trigger second chance deactivation timer when falling unconscious
Kexanone Jun 6, 2025
c13f7fb
Change second chance health recovery to damage effect
Kexanone Jun 6, 2025
efc23f0
Add centralized blood loss handling
Kexanone Jun 6, 2025
834ddd8
Replace second chance handling by a system
Kexanone Jun 6, 2025
623b236
Improve variable names
Kexanone Jun 6, 2025
c7bb8c3
Improve initialization of blood loss damage effect
Kexanone Jun 7, 2025
297b9bc
Extend pain to include new screen effects
Kexanone Jun 7, 2025
143cbb8
Replace magic speed numbers with constants
Kexanone Jun 7, 2025
8ebcbeb
Add setting for second chance on fall damage
Kexanone Jun 7, 2025
fd78b4e
Make second chance regen applicable to parent class
Kexanone Jun 8, 2025
e1cd5a9
Prefix ACE_Medical_Core folder to change loading order
Kexanone Jun 8, 2025
1a0da33
Add setting for disabling bleed outs for players
Kexanone Jun 8, 2025
d773dc1
Refactor bleed out handling to SCR_CharacterBloodHitZone
Kexanone Jun 9, 2025
91ae1cb
Move calculation of total bleeding rate from ACE_Medical_BloodLossDam…
Kexanone Jun 9, 2025
235dc56
Refactor calculation of bleeding rate for a hit zone from SCR_Bleedin…
Kexanone Jun 9, 2025
8eb2799
Get damage manager via HitZone::GetHitZoneContainer
Kexanone Jun 9, 2025
6973c99
Fix wrong bleeding rate for first bleeding on hit zone
Kexanone Jun 9, 2025
2361e9e
Slider for m_fMinHealthScaledForEpinephrine
Kexanone Jun 9, 2025
43330a2
Method for compiling attribute param array of character hit zones
Kexanone Jun 9, 2025
7063eb2
Add epi to vanilla medics
Kexanone Jun 9, 2025
6666faf
Remove old medical mod
Kexanone Jun 9, 2025
dd19503
Fix comment
Kexanone Jun 10, 2025
dc677a1
Add settings for bleeding rate and regen
Kexanone Jun 10, 2025
259e402
Refactor bleed loss calculation in ACE_Medical_BloodLossDamageEffect …
Kexanone Jun 10, 2025
2310b6b
Get max bleeding rate directly from ACE settings
Kexanone Jun 10, 2025
b623954
Rename blood loss calculation method
Kexanone Jun 10, 2025
164fb3c
Fix initial calculation of bleeding rate
Kexanone Jun 11, 2025
2aa3c81
Rename bleeding scale setting
Kexanone Jun 11, 2025
feef758
Add license and thumbail
Kexanone Jun 11, 2025
28b4e51
Add missing section divider
Kexanone Jun 11, 2025
ecf13c9
Implement base system
Kexanone Jun 13, 2025
522f727
Remove unused variable
Kexanone Jun 13, 2025
61d0832
Add ranges to float settings
Kexanone Jun 19, 2025
94d9e1c
Rename settings to core
Kexanone Jun 19, 2025
6cc440b
Add ranges to float settings
Kexanone Jun 19, 2025
0ad1737
Reuse ACE Medical GUID for core
Kexanone Jun 22, 2025
db14257
Merge branch 'medical/rewrite' into medical/better-interaction-icons
Kexanone Jun 22, 2025
de4d07a
Vanilla signature changed to static
Kexanone Jun 24, 2025
38e3a6f
Temporarily patch SCR_NearbyContextWidgetComponentInteract to get mod…
Kexanone Jun 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
164 changes: 164 additions & 0 deletions addons/core/Prefabs/Characters/Core/Character_Base.et
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,170 @@ SCR_ChimeraCharacter {
Radius 0.35
}
}
additionalActions {
SCR_BandageUserAction "{520EA1D2F659CE03}" {
UIInfo SCR_ActionUIInfo "{520EA1D2F659CE00}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Bandage_UI"
}
"Sort Priority" -1
}
SCR_BandageUserAction "{5A26F8E67741AC1E}" {
UIInfo SCR_ActionUIInfo "{5A26F8E5870EFCC8}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Bandage_UI"
}
"Sort Priority" -1
}
SCR_BandageUserAction "{5A26F8E460F2D5F7}" {
UIInfo SCR_ActionUIInfo "{5A26F8E5870EFCC8}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Bandage_UI"
}
"Sort Priority" -1
}
SCR_BandageUserAction "{5A26F8E47D6EE240}" {
UIInfo SCR_ActionUIInfo "{5A26F8E5870EFCC8}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Bandage_UI"
}
"Sort Priority" -1
}
SCR_BandageUserAction "{5A26F8E203EF1E0C}" {
UIInfo SCR_ActionUIInfo "{5A26F8E5870EFCC8}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Bandage_UI"
}
"Sort Priority" -1
}
SCR_BandageUserAction "{5A26F8E21E230D0D}" {
UIInfo SCR_ActionUIInfo "{5A26F8E5870EFCC8}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Bandage_UI"
}
"Sort Priority" -1
}
SCR_BandageUserAction "{5A26F8E218841208}" {
UIInfo SCR_ActionUIInfo "{5A26F8E5870EFCC8}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Bandage_UI"
}
"Sort Priority" -1
}
SCR_MorphineUserAction "{5A5CCAE2AF3D6445}" {
UIInfo SCR_ActionUIInfo "{5A5CCAE2BF554957}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Morphine_UI"
}
}
SCR_SalineBagUserAction "{5A5CCAE248697020}" {
UIInfo SCR_ActionUIInfo "{5A5CCAE25BF08D86}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Saline-bag_UI"
}
}
SCR_TourniquetUserAction "{5C68A05F8836889D}" {
UIInfo SCR_ActionUIInfo "{5C68A05F9AB47F24}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Tourniquet_UI"
}
}
SCR_TourniquetUserAction "{5C68FB4586880C5E}" {
UIInfo SCR_ActionUIInfo "{5C68FB4597F6E228}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Tourniquet_UI"
}
}
SCR_TourniquetUserAction "{5C68FB458180EF70}" {
UIInfo SCR_ActionUIInfo "{5C68FB45A6769C40}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Tourniquet_UI"
}
}
SCR_TourniquetUserAction "{5C68FB459CB30804}" {
UIInfo SCR_ActionUIInfo "{5C68FB45BC7B6A22}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Tourniquet_UI"
}
}
SCR_InspectCasualtyUserAction "{5D8CD8E6AA772324}" {
UIInfo SCR_ActionUIInfo "{5D8CD8E6B5E1FE92}" {
m_sIconName "search"
}
}
SCR_HealSupportStationAction "{5E14966CF282A3BA}" {
UIInfo SCR_ActionUIInfo "{5E14966C0D73CD5C}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Bone-Fracture_UI"
}
}
SCR_HealSupportStationAction "{5E14966CF597F6B3}" {
UIInfo SCR_ActionUIInfo "{5E14966C2BD9BCF7}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Bone-Fracture_UI"
}
}
SCR_HealSupportStationAction "{5E14966C08522B0C}" {
UIInfo SCR_ActionUIInfo "{5E14966FBECEC4CE}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Bone-Fracture_UI"
}
}
SCR_HealSupportStationAction "{5E14966FAD3FC9A6}" {
UIInfo SCR_ActionUIInfo "{5E14966F3A5303BB}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Bone-Fracture_UI"
}
}
SCR_HealSupportStationAction "{5E14966FAFF46C89}" {
UIInfo SCR_ActionUIInfo "{5E14966F315076CC}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Bone-Fracture_UI"
}
}
SCR_HealSupportStationAction "{5E14966FA1ED9E23}" {
UIInfo SCR_ActionUIInfo "{5E14966F3441FED6}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Bone-Fracture_UI"
}
}
SCR_HealSupportStationAction "{5E14966FA41B012C}" {
UIInfo SCR_ActionUIInfo "{5E14966F4F500868}" {
m_sInteractionIcon "{B9199157B90D6216}UI/Textures/InventoryIcons/Medical/Medical-icons.imageset"
m_sInteractionGlowIcon "{E4B841462701A4D7}UI/Textures/InventoryIcons/Medical/Medical-icons-glow.imageset"
m_sIconName "Bone-Fracture_UI"
}
}
ACE_NoUserAction "{654B38F5A633B894}" {
ParentContextList {
"Head" "Chest" "LeftLeg" "RightLeg" "LowerTorso" "LeftArm" "RightArm"
}
UIInfo SCR_ActionUIInfo "{654B38F5DA3BFFED}" {
m_sIconName "plus"
}
ActionTitle "TOP CONTEXT ICON"
"Sort Priority" -100
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------------------------
modded class SCR_CharacterDamageManagerComponent : SCR_ExtendedDamageManagerComponent
{
[Attribute(defvalue: "20", desc: "Threshold for severe bleeding rate")]
protected float m_fACE_SevereBleedingRateThreshold;

//-----------------------------------------------------------------------------------------------------------
//! Return the health code color based on bleeding rate
SCR_ENearbyInteractionContextColors ACE_GetGroupBleedingStatus(ECharacterHitZoneGroup hitZoneGroup)
{
float bleedingRate = GetGroupDamageOverTime(hitZoneGroup, EDamageType.BLEEDING);
if (float.AlmostEqual(bleedingRate, 0))
return SCR_ENearbyInteractionContextColors.DEFAULT;

if (GetGroupTourniquetted(hitZoneGroup))
return SCR_ENearbyInteractionContextColors.STABLE;

if (bleedingRate > m_fACE_SevereBleedingRateThreshold)
return SCR_ENearbyInteractionContextColors.SEVERE;

return SCR_ENearbyInteractionContextColors.MEDIUM;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//------------------------------------------------------------------------------------------------
//! Colorize SCR_HealingUserAction
modded class SCR_NearbyContextWidgetComponentInteract : SCR_ScriptedWidgetComponent
{
//------------------------------------------------------------------------------------------------
override static bool IsHealingAction(BaseUserAction userAct, out bool showOuterBackground, out int nearbyColorState)
{
if (super.IsHealingAction(userAct, showOuterBackground, nearbyColorState))
return true;

SCR_HealingUserAction healingUserAction = SCR_HealingUserAction.Cast(userAct);
if (!healingUserAction)
return false;

nearbyColorState = healingUserAction.ACE_GetHealthStatus();
showOuterBackground = true;
return true;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//------------------------------------------------------------------------------------------------
modded class SCR_HealingUserAction : ScriptedUserAction
{
//------------------------------------------------------------------------------------------------
//! Return the health code color based on bleeding rate
SCR_ENearbyInteractionContextColors ACE_GetHealthStatus()
{
SCR_ChimeraCharacter ownerChar = SCR_ChimeraCharacter.Cast(GetOwner());
if (!ownerChar)
return SCR_ENearbyInteractionContextColors.DEFAULT;

SCR_CharacterDamageManagerComponent ownerDamageManager = SCR_CharacterDamageManagerComponent.Cast(ownerChar.GetDamageManager());
if (!ownerDamageManager)
return SCR_ENearbyInteractionContextColors.DEFAULT;

return ownerDamageManager.ACE_GetGroupBleedingStatus(m_eHitZoneGroup);
}
}
Loading