Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Класс GameplayEffectsData

Manages all bleeding indicators and their updates. Подробнее...

Защищенные члены

void GameplayEffectsDataBleeding (array< ref Widget > input, int type, int user_override=-1)
 
override void Init (array< ref Widget > input, int type, Widget layout_root, int user_override=-1)
 
override bool HasDefinedHandle ()
 
override bool DataInitialized ()
 
override void RegisterData (Param p)
 
void RegisterBleedingIndicatorInstance (int bit, float flow_modifier)
 
void SpawnBleedingIndicator (int source_ID, vector position)
 
int CalculateSeverity (float flow_modifier)
 
ImageWidget GetNextDropImage ()
 
void StopBleedingIndicator (int source_ID, bool instant=false)
 
void UpdateBleedingIndicators (float timeSlice)
 
void CleanupBleedingIndicators ()
 
override void Update (float timeSlice=0, Param p=null, int handle=-1)
 
override void UpdateVisibility (bool state)
 
override void ForceStop ()
 stops and re-sets indicators and images even out of sequence. Should still be tied to the 'player' update, though!
 
void BuildProbabilityData (int severity, float frequency)
 
array< floatGetProbabilities (int severity)
 
void BuildPositioningData ()
 
vector GenerateSequenceRandomPosition ()
 

Защищенные данные

bool m_Initialized
 
bool m_Visible
 
ref map< int, ref BleedingIndicator > m_RegisteredInstances
 
ref array< intm_CleanupQueue
 
ref array< intm_RunningIndicators
 
int m_LastDropIdx
 
int m_ImageWidgetCount
 
ref map< int, ref array< float > > m_ProbabilityMap
 
ref array< Widgetm_PositioningFramesArray
 
Widget m_BloodDropsFrame
 
int m_LastPositionFrameUsed
 

Подробное описание

Manages all bleeding indicators and their updates.

Методы

◆ BuildPositioningData()

void BuildPositioningData ( )
inlineprotected
249 {
250 Widget frameParent = m_LayoutRoot.FindAnyWidget("PoisitioningFrames");
251 if (frameParent)
252 {
254 {
256 }
257
258 Widget frame = frameParent.GetChildren();
259 while (frame)
260 {
262 frame = frame.GetSibling();
263 }
264 }
265 }
ref array< Widget > m_PositioningFramesArray
Definition GEWidgetsMetaDataBleeding.c:13
Definition EntityAI.c:95
Definition EnWidgets.c:190

Используется в Init().

◆ BuildProbabilityData()

void BuildProbabilityData ( int severity,
float frequency )
inlineprotected
222 {
223 if (!m_ProbabilityMap)
224 {
226 }
227
229
231 {
233 }
234
236 }
Definition BleedingIndicationConstants.c:2
static const int SEQUENCE_STEPS
Definition BleedingIndicationConstants.c:8
ref map< int, ref array< float > > m_ProbabilityMap
Definition GEWidgetsMetaDataBleeding.c:12
Definition EnMath.c:7
static float Poisson(float mean, int occurences)
occurences values above '12' will cause Factorial to overflow int.
Definition EnMath.c:681

Перекрестные ссылки Math::Poisson() и BleedingIndicationConstants::SEQUENCE_STEPS.

Используется в Init().

◆ CalculateSeverity()

int CalculateSeverity ( float flow_modifier)
inlineprotected
100 {
101 switch (flow_modifier)
102 {
105
108
111 }
113 }
static const int INDICATOR_SEVERITY_MEDIUM
Definition BleedingIndicationConstants.c:6
static const int INDICATOR_SEVERITY_HIGH
Definition BleedingIndicationConstants.c:7
static const int INDICATOR_SEVERITY_LOW
Definition BleedingIndicationConstants.c:5
Definition PlayerConstants.c:2
static const float BLEEDING_SOURCE_FLOW_MODIFIER_LOW
Definition PlayerConstants.c:159
static const float BLEEDING_SOURCE_FLOW_MODIFIER_HIGH
Definition PlayerConstants.c:160
static const float BLEEDING_SOURCE_FLOW_MODIFIER_MEDIUM
Definition PlayerConstants.c:158

