//-------------------------------------------------------------------
//
//  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 CGermanCisternMesh
{
  string MeshFile = "Models/B_Cistern.mesh";
  string SkinFile = "Models/B_Cistern.skin";
}

class CSovietCisternMesh
{
  string MeshFile = "Models/B_Cistern.mesh";
  string SkinFile = "Models/B_Cistern.skin";
}

class CCisternStateControl
  extends CUnitLifeControl, CExplosionGenerator
{
  void CCisternStateControl()
  {
    CUnitLifeControl(1500.0);
    m_DestroyPause = 0.0;
    m_ExplosionId  = "EXPLID_CisternExplosion";
  }

  void CreateDetonateEffects()
  {
    GenerateBullets(
        10,
        "BULLETID_ExplosionFireBall",
        array(0.5 * Math_HALFPI, Math_HALFPI),
        20,
        array(0.0, 0.0),
        array(60.0, 80.0),
        GetUnitPosition()
      );

    GenerateBullets(
        10,
        "BULLETID_ExplosionBlackFireBall",
        array(Math_HALFPI * 0.25, Math_HALFPI * 0.75),
        20,
        array(0.5, 0.5),
        array(50.0, 70.0),
        GetUnitPosition()
      );
  }
}

// Building without ground control (for use in villages)
class CBaseSovietCistern extends CBuilding, CUnitWithStateControl
{
  void CBaseSovietCistern()
  {
    InitializeModelAsStatic("CSovietCisternMesh");
    CUnitWithStateControl("CCisternStateControl");
    Core_AddClassificator(CLASSIFICATOR_NOTVISIBLEONRADAR);
  }
}

class CBaseGermanCistern extends CBuilding, CUnitWithStateControl
{
  void CBaseGermanCistern()
  {
    InitializeModelAsStatic("CGermanCisternMesh");
    CUnitWithStateControl("CCisternStateControl");
    Core_AddClassificator(CLASSIFICATOR_NOTVISIBLEONRADAR);
  }
}

// Single game object
class CMountedSovietCistern extends CBaseSovietCistern
{
  void CMountedSovietCistern()
  {
    InitializeGroundControl();
  }
}

class CMountedGermanCistern extends CBaseGermanCistern
{
  void CMountedGermanCistern()
  {
    InitializeGroundControl();
  }
}


