123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- class ActionUncoverHeadTargetCB : ActionContinuousBaseCB
- {
- override void CreateActionComponent()
- {
- m_ActionData.m_ActionComponent = new CAContinuousTime(UATimeSpent.COVER_HEAD);
- }
- };
- class ActionUncoverHeadTarget: ActionUncoverHeadBase
- {
- void ActionUncoverHeadTarget()
- {
- m_CallbackClass = ActionUncoverHeadTargetCB;
- m_CommandUID = DayZPlayerConstants.CMD_ACTIONFB_INTERACT;
- m_FullBody = true;
- m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
- m_Text = "#uncover_players_head";
- }
-
- override void CreateConditionComponents()
- {
- m_ConditionItem = new CCINone;
- m_ConditionTarget = new CCTMan(UAMaxDistances.DEFAULT,false);
- }
-
- override typename GetInputType()
- {
- return ContinuousInteractActionInput;
- }
-
- override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
- {
- PlayerBase targetPlayer;
- if (Class.CastTo(targetPlayer, target.GetObject()))
- {
- if (IsWearingBurlap(targetPlayer))
- {
- return true;
- }
- }
- return false;
- }
-
- override void OnFinishProgressServer(ActionData action_data)
- {
- PlayerBase targetPlayer = PlayerBase.Cast(action_data.m_Target.GetObject());
- if (CanReceiveAction(action_data.m_Target))
- {
- UncoverHead(PlayerBase.Cast(action_data.m_Target.GetObject()),action_data.m_Player);
- }
- }
-
- bool IsWearingBurlap(PlayerBase player)
- {
- EntityAI attachment;
- Class.CastTo(attachment, player.GetInventory().FindAttachment(InventorySlots.HEADGEAR));
- if (attachment && attachment.GetType() == "BurlapSackCover")
- {
- return true;
- }
- return false;
- }
- };
|