137 lines
2.7 KiB
C#
137 lines
2.7 KiB
C#
//-----------------------------------------------------------------------------
|
|
// Torque Game Engine
|
|
//
|
|
// Copyright (c) 2001 GarageGames.Com
|
|
//-----------------------------------------------------------------------------
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Gem base class
|
|
//-----------------------------------------------------------------------------
|
|
|
|
datablock AudioProfile(GotGemSfx)
|
|
{
|
|
filename = "~/data/sound/gotGem.wav";
|
|
description = AudioDefault3d;
|
|
preload = true;
|
|
};
|
|
|
|
datablock AudioProfile(GotAllGemsSfx)
|
|
{
|
|
filename = "~/data/sound/gotAllGems.wav";
|
|
description = AudioDefault3d;
|
|
preload = true;
|
|
};
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
$GemSkinColors[0] = "base";
|
|
$GemSkinColors[1] = "base";
|
|
$GemSkinColors[2] = "blue";
|
|
$GemSkinColors[3] = "red";
|
|
$GemSkinColors[4] = "yellow";
|
|
$GemSkinColors[5] = "purple";
|
|
$GemSkinColors[6] = "orange";
|
|
$GemSkinColors[7] = "green";
|
|
$GemSkinColors[8] = "turquoise";
|
|
$GemSkinColors[9] = "black";
|
|
|
|
function Gem::onAdd(%this,%obj)
|
|
{
|
|
if (%this.skin !$= "")
|
|
%obj.setSkinName(%this.skin);
|
|
else {
|
|
// Random skin if none assigned
|
|
%obj.setSkinName($GemSkinColors[getRandom(9)]);
|
|
}
|
|
}
|
|
|
|
function Gem::onPickup(%this,%obj,%user,%amount)
|
|
{
|
|
Parent::onPickup(%this,%obj,%user,%amount);
|
|
%user.client.onFoundGem(%amount);
|
|
return true;
|
|
}
|
|
|
|
function Gem::saveState(%this,%obj,%state)
|
|
{
|
|
%state.object[%obj.getId()] = %obj.isHidden();
|
|
}
|
|
|
|
function Gem::restoreState(%this,%obj,%state)
|
|
{
|
|
%obj.hide(%state.object[%obj.getId()]);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
datablock ItemData(GemItem)
|
|
{
|
|
// Mission editor category
|
|
category = "Gems";
|
|
className = "Gem";
|
|
|
|
// Basic Item properties
|
|
shapeFile = "~/data/shapes/items/gem.dts";
|
|
mass = 1;
|
|
friction = 1;
|
|
elasticity = 0.3;
|
|
|
|
// Dynamic properties defined by the scripts
|
|
pickupName = "a gem!";
|
|
maxInventory = 1;
|
|
noRespawn = true;
|
|
gemType = 1;
|
|
noPickupMessage = true;
|
|
};
|
|
|
|
datablock ItemData(GemItemBlue: GemItem)
|
|
{
|
|
skin = "blue";
|
|
};
|
|
|
|
datablock ItemData(GemItemRed: GemItem)
|
|
{
|
|
skin = "red";
|
|
};
|
|
|
|
datablock ItemData(GemItemYellow: GemItem)
|
|
{
|
|
skin = "yellow";
|
|
};
|
|
|
|
datablock ItemData(GemItemPurple: GemItem)
|
|
{
|
|
skin = "purple";
|
|
};
|
|
|
|
datablock ItemData(GemItemGreen: GemItem)
|
|
{
|
|
skin = "Green";
|
|
};
|
|
|
|
datablock ItemData(GemItemTurquoise: GemItem)
|
|
{
|
|
skin = "Turquoise";
|
|
};
|
|
|
|
datablock ItemData(GemItemOrange: GemItem)
|
|
{
|
|
skin = "orange";
|
|
};
|
|
|
|
datablock ItemData(GemItemBlack: GemItem)
|
|
{
|
|
skin = "black";
|
|
};
|
|
|
|
datablock ItemData(GemItemPlatinum: GemItem)
|
|
{
|
|
skin = "platinum";
|
|
};
|
|
|
|
datablock ItemData(GemItemPink: GemItem)
|
|
{
|
|
skin = "base";
|
|
};
|