3 const float DEFAULT_STRUGGLE_TIME = 2;
4 const float UNRESTRAIN_STRUGGLE_MULTIPLIER = 0.75;
6 override void CreateActionComponent()
8 float time = DEFAULT_STRUGGLE_TIME;
10 EntityAI item_in_hands = targetPlayer.GetItemInHands();
12 if ( item_in_hands.ConfigIsExisting(
"StruggleLength") )
14 time = item_in_hands.ConfigGetFloat(
"StruggleLength") * UNRESTRAIN_STRUGGLE_MULTIPLIER;
38 override typename GetInputType()
45 override void OnStartServer(ActionData action_data)
47 super.OnStartServer(action_data);
49 action_data.m_Player.TryHideItemInHands(
true);
52 override void OnEndServer(ActionData action_data)
54 super.OnEndServer(action_data);
56 action_data.m_Player.TryHideItemInHands(
false);
59 override void CreateConditionComponents()
68 return targetPlayer && targetPlayer.IsRestrained();
71 override void OnFinishProgressServer( ActionData action_data )
77 EntityAI item_in_hands = targetPlayer.GetItemInHands();
78 targetPlayer.SetRestrained(
false);
81 MiscGameplayFunctions.TransformRestrainItem(item_in_hands, null, action_data.m_Player, targetPlayer);
85 ErrorEx(
"Failed to obtain item in target player's hands during empty handed unrestraining");
90 override void OnStartClient(ActionData action_data)
92 action_data.m_Player.TryHideItemInHands(
true);
95 override void OnEndClient( ActionData action_data )
97 if ( action_data.m_Player ) action_data.m_Player.TryHideItemInHands(
false);