Merge branch 'development' of https://github.com/TwistedJenius/Torque3D into TwistedJenius-development

This commit is contained in:
David Wyand 2012-10-04 12:48:53 -04:00
commit 349f6f238f
10 changed files with 30 additions and 50 deletions

View file

@ -126,7 +126,7 @@ function WorldEditor::onSelectionCentroidChanged( %this )
function WorldEditor::init(%this)
{
// add objclasses which we do not want to collide with
%this.ignoreObjClass(Sky, AIObjective);
%this.ignoreObjClass(Sky);
// editing modes
%this.numEditModes = 3;

View file

@ -126,7 +126,7 @@ function WorldEditor::onSelectionCentroidChanged( %this )
function WorldEditor::init(%this)
{
// add objclasses which we do not want to collide with
%this.ignoreObjClass(Sky, AIObjective);
%this.ignoreObjClass(Sky);
// editing modes
%this.numEditModes = 3;

View file

@ -504,8 +504,6 @@ datablock PlayerData(DefaultPlayerData)
throwForce = 30;
aiAvoidThis = 1;
minLookAngle = "-1.4";
maxLookAngle = "0.9";
maxFreelookAngle = 3.0;

View file

@ -87,7 +87,7 @@ function DemoPlayer::onEndSequence(%this,%obj,%slot)
// AIPlayer static functions
//-----------------------------------------------------------------------------
function AIPlayer::spawn(%name,%spawnPoint)
function AIPlayer::produce(%name,%spawnPoint)
{
// Create the demo player object
%player = new AiPlayer()
@ -107,7 +107,7 @@ function AIPlayer::spawnOnPath(%name,%path)
if (!isObject(%path))
return 0;
%node = %path.getObject(0);
%player = AIPlayer::spawn(%name, %node.getTransform());
%player = AIPlayer::produce(%name, %node.getTransform());
return %player;
}
@ -118,7 +118,6 @@ function AIPlayer::spawnOnPath(%name,%path)
function AIPlayer::followPath(%this,%path,%node)
{
// Start the player following a path
%this.stopThread(0);
if (!isObject(%path))
{
%this.path = "";
@ -160,7 +159,7 @@ function AIPlayer::moveToNode(%this,%index)
// Move to the given path node index
%this.currentNode = %index;
%node = %this.path.getObject(%index);
%this.setMoveDestination(%node.getTransform(), %index == %this.targetNode);
%this.setMoveDestination(%node.getTransform());
}
//-----------------------------------------------------------------------------
@ -298,28 +297,26 @@ function AIPlayer::getNearestPlayerTarget(%this)
//-----------------------------------------------------------------------------
function AIManager::think(%this)
function AIPlayer::think(%player)
{
// We could hook into the player's onDestroyed state instead of having to
// "think", but thinking allows us to consider other things...
if (!isObject(%this.player))
%this.player = %this.spawn();
%this.schedule(500, think);
// Thinking allows us to consider other things...
%player.schedule(500, think);
}
function AIManager::spawn(%this)
function AIPlayer::spawn(%path)
{
%player = AIPlayer::spawnOnPath("Shootme", "MissionGroup/Paths/Path1");
%player = AIPlayer::spawnOnPath("Shootme", %path);
if (isObject(%player))
{
%player.followPath("MissionGroup/Paths/Path1", -1);
%player.followPath(%path, -1);
// slow this sucker down, I'm tired of chasing him!
%player.setMoveSpeed(0.5);
//%player.mountImage(xxxImage, 0);
//%player.setInventory(xxxAmmo, 1000);
//%player.think();
return %player;
}

View file

@ -405,10 +405,8 @@ function GameCore::startGame(%game)
$Game::Schedule = %game.schedule($Game::Duration * 1000, "onGameDurationEnd");
$Game::Running = true;
// // Start the AIManager
// new ScriptObject(AIManager) {};
// MissionCleanup.add(AIManager);
// AIManager.think();
// // Start the AI on the specified path
// AIPlayer::spawn("Path1");
}
function GameCore::endGame(%game, %client)
@ -423,9 +421,6 @@ function GameCore::endGame(%game, %client)
return;
}
// // Stop the AIManager
// AIManager.delete();
// Stop any game timers
cancel($Game::Schedule);
@ -699,7 +694,7 @@ function GameCore::onDeath(%game, %client, %sourceObject, %sourceClient, %damage
call( %sendMsgFunction, 'MsgClientKilled', %client, %sourceClient, %damLoc );
// Dole out points and check for win
if ( %damageType $= "Suicide" || %sourceClient == %client )
if (( %damageType $= "Suicide" || %sourceClient == %client ) && isObject(%sourceClient))
{
%game.incDeaths( %client, 1, true );
%game.incScore( %client, -1, false );

View file

@ -126,7 +126,7 @@ function WorldEditor::onSelectionCentroidChanged( %this )
function WorldEditor::init(%this)
{
// add objclasses which we do not want to collide with
%this.ignoreObjClass(Sky, AIObjective);
%this.ignoreObjClass(Sky);
// editing modes
%this.numEditModes = 3;

View file

@ -504,8 +504,6 @@ datablock PlayerData(DefaultPlayerData)
throwForce = 30;
aiAvoidThis = 1;
minLookAngle = "-1.4";
maxLookAngle = "0.9";
maxFreelookAngle = 3.0;

View file

@ -87,7 +87,7 @@ function DemoPlayer::onEndSequence(%this,%obj,%slot)
// AIPlayer static functions
//-----------------------------------------------------------------------------
function AIPlayer::spawn(%name,%spawnPoint)
function AIPlayer::produce(%name,%spawnPoint)
{
// Create the demo player object
%player = new AiPlayer()
@ -107,7 +107,7 @@ function AIPlayer::spawnOnPath(%name,%path)
if (!isObject(%path))
return 0;
%node = %path.getObject(0);
%player = AIPlayer::spawn(%name, %node.getTransform());
%player = AIPlayer::produce(%name, %node.getTransform());
return %player;
}
@ -118,7 +118,6 @@ function AIPlayer::spawnOnPath(%name,%path)
function AIPlayer::followPath(%this,%path,%node)
{
// Start the player following a path
%this.stopThread(0);
if (!isObject(%path))
{
%this.path = "";
@ -160,7 +159,7 @@ function AIPlayer::moveToNode(%this,%index)
// Move to the given path node index
%this.currentNode = %index;
%node = %this.path.getObject(%index);
%this.setMoveDestination(%node.getTransform(), %index == %this.targetNode);
%this.setMoveDestination(%node.getTransform());
}
//-----------------------------------------------------------------------------
@ -298,28 +297,26 @@ function AIPlayer::getNearestPlayerTarget(%this)
//-----------------------------------------------------------------------------
function AIManager::think(%this)
function AIPlayer::think(%player)
{
// We could hook into the player's onDestroyed state instead of having to
// "think", but thinking allows us to consider other things...
if (!isObject(%this.player))
%this.player = %this.spawn();
%this.schedule(500, think);
// Thinking allows us to consider other things...
%player.schedule(500, think);
}
function AIManager::spawn(%this)
function AIPlayer::spawn(%path)
{
%player = AIPlayer::spawnOnPath("Shootme", "MissionGroup/Paths/Path1");
%player = AIPlayer::spawnOnPath("Shootme", %path);
if (isObject(%player))
{
%player.followPath("MissionGroup/Paths/Path1", -1);
%player.followPath(%path, -1);
// slow this sucker down, I'm tired of chasing him!
%player.setMoveSpeed(0.5);
//%player.mountImage(xxxImage, 0);
//%player.setInventory(xxxAmmo, 1000);
//%player.think();
return %player;
}

View file

@ -405,10 +405,8 @@ function GameCore::startGame(%game)
$Game::Schedule = %game.schedule($Game::Duration * 1000, "onGameDurationEnd");
$Game::Running = true;
// // Start the AIManager
// new ScriptObject(AIManager) {};
// MissionCleanup.add(AIManager);
// AIManager.think();
// // Start the AI on the specified path
// AIPlayer::spawn("Path1");
}
function GameCore::endGame(%game, %client)
@ -423,9 +421,6 @@ function GameCore::endGame(%game, %client)
return;
}
// // Stop the AIManager
// AIManager.delete();
// Stop any game timers
cancel($Game::Schedule);
@ -699,7 +694,7 @@ function GameCore::onDeath(%game, %client, %sourceObject, %sourceClient, %damage
call( %sendMsgFunction, 'MsgClientKilled', %client, %sourceClient, %damLoc );
// Dole out points and check for win
if ( %damageType $= "Suicide" || %sourceClient == %client )
if (( %damageType $= "Suicide" || %sourceClient == %client ) && isObject(%sourceClient))
{
%game.incDeaths( %client, 1, true );
%game.incScore( %client, -1, false );

View file

@ -126,7 +126,7 @@ function WorldEditor::onSelectionCentroidChanged( %this )
function WorldEditor::init(%this)
{
// add objclasses which we do not want to collide with
%this.ignoreObjClass(Sky, AIObjective);
%this.ignoreObjClass(Sky);
// editing modes
%this.numEditModes = 3;