DIFF

ActionOperatePanelPowerStation.c

class ActionOperatePanelPowerStation : ActionOperatePanel
{
	override bool ActionCondition(PlayerBase player, ActionTarget target, ItemBase item)
	{
		if (!target) 
			return false;
		
		Land_WarheadStorage_PowerStation powerStation = Land_WarheadStorage_PowerStation.Cast(target.GetObject());
		if (!powerStation)
			return false;
	
		int leverComponent = target.GetComponentIndex();
		string leverName = powerStation.GetActionComponentName(leverComponent);
		int leverIndex = powerStation.GetLeverIndexByComponentName(leverName);

		return (leverIndex != 0);	
	}
	
	override void OnStart(ActionData action_data)
	{
		super.OnStart(action_data);
		
		Land_WarheadStorage_PowerStation powerStation = Land_WarheadStorage_PowerStation.Cast(action_data.m_Target.GetObject());
		if (!powerStation)
			return;
		
		int leverComponent = action_data.m_Target.GetComponentIndex();
		string leverName = powerStation.GetActionComponentName(leverComponent);
		int leverIndex = powerStation.GetLeverIndexByComponentName(leverName);
		if (leverIndex)
		{
			if (g_Game.IsServer())
				powerStation.AnimateLever(leverIndex);
		}
	}
}