diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp index 91c47824fd..ec142a533b 100644 --- a/addons/captives/CfgVehicles.hpp +++ b/addons/captives/CfgVehicles.hpp @@ -164,8 +164,6 @@ class CfgVehicles { displayName = "$STR_ACE_Captives_ModuleSurrender_DisplayName"; //Make Unit Surrender function = QUOTE(DFUNC(moduleSurrender)); scope = 2; //show in editor - scopeCurator = 2; //show in zeus - curatorCost = 0; //??? isGlobal = 1; //run global isTriggerActivated = 1; //Wait for triggers icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa)); @@ -176,4 +174,4 @@ class CfgVehicles { sync[] = {"AnyAI"}; }; }; -}; \ No newline at end of file +}; diff --git a/addons/captives/functions/fnc_moduleSurrender.sqf b/addons/captives/functions/fnc_moduleSurrender.sqf index bf0e04cd6a..5b40b7663e 100644 --- a/addons/captives/functions/fnc_moduleSurrender.sqf +++ b/addons/captives/functions/fnc_moduleSurrender.sqf @@ -23,37 +23,13 @@ private ["_bisMouseOver", "_mouseOverObject"]; if (!_activated) exitWith {}; if (local _logic) then { - if ((!isnull curatorcamera) && {((count curatorMouseOver) == 2) && {(curatorMouseOver select 1) == _logic}}) then {//in zeus interface and we placed the module - _bisMouseOver = missionNamespace getVariable ["bis_fnc_curatorObjectPlaced_mouseOver", []];//bis caches the previous curatorMouseOver - if ((count _bisMouseOver) == 2) then {//check what mouse was over before the module was placed - _mouseOverObject = _bisMouseOver select 1; - if ((_mouseOverObject isKindOf "CAManBase") && {(vehicle _mouseOverObject) == _mouseOverObject}) then { - TRACE_2("Debug - module surrendering %1",_mouseOverObject,(name _mouseOverObject)); - if (alive _mouseOverObject) then { - if (!(_mouseOverObject getVariable [QGVAR(isSurrendering), false])) then { - ["SetSurrendered", [_mouseOverObject], [_mouseOverObject, true]] call EFUNC(common,targetEvent); - } else { - ["SetSurrendered", [_mouseOverObject], [_mouseOverObject, false]] call EFUNC(common,targetEvent); - }; - } else { - ["STR_ACE_Captives_Zeus_OnlyAlive"] call EFUNC(common,displayTextStructured); - }; - } else { - ["STR_ACE_Captives_Zeus_OnlyInfantry"] call EFUNC(common,displayTextStructured); - }; - } else { - ["STR_ACE_Captives_Zeus_NothingSelected"] call EFUNC(common,displayTextStructured); - }; - } else { - //an editor module - //Modules run before postInit can instal the event handler, so we need to wait a little bit - [{ - PARAMS_1(_units); - { - ["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent); - } forEach _units; - }, [_units], 0.05, 0.05]call EFUNC(common,waitAndExecute); - }; + //Modules run before postInit can instal the event handler, so we need to wait a little bit + [{ + PARAMS_1(_units); + { + ["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent); + } forEach _units; + }, [_units], 0.05, 0.05]call EFUNC(common,waitAndExecute); deleteVehicle _logic; }; diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index c987e75641..4e329675d1 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -157,42 +157,6 @@ Megadás abbahagyása Smetti di arrenderti - - Only use on alive units - Utiliser uniquement sur une unité vivante - Nur bei lebenden Einheiten verwendbar - Utilizar solo en unidades vivas - Použitelné jen na živé jednotky - Używaj tylko na żywych jednostkach - Применимо только к живым юнитам - Csak élő egységeken használni - Si può fare solo su persone vive - Usar somente em unidades vivas - - - Only use on dismounted inf - Utiliser uniquement sur du personnel à pied - Nur bei abgesessener Infanterie verwendbar - Utilizar solo en infanteria desmontada - Použitelné jen na pěsích jednotkách - Używaj tylko na piechocie poza wszelkimi pojazdami - Применимо только к пехоте вне техники - Csak járműben kívül lévő egységeken használni - Si può usare solo su fanteria a piedi - Usar somente em infantaria desmontada - - - Nothing under mouse - Rien sous le curseur - Es wurde nichts ausgewählt - Nada bajo el ratón - Nada debaixo do mouse - Nic není vybráno - Nie ma nic pod kursorem - Ничего не выделено - Semmi sincs az egér alatt - Nessuna selezione - Make Unit Surrender Poddaj się! diff --git a/addons/zeus/CfgFactionClasses.hpp b/addons/zeus/CfgFactionClasses.hpp deleted file mode 100644 index da8e845a43..0000000000 --- a/addons/zeus/CfgFactionClasses.hpp +++ /dev/null @@ -1,6 +0,0 @@ -class CfgFactionClasses { - class NO_CATEGORY; - class ADDON: NO_CATEGORY { - displayName = "$STR_ACE_Zeus_category"; - }; -}; diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp index cb7346e18d..439dede5b1 100644 --- a/addons/zeus/CfgVehicles.hpp +++ b/addons/zeus/CfgVehicles.hpp @@ -3,12 +3,24 @@ class CfgVehicles { class ModuleEmpty_F; class ACE_Module; - class GVAR(moduleZeusSettings): ACE_Module { + class ModuleCurator_F: Module_F { + function = QFUNC(bi_moduleCurator); + }; + class ModuleMine_F: ModuleEmpty_F { + function = QFUNC(bi_moduleMine); + }; + class ModuleOrdnance_F: Module_F { + function = QFUNC(bi_moduleProjectile); + }; + class ModuleRemoteControl_F: Module_F { + function = QFUNC(bi_moduleRemoteControl); + }; + class GVAR(moduleSettings): ACE_Module { scope = 2; displayName = "$STR_ACE_Zeus_Module_DisplayName"; - //icon = QUOTE(PATHTOF(iconGoesHere)); - category = "ACE_zeus"; - function = QUOTE(DFUNC(moduleZeusSettings)); + icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Settings_ca.paa)); + category = "ACE"; + function = QFUNC(moduleZeusSettings); functionPriority = 1; isGlobal = 1; isTriggerActivated = 0; @@ -64,17 +76,39 @@ class CfgVehicles { sync[] = {}; }; }; - - class ModuleCurator_F: Module_F { - function = QUOTE(DFUNC(bi_moduleCurator)); + class GVAR(moduleBase): Module_F { + author = "SilentSpike"; + category = "ACE"; + scopeCurator = 2; }; - class ModuleMine_F: ModuleEmpty_F { - function = QUOTE(DFUNC(bi_moduleMine)); + class GVAR(moduleCaptive): GVAR(moduleBase) { + curatorCanAttach = 1; + displayName = "$STR_ACE_Zeus_ModuleCaptive_DisplayName"; + function = QFUNC(moduleCaptive); + icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Captive_ca.paa)); + class ModuleDescription { + description = "Flips the capture state of the specified unit."; + sync[] = {}; + }; }; - class ModuleOrdnance_F: Module_F { - function = QUOTE(DFUNC(bi_moduleProjectile)); + class GVAR(moduleSurrender): GVAR(moduleBase) { + curatorCanAttach = 1; + displayName = "$STR_ACE_Zeus_ModuleSurrender_DisplayName"; + function = QFUNC(moduleSurrender); + icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Surrender_ca.paa)); + class ModuleDescription { + description = "Flips the surrender state of the specified unit."; + sync[] = {}; + }; }; - class ModuleRemoteControl_F: Module_F { - function = QUOTE(DFUNC(bi_moduleRemoteControl)); + class GVAR(moduleUnconscious): GVAR(moduleBase) { + curatorCanAttach = 1; + displayName = "$STR_ACE_Zeus_ModuleUnconscious_DisplayName"; + function = QFUNC(moduleUnconscious); + icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Unconscious_ca.paa)); + class ModuleDescription { + description = "Flips the unconscious state of the specified unit."; + sync[] = {}; + }; }; }; diff --git a/addons/zeus/XEH_preInit.sqf b/addons/zeus/XEH_preInit.sqf index e7bb1b96a5..1b2ac19263 100644 --- a/addons/zeus/XEH_preInit.sqf +++ b/addons/zeus/XEH_preInit.sqf @@ -6,6 +6,14 @@ PREP(bi_moduleCurator); PREP(bi_moduleMine); PREP(bi_moduleProjectile); PREP(bi_moduleRemoteControl); +PREP(handleZeusUnitAssigned); +PREP(moduleCaptive); +PREP(moduleSurrender); +PREP(moduleUnconscious); PREP(moduleZeusSettings); +if (isServer) then { + ["zeusUnitAssigned", FUNC(handleZeusUnitAssigned)] call EFUNC(common,addEventHandler); +}; + ADDON = true; diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp index 5ea4212dbb..7505f2770e 100644 --- a/addons/zeus/config.cpp +++ b/addons/zeus/config.cpp @@ -10,9 +10,25 @@ class CfgPatches { authorUrl = "https://github.com/SilentSpike"; VERSION_CONFIG; }; + // Use additional cfgPatches to contextually remove modules from zeus + class GVAR(captives): ADDON { + units[] = { + QGVAR(moduleCaptive), + QGVAR(moduleSurrender) + }; + }; + class GVAR(medical): ADDON { + units[] = { + QGVAR(moduleUnconscious) + }; + }; +}; + +class ACE_Curator { + GVAR(captives) = "ace_captives"; + GVAR(medical) = "ace_medical"; }; #include "CfgEventHandlers.hpp" -#include "CfgFactionClasses.hpp" #include "CfgVehicles.hpp" #include "ACE_Settings.hpp" diff --git a/addons/zeus/functions/fnc_bi_moduleCurator.sqf b/addons/zeus/functions/fnc_bi_moduleCurator.sqf index 016d1ae078..b33d7461cd 100644 --- a/addons/zeus/functions/fnc_bi_moduleCurator.sqf +++ b/addons/zeus/functions/fnc_bi_moduleCurator.sqf @@ -2,9 +2,12 @@ * Author: Bohemia Interactive * Module function for initalizing zeus * Edited to remove eagle and global ascension message + * Added "zeusUnitAssigned" event call * * Arguments: - * 0: The logic object + * 0: The module logic + * 1: units + * 2: activated * * Return Value: * nil @@ -169,6 +172,9 @@ if (_activated) then { [_logic,"curatorUnitAssigned",[_logic,_player]] call bis_fnc_callscriptedeventhandler; + // Added by ACE_zeus + ["zeusUnitAssigned", [_logic,_player]] call EFUNC(common,globalEvent); + //--- Forced interface //if (_forced) then { // [[true,true],"bis_fnc_forceCuratorInterface",_player] call bis_fnc_mp; diff --git a/addons/zeus/functions/fnc_bi_moduleMine.sqf b/addons/zeus/functions/fnc_bi_moduleMine.sqf index b5063c7fed..5eade0e0b4 100644 --- a/addons/zeus/functions/fnc_bi_moduleMine.sqf +++ b/addons/zeus/functions/fnc_bi_moduleMine.sqf @@ -4,7 +4,9 @@ * Edited to remove forced map markers and mines being revealed to players * * Arguments: - * 0: The logic object + * 0: The module logic + * 1: units + * 2: activated * * Return Value: * nil diff --git a/addons/zeus/functions/fnc_bi_moduleProjectile.sqf b/addons/zeus/functions/fnc_bi_moduleProjectile.sqf index 203d058d5a..3237d5be73 100644 --- a/addons/zeus/functions/fnc_bi_moduleProjectile.sqf +++ b/addons/zeus/functions/fnc_bi_moduleProjectile.sqf @@ -5,7 +5,9 @@ * Edited to remove radio warning and add ballistics support * * Arguments: - * 0: The logic object + * 0: The module logic + * 1: units + * 2: activated * * Return Value: * nil diff --git a/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf b/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf index 57b325b585..92cc786b23 100644 --- a/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf +++ b/addons/zeus/functions/fnc_bi_moduleRemoteControl.sqf @@ -4,7 +4,9 @@ * Edited to remove global wind sound * * Arguments: - * 0: The logic object + * 0: The module logic + * 1: units + * 2: activated * * Return Value: * nil diff --git a/addons/zeus/functions/fnc_handleZeusUnitAssigned.sqf b/addons/zeus/functions/fnc_handleZeusUnitAssigned.sqf new file mode 100644 index 0000000000..e5433bad27 --- /dev/null +++ b/addons/zeus/functions/fnc_handleZeusUnitAssigned.sqf @@ -0,0 +1,50 @@ +/* + * Author: SilentSpike + * Contextually removes addons (given in ACE_Curator) from zeus based on their required addon(s) + * + * ACE_Curator format: + * ModuleAddon = "RequiredAddon"; + * OR + * ModuleAddon[] = {"RequiredAddon1","RequiredAddon2",...} + * + * Arguments: + * 0: The zeus logic + * 1: The zeus player + * + * Return Value: + * nil + * + * Public: No + */ + +#include "script_component.hpp" + +private ["_logic","_removeAddons","_numCfgs","_cfg","_requiredAddon"]; + +if !(isClass (configFile >> "ACE_Curator")) exitWith { ERROR("The ACE_Curator class does not exist") }; + +_logic = _this select 0; +_removeAddons = []; + +_numCfgs = count (configFile >> "ACE_Curator"); +for "_n" from 0 to (_numCfgs - 1) do { + _cfg = (configFile >> "ACE_Curator") select _n; + + if (isArray _cfg) then { + _requiredAddon = getArray _cfg; + { + if !(isClass (configFile >> "CfgPatches" >> _x)) exitWith { + _removeAddons pushBack (configName _cfg); + }; + } forEach _requiredAddon; + }; + + if (isText _cfg) then { + _requiredAddon = getText _cfg; + if !(isClass (configFile >> "CfgPatches" >> _requiredAddon)) then { + _removeAddons pushBack (configName _cfg); + }; + }; +}; + +_logic removeCuratorAddons _removeAddons; diff --git a/addons/zeus/functions/fnc_moduleCaptive.sqf b/addons/zeus/functions/fnc_moduleCaptive.sqf new file mode 100644 index 0000000000..624117ed03 --- /dev/null +++ b/addons/zeus/functions/fnc_moduleCaptive.sqf @@ -0,0 +1,45 @@ +/* + * Author: SilentSpike + * Flips the capture state of the unit the module is attached to. + * + * Arguments: + * 0: The module logic + * 1: units + * 2: activated + * + * ReturnValue: + * nil + * + * Public: no + */ + +#include "script_component.hpp" + +PARAMS_3(_logic,_units,_activated); +private ["_unit","_captive"]; + +if (!_activated) exitWith {}; + +if (isNil QEFUNC(captives,setHandcuffed)) then { + ["STR_ACE_Zeus_RequiresAddon"] call EFUNC(common,displayTextStructured); +} else { + _unit = attachedTo _logic; + + if (isNull _unit) then { + ["STR_ACE_Zeus_NothingSelected"] call EFUNC(common,displayTextStructured); + } else { + if !(_unit isKindOf "CAManBase") then { + ["STR_ACE_Zeus_OnlyInfantry"] call EFUNC(common,displayTextStructured); + } else { + if !(alive _unit) then { + ["STR_ACE_Zeus_OnlyAlive"] call EFUNC(common,displayTextStructured); + } else { + _captive = GETVAR(_unit,EGVAR(captives,isHandcuffed),false); + // Event initalized by ACE_Captives + ["SetHandcuffed", _unit, [_unit, !_captive]] call EFUNC(common,targetEvent); + }; + }; + }; +}; + +deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_moduleSurrender.sqf b/addons/zeus/functions/fnc_moduleSurrender.sqf new file mode 100644 index 0000000000..094ece0979 --- /dev/null +++ b/addons/zeus/functions/fnc_moduleSurrender.sqf @@ -0,0 +1,49 @@ +/* + * Author: SilentSpike + * Flips the surrender state of the unit the module is attached to. + * + * Arguments: + * 0: The module logic + * 1: units + * 2: activated + * + * ReturnValue: + * nil + * + * Public: no + */ + +#include "script_component.hpp" + +PARAMS_3(_logic,_units,_activated); +private ["_unit","_surrendering"]; + +if (!_activated) exitWith {}; + +if (isNil QEFUNC(captives,setSurrendered)) then { + ["STR_ACE_Zeus_RequiresAddon"] call EFUNC(common,displayTextStructured); +} else { + _unit = attachedTo _logic; + + if (isNull _unit) then { + ["STR_ACE_Zeus_NothingSelected"] call EFUNC(common,displayTextStructured); + } else { + if !(_unit isKindOf "CAManBase") then { + ["STR_ACE_Zeus_OnlyInfantry"] call EFUNC(common,displayTextStructured); + } else { + if !(alive _unit) then { + ["STR_ACE_Zeus_OnlyAlive"] call EFUNC(common,displayTextStructured); + } else { + if (GETVAR(_unit,EGVAR(captives,isHandcuffed),false)) then { + ["STR_ACE_Zeus_OnlyNonCaptive"] call EFUNC(common,displayTextStructured); + } else { + _surrendering = GETVAR(_unit,EGVAR(captives,isSurrendering),false); + // Event initalized by ACE_Captives + ["SetSurrendered", _unit, [_unit, !_surrendering]] call EFUNC(common,targetEvent); + }; + }; + }; + }; +}; + +deleteVehicle _logic; diff --git a/addons/zeus/functions/fnc_moduleUnconscious.sqf b/addons/zeus/functions/fnc_moduleUnconscious.sqf new file mode 100644 index 0000000000..cf44b3e07e --- /dev/null +++ b/addons/zeus/functions/fnc_moduleUnconscious.sqf @@ -0,0 +1,45 @@ +/* + * Author: SilentSpike + * Flips the unconscious state of the unit the module is attached to. + * + * Arguments: + * 0: The module logic + * 1: units + * 2: activated + * + * ReturnValue: + * nil + * + * Public: no + */ + +#include "script_component.hpp" + +PARAMS_3(_logic,_units,_activated); +private ["_unit","_conscious"]; + +if (!_activated) exitWith {}; + +if (isNil QEFUNC(medical,setUnconscious)) then { + ["STR_ACE_Zeus_RequiresAddon"] call EFUNC(common,displayTextStructured); +} else { + _unit = attachedTo _logic; + + if (isNull _unit) then { + ["STR_ACE_Zeus_NothingSelected"] call EFUNC(common,displayTextStructured); + } else { + if !(_unit isKindOf "CAManBase") then { + ["STR_ACE_Zeus_OnlyInfantry"] call EFUNC(common,displayTextStructured); + } else { + if !(alive _unit) then { + ["STR_ACE_Zeus_OnlyAlive"] call EFUNC(common,displayTextStructured); + } else { + _conscious = GETVAR(_unit,ACE_isUnconscious,false); + // Function handles locality for me + [_unit, !_conscious, round(random(10)+5), true] call EFUNC(medical,setUnconscious); + }; + }; + }; +}; + +deleteVehicle _logic; diff --git a/addons/zeus/stringtable.xml b/addons/zeus/stringtable.xml index e756d5d085..d21814623a 100644 --- a/addons/zeus/stringtable.xml +++ b/addons/zeus/stringtable.xml @@ -2,8 +2,8 @@ - Zeus Settings [ACE] - Ustawienia Zeusa [ACE] + Zeus Settings + Ustawienia Zeusa Provides control over various aspects of Zeus. @@ -46,8 +46,8 @@ Pokazuj miny - Reveal mines to allies and/or place map markers. - Pokazuj znaczniki min dla sojuszników i/lub twórz markery na mapie w miejscu min. + Reveal mines to allies and place map markers. + Pokazuj znaczniki min dla sojuszników i twórz markery na mapie w miejscu min. Disabled @@ -61,9 +61,56 @@ Allies + Map Markers Sojusznicy + markery na mapie - - ACE Zeus - ACE Zeus + + Toggle Captive + + + Toggle Surrender + + + Toggle Unconscious + + + Unit must be alive + Utiliser uniquement sur une unité vivante + Nur bei lebenden Einheiten verwendbar + Utilizar solo en unidades vivas + Použitelné jen na živé jednotky + Używaj tylko na żywych jednostkach + Применимо только к живым юнитам + Csak élő egységeken használni + Si può fare solo su persone vive + Usar somente em unidades vivas + + + Unit must be infantry + Utiliser uniquement sur du personnel à pied + Nur bei abgesessener Infanterie verwendbar + Utilizar solo en infanteria desmontada + Použitelné jen na pěsích jednotkách + Używaj tylko na piechocie poza wszelkimi pojazdami + Применимо только к пехоте вне техники + Csak járműben kívül lévő egységeken használni + Si può usare solo su fanteria a piedi + Usar somente em infantaria desmontada + + + Unit must not be captive + + + Place on a unit + Rien sous le curseur + Es wurde nichts ausgewählt + Nada bajo el ratón + Nada debaixo do mouse + Nic není vybráno + Nie ma nic pod kursorem + Ничего не выделено + Semmi sincs az egér alatt + Nessuna selezione + + + Requires an addon that is not present diff --git a/addons/zeus/ui/Icon_Module_Zeus_Captive_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Captive_ca.paa new file mode 100644 index 0000000000..aa7eb0faf8 Binary files /dev/null and b/addons/zeus/ui/Icon_Module_Zeus_Captive_ca.paa differ diff --git a/addons/zeus/ui/Icon_Module_Zeus_Settings_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Settings_ca.paa new file mode 100644 index 0000000000..58bbe312ce Binary files /dev/null and b/addons/zeus/ui/Icon_Module_Zeus_Settings_ca.paa differ diff --git a/addons/zeus/ui/Icon_Module_Zeus_Surrender_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Surrender_ca.paa new file mode 100644 index 0000000000..6ddabf4d56 Binary files /dev/null and b/addons/zeus/ui/Icon_Module_Zeus_Surrender_ca.paa differ diff --git a/addons/zeus/ui/Icon_Module_Zeus_Unconscious_ca.paa b/addons/zeus/ui/Icon_Module_Zeus_Unconscious_ca.paa new file mode 100644 index 0000000000..fb179e40fc Binary files /dev/null and b/addons/zeus/ui/Icon_Module_Zeus_Unconscious_ca.paa differ diff --git a/extras/assets/icons/Icons_Modules.psd b/extras/assets/icons/Icons_Modules.psd index 9686644521..af9b9abaa0 100644 Binary files a/extras/assets/icons/Icons_Modules.psd and b/extras/assets/icons/Icons_Modules.psd differ diff --git a/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Captive_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Captive_ca.png new file mode 100644 index 0000000000..f40078473c Binary files /dev/null and b/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Captive_ca.png differ diff --git a/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Settings_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Settings_ca.png new file mode 100644 index 0000000000..517c060180 Binary files /dev/null and b/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Settings_ca.png differ diff --git a/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Surrender_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Surrender_ca.png new file mode 100644 index 0000000000..5d7d08b50a Binary files /dev/null and b/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Surrender_ca.png differ diff --git a/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Unconscious_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Unconscious_ca.png new file mode 100644 index 0000000000..abbb79bb9b Binary files /dev/null and b/extras/assets/icons/png/Icon_Module/Icon_Module_Zeus_Unconscious_ca.png differ