actionturnonspotlight.c 941 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. class ActionTurnOnSpotlight: ActionInteractBase
  2. {
  3. void ActionTurnOnSpotlight()
  4. {
  5. m_Text = "#switch_on";
  6. }
  7. override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
  8. {
  9. Object targetObject = target.GetObject();
  10. ItemBase target_IB = ItemBase.Cast( targetObject );
  11. Spotlight s = Spotlight.Cast(target_IB);
  12. if (s && s.IsFolded())
  13. return false;
  14. int component_id = target.GetComponentIndex();
  15. string selection = targetObject.GetActionComponentName(component_id);
  16. if ( selection == Spotlight.SEL_REFLECTOR_COMP_U && target_IB.HasEnergyManager() && target_IB.GetCompEM().CanSwitchOn() )
  17. {
  18. return true;
  19. }
  20. return false;
  21. }
  22. override void OnExecuteServer( ActionData action_data )
  23. {
  24. Object targetObject = action_data.m_Target.GetObject();
  25. if (targetObject)
  26. {
  27. EntityAI target_EAI = EntityAI.Cast( targetObject );
  28. target_EAI.GetCompEM().SwitchOn();
  29. }
  30. }
  31. };