28 super.Init(input, type, layout_root, user_override);
30 m_WidgetArray.ShuffleArray();
32 m_BloodDropsFrame = m_LayoutRoot.FindAnyWidgetById(EffectWidgetsTypes.BLEEDING_LAYER);
59 ErrorEx(
"" +
this +
" is already initialized, further registration not possible!");
61 Debug.Log(
"ERROR: " +
this +
" is already initialized, further registration not possible!");
68 if (
Class.CastTo(par,p))
70 if (par.param1 ==
true)
83 BleedingIndicator indicator =
new BleedingIndicator(bit,severity,
this);
101 switch (flow_modifier)
133 BleedingIndicator bib;
137 bib.Update(timeSlice);
138 if ( bib.GetEndNow() )
154 override void Update(
float timeSlice = 0,
Param p = null,
int handle = -1)
161 Param4<bool,int,vector,bool> par;
165 Param1<bool> parShow;
167 if (
Class.CastTo(par,p))
169 bool state = par.param1;
192 g_Game.GetMission().GetEffectWidgets().RemoveActiveEffects({EffectWidgetsTypes.BLEEDING_LAYER});
193 m_WidgetArray.ShuffleArray();
202 while (w && w != m_LayoutRoot &&
m_Visible == state && w.IsVisibleHierarchy() != state)
232 probabilities.Insert(
Math.Poisson(frequency,i));
243 ErrorEx(
"No defined data for the selected severity!");
250 Widget frameParent = m_LayoutRoot.FindAnyWidget(
"PoisitioningFrames");
258 Widget frame = frameParent.GetChildren();
262 frame = frame.GetSibling();
272 int index =
Math.RandomInt(0,arrayCount);
276 if (index >= arrayCount)
288 float x,
y,x_size,y_size;
289 frame.GetScreenPos(
x,
y);
290 frame.GetScreenSize(x_size,y_size);
292 x =
Math.RandomFloatInclusive(
x,
x+x_size);
293 y =
Math.RandomFloatInclusive(
y,
y+y_size);
Super root of all classes in Enforce script.
Manages all bleeding indicators and their updates.
override bool DataInitialized()
ref map< int, ref BleedingIndicator > m_RegisteredInstances
override void Init(array< ref Widget > input, int type, Widget layout_root, int user_override=-1)
override void ForceStop()
stops and re-sets indicators and images even out of sequence. Should still be tied to the 'player' up...
ref array< int > m_CleanupQueue
ImageWidget GetNextDropImage()
override void RegisterData(Param p)
ref array< Widget > m_PositioningFramesArray
void CleanupBleedingIndicators()
void SpawnBleedingIndicator(int source_ID, vector position)
array< float > GetProbabilities(int severity)
override void Update(float timeSlice=0, Param p=null, int handle=-1)
vector GenerateSequenceRandomPosition()
ref map< int, ref array< float > > m_ProbabilityMap
void BuildProbabilityData(int severity, float frequency)
int CalculateSeverity(float flow_modifier)
override void UpdateVisibility(bool state)
ref array< int > m_RunningIndicators
void GameplayEffectsDataBleeding(array< ref Widget > input, int type, int user_override=-1)
void BuildPositioningData()
override bool HasDefinedHandle()
int m_LastPositionFrameUsed
void StopBleedingIndicator(int source_ID, bool instant=false)
void UpdateBleedingIndicators(float timeSlice)
void RegisterBleedingIndicatorInstance(int bit, float flow_modifier)
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native vector Vector(float x, float y, float z)
Vector constructor from components.