Full PhysX Template for ticket #1
1
Templates/Full PhysX/DeleteCachedDTSs.bat
Normal file
|
|
@ -0,0 +1 @@
|
|||
for /R %%a IN (*.dae) do IF EXIST "%%~pna.cached.dts" del "%%~pna.cached.dts"
|
||||
15
Templates/Full PhysX/DeleteCachedDTSs.command
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
#!/bin/sh
|
||||
|
||||
cd "`dirname "$0"`"
|
||||
|
||||
for i in $(find . -type f \( -iname "*.dae" \))
|
||||
do
|
||||
len=$((${#i} - 4))
|
||||
file=${i:0:$len}.cached.dts
|
||||
if [ -e $file ]
|
||||
then
|
||||
echo "Removing ${file}"
|
||||
rm $file
|
||||
fi
|
||||
done
|
||||
|
||||
6
Templates/Full PhysX/DeleteDSOs.bat
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
for /R %%a IN (*.cs) do IF EXIST "%%a.dso" del "%%a.dso"
|
||||
for /R %%a IN (*.cs) do IF EXIST "%%a.edso" del "%%a.edso"
|
||||
for /R %%a IN (*.gui) do IF EXIST "%%a.dso" del "%%a.dso"
|
||||
for /R %%a IN (*.gui) do IF EXIST "%%a.edso" del "%%a.edso"
|
||||
for /R %%a IN (*.ts) do IF EXIST "%%a.dso" del "%%a.dso"
|
||||
for /R %%a IN (*.ts) do IF EXIST "%%a.edso" del "%%a.edso"
|
||||
19
Templates/Full PhysX/DeleteDSOs.command
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
|
||||
cd "`dirname "$0"`"
|
||||
|
||||
for i in $(find . -type f \( -iname "*.cs" \))
|
||||
do
|
||||
file=${i}.dso
|
||||
if [ -e $file ]
|
||||
then
|
||||
echo "Removing ${file}"
|
||||
rm $file
|
||||
fi
|
||||
file=${i}.edso
|
||||
if [ -e $file ]
|
||||
then
|
||||
echo "Removing ${file}"
|
||||
rm $file
|
||||
fi
|
||||
done
|
||||
6
Templates/Full PhysX/DeletePrefs.bat
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
del /s prefs.cs
|
||||
del /s config.cs
|
||||
del /s banlist.cs
|
||||
del /s config.cs.dso
|
||||
del /s prefs.cs.dso
|
||||
del /s banlist.cs.dso
|
||||
3
Templates/Full PhysX/DeletePrefs.command
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
find "`dirname "$0"`" -type f \( -name "prefs.cs" -or -name "config.cs" -or -name "banlist.cs" -or -name "prefs.cs.dso" -or -name "config.cs.dso" -or -name "banlist.cs.dso" \) -exec rm {} \;
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
//Microsoft Developer Studio generated resource script.
|
||||
//
|
||||
#define IDI_ICON1 103
|
||||
#define IDI_ICON2 107
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 108
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1000
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "windows.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_ICON1 ICON DISCARDABLE "torque.ico"
|
||||
IDI_ICON2 ICON DISCARDABLE "torque.ico"
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#include ""windows.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
|
After Width: | Height: | Size: 25 KiB |
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ExecutablePath>$(DXSDK_DIR)\Utilities\bin\x86;$(ExecutablePath)</ExecutablePath>
|
||||
<IncludePath>$(DXSDK_DIR)\Include;$(IncludePath)</IncludePath>
|
||||
<ReferencePath>$(ReferencePath)</ReferencePath>
|
||||
<LibraryPath>$(DXSDK_DIR)\Lib\x86;$(LibraryPath)</LibraryPath>
|
||||
<SourcePath>$(SourcePath)</SourcePath>
|
||||
<ExcludePath>$(ExcludePath)</ExcludePath>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ExecutablePath>$(DXSDK_DIR)\Utilities\bin\x64;$(ExecutablePath)</ExecutablePath>
|
||||
<IncludePath>$(DXSDK_DIR)\Include;$(IncludePath)</IncludePath>
|
||||
<ReferencePath>$(ReferencePath)</ReferencePath>
|
||||
<LibraryPath>$(DXSDK_DIR)\Lib\x64;$(LibraryPath)</LibraryPath>
|
||||
<SourcePath>$(SourcePath)</SourcePath>
|
||||
<ExcludePath>$(ExcludePath)</ExcludePath>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,85 @@
|
|||
//Microsoft Developer Studio generated resource script.
|
||||
//
|
||||
#define IDI_ICON1 103
|
||||
#define IDI_ICON2 107
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 108
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1000
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "windows.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDI_ICON1 ICON DISCARDABLE "torque.ico"
|
||||
IDI_ICON2 ICON DISCARDABLE "torque.ico"
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#include ""windows.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
|
After Width: | Height: | Size: 25 KiB |
26
Templates/Full PhysX/buildFiles/Xcode/Info.plist
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>torqueDemo</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.garagegames.${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>GG3d</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>mainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>macApplication</string>
|
||||
</dict>
|
||||
</plist>
|
||||
BIN
Templates/Full PhysX/buildFiles/Xcode/torqueDemo.icns
Normal file
67
Templates/Full PhysX/buildFiles/compile.bat
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
@echo off
|
||||
SETLOCAL
|
||||
|
||||
REM Handle our optional parameters
|
||||
SET COMPILER=%1
|
||||
SET CONFIG=%2
|
||||
|
||||
IF NOT DEFINED COMPILER SET COMPILER=VS2008
|
||||
IF NOT DEFINED CONFIG SET CONFIG=Release
|
||||
|
||||
REM Setting up some variables
|
||||
|
||||
REM Detecting the correct Program Files
|
||||
IF DEFINED PROGRAMFILES(X86) SET PROGRAMROOT=%ProgramFiles(x86)%
|
||||
IF NOT DEFINED PROGRAMROOT SET PROGRAMROOT=%ProgramFiles%
|
||||
|
||||
REM First the defaults (set up for VS2008 by default)
|
||||
SET ENVVAR="%PROGRAMROOT%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
|
||||
SET BUILDCMD=devenv.com
|
||||
SET OPTIONS=/useenv /build "%CONFIG%|Win32"
|
||||
SET BUILDDIR="VisualStudio 2008"
|
||||
|
||||
REM Handle the non-defaults
|
||||
IF %COMPILER% == VS2010 SET ENVVAR="%PROGRAMROOT%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"
|
||||
|
||||
IF EXIST "%PROGRAMROOT%\Xoreax\IncrediBuild\BuildConsole.exe" SET BUILDCMD="%PROGRAMROOT%\Xoreax\IncrediBuild\BuildConsole.exe"
|
||||
IF EXIST "%PROGRAMROOT%\Xoreax\IncrediBuild\BuildConsole.exe" SET OPTIONS=/build "%CONFIG%|Win32"
|
||||
|
||||
IF %COMPILER% == VS2010 SET BUILDDIR="VisualStudio 2010"
|
||||
|
||||
|
||||
echo Building all solutions under %COMPILER% with the %CONFIG% configuration
|
||||
|
||||
echo Initializing %COMPILER% environment variables...
|
||||
call %ENVVAR%
|
||||
|
||||
echo Initializing the DirectX SDK environment variables...
|
||||
|
||||
IF "%DXSDK_DIR%" == "" goto error_no_DXSDK_DIR
|
||||
call "%DXSDK_DIR%Utilities\Bin\dx_setenv.cmd" x86
|
||||
|
||||
echo Moving to our build directory
|
||||
cd %BUILDDIR%
|
||||
|
||||
echo - Building
|
||||
for %%a in (*.sln) do %BUILDCMD% "%%a" %OPTIONS% & IF ERRORLEVEL 1 goto error_compile
|
||||
|
||||
REM It is just polite for a batch file to leave you in the same dir you started in
|
||||
cd ..
|
||||
|
||||
REM We were successful in everything so go to the end
|
||||
goto :end
|
||||
|
||||
:error_no_DXSDK_DIR
|
||||
@echo ERROR: DXSDK_DIR variable is not set. Make sure the DirectX SDK is installed properly.
|
||||
@goto end_error
|
||||
|
||||
:error_compile
|
||||
@echo ERROR: There was an error compiling a solution in %CD%
|
||||
@goto end_error
|
||||
|
||||
:end_error
|
||||
ENDLOCAL
|
||||
EXIT /B 1
|
||||
|
||||
:end
|
||||
ENDLOCAL
|
||||
23
Templates/Full PhysX/buildFiles/config/project.conf
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
// Set this true to enable hifi networking instead of standard.
|
||||
// In general ... hifi is designed to better deal with fast
|
||||
// moving players in close proximity to each other, such as
|
||||
// a racing game.
|
||||
$TORQUE_HIFI_NET = false;
|
||||
|
||||
// Configure Torque 3D
|
||||
Torque3D::beginConfig( "win32", "Full PhysX" );
|
||||
|
||||
// Include Web Deployment module
|
||||
includeModule( 'webDeploy' );
|
||||
|
||||
// Include PhysX physics over Torque's.
|
||||
includeModule( 'physx' );
|
||||
|
||||
// Enable for optional minidump debugging support
|
||||
// addProjectDefine( 'TORQUE_MINIDUMP' );
|
||||
|
||||
Torque3D::endConfig();
|
||||
|
||||
?>
|
||||
11
Templates/Full PhysX/buildFiles/config/project.mac.conf
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
// Configure Torque 3D
|
||||
Torque3D::beginConfig( "mac", "Full PhysX" );
|
||||
|
||||
// Include Web Deployment module
|
||||
includeModule( 'webDeploy' );
|
||||
|
||||
Torque3D::endConfig();
|
||||
|
||||
?>
|
||||
12
Templates/Full PhysX/buildFiles/config/projectCode.conf
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<?php
|
||||
|
||||
// This file is used to add your project specific code to the Torque 3D Game Engine
|
||||
|
||||
// by default we add the project's source folders recursively
|
||||
addSrcDir('../source', true);
|
||||
|
||||
// Here is an example of how to include your project specific code
|
||||
// In this case all the code in the "custom" folder in your project's source directory would be added
|
||||
// addSrcDir('../source/custom');
|
||||
|
||||
?>
|
||||
41
Templates/Full PhysX/buildFiles/config/webDeploy.conf
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
class WebDeploymentWindows
|
||||
{
|
||||
|
||||
public static $plugin = "WebFullPhysXTemplate";
|
||||
|
||||
//------ NP plugin settings
|
||||
|
||||
// The plugin MUST begin with NP for Firefox to recognize it
|
||||
// setup in project.conf
|
||||
public static $npPluginName = "";
|
||||
|
||||
public static $company = "My Game Company";
|
||||
public static $companyKey = "mygamecompany";
|
||||
public static $productName = "My Web Game";
|
||||
public static $version = "1.0";
|
||||
public static $description = "My Web Game Plugin";
|
||||
|
||||
// Before you should specify a unique MIME type for your game
|
||||
public static $mimeType = "x-fullphysxtemplateplugin";
|
||||
|
||||
//------ ActiveX plugin settings
|
||||
|
||||
// setup in project.conf
|
||||
public static $axPluginName = "";
|
||||
|
||||
// Before shipping the UUID should be changed to unique numbers for your game
|
||||
|
||||
// This UUID is used by CLSID in object tag in your site's html
|
||||
public static $axWebGameLibUUID = "D62D1B36-253D-4218-B033-5ACE0B42B8BF";
|
||||
|
||||
// Other UUID used by registry
|
||||
public static $axAppUUID = "AB7615A3-A918-488B-B128-96DD62D0AE36";
|
||||
public static $axWebGameUUID = "5240D24D-FBCE-4AF2-99FC-4C7AD4318E91";
|
||||
public static $axWebGameCtrlUUID = "FC143328-E29C-4BC4-8C83-618FEB562532";
|
||||
|
||||
|
||||
};
|
||||
|
||||
?>
|
||||
20
Templates/Full PhysX/buildFiles/config/webDeploy.mac.conf
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
class WebDeploymentOSX
|
||||
{
|
||||
|
||||
// setup in project.conf
|
||||
public static $safariPluginName = "";
|
||||
|
||||
public static $identifier = "com.mygamecompany.fullphysxtemplateplugin";
|
||||
|
||||
public static $description = "Full PhysX Template Plugin";
|
||||
|
||||
public static $version = "1.0";
|
||||
|
||||
// Before you should specify a unique MIME type for your game
|
||||
public static $mimeType = "x-fullphysxtemplateplugin";
|
||||
|
||||
};
|
||||
|
||||
?>
|
||||
7
Templates/Full PhysX/cleanShaders.bat
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
REM Delete procedural shaders
|
||||
|
||||
del /q /a:-R game\shaders\procedural\*.*
|
||||
|
||||
REM Delete dumped shader disassembly files
|
||||
|
||||
del /q /s /a:-R *_dis.txt
|
||||
4
Templates/Full PhysX/cleanShaders.command
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
cd "`dirname "$0"`"
|
||||
rm -rf game/shaders/procedural/*.*
|
||||
BIN
Templates/Full PhysX/game/Full PhysX.dll
Normal file
BIN
Templates/Full PhysX/game/Full PhysX.exe
Normal file
39
Templates/Full PhysX/game/Full PhysX.torsion
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
<TorsionProject>
|
||||
<Name>Full PhysX</Name>
|
||||
<WorkingDir/>
|
||||
<EntryScript>main.cs</EntryScript>
|
||||
<DebugHook>dbgSetParameters( #port#, "#password#", true );</DebugHook>
|
||||
<Mods>
|
||||
<Folder>core</Folder>
|
||||
<Folder>scripts</Folder>
|
||||
<Folder>art</Folder>
|
||||
<Folder>levels</Folder>
|
||||
<Folder>shaders</Folder>
|
||||
<Folder>tools</Folder>
|
||||
</Mods>
|
||||
<ScannerExts>cs; gui</ScannerExts>
|
||||
<Configs>
|
||||
<Config>
|
||||
<Name>Release</Name>
|
||||
<Executable>Full PhysX.exe</Executable>
|
||||
<Arguments/>
|
||||
<HasExports>true</HasExports>
|
||||
<Precompile>true</Precompile>
|
||||
<InjectDebugger>true</InjectDebugger>
|
||||
<UseSetModPaths>false</UseSetModPaths>
|
||||
</Config>
|
||||
<Config>
|
||||
<Name>Debug</Name>
|
||||
<Executable>Full PhysX_DEBUG.exe</Executable>
|
||||
<Arguments/>
|
||||
<HasExports>true</HasExports>
|
||||
<Precompile>true</Precompile>
|
||||
<InjectDebugger>true</InjectDebugger>
|
||||
<UseSetModPaths>false</UseSetModPaths>
|
||||
</Config>
|
||||
</Configs>
|
||||
<SearchURL/>
|
||||
<SearchProduct>Full PhysX</SearchProduct>
|
||||
<SearchVersion>HEAD</SearchVersion>
|
||||
<ExecModifiedScripts>true</ExecModifiedScripts>
|
||||
</TorsionProject>
|
||||
BIN
Templates/Full PhysX/game/IE Full PhysX Plugin.dll
Normal file
BIN
Templates/Full PhysX/game/NP Full PhysX Plugin.dll
Normal file
BIN
Templates/Full PhysX/game/PhysXCooking.dll
Normal file
BIN
Templates/Full PhysX/game/PhysXCore.dll
Normal file
BIN
Templates/Full PhysX/game/PhysXDevice.dll
Normal file
BIN
Templates/Full PhysX/game/PhysXLoader.dll
Normal file
30
Templates/Full PhysX/game/art/datablocks/aiPlayer.cs
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Demo Pathed AIPlayer.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
datablock PlayerData(DemoPlayer : DefaultPlayerData)
|
||||
{
|
||||
shootingDelay = 2000;
|
||||
};
|
||||
42
Templates/Full PhysX/game/art/datablocks/audioProfiles.cs
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Always declare audio Descriptions (the type of sound) before Profiles (the
|
||||
// sound itself) when creating new ones.
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Now for the profiles - these are the usable sounds
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock SFXProfile(ThrowSnd)
|
||||
{
|
||||
filename = "art/sound/throw";
|
||||
description = AudioClose3d;
|
||||
preload = false;
|
||||
};
|
||||
|
||||
datablock SFXProfile(OOBWarningSnd)
|
||||
{
|
||||
filename = "art/sound/orc_pain";
|
||||
description = "AudioLoop2D";
|
||||
preload = false;
|
||||
};
|
||||
58
Templates/Full PhysX/game/art/datablocks/datablockExec.cs
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Load up all datablocks. This function is called when
|
||||
// a server is constructed.
|
||||
|
||||
// Do the sounds first -- later scripts/datablocks may need them
|
||||
exec("./audioProfiles.cs");
|
||||
|
||||
// Do the various effects next -- later scripts/datablocks may need them
|
||||
exec("./particles.cs");
|
||||
|
||||
exec("./environment.cs");
|
||||
exec("./triggers.cs");
|
||||
|
||||
// Add a rigid example
|
||||
exec("./rigidShape.cs");
|
||||
|
||||
exec("./health.cs");
|
||||
|
||||
// Load our supporting weapon datablocks
|
||||
exec("./weapon.cs");
|
||||
|
||||
// Load the weapon datablocks
|
||||
exec("./weapons/grenadeLauncher.cs");
|
||||
exec("./weapons/grenade.cs");
|
||||
exec("./weapons/rocketLauncher.cs");
|
||||
exec("./weapons/Lurker.cs");
|
||||
exec("./weapons/Ryder.cs");
|
||||
exec("./weapons/ProxMine.cs");
|
||||
exec("./weapons/Turret.cs");
|
||||
|
||||
exec("./teleporter.cs");
|
||||
|
||||
// Load the default player datablocks
|
||||
exec("./player.cs");
|
||||
|
||||
// Load our other player datablocks
|
||||
exec("./aiPlayer.cs");
|
||||
86
Templates/Full PhysX/game/art/datablocks/environment.cs
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// ENVIROMENTAL EFFECTS GO HERE (PRECIPITATION - LIGHTNING)
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Rain
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock SFXProfile(HeavyRainSound)
|
||||
{
|
||||
filename = "art/sound/environment/amb";
|
||||
description = AudioLoop2d;
|
||||
};
|
||||
|
||||
datablock PrecipitationData(HeavyRain)
|
||||
{
|
||||
soundProfile = "HeavyRainSound";
|
||||
|
||||
dropTexture = "art/environment/precipitation/rain";
|
||||
splashTexture = "art/environment/precipitation/water_splash";
|
||||
dropSize = 0.35;
|
||||
splashSize = 0.1;
|
||||
useTrueBillboards = false;
|
||||
splashMS = 500;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Lightning
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// When setting up thunder sounds for lightning it should be known that:
|
||||
// - strikeSound is a 3d sound
|
||||
// - thunderSounds[n] are 2d sounds
|
||||
|
||||
datablock SFXProfile(ThunderCrash1Sound)
|
||||
{
|
||||
filename = "art/sound/environment/thunder1";
|
||||
description = Audio2d;
|
||||
};
|
||||
|
||||
datablock SFXProfile(ThunderCrash2Sound)
|
||||
{
|
||||
filename = "art/sound/environment/thunder2";
|
||||
description = Audio2d;
|
||||
};
|
||||
|
||||
datablock SFXProfile(ThunderCrash3Sound)
|
||||
{
|
||||
filename = "art/sound/environment/thunder3";
|
||||
description = Audio2d;
|
||||
};
|
||||
|
||||
datablock SFXProfile(ThunderCrash4Sound)
|
||||
{
|
||||
filename = "art/sound/environment/thunder4";
|
||||
description = Audio2d;
|
||||
};
|
||||
|
||||
|
||||
datablock LightningData(DefaultStorm)
|
||||
{
|
||||
thunderSounds[0] = ThunderCrash1Sound;
|
||||
thunderSounds[1] = ThunderCrash2Sound;
|
||||
thunderSounds[2] = ThunderCrash3Sound;
|
||||
thunderSounds[3] = ThunderCrash4Sound;
|
||||
};
|
||||
85
Templates/Full PhysX/game/art/datablocks/health.cs
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Inventory items. These objects rely on the item & inventory support
|
||||
// system defined in item.cs and inventory.cs
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Health kits can be added to your inventory and used to heal up.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Audio profiles
|
||||
//-----------------------------------------------------------------------------
|
||||
datablock SFXProfile(HealthUseSound)
|
||||
{
|
||||
filename = "art/sound/health_mono_01";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Health Kits cannot be picked up and are not meant to be added to
|
||||
// inventory. Health is applied automatically when an objects collides
|
||||
// with a patch.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
datablock ItemData(HealthKitSmall)
|
||||
{
|
||||
// Mission editor category, this datablock will show up in the
|
||||
// specified category under the "shapes" root category.
|
||||
category = "Health";
|
||||
|
||||
className = "HealthPatch";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/items/kit/healthkit.dts";
|
||||
mass = 2;
|
||||
friction = 1;
|
||||
elasticity = 0.3;
|
||||
emap = true;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
pickupName = "a small health kit";
|
||||
repairAmount = 50;
|
||||
};
|
||||
|
||||
// This is the "health patch" dropped by a dying player.
|
||||
datablock ItemData(HealthKitPatch)
|
||||
{
|
||||
// Mission editor category, this datablock will show up in the
|
||||
// specified category under the "shapes" root category.
|
||||
category = "Health";
|
||||
|
||||
className = "HealthPatch";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/items/patch/healthpatch.dts";
|
||||
mass = 2;
|
||||
friction = 1;
|
||||
elasticity = 0.3;
|
||||
emap = true;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
pickupName = "a health patch";
|
||||
repairAmount = 50;
|
||||
};
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// This is the default save location for any Datablocks created in the
|
||||
// Datablock Editor (this script is executed from onServerCreated())
|
||||
243
Templates/Full PhysX/game/art/datablocks/particles.cs
Normal file
|
|
@ -0,0 +1,243 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
datablock ParticleEmitterNodeData(DefaultEmitterNodeData)
|
||||
{
|
||||
timeMultiple = 1;
|
||||
};
|
||||
|
||||
// Smoke
|
||||
|
||||
datablock ParticleData(Smoke)
|
||||
{
|
||||
textureName = "art/shapes/particles/smoke";
|
||||
dragCoefficient = 0.3;
|
||||
gravityCoefficient = -0.2; // rises slowly
|
||||
inheritedVelFactor = 0.00;
|
||||
lifetimeMS = 3000;
|
||||
lifetimeVarianceMS = 250;
|
||||
useInvAlpha = true;
|
||||
spinRandomMin = -30.0;
|
||||
spinRandomMax = 30.0;
|
||||
|
||||
sizes[0] = 1.5;
|
||||
sizes[1] = 2.75;
|
||||
sizes[2] = 6.5;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(SmokeEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 400;
|
||||
periodVarianceMS = 5;
|
||||
|
||||
ejectionVelocity = 0.0;
|
||||
velocityVariance = 0.0;
|
||||
|
||||
thetaMin = 0.0;
|
||||
thetaMax = 90.0;
|
||||
|
||||
particles = Smoke;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterNodeData(SmokeEmitterNode)
|
||||
{
|
||||
timeMultiple = 1;
|
||||
};
|
||||
|
||||
// Ember
|
||||
|
||||
datablock ParticleData(EmberParticle)
|
||||
{
|
||||
textureName = "art/shapes/particles/ember";
|
||||
dragCoefficient = 0.0;
|
||||
windCoefficient = 0.0;
|
||||
gravityCoefficient = -0.05; // rises slowly
|
||||
inheritedVelFactor = 0.00;
|
||||
lifetimeMS = 5000;
|
||||
lifetimeVarianceMS = 0;
|
||||
useInvAlpha = false;
|
||||
spinRandomMin = -90.0;
|
||||
spinRandomMax = 90.0;
|
||||
spinSpeed = 1;
|
||||
|
||||
colors[0] = "1.000000 0.800000 0.000000 0.800000";
|
||||
colors[1] = "1.000000 0.700000 0.000000 0.800000";
|
||||
colors[2] = "1.000000 0.000000 0.000000 0.200000";
|
||||
|
||||
sizes[0] = 0.05;
|
||||
sizes[1] = 0.1;
|
||||
sizes[2] = 0.05;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(EmberEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 100;
|
||||
periodVarianceMS = 0;
|
||||
|
||||
ejectionVelocity = 0.75;
|
||||
velocityVariance = 0.00;
|
||||
ejectionOffset = 2.0;
|
||||
|
||||
thetaMin = 1.0;
|
||||
thetaMax = 100.0;
|
||||
|
||||
particles = "EmberParticle";
|
||||
};
|
||||
|
||||
datablock ParticleEmitterNodeData(EmberNode)
|
||||
{
|
||||
timeMultiple = 1;
|
||||
};
|
||||
|
||||
// Fire
|
||||
|
||||
datablock ParticleData(FireParticle)
|
||||
{
|
||||
textureName = "art/shapes/particles/smoke";
|
||||
dragCoefficient = 0.0;
|
||||
windCoefficient = 0.0;
|
||||
gravityCoefficient = -0.05; // rises slowly
|
||||
inheritedVelFactor = 0.00;
|
||||
lifetimeMS = 5000;
|
||||
lifetimeVarianceMS = 1000;
|
||||
useInvAlpha = false;
|
||||
spinRandomMin = -90.0;
|
||||
spinRandomMax = 90.0;
|
||||
spinSpeed = 1.0;
|
||||
|
||||
colors[0] = "0.2 0.2 0.0 0.2";
|
||||
colors[1] = "0.6 0.2 0.0 0.2";
|
||||
colors[2] = "0.4 0.0 0.0 0.1";
|
||||
colors[3] = "0.1 0.04 0.0 0.3";
|
||||
|
||||
sizes[0] = 0.5;
|
||||
sizes[1] = 4.0;
|
||||
sizes[2] = 5.0;
|
||||
sizes[3] = 6.0;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.1;
|
||||
times[2] = 0.2;
|
||||
times[3] = 0.3;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(FireEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 50;
|
||||
periodVarianceMS = 0;
|
||||
|
||||
ejectionVelocity = 0.55;
|
||||
velocityVariance = 0.00;
|
||||
ejectionOffset = 1.0;
|
||||
|
||||
|
||||
thetaMin = 1.0;
|
||||
thetaMax = 100.0;
|
||||
|
||||
particles = "FireParticle";
|
||||
};
|
||||
|
||||
datablock ParticleEmitterNodeData(FireNode)
|
||||
{
|
||||
timeMultiple = 1;
|
||||
};
|
||||
|
||||
// Torch Fire
|
||||
|
||||
datablock ParticleData(TorchFire1)
|
||||
{
|
||||
textureName = "art/shapes/particles/smoke";
|
||||
dragCoefficient = 0.0;
|
||||
gravityCoefficient = -0.3; // rises slowly
|
||||
inheritedVelFactor = 0.00;
|
||||
lifetimeMS = 500;
|
||||
lifetimeVarianceMS = 250;
|
||||
useInvAlpha = false;
|
||||
spinRandomMin = -30.0;
|
||||
spinRandomMax = 30.0;
|
||||
spinSpeed = 1;
|
||||
|
||||
colors[0] = "0.6 0.6 0.0 0.1";
|
||||
colors[1] = "0.8 0.6 0.0 0.1";
|
||||
colors[2] = "0.0 0.0 0.0 0.1";
|
||||
|
||||
sizes[0] = 0.5;
|
||||
sizes[1] = 0.5;
|
||||
sizes[2] = 2.4;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleData(TorchFire2)
|
||||
{
|
||||
textureName = "art/shapes/particles/smoke";
|
||||
dragCoefficient = 0.0;
|
||||
gravityCoefficient = -0.5; // rises slowly
|
||||
inheritedVelFactor = 0.00;
|
||||
lifetimeMS = 800;
|
||||
lifetimeVarianceMS = 150;
|
||||
useInvAlpha = false;
|
||||
spinRandomMin = -30.0;
|
||||
spinRandomMax = 30.0;
|
||||
spinSpeed = 1;
|
||||
|
||||
colors[0] = "0.8 0.6 0.0 0.1";
|
||||
colors[1] = "0.6 0.6 0.0 0.1";
|
||||
colors[2] = "0.0 0.0 0.0 0.1";
|
||||
|
||||
sizes[0] = 0.3;
|
||||
sizes[1] = 0.3;
|
||||
sizes[2] = 0.3;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(TorchFireEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 15;
|
||||
periodVarianceMS = 5;
|
||||
|
||||
ejectionVelocity = 0.25;
|
||||
velocityVariance = 0.10;
|
||||
|
||||
thetaMin = 0.0;
|
||||
thetaMax = 45.0;
|
||||
|
||||
particles = "TorchFire1" TAB "TorchFire2";
|
||||
};
|
||||
|
||||
datablock ParticleEmitterNodeData(TorchFireEmitterNode)
|
||||
{
|
||||
timeMultiple = 1;
|
||||
};
|
||||
676
Templates/Full PhysX/game/art/datablocks/player.cs
Normal file
|
|
@ -0,0 +1,676 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Player Audio Profiles
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
datablock SFXProfile(DeathCrySound)
|
||||
{
|
||||
fileName = "art/sound/orc_death";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(PainCrySound)
|
||||
{
|
||||
fileName = "art/sound/orc_pain";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
datablock SFXProfile(FootLightSoftSound)
|
||||
{
|
||||
filename = "art/sound/lgtStep_mono_01";
|
||||
description = AudioClosest3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(FootLightHardSound)
|
||||
{
|
||||
filename = "art/sound/hvystep_ mono_01";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(FootLightMetalSound)
|
||||
{
|
||||
filename = "art/sound/metalstep_mono_01";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(FootLightSnowSound)
|
||||
{
|
||||
filename = "art/sound/snowstep_mono_01";
|
||||
description = AudioClosest3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(FootLightShallowSplashSound)
|
||||
{
|
||||
filename = "art/sound/waterstep_mono_01";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(FootLightWadingSound)
|
||||
{
|
||||
filename = "art/sound/waterstep_mono_01";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(FootLightUnderwaterSound)
|
||||
{
|
||||
filename = "art/sound/waterstep_mono_01";
|
||||
description = AudioClosest3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Splash
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
datablock ParticleData(PlayerSplashMist)
|
||||
{
|
||||
dragCoefficient = 2.0;
|
||||
gravityCoefficient = -0.05;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 400;
|
||||
lifetimeVarianceMS = 100;
|
||||
useInvAlpha = false;
|
||||
spinRandomMin = -90.0;
|
||||
spinRandomMax = 500.0;
|
||||
textureName = "art/shapes/actors/common/splash";
|
||||
colors[0] = "0.7 0.8 1.0 1.0";
|
||||
colors[1] = "0.7 0.8 1.0 0.5";
|
||||
colors[2] = "0.7 0.8 1.0 0.0";
|
||||
sizes[0] = 0.5;
|
||||
sizes[1] = 0.5;
|
||||
sizes[2] = 0.8;
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(PlayerSplashMistEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 5;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 3.0;
|
||||
velocityVariance = 2.0;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 85;
|
||||
thetaMax = 85;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvance = false;
|
||||
lifetimeMS = 250;
|
||||
particles = "PlayerSplashMist";
|
||||
};
|
||||
|
||||
|
||||
datablock ParticleData(PlayerBubbleParticle)
|
||||
{
|
||||
dragCoefficient = 0.0;
|
||||
gravityCoefficient = -0.50;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 400;
|
||||
lifetimeVarianceMS = 100;
|
||||
useInvAlpha = false;
|
||||
textureName = "art/shapes/actors/common/splash";
|
||||
colors[0] = "0.7 0.8 1.0 0.4";
|
||||
colors[1] = "0.7 0.8 1.0 0.4";
|
||||
colors[2] = "0.7 0.8 1.0 0.0";
|
||||
sizes[0] = 0.1;
|
||||
sizes[1] = 0.3;
|
||||
sizes[2] = 0.3;
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(PlayerBubbleEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 1;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 2.0;
|
||||
ejectionOffset = 0.5;
|
||||
velocityVariance = 0.5;
|
||||
thetaMin = 0;
|
||||
thetaMax = 80;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvance = false;
|
||||
particles = "PlayerBubbleParticle";
|
||||
};
|
||||
|
||||
datablock ParticleData(PlayerFoamParticle)
|
||||
{
|
||||
dragCoefficient = 2.0;
|
||||
gravityCoefficient = -0.05;
|
||||
inheritedVelFactor = 0.1;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 600;
|
||||
lifetimeVarianceMS = 100;
|
||||
useInvAlpha = false;
|
||||
spinRandomMin = -90.0;
|
||||
spinRandomMax = 500.0;
|
||||
textureName = "art/shapes/particles/millsplash01";
|
||||
colors[0] = "0.7 0.8 1.0 0.20";
|
||||
colors[1] = "0.7 0.8 1.0 0.20";
|
||||
colors[2] = "0.7 0.8 1.0 0.00";
|
||||
sizes[0] = 0.2;
|
||||
sizes[1] = 0.4;
|
||||
sizes[2] = 1.6;
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(PlayerFoamEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 10;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 3.0;
|
||||
velocityVariance = 1.0;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 85;
|
||||
thetaMax = 85;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvance = false;
|
||||
particles = "PlayerFoamParticle";
|
||||
};
|
||||
|
||||
|
||||
datablock ParticleData( PlayerFoamDropletsParticle )
|
||||
{
|
||||
dragCoefficient = 1;
|
||||
gravityCoefficient = 0.2;
|
||||
inheritedVelFactor = 0.2;
|
||||
constantAcceleration = -0.0;
|
||||
lifetimeMS = 600;
|
||||
lifetimeVarianceMS = 0;
|
||||
textureName = "art/shapes/actors/common/splash";
|
||||
colors[0] = "0.7 0.8 1.0 1.0";
|
||||
colors[1] = "0.7 0.8 1.0 0.5";
|
||||
colors[2] = "0.7 0.8 1.0 0.0";
|
||||
sizes[0] = 0.8;
|
||||
sizes[1] = 0.3;
|
||||
sizes[2] = 0.0;
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData( PlayerFoamDropletsEmitter )
|
||||
{
|
||||
ejectionPeriodMS = 7;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 2;
|
||||
velocityVariance = 1.0;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 60;
|
||||
thetaMax = 80;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvance = false;
|
||||
orientParticles = true;
|
||||
particles = "PlayerFoamDropletsParticle";
|
||||
};
|
||||
|
||||
datablock ParticleData( PlayerWakeParticle )
|
||||
{
|
||||
textureName = "art/shapes/particles/wake";
|
||||
dragCoefficient = "0.0";
|
||||
gravityCoefficient = "0.0";
|
||||
inheritedVelFactor = "0.0";
|
||||
lifetimeMS = "2500";
|
||||
lifetimeVarianceMS = "200";
|
||||
windCoefficient = "0.0";
|
||||
useInvAlpha = "1";
|
||||
spinRandomMin = "30.0";
|
||||
spinRandomMax = "30.0";
|
||||
|
||||
animateTexture = true;
|
||||
framesPerSec = 1;
|
||||
animTexTiling = "2 1";
|
||||
animTexFrames = "0 1";
|
||||
|
||||
colors[0] = "1 1 1 0.1";
|
||||
colors[1] = "1 1 1 0.7";
|
||||
colors[2] = "1 1 1 0.3";
|
||||
colors[3] = "0.5 0.5 0.5 0";
|
||||
|
||||
sizes[0] = "1.0";
|
||||
sizes[1] = "2.0";
|
||||
sizes[2] = "3.0";
|
||||
sizes[3] = "3.5";
|
||||
|
||||
times[0] = "0.0";
|
||||
times[1] = "0.25";
|
||||
times[2] = "0.5";
|
||||
times[3] = "1.0";
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData( PlayerWakeEmitter )
|
||||
{
|
||||
ejectionPeriodMS = "200";
|
||||
periodVarianceMS = "10";
|
||||
|
||||
ejectionVelocity = "0";
|
||||
velocityVariance = "0";
|
||||
|
||||
ejectionOffset = "0";
|
||||
|
||||
thetaMin = "89";
|
||||
thetaMax = "90";
|
||||
|
||||
phiReferenceVel = "0";
|
||||
phiVariance = "1";
|
||||
|
||||
alignParticles = "1";
|
||||
alignDirection = "0 0 1";
|
||||
|
||||
particles = "PlayerWakeParticle";
|
||||
};
|
||||
|
||||
datablock ParticleData( PlayerSplashParticle )
|
||||
{
|
||||
dragCoefficient = 1;
|
||||
gravityCoefficient = 0.2;
|
||||
inheritedVelFactor = 0.2;
|
||||
constantAcceleration = -0.0;
|
||||
lifetimeMS = 600;
|
||||
lifetimeVarianceMS = 0;
|
||||
colors[0] = "0.7 0.8 1.0 1.0";
|
||||
colors[1] = "0.7 0.8 1.0 0.5";
|
||||
colors[2] = "0.7 0.8 1.0 0.0";
|
||||
sizes[0] = 0.5;
|
||||
sizes[1] = 0.5;
|
||||
sizes[2] = 0.5;
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData( PlayerSplashEmitter )
|
||||
{
|
||||
ejectionPeriodMS = 1;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 3;
|
||||
velocityVariance = 1.0;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 60;
|
||||
thetaMax = 80;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvance = false;
|
||||
orientParticles = true;
|
||||
lifetimeMS = 100;
|
||||
particles = "PlayerSplashParticle";
|
||||
};
|
||||
|
||||
datablock SplashData(PlayerSplash)
|
||||
{
|
||||
numSegments = 15;
|
||||
ejectionFreq = 15;
|
||||
ejectionAngle = 40;
|
||||
ringLifetime = 0.5;
|
||||
lifetimeMS = 300;
|
||||
velocity = 4.0;
|
||||
startRadius = 0.0;
|
||||
acceleration = -3.0;
|
||||
texWrap = 5.0;
|
||||
|
||||
texture = "art/shapes/particles/millsplash01";
|
||||
|
||||
emitter[0] = PlayerSplashEmitter;
|
||||
emitter[1] = PlayerSplashMistEmitter;
|
||||
|
||||
colors[0] = "0.7 0.8 1.0 0.0";
|
||||
colors[1] = "0.7 0.8 1.0 0.3";
|
||||
colors[2] = "0.7 0.8 1.0 0.7";
|
||||
colors[3] = "0.7 0.8 1.0 0.0";
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.4;
|
||||
times[2] = 0.8;
|
||||
times[3] = 1.0;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Foot puffs
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
datablock ParticleData(LightPuff)
|
||||
{
|
||||
dragCoefficient = 2.0;
|
||||
gravityCoefficient = -0.01;
|
||||
inheritedVelFactor = 0.6;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 800;
|
||||
lifetimeVarianceMS = 100;
|
||||
useInvAlpha = true;
|
||||
spinRandomMin = -35.0;
|
||||
spinRandomMax = 35.0;
|
||||
colors[0] = "1.0 1.0 1.0 1.0";
|
||||
colors[1] = "1.0 1.0 1.0 0.0";
|
||||
sizes[0] = 0.1;
|
||||
sizes[1] = 0.8;
|
||||
times[0] = 0.3;
|
||||
times[1] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(LightPuffEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 35;
|
||||
periodVarianceMS = 10;
|
||||
ejectionVelocity = 0.2;
|
||||
velocityVariance = 0.1;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 20;
|
||||
thetaMax = 60;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvance = false;
|
||||
useEmitterColors = true;
|
||||
particles = "LightPuff";
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Liftoff dust
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
datablock ParticleData(LiftoffDust)
|
||||
{
|
||||
dragCoefficient = 1.0;
|
||||
gravityCoefficient = -0.01;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 1000;
|
||||
lifetimeVarianceMS = 100;
|
||||
useInvAlpha = true;
|
||||
spinRandomMin = -90.0;
|
||||
spinRandomMax = 500.0;
|
||||
colors[0] = "1.0 1.0 1.0 1.0";
|
||||
sizes[0] = 1.0;
|
||||
times[0] = 1.0;
|
||||
textureName = "art/shapes/particles/dustParticle";
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(LiftoffDustEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 5;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 2.0;
|
||||
velocityVariance = 0.0;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 90;
|
||||
thetaMax = 90;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvance = false;
|
||||
useEmitterColors = true;
|
||||
particles = "LiftoffDust";
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
datablock DecalData(PlayerFootprint)
|
||||
{
|
||||
size = 0.4;
|
||||
material = CommonPlayerFootprint;
|
||||
};
|
||||
|
||||
datablock DebrisData( PlayerDebris )
|
||||
{
|
||||
explodeOnMaxBounce = false;
|
||||
|
||||
elasticity = 0.15;
|
||||
friction = 0.5;
|
||||
|
||||
lifetime = 4.0;
|
||||
lifetimeVariance = 0.0;
|
||||
|
||||
minSpinSpeed = 40;
|
||||
maxSpinSpeed = 600;
|
||||
|
||||
numBounces = 5;
|
||||
bounceVariance = 0;
|
||||
|
||||
staticOnMaxBounce = true;
|
||||
gravModifier = 1.0;
|
||||
|
||||
useRadiusMass = true;
|
||||
baseRadius = 1;
|
||||
|
||||
velocity = 20.0;
|
||||
velocityVariance = 12.0;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// This is our default player datablock that all others will derive from.
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock PlayerData(DefaultPlayerData)
|
||||
{
|
||||
renderFirstPerson = false;
|
||||
|
||||
computeCRC = false;
|
||||
|
||||
// Third person shape
|
||||
shapeFile = "art/shapes/actors/Soldier/soldier_rigged.dae";
|
||||
cameraMaxDist = 3;
|
||||
allowImageStateAnimation = true;
|
||||
|
||||
// First person arms
|
||||
imageAnimPrefixFP = "soldier";
|
||||
shapeNameFP[0] = "art/shapes/actors/Soldier/FP/FP_SoldierArms.DAE";
|
||||
|
||||
canObserve = 1;
|
||||
cmdCategory = "Clients";
|
||||
|
||||
cameraDefaultFov = 55.0;
|
||||
cameraMinFov = 5.0;
|
||||
cameraMaxFov = 65.0;
|
||||
|
||||
debrisShapeName = "art/shapes/actors/common/debris_player.dts";
|
||||
debris = playerDebris;
|
||||
|
||||
throwForce = 30;
|
||||
|
||||
aiAvoidThis = 1;
|
||||
|
||||
minLookAngle = "-1.4";
|
||||
maxLookAngle = "0.9";
|
||||
maxFreelookAngle = 3.0;
|
||||
|
||||
mass = 120;
|
||||
drag = 1.3;
|
||||
maxdrag = 0.4;
|
||||
density = 1.1;
|
||||
maxDamage = 100;
|
||||
maxEnergy = 60;
|
||||
repairRate = 0.33;
|
||||
energyPerDamagePoint = 75;
|
||||
|
||||
rechargeRate = 0.256;
|
||||
|
||||
runForce = 4320;
|
||||
runEnergyDrain = 0;
|
||||
minRunEnergy = 0;
|
||||
maxForwardSpeed = 8;
|
||||
maxBackwardSpeed = 6;
|
||||
maxSideSpeed = 6;
|
||||
|
||||
sprintForce = 4320;
|
||||
sprintEnergyDrain = 0;
|
||||
minSprintEnergy = 0;
|
||||
maxSprintForwardSpeed = 14;
|
||||
maxSprintBackwardSpeed = 8;
|
||||
maxSprintSideSpeed = 6;
|
||||
sprintStrafeScale = 0.25;
|
||||
sprintYawScale = 0.05;
|
||||
sprintPitchScale = 0.05;
|
||||
sprintCanJump = true;
|
||||
|
||||
crouchForce = 405;
|
||||
maxCrouchForwardSpeed = 4.0;
|
||||
maxCrouchBackwardSpeed = 2.0;
|
||||
maxCrouchSideSpeed = 2.0;
|
||||
|
||||
maxUnderwaterForwardSpeed = 8.4;
|
||||
maxUnderwaterBackwardSpeed = 7.8;
|
||||
maxUnderwaterSideSpeed = 7.8;
|
||||
|
||||
jumpForce = "747";
|
||||
jumpEnergyDrain = 0;
|
||||
minJumpEnergy = 0;
|
||||
jumpDelay = "15";
|
||||
airControl = 0.3;
|
||||
|
||||
fallingSpeedThreshold = -6.0;
|
||||
|
||||
landSequenceTime = 0.33;
|
||||
transitionToLand = false;
|
||||
recoverDelay = 0;
|
||||
recoverRunForceScale = 0;
|
||||
|
||||
minImpactSpeed = 10;
|
||||
minLateralImpactSpeed = 20;
|
||||
speedDamageScale = 0.4;
|
||||
|
||||
boundingBox = "0.65 0.75 1.85";
|
||||
crouchBoundingBox = "0.65 0.75 1.3";
|
||||
swimBoundingBox = "1 2 2";
|
||||
pickupRadius = 1;
|
||||
|
||||
// Damage location details
|
||||
boxHeadPercentage = 0.83;
|
||||
boxTorsoPercentage = 0.49;
|
||||
boxHeadLeftPercentage = 0.30;
|
||||
boxHeadRightPercentage = 0.60;
|
||||
boxHeadBackPercentage = 0.30;
|
||||
boxHeadFrontPercentage = 0.60;
|
||||
|
||||
// Foot Prints
|
||||
decalOffset = 0.25;
|
||||
|
||||
footPuffEmitter = "LightPuffEmitter";
|
||||
footPuffNumParts = 10;
|
||||
footPuffRadius = "0.25";
|
||||
|
||||
dustEmitter = "LightPuffEmitter";
|
||||
|
||||
splash = PlayerSplash;
|
||||
splashVelocity = 4.0;
|
||||
splashAngle = 67.0;
|
||||
splashFreqMod = 300.0;
|
||||
splashVelEpsilon = 0.60;
|
||||
bubbleEmitTime = 0.4;
|
||||
splashEmitter[0] = PlayerWakeEmitter;
|
||||
splashEmitter[1] = PlayerFoamEmitter;
|
||||
splashEmitter[2] = PlayerBubbleEmitter;
|
||||
mediumSplashSoundVelocity = 10.0;
|
||||
hardSplashSoundVelocity = 20.0;
|
||||
exitSplashSoundVelocity = 5.0;
|
||||
|
||||
// Controls over slope of runnable/jumpable surfaces
|
||||
runSurfaceAngle = 38;
|
||||
jumpSurfaceAngle = 80;
|
||||
maxStepHeight = 0.35; //two meters
|
||||
minJumpSpeed = 20;
|
||||
maxJumpSpeed = 30;
|
||||
|
||||
horizMaxSpeed = 68;
|
||||
horizResistSpeed = 33;
|
||||
horizResistFactor = 0.35;
|
||||
|
||||
upMaxSpeed = 80;
|
||||
upResistSpeed = 25;
|
||||
upResistFactor = 0.3;
|
||||
|
||||
footstepSplashHeight = 0.35;
|
||||
|
||||
//NOTE: some sounds commented out until wav's are available
|
||||
|
||||
// Footstep Sounds
|
||||
FootSoftSound = FootLightSoftSound;
|
||||
FootHardSound = FootLightHardSound;
|
||||
FootMetalSound = FootLightMetalSound;
|
||||
FootSnowSound = FootLightSnowSound;
|
||||
FootShallowSound = FootLightShallowSplashSound;
|
||||
FootWadingSound = FootLightWadingSound;
|
||||
FootUnderwaterSound = FootLightUnderwaterSound;
|
||||
|
||||
//FootBubblesSound = FootLightBubblesSound;
|
||||
//movingBubblesSound = ArmorMoveBubblesSound;
|
||||
//waterBreathSound = WaterBreathMaleSound;
|
||||
|
||||
//impactSoftSound = ImpactLightSoftSound;
|
||||
//impactHardSound = ImpactLightHardSound;
|
||||
//impactMetalSound = ImpactLightMetalSound;
|
||||
//impactSnowSound = ImpactLightSnowSound;
|
||||
|
||||
//impactWaterEasy = ImpactLightWaterEasySound;
|
||||
//impactWaterMedium = ImpactLightWaterMediumSound;
|
||||
//impactWaterHard = ImpactLightWaterHardSound;
|
||||
|
||||
groundImpactMinSpeed = "45";
|
||||
groundImpactShakeFreq = "4.0 4.0 4.0";
|
||||
groundImpactShakeAmp = "1.0 1.0 1.0";
|
||||
groundImpactShakeDuration = 0.8;
|
||||
groundImpactShakeFalloff = 10.0;
|
||||
|
||||
//exitingWater = ExitingWaterLightSound;
|
||||
|
||||
observeParameters = "0.5 4.5 4.5";
|
||||
class = "armor";
|
||||
|
||||
cameraMinDist = "0";
|
||||
DecalData = "PlayerFootprint";
|
||||
|
||||
// Allowable Inventory Items
|
||||
mainWeapon = Lurker;
|
||||
|
||||
maxInv[Lurker] = 1;
|
||||
maxInv[LurkerClip] = 20;
|
||||
|
||||
maxInv[LurkerGrenadeLauncher] = 1;
|
||||
maxInv[LurkerGrenadeAmmo] = 20;
|
||||
|
||||
maxInv[Ryder] = 1;
|
||||
maxInv[RyderClip] = 10;
|
||||
|
||||
maxInv[ProxMine] = 5;
|
||||
|
||||
maxInv[DeployableTurret] = 5;
|
||||
|
||||
// available skins (see materials.cs in model folder)
|
||||
availableSkins = "base DarkBlue DarkGreen LightGreen Orange Red Teal Violet Yellow";
|
||||
};
|
||||
60
Templates/Full PhysX/game/art/datablocks/rigidShape.cs
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
datablock RigidShapeData( BouncingBoulder )
|
||||
{
|
||||
category = "RigidShape";
|
||||
|
||||
shapeFile = "art/shapes/rocks/boulder.dts";
|
||||
emap = true;
|
||||
|
||||
// Rigid Body
|
||||
mass = 200;
|
||||
massCenter = "0 0 0"; // Center of mass for rigid body
|
||||
massBox = "0 0 0"; // Size of box used for moment of inertia,
|
||||
// if zero it defaults to object bounding box
|
||||
drag = 0.2; // Drag coefficient
|
||||
bodyFriction = 0.2;
|
||||
bodyRestitution = 0.1;
|
||||
minImpactSpeed = 5; // Impacts over this invoke the script callback
|
||||
softImpactSpeed = 5; // Play SoftImpact Sound
|
||||
hardImpactSpeed = 15; // Play HardImpact Sound
|
||||
integration = 4; // Physics integration: TickSec/Rate
|
||||
collisionTol = 0.1; // Collision distance tolerance
|
||||
contactTol = 0.1; // Contact velocity tolerance
|
||||
|
||||
minRollSpeed = 10;
|
||||
|
||||
maxDrag = 0.5;
|
||||
minDrag = 0.01;
|
||||
|
||||
triggerDustHeight = 1;
|
||||
dustHeight = 10;
|
||||
|
||||
dragForce = 0.05;
|
||||
vertFactor = 0.05;
|
||||
|
||||
normalForce = 0.05;
|
||||
restorativeForce = 0.05;
|
||||
rollForce = 0.05;
|
||||
pitchForce = 0.05;
|
||||
};
|
||||
143
Templates/Full PhysX/game/art/datablocks/teleporter.cs
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// DefaultTrigger is used by the mission editor. This is also an example
|
||||
// of trigger methods and callbacks.
|
||||
|
||||
// A 3D sound played by the server at the location of the
|
||||
// teleporter after an object has teleported.
|
||||
datablock SFXProfile(TeleportEntrance)
|
||||
{
|
||||
fileName = "art/sound/orc_pain";
|
||||
description = AudioDefault3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
// The 2D sound played by the client after a teleport.
|
||||
datablock SFXProfile(TeleportSound)
|
||||
{
|
||||
fileName = "art/sound/orc_death";
|
||||
description = Audio2D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
// Particles to use for the emitter at the teleporter
|
||||
datablock ParticleData(TeleporterParticles)
|
||||
{
|
||||
lifetimeMS = "750";
|
||||
lifetimeVarianceMS = "100";
|
||||
textureName = "art/shapes/particles/Streak.png";
|
||||
useInvAlpha = "0";
|
||||
gravityCoefficient = "-1";
|
||||
spinSpeed = "0";
|
||||
spinRandomMin = "0";
|
||||
spinRandomMax = "0";
|
||||
colors[0] = "0.0980392 0.788235 0.92549 1";
|
||||
colors[1] = "0.0627451 0.478431 0.952941 1";
|
||||
colors[2] = "0.0509804 0.690196 0.964706 1";
|
||||
sizes[0] = "1";
|
||||
sizes[1] = "1";
|
||||
sizes[2] = "1";
|
||||
times[0] = 0.0;
|
||||
times[1] = "0.415686";
|
||||
times[2] = "0.74902";
|
||||
animTexName = "art/shapes/particles/Streak.png";
|
||||
inheritedVelFactor = "0.0998043";
|
||||
constantAcceleration = "-2";
|
||||
colors[3] = "0.694118 0.843137 0.945098 0";
|
||||
sizes[3] = "1";
|
||||
};
|
||||
|
||||
// Particle Emitter to be played when a teleport occours.
|
||||
datablock ParticleEmitterData(TeleportEmitter)
|
||||
{
|
||||
ejectionPeriodMS = "25";
|
||||
periodVarianceMS = "2";
|
||||
ejectionVelocity = "0.25";
|
||||
velocityVariance = "0.1";
|
||||
ejectionOffset = "0.25";
|
||||
thetaMin = "90";
|
||||
thetaMax = "90";
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvance = false;
|
||||
lifetimeMS = "1000";
|
||||
particles = "TeleporterParticles";
|
||||
blendStyle = "ADDITIVE";
|
||||
};
|
||||
|
||||
// Ignore the name "explosion" for this. An Explosion in T3D
|
||||
// is really an effect that plays a SFXProfile, particle emitters,
|
||||
// point light, debris, and camera shake. Things normally associated with
|
||||
// an explosion, such as damage and pushback, are calculated outside of the
|
||||
// explosion object itself. Because of this, we use an ExplosionDatablock to
|
||||
// attach visual effects to our teleporter.
|
||||
datablock ExplosionData(EntranceEffect)
|
||||
{
|
||||
soundProfile = TeleportEntrance;
|
||||
|
||||
particleEmitter = "TeleportEmitter";
|
||||
|
||||
lifeTimeMS = "288";
|
||||
|
||||
lightStartRadius = "0";
|
||||
lightEndRadius = "2.82353";
|
||||
lightStartColor = "0.992126 0.992126 0.992126 1";
|
||||
lightEndColor = "0 0.102362 0.992126 1";
|
||||
lightStartBrightness = "0.784314";
|
||||
lightEndBrightness = "4";
|
||||
lightNormalOffset = "0";
|
||||
emitter[0] = "RocketSplashEmitter";
|
||||
times[0] = "0.247059";
|
||||
particleRadius = "0.1";
|
||||
particleDensity = "10";
|
||||
playSpeed = "1";
|
||||
};
|
||||
|
||||
datablock TriggerData(TeleporterTrigger : DefaultTrigger)
|
||||
{
|
||||
// Amount of time, in milliseconds, to wait before allowing another
|
||||
// object to use this teleportat.
|
||||
teleporterCooldown = 0;
|
||||
|
||||
// Amount to scale the object's exit velocity. Larger values will
|
||||
// propel the object with greater force.
|
||||
exitVelocityScale = 0;
|
||||
|
||||
// If true, the object will be oriented to the front
|
||||
// of the exit teleporter. Otherwise the player will retain their original
|
||||
// orientation.
|
||||
reorientPlayer = true;
|
||||
|
||||
// If true, the teleporter will only trigger if the object
|
||||
// enters the front of the teleporter.
|
||||
oneSided = false;
|
||||
|
||||
// Effects to play at the entrance of the teleporter.
|
||||
entranceEffect = EntranceEffect;
|
||||
exiteffect = EntranceEffect;
|
||||
|
||||
// 2D Sound to play for the client being teleported.
|
||||
teleportSound = TeleportSound;
|
||||
|
||||
};
|
||||
38
Templates/Full PhysX/game/art/datablocks/triggers.cs
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// DefaultTrigger is used by the mission editor. This is also an example
|
||||
// of trigger methods and callbacks.
|
||||
|
||||
datablock TriggerData(DefaultTrigger)
|
||||
{
|
||||
// The period is value is used to control how often the console
|
||||
// onTriggerTick callback is called while there are any objects
|
||||
// in the trigger. The default value is 100 MS.
|
||||
tickPeriodMS = 100;
|
||||
};
|
||||
|
||||
datablock TriggerData(ClientTrigger : DefaultTrigger)
|
||||
{
|
||||
clientSide = true;
|
||||
};
|
||||
48
Templates/Full PhysX/game/art/datablocks/weapon.cs
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// This file contains 'generic' datablocks usable by all weapon class items.
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Audio profiles
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock SFXProfile(WeaponUseSound)
|
||||
{
|
||||
filename = "art/sound/weapons/weapon_switch";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(WeaponPickupSound)
|
||||
{
|
||||
filename = "art/sound/weapons/Weapon_pickup";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(AmmoPickupSound)
|
||||
{
|
||||
filename = "art/sound/weapons/Ammo_pickup";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
819
Templates/Full PhysX/game/art/datablocks/weapons/Lurker.cs
Normal file
|
|
@ -0,0 +1,819 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Sounds
|
||||
//--------------------------------------------------------------------------
|
||||
datablock SFXProfile(LurkerFireSound)
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_lurker_fire";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(LurkerReloadSound)
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_lurker_reload";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(LurkerIdleSound)
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_lurker_idle";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(LurkerSwitchinSound)
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_lurker_switchin";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(LurkerGrenadeFireSound)
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_lurker_grenadelaunch";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXPlayList(LurkerFireSoundList)
|
||||
{
|
||||
// Use a looped description so the list playback will loop.
|
||||
description = AudioClose3D;
|
||||
|
||||
track[ 0 ] = LurkerFireSound;
|
||||
};
|
||||
|
||||
/*datablock SFXProfile(BulletImpactSound)
|
||||
{
|
||||
filename = "art/sound/CT_fx/weapons/SCARFIRE";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};*/
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Particles
|
||||
// ----------------------------------------------------------------------------
|
||||
datablock ParticleData(GunFireSmoke)
|
||||
{
|
||||
textureName = "art/shapes/particles/smoke";
|
||||
dragCoefficient = 0;
|
||||
gravityCoefficient = "-1";
|
||||
windCoefficient = 0;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 500;
|
||||
lifetimeVarianceMS = 200;
|
||||
spinRandomMin = -180.0;
|
||||
spinRandomMax = 180.0;
|
||||
useInvAlpha = true;
|
||||
|
||||
colors[0] = "0.795276 0.795276 0.795276 0.692913";
|
||||
colors[1] = "0.866142 0.866142 0.866142 0.346457";
|
||||
colors[2] = "0.897638 0.834646 0.795276 0";
|
||||
|
||||
sizes[0] = "0.399805";
|
||||
sizes[1] = "1.19941";
|
||||
sizes[2] = "1.69993";
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = "0.498039";
|
||||
times[2] = 1.0;
|
||||
animTexName = "art/shapes/particles/smoke";
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GunFireSmokeEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 20;
|
||||
periodVarianceMS = 10;
|
||||
ejectionVelocity = "0";
|
||||
velocityVariance = "0";
|
||||
thetaMin = "0";
|
||||
thetaMax = "0";
|
||||
lifetimeMS = 250;
|
||||
particles = "GunFireSmoke";
|
||||
blendStyle = "NORMAL";
|
||||
softParticles = "0";
|
||||
originalName = "GunFireSmokeEmitter";
|
||||
alignParticles = "0";
|
||||
orientParticles = "0";
|
||||
};
|
||||
|
||||
datablock ParticleData(BulletDirtDust)
|
||||
{
|
||||
textureName = "art/shapes/particles/impact";
|
||||
dragCoefficient = "1";
|
||||
gravityCoefficient = "-0.100122";
|
||||
windCoefficient = 0;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = "-0.83";
|
||||
lifetimeMS = 800;
|
||||
lifetimeVarianceMS = 300;
|
||||
spinRandomMin = -180.0;
|
||||
spinRandomMax = 180.0;
|
||||
useInvAlpha = true;
|
||||
|
||||
colors[0] = "0.496063 0.393701 0.299213 0.692913";
|
||||
colors[1] = "0.692913 0.614173 0.535433 0.346457";
|
||||
colors[2] = "0.897638 0.84252 0.795276 0";
|
||||
|
||||
sizes[0] = "0.997986";
|
||||
sizes[1] = "2";
|
||||
sizes[2] = "2.5";
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = "0.498039";
|
||||
times[2] = 1.0;
|
||||
animTexName = "art/shapes/particles/impact";
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(BulletDirtDustEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 20;
|
||||
periodVarianceMS = 10;
|
||||
ejectionVelocity = "1";
|
||||
velocityVariance = 1.0;
|
||||
thetaMin = 0.0;
|
||||
thetaMax = 180.0;
|
||||
lifetimeMS = 250;
|
||||
particles = "BulletDirtDust";
|
||||
blendStyle = "NORMAL";
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Explosion
|
||||
//-----------------------------------------------------------------------------
|
||||
datablock ExplosionData(BulletDirtExplosion)
|
||||
{
|
||||
soundProfile = BulletImpactSound;
|
||||
lifeTimeMS = 65;
|
||||
|
||||
// Volume particles
|
||||
particleEmitter = BulletDirtDustEmitter;
|
||||
particleDensity = 4;
|
||||
particleRadius = 0.3;
|
||||
|
||||
// Point emission
|
||||
emitter[0] = BulletDirtSprayEmitter;
|
||||
emitter[1] = BulletDirtSprayEmitter;
|
||||
emitter[2] = BulletDirtRocksEmitter;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Shell ejected during reload.
|
||||
//-----------------------------------------------------------------------------
|
||||
datablock DebrisData(BulletShell)
|
||||
{
|
||||
shapeFile = "art/shapes/weapons/RifleShell/RifleShell.DAE";
|
||||
lifetime = 6.0;
|
||||
minSpinSpeed = 300.0;
|
||||
maxSpinSpeed = 400.0;
|
||||
elasticity = 0.65;
|
||||
friction = 0.05;
|
||||
numBounces = 5;
|
||||
staticOnMaxBounce = true;
|
||||
snapOnMaxBounce = false;
|
||||
ignoreWater = true;
|
||||
fade = true;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Projectile Object
|
||||
//-----------------------------------------------------------------------------
|
||||
datablock LightDescription( BulletProjectileLightDesc )
|
||||
{
|
||||
color = "0.0 0.5 0.7";
|
||||
range = 3.0;
|
||||
};
|
||||
|
||||
datablock ProjectileData( BulletProjectile )
|
||||
{
|
||||
projectileShapeName = "";
|
||||
|
||||
directDamage = 5;
|
||||
radiusDamage = 0;
|
||||
damageRadius = 0.5;
|
||||
areaImpulse = 0.5;
|
||||
impactForce = 1;
|
||||
|
||||
explosion = BulletDirtExplosion;
|
||||
decal = BulletHoleDecal;
|
||||
|
||||
muzzleVelocity = 120;
|
||||
velInheritFactor = 1;
|
||||
|
||||
armingDelay = 0;
|
||||
lifetime = 992;
|
||||
fadeDelay = 1472;
|
||||
bounceElasticity = 0;
|
||||
bounceFriction = 0;
|
||||
isBallistic = false;
|
||||
gravityMod = 1;
|
||||
};
|
||||
|
||||
function BulletProjectile::onCollision(%this,%obj,%col,%fade,%pos,%normal)
|
||||
{
|
||||
// Apply impact force from the projectile.
|
||||
|
||||
// Apply damage to the object all shape base objects
|
||||
if ( %col.getType() & $TypeMasks::GameBaseObjectType )
|
||||
%col.damage(%obj,%pos,%this.directDamage,"BulletProjectile");
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Ammo Item
|
||||
//-----------------------------------------------------------------------------
|
||||
datablock ItemData(LurkerClip)
|
||||
{
|
||||
// Mission editor category
|
||||
category = "AmmoClip";
|
||||
|
||||
// Add the Ammo namespace as a parent. The ammo namespace provides
|
||||
// common ammo related functions and hooks into the inventory system.
|
||||
className = "AmmoClip";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Lurker/TP_Lurker.DAE";
|
||||
mass = 1;
|
||||
elasticity = 0.2;
|
||||
friction = 0.6;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
pickUpName = "Lurker clip";
|
||||
count = 1;
|
||||
maxInventory = 10;
|
||||
};
|
||||
|
||||
datablock ItemData(LurkerAmmo)
|
||||
{
|
||||
// Mission editor category
|
||||
category = "Ammo";
|
||||
|
||||
// Add the Ammo namespace as a parent. The ammo namespace provides
|
||||
// common ammo related functions and hooks into the inventory system.
|
||||
className = "Ammo";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Lurker/TP_Lurker.DAE";
|
||||
mass = 1;
|
||||
elasticity = 0.2;
|
||||
friction = 0.6;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
pickUpName = "Lurker ammo";
|
||||
maxInventory = 30;
|
||||
clip = LurkerClip;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Weapon Item. This is the item that exists in the world, i.e. when it's
|
||||
// been dropped, thrown or is acting as re-spawnable item. When the weapon
|
||||
// is mounted onto a shape, the LurkerWeaponImage is used.
|
||||
//-----------------------------------------------------------------------------
|
||||
datablock ItemData(Lurker)
|
||||
{
|
||||
// Mission editor category
|
||||
category = "Weapon";
|
||||
|
||||
// Hook into Item Weapon class hierarchy. The weapon namespace
|
||||
// provides common weapon handling functions in addition to hooks
|
||||
// into the inventory system.
|
||||
className = "Weapon";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Lurker/TP_Lurker.DAE";
|
||||
mass = 1;
|
||||
elasticity = 0.2;
|
||||
friction = 0.6;
|
||||
emap = true;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
PreviewImage = 'lurker.png';
|
||||
pickUpName = "Lurker rifle";
|
||||
description = "Lurker";
|
||||
image = LurkerWeaponImage;
|
||||
reticle = "crossHair";
|
||||
};
|
||||
|
||||
|
||||
datablock ShapeBaseImageData(LurkerWeaponImage)
|
||||
{
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Lurker/TP_Lurker.DAE";
|
||||
shapeFileFP = "art/shapes/weapons/Lurker/FP_Lurker.DAE";
|
||||
emap = true;
|
||||
|
||||
imageAnimPrefix = "Rifle";
|
||||
imageAnimPrefixFP = "Rifle";
|
||||
|
||||
// Specify mount point & offset for 3rd person, and eye offset
|
||||
// for first person rendering.
|
||||
mountPoint = 0;
|
||||
firstPerson = true;
|
||||
useEyeNode = true;
|
||||
animateOnServer = true;
|
||||
|
||||
// When firing from a point offset from the eye, muzzle correction
|
||||
// will adjust the muzzle vector to point to the eye LOS point.
|
||||
// Since this weapon doesn't actually fire from the muzzle point,
|
||||
// we need to turn this off.
|
||||
correctMuzzleVector = true;
|
||||
|
||||
// Add the WeaponImage namespace as a parent, WeaponImage namespace
|
||||
// provides some hooks into the inventory system.
|
||||
class = "WeaponImage";
|
||||
className = "WeaponImage";
|
||||
|
||||
// Projectiles and Ammo.
|
||||
item = Lurker;
|
||||
ammo = LurkerAmmo;
|
||||
clip = LurkerClip;
|
||||
|
||||
projectile = BulletProjectile;
|
||||
projectileType = Projectile;
|
||||
projectileSpread = "0.005";
|
||||
|
||||
altProjectile = GrenadeLauncherProjectile;
|
||||
altProjectileSpread = "0.02";
|
||||
|
||||
casing = BulletShell;
|
||||
shellExitDir = "1.0 0.3 1.0";
|
||||
shellExitOffset = "0.15 -0.56 -0.1";
|
||||
shellExitVariance = 15.0;
|
||||
shellVelocity = 3.0;
|
||||
|
||||
// Weapon lights up while firing
|
||||
lightType = "WeaponFireLight";
|
||||
lightColor = "0.992126 0.968504 0.708661 1";
|
||||
lightRadius = "4";
|
||||
lightDuration = "100";
|
||||
lightBrightness = 2;
|
||||
|
||||
// Shake camera while firing.
|
||||
shakeCamera = false;
|
||||
camShakeFreq = "0 0 0";
|
||||
camShakeAmp = "0 0 0";
|
||||
|
||||
// Images have a state system which controls how the animations
|
||||
// are run, which sounds are played, script callbacks, etc. This
|
||||
// state system is downloaded to the client so that clients can
|
||||
// predict state changes and animate accordingly. The following
|
||||
// system supports basic ready->fire->reload transitions as
|
||||
// well as a no-ammo->dryfire idle state.
|
||||
|
||||
useRemainderDT = true;
|
||||
|
||||
// Initial start up state
|
||||
stateName[0] = "Preactivate";
|
||||
stateTransitionOnLoaded[0] = "Activate";
|
||||
stateTransitionOnNoAmmo[0] = "NoAmmo";
|
||||
|
||||
// Activating the gun. Called when the weapon is first
|
||||
// mounted and there is ammo.
|
||||
stateName[1] = "Activate";
|
||||
stateTransitionGeneric0In[1] = "SprintEnter";
|
||||
stateTransitionOnTimeout[1] = "Ready";
|
||||
stateTimeoutValue[1] = 0.5;
|
||||
stateSequence[1] = "switch_in";
|
||||
stateSound[1] = LurkerSwitchinSound;
|
||||
|
||||
// Ready to fire, just waiting for the trigger
|
||||
stateName[2] = "Ready";
|
||||
stateTransitionGeneric0In[2] = "SprintEnter";
|
||||
stateTransitionOnMotion[2] = "ReadyMotion";
|
||||
stateTransitionOnTimeout[2] = "ReadyFidget";
|
||||
stateTimeoutValue[2] = 10;
|
||||
stateWaitForTimeout[2] = false;
|
||||
stateScaleAnimation[2] = false;
|
||||
stateScaleAnimationFP[2] = false;
|
||||
stateTransitionOnNoAmmo[2] = "NoAmmo";
|
||||
stateTransitionOnTriggerDown[2] = "Fire";
|
||||
stateSequence[2] = "idle";
|
||||
|
||||
// Same as Ready state but plays a fidget sequence
|
||||
stateName[3] = "ReadyFidget";
|
||||
stateTransitionGeneric0In[3] = "SprintEnter";
|
||||
stateTransitionOnMotion[3] = "ReadyMotion";
|
||||
stateTransitionOnTimeout[3] = "Ready";
|
||||
stateTimeoutValue[3] = 6;
|
||||
stateWaitForTimeout[3] = false;
|
||||
stateTransitionOnNoAmmo[3] = "NoAmmo";
|
||||
stateTransitionOnTriggerDown[3] = "Fire";
|
||||
stateSequence[3] = "idle_fidget1";
|
||||
stateSound[3] = LurkerIdleSound;
|
||||
|
||||
// Ready to fire with player moving
|
||||
stateName[4] = "ReadyMotion";
|
||||
stateTransitionGeneric0In[4] = "SprintEnter";
|
||||
stateTransitionOnNoMotion[4] = "Ready";
|
||||
stateWaitForTimeout[4] = false;
|
||||
stateScaleAnimation[4] = false;
|
||||
stateScaleAnimationFP[4] = false;
|
||||
stateSequenceTransitionIn[4] = true;
|
||||
stateSequenceTransitionOut[4] = true;
|
||||
stateTransitionOnNoAmmo[4] = "NoAmmo";
|
||||
stateTransitionOnTriggerDown[4] = "Fire";
|
||||
stateSequence[4] = "run";
|
||||
|
||||
// Fire the weapon. Calls the fire script which does
|
||||
// the actual work.
|
||||
stateName[5] = "Fire";
|
||||
stateTransitionGeneric0In[5] = "SprintEnter";
|
||||
stateTransitionOnTimeout[5] = "NewRound";
|
||||
stateTimeoutValue[5] = 0.15;
|
||||
stateFire[5] = true;
|
||||
stateRecoil[5] = "";
|
||||
stateAllowImageChange[5] = false;
|
||||
stateSequence[5] = "fire";
|
||||
stateScaleAnimation[5] = false;
|
||||
stateSequenceNeverTransition[5] = true;
|
||||
stateSequenceRandomFlash[5] = true; // use muzzle flash sequence
|
||||
stateScript[5] = "onFire";
|
||||
stateSound[5] = LurkerFireSoundList;
|
||||
stateEmitter[5] = GunFireSmokeEmitter;
|
||||
stateEmitterTime[5] = 0.025;
|
||||
|
||||
// Put another round into the chamber if one is available
|
||||
stateName[6] = "NewRound";
|
||||
stateTransitionGeneric0In[6] = "SprintEnter";
|
||||
stateTransitionOnNoAmmo[6] = "NoAmmo";
|
||||
stateTransitionOnTimeout[6] = "Ready";
|
||||
stateWaitForTimeout[6] = "0";
|
||||
stateTimeoutValue[6] = 0.05;
|
||||
stateAllowImageChange[6] = false;
|
||||
stateEjectShell[6] = true;
|
||||
|
||||
// No ammo in the weapon, just idle until something
|
||||
// shows up. Play the dry fire sound if the trigger is
|
||||
// pulled.
|
||||
stateName[7] = "NoAmmo";
|
||||
stateTransitionGeneric0In[7] = "SprintEnter";
|
||||
stateTransitionOnMotion[7] = "NoAmmoMotion";
|
||||
stateTransitionOnAmmo[7] = "ReloadClip";
|
||||
stateTimeoutValue[7] = 0.1; // Slight pause to allow script to run when trigger is still held down from Fire state
|
||||
stateScript[7] = "onClipEmpty";
|
||||
stateSequence[7] = "idle";
|
||||
stateScaleAnimation[7] = false;
|
||||
stateScaleAnimationFP[7] = false;
|
||||
stateTransitionOnTriggerDown[7] = "DryFire";
|
||||
|
||||
stateName[8] = "NoAmmoMotion";
|
||||
stateTransitionGeneric0In[8] = "SprintEnter";
|
||||
stateTransitionOnNoMotion[8] = "NoAmmo";
|
||||
stateWaitForTimeout[8] = false;
|
||||
stateScaleAnimation[8] = false;
|
||||
stateScaleAnimationFP[8] = false;
|
||||
stateSequenceTransitionIn[8] = true;
|
||||
stateSequenceTransitionOut[8] = true;
|
||||
stateTransitionOnTriggerDown[8] = "DryFire";
|
||||
stateTransitionOnAmmo[8] = "ReloadClip";
|
||||
stateSequence[8] = "run";
|
||||
|
||||
// No ammo dry fire
|
||||
stateName[9] = "DryFire";
|
||||
stateTransitionGeneric0In[9] = "SprintEnter";
|
||||
stateTransitionOnAmmo[9] = "ReloadClip";
|
||||
stateWaitForTimeout[9] = "0";
|
||||
stateTimeoutValue[9] = 0.7;
|
||||
stateTransitionOnTimeout[9] = "NoAmmo";
|
||||
stateScript[9] = "onDryFire";
|
||||
stateSound[9] = MachineGunDryFire;
|
||||
|
||||
// Play the reload clip animation
|
||||
stateName[10] = "ReloadClip";
|
||||
stateTransitionGeneric0In[10] = "SprintEnter";
|
||||
stateTransitionOnTimeout[10] = "Ready";
|
||||
stateWaitForTimeout[10] = true;
|
||||
stateTimeoutValue[10] = 3.0;
|
||||
stateReload[10] = true;
|
||||
stateSequence[10] = "reload";
|
||||
stateShapeSequence[10] = "Reload";
|
||||
stateScaleShapeSequence[10] = true;
|
||||
stateSound[10] = LurkerReloadSound;
|
||||
|
||||
// Start Sprinting
|
||||
stateName[11] = "SprintEnter";
|
||||
stateTransitionGeneric0Out[11] = "SprintExit";
|
||||
stateTransitionOnTimeout[11] = "Sprinting";
|
||||
stateWaitForTimeout[11] = false;
|
||||
stateTimeoutValue[11] = 0.5;
|
||||
stateWaitForTimeout[11] = false;
|
||||
stateScaleAnimation[11] = false;
|
||||
stateScaleAnimationFP[11] = false;
|
||||
stateSequenceTransitionIn[11] = true;
|
||||
stateSequenceTransitionOut[11] = true;
|
||||
stateAllowImageChange[11] = false;
|
||||
stateSequence[11] = "sprint";
|
||||
|
||||
// Sprinting
|
||||
stateName[12] = "Sprinting";
|
||||
stateTransitionGeneric0Out[12] = "SprintExit";
|
||||
stateWaitForTimeout[12] = false;
|
||||
stateScaleAnimation[12] = false;
|
||||
stateScaleAnimationFP[12] = false;
|
||||
stateSequenceTransitionIn[12] = true;
|
||||
stateSequenceTransitionOut[12] = true;
|
||||
stateAllowImageChange[12] = false;
|
||||
stateSequence[12] = "sprint";
|
||||
|
||||
// Stop Sprinting
|
||||
stateName[13] = "SprintExit";
|
||||
stateTransitionGeneric0In[13] = "SprintEnter";
|
||||
stateTransitionOnTimeout[13] = "Ready";
|
||||
stateWaitForTimeout[13] = false;
|
||||
stateTimeoutValue[13] = 0.5;
|
||||
stateSequenceTransitionIn[13] = true;
|
||||
stateSequenceTransitionOut[13] = true;
|
||||
stateAllowImageChange[13] = false;
|
||||
stateSequence[13] = "sprint";
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Lurker Grenade Launcher
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
datablock ItemData(LurkerGrenadeAmmo)
|
||||
{
|
||||
// Mission editor category
|
||||
category = "Ammo";
|
||||
|
||||
// Add the Ammo namespace as a parent. The ammo namespace provides
|
||||
// common ammo related functions and hooks into the inventory system.
|
||||
className = "Ammo";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Lurker/TP_Lurker.DAE";
|
||||
mass = 1;
|
||||
elasticity = 0.2;
|
||||
friction = 0.6;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
pickUpName = "Lurker grenade ammo";
|
||||
maxInventory = 20;
|
||||
};
|
||||
|
||||
datablock ItemData(LurkerGrenadeLauncher)
|
||||
{
|
||||
// Mission editor category
|
||||
category = "Weapon";
|
||||
|
||||
// Hook into Item Weapon class hierarchy. The weapon namespace
|
||||
// provides common weapon handling functions in addition to hooks
|
||||
// into the inventory system.
|
||||
className = "Weapon";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Lurker/TP_Lurker.DAE";
|
||||
mass = 1;
|
||||
elasticity = 0.2;
|
||||
friction = 0.6;
|
||||
emap = true;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
PreviewImage = 'lurker.png';
|
||||
pickUpName = "a Lurker grenade launcher";
|
||||
description = "Lurker Grenade Launcher";
|
||||
image = LurkerGrenadeLauncherImage;
|
||||
reticle = "crossHair";
|
||||
};
|
||||
|
||||
datablock ShapeBaseImageData(LurkerGrenadeLauncherImage)
|
||||
{
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Lurker/TP_Lurker.DAE";
|
||||
shapeFileFP = "art/shapes/weapons/Lurker/FP_Lurker.DAE";
|
||||
emap = true;
|
||||
|
||||
imageAnimPrefix = "Rifle";
|
||||
imageAnimPrefixFP = "Rifle";
|
||||
|
||||
// Specify mount point & offset for 3rd person, and eye offset
|
||||
// for first person rendering.
|
||||
mountPoint = 0;
|
||||
firstPerson = true;
|
||||
useEyeNode = true;
|
||||
animateOnServer = true;
|
||||
|
||||
// When firing from a point offset from the eye, muzzle correction
|
||||
// will adjust the muzzle vector to point to the eye LOS point.
|
||||
// Since this weapon doesn't actually fire from the muzzle point,
|
||||
// we need to turn this off.
|
||||
correctMuzzleVector = true;
|
||||
|
||||
// Add the WeaponImage namespace as a parent, WeaponImage namespace
|
||||
// provides some hooks into the inventory system.
|
||||
class = "WeaponImage";
|
||||
className = "WeaponImage";
|
||||
|
||||
// Projectiles and Ammo.
|
||||
item = LurkerGrenadeLauncher;
|
||||
ammo = LurkerGrenadeAmmo;
|
||||
|
||||
projectile = GrenadeLauncherProjectile;
|
||||
projectileType = Projectile;
|
||||
projectileSpread = "0.02";
|
||||
|
||||
// Weapon lights up while firing
|
||||
lightType = "WeaponFireLight";
|
||||
lightColor = "0.992126 0.968504 0.708661 1";
|
||||
lightRadius = "4";
|
||||
lightDuration = "100";
|
||||
lightBrightness = 2;
|
||||
|
||||
// Shake camera while firing.
|
||||
shakeCamera = false;
|
||||
camShakeFreq = "0 0 0";
|
||||
camShakeAmp = "0 0 0";
|
||||
|
||||
// Images have a state system which controls how the animations
|
||||
// are run, which sounds are played, script callbacks, etc. This
|
||||
// state system is downloaded to the client so that clients can
|
||||
// predict state changes and animate accordingly. The following
|
||||
// system supports basic ready->fire->reload transitions as
|
||||
// well as a no-ammo->dryfire idle state.
|
||||
|
||||
useRemainderDT = true;
|
||||
|
||||
// Initial start up state
|
||||
stateName[0] = "Preactivate";
|
||||
stateTransitionOnLoaded[0] = "Activate";
|
||||
stateTransitionOnNoAmmo[0] = "NoAmmo";
|
||||
|
||||
// Activating the gun. Called when the weapon is first
|
||||
// mounted and there is ammo.
|
||||
stateName[1] = "Activate";
|
||||
stateTransitionGeneric0In[1] = "SprintEnter";
|
||||
stateTransitionOnTimeout[1] = "Ready";
|
||||
stateTimeoutValue[1] = 0.5;
|
||||
stateSequence[1] = "switch_in";
|
||||
stateSound[1] = LurkerSwitchinSound;
|
||||
|
||||
// Ready to fire, just waiting for the trigger
|
||||
stateName[2] = "Ready";
|
||||
stateTransitionGeneric0In[2] = "SprintEnter";
|
||||
stateTransitionOnMotion[2] = "ReadyMotion";
|
||||
stateTransitionOnTimeout[2] = "ReadyFidget";
|
||||
stateTimeoutValue[2] = 10;
|
||||
stateWaitForTimeout[2] = false;
|
||||
stateScaleAnimation[2] = false;
|
||||
stateScaleAnimationFP[2] = false;
|
||||
stateTransitionOnNoAmmo[2] = "NoAmmo";
|
||||
stateTransitionOnTriggerDown[2] = "Fire";
|
||||
stateSequence[2] = "idle";
|
||||
|
||||
// Same as Ready state but plays a fidget sequence
|
||||
stateName[3] = "ReadyFidget";
|
||||
stateTransitionGeneric0In[3] = "SprintEnter";
|
||||
stateTransitionOnMotion[3] = "ReadyMotion";
|
||||
stateTransitionOnTimeout[3] = "Ready";
|
||||
stateTimeoutValue[3] = 6;
|
||||
stateWaitForTimeout[3] = false;
|
||||
stateTransitionOnNoAmmo[3] = "NoAmmo";
|
||||
stateTransitionOnTriggerDown[3] = "Fire";
|
||||
stateSequence[3] = "idle_fidget1";
|
||||
stateSound[3] = LurkerIdleSound;
|
||||
|
||||
// Ready to fire with player moving
|
||||
stateName[4] = "ReadyMotion";
|
||||
stateTransitionGeneric0In[4] = "SprintEnter";
|
||||
stateTransitionOnNoMotion[4] = "Ready";
|
||||
stateWaitForTimeout[4] = false;
|
||||
stateScaleAnimation[4] = false;
|
||||
stateScaleAnimationFP[4] = false;
|
||||
stateSequenceTransitionIn[4] = true;
|
||||
stateSequenceTransitionOut[4] = true;
|
||||
stateTransitionOnNoAmmo[4] = "NoAmmo";
|
||||
stateTransitionOnTriggerDown[4] = "Fire";
|
||||
stateSequence[4] = "run";
|
||||
|
||||
// Fire the weapon. Calls the fire script which does
|
||||
// the actual work.
|
||||
stateName[5] = "Fire";
|
||||
stateTransitionGeneric0In[5] = "SprintEnter";
|
||||
stateTransitionOnTimeout[5] = "NewRound";
|
||||
stateTimeoutValue[5] = 1.2;
|
||||
stateFire[5] = true;
|
||||
stateRecoil[5] = "";
|
||||
stateAllowImageChange[5] = false;
|
||||
stateSequence[5] = "fire_alt";
|
||||
stateScaleAnimation[5] = true;
|
||||
stateSequenceNeverTransition[5] = true;
|
||||
stateSequenceRandomFlash[5] = true; // use muzzle flash sequence
|
||||
stateScript[5] = "onFire";
|
||||
stateSound[5] = LurkerGrenadeFireSound;
|
||||
stateEmitter[5] = GunFireSmokeEmitter;
|
||||
stateEmitterTime[5] = 0.025;
|
||||
stateEjectShell[5] = true;
|
||||
|
||||
// Put another round into the chamber
|
||||
stateName[6] = "NewRound";
|
||||
stateTransitionGeneric0In[6] = "SprintEnter";
|
||||
stateTransitionOnNoAmmo[6] = "NoAmmo";
|
||||
stateTransitionOnTimeout[6] = "Ready";
|
||||
stateWaitForTimeout[6] = "0";
|
||||
stateTimeoutValue[6] = 0.05;
|
||||
stateAllowImageChange[6] = false;
|
||||
|
||||
// No ammo in the weapon, just idle until something
|
||||
// shows up. Play the dry fire sound if the trigger is
|
||||
// pulled.
|
||||
stateName[7] = "NoAmmo";
|
||||
stateTransitionGeneric0In[7] = "SprintEnter";
|
||||
stateTransitionOnMotion[7] = "NoAmmoReadyMotion";
|
||||
stateTransitionOnAmmo[7] = "ReloadClip";
|
||||
stateTimeoutValue[7] = 0.1; // Slight pause to allow script to run when trigger is still held down from Fire state
|
||||
stateScript[7] = "onClipEmpty";
|
||||
stateSequence[7] = "idle";
|
||||
stateScaleAnimation[7] = false;
|
||||
stateScaleAnimationFP[7] = false;
|
||||
stateTransitionOnTriggerDown[7] = "DryFire";
|
||||
|
||||
stateName[8] = "NoAmmoReadyMotion";
|
||||
stateTransitionGeneric0In[8] = "SprintEnter";
|
||||
stateTransitionOnNoMotion[8] = "NoAmmo";
|
||||
stateWaitForTimeout[8] = false;
|
||||
stateScaleAnimation[8] = false;
|
||||
stateScaleAnimationFP[8] = false;
|
||||
stateSequenceTransitionIn[8] = true;
|
||||
stateSequenceTransitionOut[8] = true;
|
||||
stateTransitionOnAmmo[8] = "ReloadClip";
|
||||
stateTransitionOnTriggerDown[8] = "DryFire";
|
||||
stateSequence[8] = "run";
|
||||
|
||||
// No ammo dry fire
|
||||
stateName[9] = "DryFire";
|
||||
stateTransitionGeneric0In[9] = "SprintEnter";
|
||||
stateTimeoutValue[9] = 1.0;
|
||||
stateTransitionOnTimeout[9] = "NoAmmo";
|
||||
stateScript[9] = "onDryFire";
|
||||
|
||||
// Play the reload clip animation
|
||||
stateName[10] = "ReloadClip";
|
||||
stateTransitionGeneric0In[10] = "SprintEnter";
|
||||
stateTransitionOnTimeout[10] = "Ready";
|
||||
stateWaitForTimeout[10] = true;
|
||||
stateTimeoutValue[10] = 3.0;
|
||||
stateReload[10] = true;
|
||||
stateSequence[10] = "reload";
|
||||
stateShapeSequence[10] = "Reload";
|
||||
stateScaleShapeSequence[10] = true;
|
||||
|
||||
// Start Sprinting
|
||||
stateName[11] = "SprintEnter";
|
||||
stateTransitionGeneric0Out[11] = "SprintExit";
|
||||
stateTransitionOnTimeout[11] = "Sprinting";
|
||||
stateWaitForTimeout[11] = false;
|
||||
stateTimeoutValue[11] = 0.5;
|
||||
stateWaitForTimeout[11] = false;
|
||||
stateScaleAnimation[11] = false;
|
||||
stateScaleAnimationFP[11] = false;
|
||||
stateSequenceTransitionIn[11] = true;
|
||||
stateSequenceTransitionOut[11] = true;
|
||||
stateAllowImageChange[11] = false;
|
||||
stateSequence[11] = "sprint";
|
||||
|
||||
// Sprinting
|
||||
stateName[12] = "Sprinting";
|
||||
stateTransitionGeneric0Out[12] = "SprintExit";
|
||||
stateWaitForTimeout[12] = false;
|
||||
stateScaleAnimation[12] = false;
|
||||
stateScaleAnimationFP[12] = false;
|
||||
stateSequenceTransitionIn[12] = true;
|
||||
stateSequenceTransitionOut[12] = true;
|
||||
stateAllowImageChange[12] = false;
|
||||
stateSequence[12] = "sprint";
|
||||
|
||||
// Stop Sprinting
|
||||
stateName[13] = "SprintExit";
|
||||
stateTransitionGeneric0In[13] = "SprintEnter";
|
||||
stateTransitionOnTimeout[13] = "Ready";
|
||||
stateWaitForTimeout[13] = false;
|
||||
stateTimeoutValue[13] = 0.5;
|
||||
stateSequenceTransitionIn[13] = true;
|
||||
stateSequenceTransitionOut[13] = true;
|
||||
stateAllowImageChange[13] = false;
|
||||
stateSequence[13] = "sprint";
|
||||
};
|
||||
|
|
@ -0,0 +1,402 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Sounds
|
||||
//--------------------------------------------------------------------------
|
||||
// Added for Lesson 5 - Adding Weapons - 23 Sep 11
|
||||
datablock SFXProfile(WeaponTemplateFireSound)
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_fire";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(WeaponTemplateReloadSound)
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_reload";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(WeaponTemplateSwitchinSound)
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_switchin";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(WeaponTemplateIdleSound)
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_idle";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(WeaponTemplateGrenadeSound)
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_grenadelaunch";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(WeaponTemplateMineSwitchinSound)
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_mine_switchin";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
//-----------------------------------------------------------------------------
|
||||
// Added 28 Sep 11
|
||||
datablock LightDescription( BulletProjectileLightDesc )
|
||||
{
|
||||
color = "0.0 0.5 0.7";
|
||||
range = 3.0;
|
||||
};
|
||||
|
||||
datablock ProjectileData( BulletProjectile )
|
||||
{
|
||||
projectileShapeName = "";
|
||||
|
||||
directDamage = 5;
|
||||
radiusDamage = 0;
|
||||
damageRadius = 0.5;
|
||||
areaImpulse = 0.5;
|
||||
impactForce = 1;
|
||||
|
||||
explosion = BulletDirtExplosion;
|
||||
decal = BulletHoleDecal;
|
||||
|
||||
muzzleVelocity = 120;
|
||||
velInheritFactor = 1;
|
||||
|
||||
armingDelay = 0;
|
||||
lifetime = 992;
|
||||
fadeDelay = 1472;
|
||||
bounceElasticity = 0;
|
||||
bounceFriction = 0;
|
||||
isBallistic = false;
|
||||
gravityMod = 1;
|
||||
};
|
||||
|
||||
function BulletProjectile::onCollision(%this,%obj,%col,%fade,%pos,%normal)
|
||||
{
|
||||
// Apply impact force from the projectile.
|
||||
|
||||
// Apply damage to the object all shape base objects
|
||||
if ( %col.getType() & $TypeMasks::GameBaseObjectType )
|
||||
%col.damage(%obj,%pos,%this.directDamage,"BulletProjectile");
|
||||
}
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
datablock ProjectileData( WeaponTemplateProjectile )
|
||||
{
|
||||
projectileShapeName = "";
|
||||
|
||||
directDamage = 5;
|
||||
radiusDamage = 0;
|
||||
damageRadius = 0.5;
|
||||
areaImpulse = 0.5;
|
||||
impactForce = 1;
|
||||
|
||||
muzzleVelocity = 120;
|
||||
velInheritFactor = 1;
|
||||
|
||||
armingDelay = 0;
|
||||
lifetime = 992;
|
||||
fadeDelay = 1472;
|
||||
bounceElasticity = 0;
|
||||
bounceFriction = 0;
|
||||
isBallistic = false;
|
||||
gravityMod = 1;
|
||||
};
|
||||
|
||||
function WeaponTemplateProjectile::onCollision(%this,%obj,%col,%fade,%pos,%normal)
|
||||
{
|
||||
// Apply impact force from the projectile.
|
||||
|
||||
// Apply damage to the object all shape base objects
|
||||
if ( %col.getType() & $TypeMasks::GameBaseObjectType )
|
||||
%col.damage(%obj,%pos,%this.directDamage,"WeaponTemplateProjectile");
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Ammo Item
|
||||
//-----------------------------------------------------------------------------
|
||||
datablock ItemData(WeaponTemplateAmmo)
|
||||
{
|
||||
// Mission editor category
|
||||
category = "Ammo";
|
||||
|
||||
// Add the Ammo namespace as a parent. The ammo namespace provides
|
||||
// common ammo related functions and hooks into the inventory system.
|
||||
className = "Ammo";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "";
|
||||
mass = 1;
|
||||
elasticity = 0.2;
|
||||
friction = 0.6;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
pickUpName = "";
|
||||
maxInventory = 1000;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Weapon Item. This is the item that exists in the world, i.e. when it's
|
||||
// been dropped, thrown or is acting as re-spawnable item. When the weapon
|
||||
// is mounted onto a shape, the NewWeaponTemplate is used.
|
||||
//-----------------------------------------------------------------------------
|
||||
datablock ItemData(WeaponTemplateItem)
|
||||
{
|
||||
// Mission editor category
|
||||
category = "Weapon";
|
||||
|
||||
// Hook into Item Weapon class hierarchy. The weapon namespace
|
||||
// provides common weapon handling functions in addition to hooks
|
||||
// into the inventory system.
|
||||
className = "Weapon";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "";
|
||||
mass = 1;
|
||||
elasticity = 0.2;
|
||||
friction = 0.6;
|
||||
emap = true;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
pickUpName = "A basic weapon";
|
||||
description = "Weapon";
|
||||
image = WeaponTemplateImage;
|
||||
reticle = "crossHair";
|
||||
};
|
||||
|
||||
datablock ShapeBaseImageData(WeaponTemplateImage)
|
||||
{
|
||||
// FP refers to first person specific features
|
||||
|
||||
// Defines what art file to use.
|
||||
shapeFile = "art/shapes/weapons/Lurker/TP_Lurker.DAE";
|
||||
shapeFileFP = "art/shapes/weapons/Lurker/FP_Lurker.DAE";
|
||||
|
||||
// Whether or not to enable environment mapping
|
||||
//emap = true;
|
||||
|
||||
//imageAnimPrefixFP = "";
|
||||
|
||||
// Specify mount point & offset for 3rd person, and eye offset
|
||||
// for first person rendering.
|
||||
mountPoint = 0;
|
||||
//firstPerson = true;
|
||||
//eyeOffset = "0.001 -0.05 -0.065";
|
||||
|
||||
// When firing from a point offset from the eye, muzzle correction
|
||||
// will adjust the muzzle vector to point to the eye LOS point.
|
||||
// Since this weapon doesn't actually fire from the muzzle point,
|
||||
// we need to turn this off.
|
||||
//correctMuzzleVector = true;
|
||||
|
||||
// Add the WeaponImage namespace as a parent, WeaponImage namespace
|
||||
// provides some hooks into the inventory system.
|
||||
class = "WeaponImage";
|
||||
className = "WeaponImage";
|
||||
|
||||
// Projectiles and Ammo.
|
||||
item = WeaponTemplateItem;
|
||||
ammo = WeaponTemplateAmmo;
|
||||
|
||||
//projectile = BulletProjectile;
|
||||
//projectileType = Projectile;
|
||||
//projectileSpread = "0.005";
|
||||
|
||||
// Properties associated with the shell casing that gets ejected during firing
|
||||
//casing = BulletShell;
|
||||
//shellExitDir = "1.0 0.3 1.0";
|
||||
//shellExitOffset = "0.15 -0.56 -0.1";
|
||||
//shellExitVariance = 15.0;
|
||||
//shellVelocity = 3.0;
|
||||
|
||||
// Properties associated with a light that occurs when the weapon fires
|
||||
//lightType = "";
|
||||
//lightColor = "0.992126 0.968504 0.708661 1";
|
||||
//lightRadius = "4";
|
||||
//lightDuration = "100";
|
||||
//lightBrightness = 2;
|
||||
|
||||
// Properties associated with shaking the camera during firing
|
||||
//shakeCamera = false;
|
||||
//camShakeFreq = "0 0 0";
|
||||
//camShakeAmp = "0 0 0";
|
||||
|
||||
// Images have a state system which controls how the animations
|
||||
// are run, which sounds are played, script callbacks, etc. This
|
||||
// state system is downloaded to the client so that clients can
|
||||
// predict state changes and animate accordingly. The following
|
||||
// system supports basic ready->fire->reload transitions as
|
||||
// well as a no-ammo->dryfire idle state.
|
||||
|
||||
// If true, allow multiple timeout transitions to occur within a single tick
|
||||
// useful if states have a very small timeout
|
||||
//useRemainderDT = true;
|
||||
|
||||
// Initial start up state
|
||||
stateName[0] = "Preactivate";
|
||||
stateTransitionOnLoaded[0] = "Activate";
|
||||
stateTransitionOnNoAmmo[0] = "NoAmmo";
|
||||
|
||||
// Activating the gun. Called when the weapon is first
|
||||
// mounted and there is ammo.
|
||||
stateName[1] = "Activate";
|
||||
stateTransitionGeneric0In[1] = "SprintEnter";
|
||||
stateTransitionOnTimeout[1] = "Ready";
|
||||
stateTimeoutValue[1] = 0.5;
|
||||
stateSequence[1] = "switch_in";
|
||||
|
||||
// Ready to fire, just waiting for the trigger
|
||||
stateName[2] = "Ready";
|
||||
stateTransitionGeneric0In[2] = "SprintEnter";
|
||||
stateTransitionOnMotion[2] = "ReadyMotion";
|
||||
stateTransitionOnTimeout[2] = "ReadyFidget";
|
||||
stateTimeoutValue[2] = 10;
|
||||
stateWaitForTimeout[2] = false;
|
||||
stateScaleAnimation[2] = false;
|
||||
stateScaleAnimationFP[2] = false;
|
||||
stateTransitionOnNoAmmo[2] = "NoAmmo";
|
||||
stateTransitionOnTriggerDown[2] = "Fire";
|
||||
stateSequence[2] = "idle";
|
||||
|
||||
// Same as Ready state but plays a fidget sequence
|
||||
stateName[3] = "ReadyFidget";
|
||||
stateTransitionGeneric0In[3] = "SprintEnter";
|
||||
stateTransitionOnMotion[3] = "ReadyMotion";
|
||||
stateTransitionOnTimeout[3] = "Ready";
|
||||
stateTimeoutValue[3] = 6;
|
||||
stateWaitForTimeout[3] = false;
|
||||
stateTransitionOnNoAmmo[3] = "NoAmmo";
|
||||
stateTransitionOnTriggerDown[3] = "Fire";
|
||||
stateSequence[3] = "idle_fidget1";
|
||||
|
||||
// Ready to fire with player moving
|
||||
stateName[4] = "ReadyMotion";
|
||||
stateTransitionGeneric0In[4] = "SprintEnter";
|
||||
stateTransitionOnNoMotion[4] = "Ready";
|
||||
stateWaitForTimeout[4] = false;
|
||||
stateScaleAnimation[4] = false;
|
||||
stateScaleAnimationFP[4] = false;
|
||||
stateSequenceTransitionIn[4] = true;
|
||||
stateSequenceTransitionOut[4] = true;
|
||||
stateTransitionOnNoAmmo[4] = "NoAmmo";
|
||||
stateTransitionOnTriggerDown[4] = "Fire";
|
||||
stateSequence[4] = "run";
|
||||
|
||||
// Fire the weapon. Calls the fire script which does
|
||||
// the actual work.
|
||||
stateName[5] = "Fire";
|
||||
stateTransitionGeneric0In[5] = "SprintEnter";
|
||||
stateTransitionOnTimeout[5] = "Reload";
|
||||
stateTimeoutValue[5] = 0.15;
|
||||
stateFire[5] = true;
|
||||
stateRecoil[5] = "";
|
||||
stateAllowImageChange[5] = false;
|
||||
stateSequence[5] = "fire";
|
||||
stateScaleAnimation[5] = false;
|
||||
stateSequenceNeverTransition[5] = true;
|
||||
stateSequenceRandomFlash[5] = true; // use muzzle flash sequence
|
||||
stateScript[5] = "onFire";
|
||||
stateSound[5] = WeaponTemplateFireSound;
|
||||
stateEmitter[5] = GunFireSmokeEmitter;
|
||||
stateEmitterTime[5] = 0.025;
|
||||
|
||||
// Play the reload animation, and transition into
|
||||
stateName[6] = "Reload";
|
||||
stateTransitionGeneric0In[6] = "SprintEnter";
|
||||
stateTransitionOnNoAmmo[6] = "NoAmmo";
|
||||
stateTransitionOnTimeout[6] = "Ready";
|
||||
stateWaitForTimeout[6] = "0";
|
||||
stateTimeoutValue[6] = 0.05;
|
||||
stateAllowImageChange[6] = false;
|
||||
//stateSequence[6] = "reload";
|
||||
stateEjectShell[6] = true;
|
||||
|
||||
// No ammo in the weapon, just idle until something
|
||||
// shows up. Play the dry fire sound if the trigger is
|
||||
// pulled.
|
||||
stateName[7] = "NoAmmo";
|
||||
stateTransitionGeneric0In[7] = "SprintEnter";
|
||||
stateTransitionOnAmmo[7] = "ReloadClip";
|
||||
stateScript[7] = "onClipEmpty";
|
||||
|
||||
// No ammo dry fire
|
||||
stateName[8] = "DryFire";
|
||||
stateTransitionGeneric0In[8] = "SprintEnter";
|
||||
stateTimeoutValue[8] = 1.0;
|
||||
stateTransitionOnTimeout[8] = "NoAmmo";
|
||||
stateScript[8] = "onDryFire";
|
||||
|
||||
// Play the reload clip animation
|
||||
stateName[9] = "ReloadClip";
|
||||
stateTransitionGeneric0In[9] = "SprintEnter";
|
||||
stateTransitionOnTimeout[9] = "Ready";
|
||||
stateWaitForTimeout[9] = true;
|
||||
stateTimeoutValue[9] = 3.0;
|
||||
stateReload[9] = true;
|
||||
stateSequence[9] = "reload";
|
||||
stateShapeSequence[9] = "Reload";
|
||||
stateScaleShapeSequence[9] = true;
|
||||
|
||||
// Start Sprinting
|
||||
stateName[10] = "SprintEnter";
|
||||
stateTransitionGeneric0Out[10] = "SprintExit";
|
||||
stateTransitionOnTimeout[10] = "Sprinting";
|
||||
stateWaitForTimeout[10] = false;
|
||||
stateTimeoutValue[10] = 0.5;
|
||||
stateWaitForTimeout[10] = false;
|
||||
stateScaleAnimation[10] = false;
|
||||
stateScaleAnimationFP[10] = false;
|
||||
stateSequenceTransitionIn[10] = true;
|
||||
stateSequenceTransitionOut[10] = true;
|
||||
stateAllowImageChange[10] = false;
|
||||
stateSequence[10] = "sprint";
|
||||
|
||||
// Sprinting
|
||||
stateName[11] = "Sprinting";
|
||||
stateTransitionGeneric0Out[11] = "SprintExit";
|
||||
stateWaitForTimeout[11] = false;
|
||||
stateScaleAnimation[11] = false;
|
||||
stateScaleAnimationFP[11] = false;
|
||||
stateSequenceTransitionIn[11] = true;
|
||||
stateSequenceTransitionOut[11] = true;
|
||||
stateAllowImageChange[11] = false;
|
||||
stateSequence[11] = "sprint";
|
||||
|
||||
// Stop Sprinting
|
||||
stateName[12] = "SprintExit";
|
||||
stateTransitionGeneric0In[12] = "SprintEnter";
|
||||
stateTransitionOnTimeout[12] = "Ready";
|
||||
stateWaitForTimeout[12] = false;
|
||||
stateTimeoutValue[12] = 0.5;
|
||||
stateSequenceTransitionIn[12] = true;
|
||||
stateSequenceTransitionOut[12] = true;
|
||||
stateAllowImageChange[12] = false;
|
||||
stateSequence[12] = "sprint";
|
||||
};
|
||||
230
Templates/Full PhysX/game/art/datablocks/weapons/ProxMine.cs
Normal file
|
|
@ -0,0 +1,230 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
datablock SFXProfile( MineArmedSound )
|
||||
{
|
||||
filename = "art/sound/weapons/mine_armed";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile( MineSwitchinSound )
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_proximitymine_switchin";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile( MineTriggeredSound )
|
||||
{
|
||||
filename = "art/sound/weapons/mine_trigger";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock ProximityMineData( ProxMine )
|
||||
{
|
||||
// ShapeBaseData fields
|
||||
category = "Weapon";
|
||||
shapeFile = "art/shapes/weapons/ProxMine/TP_ProxMine.DAE";
|
||||
explosion = GrenadeLauncherExplosion;
|
||||
|
||||
// ItemData fields
|
||||
sticky = true;
|
||||
mass = 2;
|
||||
elasticity = 0.2;
|
||||
friction = 0.6;
|
||||
simpleServerCollision = false;
|
||||
|
||||
// ProximityMineData fields
|
||||
armingDelay = 3.5;
|
||||
armingSound = MineArmedSound;
|
||||
|
||||
autoTriggerDelay = 0;
|
||||
triggerOnOwner = true;
|
||||
triggerRadius = 3.0;
|
||||
triggerDelay = 0.45;
|
||||
triggerSound = MineTriggeredSound;
|
||||
|
||||
explosionOffset = 0.1;
|
||||
|
||||
// dynamic fields
|
||||
pickUpName = "a proximity mine";
|
||||
description = "Proximity Mine";
|
||||
maxInventory = 20;
|
||||
image = ProxMineImage;
|
||||
|
||||
previewImage = 'mine.png';
|
||||
reticle = 'blank';
|
||||
zoomReticle = 'blank';
|
||||
|
||||
damageType = "MineDamage"; // type of damage applied to objects in radius
|
||||
radiusDamage = 300; // amount of damage to apply to objects in radius
|
||||
damageRadius = 8; // search radius to damage objects when exploding
|
||||
areaImpulse = 2000; // magnitude of impulse to apply to objects in radius
|
||||
};
|
||||
|
||||
datablock ShapeBaseImageData( ProxMineImage )
|
||||
{
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/ProxMine/TP_ProxMine.DAE";
|
||||
shapeFileFP = "art/shapes/weapons/ProxMine/FP_ProxMine.DAE";
|
||||
|
||||
imageAnimPrefix = "ProxMine";
|
||||
imageAnimPrefixFP = "ProxMine";
|
||||
|
||||
// Specify mount point & offset for 3rd person, and eye offset
|
||||
// for first person rendering.
|
||||
mountPoint = 0;
|
||||
firstPerson = true;
|
||||
useEyeNode = true;
|
||||
|
||||
// When firing from a point offset from the eye, muzzle correction
|
||||
// will adjust the muzzle vector to point to the eye LOS point.
|
||||
// Since this weapon doesn't actually fire from the muzzle point,
|
||||
// we need to turn this off.
|
||||
correctMuzzleVector = false;
|
||||
|
||||
// Add the WeaponImage namespace as a parent, WeaponImage namespace
|
||||
// provides some hooks into the inventory system.
|
||||
class = "WeaponImage";
|
||||
className = "WeaponImage";
|
||||
|
||||
// Projectiles and Ammo.
|
||||
item = ProxMine;
|
||||
|
||||
// Shake camera while firing.
|
||||
shakeCamera = false;
|
||||
camShakeFreq = "0 0 0";
|
||||
camShakeAmp = "0 0 0";
|
||||
|
||||
// Images have a state system which controls how the animations
|
||||
// are run, which sounds are played, script callbacks, etc. This
|
||||
// state system is downloaded to the client so that clients can
|
||||
// predict state changes and animate accordingly. The following
|
||||
// system supports basic ready->fire->reload transitions as
|
||||
// well as a no-ammo->dryfire idle state.
|
||||
|
||||
// Initial start up state
|
||||
stateName[0] = "Preactivate";
|
||||
stateTransitionOnLoaded[0] = "Activate";
|
||||
stateTransitionOnNoAmmo[0] = "Activate";
|
||||
|
||||
// Activating the gun. Called when the weapon is first
|
||||
// mounted and there is ammo.
|
||||
stateName[1] = "Activate";
|
||||
stateTransitionGeneric0In[1] = "SprintEnter";
|
||||
stateTransitionOnTimeout[1] = "Ready";
|
||||
stateTimeoutValue[1] = 3.0;
|
||||
stateSequence[1] = "switch_in";
|
||||
stateShapeSequence[1] = "Reload";
|
||||
stateSound[1] = MineSwitchinSound;
|
||||
|
||||
// Ready to fire, just waiting for the trigger
|
||||
stateName[2] = "Ready";
|
||||
stateTransitionGeneric0In[2] = "SprintEnter";
|
||||
stateTransitionOnMotion[2] = "ReadyMotion";
|
||||
stateTransitionOnTriggerDown[2] = "Fire";
|
||||
stateScaleAnimation[2] = false;
|
||||
stateScaleAnimationFP[2] = false;
|
||||
stateSequence[2] = "idle";
|
||||
|
||||
// Ready to fire with player moving
|
||||
stateName[3] = "ReadyMotion";
|
||||
stateTransitionGeneric0In[3] = "SprintEnter";
|
||||
stateTransitionOnNoMotion[3] = "Ready";
|
||||
stateScaleAnimation[3] = false;
|
||||
stateScaleAnimationFP[3] = false;
|
||||
stateSequenceTransitionIn[3] = true;
|
||||
stateSequenceTransitionOut[3] = true;
|
||||
stateTransitionOnTriggerDown[3] = "Fire";
|
||||
stateSequence[3] = "run";
|
||||
|
||||
// Wind up to throw the ProxMine
|
||||
stateName[4] = "Fire";
|
||||
stateTransitionGeneric0In[4] = "SprintEnter";
|
||||
stateTransitionOnTimeout[4] = "Fire2";
|
||||
stateTimeoutValue[4] = 0.8;
|
||||
stateFire[4] = true;
|
||||
stateRecoil[4] = "";
|
||||
stateAllowImageChange[4] = false;
|
||||
stateSequence[4] = "Fire";
|
||||
stateSequenceNeverTransition[4] = true;
|
||||
stateShapeSequence[4] = "Fire";
|
||||
|
||||
// Throw the actual mine
|
||||
stateName[5] = "Fire2";
|
||||
stateTransitionGeneric0In[5] = "SprintEnter";
|
||||
stateTransitionOnTriggerUp[5] = "Reload";
|
||||
stateTimeoutValue[5] = 0.7;
|
||||
stateAllowImageChange[5] = false;
|
||||
stateSequenceNeverTransition[5] = true;
|
||||
stateSequence[5] = "fire_release";
|
||||
stateShapeSequence[5] = "Fire_Release";
|
||||
stateScript[5] = "onFire";
|
||||
|
||||
// Play the reload animation, and transition into
|
||||
stateName[6] = "Reload";
|
||||
stateTransitionGeneric0In[6] = "SprintEnter";
|
||||
stateTransitionOnTimeout[6] = "Ready";
|
||||
stateWaitForTimeout[6] = true;
|
||||
stateTimeoutValue[6] = 3.0;
|
||||
stateSequence[6] = "switch_in";
|
||||
stateShapeSequence[6] = "Reload";
|
||||
stateSound[6] = MineSwitchinSound;
|
||||
|
||||
// Start Sprinting
|
||||
stateName[7] = "SprintEnter";
|
||||
stateTransitionGeneric0Out[7] = "SprintExit";
|
||||
stateTransitionOnTimeout[7] = "Sprinting";
|
||||
stateWaitForTimeout[7] = false;
|
||||
stateTimeoutValue[7] = 0.25;
|
||||
stateWaitForTimeout[7] = false;
|
||||
stateScaleAnimation[7] = true;
|
||||
stateScaleAnimationFP[7] = true;
|
||||
stateSequenceTransitionIn[7] = true;
|
||||
stateSequenceTransitionOut[7] = true;
|
||||
stateAllowImageChange[7] = false;
|
||||
stateSequence[7] = "run2sprint";
|
||||
|
||||
// Sprinting
|
||||
stateName[8] = "Sprinting";
|
||||
stateTransitionGeneric0Out[8] = "SprintExit";
|
||||
stateWaitForTimeout[8] = false;
|
||||
stateScaleAnimation[8] = false;
|
||||
stateScaleAnimationFP[8] = false;
|
||||
stateSequenceTransitionIn[8] = true;
|
||||
stateSequenceTransitionOut[8] = true;
|
||||
stateAllowImageChange[8] = false;
|
||||
stateSequence[8] = "sprint";
|
||||
|
||||
// Stop Sprinting
|
||||
stateName[9] = "SprintExit";
|
||||
stateTransitionGeneric0In[9] = "SprintEnter";
|
||||
stateTransitionOnTimeout[9] = "Ready";
|
||||
stateWaitForTimeout[9] = false;
|
||||
stateTimeoutValue[9] = 0.5;
|
||||
stateSequenceTransitionIn[9] = true;
|
||||
stateSequenceTransitionOut[9] = true;
|
||||
stateAllowImageChange[9] = false;
|
||||
stateSequence[9] = "sprint2run";
|
||||
};
|
||||
364
Templates/Full PhysX/game/art/datablocks/weapons/Ryder.cs
Normal file
|
|
@ -0,0 +1,364 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Sounds
|
||||
//--------------------------------------------------------------------------
|
||||
|
||||
datablock SFXProfile(RyderFireSound)
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_Ryder_fire";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(RyderReloadSound)
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_Ryder_reload";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(RyderSwitchinSound)
|
||||
{
|
||||
filename = "art/sound/weapons/wpn_Ryder_switchin";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Particles
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Explosion
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Shell ejected during reload.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Projectile Object
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Ammo Item
|
||||
//-----------------------------------------------------------------------------
|
||||
datablock ItemData(RyderClip)
|
||||
{
|
||||
// Mission editor category
|
||||
category = "AmmoClip";
|
||||
|
||||
// Add the Ammo namespace as a parent. The ammo namespace provides
|
||||
// common ammo related functions and hooks into the inventory system.
|
||||
className = "AmmoClip";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Ryder/TP_Ryder.DAE";
|
||||
mass = 1;
|
||||
elasticity = 0.2;
|
||||
friction = 0.6;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
pickUpName = "Ryder clip";
|
||||
count = 1;
|
||||
maxInventory = 10;
|
||||
};
|
||||
|
||||
datablock ItemData(RyderAmmo)
|
||||
{
|
||||
// Mission editor category
|
||||
category = "Ammo";
|
||||
|
||||
// Add the Ammo namespace as a parent. The ammo namespace provides
|
||||
// common ammo related functions and hooks into the inventory system.
|
||||
className = "Ammo";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Ryder/TP_Ryder.DAE";
|
||||
mass = 1;
|
||||
elasticity = 0.2;
|
||||
friction = 0.6;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
pickUpName = "Ryder bullet";
|
||||
maxInventory = 8;
|
||||
clip = RyderClip;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Weapon Item. This is the item that exists in the world, i.e. when it's
|
||||
// been dropped, thrown or is acting as re-spawnable item. When the weapon
|
||||
// is mounted onto a shape, the SoldierWeaponImage is used.
|
||||
//-----------------------------------------------------------------------------
|
||||
datablock ItemData(Ryder)
|
||||
{
|
||||
// Mission editor category
|
||||
category = "Weapon";
|
||||
|
||||
// Hook into Item Weapon class hierarchy. The weapon namespace
|
||||
// provides common weapon handling functions in addition to hooks
|
||||
// into the inventory system.
|
||||
className = "Weapon";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Ryder/TP_Ryder.DAE";
|
||||
mass = 1;
|
||||
elasticity = 0.2;
|
||||
friction = 0.6;
|
||||
emap = true;
|
||||
PreviewImage = 'ryder.png';
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
pickUpName = "Ryder pistol";
|
||||
description = "Ryder";
|
||||
image = RyderWeaponImage;
|
||||
reticle = "crossHair";
|
||||
};
|
||||
|
||||
|
||||
datablock ShapeBaseImageData(RyderWeaponImage)
|
||||
{
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Ryder/TP_Ryder.DAE";
|
||||
shapeFileFP = "art/shapes/weapons/Ryder/FP_Ryder.DAE";
|
||||
emap = true;
|
||||
|
||||
imageAnimPrefix = "Pistol";
|
||||
imageAnimPrefixFP = "Pistol";
|
||||
|
||||
// Specify mount point & offset for 3rd person, and eye offset
|
||||
// for first person rendering.
|
||||
mountPoint = 0;
|
||||
firstPerson = true;
|
||||
useEyeNode = true;
|
||||
animateOnServer = true;
|
||||
|
||||
// When firing from a point offset from the eye, muzzle correction
|
||||
// will adjust the muzzle vector to point to the eye LOS point.
|
||||
// Since this weapon doesn't actually fire from the muzzle point,
|
||||
// we need to turn this off.
|
||||
correctMuzzleVector = true;
|
||||
|
||||
// Add the WeaponImage namespace as a parent, WeaponImage namespace
|
||||
// provides some hooks into the inventory system.
|
||||
class = "WeaponImage";
|
||||
className = "WeaponImage";
|
||||
|
||||
// Projectiles and Ammo.
|
||||
item = Ryder;
|
||||
ammo = RyderAmmo;
|
||||
clip = RyderClip;
|
||||
|
||||
projectile = BulletProjectile;
|
||||
projectileType = Projectile;
|
||||
projectileSpread = "0.0";
|
||||
|
||||
altProjectile = GrenadeLauncherProjectile;
|
||||
altProjectileSpread = "0.02";
|
||||
|
||||
casing = BulletShell;
|
||||
shellExitDir = "1.0 0.3 1.0";
|
||||
shellExitOffset = "0.15 -0.56 -0.1";
|
||||
shellExitVariance = 15.0;
|
||||
shellVelocity = 3.0;
|
||||
|
||||
// Weapon lights up while firing
|
||||
lightType = "WeaponFireLight";
|
||||
lightColor = "0.992126 0.968504 0.700787 1";
|
||||
lightRadius = "4";
|
||||
lightDuration = "100";
|
||||
lightBrightness = 2;
|
||||
|
||||
// Shake camera while firing.
|
||||
shakeCamera = false;
|
||||
camShakeFreq = "0 0 0";
|
||||
camShakeAmp = "0 0 0";
|
||||
|
||||
// Images have a state system which controls how the animations
|
||||
// are run, which sounds are played, script callbacks, etc. This
|
||||
// state system is downloaded to the client so that clients can
|
||||
// predict state changes and animate accordingly. The following
|
||||
// system supports basic ready->fire->reload transitions as
|
||||
// well as a no-ammo->dryfire idle state.
|
||||
|
||||
useRemainderDT = true;
|
||||
|
||||
// Initial start up state
|
||||
stateName[0] = "Preactivate";
|
||||
stateTransitionOnLoaded[0] = "Activate";
|
||||
stateTransitionOnNoAmmo[0] = "NoAmmo";
|
||||
|
||||
// Activating the gun. Called when the weapon is first
|
||||
// mounted and there is ammo.
|
||||
stateName[1] = "Activate";
|
||||
stateTransitionGeneric0In[1] = "SprintEnter";
|
||||
stateTransitionOnTimeout[1] = "Ready";
|
||||
stateTimeoutValue[1] = 1.5;
|
||||
stateSequence[1] = "switch_in";
|
||||
stateSound[1] = RyderSwitchinSound;
|
||||
|
||||
// Ready to fire, just waiting for the trigger
|
||||
stateName[2] = "Ready";
|
||||
stateTransitionGeneric0In[2] = "SprintEnter";
|
||||
stateTransitionOnMotion[2] = "ReadyMotion";
|
||||
stateScaleAnimation[2] = false;
|
||||
stateScaleAnimationFP[2] = false;
|
||||
stateTransitionOnNoAmmo[2] = "NoAmmo";
|
||||
stateTransitionOnTriggerDown[2] = "Fire";
|
||||
stateSequence[2] = "idle";
|
||||
|
||||
// Ready to fire with player moving
|
||||
stateName[3] = "ReadyMotion";
|
||||
stateTransitionGeneric0In[3] = "SprintEnter";
|
||||
stateTransitionOnNoMotion[3] = "Ready";
|
||||
stateWaitForTimeout[3] = false;
|
||||
stateScaleAnimation[3] = false;
|
||||
stateScaleAnimationFP[3] = false;
|
||||
stateSequenceTransitionIn[3] = true;
|
||||
stateSequenceTransitionOut[3] = true;
|
||||
stateTransitionOnNoAmmo[3] = "NoAmmo";
|
||||
stateTransitionOnTriggerDown[3] = "Fire";
|
||||
stateSequence[3] = "run";
|
||||
|
||||
// Fire the weapon. Calls the fire script which does
|
||||
// the actual work.
|
||||
stateName[4] = "Fire";
|
||||
stateTransitionGeneric0In[4] = "SprintEnter";
|
||||
stateTransitionOnTimeout[4] = "WaitForRelease";
|
||||
stateTimeoutValue[4] = 0.23;
|
||||
stateWaitForTimeout[4] = true;
|
||||
stateFire[4] = true;
|
||||
stateRecoil[4] = "";
|
||||
stateAllowImageChange[4] = false;
|
||||
stateSequence[4] = "fire";
|
||||
stateScaleAnimation[4] = true;
|
||||
stateSequenceNeverTransition[4] = true;
|
||||
stateSequenceRandomFlash[4] = true; // use muzzle flash sequence
|
||||
stateScript[4] = "onFire";
|
||||
stateEmitter[4] = GunFireSmokeEmitter;
|
||||
stateEmitterTime[4] = 0.025;
|
||||
stateEjectShell[4] = true;
|
||||
stateSound[4] = RyderFireSound;
|
||||
|
||||
// Wait for the player to release the trigger
|
||||
stateName[5] = "WaitForRelease";
|
||||
stateTransitionGeneric0In[5] = "SprintEnter";
|
||||
stateTransitionOnTriggerUp[5] = "NewRound";
|
||||
stateTimeoutValue[5] = 0.05;
|
||||
stateWaitForTimeout[5] = true;
|
||||
stateAllowImageChange[5] = false;
|
||||
|
||||
// Put another round in the chamber
|
||||
stateName[6] = "NewRound";
|
||||
stateTransitionGeneric0In[6] = "SprintEnter";
|
||||
stateTransitionOnNoAmmo[6] = "NoAmmo";
|
||||
stateTransitionOnTimeout[6] = "Ready";
|
||||
stateWaitForTimeout[6] = "0";
|
||||
stateTimeoutValue[6] = 0.05;
|
||||
stateAllowImageChange[6] = false;
|
||||
|
||||
// No ammo in the weapon, just idle until something
|
||||
// shows up. Play the dry fire sound if the trigger is
|
||||
// pulled.
|
||||
stateName[7] = "NoAmmo";
|
||||
stateTransitionGeneric0In[7] = "SprintEnter";
|
||||
stateTransitionOnMotion[7] = "NoAmmoMotion";
|
||||
stateTransitionOnAmmo[7] = "ReloadClip";
|
||||
stateTimeoutValue[7] = 0.1; // Slight pause to allow script to run when trigger is still held down from Fire state
|
||||
stateScript[7] = "onClipEmpty";
|
||||
stateTransitionOnTriggerDown[7] = "DryFire";
|
||||
stateSequence[7] = "idle";
|
||||
stateScaleAnimation[7] = false;
|
||||
stateScaleAnimationFP[7] = false;
|
||||
|
||||
stateName[8] = "NoAmmoMotion";
|
||||
stateTransitionGeneric0In[8] = "SprintEnter";
|
||||
stateTransitionOnNoMotion[8] = "NoAmmo";
|
||||
stateWaitForTimeout[8] = false;
|
||||
stateScaleAnimation[8] = false;
|
||||
stateScaleAnimationFP[8] = false;
|
||||
stateSequenceTransitionIn[8] = true;
|
||||
stateSequenceTransitionOut[8] = true;
|
||||
stateTransitionOnAmmo[8] = "ReloadClip";
|
||||
stateTransitionOnTriggerDown[8] = "DryFire";
|
||||
stateSequence[8] = "run";
|
||||
|
||||
// No ammo dry fire
|
||||
stateName[9] = "DryFire";
|
||||
stateTransitionGeneric0In[9] = "SprintEnter";
|
||||
stateTransitionOnAmmo[9] = "ReloadClip";
|
||||
stateWaitForTimeout[9] = "0";
|
||||
stateTimeoutValue[9] = 0.7;
|
||||
stateTransitionOnTimeout[9] = "NoAmmo";
|
||||
stateScript[9] = "onDryFire";
|
||||
|
||||
// Play the reload clip animation
|
||||
stateName[10] = "ReloadClip";
|
||||
stateTransitionGeneric0In[10] = "SprintEnter";
|
||||
stateTransitionOnTimeout[10] = "Ready";
|
||||
stateWaitForTimeout[10] = true;
|
||||
stateTimeoutValue[10] = 2.0;
|
||||
stateReload[10] = true;
|
||||
stateSequence[10] = "reload";
|
||||
stateShapeSequence[10] = "Reload";
|
||||
stateScaleShapeSequence[10] = true;
|
||||
stateSound[10] = RyderReloadSound;
|
||||
|
||||
// Start Sprinting
|
||||
stateName[11] = "SprintEnter";
|
||||
stateTransitionGeneric0Out[11] = "SprintExit";
|
||||
stateTransitionOnTimeout[11] = "Sprinting";
|
||||
stateWaitForTimeout[11] = false;
|
||||
stateTimeoutValue[11] = 0.5;
|
||||
stateWaitForTimeout[11] = false;
|
||||
stateScaleAnimation[11] = false;
|
||||
stateScaleAnimationFP[11] = false;
|
||||
stateSequenceTransitionIn[11] = true;
|
||||
stateSequenceTransitionOut[11] = true;
|
||||
stateAllowImageChange[11] = false;
|
||||
stateSequence[11] = "sprint";
|
||||
|
||||
// Sprinting
|
||||
stateName[12] = "Sprinting";
|
||||
stateTransitionGeneric0Out[12] = "SprintExit";
|
||||
stateWaitForTimeout[12] = false;
|
||||
stateScaleAnimation[12] = false;
|
||||
stateScaleAnimationFP[12] = false;
|
||||
stateSequenceTransitionIn[12] = true;
|
||||
stateSequenceTransitionOut[12] = true;
|
||||
stateAllowImageChange[12] = false;
|
||||
stateSequence[12] = "sprint";
|
||||
|
||||
// Stop Sprinting
|
||||
stateName[13] = "SprintExit";
|
||||
stateTransitionGeneric0In[13] = "SprintEnter";
|
||||
stateTransitionOnTimeout[13] = "Ready";
|
||||
stateWaitForTimeout[13] = false;
|
||||
stateTimeoutValue[13] = 0.5;
|
||||
stateSequenceTransitionIn[13] = true;
|
||||
stateSequenceTransitionOut[13] = true;
|
||||
stateAllowImageChange[13] = false;
|
||||
stateSequence[13] = "sprint";
|
||||
};
|
||||
559
Templates/Full PhysX/game/art/datablocks/weapons/Turret.cs
Normal file
|
|
@ -0,0 +1,559 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
datablock SFXProfile(TargetAquiredSound)
|
||||
{
|
||||
filename = "";
|
||||
description = AudioClose3D;
|
||||
preload = false;
|
||||
};
|
||||
|
||||
datablock SFXProfile(TargetLostSound)
|
||||
{
|
||||
filename = "";
|
||||
description = AudioClose3D;
|
||||
preload = false;
|
||||
};
|
||||
|
||||
datablock SFXProfile(TurretDestroyed)
|
||||
{
|
||||
filename = "";
|
||||
description = AudioClose3D;
|
||||
preload = false;
|
||||
};
|
||||
|
||||
datablock SFXProfile(TurretThrown)
|
||||
{
|
||||
filename = "";
|
||||
description = AudioClose3D;
|
||||
preload = false;
|
||||
};
|
||||
|
||||
datablock SFXProfile(TurretFireSound)
|
||||
{
|
||||
filename = "art/sound/turret/wpn_turret_fire";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(TurretActivatedSound)
|
||||
{
|
||||
filename = "art/sound/turret/wpn_turret_deploy";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(TurretScanningSound)
|
||||
{
|
||||
filename = "art/sound/turret/wpn_turret_scan";
|
||||
description = AudioCloseLoop3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(TurretSwitchinSound)
|
||||
{
|
||||
filename = "art/sound/turret/wpn_turret_switchin";
|
||||
description = AudioClose3D;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Turret Bullet Projectile
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
datablock ProjectileData( TurretBulletProjectile )
|
||||
{
|
||||
projectileShapeName = "";
|
||||
|
||||
directDamage = 5;
|
||||
radiusDamage = 0;
|
||||
damageRadius = 0.5;
|
||||
areaImpulse = 0.5;
|
||||
impactForce = 1;
|
||||
|
||||
damageType = "TurretDamage"; // Type of damage applied by this weapon
|
||||
|
||||
explosion = BulletDirtExplosion;
|
||||
decal = BulletHoleDecal;
|
||||
|
||||
muzzleVelocity = 120;
|
||||
velInheritFactor = 1;
|
||||
|
||||
armingDelay = 0;
|
||||
lifetime = 992;
|
||||
fadeDelay = 1472;
|
||||
bounceElasticity = 0;
|
||||
bounceFriction = 0;
|
||||
isBallistic = false;
|
||||
gravityMod = 1;
|
||||
};
|
||||
|
||||
function TurretBulletProjectile::onCollision(%this,%obj,%col,%fade,%pos,%normal)
|
||||
{
|
||||
// Apply impact force from the projectile.
|
||||
|
||||
// Apply damage to the object all shape base objects
|
||||
if ( %col.getType() & $TypeMasks::GameBaseObjectType )
|
||||
%col.damage(%obj,%pos,%this.directDamage,%this.damageType);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Turret Bullet Ammo
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
datablock ItemData(AITurretAmmo)
|
||||
{
|
||||
// Mission editor category
|
||||
category = "Ammo";
|
||||
|
||||
// Add the Ammo namespace as a parent. The ammo namespace provides
|
||||
// common ammo related functions and hooks into the inventory system.
|
||||
className = "Ammo";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Turret/Turret_Legs.DAE";
|
||||
mass = 1;
|
||||
elasticity = 0.2;
|
||||
friction = 0.6;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
pickUpName = "turret ammo";
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// AI Turret Weapon
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
datablock ItemData(AITurretHead)
|
||||
{
|
||||
// Mission editor category
|
||||
category = "Weapon";
|
||||
|
||||
// Hook into Item Weapon class hierarchy. The weapon namespace
|
||||
// provides common weapon handling functions in addition to hooks
|
||||
// into the inventory system.
|
||||
className = "Weapon";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Turret/Turret_Head.DAE";
|
||||
mass = 1;
|
||||
elasticity = 0.2;
|
||||
friction = 0.6;
|
||||
emap = true;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
pickUpName = "an AI turret head";
|
||||
description = "AI Turret Head";
|
||||
image = AITurretHeadImage;
|
||||
reticle = "crossHair";
|
||||
};
|
||||
datablock ShapeBaseImageData(AITurretHeadImage)
|
||||
{
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Turret/Turret_Head.DAE";
|
||||
emap = true;
|
||||
|
||||
// Specify mount point
|
||||
mountPoint = 0;
|
||||
|
||||
// Add the WeaponImage namespace as a parent, WeaponImage namespace
|
||||
// provides some hooks into the inventory system.
|
||||
class = "WeaponImage";
|
||||
className = "WeaponImage";
|
||||
|
||||
// Projectiles and Ammo.
|
||||
item = AITurretHead;
|
||||
ammo = AITurretAmmo;
|
||||
|
||||
projectile = TurretBulletProjectile;
|
||||
projectileType = Projectile;
|
||||
projectileSpread = "0.02";
|
||||
|
||||
casing = BulletShell;
|
||||
shellExitDir = "1.0 0.3 1.0";
|
||||
shellExitOffset = "0.15 -0.56 -0.1";
|
||||
shellExitVariance = 15.0;
|
||||
shellVelocity = 3.0;
|
||||
|
||||
// Weapon lights up while firing
|
||||
lightType = "WeaponFireLight";
|
||||
lightColor = "0.992126 0.968504 0.708661 1";
|
||||
lightRadius = "4";
|
||||
lightDuration = "100";
|
||||
lightBrightness = 2;
|
||||
|
||||
// Shake camera while firing.
|
||||
shakeCamera = false;
|
||||
camShakeFreq = "0 0 0";
|
||||
camShakeAmp = "0 0 0";
|
||||
|
||||
// Images have a state system which controls how the animations
|
||||
// are run, which sounds are played, script callbacks, etc. This
|
||||
// state system is downloaded to the client so that clients can
|
||||
// predict state changes and animate accordingly. The following
|
||||
// system supports basic ready->fire->reload transitions as
|
||||
// well as a no-ammo->dryfire idle state.
|
||||
|
||||
useRemainderDT = true;
|
||||
|
||||
// Initial start up state
|
||||
stateName[0] = "Preactivate";
|
||||
stateIgnoreLoadedForReady[0] = false;
|
||||
stateTransitionOnLoaded[0] = "Activate";
|
||||
stateTransitionOnNotLoaded[0] = "WaitingDeployment"; // If the turret weapon is not loaded then it has not yet been deployed
|
||||
stateTransitionOnNoAmmo[0] = "NoAmmo";
|
||||
|
||||
// Activating the gun. Called when the weapon is first
|
||||
// mounted and there is ammo.
|
||||
stateName[1] = "Activate";
|
||||
stateTransitionGeneric0In[1] = "Destroyed";
|
||||
stateTransitionOnTimeout[1] = "Ready";
|
||||
stateTimeoutValue[1] = 0.5;
|
||||
stateSequence[1] = "Activate";
|
||||
|
||||
// Ready to fire, just waiting for the trigger
|
||||
stateName[2] = "Ready";
|
||||
stateTransitionGeneric0In[2] = "Destroyed";
|
||||
stateTransitionOnNoAmmo[2] = "NoAmmo";
|
||||
stateTransitionOnTriggerDown[2] = "Fire";
|
||||
stateSequence[2] = "scan";
|
||||
|
||||
// Fire the weapon. Calls the fire script which does
|
||||
// the actual work.
|
||||
stateName[3] = "Fire";
|
||||
stateTransitionGeneric0In[3] = "Destroyed";
|
||||
stateTransitionOnTimeout[3] = "Reload";
|
||||
stateTimeoutValue[3] = 0.2;
|
||||
stateFire[3] = true;
|
||||
stateRecoil[3] = "LightRecoil";
|
||||
stateAllowImageChange[3] = false;
|
||||
stateSequence[3] = "fire";
|
||||
stateSequenceRandomFlash[3] = true; // use muzzle flash sequence
|
||||
stateScript[3] = "onFire";
|
||||
stateSound[3] = TurretFireSound;
|
||||
stateEmitter[3] = GunFireSmokeEmitter;
|
||||
stateEmitterTime[3] = 0.025;
|
||||
stateEjectShell[3] = true;
|
||||
|
||||
// Play the reload animation, and transition into
|
||||
stateName[4] = "Reload";
|
||||
stateTransitionGeneric0In[4] = "Destroyed";
|
||||
stateTransitionOnNoAmmo[4] = "NoAmmo";
|
||||
stateTransitionOnTimeout[4] = "Ready";
|
||||
stateWaitForTimeout[4] = "0";
|
||||
stateTimeoutValue[4] = 0.0;
|
||||
stateAllowImageChange[4] = false;
|
||||
stateSequence[4] = "Reload";
|
||||
|
||||
// No ammo in the weapon, just idle until something
|
||||
// shows up. Play the dry fire sound if the trigger is
|
||||
// pulled.
|
||||
stateName[5] = "NoAmmo";
|
||||
stateTransitionGeneric0In[5] = "Destroyed";
|
||||
stateTransitionOnAmmo[5] = "Reload";
|
||||
stateSequence[5] = "NoAmmo";
|
||||
stateTransitionOnTriggerDown[5] = "DryFire";
|
||||
|
||||
// No ammo dry fire
|
||||
stateName[6] = "DryFire";
|
||||
stateTransitionGeneric0In[6] = "Destroyed";
|
||||
stateTimeoutValue[6] = 1.0;
|
||||
stateTransitionOnTimeout[6] = "NoAmmo";
|
||||
stateScript[6] = "onDryFire";
|
||||
|
||||
// Waiting for the turret to be deployed
|
||||
stateName[7] = "WaitingDeployment";
|
||||
stateTransitionGeneric0In[7] = "Destroyed";
|
||||
stateTransitionOnLoaded[7] = "Deployed";
|
||||
stateSequence[7] = "wait_deploy";
|
||||
|
||||
// Turret has been deployed
|
||||
stateName[8] = "Deployed";
|
||||
stateTransitionGeneric0In[8] = "Destroyed";
|
||||
stateTransitionOnTimeout[8] = "Ready";
|
||||
stateWaitForTimeout[8] = true;
|
||||
stateTimeoutValue[8] = 2.5; // Same length as turret base's Deploy state
|
||||
stateSequence[8] = "deploy";
|
||||
|
||||
// Turret has been destroyed
|
||||
stateName[9] = "Destroyed";
|
||||
stateSequence[9] = "destroyed";
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// AI Turret
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
datablock AITurretShapeData(AITurret)
|
||||
{
|
||||
category = "Turrets";
|
||||
shapeFile = "art/shapes/weapons/Turret/Turret_Legs.DAE";
|
||||
|
||||
maxDamage = 70;
|
||||
destroyedLevel = 70;
|
||||
explosion = GrenadeExplosion;
|
||||
|
||||
simpleServerCollision = false;
|
||||
|
||||
zRotOnly = false;
|
||||
|
||||
// Rotation settings
|
||||
minPitch = 15;
|
||||
maxPitch = 80;
|
||||
maxHeading = 90;
|
||||
headingRate = 50;
|
||||
pitchRate = 50;
|
||||
|
||||
// Scan settings
|
||||
maxScanPitch = 10;
|
||||
maxScanHeading = 30;
|
||||
maxScanDistance = 20;
|
||||
trackLostTargetTime = 2;
|
||||
|
||||
maxWeaponRange = 30;
|
||||
|
||||
weaponLeadVelocity = 0;
|
||||
|
||||
// Weapon mounting
|
||||
numWeaponMountPoints = 1;
|
||||
|
||||
weapon[0] = AITurretHead;
|
||||
weaponAmmo[0] = AITurretAmmo;
|
||||
weaponAmmoAmount[0] = 10000;
|
||||
|
||||
maxInv[AITurretHead] = 1;
|
||||
maxInv[AITurretAmmo] = 10000;
|
||||
|
||||
// Initial start up state
|
||||
stateName[0] = "Preactivate";
|
||||
stateTransitionOnAtRest[0] = "Scanning";
|
||||
stateTransitionOnNotAtRest[0] = "Thrown";
|
||||
|
||||
// Scan for targets
|
||||
stateName[1] = "Scanning";
|
||||
stateScan[1] = true;
|
||||
stateTransitionOnTarget[1] = "Target";
|
||||
stateSequence[1] = "scan";
|
||||
stateScript[1] = "OnScanning";
|
||||
|
||||
// Have a target
|
||||
stateName[2] = "Target";
|
||||
stateTransitionOnNoTarget[2] = "NoTarget";
|
||||
stateTransitionOnTimeout[2] = "Firing";
|
||||
stateTimeoutValue[2] = 2.0;
|
||||
stateScript[2] = "OnTarget";
|
||||
|
||||
// Fire at target
|
||||
stateName[3] = "Firing";
|
||||
stateFire[3] = true;
|
||||
stateTransitionOnNoTarget[3] = "NoTarget";
|
||||
stateScript[3] = "OnFiring";
|
||||
|
||||
// Lost target
|
||||
stateName[4] = "NoTarget";
|
||||
stateTransitionOnTimeout[4] = "Scanning";
|
||||
stateTimeoutValue[4] = 2.0;
|
||||
stateScript[4] = "OnNoTarget";
|
||||
|
||||
// Player thrown turret
|
||||
stateName[5] = "Thrown";
|
||||
stateTransitionOnAtRest[5] = "Deploy";
|
||||
stateSequence[5] = "throw";
|
||||
stateScript[5] = "OnThrown";
|
||||
|
||||
// Player thrown turret is deploying
|
||||
stateName[6] = "Deploy";
|
||||
stateTransitionOnTimeout[6] = "Scanning";
|
||||
stateTimeoutValue[6] = 2.5;
|
||||
stateSequence[6] = "deploy";
|
||||
stateScaleAnimation[6] = true;
|
||||
stateScript[6] = "OnDeploy";
|
||||
|
||||
// Special state that is set when the turret is destroyed.
|
||||
// This state is set in the onDestroyed() callback.
|
||||
stateName[7] = "Destroyed";
|
||||
stateSequence[7] = "destroyed";
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Deployable AI Turret
|
||||
//-----------------------------------------------------------------------------
|
||||
datablock AITurretShapeData(DeployableTurret : AITurret)
|
||||
{
|
||||
// Mission editor category
|
||||
category = "Weapon";
|
||||
|
||||
className = "DeployableTurretWeapon";
|
||||
|
||||
startLoaded = false;
|
||||
|
||||
// Basic Item properties
|
||||
mass = 1.5;
|
||||
elasticity = 0.1;
|
||||
friction = 0.6;
|
||||
simpleServerCollision = false;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
PreviewImage = 'turret.png';
|
||||
pickUpName = "a deployable turret";
|
||||
description = "Deployable Turret";
|
||||
image = DeployableTurretImage;
|
||||
reticle = "blank";
|
||||
zoomReticle = 'blank';
|
||||
};
|
||||
|
||||
datablock ShapeBaseImageData(DeployableTurretImage)
|
||||
{
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/Turret/TP_Turret.DAE";
|
||||
shapeFileFP = "art/shapes/weapons/Turret/FP_Turret.DAE";
|
||||
emap = true;
|
||||
|
||||
imageAnimPrefix = "Turret";
|
||||
imageAnimPrefixFP = "Turret";
|
||||
|
||||
// Specify mount point & offset for 3rd person, and eye offset
|
||||
// for first person rendering.
|
||||
mountPoint = 0;
|
||||
firstPerson = true;
|
||||
useEyeNode = true;
|
||||
|
||||
// Don't allow a player to sprint with a turret
|
||||
sprintDisallowed = true;
|
||||
|
||||
class = "DeployableTurretWeaponImage";
|
||||
className = "DeployableTurretWeaponImage";
|
||||
|
||||
// Projectiles and Ammo.
|
||||
item = DeployableTurret;
|
||||
|
||||
// Shake camera while firing.
|
||||
shakeCamera = false;
|
||||
camShakeFreq = "0 0 0";
|
||||
camShakeAmp = "0 0 0";
|
||||
|
||||
// Images have a state system which controls how the animations
|
||||
// are run, which sounds are played, script callbacks, etc. This
|
||||
// state system is downloaded to the client so that clients can
|
||||
// predict state changes and animate accordingly. The following
|
||||
// system supports basic ready->fire->reload transitions as
|
||||
// well as a no-ammo->dryfire idle state.
|
||||
|
||||
// Initial start up state
|
||||
stateName[0] = "Preactivate";
|
||||
stateTransitionOnLoaded[0] = "Activate";
|
||||
stateTransitionOnNoAmmo[0] = "Activate";
|
||||
|
||||
// Activating the gun. Called when the weapon is first
|
||||
// mounted and there is ammo.
|
||||
stateName[1] = "Activate";
|
||||
stateTransitionGeneric0In[1] = "SprintEnter";
|
||||
stateTransitionOnTimeout[1] = "Ready";
|
||||
stateTimeoutValue[1] = 0.66;
|
||||
stateSequence[1] = "switch_in";
|
||||
stateSound[1] = TurretSwitchinSound;
|
||||
|
||||
// Ready to fire, just waiting for the trigger
|
||||
stateName[2] = "Ready";
|
||||
stateTransitionGeneric0In[2] = "SprintEnter";
|
||||
stateTransitionOnMotion[2] = "ReadyMotion";
|
||||
stateTransitionOnTriggerDown[2] = "Fire";
|
||||
stateScaleAnimation[2] = false;
|
||||
stateScaleAnimationFP[2] = false;
|
||||
stateSequence[2] = "idle";
|
||||
|
||||
// Ready to fire with player moving
|
||||
stateName[3] = "ReadyMotion";
|
||||
stateTransitionGeneric0In[3] = "SprintEnter";
|
||||
stateTransitionOnNoMotion[3] = "Ready";
|
||||
stateScaleAnimation[3] = false;
|
||||
stateScaleAnimationFP[3] = false;
|
||||
stateSequenceTransitionIn[3] = true;
|
||||
stateSequenceTransitionOut[3] = true;
|
||||
stateTransitionOnTriggerDown[3] = "Fire";
|
||||
stateSequence[3] = "run";
|
||||
|
||||
// Wind up to throw the Turret
|
||||
stateName[4] = "Fire";
|
||||
stateTransitionGeneric0In[4] = "SprintEnter";
|
||||
stateTransitionOnTimeout[4] = "Fire2";
|
||||
stateTimeoutValue[4] = 0.66;
|
||||
stateFire[4] = true;
|
||||
stateRecoil[4] = "";
|
||||
stateAllowImageChange[4] = false;
|
||||
stateSequence[4] = "Fire";
|
||||
stateSequenceNeverTransition[4] = true;
|
||||
stateShapeSequence[4] = "Recoil";
|
||||
|
||||
// Throw the actual Turret
|
||||
stateName[5] = "Fire2";
|
||||
stateTransitionGeneric0In[5] = "SprintEnter";
|
||||
stateTransitionOnTriggerUp[5] = "Reload";
|
||||
stateTimeoutValue[5] = 0.1;
|
||||
stateAllowImageChange[5] = false;
|
||||
stateScript[5] = "onFire";
|
||||
stateShapeSequence[5] = "Fire_Release";
|
||||
|
||||
// Play the reload animation, and transition into
|
||||
stateName[6] = "Reload";
|
||||
stateTransitionGeneric0In[6] = "SprintEnter";
|
||||
stateTransitionOnTimeout[6] = "Ready";
|
||||
stateWaitForTimeout[6] = true;
|
||||
stateTimeoutValue[6] = 0.66;
|
||||
stateSequence[6] = "switch_in";
|
||||
|
||||
// Start Sprinting
|
||||
stateName[7] = "SprintEnter";
|
||||
stateTransitionGeneric0Out[7] = "SprintExit";
|
||||
stateTransitionOnTimeout[7] = "Sprinting";
|
||||
stateWaitForTimeout[7] = false;
|
||||
stateTimeoutValue[7] = 0.25;
|
||||
stateWaitForTimeout[7] = false;
|
||||
stateScaleAnimation[7] = true;
|
||||
stateScaleAnimationFP[7] = true;
|
||||
stateSequenceTransitionIn[7] = true;
|
||||
stateSequenceTransitionOut[7] = true;
|
||||
stateAllowImageChange[7] = false;
|
||||
stateSequence[7] = "sprint";
|
||||
|
||||
// Sprinting
|
||||
stateName[8] = "Sprinting";
|
||||
stateTransitionGeneric0Out[8] = "SprintExit";
|
||||
stateWaitForTimeout[8] = false;
|
||||
stateScaleAnimation[8] = false;
|
||||
stateScaleAnimationFP[8] = false;
|
||||
stateSequenceTransitionIn[8] = true;
|
||||
stateSequenceTransitionOut[8] = true;
|
||||
stateAllowImageChange[8] = false;
|
||||
stateSequence[8] = "sprint";
|
||||
|
||||
// Stop Sprinting
|
||||
stateName[9] = "SprintExit";
|
||||
stateTransitionGeneric0In[9] = "SprintEnter";
|
||||
stateTransitionOnTimeout[9] = "Ready";
|
||||
stateWaitForTimeout[9] = false;
|
||||
stateTimeoutValue[9] = 0.5;
|
||||
stateSequenceTransitionIn[9] = true;
|
||||
stateSequenceTransitionOut[9] = true;
|
||||
stateAllowImageChange[9] = false;
|
||||
stateSequence[9] = "sprint";
|
||||
};
|
||||
363
Templates/Full PhysX/game/art/datablocks/weapons/grenade.cs
Normal file
|
|
@ -0,0 +1,363 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
$GrenadeUpVectorOffset = "0 0 1";
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Sounds
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
datablock SFXProfile(GrenadeExplosionSound)
|
||||
{
|
||||
filename = "art/sound/CT_fx/weapons/GRENADELAND.wav";
|
||||
description = AudioDefault3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Debris
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
datablock ParticleData(GrenadeDebrisFireParticle)
|
||||
{
|
||||
textureName = "art/shapes/particles/impact";
|
||||
dragCoeffiecient = 0;
|
||||
gravityCoefficient = -1.00366;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 300;
|
||||
lifetimeVarianceMS = 100;
|
||||
useInvAlpha = false;
|
||||
spinSpeed = 1;
|
||||
spinRandomMin = -280.0;
|
||||
spinRandomMax = 280.0;
|
||||
colors[0] = "1 0.590551 0.188976 0.0944882";
|
||||
colors[1] = "0.677165 0.590551 0.511811 0.496063";
|
||||
colors[2] = "0.645669 0.645669 0.645669 0";
|
||||
sizes[0] = 0.2;
|
||||
sizes[1] = 0.5;
|
||||
sizes[2] = 0.2;
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.494118;
|
||||
times[2] = 1.0;
|
||||
animTexName = "art/shapes/particles/impact";
|
||||
colors[3] = "1 1 1 0.407";
|
||||
sizes[3] = "0.5";
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeDebrisFireEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 10;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 0;
|
||||
velocityVariance = 0;
|
||||
thetaMin = 0.0;
|
||||
thetaMax = 25;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
ejectionoffset = 0.3;
|
||||
particles = "GrenadeDebrisFireParticle";
|
||||
orientParticles = "1";
|
||||
blendStyle = "NORMAL";
|
||||
};
|
||||
|
||||
datablock DebrisData(GrenadeDebris)
|
||||
{
|
||||
shapeFile = "art/shapes/weapons/Grenade/grenadeDebris.dae";
|
||||
emitters[0] = GrenadeDebrisFireEmitter;
|
||||
elasticity = 0.4;
|
||||
friction = 0.25;
|
||||
numBounces = 3;
|
||||
bounceVariance = 1;
|
||||
explodeOnMaxBounce = false;
|
||||
staticOnMaxBounce = false;
|
||||
snapOnMaxBounce = false;
|
||||
minSpinSpeed = 200;
|
||||
maxSpinSpeed = 600;
|
||||
render2D = false;
|
||||
lifetime = 4;
|
||||
lifetimeVariance = 1.5;
|
||||
velocity = 15;
|
||||
velocityVariance = 5;
|
||||
fade = true;
|
||||
useRadiusMass = true;
|
||||
baseRadius = 0.3;
|
||||
gravModifier = 1.0;
|
||||
terminalVelocity = 20;
|
||||
ignoreWater = false;
|
||||
};
|
||||
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Explosion Particle effects
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock ParticleData(GrenadeExpFire)
|
||||
{
|
||||
textureName = "art/shapes/particles/fireball.png";
|
||||
dragCoeffiecient = 0;
|
||||
windCoeffiecient = 0.5;
|
||||
gravityCoefficient = -1;
|
||||
inheritedVelFactor = 0;
|
||||
constantAcceleration = 0;
|
||||
lifetimeMS = 1200;//3000;
|
||||
lifetimeVarianceMS = 100;//200;
|
||||
useInvAlpha = false;
|
||||
spinRandomMin = 0;
|
||||
spinRandomMax = 1;
|
||||
spinSpeed = 1;
|
||||
colors[0] = "0.886275 0.854902 0.733333 0.795276";
|
||||
colors[1] = "0.356863 0.34902 0.321569 0.266";
|
||||
colors[2] = "0.0235294 0.0235294 0.0235294 0.207";
|
||||
sizes[0] = 1;//2;
|
||||
sizes[1] = 5;
|
||||
sizes[2] = 7;//0.5;
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.25;
|
||||
times[2] = 0.5;
|
||||
animTexName = "art/shapes/particles/fireball.png";
|
||||
times[3] = "1";
|
||||
dragCoefficient = "1.99902";
|
||||
sizes[3] = "10";
|
||||
colors[3] = "0 0 0 0";
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeExpFireEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 10;
|
||||
periodVarianceMS = 5;//0;
|
||||
ejectionVelocity = 1;//1.0;
|
||||
velocityVariance = 0;//0.5;
|
||||
thetaMin = 0.0;
|
||||
thetaMax = 45;
|
||||
lifetimeMS = 250;
|
||||
particles = "GrenadeExpFire";
|
||||
blendStyle = "ADDITIVE";
|
||||
};
|
||||
|
||||
datablock ParticleData(GrenadeExpDust)
|
||||
{
|
||||
textureName = "art/shapes/particles/smoke.png";
|
||||
dragCoefficient = 0.498534;
|
||||
gravityCoefficient = 0;
|
||||
inheritedVelFactor = 1;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 2000;
|
||||
lifetimeVarianceMS = 250;
|
||||
useInvAlpha = 0;
|
||||
spinSpeed = 1;
|
||||
spinRandomMin = -90.0;
|
||||
spinRandomMax = 90.0;
|
||||
colors[0] = "0.992126 0.992126 0.992126 0.96063";
|
||||
colors[1] = "0.11811 0.11811 0.11811 0.929134";
|
||||
colors[2] = "0.00392157 0.00392157 0.00392157 0.362205";
|
||||
sizes[0] = 1.59922;
|
||||
sizes[1] = 4.99603;
|
||||
sizes[2] = 9.99817;
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.494118;
|
||||
times[2] = 1.0;
|
||||
animTexName = "art/shapes/particles/smoke.png";
|
||||
colors[3] = "0.996078 0.996078 0.996078 0";
|
||||
sizes[3] = "15";
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeExpDustEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 5;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 8;
|
||||
velocityVariance = 0.0;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 85;
|
||||
thetaMax = 85;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvances = 0;
|
||||
lifetimeMS = 2000;
|
||||
particles = "GrenadeExpDust";
|
||||
blendStyle = "NORMAL";
|
||||
};
|
||||
|
||||
datablock ParticleData(GrenadeExpSpark)
|
||||
{
|
||||
textureName = "art/shapes/particles/Sparkparticle";
|
||||
dragCoefficient = 1;
|
||||
gravityCoefficient = 0.0;
|
||||
inheritedVelFactor = 0.2;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 500;
|
||||
lifetimeVarianceMS = 250;
|
||||
colors[0] = "0.6 0.4 0.3 1";
|
||||
colors[1] = "0.6 0.4 0.3 1";
|
||||
colors[2] = "1.0 0.4 0.3 0";
|
||||
sizes[0] = 0.5;
|
||||
sizes[1] = 0.75;
|
||||
sizes[2] = 1;
|
||||
times[0] = 0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeExpSparkEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 2;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 20;
|
||||
velocityVariance = 10;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 0;
|
||||
thetaMax = 120;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvances = false;
|
||||
orientParticles = true;
|
||||
lifetimeMS = 100;
|
||||
particles = "GrenadeExpSpark";
|
||||
};
|
||||
|
||||
datablock ParticleData(GrenadeExpSparks)
|
||||
{
|
||||
textureName = "art/shapes/particles/droplet";
|
||||
dragCoefficient = 1;
|
||||
gravityCoefficient = 0.0;
|
||||
inheritedVelFactor = 0.2;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 500;
|
||||
lifetimeVarianceMS = 350;
|
||||
|
||||
colors[0] = "0.6 0.4 0.3 1.0";
|
||||
colors[1] = "0.6 0.4 0.3 0.6";
|
||||
colors[2] = "1.0 0.4 0.3 0.0";
|
||||
|
||||
sizes[0] = 0.5;
|
||||
sizes[1] = 0.5;
|
||||
sizes[2] = 0.75;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeExpSparksEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 2;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 12;
|
||||
velocityVariance = 6.75;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 0;
|
||||
thetaMax = 60;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvances = false;
|
||||
orientParticles = true;
|
||||
lifetimeMS = 100;
|
||||
particles = "GrenadeExpSparks";
|
||||
};
|
||||
|
||||
datablock ParticleData(GrenadeExpSmoke)
|
||||
{
|
||||
textureName = "art/shapes/particles/smoke";
|
||||
dragCoeffiecient = 0;
|
||||
gravityCoefficient = -0.40293;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 800;
|
||||
lifetimeVarianceMS = 299;
|
||||
useInvAlpha = true;
|
||||
spinSpeed = 1;
|
||||
spinRandomMin = -80.0;
|
||||
spinRandomMax = 0;
|
||||
colors[0] = "0.8 0.8 0.8 0.4";
|
||||
colors[1] = "0.5 0.5 0.5 0.5";
|
||||
colors[2] = "0.75 0.75 0.75 0";
|
||||
sizes[0] = 4.49857;
|
||||
sizes[1] = 7.49863;
|
||||
sizes[2] = 11.2495;
|
||||
times[0] = 0;
|
||||
times[1] = 0.498039;
|
||||
times[2] = 1;
|
||||
animTexName = "art/shapes/particles/smoke";
|
||||
times[3] = "1";
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeExpSmokeEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 15;
|
||||
periodVarianceMS = 5;
|
||||
ejectionVelocity = 2.4;
|
||||
velocityVariance = 1.2;
|
||||
thetaMin = 0.0;
|
||||
thetaMax = 180.0;
|
||||
ejectionOffset = 1;
|
||||
particles = "GrenadeExpSmoke";
|
||||
blendStyle = "NORMAL";
|
||||
};
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Dry/Air Explosion Objects
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock ExplosionData(GrenadeExplosion)
|
||||
{
|
||||
soundProfile = GrenadeExplosionSound;
|
||||
lifeTimeMS = 400; // Quick flash, short burn, and moderate dispersal
|
||||
|
||||
// Volume particles
|
||||
particleEmitter = GrenadeExpFireEmitter;
|
||||
particleDensity = 75;
|
||||
particleRadius = 2.25;
|
||||
|
||||
// Point emission
|
||||
emitter[0] = GrenadeExpDustEmitter;
|
||||
emitter[1] = GrenadeExpSparksEmitter;
|
||||
emitter[2] = GrenadeExpSmokeEmitter;
|
||||
|
||||
// Camera Shaking
|
||||
shakeCamera = true;
|
||||
camShakeFreq = "10.0 11.0 9.0";
|
||||
camShakeAmp = "15.0 15.0 15.0";
|
||||
camShakeDuration = 1.5;
|
||||
camShakeRadius = 20;
|
||||
|
||||
// Exploding debris
|
||||
debris = GrenadeDebris;
|
||||
debrisThetaMin = 10;
|
||||
debrisThetaMax = 60;
|
||||
debrisNum = 4;
|
||||
debrisNumVariance = 2;
|
||||
debrisVelocity = 25;
|
||||
debrisVelocityVariance = 5;
|
||||
|
||||
lightStartRadius = 4.0;
|
||||
lightEndRadius = 0.0;
|
||||
lightStartColor = "1.0 1.0 1.0";
|
||||
lightEndColor = "1.0 1.0 1.0";
|
||||
lightStartBrightness = 4.0;
|
||||
lightEndBrightness = 0.0;
|
||||
lightNormalOffset = 2.0;
|
||||
};
|
||||
|
|
@ -0,0 +1,952 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// GrenadeLauncher weapon.
|
||||
// This script file contains all of the necessary datablocks needed for the
|
||||
// GrenadeLauncher. These datablocks include sound profiles, light descriptions,
|
||||
// particle effects, explosions, projectiles, items (weapon and ammo), shell
|
||||
// casings (if any), and finally the weapon image which contains the state
|
||||
// machine that determines how the weapon operates.
|
||||
|
||||
// The various "fire" methods/modes are handled in weapons.cs through a "weapon"
|
||||
// namespace function. This reduces duplicated code, although a unique fire
|
||||
// method could still be implemented for this weapon.
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Sound profiles
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock SFXProfile(GrenadeLauncherReloadSound)
|
||||
{
|
||||
filename = "art/sound/weapons/Crossbow_reload";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(GrenadeLauncherFireSound)
|
||||
{
|
||||
filename = "art/sound/weapons/relbow_mono_01";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(GrenadeLauncherFireEmptySound)
|
||||
{
|
||||
filename = "art/sound/weapons/Crossbow_firing_empty";
|
||||
description = AudioClose3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
datablock SFXProfile(GrenadeLauncherExplosionSound)
|
||||
{
|
||||
filename = "art/sound/weapons/Crossbow_explosion";
|
||||
description = AudioDefault3d;
|
||||
preload = true;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Lights for the projectile(s)
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock LightDescription(GrenadeLauncherLightDesc)
|
||||
{
|
||||
range = 1.0;
|
||||
color = "1 1 1";
|
||||
brightness = 2.0;
|
||||
animationType = PulseLightAnim;
|
||||
animationPeriod = 0.25;
|
||||
//flareType = SimpleLightFlare0;
|
||||
};
|
||||
|
||||
datablock LightDescription(GrenadeLauncherWaterLightDesc)
|
||||
{
|
||||
radius = 2.0;
|
||||
color = "1 1 1";
|
||||
brightness = 2.0;
|
||||
animationType = PulseLightAnim;
|
||||
animationPeriod = 0.25;
|
||||
//flareType = SimpleLightFlare0;
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Debris
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
datablock ParticleData(GrenadeDebrisFireParticle)
|
||||
{
|
||||
textureName = "art/shapes/particles/impact";
|
||||
dragCoeffiecient = 0.0;
|
||||
gravityCoefficient = -1;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 300;
|
||||
lifetimeVarianceMS = 100;
|
||||
useInvAlpha = false;
|
||||
spinSpeed = 1;
|
||||
spinRandomMin = -280.0;
|
||||
spinRandomMax = 280.0;
|
||||
colors[0] = "1.0 0.6 0.2 0.1";
|
||||
colors[1] = "1.0 0.5 0 0.5";
|
||||
colors[2] = "0.1 0.1 0.1 0.0";
|
||||
sizes[0] = 1.0;
|
||||
sizes[1] = 2.0;
|
||||
sizes[2] = 1.0;
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeDebrisFireEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 8;
|
||||
periodVarianceMS = 4;
|
||||
ejectionVelocity = 5.0;
|
||||
velocityVariance = 3.0;
|
||||
thetaMin = 0.0;
|
||||
thetaMax = 180.0;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
ejectionoffset = 0.3;
|
||||
particles = "GrenadeDebrisFireParticle";
|
||||
};
|
||||
|
||||
datablock DebrisData(GrenadeDebris)
|
||||
{
|
||||
shapeFile = "art/shapes/weapons/GrenadeLauncher/debris.dts";
|
||||
emitters[0] = GrenadeDebrisFireEmitter;
|
||||
elasticity = 0.4;
|
||||
friction = 0.25;
|
||||
numBounces = 3;
|
||||
bounceVariance = 1;
|
||||
explodeOnMaxBounce = false;
|
||||
staticOnMaxBounce = false;
|
||||
snapOnMaxBounce = false;
|
||||
minSpinSpeed = 200;
|
||||
maxSpinSpeed = 600;
|
||||
render2D = false;
|
||||
lifetime = 4;
|
||||
lifetimeVariance = 1.5;
|
||||
velocity = 15;
|
||||
velocityVariance = 5;
|
||||
fade = true;
|
||||
useRadiusMass = true;
|
||||
baseRadius = 0.3;
|
||||
gravModifier = 1.0;
|
||||
terminalVelocity = 20;
|
||||
ignoreWater = false;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Splash effects
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock ParticleData(GrenadeSplashMist)
|
||||
{
|
||||
dragCoefficient = 1.0;
|
||||
windCoefficient = 2.0;
|
||||
gravityCoefficient = 0.3;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 600;
|
||||
lifetimeVarianceMS = 100;
|
||||
useInvAlpha = false;
|
||||
spinRandomMin = -90.0;
|
||||
spinRandomMax = 500.0;
|
||||
spinSpeed = 1;
|
||||
|
||||
textureName = "art/shapes/particles/smoke";
|
||||
|
||||
colors[0] = "0.7 0.8 1.0 1.0";
|
||||
colors[1] = "0.7 0.8 1.0 0.5";
|
||||
colors[2] = "0.7 0.8 1.0 0.0";
|
||||
|
||||
sizes[0] = 0.2;
|
||||
sizes[1] = 0.4;
|
||||
sizes[2] = 0.8;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeSplashMistEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 5;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 3.0;
|
||||
velocityVariance = 2.0;
|
||||
ejectionOffset = 0.15;
|
||||
thetaMin = 85;
|
||||
thetaMax = 85;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvance = false;
|
||||
lifetimeMS = 250;
|
||||
particles = "GrenadeSplashMist";
|
||||
};
|
||||
|
||||
datablock ParticleData(GrenadeSplashParticle)
|
||||
{
|
||||
dragCoefficient = 1;
|
||||
windCoefficient = 0.9;
|
||||
gravityCoefficient = 0.3;
|
||||
inheritedVelFactor = 0.2;
|
||||
constantAcceleration = -1.4;
|
||||
lifetimeMS = 600;
|
||||
lifetimeVarianceMS = 200;
|
||||
textureName = "art/shapes/particles/droplet";
|
||||
|
||||
colors[0] = "0.7 0.8 1.0 1.0";
|
||||
colors[1] = "0.7 0.8 1.0 0.5";
|
||||
colors[2] = "0.7 0.8 1.0 0.0";
|
||||
|
||||
sizes[0] = 0.5;
|
||||
sizes[1] = 0.25;
|
||||
sizes[2] = 0.25;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeSplashEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 4;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 7.3;
|
||||
velocityVariance = 2.0;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 30;
|
||||
thetaMax = 80;
|
||||
phiReferenceVel = 00;
|
||||
phiVariance = 360;
|
||||
overrideAdvance = false;
|
||||
orientParticles = true;
|
||||
orientOnVelocity = true;
|
||||
lifetimeMS = 100;
|
||||
particles = "GrenadeSplashParticle";
|
||||
};
|
||||
|
||||
datablock ParticleData(GrenadeSplashRingParticle)
|
||||
{
|
||||
textureName = "art/shapes/particles/wake";
|
||||
dragCoefficient = 0.0;
|
||||
gravityCoefficient = 0.0;
|
||||
inheritedVelFactor = 0.0;
|
||||
lifetimeMS = 2500;
|
||||
lifetimeVarianceMS = 200;
|
||||
windCoefficient = 0.0;
|
||||
useInvAlpha = 1;
|
||||
spinRandomMin = 30.0;
|
||||
spinRandomMax = 30.0;
|
||||
spinSpeed = 1;
|
||||
|
||||
animateTexture = true;
|
||||
framesPerSec = 1;
|
||||
animTexTiling = "2 1";
|
||||
animTexFrames = "0 1";
|
||||
|
||||
colors[0] = "0.7 0.8 1.0 1.0";
|
||||
colors[1] = "0.7 0.8 1.0 0.5";
|
||||
colors[2] = "0.7 0.8 1.0 0.0";
|
||||
|
||||
sizes[0] = 2.0;
|
||||
sizes[1] = 4.0;
|
||||
sizes[2] = 8.0;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeSplashRingEmitter)
|
||||
{
|
||||
lifetimeMS = "100";
|
||||
ejectionPeriodMS = 200;
|
||||
periodVarianceMS = 10;
|
||||
ejectionVelocity = 0;
|
||||
velocityVariance = 0;
|
||||
ejectionOffset = 0;
|
||||
thetaMin = 89;
|
||||
thetaMax = 90;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 1;
|
||||
alignParticles = 1;
|
||||
alignDirection = "0 0 1";
|
||||
particles = "GrenadeSplashRingParticle";
|
||||
};
|
||||
|
||||
datablock SplashData(GrenadeSplash)
|
||||
{
|
||||
// numSegments = 15;
|
||||
// ejectionFreq = 15;
|
||||
// ejectionAngle = 40;
|
||||
// ringLifetime = 0.5;
|
||||
// lifetimeMS = 300;
|
||||
// velocity = 4.0;
|
||||
// startRadius = 0.0;
|
||||
// acceleration = -3.0;
|
||||
// texWrap = 5.0;
|
||||
// texture = "art/shapes/particles/splash";
|
||||
|
||||
emitter[0] = GrenadeSplashEmitter;
|
||||
emitter[1] = GrenadeSplashMistEmitter;
|
||||
emitter[2] = GrenadeSplashRingEmitter;
|
||||
|
||||
// colors[0] = "0.7 0.8 1.0 0.0";
|
||||
// colors[1] = "0.7 0.8 1.0 0.3";
|
||||
// colors[2] = "0.7 0.8 1.0 0.7";
|
||||
// colors[3] = "0.7 0.8 1.0 0.0";
|
||||
//
|
||||
// times[0] = 0.0;
|
||||
// times[1] = 0.4;
|
||||
// times[2] = 0.8;
|
||||
// times[3] = 1.0;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Explosion Particle effects
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock ParticleData(GrenadeExpFire)
|
||||
{
|
||||
textureName = "art/shapes/particles/fireball";
|
||||
dragCoeffiecient = 0;
|
||||
windCoeffiecient = 0.5;
|
||||
gravityCoefficient = -0.300366;
|
||||
inheritedVelFactor = 0.299413;
|
||||
constantAcceleration = 0.2;
|
||||
lifetimeMS = 2000;//3000;
|
||||
lifetimeVarianceMS = 299;//200;
|
||||
useInvAlpha = false;
|
||||
spinRandomMin = -80.0;
|
||||
spinRandomMax = 0;
|
||||
spinSpeed = 1;
|
||||
colors[0] = "0.795276 0.393701 0 0.795276";
|
||||
colors[1] = "0.19685 0.0944882 0 0.393701";
|
||||
colors[2] = "0 0 0 0";
|
||||
sizes[0] = 0.75;//2;
|
||||
sizes[1] = 1.5;
|
||||
sizes[2] = 3;//0.5;
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.498039;
|
||||
times[2] = 1.0;
|
||||
animTexName = "art/shapes/particles/Fireball";
|
||||
times[3] = "1";
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeExpFireEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 10;
|
||||
periodVarianceMS = 5;//0;
|
||||
ejectionVelocity = 4;//1.0;
|
||||
velocityVariance = 1;//0.5;
|
||||
thetaMin = 0.0;
|
||||
thetaMax = 180.0;
|
||||
lifetimeMS = 250;
|
||||
particles = "GrenadeExpFire";
|
||||
};
|
||||
|
||||
datablock ParticleData(GrenadeExpDust)
|
||||
{
|
||||
textureName = "art/shapes/particles/smoke";
|
||||
dragCoefficient = 1.0;
|
||||
gravityCoefficient = -0.01;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 2500;
|
||||
lifetimeVarianceMS = 500;
|
||||
useInvAlpha = true;
|
||||
spinSpeed = 1;
|
||||
spinRandomMin = -90.0;
|
||||
spinRandomMax = 90.0;
|
||||
colors[0] = "0.6 0.6 0.6 0.3";
|
||||
colors[1] = "0.6 0.6 0.6 0.3";
|
||||
colors[2] = "0.6 0.6 0.6 0.0";
|
||||
sizes[0] = 1.6;
|
||||
sizes[1] = 2.0;
|
||||
sizes[2] = 2.4;
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.7;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeExpDustEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 1;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 15;
|
||||
velocityVariance = 0.0;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 85;
|
||||
thetaMax = 85;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvances = false;
|
||||
lifetimeMS = 200;
|
||||
particles = "GrenadeExpDust";
|
||||
};
|
||||
|
||||
datablock ParticleData(GrenadeExpSpark)
|
||||
{
|
||||
textureName = "art/shapes/particles/ricochet";
|
||||
dragCoefficient = 1;
|
||||
gravityCoefficient = 0.0;
|
||||
inheritedVelFactor = 0.2;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 500;
|
||||
lifetimeVarianceMS = 250;
|
||||
colors[0] = "0.6 0.4 0.3 1";
|
||||
colors[1] = "0.6 0.4 0.3 1";
|
||||
colors[2] = "1.0 0.4 0.3 0";
|
||||
sizes[0] = 0.5;
|
||||
sizes[1] = 0.75;
|
||||
sizes[2] = 1;
|
||||
times[0] = 0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeExpSparkEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 2;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 20;
|
||||
velocityVariance = 10;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 0;
|
||||
thetaMax = 120;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvances = false;
|
||||
orientParticles = true;
|
||||
lifetimeMS = 100;
|
||||
particles = "GrenadeExpSpark";
|
||||
};
|
||||
|
||||
datablock ParticleData(GrenadeExpSparks)
|
||||
{
|
||||
textureName = "art/shapes/particles/droplet";
|
||||
dragCoefficient = 1;
|
||||
gravityCoefficient = 0.0;
|
||||
inheritedVelFactor = 0.2;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 500;
|
||||
lifetimeVarianceMS = 350;
|
||||
|
||||
colors[0] = "0.6 0.4 0.3 1.0";
|
||||
colors[1] = "0.6 0.4 0.3 0.6";
|
||||
colors[2] = "1.0 0.4 0.3 0.0";
|
||||
|
||||
sizes[0] = 0.5;
|
||||
sizes[1] = 0.5;
|
||||
sizes[2] = 0.75;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeExpSparksEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 2;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 12;
|
||||
velocityVariance = 6.75;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 0;
|
||||
thetaMax = 60;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvances = false;
|
||||
orientParticles = true;
|
||||
lifetimeMS = 100;
|
||||
particles = "GrenadeExpSparks";
|
||||
};
|
||||
|
||||
datablock ParticleData(GrenadeExpSmoke)
|
||||
{
|
||||
textureName = "art/shapes/particles/smoke";
|
||||
dragCoeffiecient = 0;
|
||||
gravityCoefficient = -0.40293;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 800;
|
||||
lifetimeVarianceMS = 299;
|
||||
useInvAlpha = true;
|
||||
spinSpeed = 1;
|
||||
spinRandomMin = -80.0;
|
||||
spinRandomMax = 0;
|
||||
colors[0] = "0.8 0.8 0.8 0.4";
|
||||
colors[1] = "0.5 0.5 0.5 0.5";
|
||||
colors[2] = "0.75 0.75 0.75 0";
|
||||
sizes[0] = 4.49857;
|
||||
sizes[1] = 7.49863;
|
||||
sizes[2] = 11.2495;
|
||||
times[0] = 0;
|
||||
times[1] = 0.498039;
|
||||
times[2] = 1;
|
||||
animTexName = "art/shapes/particles/smoke";
|
||||
times[3] = "1";
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeExpSmokeEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 15;
|
||||
periodVarianceMS = 5;
|
||||
ejectionVelocity = 2.4;
|
||||
velocityVariance = 1.2;
|
||||
thetaMin = 0.0;
|
||||
thetaMax = 180.0;
|
||||
ejectionOffset = 1;
|
||||
particles = "GrenadeExpSmoke";
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Water Explosion
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock ParticleData(GLWaterExpDust)
|
||||
{
|
||||
textureName = "art/shapes/particles/steam";
|
||||
dragCoefficient = 1.0;
|
||||
gravityCoefficient = -0.01;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 2500;
|
||||
lifetimeVarianceMS = 250;
|
||||
useInvAlpha = false;
|
||||
spinSpeed = 1;
|
||||
spinRandomMin = -90.0;
|
||||
spinRandomMax = 500.0;
|
||||
colors[0] = "0.6 0.6 1.0 0.5";
|
||||
colors[1] = "0.6 0.6 1.0 0.3";
|
||||
|
||||
sizes[0] = 0.25;
|
||||
sizes[1] = 1.5;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GLWaterExpDustEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 1;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 10;
|
||||
velocityVariance = 0.0;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 85;
|
||||
thetaMax = 85;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvances = false;
|
||||
lifetimeMS = 75;
|
||||
particles = "GLWaterExpDust";
|
||||
};
|
||||
|
||||
datablock ParticleData(GLWaterExpSparks)
|
||||
{
|
||||
textureName = "art/shapes/particles/spark_wet";
|
||||
dragCoefficient = 1;
|
||||
gravityCoefficient = 0.0;
|
||||
inheritedVelFactor = 0.2;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 500;
|
||||
lifetimeVarianceMS = 250;
|
||||
|
||||
colors[0] = "0.6 0.6 1.0 1.0";
|
||||
colors[1] = "0.6 0.6 1.0 1.0";
|
||||
colors[2] = "0.6 0.6 1.0 0.0";
|
||||
|
||||
sizes[0] = 0.5;
|
||||
sizes[1] = 0.5;
|
||||
sizes[2] = 0.75;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GLWaterExpSparkEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 2;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 12;
|
||||
velocityVariance = 6.75;
|
||||
ejectionOffset = 0.0;
|
||||
thetaMin = 0;
|
||||
thetaMax = 60;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvances = false;
|
||||
orientParticles = true;
|
||||
lifetimeMS = 100;
|
||||
particles = "GLWaterExpSparks";
|
||||
};
|
||||
|
||||
datablock ParticleData(GLWaterExpSmoke)
|
||||
{
|
||||
textureName = "art/shapes/particles/smoke";
|
||||
dragCoeffiecient = 0.4;
|
||||
gravityCoefficient = -0.25;
|
||||
inheritedVelFactor = 0.025;
|
||||
constantAcceleration = -1.1;
|
||||
lifetimeMS = 1250;
|
||||
lifetimeVarianceMS = 0;
|
||||
useInvAlpha = false;
|
||||
spinSpeed = 1;
|
||||
spinRandomMin = -200.0;
|
||||
spinRandomMax = 200.0;
|
||||
|
||||
colors[0] = "0.1 0.1 1.0 1.0";
|
||||
colors[1] = "0.4 0.4 1.0 1.0";
|
||||
colors[2] = "0.4 0.4 1.0 0.0";
|
||||
|
||||
sizes[0] = 2.0;
|
||||
sizes[1] = 6.0;
|
||||
sizes[2] = 2.0;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GLWaterExpSmokeEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 15;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 6.25;
|
||||
velocityVariance = 0.25;
|
||||
thetaMin = 0.0;
|
||||
thetaMax = 90.0;
|
||||
lifetimeMS = 250;
|
||||
particles = "GLWaterExpSmoke";
|
||||
};
|
||||
|
||||
datablock ParticleData(GLWaterExpBubbles)
|
||||
{
|
||||
textureName = "art/shapes/particles/millsplash01";
|
||||
dragCoefficient = 0.0;
|
||||
gravityCoefficient = -0.05;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 1500;
|
||||
lifetimeVarianceMS = 250;
|
||||
useInvAlpha = false;
|
||||
|
||||
spinRandomMin = -100.0;
|
||||
spinRandomMax = 100.0;
|
||||
spinSpeed = 1;
|
||||
|
||||
colors[0] = "0.7 0.8 1.0 0.0";
|
||||
colors[1] = "0.7 0.8 1.0 0.4";
|
||||
colors[2] = "0.7 0.8 1.0 0.0";
|
||||
|
||||
sizes[0] = 0.2;
|
||||
sizes[1] = 0.4;
|
||||
sizes[2] = 0.8;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GLWaterExpBubbleEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 5;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 1.0;
|
||||
ejectionOffset = 3.0;
|
||||
velocityVariance = 0.5;
|
||||
thetaMin = 0;
|
||||
thetaMax = 80;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvances = false;
|
||||
particles = "GLWaterExpBubbles";
|
||||
};
|
||||
|
||||
datablock ExplosionData(GrenadeLauncherWaterExplosion)
|
||||
{
|
||||
//soundProfile = GLWaterExplosionSound;
|
||||
|
||||
emitter[0] = GLWaterExpDustEmitter;
|
||||
emitter[1] = GLWaterExpSparkEmitter;
|
||||
emitter[2] = GLWaterExpSmokeEmitter;
|
||||
emitter[3] = GLWaterExpBubbleEmitter;
|
||||
|
||||
shakeCamera = true;
|
||||
camShakeFreq = "10.0 11.0 9.0";
|
||||
camShakeAmp = "20.0 20.0 20.0";
|
||||
camShakeDuration = 1.5;
|
||||
camShakeRadius = 20.0;
|
||||
|
||||
lightStartRadius = 20.0;
|
||||
lightEndRadius = 0.0;
|
||||
lightStartColor = "0.9 0.9 0.8";
|
||||
lightEndColor = "0.6 0.6 1.0";
|
||||
lightStartBrightness = 2.0;
|
||||
lightEndBrightness = 0.0;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Dry/Air Explosion Objects
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock ExplosionData(GrenadeSubExplosion)
|
||||
{
|
||||
offset = 0.25;
|
||||
emitter[0] = GrenadeExpSparkEmitter;
|
||||
|
||||
lightStartRadius = 4.0;
|
||||
lightEndRadius = 0.0;
|
||||
lightStartColor = "0.9 0.7 0.7";
|
||||
lightEndColor = "0.9 0.7 0.7";
|
||||
lightStartBrightness = 2.0;
|
||||
lightEndBrightness = 0.0;
|
||||
};
|
||||
|
||||
datablock ExplosionData(GrenadeLauncherExplosion)
|
||||
{
|
||||
soundProfile = GrenadeLauncherExplosionSound;
|
||||
lifeTimeMS = 400; // Quick flash, short burn, and moderate dispersal
|
||||
|
||||
// Volume particles
|
||||
particleEmitter = GrenadeExpFireEmitter;
|
||||
particleDensity = 75;
|
||||
particleRadius = 2.25;
|
||||
|
||||
// Point emission
|
||||
emitter[0] = GrenadeExpDustEmitter;
|
||||
emitter[1] = GrenadeExpSparksEmitter;
|
||||
emitter[2] = GrenadeExpSmokeEmitter;
|
||||
|
||||
// Sub explosion objects
|
||||
subExplosion[0] = GrenadeSubExplosion;
|
||||
|
||||
// Camera Shaking
|
||||
shakeCamera = true;
|
||||
camShakeFreq = "10.0 11.0 9.0";
|
||||
camShakeAmp = "15.0 15.0 15.0";
|
||||
camShakeDuration = 1.5;
|
||||
camShakeRadius = 20;
|
||||
|
||||
// Exploding debris
|
||||
debris = GrenadeDebris;
|
||||
debrisThetaMin = 10;
|
||||
debrisThetaMax = 60;
|
||||
debrisNum = 4;
|
||||
debrisNumVariance = 2;
|
||||
debrisVelocity = 25;
|
||||
debrisVelocityVariance = 5;
|
||||
|
||||
lightStartRadius = 4.0;
|
||||
lightEndRadius = 0.0;
|
||||
lightStartColor = "1.0 1.0 1.0";
|
||||
lightEndColor = "1.0 1.0 1.0";
|
||||
lightStartBrightness = 4.0;
|
||||
lightEndBrightness = 0.0;
|
||||
lightNormalOffset = 2.0;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Underwater Grenade projectile trail
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock ParticleData(GrenadeTrailWaterParticle)
|
||||
{
|
||||
textureName = "art/shapes/particles/bubble";
|
||||
dragCoefficient = 0.0;
|
||||
gravityCoefficient = 0.1;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 1500;
|
||||
lifetimeVarianceMS = 600;
|
||||
useInvAlpha = false;
|
||||
spinRandomMin = -100.0;
|
||||
spinRandomMax = 100.0;
|
||||
spinSpeed = 1;
|
||||
|
||||
colors[0] = "0.7 0.8 1.0 1.0";
|
||||
colors[1] = "0.7 0.8 1.0 0.4";
|
||||
colors[2] = "0.7 0.8 1.0 0.0";
|
||||
|
||||
sizes[0] = 0.05;
|
||||
sizes[1] = 0.05;
|
||||
sizes[2] = 0.05;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.5;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeTrailWaterEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 5;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 1.0;
|
||||
ejectionOffset = 0.1;
|
||||
velocityVariance = 0.5;
|
||||
thetaMin = 0.0;
|
||||
thetaMax = 80.0;
|
||||
phiReferenceVel = 0;
|
||||
phiVariance = 360;
|
||||
overrideAdvances = false;
|
||||
particles = GrenadeTrailWaterParticle;
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Normal-fire Projectile Object
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock ParticleData(GrenadeProjSmokeTrail)
|
||||
{
|
||||
textureName = "art/shapes/particles/smoke";
|
||||
dragCoeffiecient = 0.0;
|
||||
gravityCoefficient = -0.2;
|
||||
inheritedVelFactor = 0.0;
|
||||
constantAcceleration = 0.0;
|
||||
lifetimeMS = 750;
|
||||
lifetimeVarianceMS = 250;
|
||||
useInvAlpha = true;
|
||||
spinRandomMin = -60;
|
||||
spinRandomMax = 60;
|
||||
spinSpeed = 1;
|
||||
|
||||
colors[0] = "0.9 0.8 0.8 0.6";
|
||||
colors[1] = "0.6 0.6 0.6 0.9";
|
||||
colors[2] = "0.3 0.3 0.3 0";
|
||||
|
||||
sizes[0] = 0.25;
|
||||
sizes[1] = 0.5;
|
||||
sizes[2] = 0.75;
|
||||
|
||||
times[0] = 0.0;
|
||||
times[1] = 0.4;
|
||||
times[2] = 1.0;
|
||||
};
|
||||
|
||||
datablock ParticleEmitterData(GrenadeProjSmokeTrailEmitter)
|
||||
{
|
||||
ejectionPeriodMS = 10;
|
||||
periodVarianceMS = 0;
|
||||
ejectionVelocity = 0.75;
|
||||
velocityVariance = 0;
|
||||
thetaMin = 0.0;
|
||||
thetaMax = 0.0;
|
||||
phiReferenceVel = 90;
|
||||
phiVariance = 0;
|
||||
particles = "GrenadeProjSmokeTrail";
|
||||
};
|
||||
|
||||
datablock ProjectileData(GrenadeLauncherProjectile)
|
||||
{
|
||||
projectileShapeName = "art/shapes/weapons/GrenadeLauncher/rocket.dts";
|
||||
directDamage = 30;
|
||||
radiusDamage = 30;
|
||||
damageRadius = 5;
|
||||
areaImpulse = 2000;
|
||||
|
||||
explosion = GrenadeLauncherExplosion;
|
||||
waterExplosion = GrenadeLauncherWaterExplosion;
|
||||
|
||||
decal = ScorchRXDecal;
|
||||
splash = GrenadeSplash;
|
||||
|
||||
particleEmitter = GrenadeProjSmokeTrailEmitter;
|
||||
particleWaterEmitter = GrenadeTrailWaterEmitter;
|
||||
|
||||
muzzleVelocity = 30;
|
||||
velInheritFactor = 0.3;
|
||||
|
||||
armingDelay = 2000;
|
||||
lifetime = 10000;
|
||||
fadeDelay = 4500;
|
||||
|
||||
bounceElasticity = 0.4;
|
||||
bounceFriction = 0.3;
|
||||
isBallistic = true;
|
||||
gravityMod = 0.9;
|
||||
|
||||
lightDesc = GrenadeLauncherLightDesc;
|
||||
|
||||
damageType = "GrenadeDamage";
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Underwater Projectile
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock ProjectileData(GrenadeWetProjectile)
|
||||
{
|
||||
projectileShapeName = "art/shapes/weapons/GrenadeLauncher/rocket.dts";
|
||||
directDamage = 20;
|
||||
radiusDamage = 10;
|
||||
damageRadius = 10;
|
||||
areaImpulse = 2000;
|
||||
|
||||
explosion = GrenadeLauncherWaterExplosion;
|
||||
|
||||
particleEmitter = GrenadeProjSmokeTrailEmitter;
|
||||
particleWaterEmitter = GrenadeTrailWaterEmitter;
|
||||
|
||||
muzzleVelocity = 10;
|
||||
velInheritFactor = 0.3;
|
||||
|
||||
armingDelay = 2000;
|
||||
lifetime = 10000;
|
||||
fadeDelay = 4500;
|
||||
|
||||
bounceElasticity = 0.2;
|
||||
bounceFriction = 0.4;
|
||||
isBallistic = true;
|
||||
gravityMod = 0.80;
|
||||
|
||||
lightDesc = GrenadeLauncherWaterLightDesc;
|
||||
|
||||
damageType = "GrenadeDamage";
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Ammo Item
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
datablock ItemData(GrenadeLauncherAmmo)
|
||||
{
|
||||
// Mission editor category
|
||||
category = "Ammo";
|
||||
|
||||
// Add the Ammo namespace as a parent. The ammo namespace provides
|
||||
// common ammo related functions and hooks into the inventory system.
|
||||
className = "Ammo";
|
||||
|
||||
// Basic Item properties
|
||||
shapeFile = "art/shapes/weapons/GrenadeLauncher/debris.dts";
|
||||
mass = 2;
|
||||
elasticity = 0.2;
|
||||
friction = 0.6;
|
||||
|
||||
// Dynamic properties defined by the scripts
|
||||
pickUpName = "Grenades";
|
||||
maxInventory = 20;
|
||||
};
|
||||
1250
Templates/Full PhysX/game/art/datablocks/weapons/rocketLauncher.cs
Normal file
BIN
Templates/Full PhysX/game/art/decals/bullet_hole.png
Normal file
|
After Width: | Height: | Size: 81 KiB |
BIN
Templates/Full PhysX/game/art/decals/defaultblobshadow.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
57
Templates/Full PhysX/game/art/decals/managedDecalData.cs
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// This is the default save location for any Decal datablocks created in the
|
||||
// Decal Editor (this script is executed from onServerCreated())
|
||||
|
||||
datablock DecalData(ScorchBigDecal)
|
||||
{
|
||||
Material = "DECAL_scorch";
|
||||
size = "5.0";
|
||||
lifeSpan = "50000";
|
||||
};
|
||||
|
||||
datablock DecalData(ScorchRXDecal)
|
||||
{
|
||||
Material = "DECAL_RocketEXP";
|
||||
size = "5.0";
|
||||
lifeSpan = "20000";
|
||||
randomize = "1";
|
||||
texRows = "2";
|
||||
texCols = "2";
|
||||
clippingAngle = "80";
|
||||
screenStartRadius = "200";
|
||||
screenEndRadius = "100";
|
||||
};
|
||||
|
||||
datablock DecalData(bulletHoleDecal)
|
||||
{
|
||||
Material = "DECAL_bulletHole";
|
||||
size = "0.25";
|
||||
lifeSpan = "5000";
|
||||
randomize = "1";
|
||||
texRows = "2";
|
||||
texCols = "2";
|
||||
screenStartRadius = "20";
|
||||
screenEndRadius = "5";
|
||||
clippingAngle = "180";
|
||||
};
|
||||
64
Templates/Full PhysX/game/art/decals/materials.cs
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
singleton Material(DECAL_scorch)
|
||||
{
|
||||
baseTex[0] = "./scorch_decal.png";
|
||||
|
||||
translucent = true;
|
||||
translucentBlendOp = None;
|
||||
translucentZWrite = true;
|
||||
alphaTest = true;
|
||||
alphaRef = 84;
|
||||
};
|
||||
|
||||
singleton Material(DECAL_RocketEXP)
|
||||
{
|
||||
baseTex[0] = "art/decals/rBlast";
|
||||
|
||||
vertColor[0] = true;
|
||||
translucent = true;
|
||||
translucentBlendOp = LerpAlpha;
|
||||
translucentZWrite = true;
|
||||
};
|
||||
|
||||
singleton Material(DECAL_bulletHole)
|
||||
{
|
||||
baseTex[0] = "art/decals/Bullet Holes/BulletHole_Walls.dds";
|
||||
|
||||
vertColor[0] = true;
|
||||
translucent = true;
|
||||
translucentBlendOp = LerpAlpha;
|
||||
translucentZWrite = true;
|
||||
};
|
||||
|
||||
singleton Material(DECAL_defaultblobshadow)
|
||||
{
|
||||
baseTex[0] = "art/decals/defaultblobshadow";
|
||||
|
||||
translucent = true;
|
||||
translucentBlendOp = LerpAlpha;
|
||||
translucentZWrite = true;
|
||||
alphaTest = false;
|
||||
//alphaRef = 64;
|
||||
//emissive[0] = "1";
|
||||
};
|
||||
BIN
Templates/Full PhysX/game/art/decals/rBlast.png
Normal file
|
After Width: | Height: | Size: 147 KiB |
BIN
Templates/Full PhysX/game/art/decals/scorch_decal.png
Normal file
|
After Width: | Height: | Size: 85 KiB |
BIN
Templates/Full PhysX/game/art/environment/grass1.png
Normal file
|
After Width: | Height: | Size: 129 KiB |
BIN
Templates/Full PhysX/game/art/environment/grass2.png
Normal file
|
After Width: | Height: | Size: 376 KiB |
BIN
Templates/Full PhysX/game/art/environment/grass3.png
Normal file
|
After Width: | Height: | Size: 211 KiB |
BIN
Templates/Full PhysX/game/art/environment/plant1.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
Templates/Full PhysX/game/art/environment/plant2.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
|
|
@ -0,0 +1 @@
|
|||
rain
|
||||
BIN
Templates/Full PhysX/game/art/environment/precipitation/rain.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 33 KiB |
58
Templates/Full PhysX/game/art/forest/brushes.cs
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// This is the default save location for any ForestBrush(s) created in
|
||||
// the Forest Editor.
|
||||
// This script is executed from ForestEditorPlugin::onWorldEditorStartup().
|
||||
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new SimGroup(ForestBrushGroup) {
|
||||
canSaveDynamicFields = "1";
|
||||
|
||||
new ForestBrush() {
|
||||
internalName = "ExampleForestBrush";
|
||||
canSaveDynamicFields = "1";
|
||||
|
||||
new ForestBrushElement() {
|
||||
internalName = "ExampleElement";
|
||||
canSaveDynamicFields = "1";
|
||||
ForestItemData = "ExampleForestMesh";
|
||||
probability = "1";
|
||||
rotationRange = "360";
|
||||
scaleMin = "1";
|
||||
scaleMax = "2";
|
||||
scaleExponent = "0.2";
|
||||
sinkMin = "0";
|
||||
sinkMax = "0.1";
|
||||
sinkRadius = "0.25";
|
||||
slopeMin = "0";
|
||||
slopeMax = "30";
|
||||
elevationMin = "-10000";
|
||||
elevationMax = "10000";
|
||||
clumpCountMin = "1";
|
||||
clumpCountMax = "1";
|
||||
clumpCountExponent = "1";
|
||||
clumpRadius = "10";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
40
Templates/Full PhysX/game/art/forest/managedItemData.cs
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// This is the default save location for any TSForestItemData(s) created in the
|
||||
// Forest Editor Editor (this script is executed from onServerCreated())
|
||||
|
||||
datablock TSForestItemData(ExampleForestMesh)
|
||||
{
|
||||
shapeFile = "art/shapes/trees/defaulttree/defaulttree.dae";
|
||||
internalName = "ExampleForestMesh";
|
||||
windScale = "1";
|
||||
trunkBendScale = "0.02";
|
||||
branchAmp = "0.05";
|
||||
detailAmp = "0.1";
|
||||
detailFreq = "0.2";
|
||||
mass = "5";
|
||||
rigidity = "20";
|
||||
dampingCoefficient = "0.2";
|
||||
tightnessCoefficient = "4";
|
||||
};
|
||||
|
||||
109
Templates/Full PhysX/game/art/gui/CameraGui.gui
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
|
||||
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GameTSCtrl(CameraGui) {
|
||||
profile = "GuiContentProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
cameraZRot = "0";
|
||||
forceFOV = "0";
|
||||
helpTag = "0";
|
||||
noCursor = "1";
|
||||
|
||||
new GuiBitmapCtrl(CenterPrintDlg) {
|
||||
profile = "CenterPrintProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "45 230";
|
||||
extent = "550 20";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
bitmap = "./hudfill";
|
||||
wrap = "0";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiMLTextCtrl(CenterPrintText) {
|
||||
profile = "CenterPrintTextProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "0 0";
|
||||
extent = "546 12";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
lineSpacing = "2";
|
||||
allowColorChars = "0";
|
||||
maxChars = "-1";
|
||||
helpTag = "0";
|
||||
};
|
||||
};
|
||||
new GuiBitmapCtrl(BottomPrintDlg) {
|
||||
profile = "CenterPrintProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "top";
|
||||
position = "45 375";
|
||||
extent = "550 20";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
bitmap = "./hudfill";
|
||||
wrap = "0";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiMLTextCtrl(BottomPrintText) {
|
||||
profile = "CenterPrintTextProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "0 0";
|
||||
extent = "546 12";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
lineSpacing = "2";
|
||||
allowColorChars = "0";
|
||||
maxChars = "-1";
|
||||
helpTag = "0";
|
||||
};
|
||||
};
|
||||
new GuiBitmapCtrl(LagIcon) {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "572 3";
|
||||
extent = "32 32";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
bitmap = "./lagIcon";
|
||||
wrap = "0";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiBitmapCtrl() {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "9 8";
|
||||
extent = "181 169";
|
||||
minExtent = "8 2";
|
||||
visible = "1";
|
||||
bitmap = "./tse_float";
|
||||
wrap = "0";
|
||||
helpTag = "0";
|
||||
};
|
||||
new GuiMLTextCtrl() {
|
||||
profile = "GuiTitleProfile";
|
||||
horizSizing = "left";
|
||||
vertSizing = "bottom";
|
||||
position = "428 5";
|
||||
extent = "378 14";
|
||||
minExtent = "8 2";
|
||||
visible = "1";
|
||||
lineSpacing = "2";
|
||||
allowColorChars = "0";
|
||||
maxChars = "-1";
|
||||
text = "<color:ffffff><shadowcolor:000000><shadow:1:1><font:arial bold:14>Version: MS4.2 demo";
|
||||
helpTag = "0";
|
||||
allowSelection = "1";
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
79
Templates/Full PhysX/game/art/gui/StartupGui.gui
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
//--- OBJECT WRITE BEGIN ---
|
||||
%guiContent = new GuiFadeinBitmapCtrl(StartupGui) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
Profile = "GuiInputCtrlProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "0 0";
|
||||
Extent = "800 600";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
bitmap = "";
|
||||
wrap = "0";
|
||||
fadeinTime = "1000";
|
||||
waitTime = "4000";
|
||||
fadeoutTime = "1000";
|
||||
done = "1";
|
||||
|
||||
new GuiBitmapButtonCtrl() {
|
||||
canSaveDynamicFields = "1";
|
||||
internalName = "StartupLogo";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiDefaultProfile";
|
||||
HorizSizing = "center";
|
||||
VertSizing = "center";
|
||||
position = "399 302";
|
||||
Extent = "253 253";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
bitmap = "";
|
||||
wrap = "0";
|
||||
command = "StartupGui.click();";
|
||||
};
|
||||
new GuiBitmapButtonCtrl() {
|
||||
canSaveDynamicFields = "1";
|
||||
internalName = "StartupLogoSecondary";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiDefaultProfile";
|
||||
HorizSizing = "left";
|
||||
VertSizing = "top";
|
||||
position = "275 440";
|
||||
Extent = "530 171";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
bitmap = "";
|
||||
wrap = "0";
|
||||
command = "StartupGui.click();";
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GuiFadeinBitmapCtrl(BlankGui) {
|
||||
profile = "GuiInputCtrlProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "800 600";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
bitmap = "";
|
||||
wrap = "0";
|
||||
fadeinTime = "100";
|
||||
waitTime = "2000";
|
||||
fadeoutTime = "100";
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
BIN
Templates/Full PhysX/game/art/gui/Torque-3D-logo-w.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
Templates/Full PhysX/game/art/gui/Torque-3D-logo.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
Templates/Full PhysX/game/art/gui/Torque-3D-logo_alt.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
Templates/Full PhysX/game/art/gui/background.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
162
Templates/Full PhysX/game/art/gui/chatHud.gui
Normal file
|
|
@ -0,0 +1,162 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Chat edit window
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
new GuiControl(MessageHud)
|
||||
{
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
noCursor = true;
|
||||
|
||||
new GuiBitmapBorderCtrl(MessageHud_Frame) {
|
||||
profile = "ChatHudBorderProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "120 375";
|
||||
extent = "400 40";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
|
||||
new GuiBitmapCtrl() {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "8 8";
|
||||
extent = "384 24";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
bitmap = "core/art/gui/images/hudfill.png";
|
||||
wrap = "0";
|
||||
};
|
||||
|
||||
new GuiTextCtrl(MessageHud_Text)
|
||||
{
|
||||
profile = "ChatHudTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "14 12";
|
||||
extent = "10 22";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
};
|
||||
|
||||
new GuiTextEditCtrl(MessageHud_Edit)
|
||||
{
|
||||
profile = "ChatHudEditProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "0 13";
|
||||
extent = "10 22";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
altCommand = "$ThisControl.eval();";
|
||||
escapeCommand = "MessageHud_Edit.onEscape();";
|
||||
historySize = "5";
|
||||
maxLength = "120";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
new GuiControl(MainChatHud) {
|
||||
profile = "GuiModelessDialogProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
noCursor = "1";
|
||||
|
||||
new GuiControl() {
|
||||
profile = "GuiModelessDialogProfile";
|
||||
horizSizing = "relative";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "400 300";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiBitmapBorderCtrl(OuterChatHud) {
|
||||
profile = "ChatHudBorderProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "bottom";
|
||||
position = "0 0";
|
||||
extent = "272 88";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
useVariable = "0";
|
||||
tile = "0";
|
||||
|
||||
new GuiBitmapCtrl() {
|
||||
profile = "GuiDefaultProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "8 8";
|
||||
extent = "256 72";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
bitmap = "core/art/gui/images/hudfill.png";
|
||||
wrap = "0";
|
||||
};
|
||||
|
||||
new GuiButtonCtrl(chatPageDown) {
|
||||
profile = "GuiButtonProfile";
|
||||
horizSizing = "left";
|
||||
vertSizing = "top";
|
||||
position = "220 58";
|
||||
extent = "36 14";
|
||||
minExtent = "8 8";
|
||||
visible = "0";
|
||||
helpTag = "0";
|
||||
text = "Dwn";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
};
|
||||
new GuiScrollCtrl(ChatScrollHud) {
|
||||
profile = "ChatHudScrollProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "8 8";
|
||||
extent = "256 72";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
willFirstRespond = "1";
|
||||
hScrollBar = "alwaysOff";
|
||||
vScrollBar = "alwaysOff";
|
||||
lockHorizScroll = "true";
|
||||
lockVertScroll = "false";
|
||||
constantThumbHeight = "0";
|
||||
childMargin = "0 0";
|
||||
|
||||
new GuiMessageVectorCtrl(ChatHud) {
|
||||
profile = "ChatHudMessageProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "1 1";
|
||||
extent = "252 16";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
lineSpacing = "0";
|
||||
lineContinuedIndex = "10";
|
||||
allowedMatches[0] = "http";
|
||||
allowedMatches[1] = "tgeserver";
|
||||
matchColor = "0 0 255 255";
|
||||
maxColorIndex = "5";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
130
Templates/Full PhysX/game/art/gui/controlsHelpDlg.gui
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
//--- OBJECT WRITE BEGIN ---
|
||||
%guiContent = new GuiControl(ControlsHelpDlg) {
|
||||
position = "0 0";
|
||||
Extent = "1024 768";
|
||||
MinExtent = "8 8";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
profile = "GuiModelessDialogProfile";
|
||||
Visible = "1";
|
||||
active = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "1";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "1";
|
||||
noCursor = "1";
|
||||
|
||||
new GuiBitmapBorderCtrl() {
|
||||
position = "820 -3";
|
||||
extent = "204 680";
|
||||
minExtent = "8 8";
|
||||
HorizSizing = "left";
|
||||
VertSizing = "bottom";
|
||||
profile = "ChatHudBorderProfile";
|
||||
Visible = "1";
|
||||
active = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
|
||||
new GuiBitmapCtrl() {
|
||||
bitmap = "art/gui/hudfill.png";
|
||||
wrap = "0";
|
||||
position = "8 8";
|
||||
extent = "188 665";
|
||||
MinExtent = "8 8";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
profile = "GuiDefaultProfile";
|
||||
Visible = "1";
|
||||
active = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiMLTextCtrl(ControlsText) {
|
||||
lineSpacing = "2";
|
||||
allowColorChars = "0";
|
||||
maxChars = "-1";
|
||||
text = "This is a test";
|
||||
useURLMouseCursor = "0";
|
||||
position = "12 10";
|
||||
extent = "180 652";
|
||||
MinExtent = "8 8";
|
||||
horizSizing = "width";
|
||||
vertSizing = "relative";
|
||||
profile = "HudTextNormalProfile";
|
||||
Visible = "1";
|
||||
active = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
|
||||
|
||||
function ControlsHelpDlg::onWake(%this)
|
||||
{
|
||||
%text = "<font:Arial Bold:20>Default Control Setup\n\n"@
|
||||
|
||||
"<just:center><font:Arial Bold:16>MOVEMENT\n"@
|
||||
"<just:left><font:Arial Bold:14>WASD<font:Arial Italic:14><just:right>Forward/Back/Left/Right\n"@
|
||||
"<just:left><font:Arial Bold:14>Space<font:Arial Italic:14><just:right>Jump\n"@
|
||||
"<just:left><font:Arial Bold:14>X<font:Arial Italic:14><just:right>Crouch\n\n"@
|
||||
|
||||
"<just:center><font:Arial Bold:16>VEHICLE CONTROLS\n"@
|
||||
"<just:left><font:Arial Bold:14>W/D<font:Arial Italic:14><just:right>Drive Forward/Back\n"@
|
||||
"<just:left><font:Arial Bold:14>Mouse Move<font:Arial Italic:14><just:right>Steer left/right\n"@
|
||||
"<just:left><font:Arial Bold:14>Space<font:Arial Italic:14><just:right>Brake\n"@
|
||||
"<just:left><font:Arial Bold:14>Mounting<font:Arial Italic:14><just:right>Just walk into vehicle\n"@
|
||||
"<just:left><font:Arial Bold:14>Ctrl-F<font:Arial Italic:14><just:right>Exit car\n"@
|
||||
"<just:left><font:Arial Bold:14>Ctrl-X<font:Arial Italic:14><just:right>Flip Car\n\n"@
|
||||
|
||||
|
||||
"<just:center><font:Arial Bold:16>WEAPONS\n"@
|
||||
"<just:left><font:Arial Bold:14>Mouse L-Button<font:Arial Italic:14><just:right>Fire\n"@
|
||||
"<just:left><font:Arial Bold:14>Mouse R-Button<font:Arial Italic:14><just:right>Alt-fire\n"@
|
||||
"<just:left><font:Arial Bold:14>0<font:Arial Italic:14><just:right>Unmount weapon\n"@
|
||||
"<just:left><font:Arial Bold:14>Alt-W<font:Arial Italic:14><just:right>Throw weapon\n"@
|
||||
"<just:left><font:Arial Bold:14>Alt-A<font:Arial Italic:14><just:right>Throw ammo\n\n"@
|
||||
|
||||
"<just:center><font:Arial Bold:16>VIEW CONTROL\n"@
|
||||
"<just:left><font:Arial Bold:14>Z<font:Arial Italic:14><just:right>Toggle Zoom mode\n"@
|
||||
"<just:left><font:Arial Bold:14>F<font:Arial Italic:14><just:right>Cycle zoom FOV\n"@
|
||||
"<just:left><font:Arial Bold:14>Tab<font:Arial Italic:14><just:right>First/Third person camera\n"@
|
||||
"<just:left><font:Arial Bold:14>V<font:Arial Italic:14><just:right>Vanity view\n"@
|
||||
"<just:left><font:Arial Bold:14>Alt-C<font:Arial Italic:14><just:right>Toggle between camera/player\n\n"@
|
||||
|
||||
"<just:center><font:Arial Bold:16>EDITORS\n"@
|
||||
"<just:left><font:Arial Bold:14>F10<font:Arial Italic:14><just:right>Open GUI Editor\n"@
|
||||
"<just:left><font:Arial Bold:14>F11<font:Arial Italic:14><just:right>Open Level Editor\n\n"@
|
||||
|
||||
"<just:center><font:Arial Bold:16>MISC FUNCTIONS\n"@
|
||||
"<just:left><font:Arial Bold:14>Alt-C<font:Arial Italic:14><just:right>Toggle between camera/player\n"@
|
||||
"<just:left><font:Arial Bold:14>F7<font:Arial Italic:14><just:right>Drop Player At Camera\n"@
|
||||
"<just:left><font:Arial Bold:14>F8<font:Arial Italic:14><just:right>Drop Camera At Player\n"@
|
||||
"<just:left><font:Arial Bold:14>U<font:Arial Italic:14><just:right>Send public chat message\n"@
|
||||
"<just:left><font:Arial Bold:14>Ctrl-K<font:Arial Italic:14><just:right>Die\n"@
|
||||
"<just:left><font:Arial Bold:14>Ctrl-O<font:Arial Italic:14><just:right>Open Options dialog\n"@
|
||||
"<just:left><font:Arial Bold:14>Ctrl-H<font:Arial Italic:14><just:right>Toggle Hide HUDs\n"@
|
||||
"<just:left><font:Arial Bold:14>Alt-P<font:Arial Italic:14><just:right>Hudless Screenshot\n"@
|
||||
"<just:left><font:Arial Bold:16>H<font:Arial Italic:16><just:right>Hide this help HUD";
|
||||
ControlsText.setText(%text);
|
||||
}
|
||||
|
||||
function ControlsHelpDlg::toggle(%this)
|
||||
{
|
||||
if (%this.isAwake())
|
||||
Canvas.popDialog(%this);
|
||||
else
|
||||
Canvas.pushDialog(%this);
|
||||
}
|
||||
25
Templates/Full PhysX/game/art/gui/customProfiles.cs
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Game specific profiles are located here
|
||||
//-----------------------------------------------------------------------------
|
||||
BIN
Templates/Full PhysX/game/art/gui/damageBottom.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
Templates/Full PhysX/game/art/gui/damageFront.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
Templates/Full PhysX/game/art/gui/damageLeft.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
Templates/Full PhysX/game/art/gui/damageRight.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
Templates/Full PhysX/game/art/gui/damageTop.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
175
Templates/Full PhysX/game/art/gui/defaultGameProfiles.cs
Normal file
|
|
@ -0,0 +1,175 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 2012 GarageGames, LLC
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to
|
||||
// deal in the Software without restriction, including without limitation the
|
||||
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
// sell copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
// IN THE SOFTWARE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Override base controls
|
||||
//GuiMenuButtonProfile.soundButtonOver = "AudioButtonOver";
|
||||
//GuiMenuButtonProfile.soundButtonDown = "AudioButtonDown";
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Chat Hud profiles
|
||||
|
||||
|
||||
singleton GuiControlProfile (ChatHudEditProfile)
|
||||
{
|
||||
opaque = false;
|
||||
fillColor = "255 255 255";
|
||||
fillColorHL = "128 128 128";
|
||||
border = false;
|
||||
borderThickness = 0;
|
||||
borderColor = "40 231 240";
|
||||
fontColor = "40 231 240";
|
||||
fontColorHL = "40 231 240";
|
||||
fontColorNA = "128 128 128";
|
||||
textOffset = "0 2";
|
||||
autoSizeWidth = false;
|
||||
autoSizeHeight = true;
|
||||
tab = true;
|
||||
canKeyFocus = true;
|
||||
};
|
||||
|
||||
singleton GuiControlProfile (ChatHudTextProfile)
|
||||
{
|
||||
opaque = false;
|
||||
fillColor = "255 255 255";
|
||||
fillColorHL = "128 128 128";
|
||||
border = false;
|
||||
borderThickness = 0;
|
||||
borderColor = "40 231 240";
|
||||
fontColor = "40 231 240";
|
||||
fontColorHL = "40 231 240";
|
||||
fontColorNA = "128 128 128";
|
||||
textOffset = "0 0";
|
||||
autoSizeWidth = true;
|
||||
autoSizeHeight = true;
|
||||
tab = true;
|
||||
canKeyFocus = true;
|
||||
};
|
||||
|
||||
singleton GuiControlProfile ("ChatHudMessageProfile")
|
||||
{
|
||||
fontType = "Arial";
|
||||
fontSize = 16;
|
||||
fontColor = "44 172 181"; // default color (death msgs, scoring, inventory)
|
||||
fontColors[1] = "4 235 105"; // client join/drop, tournament mode
|
||||
fontColors[2] = "219 200 128"; // gameplay, admin/voting, pack/deployable
|
||||
fontColors[3] = "77 253 95"; // team chat, spam protection message, client tasks
|
||||
fontColors[4] = "40 231 240"; // global chat
|
||||
fontColors[5] = "200 200 50 200"; // used in single player game
|
||||
// WARNING! Colors 6-9 are reserved for name coloring
|
||||
autoSizeWidth = true;
|
||||
autoSizeHeight = true;
|
||||
};
|
||||
|
||||
singleton GuiControlProfile ("ChatHudScrollProfile")
|
||||
{
|
||||
opaque = false;
|
||||
borderThickness = 0;
|
||||
borderColor = "0 255 0";
|
||||
bitmap = "core/art/gui/images/scrollBar";
|
||||
hasBitmapArray = true;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Core Hud profiles
|
||||
|
||||
singleton GuiControlProfile ("HudScrollProfile")
|
||||
{
|
||||
opaque = false;
|
||||
border = true;
|
||||
borderColor = "0 255 0";
|
||||
bitmap = "core/art/gui/images/scrollBar";
|
||||
hasBitmapArray = true;
|
||||
};
|
||||
|
||||
singleton GuiControlProfile ("HudTextProfile")
|
||||
{
|
||||
opaque = false;
|
||||
fillColor = "128 128 128";
|
||||
fontColor = "0 255 0";
|
||||
border = true;
|
||||
borderColor = "0 255 0";
|
||||
};
|
||||
|
||||
singleton GuiControlProfile ("ChatHudBorderProfile")
|
||||
{
|
||||
bitmap = "core/art/gui/images/chatHudBorderArray";
|
||||
hasBitmapArray = true;
|
||||
opaque = false;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Center and bottom print
|
||||
|
||||
singleton GuiControlProfile ("CenterPrintProfile")
|
||||
{
|
||||
opaque = false;
|
||||
fillColor = "128 128 128";
|
||||
fontColor = "0 255 0";
|
||||
border = true;
|
||||
borderColor = "0 255 0";
|
||||
};
|
||||
|
||||
singleton GuiControlProfile ("CenterPrintTextProfile")
|
||||
{
|
||||
opaque = false;
|
||||
fontType = "Arial";
|
||||
fontSize = 12;
|
||||
fontColor = "0 255 0";
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// HUD text
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
singleton GuiControlProfile (HudTextNormalProfile)
|
||||
{
|
||||
opaque = false;
|
||||
fontType = "Arial";
|
||||
fontSize = 14;
|
||||
fontColor = "255 255 255";
|
||||
};
|
||||
|
||||
singleton GuiControlProfile (HudTextItalicProfile : HudTextNormalProfile)
|
||||
{
|
||||
fontType = "ArialItalic";
|
||||
};
|
||||
|
||||
singleton GuiControlProfile (HudTextBoldProfile : HudTextNormalProfile)
|
||||
{
|
||||
fontType = "ArialBold";
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Numerical health text
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
singleton GuiControlProfile (NumericHealthProfile)
|
||||
{
|
||||
opaque = true;
|
||||
justify = "center";
|
||||
fontType = "ArialBold";
|
||||
fontSize = 32;
|
||||
fontColor = "255 255 255";
|
||||
};
|
||||
73
Templates/Full PhysX/game/art/gui/endGameGui.gui
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
//--- OBJECT WRITE BEGIN ---
|
||||
%guiContent = new GuiChunkedBitmapCtrl(EndGameGui) {
|
||||
profile = "GuiContentProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "0 0";
|
||||
extent = "640 480";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
bitmap = "./background";
|
||||
useVariable = "0";
|
||||
tile = "0";
|
||||
|
||||
new GuiControl() {
|
||||
profile = "GuiWindowProfile";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
position = "92 86";
|
||||
extent = "455 308";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
|
||||
new GuiTextCtrl() {
|
||||
profile = "GuiMediumTextProfile";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
position = "101 15";
|
||||
extent = "251 28";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
text = "Game Over - Final Scores:";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiScrollCtrl() {
|
||||
profile = "GuiScrollProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "5 51";
|
||||
extent = "444 251";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
willFirstRespond = "1";
|
||||
hScrollBar = "alwaysOff";
|
||||
vScrollBar = "dynamic";
|
||||
lockHorizScroll = "true";
|
||||
lockVertScroll = "false";
|
||||
constantThumbHeight = "0";
|
||||
childMargin = "0 0";
|
||||
defaultLineHeight = "15";
|
||||
|
||||
new GuiTextListCtrl(EndGameGuiList) {
|
||||
profile = "GuiTextProfile";
|
||||
horizSizing = "width";
|
||||
vertSizing = "height";
|
||||
position = "2 2";
|
||||
extent = "440 16";
|
||||
minExtent = "8 8";
|
||||
visible = "1";
|
||||
helpTag = "0";
|
||||
enumerate = "0";
|
||||
resizeCell = "1";
|
||||
columns = "0 256";
|
||||
fitParentWidth = "1";
|
||||
clipColumnText = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
BIN
Templates/Full PhysX/game/art/gui/hudfill.png
Normal file
|
After Width: | Height: | Size: 510 B |
48
Templates/Full PhysX/game/art/gui/hudlessGui.gui
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
//--- OBJECT WRITE BEGIN ---
|
||||
%guiContent = new GameTSCtrl(HudlessPlayGui) {
|
||||
canSaveDynamicFields = "1";
|
||||
isContainer = "1";
|
||||
Profile = "GuiContentProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "0 0";
|
||||
Extent = "1024 768";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
cameraZRot = "0";
|
||||
forceFOV = "0";
|
||||
Enabled = "1";
|
||||
helpTag = "0";
|
||||
noCursor = "1";
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
|
||||
|
||||
function HudlessPlayGui::onWake(%this)
|
||||
{
|
||||
// just update the action map here
|
||||
moveMap.push();
|
||||
}
|
||||
|
||||
function HudlessPlayGui::onSleep(%this)
|
||||
{
|
||||
// pop the keymaps
|
||||
moveMap.pop();
|
||||
}
|
||||
|
||||
function HudlessPlayGui::toggle(%this)
|
||||
{
|
||||
if (%this.isAwake())
|
||||
Canvas.setContent(PlayGui);
|
||||
else
|
||||
Canvas.setContent(HudlessPlayGui);
|
||||
}
|
||||
644
Templates/Full PhysX/game/art/gui/joinServerDlg.gui
Normal file
|
|
@ -0,0 +1,644 @@
|
|||
//--- OBJECT WRITE BEGIN ---
|
||||
%guiContent = new GuiControl(JoinServerDlg) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
Profile = "GuiOverlayProfile";
|
||||
HorizSizing = "width";
|
||||
VertSizing = "height";
|
||||
position = "0 0";
|
||||
Extent = "1024 768";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
|
||||
new GuiWindowCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
Profile = "GuiWindowProfile";
|
||||
HorizSizing = "center";
|
||||
VertSizing = "center";
|
||||
Position = "252 224";
|
||||
Extent = "520 320";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
resizeWidth = "0";
|
||||
resizeHeight = "0";
|
||||
canMove = "1";
|
||||
canClose = "1";
|
||||
canMinimize = "0";
|
||||
canMaximize = "0";
|
||||
minSize = "50 50";
|
||||
EdgeSnap = "1";
|
||||
text = "Join Server";
|
||||
closeCommand = "Canvas.popDialog(JoinServerDlg);";
|
||||
|
||||
new GuiButtonCtrl(JS_queryMaster) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiButtonProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "top";
|
||||
Position = "216 289";
|
||||
Extent = "90 23";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
Command = "JoinServerDlg.query();";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
text = "Query Master";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
};
|
||||
new GuiButtonCtrl(JS_queryLan) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiButtonProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "top";
|
||||
Position = "114 289";
|
||||
Extent = "90 23";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
Command = "JoinServerDlg.queryLan();";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
text = "Query LAN";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
};
|
||||
new GuiButtonCtrl(JS_refreshServer) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiButtonProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "top";
|
||||
Position = "318 289";
|
||||
Extent = "90 23";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
Command = "JoinServerDlg.refresh();";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
text = "Refresh Server";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
};
|
||||
new GuiButtonCtrl(JS_joinServer) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiButtonProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "top";
|
||||
Position = "420 289";
|
||||
Extent = "90 23";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
Command = "JoinServerDlg.join();";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
text = "Join Server!";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
};
|
||||
new GuiScrollCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
Profile = "GuiScrollProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "10 80";
|
||||
Extent = "500 197";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
willFirstRespond = "1";
|
||||
hScrollBar = "dynamic";
|
||||
vScrollBar = "alwaysOn";
|
||||
lockHorizScroll = "false";
|
||||
lockVertScroll = "false";
|
||||
constantThumbHeight = "0";
|
||||
childMargin = "0 0";
|
||||
mouseWheelScrollSpeed = "-1";
|
||||
|
||||
new GuiTextListCtrl(JS_serverList) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
Profile = "GuiTextArrayProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "1 1";
|
||||
Extent = "485 8";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
enumerate = "0";
|
||||
resizeCell = "1";
|
||||
columns = "0 200 270 335 400";
|
||||
fitParentWidth = "1";
|
||||
clipColumnText = "0";
|
||||
altCommand = "JoinServerDlg.join();";
|
||||
};
|
||||
};
|
||||
new GuiTextEditCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiTextEditProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "84 31";
|
||||
Extent = "144 18";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
Variable = "pref::Player::Name";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
maxLength = "255";
|
||||
historySize = "0";
|
||||
password = "0";
|
||||
tabComplete = "0";
|
||||
sinkAllKeyEvents = "0";
|
||||
passwordMask = "*";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiAutoSizeTextProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "12 31";
|
||||
Extent = "63 18";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Player Name:";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiAutoSizeTextProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "269 59";
|
||||
Extent = "36 18";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Players";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiAutoSizeTextProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "335 59";
|
||||
Extent = "38 18";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Version";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiAutoSizeTextProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "412 59";
|
||||
Extent = "28 18";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Game";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiAutoSizeTextProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "212 59";
|
||||
Extent = "20 18";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Ping";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiAutoSizeTextProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "12 59";
|
||||
Extent = "63 18";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Server Name";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiButtonProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "top";
|
||||
Position = "12 289";
|
||||
Extent = "90 23";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
Command = "JoinServerDlg.exit();";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
text = "< Back";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
};
|
||||
new GuiWindowCtrl(JS_queryStatus) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
Profile = "GuiWindowProfile";
|
||||
HorizSizing = "center";
|
||||
VertSizing = "center";
|
||||
Position = "105 135";
|
||||
Extent = "310 50";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "0";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
resizeWidth = "0";
|
||||
resizeHeight = "0";
|
||||
canMove = "0";
|
||||
canClose = "0";
|
||||
canMinimize = "0";
|
||||
canMaximize = "0";
|
||||
canCollapse = "0";
|
||||
text="Status";
|
||||
|
||||
new GuiButtonCtrl(JS_cancelQuery) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiButtonProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "9 25";
|
||||
Extent = "64 20";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
Command = "JoinServerDlg.cancel();";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
text = "Cancel!";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
};
|
||||
new GuiProgressCtrl(JS_statusBar) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiProgressProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "84 25";
|
||||
Extent = "207 20";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
maxLength = "1024";
|
||||
};
|
||||
new GuiTextCtrl(JS_statusText) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiProgressTextProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "85 25";
|
||||
Extent = "205 20";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Querying master server";
|
||||
maxLength = "255";
|
||||
};
|
||||
};
|
||||
new GuiTextCtrl(JS_status) {
|
||||
canSaveDynamicFields = "0";
|
||||
Profile = "GuiAutoSizeTextProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "245 31";
|
||||
Extent = "177 19";
|
||||
MinExtent = "8 8";
|
||||
text = "";
|
||||
visible = "1";
|
||||
maxLength = "255";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
|
||||
function JoinServerDlg::onWake()
|
||||
{
|
||||
// Double check the status. Tried setting this the control
|
||||
// inactive to start with, but that didn't seem to work.
|
||||
JS_joinServer.setActive(JS_serverList.rowCount() > 0);
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerDlg::query(%this)
|
||||
{
|
||||
queryMasterServer(
|
||||
0, // Query flags
|
||||
$Client::GameTypeQuery, // gameTypes
|
||||
$Client::MissionTypeQuery, // missionType
|
||||
0, // minPlayers
|
||||
100, // maxPlayers
|
||||
0, // maxBots
|
||||
2, // regionMask
|
||||
0, // maxPing
|
||||
100, // minCPU
|
||||
0 // filterFlags
|
||||
);
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerDlg::queryLan(%this)
|
||||
{
|
||||
queryLANServers(
|
||||
$pref::Net::Port, // lanPort for local queries
|
||||
0, // Query flags
|
||||
$Client::GameTypeQuery, // gameTypes
|
||||
$Client::MissionTypeQuery, // missionType
|
||||
0, // minPlayers
|
||||
100, // maxPlayers
|
||||
0, // maxBots
|
||||
2, // regionMask
|
||||
0, // maxPing
|
||||
100, // minCPU
|
||||
0 // filterFlags
|
||||
);
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerDlg::cancel(%this)
|
||||
{
|
||||
cancelServerQuery();
|
||||
JS_queryStatus.setVisible(false);
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerDlg::join(%this)
|
||||
{
|
||||
cancelServerQuery();
|
||||
%index = JS_serverList.getSelectedId();
|
||||
|
||||
// The server info index is stored in the row along with the
|
||||
// rest of displayed info.
|
||||
|
||||
if( setServerInfo( %index ) )
|
||||
{
|
||||
Canvas.setContent("LoadingGui");
|
||||
LoadingProgress.setValue(1);
|
||||
LoadingProgressTxt.setValue("WAITING FOR SERVER");
|
||||
Canvas.repaint();
|
||||
|
||||
%conn = new GameConnection(ServerConnection);
|
||||
%conn.setConnectArgs($pref::Player::Name);
|
||||
%conn.setJoinPassword($Client::Password);
|
||||
%conn.connect($ServerInfo::Address);
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerDlg::refresh(%this)
|
||||
{
|
||||
cancelServerQuery();
|
||||
%index= JS_serverList.getSelectedId();
|
||||
|
||||
// The server info index is stored in the row along with the
|
||||
// rest of displayed info.
|
||||
if( setServerInfo( %index ) )
|
||||
querySingleServer( $ServerInfo::Address, 0 );
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerDlg::refreshSelectedServer( %this )
|
||||
{
|
||||
querySingleServer( $JoinGameAddress, 0 );
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerDlg::exit(%this)
|
||||
{
|
||||
cancelServerQuery();
|
||||
|
||||
Canvas.popDialog(JoinServerDlg);
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function JoinServerDlg::update(%this)
|
||||
{
|
||||
// Copy the servers into the server list.
|
||||
JS_queryStatus.setVisible(false);
|
||||
JS_serverList.clear();
|
||||
%sc = getServerCount();
|
||||
for( %i = 0; %i < %sc; %i ++ ) {
|
||||
setServerInfo(%i);
|
||||
JS_serverList.addRow( %i,
|
||||
$ServerInfo::Name TAB
|
||||
$ServerInfo::Ping TAB
|
||||
$ServerInfo::PlayerCount @ "/" @ $ServerInfo::MaxPlayers TAB
|
||||
$ServerInfo::Version TAB
|
||||
$ServerInfo::MissionName
|
||||
);
|
||||
}
|
||||
JS_serverList.sort(0);
|
||||
JS_serverList.setSelectedRow(0);
|
||||
JS_serverList.scrollVisible(0);
|
||||
|
||||
JS_joinServer.setActive(JS_serverList.rowCount() > 0);
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
function onServerQueryStatus(%status, %msg, %value)
|
||||
{
|
||||
echo("ServerQuery: " SPC %status SPC %msg SPC %value);
|
||||
// Update query status
|
||||
// States: start, update, ping, query, done
|
||||
// value = % (0-1) done for ping and query states
|
||||
if (!JS_queryStatus.isVisible())
|
||||
JS_queryStatus.setVisible(true);
|
||||
|
||||
switch$ (%status) {
|
||||
case "start":
|
||||
JS_joinServer.setActive(false);
|
||||
JS_queryMaster.setActive(false);
|
||||
JS_statusText.setText(%msg);
|
||||
JS_statusBar.setValue(0);
|
||||
JS_serverList.clear();
|
||||
|
||||
case "ping":
|
||||
JS_statusText.setText("Ping Servers");
|
||||
JS_statusBar.setValue(%value);
|
||||
|
||||
case "query":
|
||||
JS_statusText.setText("Query Servers");
|
||||
JS_statusBar.setValue(%value);
|
||||
|
||||
case "done":
|
||||
JS_queryMaster.setActive(true);
|
||||
JS_queryStatus.setVisible(false);
|
||||
JS_status.setText(%msg);
|
||||
JoinServerDlg.update();
|
||||
}
|
||||
}
|
||||
BIN
Templates/Full PhysX/game/art/gui/lagIcon.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
Templates/Full PhysX/game/art/gui/logo.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
151
Templates/Full PhysX/game/art/gui/mainMenuGui.gui
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
//--- OBJECT WRITE BEGIN ---
|
||||
%guiContent = new GuiChunkedBitmapCtrl(MainMenuGui) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
Profile = "GuiContentProfile";
|
||||
HorizSizing = "width";
|
||||
VertSizing = "height";
|
||||
Position = "0 0";
|
||||
Extent = "1024 768";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
bitmap = "art/gui/background";
|
||||
useVariable = "0";
|
||||
tile = "0";
|
||||
|
||||
new GuiBitmapCtrl(MainMenuAppLogo) {
|
||||
canSaveDynamicFields = "1";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiDefaultProfile";
|
||||
HorizSizing = "left";
|
||||
VertSizing = "bottom";
|
||||
Position = "540 30";
|
||||
Extent = "443 139";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
bitmap = "art/gui/Torque-3D-logo.png";
|
||||
wrap = "0";
|
||||
};
|
||||
new GuiControl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
Profile = "GuiDefaultProfile";
|
||||
HorizSizing = "center";
|
||||
VertSizing = "center";
|
||||
Position = "359 171";
|
||||
Extent = "306 425";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
|
||||
new GuiButtonCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiMenuButtonProfile";
|
||||
HorizSizing = "relative";
|
||||
VertSizing = "bottom";
|
||||
Position = "9 114";
|
||||
Extent = "289 75";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
Command = "Canvas.pushDialog(ChooseLevelDlg);";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
text = "Play";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "1";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiMenuButtonProfile";
|
||||
HorizSizing = "relative";
|
||||
VertSizing = "bottom";
|
||||
Position = "9 190";
|
||||
Extent = "289 75";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
Command = "Canvas.pushDialog(JoinServerDlg);";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
text = "Join";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiMenuButtonProfile";
|
||||
HorizSizing = "relative";
|
||||
VertSizing = "bottom";
|
||||
Position = "9 267";
|
||||
Extent = "289 75";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
Command = "Canvas.pushDialog(optionsDlg);";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
text = "Options";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
|
||||
};
|
||||
new GuiButtonCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
internalName = "ExitButton";
|
||||
isContainer = "0";
|
||||
Profile = "GuiMenuButtonProfile";
|
||||
HorizSizing = "relative";
|
||||
VertSizing = "bottom";
|
||||
Position = "9 344";
|
||||
Extent = "289 75";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
isDecoy = "0";
|
||||
Visible = "1";
|
||||
Command = "quit();";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
text = "Exit";
|
||||
groupNum = "-1";
|
||||
buttonType = "PushButton";
|
||||
useMouseEvents = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
|
||||
function MainMenuGui::onWake(%this)
|
||||
{
|
||||
if (isFunction("getWebDeployment") &&
|
||||
getWebDeployment() &&
|
||||
isObject(%this-->ExitButton))
|
||||
%this-->ExitButton.setVisible(false);
|
||||
}
|
||||
BIN
Templates/Full PhysX/game/art/gui/no-preview.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
423
Templates/Full PhysX/game/art/gui/playGui.gui
Normal file
|
|
@ -0,0 +1,423 @@
|
|||
//--- OBJECT WRITE BEGIN ---
|
||||
%guiContent = new GameTSCtrl(PlayGui) {
|
||||
cameraZRot = "0";
|
||||
forceFOV = "0";
|
||||
reflectPriority = "1";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
isContainer = "1";
|
||||
Profile = "GuiContentProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "0 0";
|
||||
Extent = "1024 768";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "1";
|
||||
Enabled = "1";
|
||||
helpTag = "0";
|
||||
noCursor = "1";
|
||||
|
||||
new GuiBitmapCtrl(CenterPrintDlg) {
|
||||
bitmap = "art/gui/hudfill.png";
|
||||
wrap = "0";
|
||||
isContainer = "0";
|
||||
Profile = "CenterPrintProfile";
|
||||
HorizSizing = "center";
|
||||
VertSizing = "center";
|
||||
position = "237 375";
|
||||
Extent = "550 20";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "0";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
|
||||
new GuiMLTextCtrl(CenterPrintText) {
|
||||
lineSpacing = "2";
|
||||
allowColorChars = "0";
|
||||
maxChars = "-1";
|
||||
useURLMouseCursor = "0";
|
||||
isContainer = "0";
|
||||
Profile = "CenterPrintTextProfile";
|
||||
HorizSizing = "center";
|
||||
VertSizing = "center";
|
||||
position = "0 0";
|
||||
Extent = "546 12";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
};
|
||||
new GuiBitmapCtrl(BottomPrintDlg) {
|
||||
bitmap = "art/gui/hudfill.png";
|
||||
wrap = "0";
|
||||
isContainer = "0";
|
||||
Profile = "CenterPrintProfile";
|
||||
HorizSizing = "center";
|
||||
VertSizing = "top";
|
||||
position = "237 719";
|
||||
Extent = "550 20";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "0";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
|
||||
new GuiMLTextCtrl(BottomPrintText) {
|
||||
lineSpacing = "2";
|
||||
allowColorChars = "0";
|
||||
maxChars = "-1";
|
||||
useURLMouseCursor = "0";
|
||||
isContainer = "0";
|
||||
Profile = "CenterPrintTextProfile";
|
||||
HorizSizing = "center";
|
||||
VertSizing = "center";
|
||||
position = "0 0";
|
||||
Extent = "546 12";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
};
|
||||
new GuiBitmapCtrl(LagIcon) {
|
||||
bitmap = "art/gui/lagIcon.png";
|
||||
wrap = "0";
|
||||
isContainer = "0";
|
||||
Profile = "GuiDefaultProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
position = "572 3";
|
||||
Extent = "32 32";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "0";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiShapeNameHud() {
|
||||
fillColor = "0 0 0 0.25";
|
||||
frameColor = "0 1 0 1";
|
||||
textColor = "0 1 0 1";
|
||||
showFill = "0";
|
||||
showFrame = "0";
|
||||
verticalOffset = "0.2";
|
||||
distanceFade = "0.1";
|
||||
isContainer = "0";
|
||||
Profile = "GuiModelessDialogProfile";
|
||||
HorizSizing = "width";
|
||||
VertSizing = "height";
|
||||
position = "0 0";
|
||||
Extent = "1024 768";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiCrossHairHud(Reticle) {
|
||||
damageFillColor = "0 1 0 1";
|
||||
damageFrameColor = "1 0.6 0 1";
|
||||
damageRect = "50 4";
|
||||
damageOffset = "0 10";
|
||||
bitmap = "art/gui/weaponHud/blank.png";
|
||||
wrap = "0";
|
||||
isContainer = "0";
|
||||
Profile = "GuiModelessDialogProfile";
|
||||
HorizSizing = "center";
|
||||
VertSizing = "center";
|
||||
position = "496 368";
|
||||
Extent = "32 32";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiCrossHairHud(ZoomReticle) {
|
||||
damageFillColor = "0 1 0 1";
|
||||
damageFrameColor = "1 0.6 0 1";
|
||||
damageRect = "50 4";
|
||||
damageOffset = "0 10";
|
||||
bitmap = "art/gui/weaponHud/bino.png";
|
||||
wrap = "0";
|
||||
isContainer = "0";
|
||||
Profile = "GuiModelessDialogProfile";
|
||||
HorizSizing = "width";
|
||||
VertSizing = "height";
|
||||
position = "0 0";
|
||||
Extent = "1024 768";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "0";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiBitmapBorderCtrl(WeaponHUD) {
|
||||
isContainer = "0";
|
||||
Profile = "ChatHudBorderProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "top";
|
||||
position = "78 693";
|
||||
Extent = "124 72";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
|
||||
new GuiBitmapCtrl() {
|
||||
bitmap = "core/art/gui/images/hudfill.png";
|
||||
wrap = "0";
|
||||
isContainer = "0";
|
||||
Profile = "GuiDefaultProfile";
|
||||
HorizSizing = "width";
|
||||
VertSizing = "height";
|
||||
position = "8 8";
|
||||
Extent = "108 56";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiBitmapCtrl(PreviewImage) {
|
||||
bitmap = "art/gui/weaponHud/blank.png";
|
||||
wrap = "0";
|
||||
isContainer = "0";
|
||||
Profile = "GuiDefaultProfile";
|
||||
HorizSizing = "width";
|
||||
VertSizing = "height";
|
||||
position = "8 8";
|
||||
Extent = "108 56";
|
||||
MinExtent = "8 2";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiTextCtrl(AmmoAmount) {
|
||||
maxLength = "255";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "0";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "0";
|
||||
AnchorRight = "0";
|
||||
isContainer = "0";
|
||||
Profile = "HudTextItalicProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "top";
|
||||
position = "40 8";
|
||||
Extent = "120 16";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
};
|
||||
new GuiBitmapBorderCtrl(HealthHUD) {
|
||||
isContainer = "0";
|
||||
Profile = "ChatHudBorderProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "top";
|
||||
position = "6 693";
|
||||
Extent = "72 72";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
|
||||
new GuiBitmapCtrl() {
|
||||
bitmap = "core/art/gui/images/hudfill.png";
|
||||
wrap = "0";
|
||||
isContainer = "0";
|
||||
Profile = "GuiDefaultProfile";
|
||||
HorizSizing = "width";
|
||||
VertSizing = "height";
|
||||
position = "8 8";
|
||||
Extent = "56 56";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiTextCtrl(numericalHealthHUD) {
|
||||
maxLength = "255";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "0";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "0";
|
||||
AnchorRight = "0";
|
||||
isContainer = "0";
|
||||
Profile = "NumericHealthProfile";
|
||||
HorizSizing = "center";
|
||||
VertSizing = "center";
|
||||
position = "0 22";
|
||||
Extent = "72 32";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
};
|
||||
new GuiBitmapCtrl(OOBSign) {
|
||||
bitmap = "art/gui/playHud/missionAreaWarning.png";
|
||||
wrap = "0";
|
||||
isContainer = "0";
|
||||
Profile = "GuiDefaultProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "top";
|
||||
position = "512 693";
|
||||
Extent = "64 64";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "0";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiControl(DamageHUD) {
|
||||
position = "384 256";
|
||||
extent = "256 256";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "center";
|
||||
vertSizing = "center";
|
||||
profile = "GuiDefaultProfile";
|
||||
visible = "1";
|
||||
active = "1";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "1";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
|
||||
new GuiBitmapCtrl() {
|
||||
bitmap = "art/gui/damageFront.png";
|
||||
wrap = "0";
|
||||
position = "0 0";
|
||||
extent = "256 32";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
profile = "GuiDefaultProfile";
|
||||
visible = "0";
|
||||
active = "1";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
internalName = "Damage_Front";
|
||||
hidden = "1";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiBitmapCtrl() {
|
||||
bitmap = "art/gui/damageTop.png";
|
||||
wrap = "0";
|
||||
position = "0 0";
|
||||
extent = "256 32";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
profile = "GuiDefaultProfile";
|
||||
visible = "0";
|
||||
active = "1";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
internalName = "Damage_Top";
|
||||
hidden = "1";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiBitmapCtrl() {
|
||||
bitmap = "art/gui/damageBottom.png";
|
||||
wrap = "0";
|
||||
position = "0 224";
|
||||
extent = "256 32";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
profile = "GuiDefaultProfile";
|
||||
visible = "0";
|
||||
active = "1";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
internalName = "Damage_Bottom";
|
||||
hidden = "1";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiBitmapCtrl() {
|
||||
bitmap = "art/gui/damageLeft.png";
|
||||
wrap = "0";
|
||||
position = "0 0";
|
||||
extent = "32 256";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
profile = "GuiDefaultProfile";
|
||||
visible = "0";
|
||||
active = "1";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
internalName = "Damage_Left";
|
||||
hidden = "1";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
new GuiBitmapCtrl() {
|
||||
bitmap = "art/gui/damageRight.png";
|
||||
wrap = "0";
|
||||
position = "224 0";
|
||||
extent = "32 256";
|
||||
minExtent = "8 2";
|
||||
horizSizing = "right";
|
||||
vertSizing = "bottom";
|
||||
profile = "GuiDefaultProfile";
|
||||
visible = "0";
|
||||
active = "1";
|
||||
tooltipProfile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
isContainer = "0";
|
||||
internalName = "Damage_Right";
|
||||
hidden = "1";
|
||||
canSave = "1";
|
||||
canSaveDynamicFields = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
178
Templates/Full PhysX/game/art/gui/playerList.gui
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Torque Game Engine
|
||||
//
|
||||
// Copyright (c) 2001 GarageGames.Com
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
//--- OBJECT WRITE BEGIN ---
|
||||
%guiContent = new GuiControl(PlayerListGui) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
Profile = "GuiModelessDialogProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "0 0";
|
||||
Extent = "1024 768";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
noCursor = true;
|
||||
|
||||
new GuiBitmapBorderCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "ChatHudBorderProfile";
|
||||
HorizSizing = "center";
|
||||
VertSizing = "center";
|
||||
Position = "362 263";
|
||||
Extent = "299 242";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
|
||||
new GuiBitmapCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "ChatHudScrollProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "8 8";
|
||||
Extent = "283 226";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
bitmap = "art/gui/hudfill.png";
|
||||
wrap = "0";
|
||||
|
||||
new GuiScrollCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
Profile = "ChatHudScrollProfile";
|
||||
HorizSizing = "width";
|
||||
VertSizing = "height";
|
||||
Position = "0 24";
|
||||
Extent = "228 202";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
willFirstRespond = "1";
|
||||
hScrollBar = "alwaysOff";
|
||||
vScrollBar = "dynamic";
|
||||
lockHorizScroll = "true";
|
||||
lockVertScroll = "false";
|
||||
constantThumbHeight = "0";
|
||||
childMargin = "0 0";
|
||||
mouseWheelScrollSpeed = "-1";
|
||||
|
||||
new GuiTextListCtrl(PlayerListGuiList) {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "1";
|
||||
Profile = "HudTextNormalProfile";
|
||||
HorizSizing = "width";
|
||||
VertSizing = "height";
|
||||
Position = "1 1";
|
||||
Extent = "226 9";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
enumerate = "0";
|
||||
resizeCell = "1";
|
||||
columns = "0 98 153 200";
|
||||
fitParentWidth = "1";
|
||||
clipColumnText = "0";
|
||||
};
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "HudTextBoldProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "104 2";
|
||||
Extent = "33 18";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Score";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "HudTextBoldProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "158 2";
|
||||
Extent = "30 18";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Kills";
|
||||
maxLength = "255";
|
||||
};
|
||||
new GuiTextCtrl() {
|
||||
canSaveDynamicFields = "0";
|
||||
Enabled = "1";
|
||||
isContainer = "0";
|
||||
Profile = "HudTextBoldProfile";
|
||||
HorizSizing = "right";
|
||||
VertSizing = "bottom";
|
||||
Position = "206 2";
|
||||
Extent = "37 18";
|
||||
MinExtent = "8 8";
|
||||
canSave = "1";
|
||||
Visible = "1";
|
||||
tooltipprofile = "GuiToolTipProfile";
|
||||
hovertime = "1000";
|
||||
Margin = "0 0 0 0";
|
||||
Padding = "0 0 0 0";
|
||||
AnchorTop = "1";
|
||||
AnchorBottom = "0";
|
||||
AnchorLeft = "1";
|
||||
AnchorRight = "0";
|
||||
text = "Deaths";
|
||||
maxLength = "255";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
//--- OBJECT WRITE END ---
|
||||
BIN
Templates/Full PhysX/game/art/gui/splash.bmp
Normal file
|
After Width: | Height: | Size: 331 KiB |
BIN
Templates/Full PhysX/game/art/gui/weaponHud/bino.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
Templates/Full PhysX/game/art/gui/weaponHud/blank.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
Templates/Full PhysX/game/art/gui/weaponHud/crossHair.png
Normal file
|
After Width: | Height: | Size: 329 B |
BIN
Templates/Full PhysX/game/art/gui/weaponHud/lurker.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
Templates/Full PhysX/game/art/gui/weaponHud/mine.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |