TribesReplay/base/scripts/packs/shieldpack.cs
2017-07-17 22:51:48 -04:00

83 lines
1.9 KiB
C#

// ------------------------------------------------------------------
// SHIELD PACK
// can be used by any armor type
// while activated, absorbs damage at cost of energy
datablock AudioProfile(ShieldPackActivateSound)
{
filename = "fx/packs/shield_on.wav";
description = ClosestLooping3d;
preload = true;
};
datablock ShapeBaseImageData(ShieldPackImage)
{
shapeFile = "pack_upgrade_shield.dts";
item = ShieldPack;
mountPoint = 1;
offset = "0 0 0";
usesEnergy = true;
minEnergy = 3;
stateName[0] = "Idle";
stateTransitionOnTriggerDown[0] = "Activate";
stateName[1] = "Activate";
stateScript[1] = "onActivate";
stateSequence[1] = "fire";
stateSound[1] = ShieldPackActivateSound;
stateEnergyDrain[1] = 9;
stateTransitionOnTriggerUp[1] = "Deactivate";
stateTransitionOnNoAmmo[1] = "Deactivate";
stateName[2] = "Deactivate";
stateScript[2] = "onDeactivate";
stateTransitionOnTimeout[2] = "Idle";
};
datablock ItemData(ShieldPack)
{
className = Pack;
catagory = "Packs";
shapeFile = "pack_upgrade_shield.dts";
mass = 1;
elasticity = 0.2;
friction = 0.6;
pickupRadius = 2;
rotate = true;
image = "ShieldPackImage";
pickUpName = "a shield pack";
computeCRC = true;
};
function ShieldPackImage::onMount(%data, %obj, %node)
{
}
function ShieldPackImage::onUnmount(%data, %obj, %node)
{
%obj.setImageTrigger(%node, false);
%obj.isShielded = "";
}
function ShieldPackImage::onActivate(%data, %obj, %slot)
{
messageClient(%obj.client, 'MsgShieldPackOn', '\c2Shield pack on.');
%obj.isShielded = true;
}
function ShieldPackImage::onDeactivate(%data, %obj, %slot)
{
messageClient(%obj.client, 'MsgShieldPackOff', '\c2Shield pack off.');
%obj.setImageTrigger(%slot,false);
%obj.isShielded = "";
}
function ShieldPack::onPickup(%this, %obj, %shape, %amount)
{
// created to prevent console errors
}