actionpickupchicken.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. //!DEPRECATED
  2. class ActionPickupChicken: ActionInteractBase
  3. {
  4. void ActionPickupChicken()
  5. {
  6. m_Text = "#take";
  7. }
  8. override typename GetInputType()
  9. {
  10. return ContinuousInteractActionInput;
  11. }
  12. override void CreateConditionComponents()
  13. {
  14. m_ConditionItem = new CCINone;
  15. m_ConditionTarget = new CCTNone;
  16. }
  17. override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
  18. {
  19. if ( player.GetCommand_Vehicle() )
  20. return false;
  21. Animal_GallusGallusDomesticus chicken;
  22. if ( Class.CastTo( chicken, target.GetObject() ) )
  23. {
  24. return !chicken.IsAlive();
  25. }
  26. return false;
  27. }
  28. override void OnExecuteServer( ActionData action_data )
  29. {
  30. // We will switch the item
  31. Animal_GallusGallusDomesticus targetChicken = Animal_GallusGallusDomesticus.Cast( action_data.m_Target.GetObject() );
  32. if ( targetChicken )
  33. {
  34. DeadChicken_ColorBase deadChicken = DeadChicken_ColorBase.Cast( action_data.m_Player.GetHumanInventory().CreateInHands( targetChicken.GetDeadItemName() ) );
  35. if ( deadChicken == null )
  36. {
  37. deadChicken = DeadChicken_ColorBase.Cast( action_data.m_Player.GetHumanInventory().CreateInInventory( targetChicken.GetDeadItemName() ) );
  38. if ( deadChicken == null )
  39. deadChicken = DeadChicken_ColorBase.Cast( GetGame().CreateObjectEx( targetChicken.GetDeadItemName(), targetChicken.GetPosition(), ECE_PLACE_ON_SURFACE, RF_ORIGINAL ) );
  40. }
  41. targetChicken.Delete();
  42. }
  43. }
  44. };