DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ EEHitBy()

override void GetBurningMaterial::EEHitBy ( TotalDamageResult damageResult,
int damageType,
EntityAI source,
int component,
string dmgZone,
string ammo,
vector modelPos,
float speedCoef )

См. определение в файле Broom.c строка 180

181{
182 override void Init()
183 {
184 super.Init();
185 m_DecraftResult = "LongWoodenStick";
186 m_ParticleLocalPos = Vector(0, 1.2, 0);
187 }
188
189 override void SetActions()
190 {
191 super.SetActions();
192
195 }
196
197 override bool CanReceiveUpgrade()
198 {
199 return false;
200 }
201
202 override void OnWorkStart()
203 {
204 super.OnWorkStart();
206 }
207
208 override void ApplyResultModifications(ItemBase result)
209 {
210 result.SetHealth(result.GetHealthLevelValue(2,""));
211 result.SetQuantity(1);
212 }
213
214 override bool CanTransformIntoStick()
215 {
216 if ( GetGame().IsServer() && !IsIgnited() && GetEnergy() < 1 && !IsSetForDeletion())
217 return true;
218 else
219 return false;
220 }
221
222
223 override void EEHitBy(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
224 {
225 super.EEHitBy(damageResult, damageType, source, component, dmgZone, ammo, modelPos, speedCoef);
226
227 GetCompEM().SetEnergy0To1(GetHealth01("",""));
228 }
229
230
231 override void CalculateQuantity()
232 {
233 if (GetGame().IsServer())
234 {
235 float currentHealth01 = GetHealth01();
236 float currentEnergy01 = GetCompEM().GetEnergy0To1();
237
238 //Health needs to copy internal energy, but only if that means it will be going down from its current value(the item can't heal itself after obtaining damage just because it has full internal energy)
239 SetHealth01("","",Math.Min(currentHealth01,currentEnergy01));
240 //Energy needs to copy health, but only if it is higher(in 01 terms) than health, that means if an item with full energy gets damaged and lit, the internal energy needs to be adjusted to follow the health. Situations where internal energy is lower than health are handled on the line above
241 GetCompEM().SetEnergy0To1(GetHealth01());
242 }
243 }
244
245 override void UpdateParticle()
246 {
247 float normalizedQuant = GetQuantity() / GetQuantityMax();
248
249 if (!m_FireParticle)
250 {
251 m_FireParticle = ParticleManager.GetInstance().PlayOnObject(ParticleList.BROOM_TORCH_T1, this, m_ParticleLocalPos);
252 }
253 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.VELOCITY, 1.0);
254 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.VELOCITY_RND, 1.0);
255 if (m_FireParticle)
256 {
257 float scale = Math.Max(normalizedQuant * 2.4, 0.4);
258
259 m_FireParticle.ScaleParticleParamFromOriginal(EmitorParam.SIZE, scale);
260 }
261 }
262
263 // DEBUG BELLOW
264 void DebugSetHealthAndEnergy(float time)
265 {
266 float max_energy = GetCompEM().GetEnergyMaxPristine();
267 float health01 = Math.InverseLerp(0, max_energy, time);
268 SetHealth01("","", health01);
269 GetCompEM().SetEnergy( time );
270 }
271
272 override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
273 {
274 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_VERY_SHORT, "SetBurnTimeTo15Secs", FadeColors.LIGHT_GREY));
275 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_SHORT, "SetBurnTimeTo1Min", FadeColors.LIGHT_GREY));
276 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_MEDIUM, "SetBurnTimeTo10Min", FadeColors.LIGHT_GREY));
277 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.BROOM_BURN_LONG, "SetBurnTimeToMax", FadeColors.LIGHT_GREY));
278 outputList.Insert(new TSelectableActionInfoWithColor(SAT_DEBUG_ACTION, EActions.SEPARATOR, "___________________________", FadeColors.LIGHT_GREY));
279
280 super.GetDebugActions(outputList);
281 }
282
283 override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
284 {
285 if (super.OnAction(action_id, player, ctx))
286 return true;
287 if (GetGame().IsServer() || !GetGame().IsMultiplayer())
288 {
289 if (action_id == EActions.BROOM_BURN_VERY_SHORT)
290 {
292 OnIgnitedThis(null);
293 }
294 else if (action_id == EActions.BROOM_BURN_SHORT)
295 {
297 OnIgnitedThis(null);
298 }
299 else if (action_id == EActions.BROOM_BURN_MEDIUM)
300 {
302 OnIgnitedThis(null);
303 }
304 else if (action_id == EActions.BROOM_BURN_LONG)
305 {
306 DebugSetHealthAndEnergy(GetCompEM().GetEnergyMaxPristine());
307 OnIgnitedThis(null);
308 }
309 }
310 return false;
311 }
312
313}
314
315class Broom: BroomBase
316{
317 override string GetBurningMaterial()
318 {
319 return "DZ\\gear\\tools\\data\\broom_emissive.rvmat";
320 }
321
322 override string GetBurntMaterial()
323 {
324 return "DZ\\gear\\tools\\data\\broom_burn.rvmat";
325 }
326}
Param4< int, int, string, int > TSelectableActionInfoWithColor
Определения EntityAI.c:97
void AddAction(typename actionName)
Определения AdvancedCommunication.c:220
override void UpdateParticle()
Определения Broom.c:202
override void CalculateQuantity()
Определения Broom.c:188
override void GetDebugActions(out TSelectableActionInfoArrayEx outputList)
Определения Broom.c:229
override bool CanReceiveUpgrade()
Определения Broom.c:154
override void SetActions()
Определения Broom.c:146
override void OnWorkStart()
Определения Broom.c:159
override bool OnAction(int action_id, Man player, ParamsReadContext ctx)
Определения Broom.c:240
override bool CanTransformIntoStick()
Определения Broom.c:171
override void Init()
Launched from 'DayZGame.DeferredInit' to make earlier access, use, and updates impossible (downside o...
Определения Broom.c:139
override void EEHitBy(TotalDamageResult damageResult, int damageType, EntityAI source, int component, string dmgZone, string ammo, vector modelPos, float speedCoef)
Определения Broom.c:180
void DebugSetHealthAndEnergy(float time)
Определения Broom.c:221
override void ApplyResultModifications(ItemBase result)
Определения Broom.c:165
EActions
Определения EActions.c:2
override void OnIgnitedThis(EntityAI fire_source)
Executed on Server when some item ignited this one.
Определения FireworksBase.c:96
class BoxCollidingParams component
ComponentInfo for BoxCollidingResult.
override float GetQuantity()
Определения ItemBase.c:8154
float GetEnergy()
Определения ItemBase.c:8278
override int GetQuantityMax()
Определения ItemBase.c:8106
void ParticleManager(ParticleManagerSettings settings)
Constructor (ctor)
Определения ParticleManager.c:88
Определения Broom.c:2
Определения Building.c:6
override void SetActions()
Определения Torch.c:754
string GetBurningMaterial()
Определения Torch.c:796
string GetBurntMaterial()
Определения Torch.c:801
Определения Torch.c:2
override bool SetQuantity(float value, bool destroy_config=true, bool destroy_forced=false, bool allow_client=false, bool clamp_to_stack_max=true)
Определения PileOfWoodenPlanks.c:88
Определения InventoryItem.c:731
Определения EnMath.c:7
static const int BROOM_TORCH_T1
Определения ParticleList.c:78
Определения ParticleList.c:12
Определения DamageSystem.c:2
Определения EnConvert.c:106
Serializer ParamsReadContext
Определения gameplay.c:15
proto native CGame GetGame()
proto native vector Vector(float x, float y, float z)
Vector constructor from components.
static proto float Max(float x, float y)
Returns bigger of two given values.
static proto float Min(float x, float y)
Returns smaller of two given values.
static proto float InverseLerp(float a, float b, float value)
Calculates the linear value that produces the interpolant value within the range [a,...
EmitorParam
Определения EnVisual.c:114
const int SAT_DEBUG_ACTION
Определения constants.c:452