Перекрестные ссылки PlayerConstants::BLEEDING_SOURCE_FLOW_MODIFIER_HIGH, PlayerConstants::BLEEDING_SOURCE_FLOW_MODIFIER_LOW, PlayerConstants::BLEEDING_SOURCE_FLOW_MODIFIER_MEDIUM, BleedingIndicationConstants::INDICATOR_SEVERITY_HIGH, BleedingIndicationConstants::INDICATOR_SEVERITY_LOW и BleedingIndicationConstants::INDICATOR_SEVERITY_MEDIUM.

Используется в RegisterBleedingIndicatorInstance().

◆ CleanupBleedingIndicators()

void CleanupBleedingIndicators ( )
inlineprotected
146 {
147 for (int i = 0; i < m_CleanupQueue.Count(); i++)
148 {
150 }
151 m_CleanupQueue.Clear();
152 }
ref array< int > m_CleanupQueue
Definition GEWidgetsMetaDataBleeding.c:8
ref array< int > m_RunningIndicators
Definition GEWidgetsMetaDataBleeding.c:9

Используется в Update().

◆ DataInitialized()

override bool DataInitialized ( )
inlineprotected
50 {
51 return m_Initialized;
52 }
bool m_Initialized
Definition GEWidgetsMetaDataBleeding.c:5

Перекрестные ссылки m_Initialized.

◆ ForceStop()

override void ForceStop ( )
inlineprotected

stops and re-sets indicators and images even out of sequence. Should still be tied to the 'player' update, though!

211 {
212 super.ForceStop();
213
214 foreach (int i: m_RunningIndicators)
215 {
216 m_RegisteredInstances.Get(i).StopIndicator(true);
217 }
218 Update();
219 }
ref map< int, ref BleedingIndicator > m_RegisteredInstances
Definition GEWidgetsMetaDataBleeding.c:7
proto native volatile void Update()
Definition PlayerSoundManager.c:125

Перекрестные ссылки m_RunningIndicators и Update().

◆ GameplayEffectsDataBleeding()

void GameplayEffectsDataBleeding ( array< ref Widget > input,
int type,
int user_override = -1 )
inlineprotected

Перекрестные ссылки m_Initialized.

◆ GenerateSequenceRandomPosition()

vector GenerateSequenceRandomPosition ( )
inlineprotected
268 {
270 {
274 {
275 index++;
276 if (index >= arrayCount)
277 {
278 index = 0;
279 }
280 }
281
284
285 if (frame)
286 {
287 int screenX,screenY;
288 float x,y,x_size,y_size;
289 frame.GetScreenPos(x,y);
290 frame.GetScreenSize(x_size,y_size);
291
294
295 return Vector(x,y,0);
296 }
297 }
298 return vector.Zero;
299 }
Icon x
Icon y
int m_LastPositionFrameUsed
Definition GEWidgetsMetaDataBleeding.c:16
Definition EnConvert.c:106
static const vector Zero
Definition EnConvert.c:110
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static proto int RandomInt(int min, int max)
Returns a random int number between and min [inclusive] and max [exclusive].
static float RandomFloatInclusive(float min, float max)
Returns a random float number between and min [inclusive] and max [inclusive].
Definition EnMath.c:106

Перекрестные ссылки Math::RandomFloatInclusive(), Math::RandomInt(), Vector(), x, y и vector::Zero.

Используется в SpawnBleedingIndicator().

◆ GetNextDropImage()

ImageWidget GetNextDropImage ( )
inlineprotected
116 {
119 {
120 m_LastDropIdx = 0;
121 }
122
123 return ImageWidget.Cast(m_WidgetArray[m_LastDropIdx]);
124 }
int m_LastDropIdx
Definition GEWidgetsMetaDataBleeding.c:10
int m_ImageWidgetCount
Definition GEWidgetsMetaDataBleeding.c:11

◆ GetProbabilities()

array< float > GetProbabilities ( int severity)
inlineprotected
239 {
241 if (!ret)
242 {
243 ErrorEx("No defined data for the selected severity!");
244 }
245 return ret;
246 }
enum ShapeType ErrorEx

Перекрестные ссылки ErrorEx.

◆ HasDefinedHandle()

override bool HasDefinedHandle ( )
inlineprotected
45 {
46 return true;
47 }

◆ Init()

