305 changes: 305 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
@@ -0,0 +1,305 @@
# Process this file with autoconf to produce a configure script.

AC_PREREQ(2.56)
AC_INIT([warzone], [2.1], [http://developer.berlios.de/projects/warzone/])
AC_CONFIG_SRCDIR([lib/gamelib/anim.h])
AC_CONFIG_HEADER([config.h])
AC_CANONICAL_TARGET

AM_INIT_AUTOMAKE
AM_MAINTAINER_MODE

# Checks for programs.
AC_PROG_CC
AC_PROG_RANLIB
AC_PROG_YACC
AC_PROG_LEX

# Checks for libraries.

# Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_CHECK_HEADERS([limits.h malloc.h memory.h stddef.h stdint.h stdlib.h string.h unistd.h])

# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_CONST
AC_C_INLINE
AC_TYPE_SIZE_T
AC_STRUCT_TM

# Checks for library functions.
AC_FUNC_CLOSEDIR_VOID
AC_FUNC_MALLOC
AC_FUNC_MEMCMP
AC_FUNC_REALLOC
AC_FUNC_STAT
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([gethostname memmove memset sqrt strchr strdup strncasecmp strrchr strstr])
AC_HEADER_STDBOOL
AC_HEADER_TIME

AC_ARG_ENABLE(make_data,
[ --disable-make-data do not recurse make into data directories
(ok to disable unless you will 'make install')],
[case "${enableval}" in
yes) make_data=true ;;
no) make_data=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --disable-make-data) ;;
esac], [make_data=true])
AM_CONDITIONAL(MAKE_DATA, test x$make_data = xtrue)

AC_CHECK_LIB(m, pow)

