2005-07-30 22:25:38 +02:00
|
|
|
/*
|
|
|
|
DESCRIPTION : Functions for manipulating players and their properties (eg resources).
|
|
|
|
NOTES :
|
|
|
|
*/
|
|
|
|
|
|
|
|
// ====================================================================
|
|
|
|
|
|
|
|
function createResources()
|
|
|
|
{
|
|
|
|
// Defines all resource types for future use.
|
2005-09-14 02:50:25 +02:00
|
|
|
// Assigns the value of game setup resource values as starting values.
|
2005-07-30 22:25:38 +02:00
|
|
|
|
2005-10-13 22:04:22 +02:00
|
|
|
// Numbers for resource modes Low/Normal/High - tweak as needed for balancing
|
|
|
|
var resLowValue = Array(100,50,0,0);
|
|
|
|
var resNormalValue = Array(200,200,100,100);
|
|
|
|
var resHighValue = Array(1000,1000,1000,1000);
|
|
|
|
|
|
|
|
if (getCurrItemValue ("pgSessionSetupResources") == "Low") {
|
|
|
|
// Give low resources
|
|
|
|
var resValue = resLowValue;
|
|
|
|
} else if (getCurrItemValue("pgSessionSetupResources") == "Normal") {
|
|
|
|
// Give normal resources
|
|
|
|
var resValue = resNormalValue;
|
|
|
|
} else if (getCurrItemValue ("pgSessionSetupResources") == "High") {
|
|
|
|
// Give high resources
|
|
|
|
var resValue = resHighValue;
|
|
|
|
} else {
|
|
|
|
// Do not give any resources
|
|
|
|
var resValue = Array(0,0,0,0);
|
|
|
|
}
|
|
|
|
|
|
|
|
addResource ("Food", Number(resValue[0]));
|
|
|
|
addResource ("Wood", Number(resValue[1]));
|
|
|
|
addResource ("Stone", Number(resValue[2]));
|
|
|
|
addResource ("Ore", Number(resValue[3]));
|
2005-07-30 22:25:38 +02:00
|
|
|
addResource ("Population", 0);
|
|
|
|
addResource ("Housing", 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
// ====================================================================
|
|
|
|
|
|
|
|
function addResource (resourceName, resourceQty)
|
|
|
|
{
|
|
|
|
// Creates a resource type.
|
|
|
|
|
2005-09-14 02:50:25 +02:00
|
|
|
// Ensure resource name is title-case.
|
|
|
|
resourceName = toTitleCase (resourceName);
|
|
|
|
// Create uppercase name.
|
|
|
|
resourceNameU = resourceName.toUpperCase();
|
2005-07-30 22:25:38 +02:00
|
|
|
|
|
|
|
if (!localPlayer.resource)
|
|
|
|
{
|
|
|
|
// Define the base resource group if it does not exist.
|
|
|
|
localPlayer.resource = new Array();
|
|
|
|
}
|
|
|
|
|
|
|
|
// Store resource's name and starting value.
|
2005-09-14 02:50:25 +02:00
|
|
|
localPlayer.resource.valueOf()[resourceNameU] = resourceQty;
|
|
|
|
// Update GUI resource counter.
|
|
|
|
if (resourceName != "Housing")
|
|
|
|
getGUIObjectByName ("snResourceCounter_" + resourceName).caption = resourceQty;
|
2005-07-30 22:25:38 +02:00
|
|
|
|
2005-09-14 02:50:25 +02:00
|
|
|
console.write( "Added " + resourceName + " (" + resourceQty + ")" );
|
|
|
|
}
|
|
|
|
|
|
|
|
// ====================================================================
|
|
|
|
|
|
|
|
function setResources (resourceName, resourceQty)
|
|
|
|
{
|
|
|
|
// Generic function to set the value of a resource in the player's pool.
|
|
|
|
|
|
|
|
// Ensure resource name is title-case.
|
|
|
|
resourceName = toTitleCase (resourceName);
|
|
|
|
// Create uppercase name.
|
|
|
|
resourceNameU = resourceName.toUpperCase();
|
|
|
|
|
|
|
|
if ( localPlayer.resource.valueOf()[resourceNameU] )
|
|
|
|
{
|
|
|
|
// Set resource value.
|
|
|
|
localPlayer.resource.valueOf()[resourceNameU] = resourceQty;
|
|
|
|
// Update GUI resource counter.
|
|
|
|
getGUIObjectByName ("snResourceCounter_" + resourceName).caption = localPlayer.resource.valueOf()[resourceNameU];
|
|
|
|
|
|
|
|
console.write ("Resource set to " + resourceQty + " " + resourceName + ".");
|
|
|
|
return ( true );
|
|
|
|
}
|
|
|
|
|
|
|
|
// If the resource wasn't in the list, report an error.
|
|
|
|
console.write ("Failed to set resource " + resourceName + " to " + resourceQty);
|
|
|
|
return ( false ) ;
|
2005-07-30 22:25:38 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// ====================================================================
|
|
|
|
|
|
|
|
function giveResources (resourceName, resourceQty)
|
|
|
|
{
|
|
|
|
// Generic function to add resources to the player's Pool.
|
|
|
|
|
2005-09-14 02:50:25 +02:00
|
|
|
// Ensure resource name is title-case.
|
|
|
|
resourceName = toTitleCase (resourceName);
|
|
|
|
// Create uppercase name.
|
|
|
|
resourceNameU = resourceName.toUpperCase();
|
|
|
|
|
|
|
|
if ( localPlayer.resource.valueOf()[resourceNameU] )
|
2005-07-30 22:25:38 +02:00
|
|
|
{
|
2005-09-14 02:50:25 +02:00
|
|
|
// Set resource value.
|
|
|
|
localPlayer.resource.valueOf()[resourceNameU] += resourceQty;
|
|
|
|
// Update GUI resource counter.
|
|
|
|
getGUIObjectByName ("snResourceCounter_" + resourceName).caption = localPlayer.resource.valueOf()[resourceNameU];
|
|
|
|
|
|
|
|
console.write ("Earned " + resourceQty + " " + resourceName + ".");
|
|
|
|
return ( true );
|
2005-07-30 22:25:38 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// If the resource wasn't in the list, report an error.
|
2005-09-14 02:50:25 +02:00
|
|
|
console.write ("Failed to add " + resourceQty + " to resource " + resourceName);
|
|
|
|
return ( false );
|
2005-07-30 22:25:38 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// ====================================================================
|
|
|
|
|
|
|
|
function deductResources (resourceName, resourceQty)
|
|
|
|
{
|
|
|
|
// Generic function to remove resources from the player's Pool.
|
|
|
|
|
2005-09-14 02:50:25 +02:00
|
|
|
// Ensure resource name is title-case.
|
|
|
|
resourceName = toTitleCase (resourceName);
|
|
|
|
// Create uppercase name.
|
|
|
|
resourceNameU = resourceName.toUpperCase();
|
|
|
|
|
|
|
|
if( localPlayer.resource.valueOf()[resourceNameU] )
|
2005-07-30 22:25:38 +02:00
|
|
|
{
|
2005-09-14 02:50:25 +02:00
|
|
|
// Set resource value.
|
|
|
|
localPlayer.resource.valueOf()[resourceNameU] -= resourceQty;
|
|
|
|
// Update GUI resource counter.
|
|
|
|
getGUIObjectByName ("snResourceCounter_" + resourceName).caption = localPlayer.resource.valueOf()[resourceNameU];
|
|
|
|
|
|
|
|
console.write("Deducted " + resourceQty + " " + resourceName + ".");
|
|
|
|
return( true );
|
2005-07-30 22:25:38 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// If the resource wasn't in the list, report an error.
|
2005-09-14 02:50:25 +02:00
|
|
|
console.write ("Failed to deduct " + resourceQty + " from resource " + resourceName);
|
2005-07-30 22:25:38 +02:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2005-09-15 04:03:01 +02:00
|
|
|
// ====================================================================
|