10 protected IngameHud
m_Hud;
36 m_ContinuousInteract = null;
41 m_FadeTimer =
new WidgetFadeTimer;
44 m_HealthEnabled =
true;
45 m_QuantityEnabled =
true;
67 protected void SetXboxIcon(
string name,
string imageset_name,
string image_name) {};
78 m_Root.FindAnyWidget(widget +
"_btn_icon_xbox").Show(show_xbox_icon);
79 m_Root.FindAnyWidget(widget +
"_btn_icon").Show(!show_xbox_icon);
88 m_ItemLeft = w.FindAnyWidget(
"ia_item_left");
97 #ifdef PLATFORM_CONSOLE
119 bool showConsoleIcons =
false;
120 #ifdef PLATFORM_CONSOLE
133 int quantityType = 0;
134 int quantityMin = -1;
135 int quantityMax = -1;
136 float quantityCurrent = -1.0;
140 SetItemHealth(health,
"ia_item",
"ia_item_health_mark", m_HealthEnabled);
144 if (m_EntityInHands && m_EntityInHands.IsWeapon())
146 SetWeaponQuantity(0, 0,
"ia_item",
"ia_item_quantity_pb",
"ia_item_quantity_text", m_QuantityEnabled);
150 else if (m_EntityInHands && m_EntityInHands.IsTransmitter())
153 GetItemQuantity(quantityType, quantityCurrent, quantityMin, quantityMax);
154 SetItemQuantity(quantityType, quantityCurrent, quantityMin, quantityMax,
"ia_item",
"ia_item_quantity_pb",
"ia_item_quantity_text",
true);
158 GetItemQuantity(quantityType, quantityCurrent, quantityMin, quantityMax);
159 SetItemQuantity(quantityType, quantityCurrent, quantityMin, quantityMax,
"ia_item",
"ia_item_quantity_pb",
"ia_item_quantity_text", m_QuantityEnabled);
164 SetInteractActionIcon(
"ia_interact",
"ia_interact_icon_frame",
"ia_interact_btn_inner_icon",
"ia_interact_btn_text");
167 SetInteractActionIcon(
"ia_continuous_interact",
"ia_continuous_interact_icon_frame",
"ia_continuous_interact_btn_inner_icon",
"ia_continuous_interact_btn_text");
168 SetActionWidget(m_ContinuousInteract,
GetActionDesc(m_ContinuousInteract),
"ia_continuous_interact",
"ia_continuous_interact_action_name");
202 if ((m_EntityInHands || !m_Hidden) &&
GetGame().GetUIManager().GetMenu() == null)
212 m_MaxWidthChild = 200;
232 m_ContinuousInteract = null;
247 if (!m_Interact && !m_ContinuousInteract && !m_Continuous && !m_Single)
264 m_EntityInHands = eai;
268 m_EntityInHands = null;
274 if (action && action.GetText())
275 return action.GetText();
283 return m_EntityInHands.GetDisplayName();
291 return m_EntityInHands.GetHealthLevel();
296 protected void GetItemQuantity(out
int q_type, out
float q_cur, out
int q_min, out
int q_max)
308 q_cur = (q_cur / q_max);
327 return trans.GetTunedFrequency().ToString();
338 widget =
m_Root.FindAnyWidget(itemWidget);
340 if (entity &&
m_Player && !
m_Player.GetItemAccessor().IsItemInHandsHidden())
344 Class.
CastTo(itemName, widget.FindAnyWidget(descWidget));
345 itemName.SetText(descText);
352 protected void SetItemHealth(
int health,
string itemWidget,
string healthWidget,
bool enabled)
356 widget =
m_Root.FindAnyWidget(itemWidget);
360 ImageWidget healthMark;
361 Class.
CastTo(healthMark, widget.FindAnyWidget(healthWidget));
366 healthMark.GetParent().Show(
false);
370 healthMark.SetAlpha(0.5);
371 healthMark.GetParent().Show(
true);
375 healthMark.SetAlpha(0.5);
376 healthMark.GetParent().Show(
true);
380 healthMark.SetAlpha(0.5);
381 healthMark.GetParent().Show(
true);
385 healthMark.SetAlpha(0.5);
386 healthMark.GetParent().Show(
true);
390 healthMark.SetAlpha(0.5);
391 healthMark.GetParent().Show(
true);
394 healthMark.SetColor(0x00FFFFFF);
395 healthMark.SetAlpha(0.5);
396 healthMark.GetParent().Show(
true);
406 protected void SetItemQuantity(
int type,
float current,
int min,
int max,
string itemWidget,
string quantityPBWidget,
string quantityTextWidget,
bool enabled)
410 widget =
m_Root.FindAnyWidget(itemWidget);
414 ProgressBarWidget progressBar;
416 Class.
CastTo(progressBar, widget.FindAnyWidget(quantityPBWidget));
417 Class.
CastTo(textWidget, widget.FindAnyWidget(quantityTextWidget));
423 progressBar.Show(
false);
424 textWidget.Show(
false);
425 textWidget.GetParent().Show(
false);
428 if (max > 1 || current > 1)
431 progressBar.Show(
false);
432 textWidget.SetText(qty_text);
433 textWidget.Show(
true);
434 textWidget.GetParent().Show(
true);
439 progressBar.Show(
false);
440 textWidget.Show(
false);
441 textWidget.GetParent().Show(
false);
445 textWidget.Show(
false);
446 progressBar.SetCurrent(current);
447 progressBar.Show(
true);
448 textWidget.GetParent().Show(
true);
457 protected void SetWeaponQuantity(
int chamber,
int mag,
string itemWidget,
string quantityPBWidget,
string quantityTextWidget,
bool enabled)
461 widget =
m_Root.FindAnyWidget(itemWidget);
467 ProgressBarWidget progressBar;
469 Class.
CastTo(progressBar, widget.FindAnyWidget(quantityPBWidget));
470 Class.
CastTo(textWidget, widget.FindAnyWidget(quantityTextWidget));
474 int mag_quantity = -1;
481 for (
int j = 0; j < wpn.GetMuzzleCount(); j++)
483 if (wpn.IsChamberFull(j)&& !wpn.IsChamberFiredOut(j))
490 for (
int i = 0; i < wpn.GetMuzzleCount(); i++)
492 if (i > 0 && (wpn.GetMuzzleCount() < 3 || i%2 == 0))
494 wpn_qty = wpn_qty +
" ";
496 if (wpn.IsChamberEmpty(i))
498 wpn_qty = wpn_qty +
"0";
500 else if (wpn.IsChamberFiredOut(i))
502 wpn_qty = wpn_qty +
"F";
506 wpn_qty = wpn_qty +
"1";
509 maga = wpn.GetMagazine(i);
512 mag_quantity = maga.GetAmmoCount();
514 else if (wpn.GetInternalMagazineMaxCartridgeCount(i) > 0)
516 mag_quantity = wpn.GetInternalMagazineCartridgeCount(i);
523 if (mag_quantity != -1)
524 wpn_qty =
string.
Format(
"X (+%1)", mag_quantity);
530 if (mag_quantity != -1)
532 wpn_qty = wpn_qty +
" (" + mag_quantity.
ToString() +
")";
538 progressBar.Show(
false);
539 textWidget.SetText(wpn_qty);
540 textWidget.Show(
true);
541 textWidget.GetParent().Show(
true);
551 widget =
m_Root.FindAnyWidget(itemWidget);
558 Class.
CastTo(txtModeWidget, widget.FindAnyWidget(upWidget));
559 Class.
CastTo(txtZeroingWidget, widget.FindAnyWidget(downWidget));
562 string zeroing =
string.Empty;
564 zeroing =
string.
Format(
"%1 m", w.GetCurrentZeroing(w.GetCurrentMuzzle()));
567 txtZeroingWidget.SetText(zeroing);
580 protected void SetRadioFrequency(
string freq,
string itemWidget,
string upWidget,
string downWidget,
bool enabled)
584 widget =
m_Root.FindAnyWidget(itemWidget);
590 Class.
CastTo(txtUpWidget, widget.FindAnyWidget(upWidget));
591 Class.
CastTo(txtDownWidget, widget.FindAnyWidget(downWidget));
593 txtUpWidget.SetText(freq);
594 txtDownWidget.SetText(
"MHz");
605 if (action && (!action.HasTarget() || (
m_Player &&
m_Player.GetCommand_Vehicle())))
608 Class.
CastTo(actionName, widget.FindAnyWidget(descWidget));
611 if (action.GetInput().GetInputType() ==
ActionInputType.AIT_CONTINUOUS)
613 descText = descText +
" " +
"#action_target_cursor_hold";
614 actionName.SetText(descText);
618 actionName.SetText(descText);
634 widget =
m_Root.FindAnyWidget(multiActionsWidget);
635 widget.Show(m_InteractActionsNum > 1);
643 widget =
m_Root.FindAnyWidget(multiActionsWidget);
644 widget.Show(m_ContinuousInteractActionsNum > 1);
651 widget =
m_Root.FindAnyWidget(multiActionsWidget);
652 widget.Show(m_ItemActionsNum > 1);
660 widget =
m_Root.FindAnyWidget(multiActionsWidget);
661 widget.Show(m_ContinuousItemActionsNum > 1);
664 protected void SetInteractActionIcon(
string actionWidget,
string actionIconFrameWidget,
string actionIconWidget,
string actionIconTextWidget)
666 string keyName =
string.Empty;
667 Widget widget, frameWidget;
668 ImageWidget iconWidget;
671 widget =
m_Root.FindAnyWidget(actionWidget);
672 Class.
CastTo(frameWidget, widget.FindAnyWidget(actionIconFrameWidget));
673 Class.
CastTo(iconWidget, widget.FindAnyWidget(actionIconWidget));
674 Class.
CastTo(textWidget, widget.FindAnyWidget(actionIconTextWidget));
677 for (
int c = 0; c < m_UseActionWrapper.
InputP().BindKeyCount(); c++)
684 iconWidget.Show(
false);
685 textWidget.SetText(keyName);
686 textWidget.Show(
true);
695 w.Show(entity.IsRefresherSignalingViable() &&
m_Player.IsTargetInActiveRefresherRange(entity));
697 else if (w.IsVisible())
707 if (
Class.
CastTo(item, m_EntityInHands) && item.GetActionWidgetOverride(actionName))
protected void OnInputDeviceChanged(EInputDeviceType pInputDeviceType)
protected void OnInputPresetChanged()
void ActionManagerBase(PlayerBase player)
protected ActionManagerBase m_AM
proto native Mission GetMission()
proto native Input GetInput()
override ScriptInvoker GetUpdateQueue(int call_category)
Super root of all classes in Enforce script.
const int COLOR_BADLY_DAMAGED
WeaponManager GetWeaponManager()
ScriptInvoker GetOnInputPresetChanged()
ScriptInvoker GetOnInputDeviceChanged()
static int HasItemQuantity(notnull EntityAI item)
static float GetItemQuantity(InventoryItem item)
proto bool Remove(func fn, int flags=EScriptInvokerRemoveFlags.ALL)
remove specific call from list
proto bool Insert(func fn, int flags=EScriptInvokerInsertFlags.IMMEDIATE)
insert method to list
proto native UAInput InputP()
script counterpart to engine's class Weapon
string GetCurrentModeName()
proto native CGame GetGame()
const int QUANTITY_PROGRESS
const int QUANTITY_HIDDEN
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
const int STATE_BADLY_DAMAGED
static proto float Round(float f)
Returns mathematical round of value.
static proto string Format(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
Gets n-th character from string.
proto int ToUpper()
Changes string to uppercase. Returns length.
static const string Empty
static proto string ToString(void var, bool type=false, bool name=false, bool quotes=true)
Return string representation of variable.