12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- class ActionDisinfectSelfCB : ActionContinuousBaseCB
- {
- override void CreateActionComponent()
- {
- m_ActionData.m_ActionComponent = new CAContinuousTime(UATimeSpent.DEFAULT);
- }
- };
- class ActionDisinfectBase: ActionContinuousBase
- {
- void Apply( ActionData action_data )
- {
- ItemBase item = action_data.m_MainItem;
- item.AddQuantity(-item.GetDisinfectQuantity());
-
- }
- }
- class ActionDisinfectSelf: ActionDisinfectBase
- {
- float m_GramsConsumedPerUse;//left for legacy reasons
-
- void ActionDisinfectSelf()
- {
- m_CallbackClass = ActionDisinfectSelfCB;
- m_SpecialtyWeight = UASoftSkillsWeight.PRECISE_LOW;
- m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_STITCHUPSELF;
- m_FullBody = true;
- m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
- m_Text = "#disinfect_self";
- }
-
- override void CreateConditionComponents()
- {
- m_ConditionItem = new CCINonRuined;
- m_ConditionTarget = new CCTSelf;
- }
- override bool HasTarget()
- {
- return false;
- }
-
- override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
- {
- return (player.IsBleeding() || (player.m_SyncedModifiers & eModifierSyncIDs.MODIFIER_SYNC_WOUND_INFECT_1) || (player.m_SyncedModifiers & eModifierSyncIDs.MODIFIER_SYNC_WOUND_INFECT_2));
- }
-
- override void OnFinishProgressServer( ActionData action_data )
- {
-
- if( action_data.m_Player.GetModifiersManager().IsModifierActive(eModifiers.MDF_DISINFECTION))//effectively resets the timer
- {
- action_data.m_Player.GetModifiersManager().DeactivateModifier( eModifiers.MDF_DISINFECTION );
- }
- action_data.m_Player.GetModifiersManager().ActivateModifier( eModifiers.MDF_DISINFECTION );
- Apply(action_data);
- }
-
- };
|