@@ -22,6 +22,15 @@ ResetPolicy = ResetPolicy or utils.invert({
2222 " NewInstance"
2323})
2424
25+ function eraseSyndromeData (unit ,syndromeId ,oldestFirst )
26+ for i = (oldestFirst and 0 ) or # unit .body .wounds - 1 ,(oldestFirst and # unit .body .wounds - 1 ) or 0 ,(oldestFirst and 1 ) or - 1 do
27+ if unit .body .wounds [i ].syndrome_id == syndromeId then
28+ unit .body .wounds :erase (i )
29+ break
30+ end
31+ end
32+ end
33+
2534function eraseSyndrome (unit ,syndromeId ,oldestFirst )
2635 local i1
2736 local iN
@@ -38,6 +47,7 @@ function eraseSyndrome(unit,syndromeId,oldestFirst)
3847 local syndromes = unit .syndromes .active
3948 for i = i1 ,iN ,d do
4049 if syndromes [i ][' type' ] == syndromeId then
50+ eraseSyndromeData (unit ,syndromeId ,oldestFirst )
4151 syndromes :erase (i )
4252 return true
4353 end
@@ -50,6 +60,7 @@ local function eraseSyndromeClassHelper(unit,synclass)
5060 local syndrome = df .syndrome .find (unitSyndrome .type )
5161 for _ ,class in ipairs (syndrome .syn_class ) do
5262 if class .value == synclass then
63+ eraseSyndromeData (unit ,syndrome .id )
5364 unit .syndromes .active :erase (i )
5465 return true
5566 end
@@ -172,4 +183,3 @@ function infectWithSyndromeIfValidTarget(target,syndrome,resetPolicy)
172183end
173184
174185return _ENV
175-
0 commit comments