RuneI
Class WaterloggedShield

source: c:\runehov\RuneI\Classes\WaterloggedShield.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Inventory
         |
         +--Engine.Shield
            |
            +--RuneI.WaterloggedShield
Direct Known Subclasses:None

class WaterloggedShield
extends Engine.Shield

//============================================================================= // WaterloggedShield. //=============================================================================

Function Summary
 void DestroyEffect()
     
//-----------------------------------------------------------------------------
//
// DestroyEffect
//
// Used when shield is destroyed
//-----------------------------------------------------------------------------
 void PlayHitSound(name DamageType)
     
//=============================================================================
//
// Sound Functions
//
//=============================================================================



Source Code


00001	//=============================================================================
00002	// WaterloggedShield.
00003	//=============================================================================
00004	class WaterloggedShield expands Shield;
00005	
00006	
00007	
00008	//-----------------------------------------------------------------------------
00009	//
00010	// DestroyEffect
00011	//
00012	// Used when shield is destroyed
00013	//-----------------------------------------------------------------------------
00014	function DestroyEffect()
00015	{
00016		local int i, numchunks, NumSourceGroups;
00017		local debris d;
00018		local debriscloud c;
00019		local vector loc;
00020		local float scale;
00021	
00022		// Spawn cloud
00023		c = Spawn(class'DebrisCloud');
00024		if(c != None)
00025			c.SetRadius(Max(CollisionRadius,CollisionHeight));
00026	
00027		// Spawn debris
00028		numchunks = Clamp(Mass/10, 2, 15);
00029	
00030		// Find appropriate size of chunks
00031		scale = (CollisionRadius*CollisionRadius*CollisionHeight) / (numchunks*500);
00032		scale = scale ** 0.3333333;
00033		for (NumSourceGroups=1; NumSourceGroups<16; NumSourceGroups++)
00034		{
00035			if (SkelGroupSkins[NumSourceGroups] == None)
00036				break;
00037		}
00038	
00039		for (i=0; i<numchunks; i++)
00040		{
00041			loc = Location;
00042			loc.X += (FRand()*2-1)*CollisionRadius;
00043			loc.Y += (FRand()*2-1)*CollisionRadius;
00044			loc.Z += (FRand()*2-1)*CollisionHeight;
00045			d = Spawn(class'debriswood',,,loc);
00046			if(d != None)
00047			{
00048				d.SetSize(scale);
00049				d.SetTexture(SkelGroupSkins[i%NumSourceGroups]);
00050			}
00051		}
00052	}
00053	
00054	
00055	//=============================================================================
00056	//
00057	// Sound Functions
00058	//
00059	//=============================================================================
00060	function PlayHitSound(name DamageType)
00061	{
00062	}
00063	
00064	defaultproperties
00065	{
00066	     Health=30
00067	     DestroyedSound=Sound'WeaponsSnd.Shields.xtroy01'
00068	     PickupMessage="You got a Waterlogged Shield"
00069	     RespawnSound=Sound'OtherSnd.Respawns.respawn01'
00070	     DropSound=Sound'WeaponsSnd.Shields.xdrop01'
00071	     PickupMessageClass=Class'RuneI.PickupMessage'
00072	     LODCurve=LOD_CURVE_ULTRA_CONSERVATIVE
00073	     CollisionRadius=13.000000
00074	     CollisionHeight=3.000000
00075	     bCollideWorld=True
00076	     Mass=50.000000
00077	     Skeletal=SkelModel'weapons.VikingShield'
00078	}

End Source Code