AC_CHECK_LIB(z, gzgets, ,
AC_MSG_ERROR([Could not find zlib library.]), )
AC_CHECK_HEADER(zlib.h, ,
AC_MSG_ERROR([zlib found but not zlib.h.
You may need to install a zlib \"development\" package.]))
WZ_LIBS="$WZ_LIBS -lz"

AC_ARG_ENABLE(debug,
[ --enable-debug run in debug mode],
[ debug=$enableval ], [ debug=no ])
AC_MSG_CHECKING([debug mode])
if test "$debug" = yes; then
# -O0 turns off all optimizations; this is necessary for accurate debugging
CFLAGS="-O0 -g"
AC_DEFINE(DEBUG, 1, [Define if you want extra debugging.])
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi

# --without-opengl will build without opengl
AC_ARG_WITH(opengl,
[ --with-opengl use OpenGL to accelerate graphics (default)],
[ opengl=$withval ], [ opengl=maybe ])

# --without-openal will build without OpenAL
# Commented out as OpenAL is not curently an option,
# but it will need to become optional someday.
#AC_ARG_WITH(openal,
#[ --with-openal use OpenAL for sound (default)],
#[ openal=$withval ], [ openal=yes ])

# --with-cda will build with audio CD support
AC_ARG_WITH(cda,
[ --with-cda built support for audio CD],
[ cda=$withval ], [ cda=no ])

# --without-ogg will build without Ogg vorbis support
AC_ARG_WITH(ogg,
[ --with-ogg built support for Ogg files (default)],
[ ogg=$withval ], [ ogg=yes ])

# --without-mp3 will build without MP3 support
AC_ARG_WITH(mp3,
[ --with-mp3 built support for Mp3 files (default)],
[ mp3=$withval ], [ mp3=yes ])

# windows conditional
case $host_os in
*mingw32* ) MINGW32=yes;;
* ) MINGW32=no;;
esac
if test x"$MINGW32" = "xyes"; then
AC_DEFINE(WIN32, 1, [Windows build])
LIBS="$LIBS -lmingw32"
fi

dnl WZ_EXPAND_DIR(VARNAME, DIR)
dnl expands occurrences of ${prefix} and ${exec_prefix} in the given DIR,
dnl and assigns the resulting string to VARNAME
dnl example: WZ_EXPAND_DIR(LOCALEDIR, "$datadir/locale")
dnl eg, then: AC_DEFINE_UNQUOTED(LOCALEDIR, "$LOCALEDIR")
dnl by Alexandre Oliva
dnl from http://www.cygnus.com/ml/automake/1998-Aug/0040.html
AC_DEFUN([WZ_EXPAND_DIR], [
$1=$2
$1=`(
test "x$prefix" = xNONE && prefix="$ac_default_prefix"
test "x$exec_prefix" = xNONE && exec_prefix="${prefix}"
eval echo \""[$]$1"\"
)`
])
dnl export where the datadir is going to be installed; we will look for
dnl $datadir/warzone/warzone.wz
WZ_EXPAND_DIR(WARZONE_DATADIR, "$datadir/warzone")
AC_DEFINE_UNQUOTED(DEFAULT_DATA_PATH, "$WARZONE_DATADIR", [Warzone data path])

AM_PATH_SDL([1.1.4], [sdl_found="yes"], [sdl_found="no"])
if test "$sdl_found" = yes; then
WZ_CPPFLAGS="$CPPFLAGS $SDL_CFLAGS"
WZ_CFLAGS="$CFLAGS $SDL_CFLAGS"
WZ_LIBS="$WZ_LIBS $SDL_LIBS"
else
AC_MSG_ERROR([You need to install SDL (http://www.libsdl.org/).])
fi

AC_PATH_SDLNET([
WZ_CPPFLAGS="$WZ_CPPFLAGS $SDLNETINC" WZ_LIBS="$WZ_LIBS $SDLNETLIB"],
AC_MSG_ERROR(SDL_net is not installed))

if test "x$opengl" != xno; then
AC_CHECK_HEADER(GL/gl.h, GL_h=yes, GL_h=no)
GL_lib=yes
AC_CHECK_LIB(GL, main, GLLIB=GL,
[AC_CHECK_LIB(opengl32, main, GLLIB=opengl32, GL_lib=no)])
if test "x$GL_lib" = "xno"; then
if test "x$opengl" = xyes; then
AC_MSG_ERROR([You need to install OpenGL.])
else
opengl=no
fi
else
if test "x$GL_h" = "xno"; then
if test "x$opengl" = xyes; then
AC_MSG_ERROR([You need to install OpenGL header files (usually a -dev package).])
else
opengl=no
fi
else
opengl=yes
fi
fi
fi
AC_CHECK_LIB(jpeg, main, , [AC_MSG_ERROR([You need to install the jpeg library.])])
AC_CHECK_LIB(png, main, , [AC_MSG_ERROR([You need to install the png library.])])
AC_MSG_CHECKING([OpenGL])
if test "x$opengl" = xyes; then
AC_DEFINE(WZ_OPENGL, 1, [OpenGL acceleration])
WZ_LIBS="$WZ_LIBS -l$GLLIB"
AC_SUBST(RENDERER, "ivis_opengl")
AC_MSG_RESULT([yes])
else
AC_SUBST(RENDERER, "ivis02")
AC_MSG_RESULT([no])
fi

if test "x$openal" != xno; then
AC_CHECK_HEADER(AL/al.h, AL_h=yes, AL_h=no)
AL_lib=yes
AC_CHECK_LIB(openal, main, ALLIB=openal,
[AC_CHECK_LIB(openal32, main, ALLIB=openal32, AL_lib=no)])
# On Windows (and perhaps some other platforms), Alut is a separate library
AC_CHECK_LIB(alut, main, ALUTLIB="-lalut", ALUTLIB="")
AC_CHECK_HEADER(AL/alut.h, ALUT_H=yes, ALUT_H=no)
if test "x$AL_lib" = "xno"; then
if test "x$openal" = xyes; then
AC_MSG_ERROR([You need to install OpenAL.])
else
openal=no
fi
else
if test "x$AL_h" = "xno"; then
if test "x$openal" = xyes; then
AC_MSG_ERROR([You need to install OpenAL header files (usually a -dev package).])
else
openal=no
fi
else
openal=yes
fi
fi
fi
AC_MSG_CHECKING([OpenAL])
if test "x$ALUT_H" = "xyes"; then
AC_DEFINE(WZ_ALUT_H, 1, [Use Alut headers])
fi
if test "x$openal" = xyes; then
WZ_LIBS="$WZ_LIBS -l$ALLIB $ALUTLIB"
AC_DEFINE(WZ_OPENAL, 1, [OpenAL support])
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
AC_MSG_ERROR([OpenAL is currently mandatory])
fi

# Look for PhysicsFS
AC_CHECK_LIB(physfs, PHYSFS_init, , AC_MSG_ERROR([PhysicsFS not found]))
AC_CHECK_HEADER(physfs.h, , AC_MSG_ERROR([PhysicsFS header not found]))

oggmusic=no
mp3music=no
if test "x$cda" = "xyes"
then
AC_DEFINE(WZ_CDA, 1, [Audio CD support])
else
if test "x$ogg" = "xyes"
then
AM_PATH_OGG(have_ogg=yes, have_ogg=no)
AM_PATH_VORBIS(have_vorbis=yes, have_vorbis=no)
if test "x$have_ogg" = "xyes"
then
if test "x$have_vorbis" = "xyes"
then
oggmusic=yes
WZ_LIBS="$WZ_LIBS -lvorbisfile -lvorbis -logg"
else
AC_DEFINE(WZ_NOOGG, 1, [Disable ogg vorbis support])
fi
else
AC_DEFINE(WZ_NOOGG, 1, [Disable ogg vorbis support])
fi
else
AC_DEFINE(WZ_NOOGG, 1, [Disable ogg vorbis support])
fi

if test "x$mp3" = "xyes"
then
AC_CHECK_LIB(mad,
mad_stream_init,
LIBS="$LIBS -lmad"; mp3music=yes,
AC_DEFINE(WZ_NOMP3, 1, [Disable mp3 support]),)
else
AC_DEFINE(WZ_NOMP3, 1, [Disable mp3 support])
fi
fi

# add some required C flags here
# -DYY_STATIC is required by flex
# -m32 forces 32-bit compile, since code is not clean enough for 64-bit yet
CFLAGS="$CFLAGS -Wall -DYY_STATIC -m32 -fno-strict-aliasing"

# Set flex flags. The -olex.yy.c kludge is to ensure that flex
# generates the kind of filename that automake expects.
AC_SUBST(FLEX_FLAGS, "-olex.yy.c")

# only now set the LIBS/CFLAGS/CPPFLAGS lines, if set earlier it will give
# strange error messages when something is wrong
LIBS="$LIBS $WZ_LIBS"
CFLAGS="$CFLAGS $WZ_CFLAGS"
CPPFLAGS="$CPPFLAGS $WZ_CPPFLAGS"

AC_CONFIG_FILES([Makefile
lib/Makefile
lib/framework/Makefile
lib/gamelib/Makefile
lib/ivis_opengl/Makefile
lib/ivis02/Makefile
lib/ivis_common/Makefile
lib/netplay/Makefile
lib/script/Makefile
lib/sequence/Makefile
lib/sound/Makefile
lib/widget/Makefile
data/Makefile
src/Makefile])
AC_OUTPUT

echo ""
echo "Warzone will compile with the following components:"
echo ""
echo " OpenGL acceleration: $opengl"
echo " OpenAL sound system: $openal"
echo " Audio CD support: $cda"
echo " MP3 music support: $mp3music"
echo " OGG music support: $oggmusic"
echo ""

if test "x$debug" = xyes; then
echo " *** Running in debug mode! ***"
echo ""
fi
247 changes: 247 additions & 0 deletions data/01/addon.lev
Original file line number Diff line number Diff line change
@@ -0,0 +1,247 @@
/********************************************************/
/********************************************************/
/* MultiPlayer technology enablers */
/* alex lee april 99 */

/* ************************ */
/* CAMPAIGN SETS */
/* tech level 1 */
/* cam 1 MULTI_CAM_1 */
/* cam 2 MULTI_CAM_2 */
/* cam 3 MULTI_CAM_3 */
/* ************************ */
/* tech level 2 */
/* cam 1 MULTI_T2_C1 */
/* cam 2 MULTI_T2_C2 */
/* cam 3 MULTI_T2_C3 */
/* ************************ */

/* ************************ */
/* GAMETYPES */
/* */
/* CAMPAIGN 12 */
/* CAMPAIGN RESEARCH 2 15 */
/* */
/* SKIRMISH 14 */
/* SKIRMISH RESEARCH 2 18 */
/* */
/* reserved (dont use) */
/* TEAMPLAY 13 */
/* DMATCH 11 */
/* ************************ */


/********************************************************/
/* tech level 2 */
campaign MULTI_T2_C1
data "wrf\vidmem.wrf"
data "wrf\basic.wrf"
data "wrf\cam1.wrf"
data "wrf\audio.wrf"
data "wrf\piestats.wrf"
data "wrf\stats.wrf"
data "wrf\multires2.wrf"

campaign MULTI_T2_C2
data "wrf\vidmem2.wrf"
data "wrf\basic.wrf"
data "wrf\cam2.wrf"
data "wrf\audio.wrf"
data "wrf\piestats.wrf"
data "wrf\stats.wrf"
data "wrf\multires2.wrf"

campaign MULTI_T2_C3
data "wrf\vidmem3.wrf"
data "wrf\basic.wrf"
data "wrf\cam3.wrf"
data "wrf\audio.wrf"
data "wrf\piestats.wrf"
data "wrf\stats.wrf"
data "wrf\multires2.wrf"


/********************************************************/

level Wheel-T1
players 8
type 12
dataset MULTI_CAM_3
game "multiplay\maps\8c-WheelOfFortune.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog3.wrf"

level Wheel-T2
players 8
type 15
dataset MULTI_T2_C3
game "multiplay\maps\8c-WheelOfFortune.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog3.wrf"



level Ziggurat-T1
players 8
type 12
dataset MULTI_CAM_1
game "multiplay\maps\8c-ziggurat.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog1.wrf"

level Ziggurat-T2
players 8
type 15
dataset MULTI_T2_C1
game "multiplay\maps\8c-ziggurat.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog1.wrf"



level Valley-T1
players 4
type 12
dataset MULTI_CAM_3
game "multiplay\maps\4c-ValleyOfDeath.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog3.wrf"

level Valley-T2
players 4
type 15
dataset MULTI_T2_C3
game "multiplay\maps\4c-ValleyOfDeath.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog3.wrf"


// Add all currnet (old) maps for cam2 tech

/* standard multiplayer campaigns - Now Enabled for Cam 2 Tech */

/*cam1*/

level Rush-T2
players 4
type 15
dataset MULTI_T2_C1
game "multiplay\maps\4c-Rush.gam"
data "wrf\multi\campaign-scav.wrf"
data "wrf\multi\fog1.wrf"

level Rush2-T2
players 4
type 15
dataset MULTI_T2_C1
game "multiplay\maps\4c-Rush2.gam"
data "wrf\multi\campaign-scav.wrf"
data "wrf\multi\fog1.wrf"

level StartUp-T2
players 2
type 15
dataset MULTI_T2_C1
game "multiplay\maps\2c-StartUp.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog1.wrf"

level MizaMaze-T2
players 8
type 15
dataset MULTI_T2_C1
game "multiplay\maps\8c-mizamaze.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog1.wrf"

level Clover-T2
players 8
type 15
dataset MULTI_T2_C1
game "multiplay\maps\8c-clover.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog1.wrf"

/*cam2*/
level UrbanChasm-T2
players 2
type 15
dataset MULTI_T2_C2
game "multiplay\maps\2c-urbanchasm.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog2.wrf"

level UrbanDuel-T2
players 4
type 15
dataset MULTI_T2_C2
game "multiplay\maps\4c-urbanduel.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog2.wrf"

level Manhattan-T2
players 8
type 15
dataset MULTI_T2_C2
game "multiplay\maps\8c-manhattan.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog2.wrf"

/*cam3*/
level HighGround-T2
players 2
type 15
dataset MULTI_T2_C3
game "multiplay\maps\2c-highground.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog3.wrf"

level Mountain-T2
players 4
type 15
dataset MULTI_T2_C3
game "multiplay\maps\4c-mountain.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog3.wrf"

level Bananas-T2
players 8
type 15
dataset MULTI_T2_C3
game "multiplay\maps\8c-bananas.gam"
data "wrf\multi\campaign.wrf"
data "wrf\multi\fog3.wrf"


// New Maps - Skirmish Versions
// Skirmish entries same as old maps

//VOD

level Sk-Valley
players 4
type 14
dataset MULTI_CAM_3
game "multiplay\maps\4c-ValleyOfDeath.gam"
data "wrf\multi\skirmish4.wrf"
data "wrf\multi\fog3.wrf"

//WOF

level Sk-Wheel
players 8
type 14
dataset MULTI_CAM_3
game "multiplay\maps\8c-WheelOfFortune.gam"
data "wrf\multi\skirmish8.wrf"
data "wrf\multi\fog3.wrf"

//ZIG

level Sk-Ziggurat
players 8
type 14
dataset MULTI_CAM_1
game "multiplay\maps\8c-Ziggurat.gam"
data "wrf\multi\skirmish8.wrf"
data "wrf\multi\fog1.wrf"
1,509 changes: 1,509 additions & 0 deletions data/01/messages/strings/names.txt

Large diffs are not rendered by default.

Binary file added data/01/multiplay/maps/4c-valleyofdeath.gam
Binary file not shown.
Binary file added data/01/multiplay/maps/4c-valleyofdeath/dinit.bjo
Binary file not shown.
Binary file added data/01/multiplay/maps/4c-valleyofdeath/feat.bjo
Binary file not shown.
Binary file added data/01/multiplay/maps/4c-valleyofdeath/game.map
Binary file not shown.
Binary file not shown.
Binary file added data/01/multiplay/maps/4c-valleyofdeath/taglist.tag
Binary file not shown.
Binary file added data/01/multiplay/maps/4c-valleyofdeath/ttypes.ttp
Binary file not shown.
Binary file added data/01/multiplay/maps/8c-wheeloffortune.gam
Binary file not shown.
Binary file not shown.
Binary file added data/01/multiplay/maps/8c-wheeloffortune/feat.bjo
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added data/01/multiplay/maps/8c-wheeloffortune/ttypes.ttp
Binary file not shown.
Binary file added data/01/multiplay/maps/8c-ziggurat.gam
Binary file not shown.
Binary file added data/01/multiplay/maps/8c-ziggurat/dinit.bjo
Binary file not shown.
Binary file added data/01/multiplay/maps/8c-ziggurat/feat.bjo
Binary file not shown.
Binary file added data/01/multiplay/maps/8c-ziggurat/game.map
Binary file not shown.
Binary file added data/01/multiplay/maps/8c-ziggurat/struct.bjo
Binary file not shown.
Binary file added data/01/multiplay/maps/8c-ziggurat/taglist.tag
Binary file not shown.
Binary file added data/01/multiplay/maps/8c-ziggurat/ttypes.ttp
Binary file not shown.
171 changes: 171 additions & 0 deletions data/01/multiplay/script/multiplay2.vlo
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
//
// variable value file for multiplayer games.
//

script "multiplay.slo"
run
{

endMsg INTMESSAGE "END"
winMsg INTMESSAGE "WIN"

// structures
command STRUCTURESTAT "A0CommandCentre"
factory STRUCTURESTAT "A0LightFactory"
wall STRUCTURESTAT "A0HardcreteMk1Wall"
cornerWall STRUCTURESTAT "A0HardcreteMk1CWall"
oilDerrick STRUCTURESTAT "A0ResourceExtractor"
powerGen STRUCTURESTAT "A0PowerGenerator"
research STRUCTURESTAT "A0ResearchFacility"
commandrelay STRUCTURESTAT "A0ComDroidControl"
cybfac STRUCTURESTAT "A0CyborgFactory"
vtolfac STRUCTURESTAT "A0VTolFactory1"

/////////////////////////////////////////////////////////////////////////
// Starting Technologies.
// MAX of 64 starting Techs. See alexl for more.

// JIM/KEITH KEEP YOUR FILTHY MITS OFF THESE..

// CLEAN MAP
numCleanTech int 4

cleanTech[0] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
cleanTech[1] RESEARCHSTAT "R-Sys-Spade1Mk1"
cleanTech[2] RESEARCHSTAT "R-Vehicle-Body01"
cleanTech[3] RESEARCHSTAT "R-Comp-SynapticLink"
//cleanTech[0] RESEARCHSTAT "R-Wpn-MG1Mk1"
//cleanTech[1] RESEARCHSTAT "R-Defense-HardcreteWall"
//cleanTech[4] RESEARCHSTAT "R-Struc-Factory-Cyborg"
//cleanTech[5] RESEARCHSTAT "R-Cyborg-Wpn-MG"
//cleanTech[6] RESEARCHSTAT "R-Defense-Pillbox01"
//cleanTech[7] RESEARCHSTAT "R-Defense-Tower01"
//cleanTech[9] RESEARCHSTAT "R-Sys-Engineering01"

// BASE MAP
numBaseTech int 19
baseTech[0] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
baseTech[1] RESEARCHSTAT "R-Sys-Spade1Mk1"
baseTech[2] RESEARCHSTAT "R-Vehicle-Body01"
baseTech[3] RESEARCHSTAT "R-Comp-SynapticLink"

baseTech[4] RESEARCHSTAT "R-Wpn-MG1Mk1"
baseTech[5] RESEARCHSTAT "R-Defense-HardcreteWall"
baseTech[6] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
baseTech[7] RESEARCHSTAT "R-Sys-Spade1Mk1"
baseTech[8] RESEARCHSTAT "R-Struc-Factory-Cyborg"
baseTech[9] RESEARCHSTAT "R-Cyborg-Wpn-MG"
baseTech[10] RESEARCHSTAT "R-Defense-Pillbox01"
baseTech[11] RESEARCHSTAT "R-Defense-Tower01"
baseTech[12] RESEARCHSTAT "R-Vehicle-Body01"
baseTech[13] RESEARCHSTAT "R-Sys-Engineering01"
baseTech[14] RESEARCHSTAT "R-Struc-CommandRelay"
baseTech[15] RESEARCHSTAT "R-Vehicle-Prop-Halftracks"
baseTech[16] RESEARCHSTAT "R-Comp-CommandTurret01"
baseTech[17] RESEARCHSTAT "R-Sys-Sensor-Turret01"
baseTech[18] RESEARCHSTAT "R-Wpn-Flamer01Mk1"


// DEFENSIVE MAP
numDefTech int 42

defTech[0] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
defTech[1] RESEARCHSTAT "R-Sys-Spade1Mk1"
defTech[2] RESEARCHSTAT "R-Vehicle-Body01"
defTech[3] RESEARCHSTAT "R-Comp-SynapticLink"

defTech[4] RESEARCHSTAT "R-Wpn-MG1Mk1"
defTech[5] RESEARCHSTAT "R-Defense-HardcreteWall"
defTech[6] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
defTech[7] RESEARCHSTAT "R-Sys-Spade1Mk1"
defTech[8] RESEARCHSTAT "R-Struc-Factory-Cyborg"
defTech[9] RESEARCHSTAT "R-Cyborg-Wpn-MG"
defTech[10] RESEARCHSTAT "R-Defense-Pillbox01"
defTech[11] RESEARCHSTAT "R-Defense-Tower01"
defTech[12] RESEARCHSTAT "R-Vehicle-Body01"
defTech[13] RESEARCHSTAT "R-Sys-Engineering01"
defTech[14] RESEARCHSTAT "R-Struc-CommandRelay"
defTech[15] RESEARCHSTAT "R-Vehicle-Prop-Halftracks"
defTech[16] RESEARCHSTAT "R-Comp-CommandTurret01"
defTech[17] RESEARCHSTAT "R-Sys-Sensor-Turret01"
defTech[18] RESEARCHSTAT "R-Wpn-Flamer01Mk1"

defTech[19] RESEARCHSTAT "R-Vehicle-Body05"
defTech[20] RESEARCHSTAT "R-Struc-Research-Module"
defTech[21] RESEARCHSTAT "R-Struc-PowerModuleMk1"
defTech[22] RESEARCHSTAT "R-Struc-Factory-Module"
defTech[23] RESEARCHSTAT "R-Struc-RepairFacility"
defTech[24] RESEARCHSTAT "R-Sys-MobileRepairTurret01"
defTech[25] RESEARCHSTAT "R-Vehicle-Engine01"
defTech[26] RESEARCHSTAT "R-Vehicle-Prop-Tracks"
defTech[27] RESEARCHSTAT "R-Cyborg-Wpn-Cannon"
defTech[28] RESEARCHSTAT "R-Cyborg-Wpn-Flamer"
defTech[29] RESEARCHSTAT "R-Wpn-MG3Mk1"
defTech[30] RESEARCHSTAT "R-Wpn-Cannon1Mk1"
defTech[31] RESEARCHSTAT "R-Wpn-Mortar01Lt"
defTech[32] RESEARCHSTAT "R-Defense-Pillbox05"
defTech[33] RESEARCHSTAT "R-Defense-TankTrap01"
defTech[34] RESEARCHSTAT "R-Defense-WallTower02"
defTech[35] RESEARCHSTAT "R-Sys-Sensor-Tower01"
defTech[36] RESEARCHSTAT "R-Defense-Pillbox04"
defTech[37] RESEARCHSTAT "R-Wpn-MG2Mk1"
defTech[38] RESEARCHSTAT "R-Wpn-Rocket05-MiniPod"
defTech[39] RESEARCHSTAT "R-Wpn-MG-Damage01"
defTech[40] RESEARCHSTAT "R-Wpn-Rocket-Damage01"
defTech[41] RESEARCHSTAT "R-Defense-WallTower01"


// player specific. eg.
//numtecP0 int 1 //Player0
//tecP0[0] RESEARCHSTAT "R-Vehicle-Body01"
numtecP0 int 0 //Player0
numtecP1 int 0 //Player1
numtecP2 int 0 //Player2
numtecP3 int 0 //Player3
numtecP4 int 0 //Player4
numtecP5 int 0 //Player5
numtecP6 int 0 //Player6
numtecP7 int 0 //Player7


/////////////////////////////////////////////////////////////////////////
// Available Research Topics.
// Maximum of TEN topics, see alexl for more.

// CLEAN MAP
numCleanRes int 3
cleanRes[0] RESEARCHSTAT "R-Sys-Sensor-Turret01"
cleanRes[1] RESEARCHSTAT "R-Wpn-MG1Mk1"
//cleanRes[2] RESEARCHSTAT "R-Struc-Factory-Cyborg"
cleanRes[2] RESEARCHSTAT "R-Sys-Engineering01"
//cleanRes[1] RESEARCHSTAT "R-Struc-CommandRelay"

// BASE MAP
numBaseRes int 0
//baseRes[0] RESEARCHSTAT "R-Sys-Engineering01"


// DEFENSE MAP
numDefRes int 0
//defRes[0] RESEARCHSTAT "R-Sys-Engineering01"



// Player Specific. eg.
// numResP0 int 1 //number of topics to enable
// resP0[0] RESEARCHSTAT "R-Lab-Electronics"
numResP0 int 0
numResP1 int 0
numResP2 int 0
numResP3 int 0
numResP4 int 0
numResP5 int 0
numResP6 int 0
numResP7 int 0

/////////////////////////////////////////////////////////////////////////
// Other Guff.

/* Base Under Attack */
attackSnd1 SOUND "pcv337.ogg"
}
1,589 changes: 1,589 additions & 0 deletions data/01/multiplay/script/skirmishai.slo

Large diffs are not rendered by default.

238 changes: 238 additions & 0 deletions data/01/multiplay/script/skirmishai0.vlo
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
/////////////////////////////////////////////////////////////////////
// ai for skirmish game
// Generic vlo for each computer player
/////////////////////////////////////////////////////////////////////

script "skirmishAI.slo"
run
{
player INT 0

numScouts INT 3 // min number of droids in group to aim for.
numDefenders INT 3
numAttackers INT 6
numCyborgs INT 8 // build cyborgs until scouts contains x droids

tileExpand INT 12 // approx minutes to expand over the map.

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// structures

// generic names, often used.
oilRes FEATURESTAT "OilResource"
resLab STRUCTURESTAT "A0ResearchFacility"
powGen STRUCTURESTAT "A0PowerGenerator"
factory STRUCTURESTAT "A0LightFactory"
derrick STRUCTURESTAT "A0ResourceExtractor"
cybFactory STRUCTURESTAT "A0CyborgFactory"
playerHQ STRUCTURESTAT "A0CommandCentre"
vtolDefStruct STRUCTURESTAT "AASite-QuadMg1"
vtolPad STRUCTURESTAT "A0VtolPad"
vtolFactory STRUCTURESTAT "A0VTolFactory1"
repairFacility STRUCTURESTAT "A0RepairCentre3"

// upgrade structures
powModule STRUCTURESTAT "A0PowMod1"
facModule STRUCTURESTAT "A0FacMod1"
resModule STRUCTURESTAT "A0ResearchModule1"

// Essential structs.
numStructs INT 5
structs[0] STRUCTURESTAT "A0PowerGenerator"
structs[1] STRUCTURESTAT "A0LightFactory"
structs[2] STRUCTURESTAT "A0CommandCentre"
structs[3] STRUCTURESTAT "A0ResearchFacility"
structs[4] STRUCTURESTAT "A0CyborgFactory"

// defensive structs.
numDefStructs INT 9
defStructs[0] STRUCTURESTAT "Sys-SensoTower02"
defStructs[1] STRUCTURESTAT "WallTower06"
defStructs[2] STRUCTURESTAT "Emplacement-MortarPit01"
defStructs[3] STRUCTURESTAT "PillBox1"
defStructs[4] STRUCTURESTAT "PillBox2"
defStructs[5] STRUCTURESTAT "PillBox5"
defStructs[6] STRUCTURESTAT "WallTower02"
defStructs[7] STRUCTURESTAT "WallTower03"
defStructs[8] STRUCTURESTAT "Emplacement-MRL-pit"

// extra structs
numExtraStructs INT 6
extraStructs[0] STRUCTURESTAT "A0LightFactory"
extraStructs[1] STRUCTURESTAT "A0RepairCentre3"
extraStructs[2] STRUCTURESTAT "PillBox5"
extraStructs[3] STRUCTURESTAT "A0LightFactory"
extraStructs[4] STRUCTURESTAT "A0ResearchFacility"
extraStructs[5] STRUCTURESTAT "Sys-SensoTower02"

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// droids

constructor TEMPLATE "ConstructorDroid"
vtolTemplate TEMPLATE "P6-L-LTAT-V"

// cyborg templates
cybTempl[0] TEMPLATE "CyborgChain01Ground"
cybTempl[1] TEMPLATE "CyborgFlamer01Grd"
cybTempl[2] TEMPLATE "CyborgCannon01Grd"
cybTempl[3] TEMPLATE "CyborgRkt01Ground"

// droid build array, long range weapons should not be in 2 consecutive slots.
// must be a multiple of 3 templates.
numTemplates INT 36
tmpl[0] TEMPLATE "ViperMG01Wheels"
tmpl[1] TEMPLATE "ViperMG01Wheels"
tmpl[2] TEMPLATE "ViperFlameWheels"
tmpl[3] TEMPLATE "ViperMG02Wheels"
tmpl[4] TEMPLATE "ViperMG02Halftrack"
tmpl[5] TEMPLATE "ViperRepairWheels"
tmpl[6] TEMPLATE "ViperHMGTracks"
tmpl[7] TEMPLATE "ViperLtCannonWheels"
tmpl[8] TEMPLATE "ViperFlameWheels"
tmpl[9] TEMPLATE "ViperLtCannonTracks"
tmpl[10] TEMPLATE "ViperMedCnTrks"
tmpl[11] TEMPLATE "ViperHMGTracks"
tmpl[12] TEMPLATE "ViperLtA-Twheels"
tmpl[13] TEMPLATE "ViperPODWheels"
tmpl[14] TEMPLATE "ViperMRLWheels"
tmpl[15] TEMPLATE "ViperBBWheels"
tmpl[16] TEMPLATE "CobraHMGHalfTrack"
tmpl[17] TEMPLATE "CobraFlameTracks"
tmpl[18] TEMPLATE "Sk-CobraBBHover"
tmpl[19] TEMPLATE "ViperMRLWheels"
tmpl[20] TEMPLATE "CobraMedCnTrks"
tmpl[21] TEMPLATE "CobraHvyCnTrks"
tmpl[22] TEMPLATE "ViperRepairHalftrack"
tmpl[23] TEMPLATE "CobraFlameTracks"
tmpl[24] TEMPLATE "CobraMortarHalfTrack"
tmpl[25] TEMPLATE "ViperSensorWheels"
tmpl[26] TEMPLATE "CobraHvyMortarHalftrack"
tmpl[27] TEMPLATE "CobraLtA-Thalftrack"
tmpl[28] TEMPLATE "ViperRepairHalftrack"
tmpl[29] TEMPLATE "CobraMRLHalftrack"
// tmpl[30] TEMPLATE "PythonLtCnTrks"
tmpl[30] TEMPLATE "Sk-PythonHvCanTrack"
tmpl[31] TEMPLATE "PythonMedCnTrks"
tmpl[32] TEMPLATE "CobraHMGHalfTrack"
tmpl[33] TEMPLATE "Sk-CobraBBHover"
// tmpl[33] TEMPLATE "CobraFlameTracks"
tmpl[34] TEMPLATE "PythonHvyCnTrks"
tmpl[35] TEMPLATE "CobraHvyMortarHalftrack"



// start points. MUST BE MULTIPLE OF 3 <numTemplates && >=3
// clean base starts from 0.
tmplTwo INT 3 // simple base
tmplThree INT 12 // defensive base

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// research

numResearch INT 92
res[0] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[1] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[2] RESEARCHSTAT "R-Vehicle-Body01"
res[3] RESEARCHSTAT "R-Comp-SynapticLink"

res[4] RESEARCHSTAT "R-Wpn-MG1Mk1"
res[5] RESEARCHSTAT "R-Defense-HardcreteWall"
res[6] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[7] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[8] RESEARCHSTAT "R-Struc-Factory-Cyborg"
res[9] RESEARCHSTAT "R-Cyborg-Wpn-MG"
res[10] RESEARCHSTAT "R-Defense-Pillbox01"
res[11] RESEARCHSTAT "R-Defense-Tower01"
res[12] RESEARCHSTAT "R-Vehicle-Body01"
res[13] RESEARCHSTAT "R-Sys-Engineering01"
res[14] RESEARCHSTAT "R-Struc-CommandRelay"
res[15] RESEARCHSTAT "R-Vehicle-Prop-Halftracks"
res[16] RESEARCHSTAT "R-Comp-CommandTurret01"
res[17] RESEARCHSTAT "R-Sys-Sensor-Turret01"
res[18] RESEARCHSTAT "R-Wpn-Flamer01Mk1"

res[19] RESEARCHSTAT "R-Vehicle-Body05"
res[20] RESEARCHSTAT "R-Struc-Research-Module"
res[21] RESEARCHSTAT "R-Struc-PowerModuleMk1"
res[22] RESEARCHSTAT "R-Struc-Factory-Module"
res[23] RESEARCHSTAT "R-Struc-RepairFacility"
res[24] RESEARCHSTAT "R-Sys-MobileRepairTurret01"
res[25] RESEARCHSTAT "R-Vehicle-Engine01"
res[26] RESEARCHSTAT "R-Vehicle-Prop-Tracks"
res[27] RESEARCHSTAT "R-Cyborg-Wpn-Cannon"
res[28] RESEARCHSTAT "R-Cyborg-Wpn-Flamer"
res[29] RESEARCHSTAT "R-Wpn-MG3Mk1"
res[30] RESEARCHSTAT "R-Wpn-Cannon1Mk1"
res[31] RESEARCHSTAT "R-Wpn-Mortar01Lt"
res[32] RESEARCHSTAT "R-Defense-Pillbox05"
res[33] RESEARCHSTAT "R-Defense-TankTrap01"
res[34] RESEARCHSTAT "R-Defense-WallTower02"
res[35] RESEARCHSTAT "R-Sys-Sensor-Tower01"
res[36] RESEARCHSTAT "R-Defense-Pillbox04"
res[37] RESEARCHSTAT "R-Wpn-MG2Mk1"
res[38] RESEARCHSTAT "R-Wpn-Rocket05-MiniPod"
res[39] RESEARCHSTAT "R-Wpn-MG-Damage01"
res[40] RESEARCHSTAT "R-Wpn-Rocket-Damage01"
res[41] RESEARCHSTAT "R-Defense-WallTower01"
// skirmish from here!
res[42] RESEARCHSTAT "R-Sys-Sensor-Upgrade01"
res[43] RESEARCHSTAT "R-Cyborg-Metals01"
res[44] RESEARCHSTAT "R-Vehicle-Metals01"
res[45] RESEARCHSTAT "R-Wpn-RocketSlow-ROF01"
res[46] RESEARCHSTAT "R-Struc-Factory-Upgrade01"
res[47] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade01"
res[48] RESEARCHSTAT "R-Struc-Research-Upgrade01"
res[49] RESEARCHSTAT "R-Wpn-AAGun-Accuracy01"
res[50] RESEARCHSTAT "R-Wpn-AAGun-Damage01"
res[51] RESEARCHSTAT "R-Wpn-Flamer-ROF01"
res[52] RESEARCHSTAT "R-Wpn-Rocket-Damage02"
res[53] RESEARCHSTAT "R-Wpn-MG-ROF01"
res[54] RESEARCHSTAT "R-Wpn-MG-Damage02"
res[55] RESEARCHSTAT "R-Wpn-Cannon-Accuracy01"
res[56] RESEARCHSTAT "R-Wpn-Cannon-Damage01"
res[57] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy02"
res[58] RESEARCHSTAT "R-Cyborg-Metals02"
res[59] RESEARCHSTAT "R-Vehicle-Metals02"
res[60] RESEARCHSTAT "R-Vehicle-Engine02"
res[61] RESEARCHSTAT "R-Defense-WallUpgrade02"
res[62] RESEARCHSTAT "R-Struc-Factory-Upgrade02"
res[63] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy03"
res[64] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade02"
res[65] RESEARCHSTAT "R-Wpn-MG-Damage03"
res[66] RESEARCHSTAT "R-Wpn-AAGun-Damage02"
res[67] RESEARCHSTAT "R-Wpn-Rocket-Damage03"
res[68] RESEARCHSTAT "R-Wpn-AAGun-ROF01"
res[69] RESEARCHSTAT "R-Wpn-Cannon-Damage02"
res[70] RESEARCHSTAT "R-Wpn-Flamer-Damage02"
res[71] RESEARCHSTAT "R-Wpn-Cannon-Damage03"
res[72] RESEARCHSTAT "R-Wpn-Rocket-ROF02"
res[73] RESEARCHSTAT "R-Wpn-Mortar-Acc02"
res[74] RESEARCHSTAT "R-Wpn-Mortar-Damage02"
res[75] RESEARCHSTAT "R-Wpn-Rocket-ROF03"
res[76] RESEARCHSTAT "R-Wpn-RocketSlow-Damage03"
res[77] RESEARCHSTAT "R-Vehicle-Metals03"
res[78] RESEARCHSTAT "R-Wpn-RocketSlow-ROF03"
res[79] RESEARCHSTAT "R-Wpn-RocketSlow-Damage05"
res[80] RESEARCHSTAT "R-Wpn-Flamer-Damage03"
res[81] RESEARCHSTAT "R-Vehicle-Engine03"
res[82] RESEARCHSTAT "R-Wpn-Cannon-Damage04"
res[83] RESEARCHSTAT "R-Cyborg-Metals03"
res[84] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade03"
res[85] RESEARCHSTAT "R-Struc-Factory-Upgrade03"
res[86] RESEARCHSTAT "R-Wpn-Flamer-Damage04"
res[87] RESEARCHSTAT "R-Wpn-Cannon-Damage05"
res[88] RESEARCHSTAT "R-Wpn-Rocket-Damage04"
res[89] RESEARCHSTAT "R-Struc-VTOLPad-Upgrade01"
res[90] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade01"
res[91] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade02"

// start points. NOTE THIS IS NOT THE NUMBER OF TOPICS
resClean INT 4 // no base
resBase INT 19 // simple base
resDefensive INT 40 // defensive base


}
239 changes: 239 additions & 0 deletions data/01/multiplay/script/skirmishai1.vlo
Original file line number Diff line number Diff line change
@@ -0,0 +1,239 @@
/////////////////////////////////////////////////////////////////////
// ai for skirmish game
// Generic vlo for each computer player
/////////////////////////////////////////////////////////////////////

script "skirmishAI.slo"
run
{
player INT 1

numScouts INT 3 // min number of droids in group to aim for.
numDefenders INT 3
numAttackers INT 6
numCyborgs INT 8 // build cyborgs until scouts contains x droids

tileExpand INT 12 // approx minutes to expand over the map.

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// structures

// generic names, often used.
oilRes FEATURESTAT "OilResource"
resLab STRUCTURESTAT "A0ResearchFacility"
powGen STRUCTURESTAT "A0PowerGenerator"
factory STRUCTURESTAT "A0LightFactory"
derrick STRUCTURESTAT "A0ResourceExtractor"
cybFactory STRUCTURESTAT "A0CyborgFactory"
playerHQ STRUCTURESTAT "A0CommandCentre"
vtolDefStruct STRUCTURESTAT "AASite-QuadMg1"
vtolPad STRUCTURESTAT "A0VtolPad"
vtolFactory STRUCTURESTAT "A0VTolFactory1"
repairFacility STRUCTURESTAT "A0RepairCentre3"

// upgrade structures
powModule STRUCTURESTAT "A0PowMod1"
facModule STRUCTURESTAT "A0FacMod1"
resModule STRUCTURESTAT "A0ResearchModule1"

// Essential structs.
numStructs INT 5
structs[0] STRUCTURESTAT "A0PowerGenerator"
structs[1] STRUCTURESTAT "A0LightFactory"
structs[2] STRUCTURESTAT "A0CommandCentre"
structs[3] STRUCTURESTAT "A0ResearchFacility"
structs[4] STRUCTURESTAT "A0CyborgFactory"

// defensive structs.
numDefStructs INT 9
defStructs[0] STRUCTURESTAT "Sys-SensoTower02"
defStructs[1] STRUCTURESTAT "WallTower06"
defStructs[2] STRUCTURESTAT "Emplacement-MortarPit01"
defStructs[3] STRUCTURESTAT "PillBox1"
defStructs[4] STRUCTURESTAT "PillBox2"
defStructs[5] STRUCTURESTAT "PillBox5"
defStructs[6] STRUCTURESTAT "WallTower02"
defStructs[7] STRUCTURESTAT "WallTower03"
defStructs[8] STRUCTURESTAT "Emplacement-MRL-pit"

// extra structs
numExtraStructs INT 6
extraStructs[0] STRUCTURESTAT "A0LightFactory"
extraStructs[1] STRUCTURESTAT "A0RepairCentre3"
extraStructs[5] STRUCTURESTAT "Sys-SensoTower02"
extraStructs[2] STRUCTURESTAT "PillBox5"
extraStructs[3] STRUCTURESTAT "A0LightFactory"
extraStructs[4] STRUCTURESTAT "A0ResearchFacility"

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// droids

constructor TEMPLATE "ConstructorDroid"
vtolTemplate TEMPLATE "P6-L-LTAT-V"

// cyborg templates
cybTempl[0] TEMPLATE "CyborgChain01Ground"
cybTempl[1] TEMPLATE "CyborgFlamer01Grd"
cybTempl[2] TEMPLATE "CyborgCannon01Grd"
cybTempl[3] TEMPLATE "CyborgRkt01Ground"

// droid build array, long range weapons should not be in 2 consecutive slots.
// must be a multiple of 3 templates.
numTemplates INT 36
tmpl[0] TEMPLATE "ViperMG01Wheels"
tmpl[1] TEMPLATE "ViperMG01Wheels"
tmpl[2] TEMPLATE "ViperFlameWheels"
tmpl[3] TEMPLATE "ViperMG02Wheels"
tmpl[4] TEMPLATE "ViperMG02Halftrack"
tmpl[5] TEMPLATE "ViperRepairWheels"
tmpl[6] TEMPLATE "ViperHMGTracks"
tmpl[7] TEMPLATE "ViperLtCannonWheels"
tmpl[8] TEMPLATE "ViperFlameWheels"
tmpl[9] TEMPLATE "ViperLtCannonTracks"
tmpl[10] TEMPLATE "ViperMedCnTrks"
tmpl[11] TEMPLATE "ViperHMGTracks"
tmpl[12] TEMPLATE "ViperLtA-Twheels"
tmpl[13] TEMPLATE "ViperPODWheels"
tmpl[14] TEMPLATE "ViperMRLWheels"
tmpl[15] TEMPLATE "ViperBBWheels"
tmpl[16] TEMPLATE "CobraHMGHalfTrack"
tmpl[17] TEMPLATE "CobraFlameTracks"
tmpl[18] TEMPLATE "Sk-CobraBBHover"
tmpl[19] TEMPLATE "ViperMRLWheels"
tmpl[20] TEMPLATE "CobraMedCnTrks"
tmpl[21] TEMPLATE "CobraHvyCnTrks"
tmpl[22] TEMPLATE "ViperRepairHalftrack"
tmpl[23] TEMPLATE "CobraFlameTracks"
tmpl[24] TEMPLATE "CobraMortarHalfTrack"
tmpl[25] TEMPLATE "ViperSensorWheels"
tmpl[26] TEMPLATE "CobraHvyMortarHalftrack"
tmpl[27] TEMPLATE "CobraLtA-Thalftrack"
tmpl[28] TEMPLATE "ViperRepairHalftrack"
tmpl[29] TEMPLATE "CobraMRLHalftrack"
// tmpl[30] TEMPLATE "PythonLtCnTrks"
tmpl[30] TEMPLATE "Sk-PythonHvCanTrack"
tmpl[31] TEMPLATE "PythonMedCnTrks"
tmpl[32] TEMPLATE "CobraHMGHalfTrack"
tmpl[33] TEMPLATE "Sk-CobraBBHover"
// tmpl[33] TEMPLATE "CobraFlameTracks"
tmpl[34] TEMPLATE "PythonHvyCnTrks"
tmpl[35] TEMPLATE "CobraHvyMortarHalftrack"




// start points. MUST BE MULTIPLE OF 3 <numTemplates && >=3
// clean base starts from 0.
tmplTwo INT 3 // simple base
tmplThree INT 12 // defensive base

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// research

numResearch INT 92
res[0] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[1] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[2] RESEARCHSTAT "R-Vehicle-Body01"
res[3] RESEARCHSTAT "R-Comp-SynapticLink"

res[4] RESEARCHSTAT "R-Wpn-MG1Mk1"
res[5] RESEARCHSTAT "R-Defense-HardcreteWall"
res[6] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[7] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[8] RESEARCHSTAT "R-Struc-Factory-Cyborg"
res[9] RESEARCHSTAT "R-Cyborg-Wpn-MG"
res[10] RESEARCHSTAT "R-Defense-Pillbox01"
res[11] RESEARCHSTAT "R-Defense-Tower01"
res[12] RESEARCHSTAT "R-Vehicle-Body01"
res[13] RESEARCHSTAT "R-Sys-Engineering01"
res[14] RESEARCHSTAT "R-Struc-CommandRelay"
res[15] RESEARCHSTAT "R-Vehicle-Prop-Halftracks"
res[16] RESEARCHSTAT "R-Comp-CommandTurret01"
res[17] RESEARCHSTAT "R-Sys-Sensor-Turret01"
res[18] RESEARCHSTAT "R-Wpn-Flamer01Mk1"

res[19] RESEARCHSTAT "R-Vehicle-Body05"
res[20] RESEARCHSTAT "R-Struc-Research-Module"
res[21] RESEARCHSTAT "R-Struc-PowerModuleMk1"
res[22] RESEARCHSTAT "R-Struc-Factory-Module"
res[23] RESEARCHSTAT "R-Struc-RepairFacility"
res[24] RESEARCHSTAT "R-Sys-MobileRepairTurret01"
res[25] RESEARCHSTAT "R-Vehicle-Engine01"
res[26] RESEARCHSTAT "R-Vehicle-Prop-Tracks"
res[27] RESEARCHSTAT "R-Cyborg-Wpn-Cannon"
res[28] RESEARCHSTAT "R-Cyborg-Wpn-Flamer"
res[29] RESEARCHSTAT "R-Wpn-MG3Mk1"
res[30] RESEARCHSTAT "R-Wpn-Cannon1Mk1"
res[31] RESEARCHSTAT "R-Wpn-Mortar01Lt"
res[32] RESEARCHSTAT "R-Defense-Pillbox05"
res[33] RESEARCHSTAT "R-Defense-TankTrap01"
res[34] RESEARCHSTAT "R-Defense-WallTower02"
res[35] RESEARCHSTAT "R-Sys-Sensor-Tower01"
res[36] RESEARCHSTAT "R-Defense-Pillbox04"
res[37] RESEARCHSTAT "R-Wpn-MG2Mk1"
res[38] RESEARCHSTAT "R-Wpn-Rocket05-MiniPod"
res[39] RESEARCHSTAT "R-Wpn-MG-Damage01"
res[40] RESEARCHSTAT "R-Wpn-Rocket-Damage01"
res[41] RESEARCHSTAT "R-Defense-WallTower01"
// skirmish from here!
res[42] RESEARCHSTAT "R-Sys-Sensor-Upgrade01"
res[43] RESEARCHSTAT "R-Cyborg-Metals01"
res[44] RESEARCHSTAT "R-Vehicle-Metals01"
res[45] RESEARCHSTAT "R-Wpn-RocketSlow-ROF01"
res[46] RESEARCHSTAT "R-Struc-Factory-Upgrade01"
res[47] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade01"
res[48] RESEARCHSTAT "R-Struc-Research-Upgrade01"
res[49] RESEARCHSTAT "R-Wpn-AAGun-Accuracy01"
res[50] RESEARCHSTAT "R-Wpn-AAGun-Damage01"
res[51] RESEARCHSTAT "R-Wpn-Flamer-ROF01"
res[52] RESEARCHSTAT "R-Wpn-Rocket-Damage02"
res[53] RESEARCHSTAT "R-Wpn-MG-ROF01"
res[54] RESEARCHSTAT "R-Wpn-MG-Damage02"
res[55] RESEARCHSTAT "R-Wpn-Cannon-Accuracy01"
res[56] RESEARCHSTAT "R-Wpn-Cannon-Damage01"
res[57] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy02"
res[58] RESEARCHSTAT "R-Cyborg-Metals02"
res[59] RESEARCHSTAT "R-Vehicle-Metals02"
res[60] RESEARCHSTAT "R-Vehicle-Engine02"
res[61] RESEARCHSTAT "R-Defense-WallUpgrade02"
res[62] RESEARCHSTAT "R-Struc-Factory-Upgrade02"
res[63] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy03"
res[64] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade02"
res[65] RESEARCHSTAT "R-Wpn-MG-Damage03"
res[66] RESEARCHSTAT "R-Wpn-AAGun-Damage02"
res[67] RESEARCHSTAT "R-Wpn-Rocket-Damage03"
res[68] RESEARCHSTAT "R-Wpn-AAGun-ROF01"
res[69] RESEARCHSTAT "R-Wpn-Cannon-Damage02"
res[70] RESEARCHSTAT "R-Wpn-Flamer-Damage02"
res[71] RESEARCHSTAT "R-Wpn-Cannon-Damage03"
res[72] RESEARCHSTAT "R-Wpn-Rocket-ROF02"
res[73] RESEARCHSTAT "R-Wpn-Mortar-Acc02"
res[74] RESEARCHSTAT "R-Wpn-Mortar-Damage02"
res[75] RESEARCHSTAT "R-Wpn-Rocket-ROF03"
res[76] RESEARCHSTAT "R-Wpn-RocketSlow-Damage03"
res[77] RESEARCHSTAT "R-Vehicle-Metals03"
res[78] RESEARCHSTAT "R-Wpn-RocketSlow-ROF03"
res[79] RESEARCHSTAT "R-Wpn-RocketSlow-Damage05"
res[80] RESEARCHSTAT "R-Wpn-Flamer-Damage03"
res[81] RESEARCHSTAT "R-Vehicle-Engine03"
res[82] RESEARCHSTAT "R-Wpn-Cannon-Damage04"
res[83] RESEARCHSTAT "R-Cyborg-Metals03"
res[84] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade03"
res[85] RESEARCHSTAT "R-Struc-Factory-Upgrade03"
res[86] RESEARCHSTAT "R-Wpn-Flamer-Damage04"
res[87] RESEARCHSTAT "R-Wpn-Cannon-Damage05"
res[88] RESEARCHSTAT "R-Wpn-Rocket-Damage04"
res[89] RESEARCHSTAT "R-Struc-VTOLPad-Upgrade01"
res[90] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade01"
res[91] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade02"

// start points. NOTE THIS IS NOT THE NUMBER OF TOPICS
resClean INT 4 // no base
resBase INT 19 // simple base
resDefensive INT 40 // defensive base


}
240 changes: 240 additions & 0 deletions data/01/multiplay/script/skirmishai2.vlo
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
/////////////////////////////////////////////////////////////////////
// ai for skirmish game
// Generic vlo for each computer player
/////////////////////////////////////////////////////////////////////

script "skirmishAI.slo"
run
{
player INT 2

numScouts INT 3 // min number of droids in group to aim for.
numDefenders INT 3
numAttackers INT 6
numCyborgs INT 8 // build cyborgs until scouts contains x droids

tileExpand INT 12 // approx minutes to expand over the map.

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// structures

// generic names, often used.
oilRes FEATURESTAT "OilResource"
resLab STRUCTURESTAT "A0ResearchFacility"
powGen STRUCTURESTAT "A0PowerGenerator"
factory STRUCTURESTAT "A0LightFactory"
derrick STRUCTURESTAT "A0ResourceExtractor"
cybFactory STRUCTURESTAT "A0CyborgFactory"
playerHQ STRUCTURESTAT "A0CommandCentre"
vtolDefStruct STRUCTURESTAT "AASite-QuadMg1"
vtolPad STRUCTURESTAT "A0VtolPad"
vtolFactory STRUCTURESTAT "A0VTolFactory1"
repairFacility STRUCTURESTAT "A0RepairCentre3"

// upgrade structures
powModule STRUCTURESTAT "A0PowMod1"
facModule STRUCTURESTAT "A0FacMod1"
resModule STRUCTURESTAT "A0ResearchModule1"

// Essential structs.
numStructs INT 5
structs[0] STRUCTURESTAT "A0PowerGenerator"
structs[1] STRUCTURESTAT "A0LightFactory"
structs[2] STRUCTURESTAT "A0CommandCentre"
structs[3] STRUCTURESTAT "A0ResearchFacility"
structs[4] STRUCTURESTAT "A0CyborgFactory"

// defensive structs.
numDefStructs INT 9
defStructs[0] STRUCTURESTAT "Sys-SensoTower02"
defStructs[1] STRUCTURESTAT "WallTower06"
defStructs[2] STRUCTURESTAT "Emplacement-MortarPit01"
defStructs[3] STRUCTURESTAT "PillBox1"
defStructs[4] STRUCTURESTAT "PillBox2"
defStructs[5] STRUCTURESTAT "PillBox5"
defStructs[6] STRUCTURESTAT "WallTower02"
defStructs[7] STRUCTURESTAT "WallTower03"
defStructs[8] STRUCTURESTAT "Emplacement-MRL-pit"

// extra structs
numExtraStructs INT 6
extraStructs[0] STRUCTURESTAT "A0LightFactory"
extraStructs[1] STRUCTURESTAT "A0RepairCentre3"
extraStructs[2] STRUCTURESTAT "PillBox5"
extraStructs[3] STRUCTURESTAT "A0LightFactory"
extraStructs[4] STRUCTURESTAT "A0ResearchFacility"
extraStructs[5] STRUCTURESTAT "Sys-SensoTower02"


/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// droids

constructor TEMPLATE "ConstructorDroid"
vtolTemplate TEMPLATE "P6-L-LTAT-V"

// cyborg templates
cybTempl[0] TEMPLATE "CyborgChain01Ground"
cybTempl[1] TEMPLATE "CyborgFlamer01Grd"
cybTempl[2] TEMPLATE "CyborgCannon01Grd"
cybTempl[3] TEMPLATE "CyborgRkt01Ground"

// droid build array, long range weapons should not be in 2 consecutive slots.
// must be a multiple of 3 templates.
numTemplates INT 36
tmpl[0] TEMPLATE "ViperMG01Wheels"
tmpl[1] TEMPLATE "ViperMG01Wheels"
tmpl[2] TEMPLATE "ViperFlameWheels"
tmpl[3] TEMPLATE "ViperMG02Wheels"
tmpl[4] TEMPLATE "ViperMG02Halftrack"
tmpl[5] TEMPLATE "ViperRepairWheels"
tmpl[6] TEMPLATE "ViperHMGTracks"
tmpl[7] TEMPLATE "ViperLtCannonWheels"
tmpl[8] TEMPLATE "ViperFlameWheels"
tmpl[9] TEMPLATE "ViperLtCannonTracks"
tmpl[10] TEMPLATE "ViperMedCnTrks"
tmpl[11] TEMPLATE "ViperHMGTracks"
tmpl[12] TEMPLATE "ViperLtA-Twheels"
tmpl[13] TEMPLATE "ViperPODWheels"
tmpl[14] TEMPLATE "ViperMRLWheels"
tmpl[15] TEMPLATE "ViperBBWheels"
tmpl[16] TEMPLATE "CobraHMGHalfTrack"
tmpl[17] TEMPLATE "CobraFlameTracks"
tmpl[18] TEMPLATE "Sk-CobraBBHover"
tmpl[19] TEMPLATE "ViperMRLWheels"
tmpl[20] TEMPLATE "CobraMedCnTrks"
tmpl[21] TEMPLATE "CobraHvyCnTrks"
tmpl[22] TEMPLATE "ViperRepairHalftrack"
tmpl[23] TEMPLATE "CobraFlameTracks"
tmpl[24] TEMPLATE "CobraMortarHalfTrack"
tmpl[25] TEMPLATE "ViperSensorWheels"
tmpl[26] TEMPLATE "CobraHvyMortarHalftrack"
tmpl[27] TEMPLATE "CobraLtA-Thalftrack"
tmpl[28] TEMPLATE "ViperRepairHalftrack"
tmpl[29] TEMPLATE "CobraMRLHalftrack"
// tmpl[30] TEMPLATE "PythonLtCnTrks"
tmpl[30] TEMPLATE "Sk-PythonHvCanTrack"
tmpl[31] TEMPLATE "PythonMedCnTrks"
tmpl[32] TEMPLATE "CobraHMGHalfTrack"
tmpl[33] TEMPLATE "Sk-CobraBBHover"
// tmpl[33] TEMPLATE "CobraFlameTracks"
tmpl[34] TEMPLATE "PythonHvyCnTrks"
tmpl[35] TEMPLATE "CobraHvyMortarHalftrack"




// start points. MUST BE MULTIPLE OF 3 <numTemplates && >=3
// clean base starts from 0.
tmplTwo INT 3 // simple base
tmplThree INT 12 // defensive base

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// research

numResearch INT 92
res[0] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[1] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[2] RESEARCHSTAT "R-Vehicle-Body01"
res[3] RESEARCHSTAT "R-Comp-SynapticLink"

res[4] RESEARCHSTAT "R-Wpn-MG1Mk1"
res[5] RESEARCHSTAT "R-Defense-HardcreteWall"
res[6] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[7] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[8] RESEARCHSTAT "R-Struc-Factory-Cyborg"
res[9] RESEARCHSTAT "R-Cyborg-Wpn-MG"
res[10] RESEARCHSTAT "R-Defense-Pillbox01"
res[11] RESEARCHSTAT "R-Defense-Tower01"
res[12] RESEARCHSTAT "R-Vehicle-Body01"
res[13] RESEARCHSTAT "R-Sys-Engineering01"
res[14] RESEARCHSTAT "R-Struc-CommandRelay"
res[15] RESEARCHSTAT "R-Vehicle-Prop-Halftracks"
res[16] RESEARCHSTAT "R-Comp-CommandTurret01"
res[17] RESEARCHSTAT "R-Sys-Sensor-Turret01"
res[18] RESEARCHSTAT "R-Wpn-Flamer01Mk1"

res[19] RESEARCHSTAT "R-Vehicle-Body05"
res[20] RESEARCHSTAT "R-Struc-Research-Module"
res[21] RESEARCHSTAT "R-Struc-PowerModuleMk1"
res[22] RESEARCHSTAT "R-Struc-Factory-Module"
res[23] RESEARCHSTAT "R-Struc-RepairFacility"
res[24] RESEARCHSTAT "R-Sys-MobileRepairTurret01"
res[25] RESEARCHSTAT "R-Vehicle-Engine01"
res[26] RESEARCHSTAT "R-Vehicle-Prop-Tracks"
res[27] RESEARCHSTAT "R-Cyborg-Wpn-Cannon"
res[28] RESEARCHSTAT "R-Cyborg-Wpn-Flamer"
res[29] RESEARCHSTAT "R-Wpn-MG3Mk1"
res[30] RESEARCHSTAT "R-Wpn-Cannon1Mk1"
res[31] RESEARCHSTAT "R-Wpn-Mortar01Lt"
res[32] RESEARCHSTAT "R-Defense-Pillbox05"
res[33] RESEARCHSTAT "R-Defense-TankTrap01"
res[34] RESEARCHSTAT "R-Defense-WallTower02"
res[35] RESEARCHSTAT "R-Sys-Sensor-Tower01"
res[36] RESEARCHSTAT "R-Defense-Pillbox04"
res[37] RESEARCHSTAT "R-Wpn-MG2Mk1"
res[38] RESEARCHSTAT "R-Wpn-Rocket05-MiniPod"
res[39] RESEARCHSTAT "R-Wpn-MG-Damage01"
res[40] RESEARCHSTAT "R-Wpn-Rocket-Damage01"
res[41] RESEARCHSTAT "R-Defense-WallTower01"
// skirmish from here!
res[42] RESEARCHSTAT "R-Sys-Sensor-Upgrade01"
res[43] RESEARCHSTAT "R-Cyborg-Metals01"
res[44] RESEARCHSTAT "R-Vehicle-Metals01"
res[45] RESEARCHSTAT "R-Wpn-RocketSlow-ROF01"
res[46] RESEARCHSTAT "R-Struc-Factory-Upgrade01"
res[47] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade01"
res[48] RESEARCHSTAT "R-Struc-Research-Upgrade01"
res[49] RESEARCHSTAT "R-Wpn-AAGun-Accuracy01"
res[50] RESEARCHSTAT "R-Wpn-AAGun-Damage01"
res[51] RESEARCHSTAT "R-Wpn-Flamer-ROF01"
res[52] RESEARCHSTAT "R-Wpn-Rocket-Damage02"
res[53] RESEARCHSTAT "R-Wpn-MG-ROF01"
res[54] RESEARCHSTAT "R-Wpn-MG-Damage02"
res[55] RESEARCHSTAT "R-Wpn-Cannon-Accuracy01"
res[56] RESEARCHSTAT "R-Wpn-Cannon-Damage01"
res[57] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy02"
res[58] RESEARCHSTAT "R-Cyborg-Metals02"
res[59] RESEARCHSTAT "R-Vehicle-Metals02"
res[60] RESEARCHSTAT "R-Vehicle-Engine02"
res[61] RESEARCHSTAT "R-Defense-WallUpgrade02"
res[62] RESEARCHSTAT "R-Struc-Factory-Upgrade02"
res[63] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy03"
res[64] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade02"
res[65] RESEARCHSTAT "R-Wpn-MG-Damage03"
res[66] RESEARCHSTAT "R-Wpn-AAGun-Damage02"
res[67] RESEARCHSTAT "R-Wpn-Rocket-Damage03"
res[68] RESEARCHSTAT "R-Wpn-AAGun-ROF01"
res[69] RESEARCHSTAT "R-Wpn-Cannon-Damage02"
res[70] RESEARCHSTAT "R-Wpn-Flamer-Damage02"
res[71] RESEARCHSTAT "R-Wpn-Cannon-Damage03"
res[72] RESEARCHSTAT "R-Wpn-Rocket-ROF02"
res[73] RESEARCHSTAT "R-Wpn-Mortar-Acc02"
res[74] RESEARCHSTAT "R-Wpn-Mortar-Damage02"
res[75] RESEARCHSTAT "R-Wpn-Rocket-ROF03"
res[76] RESEARCHSTAT "R-Wpn-RocketSlow-Damage03"
res[77] RESEARCHSTAT "R-Vehicle-Metals03"
res[78] RESEARCHSTAT "R-Wpn-RocketSlow-ROF03"
res[79] RESEARCHSTAT "R-Wpn-RocketSlow-Damage05"
res[80] RESEARCHSTAT "R-Wpn-Flamer-Damage03"
res[81] RESEARCHSTAT "R-Vehicle-Engine03"
res[82] RESEARCHSTAT "R-Wpn-Cannon-Damage04"
res[83] RESEARCHSTAT "R-Cyborg-Metals03"
res[84] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade03"
res[85] RESEARCHSTAT "R-Struc-Factory-Upgrade03"
res[86] RESEARCHSTAT "R-Wpn-Flamer-Damage04"
res[87] RESEARCHSTAT "R-Wpn-Cannon-Damage05"
res[88] RESEARCHSTAT "R-Wpn-Rocket-Damage04"
res[89] RESEARCHSTAT "R-Struc-VTOLPad-Upgrade01"
res[90] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade01"
res[91] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade02"

// start points. NOTE THIS IS NOT THE NUMBER OF TOPICS
resClean INT 4 // no base
resBase INT 19 // simple base
resDefensive INT 40 // defensive base


}
240 changes: 240 additions & 0 deletions data/01/multiplay/script/skirmishai3.vlo
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
/////////////////////////////////////////////////////////////////////
// ai for skirmish game
// Generic vlo for each computer player
/////////////////////////////////////////////////////////////////////

script "skirmishAI.slo"
run
{
player INT 3

numScouts INT 3 // min number of droids in group to aim for.
numDefenders INT 3
numAttackers INT 6
numCyborgs INT 8 // build cyborgs until scouts contains x droids

tileExpand INT 12 // approx minutes to expand over the map.

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// structures

// generic names, often used.
oilRes FEATURESTAT "OilResource"
resLab STRUCTURESTAT "A0ResearchFacility"
powGen STRUCTURESTAT "A0PowerGenerator"
factory STRUCTURESTAT "A0LightFactory"
derrick STRUCTURESTAT "A0ResourceExtractor"
cybFactory STRUCTURESTAT "A0CyborgFactory"
playerHQ STRUCTURESTAT "A0CommandCentre"
vtolDefStruct STRUCTURESTAT "AASite-QuadMg1"
vtolPad STRUCTURESTAT "A0VtolPad"
vtolFactory STRUCTURESTAT "A0VTolFactory1"
repairFacility STRUCTURESTAT "A0RepairCentre3"

// upgrade structures
powModule STRUCTURESTAT "A0PowMod1"
facModule STRUCTURESTAT "A0FacMod1"
resModule STRUCTURESTAT "A0ResearchModule1"

// Essential structs.
numStructs INT 5
structs[0] STRUCTURESTAT "A0PowerGenerator"
structs[1] STRUCTURESTAT "A0LightFactory"
structs[2] STRUCTURESTAT "A0CommandCentre"
structs[3] STRUCTURESTAT "A0ResearchFacility"
structs[4] STRUCTURESTAT "A0CyborgFactory"

// defensive structs.
numDefStructs INT 9
defStructs[0] STRUCTURESTAT "Sys-SensoTower02"
defStructs[1] STRUCTURESTAT "WallTower06"
defStructs[2] STRUCTURESTAT "Emplacement-MortarPit01"
defStructs[3] STRUCTURESTAT "PillBox1"
defStructs[4] STRUCTURESTAT "PillBox2"
defStructs[5] STRUCTURESTAT "PillBox5"
defStructs[6] STRUCTURESTAT "WallTower02"
defStructs[7] STRUCTURESTAT "WallTower03"
defStructs[8] STRUCTURESTAT "Emplacement-MRL-pit"

// extra structs
numExtraStructs INT 6
extraStructs[0] STRUCTURESTAT "A0LightFactory"
extraStructs[1] STRUCTURESTAT "A0RepairCentre3"
extraStructs[2] STRUCTURESTAT "PillBox5"
extraStructs[3] STRUCTURESTAT "A0LightFactory"
extraStructs[4] STRUCTURESTAT "A0ResearchFacility"
extraStructs[5] STRUCTURESTAT "Sys-SensoTower02"


/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// droids

constructor TEMPLATE "ConstructorDroid"
vtolTemplate TEMPLATE "P6-L-LTAT-V"

// cyborg templates
cybTempl[0] TEMPLATE "CyborgChain01Ground"
cybTempl[1] TEMPLATE "CyborgFlamer01Grd"
cybTempl[2] TEMPLATE "CyborgCannon01Grd"
cybTempl[3] TEMPLATE "CyborgRkt01Ground"

// droid build array, long range weapons should not be in 2 consecutive slots.
// must be a multiple of 3 templates.
numTemplates INT 36
tmpl[0] TEMPLATE "ViperMG01Wheels"
tmpl[1] TEMPLATE "ViperMG01Wheels"
tmpl[2] TEMPLATE "ViperFlameWheels"
tmpl[3] TEMPLATE "ViperMG02Wheels"
tmpl[4] TEMPLATE "ViperMG02Halftrack"
tmpl[5] TEMPLATE "ViperRepairWheels"
tmpl[6] TEMPLATE "ViperHMGTracks"
tmpl[7] TEMPLATE "ViperLtCannonWheels"
tmpl[8] TEMPLATE "ViperFlameWheels"
tmpl[9] TEMPLATE "ViperLtCannonTracks"
tmpl[10] TEMPLATE "ViperMedCnTrks"
tmpl[11] TEMPLATE "ViperHMGTracks"
tmpl[12] TEMPLATE "ViperLtA-Twheels"
tmpl[13] TEMPLATE "ViperPODWheels"
tmpl[14] TEMPLATE "ViperMRLWheels"
tmpl[15] TEMPLATE "ViperBBWheels"
tmpl[16] TEMPLATE "CobraHMGHalfTrack"
tmpl[17] TEMPLATE "CobraFlameTracks"
tmpl[18] TEMPLATE "Sk-CobraBBHover"
tmpl[19] TEMPLATE "ViperMRLWheels"
tmpl[20] TEMPLATE "CobraMedCnTrks"
tmpl[21] TEMPLATE "CobraHvyCnTrks"
tmpl[22] TEMPLATE "ViperRepairHalftrack"
tmpl[23] TEMPLATE "CobraFlameTracks"
tmpl[24] TEMPLATE "CobraMortarHalfTrack"
tmpl[25] TEMPLATE "ViperSensorWheels"
tmpl[26] TEMPLATE "CobraHvyMortarHalftrack"
tmpl[27] TEMPLATE "CobraLtA-Thalftrack"
tmpl[28] TEMPLATE "ViperRepairHalftrack"
tmpl[29] TEMPLATE "CobraMRLHalftrack"
// tmpl[30] TEMPLATE "PythonLtCnTrks"
tmpl[30] TEMPLATE "Sk-PythonHvCanTrack"
tmpl[31] TEMPLATE "PythonMedCnTrks"
tmpl[32] TEMPLATE "CobraHMGHalfTrack"
tmpl[33] TEMPLATE "Sk-CobraBBHover"
// tmpl[33] TEMPLATE "CobraFlameTracks"
tmpl[34] TEMPLATE "PythonHvyCnTrks"
tmpl[35] TEMPLATE "CobraHvyMortarHalftrack"




// start points. MUST BE MULTIPLE OF 3 <numTemplates && >=3
// clean base starts from 0.
tmplTwo INT 3 // simple base
tmplThree INT 12 // defensive base

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// research

numResearch INT 92
res[0] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[1] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[2] RESEARCHSTAT "R-Vehicle-Body01"
res[3] RESEARCHSTAT "R-Comp-SynapticLink"

res[4] RESEARCHSTAT "R-Wpn-MG1Mk1"
res[5] RESEARCHSTAT "R-Defense-HardcreteWall"
res[6] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[7] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[8] RESEARCHSTAT "R-Struc-Factory-Cyborg"
res[9] RESEARCHSTAT "R-Cyborg-Wpn-MG"
res[10] RESEARCHSTAT "R-Defense-Pillbox01"
res[11] RESEARCHSTAT "R-Defense-Tower01"
res[12] RESEARCHSTAT "R-Vehicle-Body01"
res[13] RESEARCHSTAT "R-Sys-Engineering01"
res[14] RESEARCHSTAT "R-Struc-CommandRelay"
res[15] RESEARCHSTAT "R-Vehicle-Prop-Halftracks"
res[16] RESEARCHSTAT "R-Comp-CommandTurret01"
res[17] RESEARCHSTAT "R-Sys-Sensor-Turret01"
res[18] RESEARCHSTAT "R-Wpn-Flamer01Mk1"

res[19] RESEARCHSTAT "R-Vehicle-Body05"
res[20] RESEARCHSTAT "R-Struc-Research-Module"
res[21] RESEARCHSTAT "R-Struc-PowerModuleMk1"
res[22] RESEARCHSTAT "R-Struc-Factory-Module"
res[23] RESEARCHSTAT "R-Struc-RepairFacility"
res[24] RESEARCHSTAT "R-Sys-MobileRepairTurret01"
res[25] RESEARCHSTAT "R-Vehicle-Engine01"
res[26] RESEARCHSTAT "R-Vehicle-Prop-Tracks"
res[27] RESEARCHSTAT "R-Cyborg-Wpn-Cannon"
res[28] RESEARCHSTAT "R-Cyborg-Wpn-Flamer"
res[29] RESEARCHSTAT "R-Wpn-MG3Mk1"
res[30] RESEARCHSTAT "R-Wpn-Cannon1Mk1"
res[31] RESEARCHSTAT "R-Wpn-Mortar01Lt"
res[32] RESEARCHSTAT "R-Defense-Pillbox05"
res[33] RESEARCHSTAT "R-Defense-TankTrap01"
res[34] RESEARCHSTAT "R-Defense-WallTower02"
res[35] RESEARCHSTAT "R-Sys-Sensor-Tower01"
res[36] RESEARCHSTAT "R-Defense-Pillbox04"
res[37] RESEARCHSTAT "R-Wpn-MG2Mk1"
res[38] RESEARCHSTAT "R-Wpn-Rocket05-MiniPod"
res[39] RESEARCHSTAT "R-Wpn-MG-Damage01"
res[40] RESEARCHSTAT "R-Wpn-Rocket-Damage01"
res[41] RESEARCHSTAT "R-Defense-WallTower01"
// skirmish from here!
res[42] RESEARCHSTAT "R-Sys-Sensor-Upgrade01"
res[43] RESEARCHSTAT "R-Cyborg-Metals01"
res[44] RESEARCHSTAT "R-Vehicle-Metals01"
res[45] RESEARCHSTAT "R-Wpn-RocketSlow-ROF01"
res[46] RESEARCHSTAT "R-Struc-Factory-Upgrade01"
res[47] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade01"
res[48] RESEARCHSTAT "R-Struc-Research-Upgrade01"
res[49] RESEARCHSTAT "R-Wpn-AAGun-Accuracy01"
res[50] RESEARCHSTAT "R-Wpn-AAGun-Damage01"
res[51] RESEARCHSTAT "R-Wpn-Flamer-ROF01"
res[52] RESEARCHSTAT "R-Wpn-Rocket-Damage02"
res[53] RESEARCHSTAT "R-Wpn-MG-ROF01"
res[54] RESEARCHSTAT "R-Wpn-MG-Damage02"
res[55] RESEARCHSTAT "R-Wpn-Cannon-Accuracy01"
res[56] RESEARCHSTAT "R-Wpn-Cannon-Damage01"
res[57] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy02"
res[58] RESEARCHSTAT "R-Cyborg-Metals02"
res[59] RESEARCHSTAT "R-Vehicle-Metals02"
res[60] RESEARCHSTAT "R-Vehicle-Engine02"
res[61] RESEARCHSTAT "R-Defense-WallUpgrade02"
res[62] RESEARCHSTAT "R-Struc-Factory-Upgrade02"
res[63] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy03"
res[64] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade02"
res[65] RESEARCHSTAT "R-Wpn-MG-Damage03"
res[66] RESEARCHSTAT "R-Wpn-AAGun-Damage02"
res[67] RESEARCHSTAT "R-Wpn-Rocket-Damage03"
res[68] RESEARCHSTAT "R-Wpn-AAGun-ROF01"
res[69] RESEARCHSTAT "R-Wpn-Cannon-Damage02"
res[70] RESEARCHSTAT "R-Wpn-Flamer-Damage02"
res[71] RESEARCHSTAT "R-Wpn-Cannon-Damage03"
res[72] RESEARCHSTAT "R-Wpn-Rocket-ROF02"
res[73] RESEARCHSTAT "R-Wpn-Mortar-Acc02"
res[74] RESEARCHSTAT "R-Wpn-Mortar-Damage02"
res[75] RESEARCHSTAT "R-Wpn-Rocket-ROF03"
res[76] RESEARCHSTAT "R-Wpn-RocketSlow-Damage03"
res[77] RESEARCHSTAT "R-Vehicle-Metals03"
res[78] RESEARCHSTAT "R-Wpn-RocketSlow-ROF03"
res[79] RESEARCHSTAT "R-Wpn-RocketSlow-Damage05"
res[80] RESEARCHSTAT "R-Wpn-Flamer-Damage03"
res[81] RESEARCHSTAT "R-Vehicle-Engine03"
res[82] RESEARCHSTAT "R-Wpn-Cannon-Damage04"
res[83] RESEARCHSTAT "R-Cyborg-Metals03"
res[84] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade03"
res[85] RESEARCHSTAT "R-Struc-Factory-Upgrade03"
res[86] RESEARCHSTAT "R-Wpn-Flamer-Damage04"
res[87] RESEARCHSTAT "R-Wpn-Cannon-Damage05"
res[88] RESEARCHSTAT "R-Wpn-Rocket-Damage04"
res[89] RESEARCHSTAT "R-Struc-VTOLPad-Upgrade01"
res[90] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade01"
res[91] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade02"

// start points. NOTE THIS IS NOT THE NUMBER OF TOPICS
resClean INT 4 // no base
resBase INT 19 // simple base
resDefensive INT 40 // defensive base


}
240 changes: 240 additions & 0 deletions data/01/multiplay/script/skirmishai4.vlo
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
/////////////////////////////////////////////////////////////////////
// ai for skirmish game
// Generic vlo for each computer player
/////////////////////////////////////////////////////////////////////

script "skirmishAI.slo"
run
{
player INT 4

numScouts INT 3 // min number of droids in group to aim for.
numDefenders INT 3
numAttackers INT 6
numCyborgs INT 8 // build cyborgs until scouts contains x droids

tileExpand INT 12 // approx minutes to expand over the map.

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// structures

// generic names, often used.
oilRes FEATURESTAT "OilResource"
resLab STRUCTURESTAT "A0ResearchFacility"
powGen STRUCTURESTAT "A0PowerGenerator"
factory STRUCTURESTAT "A0LightFactory"
derrick STRUCTURESTAT "A0ResourceExtractor"
cybFactory STRUCTURESTAT "A0CyborgFactory"
playerHQ STRUCTURESTAT "A0CommandCentre"
vtolDefStruct STRUCTURESTAT "AASite-QuadMg1"
vtolPad STRUCTURESTAT "A0VtolPad"
vtolFactory STRUCTURESTAT "A0VTolFactory1"
repairFacility STRUCTURESTAT "A0RepairCentre3"

// upgrade structures
powModule STRUCTURESTAT "A0PowMod1"
facModule STRUCTURESTAT "A0FacMod1"
resModule STRUCTURESTAT "A0ResearchModule1"

// Essential structs.
numStructs INT 5
structs[0] STRUCTURESTAT "A0PowerGenerator"
structs[1] STRUCTURESTAT "A0LightFactory"
structs[2] STRUCTURESTAT "A0CommandCentre"
structs[3] STRUCTURESTAT "A0ResearchFacility"
structs[4] STRUCTURESTAT "A0CyborgFactory"

// defensive structs.
numDefStructs INT 9
defStructs[0] STRUCTURESTAT "Sys-SensoTower02"
defStructs[1] STRUCTURESTAT "WallTower06"
defStructs[2] STRUCTURESTAT "Emplacement-MortarPit01"
defStructs[3] STRUCTURESTAT "PillBox1"
defStructs[4] STRUCTURESTAT "PillBox2"
defStructs[5] STRUCTURESTAT "PillBox5"
defStructs[6] STRUCTURESTAT "WallTower02"
defStructs[7] STRUCTURESTAT "WallTower03"
defStructs[8] STRUCTURESTAT "Emplacement-MRL-pit"

// extra structs
numExtraStructs INT 6
extraStructs[0] STRUCTURESTAT "A0LightFactory"
extraStructs[1] STRUCTURESTAT "A0RepairCentre3"
extraStructs[2] STRUCTURESTAT "PillBox5"
extraStructs[3] STRUCTURESTAT "A0LightFactory"
extraStructs[4] STRUCTURESTAT "A0ResearchFacility"
extraStructs[5] STRUCTURESTAT "Sys-SensoTower02"


/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// droids

constructor TEMPLATE "ConstructorDroid"
vtolTemplate TEMPLATE "P6-L-LTAT-V"

// cyborg templates
cybTempl[0] TEMPLATE "CyborgChain01Ground"
cybTempl[1] TEMPLATE "CyborgFlamer01Grd"
cybTempl[2] TEMPLATE "CyborgCannon01Grd"
cybTempl[3] TEMPLATE "CyborgRkt01Ground"

// droid build array, long range weapons should not be in 2 consecutive slots.
// must be a multiple of 3 templates.
numTemplates INT 36
tmpl[0] TEMPLATE "ViperMG01Wheels"
tmpl[1] TEMPLATE "ViperMG01Wheels"
tmpl[2] TEMPLATE "ViperFlameWheels"
tmpl[3] TEMPLATE "ViperMG02Wheels"
tmpl[4] TEMPLATE "ViperMG02Halftrack"
tmpl[5] TEMPLATE "ViperRepairWheels"
tmpl[6] TEMPLATE "ViperHMGTracks"
tmpl[7] TEMPLATE "ViperLtCannonWheels"
tmpl[8] TEMPLATE "ViperFlameWheels"
tmpl[9] TEMPLATE "ViperLtCannonTracks"
tmpl[10] TEMPLATE "ViperMedCnTrks"
tmpl[11] TEMPLATE "ViperHMGTracks"
tmpl[12] TEMPLATE "ViperLtA-Twheels"
tmpl[13] TEMPLATE "ViperPODWheels"
tmpl[14] TEMPLATE "ViperMRLWheels"
tmpl[15] TEMPLATE "ViperBBWheels"
tmpl[16] TEMPLATE "CobraHMGHalfTrack"
tmpl[17] TEMPLATE "CobraFlameTracks"
tmpl[18] TEMPLATE "Sk-CobraBBHover"
tmpl[19] TEMPLATE "ViperMRLWheels"
tmpl[20] TEMPLATE "CobraMedCnTrks"
tmpl[21] TEMPLATE "CobraHvyCnTrks"
tmpl[22] TEMPLATE "ViperRepairHalftrack"
tmpl[23] TEMPLATE "CobraFlameTracks"
tmpl[24] TEMPLATE "CobraMortarHalfTrack"
tmpl[25] TEMPLATE "ViperSensorWheels"
tmpl[26] TEMPLATE "CobraHvyMortarHalftrack"
tmpl[27] TEMPLATE "CobraLtA-Thalftrack"
tmpl[28] TEMPLATE "ViperRepairHalftrack"
tmpl[29] TEMPLATE "CobraMRLHalftrack"
// tmpl[30] TEMPLATE "PythonLtCnTrks"
tmpl[30] TEMPLATE "Sk-PythonHvCanTrack"
tmpl[31] TEMPLATE "PythonMedCnTrks"
tmpl[32] TEMPLATE "CobraHMGHalfTrack"
tmpl[33] TEMPLATE "Sk-CobraBBHover"
// tmpl[33] TEMPLATE "CobraFlameTracks"
tmpl[34] TEMPLATE "PythonHvyCnTrks"
tmpl[35] TEMPLATE "CobraHvyMortarHalftrack"




// start points. MUST BE MULTIPLE OF 3 <numTemplates && >=3
// clean base starts from 0.
tmplTwo INT 3 // simple base
tmplThree INT 12 // defensive base

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// research

numResearch INT 92
res[0] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[1] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[2] RESEARCHSTAT "R-Vehicle-Body01"
res[3] RESEARCHSTAT "R-Comp-SynapticLink"

res[4] RESEARCHSTAT "R-Wpn-MG1Mk1"
res[5] RESEARCHSTAT "R-Defense-HardcreteWall"
res[6] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[7] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[8] RESEARCHSTAT "R-Struc-Factory-Cyborg"
res[9] RESEARCHSTAT "R-Cyborg-Wpn-MG"
res[10] RESEARCHSTAT "R-Defense-Pillbox01"
res[11] RESEARCHSTAT "R-Defense-Tower01"
res[12] RESEARCHSTAT "R-Vehicle-Body01"
res[13] RESEARCHSTAT "R-Sys-Engineering01"
res[14] RESEARCHSTAT "R-Struc-CommandRelay"
res[15] RESEARCHSTAT "R-Vehicle-Prop-Halftracks"
res[16] RESEARCHSTAT "R-Comp-CommandTurret01"
res[17] RESEARCHSTAT "R-Sys-Sensor-Turret01"
res[18] RESEARCHSTAT "R-Wpn-Flamer01Mk1"

res[19] RESEARCHSTAT "R-Vehicle-Body05"
res[20] RESEARCHSTAT "R-Struc-Research-Module"
res[21] RESEARCHSTAT "R-Struc-PowerModuleMk1"
res[22] RESEARCHSTAT "R-Struc-Factory-Module"
res[23] RESEARCHSTAT "R-Struc-RepairFacility"
res[24] RESEARCHSTAT "R-Sys-MobileRepairTurret01"
res[25] RESEARCHSTAT "R-Vehicle-Engine01"
res[26] RESEARCHSTAT "R-Vehicle-Prop-Tracks"
res[27] RESEARCHSTAT "R-Cyborg-Wpn-Cannon"
res[28] RESEARCHSTAT "R-Cyborg-Wpn-Flamer"
res[29] RESEARCHSTAT "R-Wpn-MG3Mk1"
res[30] RESEARCHSTAT "R-Wpn-Cannon1Mk1"
res[31] RESEARCHSTAT "R-Wpn-Mortar01Lt"
res[32] RESEARCHSTAT "R-Defense-Pillbox05"
res[33] RESEARCHSTAT "R-Defense-TankTrap01"
res[34] RESEARCHSTAT "R-Defense-WallTower02"
res[35] RESEARCHSTAT "R-Sys-Sensor-Tower01"
res[36] RESEARCHSTAT "R-Defense-Pillbox04"
res[37] RESEARCHSTAT "R-Wpn-MG2Mk1"
res[38] RESEARCHSTAT "R-Wpn-Rocket05-MiniPod"
res[39] RESEARCHSTAT "R-Wpn-MG-Damage01"
res[40] RESEARCHSTAT "R-Wpn-Rocket-Damage01"
res[41] RESEARCHSTAT "R-Defense-WallTower01"
// skirmish from here!
res[42] RESEARCHSTAT "R-Sys-Sensor-Upgrade01"
res[43] RESEARCHSTAT "R-Cyborg-Metals01"
res[44] RESEARCHSTAT "R-Vehicle-Metals01"
res[45] RESEARCHSTAT "R-Wpn-RocketSlow-ROF01"
res[46] RESEARCHSTAT "R-Struc-Factory-Upgrade01"
res[47] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade01"
res[48] RESEARCHSTAT "R-Struc-Research-Upgrade01"
res[49] RESEARCHSTAT "R-Wpn-AAGun-Accuracy01"
res[50] RESEARCHSTAT "R-Wpn-AAGun-Damage01"
res[51] RESEARCHSTAT "R-Wpn-Flamer-ROF01"
res[52] RESEARCHSTAT "R-Wpn-Rocket-Damage02"
res[53] RESEARCHSTAT "R-Wpn-MG-ROF01"
res[54] RESEARCHSTAT "R-Wpn-MG-Damage02"
res[55] RESEARCHSTAT "R-Wpn-Cannon-Accuracy01"
res[56] RESEARCHSTAT "R-Wpn-Cannon-Damage01"
res[57] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy02"
res[58] RESEARCHSTAT "R-Cyborg-Metals02"
res[59] RESEARCHSTAT "R-Vehicle-Metals02"
res[60] RESEARCHSTAT "R-Vehicle-Engine02"
res[61] RESEARCHSTAT "R-Defense-WallUpgrade02"
res[62] RESEARCHSTAT "R-Struc-Factory-Upgrade02"
res[63] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy03"
res[64] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade02"
res[65] RESEARCHSTAT "R-Wpn-MG-Damage03"
res[66] RESEARCHSTAT "R-Wpn-AAGun-Damage02"
res[67] RESEARCHSTAT "R-Wpn-Rocket-Damage03"
res[68] RESEARCHSTAT "R-Wpn-AAGun-ROF01"
res[69] RESEARCHSTAT "R-Wpn-Cannon-Damage02"
res[70] RESEARCHSTAT "R-Wpn-Flamer-Damage02"
res[71] RESEARCHSTAT "R-Wpn-Cannon-Damage03"
res[72] RESEARCHSTAT "R-Wpn-Rocket-ROF02"
res[73] RESEARCHSTAT "R-Wpn-Mortar-Acc02"
res[74] RESEARCHSTAT "R-Wpn-Mortar-Damage02"
res[75] RESEARCHSTAT "R-Wpn-Rocket-ROF03"
res[76] RESEARCHSTAT "R-Wpn-RocketSlow-Damage03"
res[77] RESEARCHSTAT "R-Vehicle-Metals03"
res[78] RESEARCHSTAT "R-Wpn-RocketSlow-ROF03"
res[79] RESEARCHSTAT "R-Wpn-RocketSlow-Damage05"
res[80] RESEARCHSTAT "R-Wpn-Flamer-Damage03"
res[81] RESEARCHSTAT "R-Vehicle-Engine03"
res[82] RESEARCHSTAT "R-Wpn-Cannon-Damage04"
res[83] RESEARCHSTAT "R-Cyborg-Metals03"
res[84] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade03"
res[85] RESEARCHSTAT "R-Struc-Factory-Upgrade03"
res[86] RESEARCHSTAT "R-Wpn-Flamer-Damage04"
res[87] RESEARCHSTAT "R-Wpn-Cannon-Damage05"
res[88] RESEARCHSTAT "R-Wpn-Rocket-Damage04"
res[89] RESEARCHSTAT "R-Struc-VTOLPad-Upgrade01"
res[90] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade01"
res[91] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade02"

// start points. NOTE THIS IS NOT THE NUMBER OF TOPICS
resClean INT 4 // no base
resBase INT 19 // simple base
resDefensive INT 40 // defensive base


}
240 changes: 240 additions & 0 deletions data/01/multiplay/script/skirmishai5.vlo
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
/////////////////////////////////////////////////////////////////////
// ai for skirmish game
// Generic vlo for each computer player
/////////////////////////////////////////////////////////////////////

script "skirmishAI.slo"
run
{
player INT 5

numScouts INT 3 // min number of droids in group to aim for.
numDefenders INT 3
numAttackers INT 6
numCyborgs INT 8 // build cyborgs until scouts contains x droids

tileExpand INT 12 // approx minutes to expand over the map.

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// structures

// generic names, often used.
oilRes FEATURESTAT "OilResource"
resLab STRUCTURESTAT "A0ResearchFacility"
powGen STRUCTURESTAT "A0PowerGenerator"
factory STRUCTURESTAT "A0LightFactory"
derrick STRUCTURESTAT "A0ResourceExtractor"
cybFactory STRUCTURESTAT "A0CyborgFactory"
playerHQ STRUCTURESTAT "A0CommandCentre"
vtolDefStruct STRUCTURESTAT "AASite-QuadMg1"
vtolPad STRUCTURESTAT "A0VtolPad"
vtolFactory STRUCTURESTAT "A0VTolFactory1"
repairFacility STRUCTURESTAT "A0RepairCentre3"

// upgrade structures
powModule STRUCTURESTAT "A0PowMod1"
facModule STRUCTURESTAT "A0FacMod1"
resModule STRUCTURESTAT "A0ResearchModule1"

// Essential structs.
numStructs INT 5
structs[0] STRUCTURESTAT "A0PowerGenerator"
structs[1] STRUCTURESTAT "A0LightFactory"
structs[2] STRUCTURESTAT "A0CommandCentre"
structs[3] STRUCTURESTAT "A0ResearchFacility"
structs[4] STRUCTURESTAT "A0CyborgFactory"

// defensive structs.
numDefStructs INT 9
defStructs[0] STRUCTURESTAT "Sys-SensoTower02"
defStructs[1] STRUCTURESTAT "WallTower06"
defStructs[2] STRUCTURESTAT "Emplacement-MortarPit01"
defStructs[3] STRUCTURESTAT "PillBox1"
defStructs[4] STRUCTURESTAT "PillBox2"
defStructs[5] STRUCTURESTAT "PillBox5"
defStructs[6] STRUCTURESTAT "WallTower02"
defStructs[7] STRUCTURESTAT "WallTower03"
defStructs[8] STRUCTURESTAT "Emplacement-MRL-pit"

// extra structs
numExtraStructs INT 6
extraStructs[0] STRUCTURESTAT "A0LightFactory"
extraStructs[1] STRUCTURESTAT "A0RepairCentre3"
extraStructs[2] STRUCTURESTAT "PillBox5"
extraStructs[3] STRUCTURESTAT "A0LightFactory"
extraStructs[4] STRUCTURESTAT "A0ResearchFacility"
extraStructs[5] STRUCTURESTAT "Sys-SensoTower02"


/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// droids

constructor TEMPLATE "ConstructorDroid"
vtolTemplate TEMPLATE "P6-L-LTAT-V"

// cyborg templates
cybTempl[0] TEMPLATE "CyborgChain01Ground"
cybTempl[1] TEMPLATE "CyborgFlamer01Grd"
cybTempl[2] TEMPLATE "CyborgCannon01Grd"
cybTempl[3] TEMPLATE "CyborgRkt01Ground"

// droid build array, long range weapons should not be in 2 consecutive slots.
// must be a multiple of 3 templates.
numTemplates INT 36
tmpl[0] TEMPLATE "ViperMG01Wheels"
tmpl[1] TEMPLATE "ViperMG01Wheels"
tmpl[2] TEMPLATE "ViperFlameWheels"
tmpl[3] TEMPLATE "ViperMG02Wheels"
tmpl[4] TEMPLATE "ViperMG02Halftrack"
tmpl[5] TEMPLATE "ViperRepairWheels"
tmpl[6] TEMPLATE "ViperHMGTracks"
tmpl[7] TEMPLATE "ViperLtCannonWheels"
tmpl[8] TEMPLATE "ViperFlameWheels"
tmpl[9] TEMPLATE "ViperLtCannonTracks"
tmpl[10] TEMPLATE "ViperMedCnTrks"
tmpl[11] TEMPLATE "ViperHMGTracks"
tmpl[12] TEMPLATE "ViperLtA-Twheels"
tmpl[13] TEMPLATE "ViperPODWheels"
tmpl[14] TEMPLATE "ViperMRLWheels"
tmpl[15] TEMPLATE "ViperBBWheels"
tmpl[16] TEMPLATE "CobraHMGHalfTrack"
tmpl[17] TEMPLATE "CobraFlameTracks"
tmpl[18] TEMPLATE "Sk-CobraBBHover"
tmpl[19] TEMPLATE "ViperMRLWheels"
tmpl[20] TEMPLATE "CobraMedCnTrks"
tmpl[21] TEMPLATE "CobraHvyCnTrks"
tmpl[22] TEMPLATE "ViperRepairHalftrack"
tmpl[23] TEMPLATE "CobraFlameTracks"
tmpl[24] TEMPLATE "CobraMortarHalfTrack"
tmpl[25] TEMPLATE "ViperSensorWheels"
tmpl[26] TEMPLATE "CobraHvyMortarHalftrack"
tmpl[27] TEMPLATE "CobraLtA-Thalftrack"
tmpl[28] TEMPLATE "ViperRepairHalftrack"
tmpl[29] TEMPLATE "CobraMRLHalftrack"
// tmpl[30] TEMPLATE "PythonLtCnTrks"
tmpl[30] TEMPLATE "Sk-PythonHvCanTrack"
tmpl[31] TEMPLATE "PythonMedCnTrks"
tmpl[32] TEMPLATE "CobraHMGHalfTrack"
tmpl[33] TEMPLATE "Sk-CobraBBHover"
// tmpl[33] TEMPLATE "CobraFlameTracks"
tmpl[34] TEMPLATE "PythonHvyCnTrks"
tmpl[35] TEMPLATE "CobraHvyMortarHalftrack"




// start points. MUST BE MULTIPLE OF 3 <numTemplates && >=3
// clean base starts from 0.
tmplTwo INT 3 // simple base
tmplThree INT 12 // defensive base

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// research

numResearch INT 92
res[0] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[1] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[2] RESEARCHSTAT "R-Vehicle-Body01"
res[3] RESEARCHSTAT "R-Comp-SynapticLink"

res[4] RESEARCHSTAT "R-Wpn-MG1Mk1"
res[5] RESEARCHSTAT "R-Defense-HardcreteWall"
res[6] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[7] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[8] RESEARCHSTAT "R-Struc-Factory-Cyborg"
res[9] RESEARCHSTAT "R-Cyborg-Wpn-MG"
res[10] RESEARCHSTAT "R-Defense-Pillbox01"
res[11] RESEARCHSTAT "R-Defense-Tower01"
res[12] RESEARCHSTAT "R-Vehicle-Body01"
res[13] RESEARCHSTAT "R-Sys-Engineering01"
res[14] RESEARCHSTAT "R-Struc-CommandRelay"
res[15] RESEARCHSTAT "R-Vehicle-Prop-Halftracks"
res[16] RESEARCHSTAT "R-Comp-CommandTurret01"
res[17] RESEARCHSTAT "R-Sys-Sensor-Turret01"
res[18] RESEARCHSTAT "R-Wpn-Flamer01Mk1"

res[19] RESEARCHSTAT "R-Vehicle-Body05"
res[20] RESEARCHSTAT "R-Struc-Research-Module"
res[21] RESEARCHSTAT "R-Struc-PowerModuleMk1"
res[22] RESEARCHSTAT "R-Struc-Factory-Module"
res[23] RESEARCHSTAT "R-Struc-RepairFacility"
res[24] RESEARCHSTAT "R-Sys-MobileRepairTurret01"
res[25] RESEARCHSTAT "R-Vehicle-Engine01"
res[26] RESEARCHSTAT "R-Vehicle-Prop-Tracks"
res[27] RESEARCHSTAT "R-Cyborg-Wpn-Cannon"
res[28] RESEARCHSTAT "R-Cyborg-Wpn-Flamer"
res[29] RESEARCHSTAT "R-Wpn-MG3Mk1"
res[30] RESEARCHSTAT "R-Wpn-Cannon1Mk1"
res[31] RESEARCHSTAT "R-Wpn-Mortar01Lt"
res[32] RESEARCHSTAT "R-Defense-Pillbox05"
res[33] RESEARCHSTAT "R-Defense-TankTrap01"
res[34] RESEARCHSTAT "R-Defense-WallTower02"
res[35] RESEARCHSTAT "R-Sys-Sensor-Tower01"
res[36] RESEARCHSTAT "R-Defense-Pillbox04"
res[37] RESEARCHSTAT "R-Wpn-MG2Mk1"
res[38] RESEARCHSTAT "R-Wpn-Rocket05-MiniPod"
res[39] RESEARCHSTAT "R-Wpn-MG-Damage01"
res[40] RESEARCHSTAT "R-Wpn-Rocket-Damage01"
res[41] RESEARCHSTAT "R-Defense-WallTower01"
// skirmish from here!
res[42] RESEARCHSTAT "R-Sys-Sensor-Upgrade01"
res[43] RESEARCHSTAT "R-Cyborg-Metals01"
res[44] RESEARCHSTAT "R-Vehicle-Metals01"
res[45] RESEARCHSTAT "R-Wpn-RocketSlow-ROF01"
res[46] RESEARCHSTAT "R-Struc-Factory-Upgrade01"
res[47] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade01"
res[48] RESEARCHSTAT "R-Struc-Research-Upgrade01"
res[49] RESEARCHSTAT "R-Wpn-AAGun-Accuracy01"
res[50] RESEARCHSTAT "R-Wpn-AAGun-Damage01"
res[51] RESEARCHSTAT "R-Wpn-Flamer-ROF01"
res[52] RESEARCHSTAT "R-Wpn-Rocket-Damage02"
res[53] RESEARCHSTAT "R-Wpn-MG-ROF01"
res[54] RESEARCHSTAT "R-Wpn-MG-Damage02"
res[55] RESEARCHSTAT "R-Wpn-Cannon-Accuracy01"
res[56] RESEARCHSTAT "R-Wpn-Cannon-Damage01"
res[57] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy02"
res[58] RESEARCHSTAT "R-Cyborg-Metals02"
res[59] RESEARCHSTAT "R-Vehicle-Metals02"
res[60] RESEARCHSTAT "R-Vehicle-Engine02"
res[61] RESEARCHSTAT "R-Defense-WallUpgrade02"
res[62] RESEARCHSTAT "R-Struc-Factory-Upgrade02"
res[63] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy03"
res[64] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade02"
res[65] RESEARCHSTAT "R-Wpn-MG-Damage03"
res[66] RESEARCHSTAT "R-Wpn-AAGun-Damage02"
res[67] RESEARCHSTAT "R-Wpn-Rocket-Damage03"
res[68] RESEARCHSTAT "R-Wpn-AAGun-ROF01"
res[69] RESEARCHSTAT "R-Wpn-Cannon-Damage02"
res[70] RESEARCHSTAT "R-Wpn-Flamer-Damage02"
res[71] RESEARCHSTAT "R-Wpn-Cannon-Damage03"
res[72] RESEARCHSTAT "R-Wpn-Rocket-ROF02"
res[73] RESEARCHSTAT "R-Wpn-Mortar-Acc02"
res[74] RESEARCHSTAT "R-Wpn-Mortar-Damage02"
res[75] RESEARCHSTAT "R-Wpn-Rocket-ROF03"
res[76] RESEARCHSTAT "R-Wpn-RocketSlow-Damage03"
res[77] RESEARCHSTAT "R-Vehicle-Metals03"
res[78] RESEARCHSTAT "R-Wpn-RocketSlow-ROF03"
res[79] RESEARCHSTAT "R-Wpn-RocketSlow-Damage05"
res[80] RESEARCHSTAT "R-Wpn-Flamer-Damage03"
res[81] RESEARCHSTAT "R-Vehicle-Engine03"
res[82] RESEARCHSTAT "R-Wpn-Cannon-Damage04"
res[83] RESEARCHSTAT "R-Cyborg-Metals03"
res[84] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade03"
res[85] RESEARCHSTAT "R-Struc-Factory-Upgrade03"
res[86] RESEARCHSTAT "R-Wpn-Flamer-Damage04"
res[87] RESEARCHSTAT "R-Wpn-Cannon-Damage05"
res[88] RESEARCHSTAT "R-Wpn-Rocket-Damage04"
res[89] RESEARCHSTAT "R-Struc-VTOLPad-Upgrade01"
res[90] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade01"
res[91] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade02"

// start points. NOTE THIS IS NOT THE NUMBER OF TOPICS
resClean INT 4 // no base
resBase INT 19 // simple base
resDefensive INT 40 // defensive base


}
239 changes: 239 additions & 0 deletions data/01/multiplay/script/skirmishai6.vlo
Original file line number Diff line number Diff line change
@@ -0,0 +1,239 @@
/////////////////////////////////////////////////////////////////////
// ai for skirmish game
// Generic vlo for each computer player
/////////////////////////////////////////////////////////////////////

script "skirmishAI.slo"
run
{
player INT 6

numScouts INT 3 // min number of droids in group to aim for.
numDefenders INT 3
numAttackers INT 6
numCyborgs INT 8 // build cyborgs until scouts contains x droids

tileExpand INT 12 // approx minutes to expand over the map.

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// structures

// generic names, often used.
oilRes FEATURESTAT "OilResource"
resLab STRUCTURESTAT "A0ResearchFacility"
powGen STRUCTURESTAT "A0PowerGenerator"
factory STRUCTURESTAT "A0LightFactory"
derrick STRUCTURESTAT "A0ResourceExtractor"
cybFactory STRUCTURESTAT "A0CyborgFactory"
playerHQ STRUCTURESTAT "A0CommandCentre"
vtolDefStruct STRUCTURESTAT "AASite-QuadMg1"
vtolPad STRUCTURESTAT "A0VtolPad"
vtolFactory STRUCTURESTAT "A0VTolFactory1"
repairFacility STRUCTURESTAT "A0RepairCentre3"

// upgrade structures
powModule STRUCTURESTAT "A0PowMod1"
facModule STRUCTURESTAT "A0FacMod1"
resModule STRUCTURESTAT "A0ResearchModule1"

// Essential structs.
numStructs INT 5
structs[0] STRUCTURESTAT "A0PowerGenerator"
structs[1] STRUCTURESTAT "A0LightFactory"
structs[2] STRUCTURESTAT "A0CommandCentre"
structs[3] STRUCTURESTAT "A0ResearchFacility"
structs[4] STRUCTURESTAT "A0CyborgFactory"

// defensive structs.
numDefStructs INT 9
defStructs[0] STRUCTURESTAT "Sys-SensoTower02"
defStructs[1] STRUCTURESTAT "WallTower06"
defStructs[2] STRUCTURESTAT "Emplacement-MortarPit01"
defStructs[3] STRUCTURESTAT "PillBox1"
defStructs[4] STRUCTURESTAT "PillBox2"
defStructs[5] STRUCTURESTAT "PillBox5"
defStructs[6] STRUCTURESTAT "WallTower02"
defStructs[7] STRUCTURESTAT "WallTower03"
defStructs[8] STRUCTURESTAT "Emplacement-MRL-pit"
// extra structs
numExtraStructs INT 6
extraStructs[0] STRUCTURESTAT "A0LightFactory"
extraStructs[1] STRUCTURESTAT "A0RepairCentre3"
extraStructs[2] STRUCTURESTAT "PillBox5"
extraStructs[3] STRUCTURESTAT "A0LightFactory"
extraStructs[4] STRUCTURESTAT "A0ResearchFacility"
extraStructs[5] STRUCTURESTAT "Sys-SensoTower02"


/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// droids

constructor TEMPLATE "ConstructorDroid"
vtolTemplate TEMPLATE "P6-L-LTAT-V"

// cyborg templates
cybTempl[0] TEMPLATE "CyborgChain01Ground"
cybTempl[1] TEMPLATE "CyborgFlamer01Grd"
cybTempl[2] TEMPLATE "CyborgCannon01Grd"
cybTempl[3] TEMPLATE "CyborgRkt01Ground"

// droid build array, long range weapons should not be in 2 consecutive slots.
// must be a multiple of 3 templates.
numTemplates INT 36
tmpl[0] TEMPLATE "ViperMG01Wheels"
tmpl[1] TEMPLATE "ViperMG01Wheels"
tmpl[2] TEMPLATE "ViperFlameWheels"
tmpl[3] TEMPLATE "ViperMG02Wheels"
tmpl[4] TEMPLATE "ViperMG02Halftrack"
tmpl[5] TEMPLATE "ViperRepairWheels"
tmpl[6] TEMPLATE "ViperHMGTracks"
tmpl[7] TEMPLATE "ViperLtCannonWheels"
tmpl[8] TEMPLATE "ViperFlameWheels"
tmpl[9] TEMPLATE "ViperLtCannonTracks"
tmpl[10] TEMPLATE "ViperMedCnTrks"
tmpl[11] TEMPLATE "ViperHMGTracks"
tmpl[12] TEMPLATE "ViperLtA-Twheels"
tmpl[13] TEMPLATE "ViperPODWheels"
tmpl[14] TEMPLATE "ViperMRLWheels"
tmpl[15] TEMPLATE "ViperBBWheels"
tmpl[16] TEMPLATE "CobraHMGHalfTrack"
tmpl[17] TEMPLATE "CobraFlameTracks"
tmpl[18] TEMPLATE "Sk-CobraBBHover"
tmpl[19] TEMPLATE "ViperMRLWheels"
tmpl[20] TEMPLATE "CobraMedCnTrks"
tmpl[21] TEMPLATE "CobraHvyCnTrks"
tmpl[22] TEMPLATE "ViperRepairHalftrack"
tmpl[23] TEMPLATE "CobraFlameTracks"
tmpl[24] TEMPLATE "CobraMortarHalfTrack"
tmpl[25] TEMPLATE "ViperSensorWheels"
tmpl[26] TEMPLATE "CobraHvyMortarHalftrack"
tmpl[27] TEMPLATE "CobraLtA-Thalftrack"
tmpl[28] TEMPLATE "ViperRepairHalftrack"
tmpl[29] TEMPLATE "CobraMRLHalftrack"
// tmpl[30] TEMPLATE "PythonLtCnTrks"
tmpl[30] TEMPLATE "Sk-PythonHvCanTrack"
tmpl[31] TEMPLATE "PythonMedCnTrks"
tmpl[32] TEMPLATE "CobraHMGHalfTrack"
tmpl[33] TEMPLATE "Sk-CobraBBHover"
// tmpl[33] TEMPLATE "CobraFlameTracks"
tmpl[34] TEMPLATE "PythonHvyCnTrks"
tmpl[35] TEMPLATE "CobraHvyMortarHalftrack"




// start points. MUST BE MULTIPLE OF 3 <numTemplates && >=3
// clean base starts from 0.
tmplTwo INT 3 // simple base
tmplThree INT 12 // defensive base

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// research

numResearch INT 92
res[0] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[1] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[2] RESEARCHSTAT "R-Vehicle-Body01"
res[3] RESEARCHSTAT "R-Comp-SynapticLink"

res[4] RESEARCHSTAT "R-Wpn-MG1Mk1"
res[5] RESEARCHSTAT "R-Defense-HardcreteWall"
res[6] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[7] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[8] RESEARCHSTAT "R-Struc-Factory-Cyborg"
res[9] RESEARCHSTAT "R-Cyborg-Wpn-MG"
res[10] RESEARCHSTAT "R-Defense-Pillbox01"
res[11] RESEARCHSTAT "R-Defense-Tower01"
res[12] RESEARCHSTAT "R-Vehicle-Body01"
res[13] RESEARCHSTAT "R-Sys-Engineering01"
res[14] RESEARCHSTAT "R-Struc-CommandRelay"
res[15] RESEARCHSTAT "R-Vehicle-Prop-Halftracks"
res[16] RESEARCHSTAT "R-Comp-CommandTurret01"
res[17] RESEARCHSTAT "R-Sys-Sensor-Turret01"
res[18] RESEARCHSTAT "R-Wpn-Flamer01Mk1"

res[19] RESEARCHSTAT "R-Vehicle-Body05"
res[20] RESEARCHSTAT "R-Struc-Research-Module"
res[21] RESEARCHSTAT "R-Struc-PowerModuleMk1"
res[22] RESEARCHSTAT "R-Struc-Factory-Module"
res[23] RESEARCHSTAT "R-Struc-RepairFacility"
res[24] RESEARCHSTAT "R-Sys-MobileRepairTurret01"
res[25] RESEARCHSTAT "R-Vehicle-Engine01"
res[26] RESEARCHSTAT "R-Vehicle-Prop-Tracks"
res[27] RESEARCHSTAT "R-Cyborg-Wpn-Cannon"
res[28] RESEARCHSTAT "R-Cyborg-Wpn-Flamer"
res[29] RESEARCHSTAT "R-Wpn-MG3Mk1"
res[30] RESEARCHSTAT "R-Wpn-Cannon1Mk1"
res[31] RESEARCHSTAT "R-Wpn-Mortar01Lt"
res[32] RESEARCHSTAT "R-Defense-Pillbox05"
res[33] RESEARCHSTAT "R-Defense-TankTrap01"
res[34] RESEARCHSTAT "R-Defense-WallTower02"
res[35] RESEARCHSTAT "R-Sys-Sensor-Tower01"
res[36] RESEARCHSTAT "R-Defense-Pillbox04"
res[37] RESEARCHSTAT "R-Wpn-MG2Mk1"
res[38] RESEARCHSTAT "R-Wpn-Rocket05-MiniPod"
res[39] RESEARCHSTAT "R-Wpn-MG-Damage01"
res[40] RESEARCHSTAT "R-Wpn-Rocket-Damage01"
res[41] RESEARCHSTAT "R-Defense-WallTower01"
// skirmish from here!
res[42] RESEARCHSTAT "R-Sys-Sensor-Upgrade01"
res[43] RESEARCHSTAT "R-Cyborg-Metals01"
res[44] RESEARCHSTAT "R-Vehicle-Metals01"
res[45] RESEARCHSTAT "R-Wpn-RocketSlow-ROF01"
res[46] RESEARCHSTAT "R-Struc-Factory-Upgrade01"
res[47] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade01"
res[48] RESEARCHSTAT "R-Struc-Research-Upgrade01"
res[49] RESEARCHSTAT "R-Wpn-AAGun-Accuracy01"
res[50] RESEARCHSTAT "R-Wpn-AAGun-Damage01"
res[51] RESEARCHSTAT "R-Wpn-Flamer-ROF01"
res[52] RESEARCHSTAT "R-Wpn-Rocket-Damage02"
res[53] RESEARCHSTAT "R-Wpn-MG-ROF01"
res[54] RESEARCHSTAT "R-Wpn-MG-Damage02"
res[55] RESEARCHSTAT "R-Wpn-Cannon-Accuracy01"
res[56] RESEARCHSTAT "R-Wpn-Cannon-Damage01"
res[57] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy02"
res[58] RESEARCHSTAT "R-Cyborg-Metals02"
res[59] RESEARCHSTAT "R-Vehicle-Metals02"
res[60] RESEARCHSTAT "R-Vehicle-Engine02"
res[61] RESEARCHSTAT "R-Defense-WallUpgrade02"
res[62] RESEARCHSTAT "R-Struc-Factory-Upgrade02"
res[63] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy03"
res[64] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade02"
res[65] RESEARCHSTAT "R-Wpn-MG-Damage03"
res[66] RESEARCHSTAT "R-Wpn-AAGun-Damage02"
res[67] RESEARCHSTAT "R-Wpn-Rocket-Damage03"
res[68] RESEARCHSTAT "R-Wpn-AAGun-ROF01"
res[69] RESEARCHSTAT "R-Wpn-Cannon-Damage02"
res[70] RESEARCHSTAT "R-Wpn-Flamer-Damage02"
res[71] RESEARCHSTAT "R-Wpn-Cannon-Damage03"
res[72] RESEARCHSTAT "R-Wpn-Rocket-ROF02"
res[73] RESEARCHSTAT "R-Wpn-Mortar-Acc02"
res[74] RESEARCHSTAT "R-Wpn-Mortar-Damage02"
res[75] RESEARCHSTAT "R-Wpn-Rocket-ROF03"
res[76] RESEARCHSTAT "R-Wpn-RocketSlow-Damage03"
res[77] RESEARCHSTAT "R-Vehicle-Metals03"
res[78] RESEARCHSTAT "R-Wpn-RocketSlow-ROF03"
res[79] RESEARCHSTAT "R-Wpn-RocketSlow-Damage05"
res[80] RESEARCHSTAT "R-Wpn-Flamer-Damage03"
res[81] RESEARCHSTAT "R-Vehicle-Engine03"
res[82] RESEARCHSTAT "R-Wpn-Cannon-Damage04"
res[83] RESEARCHSTAT "R-Cyborg-Metals03"
res[84] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade03"
res[85] RESEARCHSTAT "R-Struc-Factory-Upgrade03"
res[86] RESEARCHSTAT "R-Wpn-Flamer-Damage04"
res[87] RESEARCHSTAT "R-Wpn-Cannon-Damage05"
res[88] RESEARCHSTAT "R-Wpn-Rocket-Damage04"
res[89] RESEARCHSTAT "R-Struc-VTOLPad-Upgrade01"
res[90] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade01"
res[91] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade02"

// start points. NOTE THIS IS NOT THE NUMBER OF TOPICS
resClean INT 4 // no base
resBase INT 19 // simple base
resDefensive INT 40 // defensive base


}
236 changes: 236 additions & 0 deletions data/01/multiplay/script/skirmishai7.vlo
Original file line number Diff line number Diff line change
@@ -0,0 +1,236 @@
/////////////////////////////////////////////////////////////////////
// ai for skirmish game
// Generic vlo for each computer player
/////////////////////////////////////////////////////////////////////

script "skirmishAI.slo"
run
{
player INT 7

numScouts INT 3 // min number of droids in group to aim for.
numDefenders INT 3
numAttackers INT 6
numCyborgs INT 8 // build cyborgs until scouts contains x droids

tileExpand INT 12 // approx minutes to expand over the map.

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// structures

// generic names, often used.
oilRes FEATURESTAT "OilResource"
resLab STRUCTURESTAT "A0ResearchFacility"
powGen STRUCTURESTAT "A0PowerGenerator"
factory STRUCTURESTAT "A0LightFactory"
derrick STRUCTURESTAT "A0ResourceExtractor"
cybFactory STRUCTURESTAT "A0CyborgFactory"
playerHQ STRUCTURESTAT "A0CommandCentre"
vtolDefStruct STRUCTURESTAT "AASite-QuadMg1"
vtolPad STRUCTURESTAT "A0VtolPad"
vtolFactory STRUCTURESTAT "A0VTolFactory1"
repairFacility STRUCTURESTAT "A0RepairCentre3"

// upgrade structures
powModule STRUCTURESTAT "A0PowMod1"
facModule STRUCTURESTAT "A0FacMod1"
resModule STRUCTURESTAT "A0ResearchModule1"

// Essential structs.
numStructs INT 5
structs[0] STRUCTURESTAT "A0PowerGenerator"
structs[1] STRUCTURESTAT "A0LightFactory"
structs[2] STRUCTURESTAT "A0CommandCentre"
structs[3] STRUCTURESTAT "A0ResearchFacility"
structs[4] STRUCTURESTAT "A0CyborgFactory"

// defensive structs.
numDefStructs INT 9
defStructs[0] STRUCTURESTAT "Sys-SensoTower02"
defStructs[1] STRUCTURESTAT "WallTower06"
defStructs[2] STRUCTURESTAT "Emplacement-MortarPit01"
defStructs[3] STRUCTURESTAT "PillBox1"
defStructs[4] STRUCTURESTAT "PillBox2"
defStructs[5] STRUCTURESTAT "PillBox5"
defStructs[6] STRUCTURESTAT "WallTower02"
defStructs[7] STRUCTURESTAT "WallTower03"
defStructs[8] STRUCTURESTAT "Emplacement-MRL-pit"
// extra structs
numExtraStructs INT 6
extraStructs[0] STRUCTURESTAT "A0LightFactory"
extraStructs[1] STRUCTURESTAT "A0RepairCentre3"
extraStructs[2] STRUCTURESTAT "PillBox5"
extraStructs[3] STRUCTURESTAT "A0LightFactory"
extraStructs[4] STRUCTURESTAT "A0ResearchFacility"
extraStructs[5] STRUCTURESTAT "Sys-SensoTower02"


/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// droids

constructor TEMPLATE "ConstructorDroid"
vtolTemplate TEMPLATE "P6-L-LTAT-V"

// cyborg templates
cybTempl[0] TEMPLATE "CyborgChain01Ground"
cybTempl[1] TEMPLATE "CyborgFlamer01Grd"
cybTempl[2] TEMPLATE "CyborgCannon01Grd"
cybTempl[3] TEMPLATE "CyborgRkt01Ground"

// droid build array, long range weapons should not be in 2 consecutive slots.
// must be a multiple of 3 templates.
numTemplates INT 36
tmpl[0] TEMPLATE "ViperMG01Wheels"
tmpl[1] TEMPLATE "ViperMG01Wheels"
tmpl[2] TEMPLATE "ViperFlameWheels"
tmpl[3] TEMPLATE "ViperMG02Wheels"
tmpl[4] TEMPLATE "ViperMG02Halftrack"
tmpl[5] TEMPLATE "ViperRepairWheels"
tmpl[6] TEMPLATE "ViperHMGTracks"
tmpl[7] TEMPLATE "ViperLtCannonWheels"
tmpl[8] TEMPLATE "ViperFlameWheels"
tmpl[9] TEMPLATE "ViperLtCannonTracks"
tmpl[10] TEMPLATE "ViperMedCnTrks"
tmpl[11] TEMPLATE "ViperHMGTracks"
tmpl[12] TEMPLATE "ViperLtA-Twheels"
tmpl[13] TEMPLATE "ViperPODWheels"
tmpl[14] TEMPLATE "ViperMRLWheels"
tmpl[15] TEMPLATE "ViperBBWheels"
tmpl[16] TEMPLATE "CobraHMGHalfTrack"
tmpl[17] TEMPLATE "CobraFlameTracks"
tmpl[18] TEMPLATE "Sk-CobraBBHover"
tmpl[19] TEMPLATE "ViperMRLWheels"
tmpl[20] TEMPLATE "CobraMedCnTrks"
tmpl[21] TEMPLATE "CobraHvyCnTrks"
tmpl[22] TEMPLATE "ViperRepairHalftrack"
tmpl[23] TEMPLATE "CobraFlameTracks"
tmpl[24] TEMPLATE "CobraMortarHalfTrack"
tmpl[25] TEMPLATE "ViperSensorWheels"
tmpl[26] TEMPLATE "CobraHvyMortarHalftrack"
tmpl[27] TEMPLATE "CobraLtA-Thalftrack"
tmpl[28] TEMPLATE "ViperRepairHalftrack"
tmpl[29] TEMPLATE "CobraMRLHalftrack"
// tmpl[30] TEMPLATE "PythonLtCnTrks"
tmpl[30] TEMPLATE "Sk-PythonHvCanTrack"
tmpl[31] TEMPLATE "PythonMedCnTrks"
tmpl[32] TEMPLATE "CobraHMGHalfTrack"
tmpl[33] TEMPLATE "Sk-CobraBBHover"
// tmpl[33] TEMPLATE "CobraFlameTracks"
tmpl[34] TEMPLATE "PythonHvyCnTrks"
tmpl[35] TEMPLATE "CobraHvyMortarHalftrack"

// start points. MUST BE MULTIPLE OF 3 <numTemplates && >=3
// clean base starts from 0.
tmplTwo INT 3 // simple base
tmplThree INT 12 // defensive base

/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
// research

numResearch INT 92
res[0] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[1] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[2] RESEARCHSTAT "R-Vehicle-Body01"
res[3] RESEARCHSTAT "R-Comp-SynapticLink"

res[4] RESEARCHSTAT "R-Wpn-MG1Mk1"
res[5] RESEARCHSTAT "R-Defense-HardcreteWall"
res[6] RESEARCHSTAT "R-Vehicle-Prop-Wheels"
res[7] RESEARCHSTAT "R-Sys-Spade1Mk1"
res[8] RESEARCHSTAT "R-Struc-Factory-Cyborg"
res[9] RESEARCHSTAT "R-Cyborg-Wpn-MG"
res[10] RESEARCHSTAT "R-Defense-Pillbox01"
res[11] RESEARCHSTAT "R-Defense-Tower01"
res[12] RESEARCHSTAT "R-Vehicle-Body01"
res[13] RESEARCHSTAT "R-Sys-Engineering01"
res[14] RESEARCHSTAT "R-Struc-CommandRelay"
res[15] RESEARCHSTAT "R-Vehicle-Prop-Halftracks"
res[16] RESEARCHSTAT "R-Comp-CommandTurret01"
res[17] RESEARCHSTAT "R-Sys-Sensor-Turret01"
res[18] RESEARCHSTAT "R-Wpn-Flamer01Mk1"

res[19] RESEARCHSTAT "R-Vehicle-Body05"
res[20] RESEARCHSTAT "R-Struc-Research-Module"
res[21] RESEARCHSTAT "R-Struc-PowerModuleMk1"
res[22] RESEARCHSTAT "R-Struc-Factory-Module"
res[23] RESEARCHSTAT "R-Struc-RepairFacility"
res[24] RESEARCHSTAT "R-Sys-MobileRepairTurret01"
res[25] RESEARCHSTAT "R-Vehicle-Engine01"
res[26] RESEARCHSTAT "R-Vehicle-Prop-Tracks"
res[27] RESEARCHSTAT "R-Cyborg-Wpn-Cannon"
res[28] RESEARCHSTAT "R-Cyborg-Wpn-Flamer"
res[29] RESEARCHSTAT "R-Wpn-MG3Mk1"
res[30] RESEARCHSTAT "R-Wpn-Cannon1Mk1"
res[31] RESEARCHSTAT "R-Wpn-Mortar01Lt"
res[32] RESEARCHSTAT "R-Defense-Pillbox05"
res[33] RESEARCHSTAT "R-Defense-TankTrap01"
res[34] RESEARCHSTAT "R-Defense-WallTower02"
res[35] RESEARCHSTAT "R-Sys-Sensor-Tower01"
res[36] RESEARCHSTAT "R-Defense-Pillbox04"
res[37] RESEARCHSTAT "R-Wpn-MG2Mk1"
res[38] RESEARCHSTAT "R-Wpn-Rocket05-MiniPod"
res[39] RESEARCHSTAT "R-Wpn-MG-Damage01"
res[40] RESEARCHSTAT "R-Wpn-Rocket-Damage01"
res[41] RESEARCHSTAT "R-Defense-WallTower01"
// skirmish from here!
res[42] RESEARCHSTAT "R-Sys-Sensor-Upgrade01"
res[43] RESEARCHSTAT "R-Cyborg-Metals01"
res[44] RESEARCHSTAT "R-Vehicle-Metals01"
res[45] RESEARCHSTAT "R-Wpn-RocketSlow-ROF01"
res[46] RESEARCHSTAT "R-Struc-Factory-Upgrade01"
res[47] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade01"
res[48] RESEARCHSTAT "R-Struc-Research-Upgrade01"
res[49] RESEARCHSTAT "R-Wpn-AAGun-Accuracy01"
res[50] RESEARCHSTAT "R-Wpn-AAGun-Damage01"
res[51] RESEARCHSTAT "R-Wpn-Flamer-ROF01"
res[52] RESEARCHSTAT "R-Wpn-Rocket-Damage02"
res[53] RESEARCHSTAT "R-Wpn-MG-ROF01"
res[54] RESEARCHSTAT "R-Wpn-MG-Damage02"
res[55] RESEARCHSTAT "R-Wpn-Cannon-Accuracy01"
res[56] RESEARCHSTAT "R-Wpn-Cannon-Damage01"
res[57] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy02"
res[58] RESEARCHSTAT "R-Cyborg-Metals02"
res[59] RESEARCHSTAT "R-Vehicle-Metals02"
res[60] RESEARCHSTAT "R-Vehicle-Engine02"
res[61] RESEARCHSTAT "R-Defense-WallUpgrade02"
res[62] RESEARCHSTAT "R-Struc-Factory-Upgrade02"
res[63] RESEARCHSTAT "R-Wpn-RocketSlow-Accuracy03"
res[64] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade02"
res[65] RESEARCHSTAT "R-Wpn-MG-Damage03"
res[66] RESEARCHSTAT "R-Wpn-AAGun-Damage02"
res[67] RESEARCHSTAT "R-Wpn-Rocket-Damage03"
res[68] RESEARCHSTAT "R-Wpn-AAGun-ROF01"
res[69] RESEARCHSTAT "R-Wpn-Cannon-Damage02"
res[70] RESEARCHSTAT "R-Wpn-Flamer-Damage02"
res[71] RESEARCHSTAT "R-Wpn-Cannon-Damage03"
res[72] RESEARCHSTAT "R-Wpn-Rocket-ROF02"
res[73] RESEARCHSTAT "R-Wpn-Mortar-Acc02"
res[74] RESEARCHSTAT "R-Wpn-Mortar-Damage02"
res[75] RESEARCHSTAT "R-Wpn-Rocket-ROF03"
res[76] RESEARCHSTAT "R-Wpn-RocketSlow-Damage03"
res[77] RESEARCHSTAT "R-Vehicle-Metals03"
res[78] RESEARCHSTAT "R-Wpn-RocketSlow-ROF03"
res[79] RESEARCHSTAT "R-Wpn-RocketSlow-Damage05"
res[80] RESEARCHSTAT "R-Wpn-Flamer-Damage03"
res[81] RESEARCHSTAT "R-Vehicle-Engine03"
res[82] RESEARCHSTAT "R-Wpn-Cannon-Damage04"
res[83] RESEARCHSTAT "R-Cyborg-Metals03"
res[84] RESEARCHSTAT "R-Struc-Factory-Cyborg-Upgrade03"
res[85] RESEARCHSTAT "R-Struc-Factory-Upgrade03"
res[86] RESEARCHSTAT "R-Wpn-Flamer-Damage04"
res[87] RESEARCHSTAT "R-Wpn-Cannon-Damage05"
res[88] RESEARCHSTAT "R-Wpn-Rocket-Damage04"
res[89] RESEARCHSTAT "R-Struc-VTOLPad-Upgrade01"
res[90] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade01"
res[91] RESEARCHSTAT "R-Struc-VTOLFactory-Upgrade02"

// start points. NOTE THIS IS NOT THE NUMBER OF TOPICS
resClean INT 4 // no base
resBase INT 19 // simple base
resDefensive INT 40 // defensive base


}
Loading