108 {
109 PlayerBase player_target = PlayerBase.Cast(action_data.m_Target.GetObject());
110 PlayerBase player_source = PlayerBase.Cast(action_data.m_Player);
111
113 {
114 EntityAI unrestraining_tool = action_data.m_MainItem;
115 EntityAI restraining_item = player_target.GetItemInHands();
116
117 player_target.SetRestrained(false);
118
119
120
121 CachedObjectsArrays.ARRAY_STRING.Clear();
122
123 restraining_item.ConfigGetTextArray( "CanBeUnrestrainedBy", CachedObjectsArrays.ARRAY_STRING );
124 restraining_item.ConfigGetFloatArray( "CanBeUnrestrainedByDMG", CachedObjectsArrays.ARRAY_FLOAT );
125
126 string item_in_hands_name = unrestraining_tool.GetType();
127 float damageToTool = 0;
128
129 for(int i = 0; i < CachedObjectsArrays.ARRAY_STRING.Count(); i++)
130 {
131 string class_name = CachedObjectsArrays.ARRAY_STRING.Get(i);
133 {
134 damageToTool = CachedObjectsArrays.ARRAY_FLOAT.Get(i/2);
135 break;
136 }
137 }
138
139 MiscGameplayFunctions.DealAbsoluteDmg(action_data.m_MainItem, damageToTool);
140
141
142 MiscGameplayFunctions.TransformRestrainItem(restraining_item, unrestraining_tool, player_source, player_target);
143 }
144 }
class OptionSelectorMultistate extends OptionSelector class_name
bool CanReceiveAction(ActionTarget target)
proto native CGame GetGame()