ActionDialCombinationLock.c
class ActionDialCombinationLockCB : ActionContinuousBaseCB
{
private const float REPEAT_AFTER_SEC = 0.5;
override void CreateActionComponent()
{
m_ActionData.m_ActionComponent = new CAContinuousRepeat(REPEAT_AFTER_SEC);
}
}
class ActionDialCombinationLock: ActionContinuousBase
{
void ActionDialCombinationLock()
{
m_CallbackClass = ActionDialCombinationLockCB;
m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_OPENITEM;
m_CommandUIDProne = DayZPlayerConstants.CMD_ACTIONFB_OPENITEM;
m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_LOW;
m_Text = "#dial_combination_lock";
}
override void CreateConditionComponents()
{
m_ConditionTarget = new CCTNone();
m_ConditionItem = new CCINonRuined();
}
override bool HasProneException()
{
return true;
}
override bool HasTarget()
{
return false;
}
override void OnActionInfoUpdate(PlayerBase player, ActionTarget target, ItemBase item)
{
ConstructionActionData constructionActionData = player.GetConstructionActionData();
m_Text = "#dial_combination_lock " + constructionActionData.GetDialNumberText();
}
override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
{
if (item.IsInherited(CombinationLock))
{
ConstructionActionData constructionActionData = player.GetConstructionActionData();
constructionActionData.SetCombinationLock(CombinationLock.Cast(item));
return true;
}
return false;
}
override void OnFinishProgressServer(ActionData action_data)
{
//set dialed number
ConstructionActionData constructionActionData = action_data.m_Player.GetConstructionActionData();
CombinationLock combination_lock = constructionActionData.GetCombinationLock();
combination_lock.DialNextNumber();
}
}