override void Init ( array< ref Widget > input,
int type,
Widget layout_root,
int user_override = -1 )
inlineprotected
27 {
29
30 m_WidgetArray.ShuffleArray(); //shuffles order of the widgets on every init
31 m_ImageWidgetCount = m_WidgetArray.Count();
32 m_BloodDropsFrame = m_LayoutRoot.FindAnyWidgetById(EffectWidgetsTypes.BLEEDING_LAYER);
33 m_Visible = g_Game.GetProfileOption(EDayZProfilesOptions.BLEEDINGINDICATION);
35 m_LastDropIdx = -1;
37
42 }
DayZGame g_Game
Definition DayZGame.c:3746
EDayZProfilesOptions
Definition EDayZProfilesOptions.c:2
static const float SEQUENCE_DROP_AVERAGE_MEDIUM
Definition BleedingIndicationConstants.c:38
static const float SEQUENCE_DROP_AVERAGE_LOW
Definition BleedingIndicationConstants.c:25
static const float SEQUENCE_DROP_AVERAGE_HIGH
Definition BleedingIndicationConstants.c:51
void BuildProbabilityData(int severity, float frequency)
Definition GEWidgetsMetaDataBleeding.c:221
Widget m_BloodDropsFrame
Definition GEWidgetsMetaDataBleeding.c:14
void BuildPositioningData()
Definition GEWidgetsMetaDataBleeding.c:248
bool m_Visible
Definition GEWidgetsMetaDataBleeding.c:6

Перекрестные ссылки BuildPositioningData(), BuildProbabilityData(), g_Game, BleedingIndicationConstants::INDICATOR_SEVERITY_HIGH, BleedingIndicationConstants::INDICATOR_SEVERITY_LOW, BleedingIndicationConstants::INDICATOR_SEVERITY_MEDIUM, m_Visible, BleedingIndicationConstants::SEQUENCE_DROP_AVERAGE_HIGH, BleedingIndicationConstants::SEQUENCE_DROP_AVERAGE_LOW и BleedingIndicationConstants::SEQUENCE_DROP_AVERAGE_MEDIUM.

◆ RegisterBleedingIndicatorInstance()

void RegisterBleedingIndicatorInstance ( int bit,
float flow_modifier )
inlineprotected
81 {
83 BleedingIndicator indicator = new BleedingIndicator(bit,severity,this); //source_ID == bit for the purpose of pairing
85 }
int CalculateSeverity(float flow_modifier)
Definition GEWidgetsMetaDataBleeding.c:99

Перекрестные ссылки CalculateSeverity().

Используется в RegisterData().

◆ RegisterData()

override void RegisterData ( Param p)
inlineprotected
55 {
56 if (m_Initialized)
57 {
58 #ifdef DEVELOPER
59 ErrorEx("" + this + " is already initialized, further registration not possible!");
60 #else
61 Debug.Log("ERROR: " + this + " is already initialized, further registration not possible!");
62 #endif
63 return;
64 }
65
66 //<finish registration,bit,flow_modifier>
68 if (Class.CastTo(par,p))
69 {
70 if (par.param1 == true) //finish registration
71 {
72 m_Initialized = true;
73 return;
74 }
75
77 }
78 }
Super root of all classes in Enforce script.
Definition EnScript.c:11
Definition Debug.c:14
static void Log(string message=LOG_DEFAULT, string plugin=LOG_DEFAULT, string author=LOG_DEFAULT, string label=LOG_DEFAULT, string entity=LOG_DEFAULT)
Prints debug message with normal prio.
Definition Debug.c:136
void RegisterBleedingIndicatorInstance(int bit, float flow_modifier)
Definition GEWidgetsMetaDataBleeding.c:80
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.

Перекрестные ссылки Class::CastTo(), ErrorEx, Debug::Log(), m_Initialized и RegisterBleedingIndicatorInstance().

◆ SpawnBleedingIndicator()

void SpawnBleedingIndicator ( int source_ID,
vector position )
inlineprotected
88 {
89 if (m_RunningIndicators.Find(source_ID) != -1)
90 {
91 return;
92 }
93 BleedingIndicator indicator = m_RegisteredInstances.Get(source_ID);
94 //indicator.InitIndicator(position); //would be nice if we could pair the indicator position to the hit position that caused the bleeding, wouldn't it
97 }
vector GenerateSequenceRandomPosition()
Definition GEWidgetsMetaDataBleeding.c:267

