Medical Treatment - Add event and setting for grave creation (#9441)

graves: event and setting for markers

Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com>
This commit is contained in:
BrettMayson 2023-10-01 12:31:38 -06:00 committed by GitHub
parent 31a64a33b6
commit 66deb59037
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 44 additions and 8 deletions

View File

@ -47,6 +47,10 @@ _direction = _direction + _rotation;
// This setPosASL seems to need to be called where the unit is local
_patient setPosASL [-5000, -5000, 0];
if (_restingPlaceClass == "") exitWith {
[_patient, objNull]
};
// Create the body bag object, set its position to prevent it from flipping
private _restingPlace = createVehicle [_restingPlaceClass, [0, 0, 0], [], 0, "NONE"];
_restingPlace setPosASL _position;
@ -55,3 +59,5 @@ _restingPlace setDir _direction;
// Server will handle hiding and deleting the body
// Keep event name as body bag only to avoid breaking things for others
["ace_placedInBodyBag", [_patient, _restingPlace]] call CBA_fnc_globalEvent;
[_patient, _restingPlace]

View File

@ -23,9 +23,13 @@ if ((alive _patient) && {GVAR(allowGraveDigging) < 2}) exitWith {
[LSTRING(bodybagWhileStillAlive)] call EFUNC(common,displayTextStructured);
};
private _graveClassname = missionNameSpace getVariable [QGVAR(graveClassname), "ACE_Grave"];
private _graveClassname = "";
if (GVAR(graveDiggingMarker)) then {
_graveClassname = missionNamespace getVariable [QGVAR(graveClassname), "ACE_Grave"];
};
private _graveRotation = missionNameSpace getVariable [QGVAR(graveRotation), 0];
[_this, _graveClassname, [0,0,0], _graveRotation] call FUNC(placeInBodyBagOrGrave);
["ace_placedInGrave",
[_this, _graveClassname, [0,0,0], _graveRotation] call FUNC(placeInBodyBagOrGrave)
] call CBA_fnc_globalEvent;

View File

@ -317,9 +317,18 @@
[
QGVAR(allowGraveDigging),
"LIST",
[LSTRING(AllowGaveDigging_DisplayName), LSTRING(AllowGaveDigging_Description)],
[LSTRING(AllowGraveDigging_DisplayName), LSTRING(AllowGraveDigging_Description)],
[ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)],
[[0, 1, 2], [ELSTRING(common,Disabled), LSTRING(AllowGaveDigging_graveOnlyDead), ELSTRING(common,Yes)], 1],
[[0, 1, 2], [ELSTRING(common,Disabled), LSTRING(AllowGraveDigging_graveOnlyDead), ELSTRING(common,Yes)], 1],
true
] call CBA_fnc_addSetting;
[
QGVAR(graveDiggingMarker),
"CHECKBOX",
[LSTRING(GraveDiggingMarker_DisplayName), LSTRING(GraveDiggingMarker_Description)],
[ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)],
true,
true
] call CBA_fnc_addSetting;

View File

@ -835,20 +835,36 @@
<Chinesesimp>能够将昏迷的伤员装入尸袋中。</Chinesesimp>
<Korean>기절상태의 인원을 시체운반용부대에 옮겨 담을 수 있는지를 정합니다.</Korean>
</Key>
<Key ID="STR_ACE_Medical_Treatment_AllowGaveDigging_DisplayName">
<Key ID="STR_ACE_Medical_Treatment_AllowGraveDigging_DisplayName">
<English>Allow Grave Digging</English>
<Polish>Zezwalaj na kopanie grobów</Polish>
<Korean>무덤 파기 허용</Korean>
<German>Erlaube Graben von Gräbern</German>
<Spanish>Permitir cavar tumbas</Spanish>
</Key>
<Key ID="STR_ACE_Medical_Treatment_AllowGaveDigging_Description">
<Key ID="STR_ACE_Medical_Treatment_AllowGraveDigging_Description">
<English>Enables digging graves to dispose of corpses.</English>
<Polish>Umożliwia kopanie grobów w celu pozbycia się zwłok.</Polish>
<Korean>시체를 처리하기 위해 무덤을 파는 것을 허용합니다.</Korean>
<German>Erlaubt das Graben von Gräbern um Leichen zu entsorgen.</German>
<Spanish>Habilita cavar tumbas para deshacerse de los cadáveres.</Spanish>
</Key>
<Key ID="STR_ACE_Medical_Treatment_AllowGaveDigging_graveOnlyDead">
<Key ID="STR_ACE_Medical_Treatment_AllowGraveDigging_graveOnlyDead">
<English>Only if dead</English>
<Polish>Tylko kiedy martwy</Polish>
<Korean>죽었을 때에만</Korean>
<German>Nur wenn tot</German>
<Spanish>Solo si está muerto</Spanish>
</Key>
<Key ID="STR_ACE_Medical_Treatment_GraveDiggingMarker_DisplayName">
<English>Create Grave Markers</English>
<German>Erstelle Grabmal</German>
<Spanish>Crear Tumba</Spanish>
</Key>
<Key ID="STR_ACE_Medical_Treatment_GraveDiggingMarker_Description">
<English>Enables the creation of grave markers when digging graves.</English>
<German>Erstellt Grabmale beim Graben von Gräbern.</German>
<Spanish>Habilita la creación de Tumbas al cavar tumbas.</Spanish>
</Key>
<Key ID="STR_ACE_Medical_Treatment_MedicIV_DisplayName">
<English>Allow IV Transfusion</English>

View File

@ -37,6 +37,7 @@ The vehicle events will also have the following local variables available `_gunn
|----------|---------|---------|---------|---------|---------|
|`ace_unconscious` | [_unit, _state(BOOL)] | Global | Listen | Unit's unconscious state changed
|`ace_placedInBodyBag` | [_target, _bodyBag] | Global | Listen | Target placed into a bodybag Note: (Target will soon be deleted)
|`ace_placedInGrave` | [_target, _grave] | Global | Listen | Target placed into a grave, _grave will be objNull if `Create Grave Markers` is disabled Note: (Target will soon be deleted)
|`ace_treatmentStarted` | [_caller, _target, _selectionName, _className, _itemUser, _usedItem] | Local | Listen | Treatment action has started (local on the _caller)
|`ace_treatmentSucceded` | [_caller, _target, _selectionName, _className, _itemUser, _usedItem] | Local | Listen | Treatment action is completed (local on the _caller)
|`ace_treatmentFailed` | [_caller, _target, _selectionName, _className, _itemUser, _usedItem] | Local | Listen | Treatment action has been interrupted (local on the _caller)