RuneI
Class PlayerKarl

source: c:\runehov\RuneI\Classes\PlayerKarl.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Pawn
         |
         +--Engine.PlayerPawn
            |
            +--RuneI.RunePlayer
               |
               +--RuneI.PlayerKarl
Direct Known Subclasses:None

class PlayerKarl
extends RuneI.RunePlayer

//============================================================================= // PlayerKarl. //=============================================================================

Function Summary
 void ApplyGoreCap(int BodyPart)
     
//============================================================
//
// ApplyGoreCap
//
//============================================================
 int BodyPartForPolyGroup(int polygroup)
     
//============================================================
//
// BodyPartForPolyGroup
//
//============================================================
 int GetNumSkins()
     
//=============================================================================
// Skin support
//=============================================================================
 string GetSkinName(int Skin)
 Texture PainSkin(int BodyPart)
     
//============================================================
//
// PainSkin
//
// returns the pain skin for a given polygroup
//============================================================
 void SetSkinActor(Actor SkinActor, int NewSkin)
 void SpecialPainSkin(int BodyPart)



Source Code


00001	//=============================================================================
00002	// PlayerKarl.
00003	//=============================================================================
00004	class PlayerKarl expands RunePlayer;
00005	
00006	//============================================================
00007	//
00008	// PainSkin
00009	//
00010	// returns the pain skin for a given polygroup
00011	//============================================================
00012	function Texture PainSkin(int BodyPart)
00013	{
00014		switch(BodyPart)
00015		{
00016			case BODYPART_TORSO:
00017				SkelGroupSkins[1] = Texture'players.ragnarkarl_chestpain';
00018				break;
00019			case BODYPART_HEAD:
00020				SkelGroupSkins[5] = Texture'players.ragnarkarl_headpain';
00021				break;
00022			case BODYPART_LARM1:
00023				SkelGroupSkins[11] = Texture'players.ragnarkarl_armlegpain';
00024				SkelGroupSkins[9] = Texture'players.ragnarkarl_armlegpain';
00025				break;
00026			case BODYPART_RARM1:
00027				SkelGroupSkins[6] = Texture'players.ragnarkarl_armlegpain';
00028				SkelGroupSkins[8] = Texture'players.ragnarkarl_armlegpain';
00029				break;
00030			case BODYPART_LLEG1:
00031				SkelGroupSkins[3] = Texture'players.ragnarkarl_armlegpain';
00032				SkelGroupSkins[12] = Texture'players.ragnarkarl_armlegpain';
00033				break;
00034			case BODYPART_RLEG1:
00035				SkelGroupSkins[2] = Texture'players.ragnarkarl_armlegpain';
00036				SkelGroupSkins[13] = Texture'players.ragnarkarl_armlegpain';
00037				break;
00038		}
00039		return None;
00040	}
00041	
00042	//============================================================
00043	//
00044	// BodyPartForPolyGroup
00045	//
00046	//============================================================
00047	function int BodyPartForPolyGroup(int polygroup)
00048	{
00049		switch(polygroup)
00050		{
00051			case 5:								return BODYPART_HEAD;
00052			case 9:								return BODYPART_LARM1;
00053			case 8:								return BODYPART_RARM1;
00054			case 3: case 12:					return BODYPART_LLEG1;
00055			case 2:	case 13:					return BODYPART_RLEG1;
00056			case 1: case 4: case 7: case 10:
00057				case 6: case 11:				return BODYPART_TORSO;
00058		}
00059		return BODYPART_BODY;
00060	}
00061	
00062	//============================================================
00063	//
00064	// ApplyGoreCap
00065	//
00066	//============================================================
00067	function ApplyGoreCap(int BodyPart)
00068	{
00069		switch(BodyPart)
00070		{
00071			case BODYPART_LARM1:
00072				SkelGroupSkins[10] = Texture'runefx.gore_bone';
00073				SkelGroupFlags[10] = SkelGroupFlags[10] & ~POLYFLAG_INVISIBLE;
00074				break;
00075			case BODYPART_RARM1:
00076				SkelGroupSkins[7] = Texture'runefx.gore_bone';
00077				SkelGroupFlags[7] = SkelGroupFlags[7] & ~POLYFLAG_INVISIBLE;
00078				break;
00079			case BODYPART_HEAD:
00080				SkelGroupSkins[4] = Texture'runefx.gore_bone';
00081				SkelGroupFlags[4] = SkelGroupFlags[4] & ~POLYFLAG_INVISIBLE;
00082				break;
00083		}
00084	}
00085	
00086	//================================================
00087	//
00088	// SeveredLimbClass
00089	//
00090	//================================================
00091	function class<Actor> SeveredLimbClass(int BodyPart)
00092	{
00093		switch(BodyPart)
00094		{
00095			case BODYPART_LARM1:
00096				return class'KarlLArm';
00097			case BODYPART_RARM1:
00098				return class'KarlRArm';
00099			case BODYPART_HEAD:
00100				return class'KarlHead';
00101				break;
00102		}
00103	
00104		return None;
00105	}
00106	
00107	//=============================================================================
00108	// Skin support
00109	//=============================================================================
00110	static function int GetNumSkins()
00111	{
00112		return 2;
00113	}
00114	
00115	static function string GetSkinName(int Skin)
00116	{
00117		switch(Skin)
00118		{
00119			case 0:		return "Default";
00120			case 1:		return "Jarl";
00121		}
00122	
00123		return "";
00124	}
00125	
00126	static function SetSkinActor(actor SkinActor, int NewSkin)
00127	{
00128		local texture tex1, tex2, tex3;
00129		local int i;
00130	
00131		switch(NewSkin)
00132		{
00133			case 0:
00134				for (i=0; i<16; i++)
00135				{
00136					SkinActor.SkelGroupSkins[i] = Default.SkelGroupSkins[i];
00137				}
00138				break;
00139			case 1:
00140				tex1 = Texture(DynamicLoadObject("Players.ragnarJarl_armleg", class'Texture'));
00141				tex2 = Texture(DynamicLoadObject("Players.ragnarJarl_chest", class'Texture'));
00142				tex3 = Texture(DynamicLoadObject("Players.ragnarJarl_head", class'Texture'));
00143	 			SkinActor.SkelGroupSkins[1]=tex2;
00144	 			SkinActor.SkelGroupSkins[2]=tex1;
00145	 			SkinActor.SkelGroupSkins[3]=tex1;
00146	 			SkinActor.SkelGroupSkins[4]=tex1;
00147	 			SkinActor.SkelGroupSkins[5]=tex3;
00148	 			SkinActor.SkelGroupSkins[6]=tex1;
00149	 			SkinActor.SkelGroupSkins[7]=tex1;
00150	 			SkinActor.SkelGroupSkins[8]=tex1;
00151	 			SkinActor.SkelGroupSkins[9]=tex1;
00152	 			SkinActor.SkelGroupSkins[10]=tex1;
00153	 			SkinActor.SkelGroupSkins[11]=tex1;
00154	 			SkinActor.SkelGroupSkins[12]=tex1;
00155	 			SkinActor.SkelGroupSkins[13]=tex1;
00156				break;
00157		}
00158	}
00159	
00160	function SpecialPainSkin(int BodyPart)
00161	{
00162		local texture tex1, tex2, tex3;
00163	
00164		switch(CurrentSkin)
00165		{
00166			case 1:
00167				tex1 = Texture(DynamicLoadObject("Players.ragnarJarl_armlegpain", class'Texture'));
00168				tex2 = Texture(DynamicLoadObject("Players.ragnarJarl_chestpain", class'Texture'));
00169				tex3 = Texture(DynamicLoadObject("Players.ragnarJarl_headpain", class'Texture'));
00170				switch(BodyPart)
00171				{
00172					case BODYPART_TORSO:
00173						SkelGroupSkins[1] = tex2;
00174						break;
00175					case BODYPART_HEAD:
00176						SkelGroupSkins[5] = tex3;
00177						break;
00178					case BODYPART_LARM1:
00179						SkelGroupSkins[11] = tex1;
00180						SkelGroupSkins[9] = tex1;
00181						break;
00182					case BODYPART_RARM1:
00183						SkelGroupSkins[6] = tex1;
00184						SkelGroupSkins[8] = tex1;
00185						break;
00186					case BODYPART_LLEG1:
00187						SkelGroupSkins[3] = tex1;
00188						SkelGroupSkins[12] = tex1;
00189						break;
00190					case BODYPART_RLEG1:
00191						SkelGroupSkins[2] = tex1;
00192						SkelGroupSkins[13] = tex1;
00193						break;
00194				}
00195				break;
00196		}
00197	}
00198	
00199	defaultproperties
00200	{
00201	     HitSoundLow(0)=Sound'CreaturesSnd.Vikings.vike2hit01'
00202	     HitSoundLow(1)=Sound'CreaturesSnd.Vikings.vike2hit01'
00203	     HitSoundLow(2)=Sound'CreaturesSnd.Vikings.vike2hit01'
00204	     HitSoundMed(0)=Sound'CreaturesSnd.Vikings.vike2hit02'
00205	     HitSoundMed(1)=Sound'CreaturesSnd.Vikings.vike2hit02'
00206	     HitSoundMed(2)=Sound'CreaturesSnd.Vikings.vike2hit02'
00207	     HitSoundHigh(0)=Sound'CreaturesSnd.Vikings.vike2hit03'
00208	     HitSoundHigh(1)=Sound'CreaturesSnd.Vikings.vike2hit03'
00209	     HitSoundHigh(2)=Sound'CreaturesSnd.Vikings.vike2hit03'
00210	     CarcassType=Class'RuneI.PlayerKarlCarcass'
00211	     Die=Sound'CreaturesSnd.Vikings.vike2death01'
00212	     Die2=Sound'CreaturesSnd.Vikings.vike2death02'
00213	     Die3=Sound'CreaturesSnd.Vikings.vike2death03'
00214	     MaxMouthRot=7000
00215	     MaxMouthRotRate=65535
00216	     SkelMesh=4
00217	     SkelGroupSkins(0)=Texture'Players.Ragnarragd_arms'
00218	     SkelGroupSkins(1)=Texture'Players.Ragnarkarl_chest'
00219	     SkelGroupSkins(2)=Texture'Players.Ragnarkarl_armleg'
00220	     SkelGroupSkins(3)=Texture'Players.Ragnarkarl_armleg'
00221	     SkelGroupSkins(4)=Texture'Players.Ragnarragd_arms'
00222	     SkelGroupSkins(5)=Texture'Players.Ragnarkarl_head'
00223	     SkelGroupSkins(6)=Texture'Players.Ragnarkarl_armleg'
00224	     SkelGroupSkins(7)=Texture'Players.Ragnarragd_arms'
00225	     SkelGroupSkins(8)=Texture'Players.Ragnarkarl_armleg'
00226	     SkelGroupSkins(9)=Texture'Players.Ragnarkarl_armleg'
00227	     SkelGroupSkins(10)=Texture'Players.Ragnarragd_arms'
00228	     SkelGroupSkins(11)=Texture'Players.Ragnarkarl_armleg'
00229	     SkelGroupSkins(12)=Texture'Players.Ragnarkarl_armleg'
00230	     SkelGroupSkins(13)=Texture'Players.Ragnarkarl_armleg'
00231	     SkelGroupSkins(14)=Texture'Players.Ragnarragd_arms'
00232	     SkelGroupSkins(15)=Texture'Players.Ragnarragd_arms'
00233	}

End Source Code