actionforceabite.c 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. class ActionForceABiteCB : ActionSingleUseBaseCB
  2. {
  3. override void CreateActionComponent()
  4. {
  5. m_ActionData.m_ActionComponent = new CASingleUseQuantityEdible(UAQuantityConsumed.EAT_NORMAL);
  6. }
  7. };
  8. class ActionForceABite: ActionForceConsumeSingle
  9. {
  10. void ActionForceABite()
  11. {
  12. m_CallbackClass = ActionForceABiteCB;
  13. m_Text = "#feed_a_bite";
  14. }
  15. override void CreateConditionComponents()
  16. {
  17. m_ConditionItem = new CCINonRuined;
  18. m_ConditionTarget = new CCTMan(UAMaxDistances.DEFAULT);
  19. }
  20. override void OnEndServer( ActionData action_data )
  21. {
  22. super.OnEndServer(action_data);
  23. if ( action_data.m_MainItem.GetQuantity() <= 0 )
  24. {
  25. action_data.m_MainItem.SetQuantity(0);
  26. }
  27. }
  28. override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
  29. {
  30. if (!super.ActionCondition( player, target, item))
  31. return false;
  32. PlayerBase target_player = PlayerBase.Cast(target.GetObject());
  33. if (target_player)
  34. return target_player.CanEatAndDrink();
  35. else
  36. return false;
  37. }
  38. };