1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- class ActionDestroyCombinationLockCB : ActionContinuousBaseCB
- {
- override void CreateActionComponent()
- {
- m_ActionData.m_ActionComponent = new CAContinuousRepeat(6.0);
- }
- };
- //!DEPRECATED
- class ActionDestroyCombinationLock: ActionContinuousBase
- {
- static int CYCLES = 5;
- void ActionDestroyCombinationLock()
- {
- m_CallbackClass = ActionDestroyCombinationLockCB;
- m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_DISASSEMBLE;
- m_FullBody = true;
- m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT;
- m_SpecialtyWeight = UASoftSkillsWeight.ROUGH_MEDIUM;
- m_Text = "#destroy_combination_lock";
- }
-
- override void CreateConditionComponents()
- {
- m_ConditionTarget = new CCTNonRuined(UAMaxDistances.DEFAULT);
- m_ConditionItem = new CCINonRuined;
- }
- override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
- {
- Object target_object = target.GetObject();
- string selection = target_object.GetActionComponentName( target.GetComponentIndex() );
- Fence fence = Fence.Cast( target_object );
-
- if ( fence && fence.IsLocked() && selection == "wall_interact" )
- {
- return true;
- }
-
- return false;
- }
- override void OnFinishProgressServer( ActionData action_data )
- {
- Fence fence = Fence.Cast( action_data.m_Target.GetObject() );
- if ( fence )
- {
- CombinationLock combination_lock = fence.GetCombinationLock();
- if ( combination_lock )
- {
- combination_lock.AddHealth("","",-(combination_lock.GetMaxHealth("","")/CYCLES));
-
- if ( combination_lock.IsDamageDestroyed() )
- {
- combination_lock.UnlockServer( action_data.m_Player, fence );
- GetGame().GetCallQueue( CALL_CATEGORY_GAMEPLAY ).CallLater( combination_lock.DestroyLock, 200, false );
- }
- }
- }
-
- action_data.m_MainItem.DecreaseHealth( UADamageApplied.SAW_LOCK, false );
- }
-
- override string GetAdminLogMessage(ActionData action_data)
- {
- return " destroyed combination lock with " + action_data.m_MainItem.GetDisplayName();
- }
- };
|