#pragma once
#include "../../Interface/Actions/GroupTacticalAction.h"
#include "L2TacticalAction.h"

class L2GroupTacticalAction : public virtual GroupTacticalAction, public L2TacticalAction
{
public:
  L2GroupTacticalAction(const Process* parent, unsigned int priority, const PersistentUnitGroup* initialGroup)
    : GroupTacticalAction(parent, priority, initialGroup)
    , L2TacticalAction(parent, priority)
    , TacticalAction(parent, priority)
    , Process(parent)
  {
  }

  L2GroupTacticalAction(const Process* parent, unsigned int priority)
    : GroupTacticalAction(parent, priority)
    , L2TacticalAction(parent, priority)
    , TacticalAction(parent, priority)
    , Process(parent)
  {
  }

protected:
  virtual void onStartImplementation()
  {
    L2TacticalAction::onStartImplementation();
  }
  virtual void onCancelImplementation()
  {
    L2TacticalAction::onCancelImplementation();
  }
  virtual void onEndImplementation()
  {
    L2TacticalAction::onEndImplementation();
  }
};
