RuneI
Class Hammer

source: c:\runehov\RuneI\Classes\Hammer.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Inventory
         |
         +--Engine.Weapon
            |
            +--RuneI.Hammer
Direct Known Subclasses:BoneClub, DwarfBattleHammer, DwarfWorkHammer, RustyMace, TrialPitMace

class Hammer
extends Engine.Weapon

//============================================================================= // Hammer. //=============================================================================

Function Summary
 void SpawnHitEffect(vector HitLoc, vector HitNorm, int LowMask, int HighMask, Actor HitActor)
     
//=============================================================================
//
// SpawnHitEffect
//
// Spawns an effect based upon what was struck
//=============================================================================



Source Code


00001	//=============================================================================
00002	// Hammer.
00003	//=============================================================================
00004	class Hammer expands Weapon
00005		abstract;
00006		
00007	
00008	//=============================================================================
00009	//
00010	// SpawnHitEffect
00011	//
00012	// Spawns an effect based upon what was struck
00013	//=============================================================================
00014	function SpawnHitEffect(vector HitLoc, vector HitNorm, int LowMask, int HighMask, Actor HitActor)
00015	{	
00016		local int i,j;
00017		local EMatterType matter;
00018	
00019		// Determine what kind of matter was hit
00020		if ((HitActor.Skeletal != None) && (LowMask!=0 || HighMask!=0))
00021		{
00022			for (j=0; j<HitActor.NumJoints(); j++)
00023			{
00024				if (((j <  32) && ((LowMask  & (1 <<  j      )) != 0)) ||
00025					((j >= 32) && (j < 64) && ((HighMask & (1 << (j - 32))) != 0)) )
00026				{	// Joint j was hit
00027					matter = HitActor.MatterForJoint(j);
00028					break;
00029				}
00030			}
00031		}
00032		else if(HitActor.IsA('LevelInfo'))
00033		{	
00034			matter = HitActor.MatterTrace(HitLoc, Owner.Location, WeaponSweepExtent);
00035		}
00036		else
00037		{
00038			matter = HitActor.MatterForJoint(0);
00039		}
00040	
00041		PlayHitMatterSound(matter);
00042	
00043		// Create effects
00044		switch(matter)
00045		{
00046			case MATTER_FLESH:
00047				if(HitActor.IsA('Sark') || HitActor.IsA('SarkRagnar'))
00048					Spawn(class'SarkBloodMist',,, HitLoc, rotator(HitNorm)); // Sark blood
00049				else
00050					Spawn(class'BloodMist',,, HitLoc, rotator(HitNorm));
00051	
00052				if(BloodTexture != None && !Region.Zone.bWaterZone && !class'GameInfo'.Default.bVeryLowGore)
00053				{
00054					SkelGroupSkins[1] = BloodTexture;
00055				}
00056				break;
00057			case MATTER_WOOD:
00058				break;
00059			case MATTER_STONE:
00060				Spawn(class'HitStone',,, HitLoc, rotator(HitNorm));
00061				break;
00062			case MATTER_METAL:
00063				break;
00064			case MATTER_EARTH:
00065				Spawn(class'GroundDust',,, HitLoc, rotator(HitNorm));
00066				break;
00067			case MATTER_BREAKABLEWOOD:
00068				break;
00069			case MATTER_BREAKABLESTONE:
00070				break;
00071			case MATTER_WEAPON:
00072				break;
00073			case MATTER_SHIELD:
00074				break;
00075			case MATTER_ICE:
00076				break;
00077			case MATTER_WATER:
00078				break;
00079		}
00080	}
00081	
00082	defaultproperties
00083	{
00084	     MeleeType=MELEE_HAMMER
00085	     bCanBePoweredUp=True
00086	     DamageType=Blunt
00087	     ThrownSoundLOOP=Sound'WeaponsSnd.Throws.throw02L'
00088	     PowerUpSound=Sound'OtherSnd.Pickups.pickup01'
00089	     PoweredUpEndingSound=Sound'WeaponsSnd.PowerUps.powerend22'
00090	     PoweredUpEndSound=Sound'WeaponsSnd.PowerUps.powerend20'
00091	     SwipeClass=Class'RuneI.WeaponSwipeBlue'
00092	     A_Idle=weapon1_idle
00093	     A_Forward=S1_Walk
00094	     A_Backward=weapon1_backup
00095	     A_Forward45Right=S1_Walk45Right
00096	     A_Forward45Left=S1_Walk45Left
00097	     A_Backward45Right=weapon1_backup45Right
00098	     A_Backward45Left=weapon1_backup45Left
00099	     A_StrafeRight=StrafeRight
00100	     A_StrafeLeft=StrafeLeft
00101	     A_Jump=MOV_ALL_jump1_AA0S
00102	     A_ForwardAttack=LegsTest
00103	     A_AttackA=S1_attackA
00104	     A_AttackAReturn=S1_attackAreturn
00105	     A_AttackB=S1_attackB
00106	     A_AttackC=S1_attackC
00107	     A_AttackCReturn=S1_attackCReturn
00108	     A_AttackStandA=S1_attackA
00109	     A_AttackStandAReturn=S1_attackAreturn
00110	     A_AttackStandB=S1_attackB
00111	     A_AttackStandBReturn=S1_attackBreturn
00112	     A_AttackBackupA=S1_BackupAttackA
00113	     A_AttackBackupAReturn=S1_BackupAttackAReturn
00114	     A_AttackStrafeRight=S3_StrafeRightAttack
00115	     A_AttackStrafeLeft=S3_StrafeLeftAttack
00116	     A_JumpAttack=OneHandJumpAttack
00117	     A_Throw=S3_throw
00118	     A_Defend=H3_DefendTO
00119	     A_DefendIdle=H3_DefendIdle
00120	     A_PainFront=Onehand_painRight
00121	     A_PainBack=Onehand_painRight
00122	     A_PainLeft=Onehand_painLeft
00123	     A_PainRight=Onehand_painRight
00124	     A_PickupGroundLeft=H3_PickupLeft
00125	     A_PickupHighLeft=H3_PickupLeftHigh
00126	     A_Taunt=S3_taunt
00127	     RespawnTime=30.000000
00128	     RespawnSound=Sound'OtherSnd.Respawns.respawn01'
00129	     PickupMessageClass=Class'RuneI.PickupMessage'
00130	}

End Source Code