actionplugintofence.c 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. //!DEPRECATED
  2. class ActionPlugIntoFence: ActionSingleUseBase
  3. {
  4. void ActionPlugIntoFence()
  5. {
  6. m_Text = "#plug_in";
  7. }
  8. override void CreateConditionComponents()
  9. {
  10. m_ConditionItem = new CCINonRuined;
  11. m_ConditionTarget = new CCTNonRuined(UAMaxDistances.DEFAULT);
  12. }
  13. override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
  14. {
  15. Object targetObject = target.GetObject();
  16. if ( targetObject && item && targetObject.IsInherited(BaseBuildingBase))
  17. {
  18. BaseBuildingBase target_BBB = BaseBuildingBase.Cast( targetObject );
  19. BarbedWire bw = BarbedWire.Cast( target_BBB.GetAttachmentByType(BarbedWire) );
  20. if ( bw && bw.GetCompEM().CanReceivePlugFrom(item) )
  21. {
  22. return true;
  23. }
  24. }
  25. return false;
  26. }
  27. override void OnExecuteServer( ActionData action_data )
  28. {
  29. Object targetObject = action_data.m_Target.GetObject();
  30. ItemBase target_IB = ItemBase.Cast( targetObject );
  31. BarbedWire bw = BarbedWire.Cast( target_IB.GetAttachmentByType(BarbedWire) );
  32. action_data.m_MainItem.GetCompEM().PlugThisInto(bw);
  33. if ( !action_data.m_Player.IsPlacingServer() )
  34. {
  35. //action_data.m_Player.TogglePlacing( action_data.m_Target, action_data.m_MainItem );
  36. }
  37. }
  38. };