ActionToggleNVMode.c
class ActionToggleNVMode: ActionSingleUseBase
{
void ActionToggleNVMode()
{
//m_CallbackClass = ActionTurnOnTransmitterCB;
m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_ITEM_ON;
m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_ITEM_ON;
m_Text = "#switch_mode";
}
override void CreateConditionComponents()
{
m_ConditionItem = new CCINonRuined;
m_ConditionTarget = new CCTNone;
}
override bool HasTarget()
{
return false;
}
override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
{
ItemOptics optics;
if ( Class.CastTo(optics,item) && optics.IsNVOptic() )
{
return true;
}
return false;
}
override void OnExecuteServer( ActionData action_data )
{
SwitchMode(action_data);
}
override void OnExecuteClient( ActionData action_data )
{
SwitchMode(action_data);
}
void SwitchMode( ActionData action_data )
{
ItemOptics optics = ItemOptics.Cast(action_data.m_MainItem);
switch (optics.GetCurrentOpticMode())
{
case GameConstants.OPTICS_STATE_DAY:
optics.SetCurrentOpticMode(GameConstants.OPTICS_STATE_NIGHTVISION);
//TODO: animate
break;
case GameConstants.OPTICS_STATE_NIGHTVISION:
optics.SetCurrentOpticMode(GameConstants.OPTICS_STATE_DAY);
//TODO: animate
break;
}
}
}