KevinBlast/marble/server/scripts/gems.cs

128 lines
2.6 KiB
C#
Raw Normal View History

2024-03-10 20:27:00 -04:00
//-----------------------------------------------------------------------------
// 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";
};