Перекрестные ссылки GenerateSequenceRandomPosition().

Используется в Update().

◆ StopBleedingIndicator()

void StopBleedingIndicator ( int source_ID,
bool instant = false )
inlineprotected
127 {
128 m_RegisteredInstances.Get(source_ID).StopIndicator(instant); //stop queued, evaluated on update!
129 }

Используется в Update().

◆ Update()

override void Update ( float timeSlice = 0,
Param p = null,
int handle = -1 )
inlineprotected
155 {
156 //starts or ends a bleeding indicator
157 if (p)
158 {
159 //start/stop of the indicator
160 //<state,bit,position,immediate>
162
163 //hide/show of bleeding effect visuals
164 //<state>
166
167 if (Class.CastTo(par,p))
168 {
169 bool state = par.param1;
170 if (state) //queue add indicator
171 {
172 SpawnBleedingIndicator(par.param2,par.param3);
173 }
174 else //queue stop indicator
175 {
176 StopBleedingIndicator(par.param2,par.param4);
177 }
178 }
179 else if (Class.CastTo(parShow,p) && m_Visible != parShow.param1)
180 {
181 m_Visible = parShow.param1;
183 }
184 }
185
186 //updates bleeding indicators
189
190 if (m_RunningIndicators.Count() <= 0)
191 {
192 GetGame().GetMission().GetEffectWidgets().RemoveActiveEffects({EffectWidgetsTypes.BLEEDING_LAYER});
193 m_WidgetArray.ShuffleArray();
194 }
195 }
void StopBleedingIndicator(int source_ID, bool instant=false)
Definition GEWidgetsMetaDataBleeding.c:126
void UpdateBleedingIndicators(float timeSlice)
Definition GEWidgetsMetaDataBleeding.c:131
void CleanupBleedingIndicators()
Definition GEWidgetsMetaDataBleeding.c:145
void SpawnBleedingIndicator(int source_ID, vector position)
Definition GEWidgetsMetaDataBleeding.c:87
proto native CGame GetGame()

Перекрестные ссылки Class::CastTo(), CleanupBleedingIndicators(), GetGame(), m_Visible, SpawnBleedingIndicator(), StopBleedingIndicator() и UpdateBleedingIndicators().

◆ UpdateBleedingIndicators()

void UpdateBleedingIndicators ( float timeSlice)
inlineprotected
132 {
133 BleedingIndicator bib;
134 for (int i = 0; i < m_RunningIndicators.Count(); i++)
135 {
137 bib.Update(timeSlice);
138 if ( bib.GetEndNow() )
139 {
141 }
142 }
143 }

Используется в Update().

◆ UpdateVisibility()

override void UpdateVisibility ( bool state)
inlineprotected
198 {
199 m_Visible = g_Game.GetProfileOption(EDayZProfilesOptions.BLEEDINGINDICATION); //ugh
200 //manage layout visibility
202 while (w && w != m_LayoutRoot && m_Visible == state && w.IsVisibleHierarchy() != state)
203 {
204 w.Show(state);
205 w = w.GetParent();
206 }
207 }

Перекрестные ссылки g_Game, m_BloodDropsFrame и m_Visible.

Поля

◆ m_BloodDropsFrame

Widget m_BloodDropsFrame
protected

Используется в UpdateVisibility().

◆ m_CleanupQueue

ref array<int> m_CleanupQueue
protected

◆ m_ImageWidgetCount

int m_ImageWidgetCount
protected

◆ m_Initialized

bool m_Initialized
protected

Используется в DataInitialized().

◆ m_LastDropIdx

int m_LastDropIdx
protected

◆ m_LastPositionFrameUsed

int m_LastPositionFrameUsed
protected

◆ m_PositioningFramesArray

ref array<Widget> m_PositioningFramesArray
protected

◆ m_ProbabilityMap

ref map<int,ref array<float> > m_ProbabilityMap
protected

◆ m_RegisteredInstances

ref map<int,ref BleedingIndicator> m_RegisteredInstances
protected

◆ m_RunningIndicators

ref array<int> m_RunningIndicators
protected

Используется в ForceStop().

◆ m_Visible

bool m_Visible
protected

Объявления и описания членов класса находятся в файле: