Download Data/CharacterEffectCompositeDef/BandageInCombat.lua from sirnii/myspace: direct link, hf CLI and curl.
- Browser
- Download file 2.93 kB
-
https://huggingface.co/spaces/sirnii/myspace/resolve/main/Data/CharacterEffectCompositeDef/BandageInCombat.lua
- Command line
-
hf download hf://spaces/sirnii/myspace/Data/CharacterEffectCompositeDef/BandageInCombat.lua
-
curl -L -o BandageInCombat.lua https://huggingface.co/spaces/sirnii/myspace/resolve/main/Data/CharacterEffectCompositeDef/BandageInCombat.lua
2.93 kB
| -- ========== GENERATED BY CharacterEffectCompositeDef Editor DO NOT EDIT MANUALLY! ========== | |
| PlaceObj('CharacterEffectCompositeDef', { | |
| 'Group', "System", | |
| 'Id', "BandageInCombat", | |
| 'Comment', "handles the logic for the unit bandaging a downed unit", | |
| 'object_class', "StatusEffect", | |
| 'unit_reactions', { | |
| PlaceObj('UnitReaction', { | |
| Event = "OnBeginTurn", | |
| Handler = function (self, target) | |
| local patient = target:GetBandageTarget() | |
| local medicine = target:GetBandageMedicine() | |
| if not patient or not medicine or patient.command == "Die" or patient:IsDead() or patient.HitPoints >= patient.MaxHitPoints then | |
| target:RemoveStatusEffect("BandageInCombat") | |
| end | |
| end, | |
| }), | |
| PlaceObj('UnitReaction', { | |
| Event = "OnEndTurn", | |
| Handler = function (self, target) | |
| local patient = target:GetBandageTarget() | |
| local medicine = target:GetBandageMedicine() | |
| if not IsValid(patient) or patient.command == "Die" or patient:IsDead() or patient.HitPoints >= patient.MaxHitPoints then | |
| target:RemoveStatusEffect(self.class) | |
| return | |
| end | |
| if patient:IsDowned() then | |
| local stabilized = patient:GetStatusEffect("Stabilized") | |
| stabilized = stabilized and stabilized:ResolveValue("stabilized") | |
| if stabilized or RollSkillCheck(target, "Medical") then | |
| patient:SetCommand("DownedRally", target, medicine) | |
| else | |
| patient:AddStatusEffect("Stabilized") | |
| end | |
| else | |
| patient:GetBandaged(medicine, target) | |
| if patient.HitPoints >= patient.MaxHitPoints then | |
| patient:RemoveStatusEffect("BeingBandaged") | |
| target:RemoveStatusEffect(self.class) | |
| end | |
| end | |
| end, | |
| }), | |
| }, | |
| 'DisplayName', T(725524260335, --[[CharacterEffectCompositeDef BandageInCombat DisplayName]] "Treating"), | |
| 'Description', T(829769124050, --[[CharacterEffectCompositeDef BandageInCombat Description]] "Bandaging an ally. No more actions available this turn. Effectiveness of the action depends on Medical skill."), | |
| 'OnAdded', function (self, obj) | |
| local target = obj:GetBandageTarget() | |
| if target then | |
| target:RemoveStatusEffect("Downed") | |
| target:RemoveStatusEffect("BleedingOut") | |
| end | |
| obj:RemoveStatusEffect("FreeMove") | |
| end, | |
| 'OnRemoved', function (self, obj) | |
| local target = obj:GetBandageTarget() | |
| if not target or not g_Combat then return end | |
| target:RemoveStatusEffect("BeingBandaged") | |
| if target and not target:IsDead() and target:IsDowned() and not target:HasStatusEffect("Unconscious") then | |
| target:RemoveStatusEffect("Stabilized") | |
| target:AddStatusEffect("BleedingOut") | |
| end | |
| if not obj:IsDead() then | |
| obj:ClearBehaviors("Bandage") | |
| if CurrentThread() == obj.command_thread then | |
| obj:QueueCommand("EndCombatBandage") -- make sure it does not break the RemoveStatusEffect call | |
| else | |
| obj:SetCommand("EndCombatBandage") | |
| end | |
| end | |
| end, | |
| 'Icon', "UI/Hud/Status effects/treating", | |
| 'RemoveOnSatViewTravel', true, | |
| 'Shown', true, | |
| }) | |