//-------------------------------------------------------------------
//
//  This code is copyright 2001 by G5 Software.
//  Any unauthorized usage, either in part or in whole of this code
//  is strictly prohibited. Violators WILL be prosecuted to the
//  maximum extent allowed by law.
//
//-------------------------------------------------------------------

class CGermanTruckMesh
{
  string MeshFile = "Models/G_Truck.mesh";
  string SkinFile = "Models/G_Truck.skin";
  string AnimFile = "Models/G_Truck.anim";
}

class CGermanTruckStateControl extends CMobileGroundUnitStateControl
{
  void CGermanTruckStateControl()
  {
    CMobileGroundUnitStateControl(500.0);
    m_DestroyPause = 7.5;
    m_ExplosionId  = "EXPLID_GermanTruckExplosion";
  }
}

class CGermanTruckBehavior extends
  CBaseBehavior, CGermanTruckMoveParameters, CGermanTruckFireParameters
{
}

class CGermanTruckMoveParameters
{
  bool   CanMove = true;

  float  MaxSpeed              = 25;   // m/s
  float  MaxAngleSpeed         = 8;    // rad/s
  float  MaxAccelleration      = 25;   // m/(s*s)
  float  MaxAngleAccelleration = 25;   // rad/(s*s)

  float  MoveBank     = 0.0; // tank has no banking
  float  RotationBank = 0.0; // tank has no banking
}

class CGermanTruckFireParameters
{
  boolean  CanFire  = false;
  boolean  HasRadar = false;
};

class CGermanTruck extends
  CGroundUnit,
  CArmedUnit,
  CUnitWithSound,
  CUnitWithCamera,
  CUnitWithStateControl,
  CUnitWithBehavior
{
  void CGermanTruck()
  {
    InitializeModelAsStatic("CGermanTruckMesh");
    CUnitWithStateControl("CGermanTruckStateControl");
    InitializeSound("CGermanTruckEngineSound");

    //#TODO create weapons

    InitializeVehicleBehavior("CGermanTruckBehavior");

    Core_AddClassificator("German");
    Core_AddClassificator("Truck");
  }
}

