123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- class ActionRefuelTorch: ActionSingleUseBase
- {
- void ActionRefuelTorch()
- {
- m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_ATTACHITEM;
- m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
- m_Text = "#STR_RefuelTorch0";
- }
-
- override void CreateConditionComponents()
- {
- m_ConditionTarget = new CCTNonRuined();
- m_ConditionItem = new CCINonRuined();
- }
-
- override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
- {
- Torch torch;
- Rag rag;
- Rag torchRag;
-
- if ((Class.CastTo(torch,target.GetObject()) && Class.CastTo(rag,item)) || (Class.CastTo(rag,target.GetObject()) && Class.CastTo(torch,item)))
- {
- if (Class.CastTo(torchRag,torch.GetRag()))
- {
- int slotId = InventorySlots.INVALID;
- InventoryLocation lcn = new InventoryLocation();
- torchRag.GetInventory().GetCurrentInventoryLocation(lcn);
- slotId = lcn.GetSlot();
-
- return torch.GetInventory().GetSlotLock(slotId) && torch.GetRagQuantity() < torchRag.GetQuantityMax() && torch.IsRagDryEnough(rag);
- }
- }
-
- return false;
- }
-
- override void OnExecuteServer(ActionData action_data)
- {
- Torch torch;
- Rag rag;
- Rag torchRag;
-
- if ((Class.CastTo(torch,action_data.m_Target.GetObject()) && Class.CastTo(rag,action_data.m_MainItem)) || (Class.CastTo(rag,action_data.m_Target.GetObject()) && Class.CastTo(torch,action_data.m_MainItem)))
- {
- Class.CastTo(torchRag,torch.GetRag());
-
- int qtyTransfer = torchRag.GetQuantityMax() - torch.GetRagQuantity(); //torch rag capacity
- qtyTransfer = (int)Math.Clamp(rag.GetQuantity(),0,qtyTransfer);
- torchRag.AddQuantity(qtyTransfer);
- rag.AddQuantity(-qtyTransfer);
- }
- }
- };
|