diff --git a/ServerExt/Classes/ExtCharacterInfo.uc b/ServerExt/Classes/ExtCharacterInfo.uc index 4316bbe..0445bb2 100644 --- a/ServerExt/Classes/ExtCharacterInfo.uc +++ b/ServerExt/Classes/ExtCharacterInfo.uc @@ -191,13 +191,15 @@ static final function SetHeadMeshAndSkin( KFCharacterInfo_Human C, byte CurrentHeadSkinIndex, KFPawn KFP ) { + local string CharHeadMeshName; local SkeletalMesh CharHeadMesh; if ( C.HeadVariants.length > 0 ) { CurrentHeadMeshIndex = (CurrentHeadMeshIndex < C.HeadVariants.length) ? CurrentHeadMeshIndex : 0; - CharHeadMesh = SkeletalMesh(SafeLoadObject(C.HeadVariants[CurrentHeadMeshIndex].MeshName, class'SkeletalMesh')); + CharHeadMeshName = C.HeadVariants[CurrentHeadMeshIndex].MeshName; + CharHeadMesh = SkeletalMesh(DynamicLoadObject(CharHeadMeshName, class'SkeletalMesh')); // Parent the third person head mesh to the body mesh KFP.ThirdPersonHeadMeshComponent.SetSkeletalMesh(CharHeadMesh); @@ -223,17 +225,16 @@ static final function SetAttachmentSkinMaterial( KFCharacterInfo_Human C, KFPawn KFP) { local int i; - if (KFP.WorldInfo.NetMode != NM_DedicatedServer) { - if( CurrentVariant.SkinVariations.length > 0 ) + if( CurrentVariant.AttachmentItem.SkinVariations.length > 0 ) { // Assign a skin to the attachment mesh as a material override - if ( NewSkinIndex < CurrentVariant.SkinVariations.length ) + if ( NewSkinIndex < CurrentVariant.AttachmentItem.SkinVariations.length ) { KFP.ThirdPersonAttachments[PawnAttachmentIndex].SetMaterial( - CurrentVariant.SkinMaterialID, - CurrentVariant.SkinVariations[NewSkinIndex].Skin); + CurrentVariant.AttachmentItem.SkinMaterialID, + CurrentVariant.AttachmentItem.SkinVariations[NewSkinIndex].Skin); } else { @@ -273,7 +274,9 @@ static final function SetAttachmentMeshAndSkin( KFCharacterInfo_Human C, local int AttachmentSlotIndex; if (KFP.WorldInfo.NetMode == NM_DedicatedServer) + { return; + } // Clear any previously attachments for the same slot //DetachConflictingAttachments(CurrentAttachmentMeshIndex, KFP, KFPRI); @@ -282,33 +285,35 @@ static final function SetAttachmentMeshAndSkin( KFCharacterInfo_Human C, // Since cosmetic attachments are optional, do not choose index 0 if none is // specified unlike the the head and body meshes - if ( C.CosmeticVariants.length > 0 && CurrentAttachmentMeshIndex < C.CosmeticVariants.length ) + if ( C.CosmeticVariants.length > 0 && + CurrentAttachmentMeshIndex < C.CosmeticVariants.length ) { // Cache values from character info - CharAttachmentMeshName = C.CosmeticVariants[CurrentAttachmentMeshIndex].MeshName; - CharAttachmentSocketName = C.CosmeticVariants[CurrentAttachmentMeshIndex].SocketName; - MaxDrawDistance = C.CosmeticVariants[CurrentAttachmentMeshIndex].MaxDrawDistance; + CharAttachmentMeshName = C.GetMeshByIndex(CurrentAttachmentMeshIndex); + CharAttachmentSocketName = C.CosmeticVariants[CurrentAttachmentMeshIndex].AttachmentItem.SocketName; + MaxDrawDistance = C.CosmeticVariants[CurrentAttachmentMeshIndex].AttachmentItem.MaxDrawDistance; AttachmentLocationRelativeToSocket = C.CosmeticVariants[CurrentAttachmentMeshIndex].RelativeTranslation; AttachmentRotationRelativeToSocket = C.CosmeticVariants[CurrentAttachmentMeshIndex].RelativeRotation; AttachmentScaleRelativeToSocket = C.CosmeticVariants[CurrentAttachmentMeshIndex].RelativeScale; - bIsSkeletalAttachment = C.CosmeticVariants[CurrentAttachmentMeshIndex].bIsSkeletalAttachment; + bIsSkeletalAttachment = C.CosmeticVariants[CurrentAttachmentMeshIndex].AttachmentItem.bIsSkeletalAttachment; + // If previously attached and we could have changed outfits (e.g. local player UI) then re-validate + // required skeletal mesh socket. Must be after body mesh DLO, but before AttachComponent. + if ( KFP.IsLocallyControlled() ) + { + if ( CharAttachmentSocketName != '' && KFP.Mesh.GetSocketByName(CharAttachmentSocketName) == None ) + { + C.RemoveAttachmentMeshAndSkin(AttachmentSlotIndex, KFP, KFPRI); + return; + } + } + + //`log("AttachmentLocationRelativeToSocket: x="$AttachmentLocationRelativeToSocket.x@"y="$AttachmentLocationRelativeToSocket.y@"z="$AttachmentLocationRelativeToSocket.z); // If it is a skeletal attachment, parent anim it to the body mesh if( bIsSkeletalAttachment ) { if( SkeletalMeshComponent(KFP.ThirdPersonAttachments[AttachmentSlotIndex]) != none ) { - // If previously attached and we could have changed outfits (e.g. local player UI) then re-validate - // required skeletal mesh socket. Must be after body mesh DLO, but before AttachComponent. - if ( KFP.IsLocallyControlled() ) - { - if ( CharAttachmentSocketName != '' && KFP.Mesh.GetSocketByName(CharAttachmentSocketName) == None ) - { - C.RemoveAttachmentMeshAndSkin(AttachmentSlotIndex, KFP, KFPRI); - return; - } - } - SkeletalAttachment = SkeletalMeshComponent(KFP.ThirdPersonAttachments[AttachmentSlotIndex]); } else @@ -319,7 +324,7 @@ static final function SetAttachmentMeshAndSkin( KFCharacterInfo_Human C, } // Load and assign skeletal mesh - CharacterAttachmentSkelMesh = SkeletalMesh(SafeLoadObject(CharAttachmentMeshName, class'SkeletalMesh')); + CharacterAttachmentSkelMesh = SkeletalMesh(DynamicLoadObject(CharAttachmentMeshName, class'SkeletalMesh')); SkeletalAttachment.SetSkeletalMesh(CharacterAttachmentSkelMesh); // Parent animation and LOD transitions to body mesh @@ -348,7 +353,7 @@ static final function SetAttachmentMeshAndSkin( KFCharacterInfo_Human C, } // Load and assign static mesh - CharAttachmentStaticMesh = StaticMesh(SafeLoadObject(CharAttachmentMeshName, class'StaticMesh')); + CharAttachmentStaticMesh = StaticMesh(DynamicLoadObject(CharAttachmentMeshName, class'StaticMesh')); StaticAttachment.SetStaticMesh(CharAttachmentStaticMesh); // Set properties @@ -371,12 +376,13 @@ static final function SetAttachmentMeshAndSkin( KFCharacterInfo_Human C, KFP.ThirdPersonAttachmentBitMask = KFP.ThirdPersonAttachmentBitMask | (1 << AttachmentSlotIndex); KFP.ThirdPersonAttachmentSocketNames[AttachmentSlotIndex] = CharAttachmentSocketName; - SetAttachmentSkinMaterial(C, + SetAttachmentSkinMaterial( + C, AttachmentSlotIndex, C.CosmeticVariants[CurrentAttachmentMeshIndex], CurrentAttachmentSkinIndex, KFP); - } + } // Treat `CLEARED_ATTACHMENT_INDEX as special value (for client detachment) if( CurrentAttachmentMeshIndex == `CLEARED_ATTACHMENT_INDEX ) diff --git a/ServerExt/Classes/ExtEmoteList.uc b/ServerExt/Classes/ExtEmoteList.uc new file mode 100644 index 0000000..988ddac --- /dev/null +++ b/ServerExt/Classes/ExtEmoteList.uc @@ -0,0 +1,110 @@ +class ExtEmoteList extends Object + abstract; + +var const array Emotes; + +static final function name GetUnlockedEmote( int ItemId, ExtPlayerController PC ) +{ + local int i; + local name Anim; + local ExtPlayerReplicationInfo PRI; + + i = default.Emotes.Find('Id', ItemId); + if( i > -1 ) + { + Anim = default.Emotes[i].AnimName; + PRI = ExtPlayerReplicationInfo(PC.PlayerReplicationInfo); + + if( PRI == None ) + return Anim; + + /* + if( InStr(string(Anim), "Deluxe") != INDEX_NONE && PRI.AdminType == 255 ) + return 'NONE'; + */ + else return Anim; + } + + return 'NONE'; +} + +static final function SaveEquippedEmote( int ItemId, ExtPlayerController PC ) +{ + if( PC == None ) + return; + + PC.SelectedEmoteIndex = ItemId; + PC.SaveConfig(); +} + +static final function array GetEmoteArray() +{ + return default.Emotes; +} + +static final function byte GetEmoteIndex( int ItemId ) +{ + local int i; + i = default.Emotes.Find('Id', ItemId); + if( i > -1 ) + return i; + + return -1; +} + +static final function int GetEquippedEmoteId(ExtPlayerController PC) +{ + if( PC == None ) + return -1; + + return PC.SelectedEmoteIndex; +} + +static final function name GetEmoteFromIndex(byte EmoteIndex) +{ + return default.Emotes[EmoteIndex].AnimName; +} + +defaultproperties +{ + Emotes.Add((Id=4515, ItemName = "LetsGetCrazy", AnimName="Emote_01_LetsGetCrazy", IconPath="EMOTE_TEX.Emote_LetsGoCrazy_512")) + Emotes.Add((Id=4516, ItemName = "ThunderClap", AnimName="Emote_02_ThunderClap", IconPath="EMOTE_TEX.Emote_Thunderclap_512")) + Emotes.Add((Id=4517, ItemName = "UncleCharlie", AnimName="Emote_03_UncleCharlie", IconPath="EMOTE_TEX.Emote_UncleCharlie_512")) + Emotes.Add((Id=4518, ItemName = "WackyWave", AnimName="Emote_04_WackyWave", IconPath="EMOTE_TEX.Emote_WackyWave_512")) + Emotes.Add((Id=4519, ItemName = "RainingDosh", AnimName="Emote_05_RainingDosh", IconPath="EMOTE_TEX.Emote_RainingDosh_512")) + Emotes.Add((Id=4520, ItemName = "LionUppercut", AnimName="Emote_06_LionUppercut", IconPath="EMOTE_TEX.Emote_Uppercut_512")) + Emotes.Add((Id=0, ItemName = "MatingRitual", AnimName="Emote_07_MatingRitual", IconPath="EMOTE_TEX.Emote_MatingRitual_512")) + Emotes.Add((Id=4522, ItemName = "KickinIt", AnimName="Emote_08_KickinIt", IconPath="EMOTE_TEX.Emote_KicknIt_512")) + Emotes.Add((Id=4523, ItemName = "Fireball", AnimName="Emote_09_Fireball", IconPath="EMOTE_TEX.Emote_Fireball_512")) + Emotes.Add((Id=4524, ItemName = "Makeitrain", AnimName="Emote_10_Makeitrain", IconPath="EMOTE_TEX.Emote_MknRain_512")) + Emotes.Add((Id=4744, ItemName = "TheCossack", AnimName="Emote_01_Dance", IconPath="EMOTE_TEX_02.Emote_02_Squat_Dance_512")) + Emotes.Add((Id=4745, ItemName = "TheWave", AnimName="Emote_02_Dance", IconPath="EMOTE_TEX_02.Emote_02_The_Wave_512")) + Emotes.Add((Id=4746, ItemName = "Breakin", AnimName="Emote_03_Dance", IconPath="EMOTE_TEX_02.Emote_02_Handstand_512")) + Emotes.Add((Id=4747, ItemName = "NoHands", AnimName="Emote_04_Dance", IconPath="EMOTE_TEX_02.Emote_02_Kap_Kick_512")) + Emotes.Add((Id=4748, ItemName = "HealClick", AnimName="Emote_05_Dance", IconPath="EMOTE_TEX_02.Emote_02_Click_It_512")) + Emotes.Add((Id=4749, ItemName = "TheSprinkler", AnimName="Emote_06_Dance", IconPath="EMOTE_TEX_02.Emote_02_The_Sprinkler_512")) + Emotes.Add((Id=4750, ItemName = "Maniac", AnimName="Emote_07_Dance", IconPath="EMOTE_TEX_02.Emote_02_Running_Dosh_512")) + Emotes.Add((Id=4751, ItemName = "RunningMan", AnimName="Emote_08_Dance", IconPath="EMOTE_TEX_02.Emote_02_Running_Man_512")) + Emotes.Add((Id=4752, ItemName = "TheRobot", AnimName="Emote_09_Dance", IconPath="EMOTE_TEX_02.Emote_02_The_Robot_512")) + Emotes.Add((Id=4753, ItemName = "AirMetal", AnimName="Emote_10_Dance", IconPath="EMOTE_TEX_02.Emote_02_Guitar_Solo_512")) + Emotes.Add((Id=4525, ItemName = "Fireball_Deluxe", AnimName="Emote_09_Fireball_Deluxe", IconPath="EMOTE_TEX.Emote_Fireball_DLX_512")) + Emotes.Add((Id=4526, ItemName = "Makeitrain_Deluxe", AnimName="Emote_10_Makeitrain_Deluxe", IconPath="EMOTE_TEX.Emote_MknRain_DLX_512")) + Emotes.Add((Id=4527, ItemName = "ThunderClap_Deluxe", AnimName="Emote_02_ThunderClap_Deluxe", IconPath="EMOTE_TEX.Emote_Thunderclap_DLX_512")) + Emotes.Add((Id=4528, ItemName = "UncleCharlie_Deluxe", AnimName="Emote_03_UncleCharlie_Deluxe",IconPath="EMOTE_TEX.Emote_UncleCharlie_DLX_512")) + Emotes.Add((Id=4529, ItemName = "LetsGetCrazy_Deluxe", AnimName="Emote_01_LetsGetCrazy_Deluxe",IconPath="EMOTE_TEX.Emote_LetsGoCrazy_DLX_512")) + Emotes.Add((Id=4530, ItemName = "WackyWave_Deluxe", AnimName="Emote_04_WackyWave_Deluxe", IconPath="EMOTE_TEX.Emote_WackyWave_DLX_512")) + Emotes.Add((Id=4531, ItemName = "RainingDosh_Deluxe", AnimName="Emote_05_RainingDosh_Deluxe", IconPath="EMOTE_TEX.Emote_RainingDosh_DLX_512")) + Emotes.Add((Id=4532, ItemName = "LionUppercut_Deluxe", AnimName="Emote_06_LionUppercut_Deluxe",IconPath="EMOTE_TEX.Emote_Uppercut_DLX_512")) + Emotes.Add((Id=4533, ItemName = "MatingRitual_Deluxe", AnimName="Emote_07_MatingRitual_Deluxe",IconPath="EMOTE_TEX.Emote_MatingRitual_DLX_512")) + Emotes.Add((Id=4534, ItemName = "KickinIt_Deluxe", AnimName="Emote_08_KickinIt_Deluxe", IconPath="EMOTE_TEX.Emote_KicknIt_DLX_512")) + Emotes.Add((Id=4754, ItemName = "TheCossack_Deluxe", AnimName="Emote_01_Dance_Deluxe", IconPath="EMOTE_TEX_02.Emote_02_Squat_Dance_DLX_512")) + Emotes.Add((Id=4755, ItemName = "TheWave_Deluxe", AnimName="Emote_02_Dance_Deluxe", IconPath="EMOTE_TEX_02.Emote_02_The_Wave_DLX_512")) + Emotes.Add((Id=4756, ItemName = "Breakin_Deluxe", AnimName="Emote_03_Dance_Deluxe", IconPath="EMOTE_TEX_02.Emote_02_Handstand_DLX_512")) + Emotes.Add((Id=4757, ItemName = "NoHands_Deluxe", AnimName="Emote_04_Dance_Deluxe", IconPath="EMOTE_TEX_02.Emote_02_Kap_Kick_DLX_512")) + Emotes.Add((Id=4758, ItemName = "HealClick_Deluxe", AnimName="Emote_05_Dance_Deluxe", IconPath="EMOTE_TEX_02.Emote_02_Click_It_DLX_512")) + Emotes.Add((Id=4759, ItemName = "TheSprinkler_Deluxe", AnimName="Emote_06_Dance_Deluxe", IconPath="EMOTE_TEX_02.Emote_02_The_Sprinkler_DLX_512")) + Emotes.Add((Id=4760, ItemName = "Maniac_Deluxe", AnimName="Emote_07_Dance_Deluxe", IconPath="EMOTE_TEX_02.Emote_02_Running_Dosh_DLX_512")) + Emotes.Add((Id=4761, ItemName = "RunningMan_Deluxe", AnimName="Emote_08_Dance_Deluxe", IconPath="EMOTE_TEX_02.Emote_02_Running_Man_DLX_512")) + Emotes.Add((Id=4762, ItemName = "TheRobot_Deluxe", AnimName="Emote_09_Dance_Deluxe", IconPath="EMOTE_TEX_02.Emote_02_The_Robot_DLX_512")) + Emotes.Add((Id=4763, ItemName = "AirMetal_Deluxe", AnimName="Emote_10_Dance_Deluxe", IconPath="EMOTE_TEX_02.Emote_02_Guitar_Solo_DLX_512")) +} \ No newline at end of file diff --git a/ServerExt/Classes/ExtExplosion_SirenScream.uc b/ServerExt/Classes/ExtExplosion_SirenScream.uc new file mode 100644 index 0000000..5667c7f --- /dev/null +++ b/ServerExt/Classes/ExtExplosion_SirenScream.uc @@ -0,0 +1,10 @@ +class ExtExplosion_SirenScream extends KFExplosion_SirenScream; + +protected function SpecialCringeEffectsFor(Actor Victim, float VictimDist) +{ + return; +} + +DefaultProperties +{ +} \ No newline at end of file diff --git a/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc b/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc new file mode 100644 index 0000000..ba87184 --- /dev/null +++ b/ServerExt/Classes/ExtGUI_PerkSelectionPage.uc @@ -0,0 +1,59 @@ +Class ExtGUI_PerkSelectionPage extends UI_MidGameMenu; + +function InitMenu() +{ + local byte i; + local KFGUI_Button B; + + PageSwitcher = KFGUI_SwitchMenuBar(FindComponentID('Pager')); + Super(KFGUI_Page).InitMenu(); + + for( i=0; i > WeaponGroup; + +simulated function UpdateWeaponGroupOnHUD( byte GroupIndex ) +{ + local Inventory Inv; + local KFWeapon KFW; + local byte i; + local int Index; + local array WeaponsList; + local KFGFxObject_TraderItems TraderItems; + local Pawn P; + local array< class > WPGroup; + + P = GetPC().Pawn; + if ( P == none || P.InvManager == none ) + return; + + for ( Inv = P.InvManager.InventoryChain; Inv != none; Inv = Inv.Inventory ) + { + KFW = KFWeapon( Inv ); + if ( KFW != none && KFW.InventoryGroup == GroupIndex ) + WeaponsList.AddItem(KFW); + } + + WPGroup.Length = WeaponsList.Length; + TraderItems = KFGameReplicationInfo( P.WorldInfo.GRI ).TraderItems; + for ( i = 0; i < WeaponsList.Length; i++ ) + { + Index = TraderItems.SaleItems.Find('ClassName', WeaponsList[i].Class.Name); + if( Index != -1 ) + WPGroup[i] = TraderItems.SaleItems[Index].WeaponDef; + } + + WeaponGroup = WPGroup; + SetWeaponGroupList(WeaponsList, GroupIndex); +} + +simulated function SetWeaponGroupList(out array WeaponList, byte GroupIndex) +{ + local byte i; + local GFxObject DataProvider; + local GFxObject TempObj; + local bool bUsesAmmo; + + DataProvider = CreateArray(); + if ( DataProvider == None ) + return; // gfx has been shut down + + for (i = 0; i < WeaponList.length; i++) + { + TempObj = CreateObject( "Object" ); + + if( WeaponGroup[i] != None ) + { + TempObj.SetString( "weaponName", WeaponGroup[i].static.GetItemLocalization("ItemName") ); + TempObj.SetString( "texturePath", "img://"$WeaponGroup[i].static.GetImagePath() ); + } + else + { + TempObj.SetString( "weaponName", WeaponList[i].ItemName ); + TempObj.SetString( "texturePath", "img://"$PathName(WeaponList[i].WeaponSelectTexture)); + } + + TempObj.SetInt( "ammoCount", WeaponList[i].AmmoCount[0]); + TempObj.SetInt( "spareAmmoCount", WeaponList[i].SpareAmmoCount[0]); + //secondary ammo shenanigans + TempObj.SetBool("bUsesSecondaryAmmo", WeaponList[i].UsesSecondaryAmmo()&&WeaponList[i].bCanRefillSecondaryAmmo); + TempObj.SetBool("bEnabled", WeaponList[i].HasAnyAmmo()); + if(WeaponList[i].UsesSecondaryAmmo() && WeaponList[i].bCanRefillSecondaryAmmo) + { + TempObj.SetBool("bCanRefillSecondaryAmmo", WeaponList[i].SpareAmmoCapacity[1] > 0); + TempObj.SetInt( "secondaryAmmoCount", WeaponList[i].AmmoCount[1]); + TempObj.SetInt( "secondarySpareAmmoCount", WeaponList[i].SpareAmmoCount[1]); + } + + TempObj.SetBool( "throwable", WeaponList[i].CanThrow()); + + bUsesAmmo = (WeaponList[i].static.UsesAmmo()); + TempObj.SetBool( "bUsesAmmo", bUsesAmmo); + DataProvider.SetElementObject( i, TempObj ); + } + + SetWeaponList(DataProvider, GroupIndex); +} + +DefaultProperties +{ +} \ No newline at end of file diff --git a/ServerExt/Classes/ExtHumanPawn.uc b/ServerExt/Classes/ExtHumanPawn.uc index 6a6d07a..a8ee08b 100644 --- a/ServerExt/Classes/ExtHumanPawn.uc +++ b/ServerExt/Classes/ExtHumanPawn.uc @@ -14,12 +14,16 @@ var byte UnfeignFailedCount,RepRegenHP,BHopAccelSpeed; var repnotify bool bFeigningDeath; var bool bPlayingFeignDeathRecovery,bRagdollFromFalling,bRagdollFromBackhit,bRagdollFromMomentum,bCanBecomeRagdoll,bRedeadMode,bPendingRedead,bHasBunnyHop,bOnFirstPerson,bFPLegsAttached,bFPLegsInit; +var byte HealingShieldMod,HealingSpeedBoostMod,HealingDamageBoostMod; + replication { if( true ) bFeigningDeath,RepRegenHP,BackpackWeaponClass; if( bNetOwner ) bHasBunnyHop; + if( bNetDirty ) + HealingSpeedBoostMod, HealingDamageBoostMod, HealingShieldMod; } function TakeDamage(int Damage, Controller InstigatedBy, vector HitLocation, vector Momentum, class DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) @@ -111,16 +115,32 @@ event bool HealDamage(int Amount, Controller Healer, class DamageTyp local ExtPlayerController InstigatorPC, KFPC; local KFPerk InstigatorPerk; local class KFDT; - local int i,OldHealth; + local int i; local bool bRepairedArmor; + local ExtPlayerReplicationInfo EPRI; + local Ext_PerkBase InstigatorExtPerk; - OldHealth = Health; InstigatorPC = ExtPlayerController(Healer); - InstigatorPerk = InstigatorPC != None ? InstigatorPC.GetPerk() : None; + InstigatorPerk = InstigatorPC.GetPerk(); + if( InstigatorPerk != None && bCanRepairArmor ) + bRepairedArmor = InstigatorPC.GetPerk().RepairArmor( self ); + + EPRI = ExtPlayerReplicationInfo(InstigatorPC.PlayerReplicationInfo); + if( EPRI != none ) { - // Instigator might be able to repair some armomr - bRepairedArmor = InstigatorPerk.RepairArmor( self ); + InstigatorExtPerk = ExtPlayerController(Controller).ActivePerkManager.CurrentPerk; + if( InstigatorExtPerk != none && Ext_PerkFieldMedic(InstigatorExtPerk) != none ) + { + if( Ext_PerkFieldMedic(InstigatorExtPerk).bHealingBoost ) + UpdateHealingSpeedBoostMod(InstigatorPC); + + if( Ext_PerkFieldMedic(InstigatorExtPerk).bHealingDamageBoost ) + UpdateHealingDamageBoostMod(InstigatorPC); + + if( Ext_PerkFieldMedic(InstigatorExtPerk).bHealingShield ) + UpdateHealingShieldMod(InstigatorPC); + } } if( Amount > 0 && IsAliveAndWell() && Health < HealthMax ) @@ -150,10 +170,6 @@ event bool HealDamage(int Amount, Controller Healer, class DamageTyp RepRegenHP = HealthToRegen; if( !IsTimerActive('GiveHealthOverTime') ) SetTimer(HealthRegenRate, true, 'GiveHealthOverTime'); - - // Airborne agent hack. - if( ExtPerkManager(InstigatorPerk)!= none && DamageType!=Class'KFDT_Healing' ) - ExtPerkManager(InstigatorPerk).CheckForAirborneAgent(Self,DamageType,UsedHealAmount); // Give the healer money/XP for helping a teammate if( Healer.Pawn != none && Healer.Pawn != self ) @@ -171,17 +187,13 @@ event bool HealDamage(int Amount, Controller Healer, class DamageTyp { if( InstigatorPC!=None ) { - //`RecordAARIntStat(InstigatorPC, HEAL_GIVEN, UsedHealAmount); if( !InstigatorPC.bClientHideNumbers ) InstigatorPC.ClientNumberMsg(UsedHealAmount,Location,DMG_Heal); InstigatorPC.ReceiveLocalizedMessage( class'KFLocalMessage_Game', GMT_HealedPlayer, PlayerReplicationInfo ); } KFPC = ExtPlayerController(Controller); if( KFPC!=None ) - { - //`RecordAARIntStat(KFPC, HEAL_RECEIVED, UsedHealAmount); KFPC.ReceiveLocalizedMessage( class'KFLocalMessage_Game', GMT_HealedBy, Healer.PlayerReplicationInfo ); - } } else if( bMessageHealer && InstigatorPC!=None ) InstigatorPC.ReceiveLocalizedMessage( class'KFLocalMessage_Game', GMT_HealedSelf, PlayerReplicationInfo ); @@ -203,9 +215,6 @@ event bool HealDamage(int Amount, Controller Healer, class DamageTyp break; } } - - if (Health - OldHealth > 0) - WorldInfo.Game.ScoreHeal(Health - OldHealth, OldHealth, Healer, self, DamageType); return true; } @@ -1063,6 +1072,7 @@ simulated final function SetBackpackWeapon( class WC ) local Rotator MyRot; local Vector MyPos; local name WM,B; + local int i; BackpackWeaponClass = WC; if( WorldInfo.NetMode==NM_DedicatedServer ) @@ -1077,47 +1087,47 @@ simulated final function SetBackpackWeapon( class WC ) AttachedBackItem.SetLightingChannels(PawnLightingChannel); } AttachedBackItem.SetSkeletalMesh(WC.Default.AttachmentArchetype.SkelMesh); + for( i=0; i(WC) != none || class(WC) != none || class(WC) != none || class(WC) != none || ClassIsChildOf(WC, class'KFWeap_PistolBase') || ClassIsChildOf(WC, class'KFWeap_SMGBase') || ClassIsChildOf(WC, class'KFWeap_ThrownBase') ) { - case 'Wep_3rdP_Welder_Rig': - case 'Wep_3rdP_Healer_Rig': - case 'Wep_3rdP_Medic_SMG_Rig': - case 'Wep_3rdP_9mm_Rig': - case 'Wep_3rdP_Medic_Pistol_Rig': MyPos = vect(0,0,10); MyRot = rot(0,0,16384); B = 'LeftUpLeg'; - break; - case 'Wep_3rdP_Katana_Rig': - case 'Wep_3rdP_Crovel_Rig': - case 'Wep_3rdP_Pulverizer_Rig': + } + else if( ClassIsChildOf(WC, class'KFWeap_MeleeBase') ) + { MyPos = vect(-5,15,0); MyRot = rot(0,0,0); - switch( WM ) - { - case 'Wep_3rdP_Katana_Rig': + if( class(WC) != none || class(WC) != none ) MyPos.Z = -20; - break; - } + B = 'Spine'; - break; - case 'Wep_3rdP_CommandoKnife_Rig': - MyPos = vect(0,0,10); - MyRot = rot(-16384,-8192,0); - B = 'LeftUpLeg'; - break; - default: + } + else + { MyPos = vect(-18.5,16.5,-18); MyRot = rot(0,0,0); if( MyCharacter == KFCharacterInfo_Human'CHR_Playable_ARCH.chr_DJSkully_archetype' ) MyRot.Roll = 8192; + switch( WM ) { case 'Wep_3rdP_MB500_Rig': @@ -1130,7 +1140,11 @@ simulated final function SetBackpackWeapon( class WC ) MyPos.X = -75; MyRot.Roll = 16384; break; + case 'Wep_3rdP_RPG7_Rig': + MyPos.X = 10; + break; } + B = 'Spine2'; } @@ -1179,6 +1193,104 @@ simulated function PlayWeaponSwitch(Weapon OldWeapon, Weapon NewWeapon) } } +simulated function UpdateHealingSpeedBoostMod(ExtPlayerController Healer) +{ + local Ext_PerkFieldMedic MedPerk; + + MedPerk = GetMedicPerk(Healer); + if( MedPerk == None ) + return; + + HealingSpeedBoostMod = Min( HealingSpeedBoostMod + MedPerk.GetHealingSpeedBoost(), MedPerk.GetMaxHealingSpeedBoost() ); + SetTimer( MedPerk.GetHealingSpeedBoostDuration(),, nameOf(ResetHealingSpeedBoost) ); + + UpdateGroundSpeed(); +} + +simulated function float GetHealingSpeedModifier() +{ + return 1 + (float(HealingSpeedBoostMod) / 100); +} + +simulated function ResetHealingSpeedBoost() +{ + HealingSpeedBoostMod = 0; + UpdateGroundSpeed(); + + if( IsTimerActive( nameOf( ResetHealingSpeedBoost ) ) ) + ClearTimer( nameOf( ResetHealingSpeedBoost ) ); +} + +simulated function UpdateHealingDamageBoostMod(ExtPlayerController Healer) +{ + local Ext_PerkFieldMedic MedPerk; + + MedPerk = GetMedicPerk(Healer); + if( MedPerk == None ) + return; + + HealingDamageBoostMod = Min( HealingDamageBoostMod + MedPerk.GetHealingDamageBoost(), MedPerk.GetMaxHealingDamageBoost() ); + SetTimer( MedPerk.GetHealingDamageBoostDuration(),, nameOf(ResetHealingDamageBoost) ); +} + +simulated function float GetHealingDamageBoostModifier() +{ + return 1 + (float(HealingDamageBoostMod) / 100); +} + +simulated function ResetHealingDamageBoost() +{ + HealingDamageBoostMod = 0; + if( IsTimerActive( nameOf( ResetHealingDamageBoost ) ) ) + ClearTimer( nameOf( ResetHealingDamageBoost ) ); +} + +simulated function UpdateHealingShieldMod(ExtPlayerController Healer) +{ + local Ext_PerkFieldMedic MedPerk; + + MedPerk = GetMedicPerk(Healer); + if( MedPerk == None ) + return; + + HealingShieldMod = Min( HealingShieldMod + MedPerk.GetHealingShield(), MedPerk.GetMaxHealingShield() ); + SetTimer( MedPerk.GetHealingShieldDuration(),, nameOf(ResetHealingShield) ); +} + +simulated function float GetHealingShieldModifier() +{ + return 1 - (float(HealingShieldMod) / 100); +} + +simulated function ResetHealingShield() +{ + HealingShieldMod = 0; + if( IsTimerActive( nameOf( ResetHealingShield ) ) ) + ClearTimer( nameOf( ResetHealingShield ) ); +} + +function SacrificeExplode() +{ + local Ext_PerkDemolition DemoPerk; + + Super.SacrificeExplode(); + + DemoPerk = Ext_PerkDemolition(ExtPlayerController(Controller).ActivePerkManager.CurrentPerk); + if( DemoPerk != none ) + DemoPerk.bUsedSacrifice = true; +} + +simulated function Ext_PerkFieldMedic GetMedicPerk(ExtPlayerController Healer) +{ + local Ext_PerkFieldMedic MedPerk; + + MedPerk = Ext_PerkFieldMedic(ExtPlayerController(Controller).ActivePerkManager.CurrentPerk); + if( MedPerk != None ) + return MedPerk; + + return None; +} + defaultproperties { KnockbackResist=1 @@ -1189,8 +1301,12 @@ defaultproperties InventoryManagerClass=class'ExtInventoryManager' WakeUpAnimSet=AnimSet'ZED_Clot_Anim.Alpha_Clot_Master' + Begin Object Name=SpecialMoveHandler_0 + SpecialMoveClasses(SM_Emote)=class'ServerExt.ExtSM_Player_Emote' + End Object + DefaultInventory.Empty() - DefaultInventory.Add(class'KFWeap_Pistol_9mm') + DefaultInventory.Add(class'ExtWeap_Pistol_9mm') DefaultInventory.Add(class'KFWeap_Healer_Syringe') DefaultInventory.Add(class'KFWeap_Welder') DefaultInventory.Add(class'KFInventory_Money') diff --git a/ServerExt/Classes/ExtInventoryManager.uc b/ServerExt/Classes/ExtInventoryManager.uc index b5c4ad9..7936904 100644 --- a/ServerExt/Classes/ExtInventoryManager.uc +++ b/ServerExt/Classes/ExtInventoryManager.uc @@ -20,3 +20,66 @@ reliable server function ServerThrowMoney() } Super.ServerThrowMoney(); } + +simulated function Inventory CreateInventory(class NewInventoryItemClass, optional bool bDoNotActivate) +{ + local KFWeapon Wep; + local Inventory SupClass; + + SupClass = Super.CreateInventory(NewInventoryItemClass, bDoNotActivate); + Wep = KFWeapon(SupClass); + + if( Wep != none ) + { + if( KFWeap_Pistol_Dual9mm(Wep) != None && ExtWeap_Pistol_Dual9mm(Wep) == None ) + { + Wep.Destroy(); + return Super.CreateInventory(class'ExtWeap_Pistol_Dual9mm', bDoNotActivate); + } + + Switch(Wep.Class.Name) + { + Case 'KFWeap_GrenadeLauncher_M79': + Wep.WeaponProjectiles[0] = class'ExtProj_HighExplosive_M79'; + break; + Case 'KFWeap_RocketLauncher_RPG7': + Wep.WeaponProjectiles[0] = class'ExtProj_Rocket_RPG7'; + break; + Case 'KFWeap_AssaultRifle_M16M203': + Wep.WeaponProjectiles[1] = class'ExtProj_HighExplosive_M16M203'; + break; + Case 'KFWeap_Thrown_C4': + Wep.WeaponProjectiles[0] = class'ExtProj_Thrown_C4'; + break; + Case 'KFWeap_RocketLauncher_Seeker6': + Wep.WeaponProjectiles[0] = class'ExtProj_Rocket_Seeker6'; + break; + default: + break; + } + + return Wep; + } + + return SupClass; +} + +simulated function CheckForExcessRemoval(KFWeapon NewWeap) +{ + local Inventory RemoveInv, Inv; + + if( KFWeap_Pistol_Dual9mm(NewWeap) != None ) + { + for (Inv = InventoryChain; Inv != None; Inv = Inv.Inventory) + { + if (Inv.Class == class'ExtWeap_Pistol_9mm') + { + RemoveInv = Inv; + Inv = Inv.Inventory; + RemoveFromInventory(RemoveInv); + } + } + } + + Super.CheckForExcessRemoval(NewWeap); +} \ No newline at end of file diff --git a/ServerExt/Classes/ExtMenu_Gear.uc b/ServerExt/Classes/ExtMenu_Gear.uc index 72a3e01..52254b0 100644 --- a/ServerExt/Classes/ExtMenu_Gear.uc +++ b/ServerExt/Classes/ExtMenu_Gear.uc @@ -16,7 +16,7 @@ function InitializeMenu( KFGFxMoviePlayer_Manager InManager ) { super(KFGFxObject_Menu).InitializeMenu(InManager); LocalizeText(); - EmoteList = class'KFEmoteList'.static.GetEmoteArray(); + EmoteList = class'ExtEmoteList'.static.GetEmoteArray(); InitCharacterMenu(); TraderItems = KFGameReplicationInfo( GetPC().WorldInfo.GRI ).TraderItems; } @@ -113,7 +113,7 @@ function UpdateEmoteList() for (i = 0; i < EmoteList.length; i++) { - if ( class'KFEmoteList'.static.GetUnlockedEmote(EmoteList[i].Id) != 'NONE') + if ( class'ExtEmoteList'.static.GetUnlockedEmote(EmoteList[i].Id, ExtPlayerController(GetPC())) != 'NONE') { SlotObject = CreateObject( "Object" ); SlotObject.SetInt("ItemIndex", i); @@ -210,57 +210,87 @@ function UpdateMeshList(string OutfitKey, string SkinKey, array { local byte i, ItemIndex; local GFxObject DataProvider, SlotObject; - local string TexturePath; + local string TexturePath, OutfitName; local OutfitVariants Outfit; - + local SkinVariant FirstSkin; + ItemIndex = 0; DataProvider = CreateArray(); - for (i = 0; i < Outfits.length; i++) { Outfit = Outfits[i]; + + OutfitName = Localize(CharInfoPath, OutfitKey$i, class'KFGFxMenu_Gear'.Default.KFCharacterInfoString); if( bIsCustomChar ) - { - SlotObject = CreateObject( "Object" ); - SlotObject.SetInt("ItemIndex", i); - SlotObject.SetString("label", GetMenuNameStr(Outfit.MeshName)); - SlotObject.SetBool("enabled", true); + OutfitName = GetMenuNameStr(Outfit.MeshName); + + if ( InStr(OutfitName, "?INT?") != -1 ) + continue; + + SlotObject = CreateObject( "Object" ); + SlotObject.SetInt("ItemIndex", i); + SlotObject.SetString("label", OutfitName); + SlotObject.SetBool("enabled", true); + FirstSkin = UpdateOutfitVariants( OutfitKey, SkinKey, Outfit.SkinVariations, i, SlotObject ); + if( string(FirstSkin.UITexture) == "Bad" ) + continue; + + TexturePath = "img://"$PathName(FirstSkin.UITexture); + SlotObject.SetString("source", TexturePath); - TexturePath = "img://"$PathName(Outfit.UITexture); - SlotObject.SetString("source", TexturePath); - - UpdateVariants( OutfitKey, SkinKey, Outfit.SkinVariations, i, SlotObject ); - - DataProvider.SetElementObject(ItemIndex, SlotObject); - ItemIndex++; - } - else - { - SlotObject = CreateObject( "Object" ); - SlotObject.SetInt("ItemIndex", i); - SlotObject.SetString("label", Localize(CharInfoPath, OutfitKey$i, class'KFGFxMenu_Gear'.Default.KFCharacterInfoString)); - SlotObject.SetBool("enabled", true); - - TexturePath = "img://"$PathName(Outfit.UITexture); - SlotObject.SetString("source", TexturePath); - - UpdateVariants( OutfitKey, SkinKey, Outfit.SkinVariations, i, SlotObject ); - - DataProvider.SetElementObject(ItemIndex, SlotObject); - ItemIndex++; - } + DataProvider.SetElementObject(ItemIndex, SlotObject); + ItemIndex++; } SetObject(DataArrayString, DataProvider); } +function SkinVariant UpdateOutfitVariants(string OutfitKey, string KeyName, out array SkinVariations, int OutfitIndex, out GFxObject MeshObject) +{ + local byte i, ItemIndex; + local GFxObject DataProvider, SlotObject; + local SkinVariant Skin; + local SkinVariant FirstSkin; + local string SectionPath; + local string TexturePath; + local bool bFoundFirst; + + ItemIndex = 0; + DataProvider = CreateArray(); + SectionPath = CharInfoPath$"."$OutfitKey$OutfitIndex; + + for (i = 0; i < SkinVariations.length; i++) + { + Skin = SkinVariations[i]; + if(!bFoundFirst) + { + FirstSkin = Skin; + bFoundFirst = true; + } + SlotObject = CreateObject( "Object" ); + SlotObject.SetInt("ItemIndex", i); + SlotObject.SetString("label", Localize(SectionPath, KeyName$i, class'KFGFxMenu_Gear'.Default.KFCharacterInfoString)); + TexturePath = "img://"$PathName(Skin.UITexture); + SlotObject.SetBool("enabled", true); + SlotObject.SetString("source", TexturePath); + + DataProvider.SetElementObject(ItemIndex, SlotObject); + ItemIndex++; + } + MeshObject.SetObject("skinInfo", DataProvider); + + return FirstSkin; +} + function UpdateAttachmentsList(array Attachments) { local byte i, ItemIndex; local GFxObject DataProvider, SlotObject; local string TexturePath; local AttachmentVariants Variant; - + local SkinVariant FirstSkin; + local string AttachmentName; + ItemIndex = 0; DataProvider = CreateArray(); @@ -275,80 +305,67 @@ function UpdateAttachmentsList(array Attachments) for (i = 0; i < Attachments.length; i++) { Variant = Attachments[i]; + + AttachmentName = Localize(string(Variant.AttachmentItem.Name), class'KFGFxMenu_Gear'.Default.AttachmentKey, class'KFGFxMenu_Gear'.Default.KFCharacterInfoString); if( bIsCustomChar ) - { - SlotObject = CreateObject( "Object" ); - SlotObject.SetInt("ItemIndex", i); - SlotObject.SetString("label", GetMenuNameStr(Variant.MeshName)); - SlotObject.SetBool("enabled", true); + AttachmentName = GetMenuNameStr(Variant.MeshName); + + if ( InStr(AttachmentName, "?INT?") != -1 ) + continue; - TexturePath = "img://"$PathName(Variant.UITexture); - SlotObject.SetString("source", TexturePath); - UpdateVariants( class'KFGFxMenu_Gear'.Default.AttachmentKey, class'KFGFxMenu_Gear'.Default.AttachmentSkinKey, Variant.SkinVariations, i, SlotObject ); - - DataProvider.SetElementObject(ItemIndex, SlotObject); - ItemIndex++; - } - else - { - SlotObject = CreateObject( "Object" ); - SlotObject.SetInt("ItemIndex", i); - SlotObject.SetString("label", Localize(CharInfoPath, class'KFGFxMenu_Gear'.Default.AttachmentKey$i, class'KFGFxMenu_Gear'.Default.KFCharacterInfoString)); - SlotObject.SetBool("enabled", true); - - TexturePath = "img://"$PathName(Variant.UITexture); - SlotObject.SetString("source", TexturePath); - UpdateVariants( class'KFGFxMenu_Gear'.Default.AttachmentKey, class'KFGFxMenu_Gear'.Default.AttachmentSkinKey, Variant.SkinVariations, i, SlotObject ); - - DataProvider.SetElementObject(ItemIndex, SlotObject); - ItemIndex++; - } + SlotObject = CreateObject( "Object" ); + SlotObject.SetInt("ItemIndex", i); + FirstSkin = UpdateCosmeticVariants( class'KFGFxMenu_Gear'.Default.AttachmentKey, class'KFGFxMenu_Gear'.Default.AttachmentSkinKey, Variant.AttachmentItem, i, SlotObject ); + if( string(FirstSkin.UITexture) == "Bad" ) + continue; + + SlotObject.SetString("label", AttachmentName); + SlotObject.SetBool("enabled", true); + TexturePath = "img://"$PathName(FirstSkin.UITexture); + SlotObject.SetString("source", TexturePath); + + DataProvider.SetElementObject(ItemIndex, SlotObject); + ItemIndex++; } SetObject("attachmentsArray", DataProvider); } -function UpdateVariants(string OutfitKey, string KeyName, out array SkinVariations, int OutfitIndex, out GFxObject MeshObject) +function SkinVariant UpdateCosmeticVariants(string OutfitKey, string KeyName, KFCharacterAttachment Attachment, int OutfitIndex, out GFxObject MeshObject) { local byte i, ItemIndex; local GFxObject DataProvider, SlotObject; local SkinVariant Skin; - local string SectionPath; + local SkinVariant FirstSkin; local string TexturePath; + local bool bFoundFirst; + local string SkinName; ItemIndex = 0; DataProvider = CreateArray(); - SectionPath = CharInfoPath$"."$OutfitKey$OutfitIndex; - for (i = 0; i < SkinVariations.length; i++) + for (i = 0; i < Attachment.SkinVariations.length; i++) { - Skin = SkinVariations[i]; - if( bIsCustomChar ) + Skin = Attachment.SkinVariations[i]; + if(!bFoundFirst) { - SlotObject = CreateObject( "Object" ); - SlotObject.SetInt("ItemIndex", i); - SlotObject.SetString("label", GetMenuName(Skin.Skin)); - SlotObject.SetBool("enabled", true); - TexturePath = "img://"$PathName(Skin.UITexture); - SlotObject.SetString("source", TexturePath); - - DataProvider.SetElementObject(ItemIndex, SlotObject); - ItemIndex++; + FirstSkin = Skin; + bFoundFirst = true; } - else - { - SlotObject = CreateObject( "Object" ); - SlotObject.SetInt("ItemIndex", i); - SlotObject.SetString("label", Localize(SectionPath, KeyName$i, class'KFGFxMenu_Gear'.Default.KFCharacterInfoString)); - SlotObject.SetBool("enabled", true); - TexturePath = "img://"$PathName(Skin.UITexture); - SlotObject.SetString("source", TexturePath); + SlotObject = CreateObject( "Object" ); + SlotObject.SetInt("ItemIndex", i); + SkinName = Localize(string(Attachment.Name), KeyName$i, class'KFGFxMenu_Gear'.Default.KFCharacterInfoString); + SlotObject.SetString("label", SkinName); + TexturePath = "img://"$PathName(Skin.UITexture); + SlotObject.SetBool("enabled", true); + SlotObject.SetString("source", TexturePath); - DataProvider.SetElementObject(ItemIndex, SlotObject); - ItemIndex++; - } + DataProvider.SetElementObject(ItemIndex, SlotObject); + ItemIndex++; } MeshObject.SetObject("skinInfo", DataProvider); + + return FirstSkin; } function SetCurrentCharacterButtons() @@ -380,7 +397,7 @@ function SetEmoteButton() local GFxObject DataObject; local int EmoteIndex; - EmoteIndex = class'KFEmoteList'.static.GetEmoteIndex( class'KFEmoteList'.static.GetEquippedEmoteId()); + EmoteIndex = class'ExtEmoteList'.static.GetEmoteIndex( class'ExtEmoteList'.static.GetEquippedEmoteId(ExtPlayerController(GetPC()))); DataObject = CreateObject("Object"); if(EmoteIndex == 255) @@ -448,7 +465,7 @@ function SetGearButtons(byte MeshIndex, byte SkinIndex, string MeshKey, string S /** Update the labels for our currently equipped attachments */ function SetAttachmentButtons(string AttachmentMeshKey, string sectionFunctionName) { - local string CurrentMesh, FinishedString; + local string FinishedString; local GFxObject DataObject; local byte i, AttachmentIndex; local bool bCustom; @@ -468,8 +485,7 @@ function SetAttachmentButtons(string AttachmentMeshKey, string sectionFunctionNa } else { - CurrentMesh = AttachmentMeshKey$AttachmentIndex; - FinishedString $= (bIsCustomChar ? GetMenuNameStr(CurrentCharInfo.CosmeticVariants[AttachmentIndex].MeshName) : Localize(CharInfoPath, CurrentMesh, class'KFGFxMenu_Gear'.Default.KFCharacterInfoString))$"\n"; + FinishedString $= (bIsCustomChar ? GetMenuNameStr(CurrentCharInfo.CosmeticVariants[AttachmentIndex].MeshName) : Localize(string(CurrentCharInfo.CosmeticVariants[AttachmentIndex].AttachmentItem.Name), AttachmentMeshKey, class'KFGFxMenu_Gear'.Default.KFCharacterInfoString)$"\n"); } } @@ -522,11 +538,11 @@ function Callback_Emote(byte Index) KFPC = KFPlayerController(GetPC()); if( KFPC != none ) { - class'KFEmoteList'.static.SaveEquippedEmote(EmoteList[Index].ID); + class'ExtEmoteList'.static.SaveEquippedEmote(EmoteList[Index].ID, ExtPlayerController(KFPC)); - if ( KFPawn_Customization(KFPC.Pawn) != none ) + if ( ExtPawn_Customization(KFPC.Pawn) != none ) { - KFPawn_Customization(KFPC.Pawn).PlayEmoteAnimation(); + ExtPawn_Customization(KFPC.Pawn).PlayEmoteAnimation(); } } diff --git a/ServerExt/Classes/ExtMenu_Inventory.uc b/ServerExt/Classes/ExtMenu_Inventory.uc new file mode 100644 index 0000000..eec85c8 --- /dev/null +++ b/ServerExt/Classes/ExtMenu_Inventory.uc @@ -0,0 +1,65 @@ +class ExtMenu_Inventory extends KFGFxMenu_Inventory; + +function bool IsItemActive(int ItemDefinition) +{ + local class WeaponDef; + local int ItemIndex; + + ItemIndex = class'ExtWeaponSkinList'.default.Skins.Find('Id', ItemDefinition); + + if(ItemIndex == INDEX_NONE) + { + return false; + } + + WeaponDef = class'ExtWeaponSkinList'.default.Skins[ItemIndex].WeaponDef; + + if(WeaponDef != none) + { + return class'ExtWeaponSkinList'.Static.IsSkinEquip(WeaponDef, ItemDefinition, ExtPlayerController(KFPC)); + } + + return false; +} + +function Callback_Equip( int ItemDefinition ) +{ + local class WeaponDef; + local int ItemIndex; + + ItemIndex = class'ExtWeaponSkinList'.default.Skins.Find('Id', ItemDefinition); + + if(ItemIndex == INDEX_NONE) + { + return; + } + + WeaponDef = class'ExtWeaponSkinList'.default.Skins[ItemIndex].WeaponDef; + + if(WeaponDef != none) + { + if(IsItemActive(ItemDefinition)) + { + class'ExtWeaponSkinList'.Static.SaveWeaponSkin(WeaponDef, 0, ExtPlayerController(KFPC)); + + if(class'WorldInfo'.static.IsConsoleBuild( )) + { + Manager.CachedProfile.ClearWeaponSkin(WeaponDef.default.WeaponClassPath); + } + } + else + { + class'ExtWeaponSkinList'.Static.SaveWeaponSkin(WeaponDef, ItemDefinition, ExtPlayerController(KFPC)); + if(class'WorldInfo'.static.IsConsoleBuild( )) + { + Manager.CachedProfile.SaveWeaponSkin(WeaponDef.default.WeaponClassPath, ItemDefinition); + } + } + } + + InitInventory(); +} + +defaultproperties +{ +} \ No newline at end of file diff --git a/ServerExt/Classes/ExtMoviePlayer_HUD.uc b/ServerExt/Classes/ExtMoviePlayer_HUD.uc index 8225865..a275799 100644 --- a/ServerExt/Classes/ExtMoviePlayer_HUD.uc +++ b/ServerExt/Classes/ExtMoviePlayer_HUD.uc @@ -105,4 +105,6 @@ defaultproperties WidgetBindings.Add((WidgetName="WaveInfoContainer",WidgetClass=class'ExtHUD_WaveInfo')) WidgetBindings.Remove((WidgetName="bossHealthBar", WidgetClass=class'KFGFxWidget_BossHealthBar')) WidgetBindings.Add((WidgetName="bossHealthBar", WidgetClass=class'ExtWidget_BossHealthBar')) + WidgetBindings.Remove((WidgetName="WeaponSelectContainer",WidgetClass=class'KFGFxHUD_WeaponSelectWidget')) + WidgetBindings.Add((WidgetName="WeaponSelectContainer",WidgetClass=class'ExtHUD_WeaponSelectWidget')) } \ No newline at end of file diff --git a/ServerExt/Classes/ExtMoviePlayer_Manager.uc b/ServerExt/Classes/ExtMoviePlayer_Manager.uc index 5e65d30..316e981 100644 --- a/ServerExt/Classes/ExtMoviePlayer_Manager.uc +++ b/ServerExt/Classes/ExtMoviePlayer_Manager.uc @@ -1,7 +1,7 @@ Class ExtMoviePlayer_Manager extends KFGFxMoviePlayer_Manager; var ExtMenu_Gear EGearMenu; -var KF2GUIController MyGUIController; +var transient KFGUI_Page PerksPage; event bool WidgetInitialized(name WidgetName, name WidgetPath, GFxObject Widget) { @@ -69,12 +69,60 @@ function LaunchMenus( optional bool bForceSkipLobby ) } } +function OpenMenu( byte NewMenuIndex, optional bool bShowWidgets = true ) +{ + local KF2GUIController GUIController; + + GUIController = class'KF2GUIController'.Static.GetGUIController(GetPC()); + + Super.OpenMenu(NewMenuIndex, bShowWidgets); + + if( bAfterLobby ) + return; + + if( NewMenuIndex == UI_Perks ) + { + PerksPage = GUIController.OpenMenu(class'ExtGUI_PerkSelectionPage'); + SetMovieCanReceiveInput(false); + PerksMenu.ActionScriptVoid("closeContainer"); + } + else GUIController.CloseMenu(class'ExtGUI_PerkSelectionPage'); +} + +function CloseMenus(optional bool bForceClose=false) +{ + local KF2GUIController GUIController; + + if( PerksPage != None ) + { + GUIController = class'KF2GUIController'.Static.GetGUIController(GetPC()); + GUIController.CloseMenu(class'ExtGUI_PerkSelectionPage'); + } + + Super.CloseMenus(bForceClose); +} + +function OnMenuOpen( name WidgetPath, KFGFxObject_Menu Widget ) +{ + Super.OnMenuOpen(WidgetPath, Widget); + + if( !bAfterLobby && Widget == PerksMenu ) + PerksMenu.ActionScriptVoid("closeContainer"); +} + defaultproperties { + InGamePartyWidgetClass=class'ExtWidget_PartyInGame' + + WidgetPaths.Remove("../UI_Widgets/PartyWidget_SWF.swf") + WidgetPaths.Add("../UI_Widgets/VersusLobbyWidget_SWF.swf") + WidgetBindings.Remove((WidgetName="PerksMenu",WidgetClass=class'KFGFxMenu_Perks')) WidgetBindings.Add((WidgetName="PerksMenu",WidgetClass=class'ExtMenu_Perks')) WidgetBindings.Remove((WidgetName="gearMenu",WidgetClass=class'KFGFxMenu_Gear')) WidgetBindings.Add((WidgetName="gearMenu",WidgetClass=class'ExtMenu_Gear')) WidgetBindings.Remove((WidgetName="traderMenu",WidgetClass=class'KFGFxMenu_Trader')) WidgetBindings.Add((WidgetName="traderMenu",WidgetClass=class'ExtMenu_Trader')) + //WidgetBindings.Remove((WidgetName="inventoryMenu",WidgetClass=class'KFGFxMenu_Inventory')) + //WidgetBindings.Add((WidgetName="inventoryMenu",WidgetClass=class'ExtMenu_Inventory')) } \ No newline at end of file diff --git a/ServerExt/Classes/ExtPawn_Customization.uc b/ServerExt/Classes/ExtPawn_Customization.uc index 544b9ba..6674753 100644 --- a/ServerExt/Classes/ExtPawn_Customization.uc +++ b/ServerExt/Classes/ExtPawn_Customization.uc @@ -49,6 +49,58 @@ function bool Died(Controller Killer, class DamageType, vector HitLo return true; } +simulated function PlayEmoteAnimation(optional bool bNewCharacter) +{ + local name AnimName; + local float BlendInTime; + + AnimName = class'ExtEmoteList'.static.GetUnlockedEmote( class'ExtEmoteList'.static.GetEquippedEmoteId(ExtPlayerController(Controller)), ExtPlayerController(Controller) ); + + BlendInTime = (bNewCharacter) ? 0.f : 0.4; + + // Briefly turn off notify so that PlayCustomAnim won't call OnAnimEnd (e.g. character swap) + BodyStanceNodes[EAS_FullBody].SetActorAnimEndNotification( FALSE ); + + BodyStanceNodes[EAS_FullBody].PlayCustomAnim(AnimName, 1.f, BlendInTime, 0.4, false, true); + BodyStanceNodes[EAS_FullBody].SetActorAnimEndNotification( TRUE ); +} + +function AttachWeaponByItemDefinition( int ItemDefinition ) +{ + local class WeaponDef; + local int ItemINdex; + local KFWeaponAttachment WeaponPreview; + + //find weapon def + ItemIndex = class'ExtWeaponSkinList'.default.Skins.Find('Id', ItemDefinition); + + if(ItemIndex == INDEX_NONE) + { + `log("Could not find item" @ItemDefinition); + return; + } + + WeaponDef = class'ExtWeaponSkinList'.default.Skins[ItemIndex].WeaponDef; + + if(WeaponDef == none) + { + `log("Weapon def NONE for : " @ItemDefinition); + return; + } + + //load in and add object . + WeaponPreview = KFWeaponAttachment ( DynamicLoadObject( WeaponDef.default.AttachmentArchtypePath, class'KFWeaponAttachment' ) ); + + //attatch it to player + WeaponAttachmentTemplate = WeaponPreview; + + WeaponAttachmentChanged(); + + //setweapon skin + WeaponAttachment.SetWeaponSkin(ItemDefinition); + +} + defaultproperties { bCollideActors=false diff --git a/ServerExt/Classes/ExtPawn_ZedHans_Pet.uc b/ServerExt/Classes/ExtPawn_ZedHans_Pet.uc new file mode 100644 index 0000000..75e7c21 --- /dev/null +++ b/ServerExt/Classes/ExtPawn_ZedHans_Pet.uc @@ -0,0 +1,10 @@ +class ExtPawn_ZedHans_Pet extends KFPawn_ZedHansFriendlyTest; + +static simulated event bool IsABoss() +{ + return false; +} + +defaultproperties +{ +} diff --git a/ServerExt/Classes/ExtPerkManager.uc b/ServerExt/Classes/ExtPerkManager.uc index 4392aa8..c2f1640 100644 --- a/ServerExt/Classes/ExtPerkManager.uc +++ b/ServerExt/Classes/ExtPerkManager.uc @@ -77,19 +77,70 @@ function bool ApplyPerkName( string S ) } function ApplyPerk( Ext_PerkBase P ) { + local KFPawn_Human HP; + local KFInventoryManager InvMan; + local Ext_T_ZEDHelper H; + local int i; + if( P==None ) return; - if( CurrentPerk!=None ) + + if( PlayerOwner.Pawn != None ) + { + InvMan = KFInventoryManager(PlayerOwner.Pawn.InvManager); + if( InvMan != None ) + InvMan.MaxCarryBlocks = InvMan.Default.MaxCarryBlocks; + + foreach PlayerOwner.Pawn.ChildActors(class'Ext_T_ZEDHelper',H) + { + H.Destroy(); + } + + HP = KFPawn_Human(PlayerOwner.Pawn); + if( HP != None ) + HP.DefaultInventory = HP.Default.DefaultInventory; + } + + if( CurrentPerk != None ) + { CurrentPerk.DeactivateTraits(); + + for( i=0; i HP.HealthMax ) HP.Health = HP.HealthMax; + if( HP.Armor > HP.MaxArmor ) HP.Armor = HP.MaxArmor; + } + } + } } simulated final function Ext_PerkBase FindPerk( class P ) { @@ -620,6 +671,20 @@ function GameExplosion GetExplosionTemplate() return class'KFPerk_Firebug'.Default.ExplosionTemplate; } +// Additional functions +function OnWaveEnded() +{ + CurrentPerk.OnWaveEnded(); +} +function NotifyZedTimeStarted() +{ + CurrentPerk.NotifyZedTimeStarted(); +} +simulated function float GetZedTimeExtensions( byte Level ) +{ + return CurrentPerk.GetZedTimeExtensions(Level); +} + // SWAT: simulated function bool HasHeavyArmor() { @@ -638,6 +703,76 @@ simulated function bool ShouldKnockDownOnBump() return (CurrentPerk!=None && CurrentPerk.bHasSWATEnforcer); } +// DEMO: +simulated function bool ShouldRandSirenResist() +{ + return (Ext_PerkDemolition(CurrentPerk)!=None ? Ext_PerkDemolition(CurrentPerk).bSirenResistance : false); +} +simulated function bool IsAoEActive() +{ + return (Ext_PerkDemolition(CurrentPerk)!=None ? Ext_PerkDemolition(CurrentPerk).AOEMult > 1.0f : false); +} +simulated function bool ShouldSacrifice() +{ + return (Ext_PerkDemolition(CurrentPerk)!=None ? (Ext_PerkDemolition(CurrentPerk).bCanUseSacrifice && !Ext_PerkDemolition(CurrentPerk).bUsedSacrifice) : false); +} +simulated function bool ShouldNeverDud() +{ + return (Ext_PerkDemolition(CurrentPerk)!=None ? Ext_PerkDemolition(CurrentPerk).bProfessionalActive : false); +} +function NotifyPerkSacrificeExploded() +{ + if( Ext_PerkDemolition(CurrentPerk) != none ) Ext_PerkDemolition(CurrentPerk).bUsedSacrifice = true; +} +simulated function float GetAoERadiusModifier() +{ + return (Ext_PerkDemolition(CurrentPerk)!=None ? Ext_PerkDemolition(CurrentPerk).GetAoERadiusModifier() : 1.0); +} + +// MEDIC: +simulated function bool GetHealingSpeedBoostActive() +{ + return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetHealingSpeedBoostActive() : false); +} +simulated function bool GetHealingDamageBoostActive() +{ + return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetHealingDamageBoostActive() : false); +} +simulated function bool GetHealingShieldActive() +{ + return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetHealingShieldActive() : false); +} +simulated function float GetSelfHealingSurgePct() +{ + return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetSelfHealingSurgePct() : 0.f); +} +function bool IsToxicDmgActive() +{ + return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).bUseToxicDamage : false); +} +static function class GetToxicDmgTypeClass() +{ + return class'Ext_PerkFieldMedic'.static.GetToxicDmgTypeClass(); +} +static function ModifyToxicDmg( out int ToxicDamage ) +{ + ToxicDamage = class'Ext_PerkFieldMedic'.static.ModifyToxicDmg(ToxicDamage); +} +simulated function float GetSnarePower( optional class DamageType, optional byte HitZoneIdx ) +{ + return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetSnarePower(DamageType, HitZoneIdx) : 0.f); +} + +// SUPPORT: +function bool CanRepairDoors() +{ + return (Ext_PerkSupport(CurrentPerk)!=None ? Ext_PerkSupport(CurrentPerk).CanRepairDoors() : false); +} +simulated function float GetPenetrationModifier( byte Level, class DamageType, optional bool bForce ) +{ + return (Ext_PerkSupport(CurrentPerk)!=None ? Ext_PerkSupport(CurrentPerk).GetPenetrationModifier(Level, DamageType, bForce) : 0.f); +} + defaultproperties { bTickIsDisabled=false diff --git a/ServerExt/Classes/ExtPlayerController.uc b/ServerExt/Classes/ExtPlayerController.uc index 8057d2f..343ed60 100644 --- a/ServerExt/Classes/ExtPlayerController.uc +++ b/ServerExt/Classes/ExtPlayerController.uc @@ -36,7 +36,15 @@ var transient float EndGameCamTimer,LastPlayerCalcView; var transient bool bEndGameCamFocus; var globalconfig bool bShowFPLegs,bHideNameBeacons,bHideKillMsg,bHideDamageMsg,bHideNumberMsg,bNoMonsterPlayer,bNoScreenShake,bRenderModes,bUseKF2DeathMessages,bUseKF2KillMessages; -var bool bMOTDReceived,bNamePlateShown,bNamePlateHidden,bClientHideKillMsg,bClientHideDamageMsg,bClientHideNumbers,bNoDamageTracking,bClientNoZed; +var globalconfig int SelectedEmoteIndex; +var bool bMOTDReceived,bNamePlateShown,bNamePlateHidden,bClientHideKillMsg,bClientHideDamageMsg,bClientHideNumbers,bNoDamageTracking,bClientNoZed,bSetPerk; + +struct SavedSkins +{ + var int ID; + var class WepDef; +}; +var globalconfig array SavedWeaponSkins; replication { diff --git a/ServerExt/Classes/ExtPlayerReplicationInfo.uc b/ServerExt/Classes/ExtPlayerReplicationInfo.uc index c165d9c..a8c1bc8 100644 --- a/ServerExt/Classes/ExtPlayerReplicationInfo.uc +++ b/ServerExt/Classes/ExtPlayerReplicationInfo.uc @@ -31,6 +31,7 @@ var bool bIsMuted,bInitialPT,bIsDev,bHiddenUser,bClientUseCustom,bClientFirstCha var int RespawnCounter; var byte AdminType; var class ECurrentPerk; +var Ext_PerkBase FCurrentPerk; var int ECurrentPerkLevel,ECurrentPerkPrestige; var ExtPerkManager PerkManager; /* AdminTypes: @@ -48,6 +49,10 @@ var transient color HUDPerkColor; var byte FixedData; var int RepPlayTime,RepKills,RepEXP; +// Perk related +var bool bNukeIsOn,bConcussiveIsOn,bForScienceOn,bHasSciEMP; +var float NukeTimeMult; + // Custom character stuff. var array CustomCharList; var repnotify FMyCustomChar CustomCharacter; @@ -73,6 +78,8 @@ replication RespawnCounter,AdminType,ECurrentPerk,ECurrentPerkLevel,ECurrentPerkPrestige,RepKills,RepEXP,RepLevelProgress,bIsDev,NameTag,FixedData,bHiddenUser,CustomCharacter,HasSupplier; if (bNetInitial || bInitialPT) RepPlayTime; + if ( true ) + bNukeIsOn, bConcussiveIsOn, NukeTimeMult; } simulated function PostBeginPlay() diff --git a/ServerExt/Classes/ExtProj_DynamiteGrenade.uc b/ServerExt/Classes/ExtProj_DynamiteGrenade.uc new file mode 100644 index 0000000..c8f7692 --- /dev/null +++ b/ServerExt/Classes/ExtProj_DynamiteGrenade.uc @@ -0,0 +1,161 @@ +class ExtProj_DynamiteGrenade extends KFProj_DynamiteGrenade; + +simulated protected function PrepareExplosionTemplate() +{ + local ExtPlayerReplicationInfo MyPRI; + local Ext_PerkDemolition DemoPerk; + + Super(KFProjectile).PrepareExplosionTemplate(); + + if(Instigator == None) + return; + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none ) + { + if( bWasTimeDilated && MyPRI.bNukeIsOn && class'KFPerk_Demolitionist'.static.ProjectileShouldNuke( self ) ) + { + ExplosionTemplate = class'KFPerk_Demolitionist'.static.GetNukeExplosionTemplate(); + ExplosionTemplate.Damage = default.ExplosionTemplate.Damage * class'KFPerk_Demolitionist'.static.GetNukeDamageModifier(); + ExplosionTemplate.DamageRadius = default.ExplosionTemplate.DamageRadius * class'KFPerk_Demolitionist'.static.GetNukeRadiusModifier(); + ExplosionTemplate.DamageFalloffExponent = default.ExplosionTemplate.DamageFalloffExponent; + } + else if( MyPRI.bConcussiveIsOn ) + { + ExplosionTemplate.ExplosionEffects = AltExploEffects; + ExplosionTemplate.ExplosionSound = class'KFPerk_Demolitionist'.static.GetConcussiveExplosionSound(); + } + + DemoPerk = Ext_PerkDemolition(MyPRI.FCurrentPerk); + if( DemoPerk == none ) + return; + + ExplosionTemplate.DamageRadius *= DemoPerk.GetAoERadiusModifier(); + } +} + +simulated protected function SetExplosionActorClass() +{ + local ExtPlayerReplicationInfo MyPRI; + + Super(KFProjectile).SetExplosionActorClass(); + + if(Instigator == None) + return; + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none ) + { + if( bWasTimeDilated && MyPRI.bNukeIsOn && class'KFPerk_Demolitionist'.static.ProjectileShouldNuke( self ) ) + ExplosionActorClass = class'KFPerk_Demolitionist'.static.GetNukeExplosionActorClass(); + } +} + +simulated function TriggerExplosion(Vector HitLocation, Vector HitNormal, Actor HitActor) +{ + local vector NudgedHitLocation, ExplosionDirection; + local Pawn P; + local ExtPlayerReplicationInfo MyPRI; + + if( bHasDisintegrated ) + { + return; + } + if (!bHasExploded) + { + // On local player or server, we cache off our time dilation setting here + if( WorldInfo.NetMode == NM_ListenServer || WorldInfo.NetMode == NM_DedicatedServer || InstigatorController != None ) + { + bWasTimeDilated = WorldInfo.TimeDilation < 1.f; + } + + // Stop ambient sounds when this projectile explodes + if( bStopAmbientSoundOnExplode ) + { + StopAmbientSound(); + } + + if (ExplosionTemplate != None) + { + StopSimulating(); + + // using a hit location slightly away from the impact point is nice for certain things + NudgedHitLocation = HitLocation + (HitNormal * 32.f); + + SetExplosionActorClass(); + if( ExplosionActorClass == class'KFPerk_Demolitionist'.static.GetNukeExplosionActorClass() ) + { + P = Pawn(HitActor); + if( P != none ) + { + NudgedHitLocation = P.Location - vect(0,0,1) * P.GetCollisionHeight(); + } + } + + ExplosionActor = Spawn(ExplosionActorClass, self,, NudgedHitLocation, rotator(HitNormal)); + if (ExplosionActor != None) + { + ExplosionActor.Instigator = Instigator; + ExplosionActor.InstigatorController = InstigatorController; + + PrepareExplosionTemplate(); + + // If the locations are zero (probably because this exploded in the air) set defaults + if( IsZero(HitLocation) ) + { + HitLocation = Location; + } + + if( IsZero(HitNormal) ) + { + HitNormal = vect(0,0,1); + } + + // these are needed for the decal tracing later in GameExplosionActor.Explode() + ExplosionTemplate.HitLocation = HitLocation;// NudgedHitLocation + ExplosionTemplate.HitNormal = HitNormal; + + // If desired, attach to mover if we hit one + if(bAttachExplosionToHitMover && InterpActor(HitActor) != None) + { + ExplosionActor.Attachee = HitActor; + ExplosionTemplate.bAttachExplosionEmitterToAttachee = TRUE; + ExplosionActor.SetBase(HitActor); + } + + // directional? + if (ExplosionTemplate.bDirectionalExplosion) + { + ExplosionDirection = GetExplosionDirection(HitNormal); + //DrawDebugLine(ExplosionActor.Location, ExplosionActor.Location+ExplosionDirection*64, 255, 255, 0, TRUE); + } + + // @todo: make this function responsible for setting explosion instance parameters, and take instance parameters + // out of GearExplosion (e.g. Attachee) + PrepareExplosionActor(ExplosionActor); + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none && KFExplosionActorLingering(ExplosionActor) != None ) + { + KFExplosionActorLingering(ExplosionActor).MaxTime *= MyPRI.NukeTimeMult; + KFExplosionActorLingering(ExplosionActor).LifeSpan *= MyPRI.NukeTimeMult; + } + + ExplosionActor.Explode(ExplosionTemplate, ExplosionDirection); // go bewm + } + + // done with it + if (!bPendingDelete && !bDeleteMe) + { + // defer destruction so any replication of explosion stuff can happen if necessary + DeferredDestroy(PostExplosionLifetime); + } + } + + bHasExploded = true; + } +} + +defaultproperties +{ +} \ No newline at end of file diff --git a/ServerExt/Classes/ExtProj_HighExplosive_M16M203.uc b/ServerExt/Classes/ExtProj_HighExplosive_M16M203.uc new file mode 100644 index 0000000..8306446 --- /dev/null +++ b/ServerExt/Classes/ExtProj_HighExplosive_M16M203.uc @@ -0,0 +1,161 @@ +class ExtProj_HighExplosive_M16M203 extends KFProj_HighExplosive_M16M203; + +simulated protected function PrepareExplosionTemplate() +{ + local ExtPlayerReplicationInfo MyPRI; + local Ext_PerkDemolition DemoPerk; + + Super(KFProjectile).PrepareExplosionTemplate(); + + if(Instigator == None) + return; + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none ) + { + if( bWasTimeDilated && MyPRI.bNukeIsOn && class'KFPerk_Demolitionist'.static.ProjectileShouldNuke( self ) ) + { + ExplosionTemplate = class'KFPerk_Demolitionist'.static.GetNukeExplosionTemplate(); + ExplosionTemplate.Damage = default.ExplosionTemplate.Damage * class'KFPerk_Demolitionist'.static.GetNukeDamageModifier(); + ExplosionTemplate.DamageRadius = default.ExplosionTemplate.DamageRadius * class'KFPerk_Demolitionist'.static.GetNukeRadiusModifier(); + ExplosionTemplate.DamageFalloffExponent = default.ExplosionTemplate.DamageFalloffExponent; + } + else if( MyPRI.bConcussiveIsOn ) + { + ExplosionTemplate.ExplosionEffects = AltExploEffects; + ExplosionTemplate.ExplosionSound = class'KFPerk_Demolitionist'.static.GetConcussiveExplosionSound(); + } + + DemoPerk = Ext_PerkDemolition(MyPRI.FCurrentPerk); + if( DemoPerk == none ) + return; + + ExplosionTemplate.DamageRadius *= DemoPerk.GetAoERadiusModifier(); + } +} + +simulated protected function SetExplosionActorClass() +{ + local ExtPlayerReplicationInfo MyPRI; + + Super(KFProjectile).SetExplosionActorClass(); + + if(Instigator == None) + return; + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none ) + { + if( bWasTimeDilated && MyPRI.bNukeIsOn && class'KFPerk_Demolitionist'.static.ProjectileShouldNuke( self ) ) + ExplosionActorClass = class'KFPerk_Demolitionist'.static.GetNukeExplosionActorClass(); + } +} + +simulated function TriggerExplosion(Vector HitLocation, Vector HitNormal, Actor HitActor) +{ + local vector NudgedHitLocation, ExplosionDirection; + local Pawn P; + local ExtPlayerReplicationInfo MyPRI; + + if( bHasDisintegrated ) + { + return; + } + if (!bHasExploded) + { + // On local player or server, we cache off our time dilation setting here + if( WorldInfo.NetMode == NM_ListenServer || WorldInfo.NetMode == NM_DedicatedServer || InstigatorController != None ) + { + bWasTimeDilated = WorldInfo.TimeDilation < 1.f; + } + + // Stop ambient sounds when this projectile explodes + if( bStopAmbientSoundOnExplode ) + { + StopAmbientSound(); + } + + if (ExplosionTemplate != None) + { + StopSimulating(); + + // using a hit location slightly away from the impact point is nice for certain things + NudgedHitLocation = HitLocation + (HitNormal * 32.f); + + SetExplosionActorClass(); + if( ExplosionActorClass == class'KFPerk_Demolitionist'.static.GetNukeExplosionActorClass() ) + { + P = Pawn(HitActor); + if( P != none ) + { + NudgedHitLocation = P.Location - vect(0,0,1) * P.GetCollisionHeight(); + } + } + + ExplosionActor = Spawn(ExplosionActorClass, self,, NudgedHitLocation, rotator(HitNormal)); + if (ExplosionActor != None) + { + ExplosionActor.Instigator = Instigator; + ExplosionActor.InstigatorController = InstigatorController; + + PrepareExplosionTemplate(); + + // If the locations are zero (probably because this exploded in the air) set defaults + if( IsZero(HitLocation) ) + { + HitLocation = Location; + } + + if( IsZero(HitNormal) ) + { + HitNormal = vect(0,0,1); + } + + // these are needed for the decal tracing later in GameExplosionActor.Explode() + ExplosionTemplate.HitLocation = HitLocation;// NudgedHitLocation + ExplosionTemplate.HitNormal = HitNormal; + + // If desired, attach to mover if we hit one + if(bAttachExplosionToHitMover && InterpActor(HitActor) != None) + { + ExplosionActor.Attachee = HitActor; + ExplosionTemplate.bAttachExplosionEmitterToAttachee = TRUE; + ExplosionActor.SetBase(HitActor); + } + + // directional? + if (ExplosionTemplate.bDirectionalExplosion) + { + ExplosionDirection = GetExplosionDirection(HitNormal); + //DrawDebugLine(ExplosionActor.Location, ExplosionActor.Location+ExplosionDirection*64, 255, 255, 0, TRUE); + } + + // @todo: make this function responsible for setting explosion instance parameters, and take instance parameters + // out of GearExplosion (e.g. Attachee) + PrepareExplosionActor(ExplosionActor); + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none && KFExplosionActorLingering(ExplosionActor) != None ) + { + KFExplosionActorLingering(ExplosionActor).MaxTime *= MyPRI.NukeTimeMult; + KFExplosionActorLingering(ExplosionActor).LifeSpan *= MyPRI.NukeTimeMult; + } + + ExplosionActor.Explode(ExplosionTemplate, ExplosionDirection); // go bewm + } + + // done with it + if (!bPendingDelete && !bDeleteMe) + { + // defer destruction so any replication of explosion stuff can happen if necessary + DeferredDestroy(PostExplosionLifetime); + } + } + + bHasExploded = true; + } +} + +defaultproperties +{ +} \ No newline at end of file diff --git a/ServerExt/Classes/ExtProj_HighExplosive_M79.uc b/ServerExt/Classes/ExtProj_HighExplosive_M79.uc new file mode 100644 index 0000000..811d15c --- /dev/null +++ b/ServerExt/Classes/ExtProj_HighExplosive_M79.uc @@ -0,0 +1,161 @@ +class ExtProj_HighExplosive_M79 extends KFProj_HighExplosive_M79; + +simulated protected function PrepareExplosionTemplate() +{ + local ExtPlayerReplicationInfo MyPRI; + local Ext_PerkDemolition DemoPerk; + + Super(KFProjectile).PrepareExplosionTemplate(); + + if(Instigator == None) + return; + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none ) + { + if( bWasTimeDilated && MyPRI.bNukeIsOn && class'KFPerk_Demolitionist'.static.ProjectileShouldNuke( self ) ) + { + ExplosionTemplate = class'KFPerk_Demolitionist'.static.GetNukeExplosionTemplate(); + ExplosionTemplate.Damage = default.ExplosionTemplate.Damage * class'KFPerk_Demolitionist'.static.GetNukeDamageModifier(); + ExplosionTemplate.DamageRadius = default.ExplosionTemplate.DamageRadius * class'KFPerk_Demolitionist'.static.GetNukeRadiusModifier(); + ExplosionTemplate.DamageFalloffExponent = default.ExplosionTemplate.DamageFalloffExponent; + } + else if( MyPRI.bConcussiveIsOn ) + { + ExplosionTemplate.ExplosionEffects = AltExploEffects; + ExplosionTemplate.ExplosionSound = class'KFPerk_Demolitionist'.static.GetConcussiveExplosionSound(); + } + + DemoPerk = Ext_PerkDemolition(MyPRI.FCurrentPerk); + if( DemoPerk == none ) + return; + + ExplosionTemplate.DamageRadius *= DemoPerk.GetAoERadiusModifier(); + } +} + +simulated protected function SetExplosionActorClass() +{ + local ExtPlayerReplicationInfo MyPRI; + + Super(KFProjectile).SetExplosionActorClass(); + + if(Instigator == None) + return; + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none ) + { + if( bWasTimeDilated && MyPRI.bNukeIsOn && class'KFPerk_Demolitionist'.static.ProjectileShouldNuke( self ) ) + ExplosionActorClass = class'KFPerk_Demolitionist'.static.GetNukeExplosionActorClass(); + } +} + +simulated function TriggerExplosion(Vector HitLocation, Vector HitNormal, Actor HitActor) +{ + local vector NudgedHitLocation, ExplosionDirection; + local Pawn P; + local ExtPlayerReplicationInfo MyPRI; + + if( bHasDisintegrated ) + { + return; + } + if (!bHasExploded) + { + // On local player or server, we cache off our time dilation setting here + if( WorldInfo.NetMode == NM_ListenServer || WorldInfo.NetMode == NM_DedicatedServer || InstigatorController != None ) + { + bWasTimeDilated = WorldInfo.TimeDilation < 1.f; + } + + // Stop ambient sounds when this projectile explodes + if( bStopAmbientSoundOnExplode ) + { + StopAmbientSound(); + } + + if (ExplosionTemplate != None) + { + StopSimulating(); + + // using a hit location slightly away from the impact point is nice for certain things + NudgedHitLocation = HitLocation + (HitNormal * 32.f); + + SetExplosionActorClass(); + if( ExplosionActorClass == class'KFPerk_Demolitionist'.static.GetNukeExplosionActorClass() ) + { + P = Pawn(HitActor); + if( P != none ) + { + NudgedHitLocation = P.Location - vect(0,0,1) * P.GetCollisionHeight(); + } + } + + ExplosionActor = Spawn(ExplosionActorClass, self,, NudgedHitLocation, rotator(HitNormal)); + if (ExplosionActor != None) + { + ExplosionActor.Instigator = Instigator; + ExplosionActor.InstigatorController = InstigatorController; + + PrepareExplosionTemplate(); + + // If the locations are zero (probably because this exploded in the air) set defaults + if( IsZero(HitLocation) ) + { + HitLocation = Location; + } + + if( IsZero(HitNormal) ) + { + HitNormal = vect(0,0,1); + } + + // these are needed for the decal tracing later in GameExplosionActor.Explode() + ExplosionTemplate.HitLocation = HitLocation;// NudgedHitLocation + ExplosionTemplate.HitNormal = HitNormal; + + // If desired, attach to mover if we hit one + if(bAttachExplosionToHitMover && InterpActor(HitActor) != None) + { + ExplosionActor.Attachee = HitActor; + ExplosionTemplate.bAttachExplosionEmitterToAttachee = TRUE; + ExplosionActor.SetBase(HitActor); + } + + // directional? + if (ExplosionTemplate.bDirectionalExplosion) + { + ExplosionDirection = GetExplosionDirection(HitNormal); + //DrawDebugLine(ExplosionActor.Location, ExplosionActor.Location+ExplosionDirection*64, 255, 255, 0, TRUE); + } + + // @todo: make this function responsible for setting explosion instance parameters, and take instance parameters + // out of GearExplosion (e.g. Attachee) + PrepareExplosionActor(ExplosionActor); + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none && KFExplosionActorLingering(ExplosionActor) != None ) + { + KFExplosionActorLingering(ExplosionActor).MaxTime *= MyPRI.NukeTimeMult; + KFExplosionActorLingering(ExplosionActor).LifeSpan *= MyPRI.NukeTimeMult; + } + + ExplosionActor.Explode(ExplosionTemplate, ExplosionDirection); // go bewm + } + + // done with it + if (!bPendingDelete && !bDeleteMe) + { + // defer destruction so any replication of explosion stuff can happen if necessary + DeferredDestroy(PostExplosionLifetime); + } + } + + bHasExploded = true; + } +} + +defaultproperties +{ +} \ No newline at end of file diff --git a/ServerExt/Classes/ExtProj_Rocket_RPG7.uc b/ServerExt/Classes/ExtProj_Rocket_RPG7.uc new file mode 100644 index 0000000..1a7ffde --- /dev/null +++ b/ServerExt/Classes/ExtProj_Rocket_RPG7.uc @@ -0,0 +1,161 @@ +class ExtProj_Rocket_RPG7 extends KFProj_Rocket_RPG7; + +simulated protected function PrepareExplosionTemplate() +{ + local ExtPlayerReplicationInfo MyPRI; + local Ext_PerkDemolition DemoPerk; + + Super(KFProjectile).PrepareExplosionTemplate(); + + if(Instigator == None) + return; + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none ) + { + if( bWasTimeDilated && MyPRI.bNukeIsOn && class'KFPerk_Demolitionist'.static.ProjectileShouldNuke( self ) ) + { + ExplosionTemplate = class'KFPerk_Demolitionist'.static.GetNukeExplosionTemplate(); + ExplosionTemplate.Damage = default.ExplosionTemplate.Damage * class'KFPerk_Demolitionist'.static.GetNukeDamageModifier(); + ExplosionTemplate.DamageRadius = default.ExplosionTemplate.DamageRadius * class'KFPerk_Demolitionist'.static.GetNukeRadiusModifier(); + ExplosionTemplate.DamageFalloffExponent = default.ExplosionTemplate.DamageFalloffExponent; + } + else if( MyPRI.bConcussiveIsOn ) + { + ExplosionTemplate.ExplosionEffects = AltExploEffects; + ExplosionTemplate.ExplosionSound = class'KFPerk_Demolitionist'.static.GetConcussiveExplosionSound(); + } + + DemoPerk = Ext_PerkDemolition(MyPRI.FCurrentPerk); + if( DemoPerk == none ) + return; + + ExplosionTemplate.DamageRadius *= DemoPerk.GetAoERadiusModifier(); + } +} + +simulated protected function SetExplosionActorClass() +{ + local ExtPlayerReplicationInfo MyPRI; + + Super(KFProjectile).SetExplosionActorClass(); + + if(Instigator == None) + return; + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none ) + { + if( bWasTimeDilated && MyPRI.bNukeIsOn && class'KFPerk_Demolitionist'.static.ProjectileShouldNuke( self ) ) + ExplosionActorClass = class'KFPerk_Demolitionist'.static.GetNukeExplosionActorClass(); + } +} + +simulated function TriggerExplosion(Vector HitLocation, Vector HitNormal, Actor HitActor) +{ + local vector NudgedHitLocation, ExplosionDirection; + local Pawn P; + local ExtPlayerReplicationInfo MyPRI; + + if( bHasDisintegrated ) + { + return; + } + if (!bHasExploded) + { + // On local player or server, we cache off our time dilation setting here + if( WorldInfo.NetMode == NM_ListenServer || WorldInfo.NetMode == NM_DedicatedServer || InstigatorController != None ) + { + bWasTimeDilated = WorldInfo.TimeDilation < 1.f; + } + + // Stop ambient sounds when this projectile explodes + if( bStopAmbientSoundOnExplode ) + { + StopAmbientSound(); + } + + if (ExplosionTemplate != None) + { + StopSimulating(); + + // using a hit location slightly away from the impact point is nice for certain things + NudgedHitLocation = HitLocation + (HitNormal * 32.f); + + SetExplosionActorClass(); + if( ExplosionActorClass == class'KFPerk_Demolitionist'.static.GetNukeExplosionActorClass() ) + { + P = Pawn(HitActor); + if( P != none ) + { + NudgedHitLocation = P.Location - vect(0,0,1) * P.GetCollisionHeight(); + } + } + + ExplosionActor = Spawn(ExplosionActorClass, self,, NudgedHitLocation, rotator(HitNormal)); + if (ExplosionActor != None) + { + ExplosionActor.Instigator = Instigator; + ExplosionActor.InstigatorController = InstigatorController; + + PrepareExplosionTemplate(); + + // If the locations are zero (probably because this exploded in the air) set defaults + if( IsZero(HitLocation) ) + { + HitLocation = Location; + } + + if( IsZero(HitNormal) ) + { + HitNormal = vect(0,0,1); + } + + // these are needed for the decal tracing later in GameExplosionActor.Explode() + ExplosionTemplate.HitLocation = HitLocation;// NudgedHitLocation + ExplosionTemplate.HitNormal = HitNormal; + + // If desired, attach to mover if we hit one + if(bAttachExplosionToHitMover && InterpActor(HitActor) != None) + { + ExplosionActor.Attachee = HitActor; + ExplosionTemplate.bAttachExplosionEmitterToAttachee = TRUE; + ExplosionActor.SetBase(HitActor); + } + + // directional? + if (ExplosionTemplate.bDirectionalExplosion) + { + ExplosionDirection = GetExplosionDirection(HitNormal); + //DrawDebugLine(ExplosionActor.Location, ExplosionActor.Location+ExplosionDirection*64, 255, 255, 0, TRUE); + } + + // @todo: make this function responsible for setting explosion instance parameters, and take instance parameters + // out of GearExplosion (e.g. Attachee) + PrepareExplosionActor(ExplosionActor); + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none && KFExplosionActorLingering(ExplosionActor) != None ) + { + KFExplosionActorLingering(ExplosionActor).MaxTime *= MyPRI.NukeTimeMult; + KFExplosionActorLingering(ExplosionActor).LifeSpan *= MyPRI.NukeTimeMult; + } + + ExplosionActor.Explode(ExplosionTemplate, ExplosionDirection); // go bewm + } + + // done with it + if (!bPendingDelete && !bDeleteMe) + { + // defer destruction so any replication of explosion stuff can happen if necessary + DeferredDestroy(PostExplosionLifetime); + } + } + + bHasExploded = true; + } +} + +defaultproperties +{ +} \ No newline at end of file diff --git a/ServerExt/Classes/ExtProj_Rocket_Seeker6.uc b/ServerExt/Classes/ExtProj_Rocket_Seeker6.uc new file mode 100644 index 0000000..74dda47 --- /dev/null +++ b/ServerExt/Classes/ExtProj_Rocket_Seeker6.uc @@ -0,0 +1,161 @@ +class ExtProj_Rocket_Seeker6 extends KFProj_Rocket_Seeker6; + +simulated protected function PrepareExplosionTemplate() +{ + local ExtPlayerReplicationInfo MyPRI; + local Ext_PerkDemolition DemoPerk; + + Super(KFProjectile).PrepareExplosionTemplate(); + + if(Instigator == None) + return; + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none ) + { + if( bWasTimeDilated && MyPRI.bNukeIsOn && class'KFPerk_Demolitionist'.static.ProjectileShouldNuke( self ) ) + { + ExplosionTemplate = class'KFPerk_Demolitionist'.static.GetNukeExplosionTemplate(); + ExplosionTemplate.Damage = default.ExplosionTemplate.Damage * class'KFPerk_Demolitionist'.static.GetNukeDamageModifier(); + ExplosionTemplate.DamageRadius = default.ExplosionTemplate.DamageRadius * class'KFPerk_Demolitionist'.static.GetNukeRadiusModifier(); + ExplosionTemplate.DamageFalloffExponent = default.ExplosionTemplate.DamageFalloffExponent; + } + else if( MyPRI.bConcussiveIsOn ) + { + ExplosionTemplate.ExplosionEffects = AltExploEffects; + ExplosionTemplate.ExplosionSound = class'KFPerk_Demolitionist'.static.GetConcussiveExplosionSound(); + } + + DemoPerk = Ext_PerkDemolition(MyPRI.FCurrentPerk); + if( DemoPerk == none ) + return; + + ExplosionTemplate.DamageRadius *= DemoPerk.GetAoERadiusModifier(); + } +} + +simulated protected function SetExplosionActorClass() +{ + local ExtPlayerReplicationInfo MyPRI; + + Super(KFProjectile).SetExplosionActorClass(); + + if(Instigator == None) + return; + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none ) + { + if( bWasTimeDilated && MyPRI.bNukeIsOn && class'KFPerk_Demolitionist'.static.ProjectileShouldNuke( self ) ) + ExplosionActorClass = class'KFPerk_Demolitionist'.static.GetNukeExplosionActorClass(); + } +} + +simulated function TriggerExplosion(Vector HitLocation, Vector HitNormal, Actor HitActor) +{ + local vector NudgedHitLocation, ExplosionDirection; + local Pawn P; + local ExtPlayerReplicationInfo MyPRI; + + if( bHasDisintegrated ) + { + return; + } + if (!bHasExploded) + { + // On local player or server, we cache off our time dilation setting here + if( WorldInfo.NetMode == NM_ListenServer || WorldInfo.NetMode == NM_DedicatedServer || InstigatorController != None ) + { + bWasTimeDilated = WorldInfo.TimeDilation < 1.f; + } + + // Stop ambient sounds when this projectile explodes + if( bStopAmbientSoundOnExplode ) + { + StopAmbientSound(); + } + + if (ExplosionTemplate != None) + { + StopSimulating(); + + // using a hit location slightly away from the impact point is nice for certain things + NudgedHitLocation = HitLocation + (HitNormal * 32.f); + + SetExplosionActorClass(); + if( ExplosionActorClass == class'KFPerk_Demolitionist'.static.GetNukeExplosionActorClass() ) + { + P = Pawn(HitActor); + if( P != none ) + { + NudgedHitLocation = P.Location - vect(0,0,1) * P.GetCollisionHeight(); + } + } + + ExplosionActor = Spawn(ExplosionActorClass, self,, NudgedHitLocation, rotator(HitNormal)); + if (ExplosionActor != None) + { + ExplosionActor.Instigator = Instigator; + ExplosionActor.InstigatorController = InstigatorController; + + PrepareExplosionTemplate(); + + // If the locations are zero (probably because this exploded in the air) set defaults + if( IsZero(HitLocation) ) + { + HitLocation = Location; + } + + if( IsZero(HitNormal) ) + { + HitNormal = vect(0,0,1); + } + + // these are needed for the decal tracing later in GameExplosionActor.Explode() + ExplosionTemplate.HitLocation = HitLocation;// NudgedHitLocation + ExplosionTemplate.HitNormal = HitNormal; + + // If desired, attach to mover if we hit one + if(bAttachExplosionToHitMover && InterpActor(HitActor) != None) + { + ExplosionActor.Attachee = HitActor; + ExplosionTemplate.bAttachExplosionEmitterToAttachee = TRUE; + ExplosionActor.SetBase(HitActor); + } + + // directional? + if (ExplosionTemplate.bDirectionalExplosion) + { + ExplosionDirection = GetExplosionDirection(HitNormal); + //DrawDebugLine(ExplosionActor.Location, ExplosionActor.Location+ExplosionDirection*64, 255, 255, 0, TRUE); + } + + // @todo: make this function responsible for setting explosion instance parameters, and take instance parameters + // out of GearExplosion (e.g. Attachee) + PrepareExplosionActor(ExplosionActor); + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none && KFExplosionActorLingering(ExplosionActor) != None ) + { + KFExplosionActorLingering(ExplosionActor).MaxTime *= MyPRI.NukeTimeMult; + KFExplosionActorLingering(ExplosionActor).LifeSpan *= MyPRI.NukeTimeMult; + } + + ExplosionActor.Explode(ExplosionTemplate, ExplosionDirection); // go bewm + } + + // done with it + if (!bPendingDelete && !bDeleteMe) + { + // defer destruction so any replication of explosion stuff can happen if necessary + DeferredDestroy(PostExplosionLifetime); + } + } + + bHasExploded = true; + } +} + +defaultproperties +{ +} \ No newline at end of file diff --git a/ServerExt/Classes/ExtProj_Thrown_C4.uc b/ServerExt/Classes/ExtProj_Thrown_C4.uc new file mode 100644 index 0000000..c532307 --- /dev/null +++ b/ServerExt/Classes/ExtProj_Thrown_C4.uc @@ -0,0 +1,161 @@ +class ExtProj_Thrown_C4 extends KFProj_Thrown_C4; + +simulated protected function PrepareExplosionTemplate() +{ + local ExtPlayerReplicationInfo MyPRI; + local Ext_PerkDemolition DemoPerk; + + Super(KFProjectile).PrepareExplosionTemplate(); + + if(Instigator == None) + return; + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none ) + { + if( bWasTimeDilated && MyPRI.bNukeIsOn && class'KFPerk_Demolitionist'.static.ProjectileShouldNuke( self ) ) + { + ExplosionTemplate = class'KFPerk_Demolitionist'.static.GetNukeExplosionTemplate(); + ExplosionTemplate.Damage = default.ExplosionTemplate.Damage * class'KFPerk_Demolitionist'.static.GetNukeDamageModifier(); + ExplosionTemplate.DamageRadius = default.ExplosionTemplate.DamageRadius * class'KFPerk_Demolitionist'.static.GetNukeRadiusModifier(); + ExplosionTemplate.DamageFalloffExponent = default.ExplosionTemplate.DamageFalloffExponent; + } + else if( MyPRI.bConcussiveIsOn ) + { + ExplosionTemplate.ExplosionEffects = AltExploEffects; + ExplosionTemplate.ExplosionSound = class'KFPerk_Demolitionist'.static.GetConcussiveExplosionSound(); + } + + DemoPerk = Ext_PerkDemolition(MyPRI.FCurrentPerk); + if( DemoPerk == none ) + return; + + ExplosionTemplate.DamageRadius *= DemoPerk.GetAoERadiusModifier(); + } +} + +simulated protected function SetExplosionActorClass() +{ + local ExtPlayerReplicationInfo MyPRI; + + Super(KFProjectile).SetExplosionActorClass(); + + if(Instigator == None) + return; + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none ) + { + if( bWasTimeDilated && MyPRI.bNukeIsOn && class'KFPerk_Demolitionist'.static.ProjectileShouldNuke( self ) ) + ExplosionActorClass = class'KFPerk_Demolitionist'.static.GetNukeExplosionActorClass(); + } +} + +simulated function TriggerExplosion(Vector HitLocation, Vector HitNormal, Actor HitActor) +{ + local vector NudgedHitLocation, ExplosionDirection; + local Pawn P; + local ExtPlayerReplicationInfo MyPRI; + + if( bHasDisintegrated ) + { + return; + } + if (!bHasExploded) + { + // On local player or server, we cache off our time dilation setting here + if( WorldInfo.NetMode == NM_ListenServer || WorldInfo.NetMode == NM_DedicatedServer || InstigatorController != None ) + { + bWasTimeDilated = WorldInfo.TimeDilation < 1.f; + } + + // Stop ambient sounds when this projectile explodes + if( bStopAmbientSoundOnExplode ) + { + StopAmbientSound(); + } + + if (ExplosionTemplate != None) + { + StopSimulating(); + + // using a hit location slightly away from the impact point is nice for certain things + NudgedHitLocation = HitLocation + (HitNormal * 32.f); + + SetExplosionActorClass(); + if( ExplosionActorClass == class'KFPerk_Demolitionist'.static.GetNukeExplosionActorClass() ) + { + P = Pawn(HitActor); + if( P != none ) + { + NudgedHitLocation = P.Location - vect(0,0,1) * P.GetCollisionHeight(); + } + } + + ExplosionActor = Spawn(ExplosionActorClass, self,, NudgedHitLocation, rotator(HitNormal)); + if (ExplosionActor != None) + { + ExplosionActor.Instigator = Instigator; + ExplosionActor.InstigatorController = InstigatorController; + + PrepareExplosionTemplate(); + + // If the locations are zero (probably because this exploded in the air) set defaults + if( IsZero(HitLocation) ) + { + HitLocation = Location; + } + + if( IsZero(HitNormal) ) + { + HitNormal = vect(0,0,1); + } + + // these are needed for the decal tracing later in GameExplosionActor.Explode() + ExplosionTemplate.HitLocation = HitLocation;// NudgedHitLocation + ExplosionTemplate.HitNormal = HitNormal; + + // If desired, attach to mover if we hit one + if(bAttachExplosionToHitMover && InterpActor(HitActor) != None) + { + ExplosionActor.Attachee = HitActor; + ExplosionTemplate.bAttachExplosionEmitterToAttachee = TRUE; + ExplosionActor.SetBase(HitActor); + } + + // directional? + if (ExplosionTemplate.bDirectionalExplosion) + { + ExplosionDirection = GetExplosionDirection(HitNormal); + //DrawDebugLine(ExplosionActor.Location, ExplosionActor.Location+ExplosionDirection*64, 255, 255, 0, TRUE); + } + + // @todo: make this function responsible for setting explosion instance parameters, and take instance parameters + // out of GearExplosion (e.g. Attachee) + PrepareExplosionActor(ExplosionActor); + + MyPRI = ExtPlayerReplicationInfo(Instigator.PlayerReplicationInfo); + if( MyPRI != none && KFExplosionActorLingering(ExplosionActor) != None ) + { + KFExplosionActorLingering(ExplosionActor).MaxTime *= MyPRI.NukeTimeMult; + KFExplosionActorLingering(ExplosionActor).LifeSpan *= MyPRI.NukeTimeMult; + } + + ExplosionActor.Explode(ExplosionTemplate, ExplosionDirection); // go bewm + } + + // done with it + if (!bPendingDelete && !bDeleteMe) + { + // defer destruction so any replication of explosion stuff can happen if necessary + DeferredDestroy(PostExplosionLifetime); + } + } + + bHasExploded = true; + } +} + +defaultproperties +{ +} \ No newline at end of file diff --git a/ServerExt/Classes/ExtSM_Player_Emote.uc b/ServerExt/Classes/ExtSM_Player_Emote.uc new file mode 100644 index 0000000..c780046 --- /dev/null +++ b/ServerExt/Classes/ExtSM_Player_Emote.uc @@ -0,0 +1,50 @@ +class ExtSM_Player_Emote extends KFSM_Player_Emote; + +static function byte PackFlagsBase( KFPawn P ) +{ + return class'ExtEmoteList'.static.GetEmoteIndex( class'ExtEmoteList'.static.GetEquippedEmoteId(ExtPlayerController(P.Controller)) ); +} + +function PlayAnimation() +{ + AnimName = class'ExtEmoteList'.static.GetEmoteFromIndex( KFPOwner.SpecialMoveFlags ); + + PlaySpecialMoveAnim( AnimName, AnimStance, BlendInTime, BlendOutTime, 1.f ); + + if( KFPOwner.Role == ROLE_Authority ) + { + KFGameInfo(KFPOwner.WorldInfo.Game).DialogManager.PlayDialogEvent( KFPOwner, 31 ); + } + + // Store camera mode for restoration after move ends + LastCameraMode = 'FirstPerson'; + if( PCOwner != none && PCOwner.PlayerCamera != none ) + { + LastCameraMode = PCOwner.PlayerCamera.CameraStyle; + } + + // Set camera to emote third person camera + if( PCOwner == none || !PawnOwner.IsLocallyControlled() ) + { + KFPOwner.SetWeaponAttachmentVisibility( false ); + return; + } + + if( PCOwner.CanViewCinematics() ) + { + PCOwner.ClientSetCameraFade( true, FadeInColor, vect2d(1.f, 0.f), FadeInTime, true ); + PCOwner.PlayerCamera.CameraStyle = 'Emote'; + + // Switch camera modes immediately in single player or on client + if( PCOwner.WorldInfo.NetMode != NM_DedicatedServer ) + { + PCOwner.ClientSetCameraMode( 'Emote' ); + } + + KFPOwner.SetWeaponAttachmentVisibility( false ); + } +} + +DefaultProperties +{ +} \ No newline at end of file diff --git a/ServerExt/Classes/ExtSM_Siren_Scream.uc b/ServerExt/Classes/ExtSM_Siren_Scream.uc index e31f114..9d4f8eb 100644 --- a/ServerExt/Classes/ExtSM_Siren_Scream.uc +++ b/ServerExt/Classes/ExtSM_Siren_Scream.uc @@ -1,7 +1,14 @@ class ExtSM_Siren_Scream extends KFSM_Siren_Scream; +function SpawnProjectileShield() +{ + return; +} + DefaultProperties { + ExplosionActorClass=class'ExtExplosion_SirenScream' + // explosion Begin Object Name=ExploTemplate0 ActorClassToIgnoreForDamage=class'KFPawn_ZedSirenX' diff --git a/ServerExt/Classes/ExtWeapDef_Grenade_Demo.uc b/ServerExt/Classes/ExtWeapDef_Grenade_Demo.uc new file mode 100644 index 0000000..aabd6a5 --- /dev/null +++ b/ServerExt/Classes/ExtWeapDef_Grenade_Demo.uc @@ -0,0 +1,11 @@ +class ExtWeapDef_Grenade_Demo extends KFWeapDef_Grenade_Demo; + +static function string GetItemLocalization(string KeyName) +{ + return class'KFWeapDef_Grenade_Demo'.Static.GetItemLocalization(KeyName); +} + +DefaultProperties +{ + WeaponClassPath="ServerExt.ExtProj_DynamiteGrenade" +} diff --git a/ServerExt/Classes/ExtWeap_Pistol_9mm.uc b/ServerExt/Classes/ExtWeap_Pistol_9mm.uc new file mode 100644 index 0000000..9258a19 --- /dev/null +++ b/ServerExt/Classes/ExtWeap_Pistol_9mm.uc @@ -0,0 +1,12 @@ +class ExtWeap_Pistol_9mm extends KFWeap_Pistol_9mm; + +defaultproperties +{ + SpareAmmoCapacity[0]=-1 + InitialSpareMags[0]=0 + + bInfiniteSpareAmmo=True + + DualClass=class'ExtWeap_Pistol_Dual9mm' +} + diff --git a/ServerExt/Classes/ExtWeap_Pistol_Dual9mm.uc b/ServerExt/Classes/ExtWeap_Pistol_Dual9mm.uc new file mode 100644 index 0000000..19ed02a --- /dev/null +++ b/ServerExt/Classes/ExtWeap_Pistol_Dual9mm.uc @@ -0,0 +1,7 @@ +class ExtWeap_Pistol_Dual9mm extends KFWeap_Pistol_Dual9mm; + +defaultproperties +{ + SingleClass=class'ExtWeap_Pistol_9mm' +} + diff --git a/ServerExt/Classes/ExtWeap_Pistol_MedicS.uc b/ServerExt/Classes/ExtWeap_Pistol_MedicS.uc new file mode 100644 index 0000000..b0e5877 --- /dev/null +++ b/ServerExt/Classes/ExtWeap_Pistol_MedicS.uc @@ -0,0 +1,12 @@ +class ExtWeap_Pistol_MedicS extends KFWeap_Pistol_Medic; + +defaultproperties +{ + AssociatedPerkClasses(0)=none + bCanThrow=false + + SpareAmmoCapacity[0]=-1 + InitialSpareMags[0]=0 + + bInfiniteSpareAmmo=True +} \ No newline at end of file diff --git a/ServerExt/Classes/ExtWeaponSkinList.uc b/ServerExt/Classes/ExtWeaponSkinList.uc new file mode 100644 index 0000000..661d882 --- /dev/null +++ b/ServerExt/Classes/ExtWeaponSkinList.uc @@ -0,0 +1,1351 @@ +class ExtWeaponSkinList extends Object; + +struct WeaponSkin +{ + var int Id; + + var array MIC_1P; + var string MIC_3P; + var string MIC_Pickup; + + var class WeaponDef; +}; + +enum EWeaponSkinType +{ + WST_FirstPerson, + WST_ThirdPerson, + WST_Pickup, +}; +var array Skins; + +static function array GetWeaponSkin(int ItemId, EWeaponSkinType Type, ExtPlayerController PC) +{ + local int i; + local array Mats; + local MaterialInterface LoadedMat; + local string FirstPMat; + + i = default.Skins.Find('Id', ItemId); + if( i > -1 ) + { + switch( Type ) + { + case WST_FirstPerson: + foreach default.Skins[i].MIC_1P(FirstPMat) + { + LoadedMat = MaterialInterface(DynamicLoadObject(FirstPMat, class'MaterialInterface')); + if( LoadedMat != None ) + Mats.AddItem(LoadedMat); + } + + break; + case WST_ThirdPerson: + LoadedMat = MaterialInterface(DynamicLoadObject(default.Skins[i].MIC_3P, class'MaterialInterface')); + if( LoadedMat != None ) + Mats.AddItem(LoadedMat); + + break; + case WST_Pickup: + LoadedMat = MaterialInterface(DynamicLoadObject(default.Skins[i].MIC_Pickup, class'MaterialInterface')); + if( LoadedMat != None ) + Mats.AddItem(LoadedMat); + + break; + } + } + + return Mats; +} + +static function SaveWeaponSkin(class WeaponDef, int ID, ExtPlayerController PC ) +{ + local int ALen, i; + + i = PC.SavedWeaponSkins.Find('WepDef', WeaponDef); + if( i > -1 ) + PC.SavedWeaponSkins.Remove(i, 1); + + ALen = PC.SavedWeaponSkins.Length; + PC.SavedWeaponSkins[ALen].ID = ID; + PC.SavedWeaponSkins[ALen].WepDef = WeaponDef; + + PC.SaveConfig(); +} + +static function bool IsSkinEquip(class WeaponDef, int ID, ExtPlayerController PC) +{ + local int i; + i = PC.SavedWeaponSkins.Find('ID', ID); + if( i > -1 ) + return true; + + return false; +} + +defaultproperties +{ +//Anodized Hazard AR15 + Skins.Add((Id=3001, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_3P_Pickup_MIC")) + Skins.Add((Id=3002, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_3P_Pickup_MIC")) + Skins.Add((Id=3003, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_3P_Pickup_MIC")) + +//Airlock 9mm + Skins.Add((Id=3004, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_3P_Pickup_MIC")) + Skins.Add((Id=3005, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_3P_Pickup_MIC")) + Skins.Add((Id=3006, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_3P_Pickup_MIC")) + +//Aeronaut Bullpup + Skins.Add((Id=3007, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet01_MAT.aeronaut_bullpup.Aeronaut_Bullpup_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.aeronaut_bullpup.Aeronaut_Bullpup_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.aeronaut_bullpup.Aeronaut_Bullpup_3P_Pickup_MIC")) + Skins.Add((Id=3008, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet01_MAT.aeronaut_bullpup.Aeronaut_Bullpup_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.aeronaut_bullpup.Aeronaut_Bullpup_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.aeronaut_bullpup.Aeronaut_Bullpup_3P_Pickup_MIC")) + Skins.Add((Id=3009, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet01_MAT.aeronaut_bullpup.Aeronaut_Bullpup_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.aeronaut_bullpup.Aeronaut_Bullpup_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.aeronaut_bullpup.Aeronaut_Bullpup_3P_Pickup_MIC")) + +//Woodland AA12 + Skins.Add((Id=3010, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3011, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3012, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_3P_Pickup_MIC")) + +//Woodland Boomstick + Skins.Add((Id=3013, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_3P_Pickup_MIC")) + Skins.Add((Id=3014, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_3P_Pickup_MIC")) + Skins.Add((Id=3015, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_3P_Pickup_MIC")) + +//Woodland L85A2 + Skins.Add((Id=3016, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_3P_Pickup_MIC")) + Skins.Add((Id=3017, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_3P_Pickup_MIC")) + Skins.Add((Id=3018, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_3P_Pickup_MIC")) + +//Woodland Scar + Skins.Add((Id=3019, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_scar.Woodland_SCAR_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_scar.Woodland_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_scar.Woodland_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3020, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_scar.Woodland_SCAR_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_scar.Woodland_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_scar.Woodland_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3021, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_scar.Woodland_SCAR_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_scar.Woodland_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_scar.Woodland_SCAR_3P_Pickup_MIC")) + +//Arachnid Nailgun + Skins.Add((Id=3022, Weapondef=class'KFWeapDef_NailGun', MIC_1P=("WEP_SkinSetPSN01_MAT.arachnid_nailgun.Arachnid_NailGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.arachnid_nailgun.Arachnid_NailGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.arachnid_nailgun.Arachnid_NailGun_3P_Pickup_MIC")) + Skins.Add((Id=3023, Weapondef=class'KFWeapDef_NailGun', MIC_1P=("WEP_SkinSetPSN01_MAT.arachnid_nailgun.Arachnid_NailGun_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.arachnid_nailgun.Arachnid_NailGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.arachnid_nailgun.Arachnid_NailGun_3P_Pickup_MIC")) + Skins.Add((Id=3024, Weapondef=class'KFWeapDef_NailGun', MIC_1P=("WEP_SkinSetPSN01_MAT.arachnid_nailgun.Arachnid_NailGun_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.arachnid_nailgun.Arachnid_NailGun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.arachnid_nailgun.Arachnid_NailGun_3P_Pickup_MIC")) + +//Bloated 9mm + Skins.Add((Id=3025, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSetPSN01_MAT.bloated_9mm.Bloated_9mm_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.bloated_9mm.Bloated_9mm_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.bloated_9mm.Bloated_9mm_3P_Pickup_MIC")) + Skins.Add((Id=3026, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSetPSN01_MAT.bloated_9mm.Bloated_9mm_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.bloated_9mm.Bloated_9mm_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.bloated_9mm.Bloated_9mm_3P_Pickup_MIC")) + Skins.Add((Id=3027, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSetPSN01_MAT.bloated_9mm.Bloated_9mm_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.bloated_9mm.Bloated_9mm_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.bloated_9mm.Bloated_9mm_3P_Pickup_MIC")) + +//Monster Killer M4 + Skins.Add((Id=3028, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet01_MAT.monsterkiller_m4.MonsterKiller_M4_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.monsterkiller_m4.MonsterKiller_M4_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.monsterkiller_m4.MonsterKiller_M4_3P_Pickup_MIC")) + Skins.Add((Id=3029, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet01_MAT.monsterkiller_m4.MonsterKiller_M4_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.monsterkiller_m4.MonsterKiller_M4_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.monsterkiller_m4.MonsterKiller_M4_3P_Pickup_MIC")) + Skins.Add((Id=3030, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet01_MAT.monsterkiller_m4.MonsterKiller_M4_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.monsterkiller_m4.MonsterKiller_M4_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.monsterkiller_m4.MonsterKiller_M4_3P_Pickup_MIC")) + +//Grave Digger Crovel + Skins.Add((Id=3031, Weapondef=class'KFWeapDef_Crovel', MIC_1P=("WEP_SkinSetPSN01_MAT.gravedigger_crovel.GraveDigger_Crovel_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.gravedigger_crovel.GraveDigger_Crovel_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.gravedigger_crovel.GraveDigger_Crovel_3P_Pickup_MIC")) + Skins.Add((Id=3032, Weapondef=class'KFWeapDef_Crovel', MIC_1P=("WEP_SkinSetPSN01_MAT.gravedigger_crovel.GraveDigger_Crovel_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.gravedigger_crovel.GraveDigger_Crovel_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.gravedigger_crovel.GraveDigger_Crovel_3P_Pickup_MIC")) + Skins.Add((Id=3033, Weapondef=class'KFWeapDef_Crovel', MIC_1P=("WEP_SkinSetPSN01_MAT.gravedigger_crovel.GraveDigger_Crovel_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.gravedigger_crovel.GraveDigger_Crovel_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.gravedigger_crovel.GraveDigger_Crovel_3P_Pickup_MIC")) + +//Clot Commando Scar + Skins.Add((Id=3036, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSetPSN01_MAT.clotcommando_scar.ClotCommando_SCAR_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.clotcommando_scar.ClotCommando_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.clotcommando_scar.ClotCommando_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3035, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSetPSN01_MAT.clotcommando_scar.ClotCommando_SCAR_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.clotcommando_scar.ClotCommando_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.clotcommando_scar.ClotCommando_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3034, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSetPSN01_MAT.clotcommando_scar.ClotCommando_SCAR_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.clotcommando_scar.ClotCommando_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.clotcommando_scar.ClotCommando_SCAR_3P_Pickup_MIC")) + +//Shark Teeth Double Barrel + Skins.Add((Id=3039, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSet01_MAT.sharkteeth_doublebarrel.SharkTeeth_DoubleBarrel_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.sharkteeth_doublebarrel.SharkTeeth_DoubleBarrel_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.sharkteeth_doublebarrel.SharkTeeth_DoubleBarrel_3P_Pickup_MIC")) + Skins.Add((Id=3038, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSet01_MAT.sharkteeth_doublebarrel.SharkTeeth_DoubleBarrel_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.sharkteeth_doublebarrel.SharkTeeth_DoubleBarrel_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.sharkteeth_doublebarrel.SharkTeeth_DoubleBarrel_3P_Pickup_MIC")) + Skins.Add((Id=3037, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSet01_MAT.sharkteeth_doublebarrel.SharkTeeth_DoubleBarrel_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.sharkteeth_doublebarrel.SharkTeeth_DoubleBarrel_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.sharkteeth_doublebarrel.SharkTeeth_DoubleBarrel_3P_Pickup_MIC")) + +//Tiger RPG7 + Skins.Add((Id=3042, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSetPSN03_MAT.tiger_rpg7.Tiger_RPG7_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.tiger_rpg7.Tiger_RPG7_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.tiger_rpg7.Tiger_RPG7_3P_Pickup_MIC")) + Skins.Add((Id=3041, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSetPSN03_MAT.tiger_rpg7.Tiger_RPG7_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.tiger_rpg7.Tiger_RPG7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.tiger_rpg7.Tiger_RPG7_3P_Pickup_MIC")) + Skins.Add((Id=3040, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSetPSN03_MAT.tiger_rpg7.Tiger_RPG7_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.tiger_rpg7.Tiger_RPG7_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.tiger_rpg7.Tiger_RPG7_3P_Pickup_MIC")) + +//Tiger M79 + Skins.Add((Id=3046, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSetPSN03_MAT.tiger_m79.Tiger_M79_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.tiger_m79.Tiger_M79_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.tiger_m79.Tiger_M79_3P_Pickup_MIC")) + Skins.Add((Id=3045, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSetPSN03_MAT.tiger_m79.Tiger_M79_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.tiger_m79.Tiger_M79_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.tiger_m79.Tiger_M79_3P_Pickup_MIC")) + Skins.Add((Id=3044, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSetPSN03_MAT.tiger_m79.Tiger_M79_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.tiger_m79.Tiger_M79_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.tiger_m79.Tiger_M79_3P_Pickup_MIC")) + +//Tiger HX25 + Skins.Add((Id=3049, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSetPSN03_MAT.tiger_hx25.Tiger_HX25_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.tiger_hx25.Tiger_HX25_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.tiger_hx25.Tiger_HX25_3P_Pickup_MIC")) + Skins.Add((Id=3048, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSetPSN03_MAT.tiger_hx25.Tiger_HX25_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.tiger_hx25.Tiger_HX25_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.tiger_hx25.Tiger_HX25_3P_Pickup_MIC")) + Skins.Add((Id=3047, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSetPSN03_MAT.tiger_hx25.Tiger_HX25_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.tiger_hx25.Tiger_HX25_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.tiger_hx25.Tiger_HX25_3P_Pickup_MIC")) + +//Tiger AK12 + Skins.Add((Id=3052, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSetPSN03_MAT.tiger_ak12.Tiger_AK12_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.tiger_ak12.Tiger_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.tiger_ak12.Tiger_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3051, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSetPSN03_MAT.tiger_ak12.Tiger_AK12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.tiger_ak12.Tiger_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.tiger_ak12.Tiger_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3050, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSetPSN03_MAT.tiger_ak12.Tiger_AK12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.tiger_ak12.Tiger_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.tiger_ak12.Tiger_AK12_3P_Pickup_MIC")) + +//Skull Cracker Pulverizer + Skins.Add((Id=3055, Weapondef=class'KFWeapDef_Pulverizer', MIC_1P=("WEP_SkinSetPSN01_MAT.skullcracker_pulverizer.SkullCracker_Pulverizer_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.skullcracker_pulverizer.SkullCracker_Pulverizer_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.skullcracker_pulverizer.SkullCracker_Pulverizer_3P_Pickup_MIC")) + Skins.Add((Id=3054, Weapondef=class'KFWeapDef_Pulverizer', MIC_1P=("WEP_SkinSetPSN01_MAT.skullcracker_pulverizer.SkullCracker_Pulverizer_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.skullcracker_pulverizer.SkullCracker_Pulverizer_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.skullcracker_pulverizer.SkullCracker_Pulverizer_3P_Pickup_MIC")) + Skins.Add((Id=3053, Weapondef=class'KFWeapDef_Pulverizer', MIC_1P=("WEP_SkinSetPSN01_MAT.skullcracker_pulverizer.SkullCracker_Pulverizer_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.skullcracker_pulverizer.SkullCracker_Pulverizer_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.skullcracker_pulverizer.SkullCracker_Pulverizer_3P_Pickup_MIC")) + +//Fleshpounder AA12 + Skins.Add((Id=3058, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSetPSN01_MAT.fleshpounder_aa12.Fleshpounder_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.fleshpounder_aa12.Fleshpounder_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.fleshpounder_aa12.Fleshpounder_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3057, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSetPSN01_MAT.fleshpounder_aa12.Fleshpounder_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.fleshpounder_aa12.Fleshpounder_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.fleshpounder_aa12.Fleshpounder_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3056, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSetPSN01_MAT.fleshpounder_aa12.Fleshpounder_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.fleshpounder_aa12.Fleshpounder_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.fleshpounder_aa12.Fleshpounder_AA12_3P_Pickup_MIC")) + +//Horzine Elite Blue SCAR + Skins.Add((Id=3064, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet01_MAT.horzineeliteblue_scar.HorzineEliteBlue_SCAR_1P_Mint_MIC", "WEP_SkinSet01_MAT.horzineeliteblue_scar.HorzineEliteBlue_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.horzineeliteblue_scar.HorzineEliteBlue_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.horzineeliteblue_scar.HorzineEliteBlue_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3063, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet01_MAT.horzineeliteblue_scar.HorzineEliteBlue_SCAR_1P_FieldTested_MIC", "WEP_SkinSet01_MAT.horzineeliteblue_scar.HorzineEliteBlue_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.horzineeliteblue_scar.HorzineEliteBlue_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.horzineeliteblue_scar.HorzineEliteBlue_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3062, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet01_MAT.horzineeliteblue_scar.HorzineEliteBlue_SCAR_1P_BattleScarred_MIC", "WEP_SkinSet01_MAT.horzineeliteblue_scar.HorzineEliteBlue_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.horzineeliteblue_scar.HorzineEliteBlue_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.horzineeliteblue_scar.HorzineEliteBlue_SCAR_3P_Pickup_MIC")) + +//Horzine Elite Red SCAR + Skins.Add((Id=3061, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet01_MAT.horzineelitered_scar.HorzineEliteRed_SCAR_1P_Mint_MIC", "WEP_SkinSet01_MAT.horzineelitered_scar.HorzineEliteRed_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.horzineelitered_scar.HorzineEliteRed_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.horzineelitered_scar.HorzineEliteRed_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3060, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet01_MAT.horzineelitered_scar.HorzineEliteRed_SCAR_1P_FieldTested_MIC", "WEP_SkinSet01_MAT.horzineelitered_scar.HorzineEliteRed_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.horzineelitered_scar.HorzineEliteRed_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.horzineelitered_scar.HorzineEliteRed_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3059, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet01_MAT.horzineelitered_scar.HorzineEliteRed_SCAR_1P_BattleScarred_MIC", "WEP_SkinSet01_MAT.horzineelitered_scar.HorzineEliteRed_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.horzineelitered_scar.HorzineEliteRed_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.horzineelitered_scar.HorzineEliteRed_SCAR_3P_Pickup_MIC")) + +//Horzine Elite White SCAR + Skins.Add((Id=3613, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet03_MAT.horzineelitewhite_scar.HorzineEliteWhite_SCAR_1P_Mint_MIC", "WEP_SkinSet03_MAT.horzineelitewhite_scar.HorzineEliteWhite_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitewhite_scar.HorzineEliteWhite_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitewhite_scar.HorzineEliteWhite_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3612, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet03_MAT.horzineelitewhite_scar.HorzineEliteWhite_SCAR_1P_FieldTested_MIC", "WEP_SkinSet03_MAT.horzineelitewhite_scar.HorzineEliteWhite_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitewhite_scar.HorzineEliteWhite_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitewhite_scar.HorzineEliteWhite_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3611, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet03_MAT.horzineelitewhite_scar.HorzineEliteWhite_SCAR_1P_BattleScarred_MIC", "WEP_SkinSet03_MAT.horzineelitewhite_scar.HorzineEliteWhite_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitewhite_scar.HorzineEliteWhite_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitewhite_scar.HorzineEliteWhite_SCAR_3P_Pickup_MIC")) + +//Horzine Elite Green SCAR + Skins.Add((Id=3616, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet03_MAT.horzineelitegreen_scar.HorzineEliteGreen_SCAR_1P_Mint_MIC", "WEP_SkinSet03_MAT.horzineelitegreen_scar.HorzineEliteGreen_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitegreen_scar.HorzineEliteGreen_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitegreen_scar.HorzineEliteGreen_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3615, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet03_MAT.horzineelitegreen_scar.HorzineEliteGreen_SCAR_1P_FieldTested_MIC", "WEP_SkinSet03_MAT.horzineelitegreen_scar.HorzineEliteGreen_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitegreen_scar.HorzineEliteGreen_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitegreen_scar.HorzineEliteGreen_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3614, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet03_MAT.horzineelitegreen_scar.HorzineEliteGreen_SCAR_1P_BattleScarred_MIC", "WEP_SkinSet03_MAT.horzineelitegreen_scar.HorzineEliteGreen_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitegreen_scar.HorzineEliteGreen_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitegreen_scar.HorzineEliteGreen_SCAR_3P_Pickup_MIC")) + +//Horzine Elite Blue L85A2 + Skins.Add((Id=3619, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.horzineeliteblue_l85a2.HorzineEliteBlue_L85A2_1P_Mint_MIC", "WEP_SkinSet03_MAT.horzineeliteblue_l85a2.HorzineEliteBlue_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineeliteblue_l85a2.HorzineEliteBlue_L85A2_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineeliteblue_l85a2.HorzineEliteBlue_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=3618, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.horzineeliteblue_l85a2.HorzineEliteBlue_L85A2_1P_FieldTested_MIC", "WEP_SkinSet03_MAT.horzineeliteblue_l85a2.HorzineEliteBlue_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineeliteblue_l85a2.HorzineEliteBlue_L85A2_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineeliteblue_l85a2.HorzineEliteBlue_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=3617, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.horzineeliteblue_l85a2.HorzineEliteBlue_L85A2_1P_BattleScarred_MIC", "WEP_SkinSet03_MAT.horzineeliteblue_l85a2.HorzineEliteBlue_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineeliteblue_l85a2.HorzineEliteBlue_L85A2_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineeliteblue_l85a2.HorzineEliteBlue_L85A2_3P_Pickup_MIC")) + +//Horzine Elite Red L85A2 + Skins.Add((Id=3622, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.horzineelitered_l85a2.HorzineEliteRed_L85A2_1P_Mint_MIC", "WEP_SkinSet03_MAT.horzineelitered_l85a2.HorzineEliteRed_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitered_l85a2.HorzineEliteRed_L85A2_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitered_l85a2.HorzineEliteRed_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=3621, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.horzineelitered_l85a2.HorzineEliteRed_L85A2_1P_FieldTested_MIC", "WEP_SkinSet03_MAT.horzineelitered_l85a2.HorzineEliteRed_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitered_l85a2.HorzineEliteRed_L85A2_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitered_l85a2.HorzineEliteRed_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=3620, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.horzineelitered_l85a2.HorzineEliteRed_L85A2_1P_BattleScarred_MIC", "WEP_SkinSet03_MAT.horzineelitered_l85a2.HorzineEliteRed_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitered_l85a2.HorzineEliteRed_L85A2_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitered_l85a2.HorzineEliteRed_L85A2_3P_Pickup_MIC")) + +//Horzine Elite White L85A2 + Skins.Add((Id=3625, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.horzineelitewhite_l85a2.HorzineEliteWhite_L85A2_1P_Mint_MIC", "WEP_SkinSet03_MAT.horzineelitewhite_l85a2.HorzineEliteWhite_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitewhite_l85a2.HorzineEliteWhite_L85A2_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitewhite_l85a2.HorzineEliteWhite_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=3624, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.horzineelitewhite_l85a2.HorzineEliteWhite_L85A2_1P_FieldTested_MIC", "WEP_SkinSet03_MAT.horzineelitewhite_l85a2.HorzineEliteWhite_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitewhite_l85a2.HorzineEliteWhite_L85A2_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitewhite_l85a2.HorzineEliteWhite_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=3623, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.horzineelitewhite_l85a2.HorzineEliteWhite_L85A2_1P_BattleScarred_MIC", "WEP_SkinSet03_MAT.horzineelitewhite_l85a2.HorzineEliteWhite_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitewhite_l85a2.HorzineEliteWhite_L85A2_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitewhite_l85a2.HorzineEliteWhite_L85A2_3P_Pickup_MIC")) + +//Horzine Elite Green L85A2 + Skins.Add((Id=3628, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.horzineelitegreen_l85a2.HorzineEliteGreen_L85A2_1P_Mint_MIC", "WEP_SkinSet03_MAT.horzineelitegreen_l85a2.HorzineEliteGreen_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitegreen_l85a2.HorzineEliteGreen_L85A2_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitegreen_l85a2.HorzineEliteGreen_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=3627, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.horzineelitegreen_l85a2.HorzineEliteGreen_L85A2_1P_FieldTested_MIC", "WEP_SkinSet03_MAT.horzineelitegreen_l85a2.HorzineEliteGreen_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitegreen_l85a2.HorzineEliteGreen_L85A2_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitegreen_l85a2.HorzineEliteGreen_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=3626, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.horzineelitegreen_l85a2.HorzineEliteGreen_L85A2_1P_BattleScarred_MIC", "WEP_SkinSet03_MAT.horzineelitegreen_l85a2.HorzineEliteGreen_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzineelitegreen_l85a2.HorzineEliteGreen_L85A2_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzineelitegreen_l85a2.HorzineEliteGreen_L85A2_3P_Pickup_MIC")) + +//CyberBone Katana + Skins.Add((Id=3070, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_katana.CyberBone_Katana_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_katana.CyberBone_Katana_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_katana.CyberBone_Katana_3P_Pickup_MIC")) + Skins.Add((Id=3069, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_katana.CyberBone_Katana_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_katana.CyberBone_Katana_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_katana.CyberBone_Katana_3P_Pickup_MIC")) + Skins.Add((Id=3068, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_katana.CyberBone_Katana_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_katana.CyberBone_Katana_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_katana.CyberBone_Katana_3P_Pickup_MIC")) + +//CyberBone AA12 + Skins.Add((Id=3076, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_aa12.CyberBone_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_aa12.CyberBone_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_aa12.CyberBone_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3075, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_aa12.CyberBone_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_aa12.CyberBone_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_aa12.CyberBone_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3074, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_aa12.CyberBone_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_aa12.CyberBone_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_aa12.CyberBone_AA12_3P_Pickup_MIC")) + +//CyberBone AK12 + Skins.Add((Id=3073, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_ak12.CyberBone_AK12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_ak12.CyberBone_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_ak12.CyberBone_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3072, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_ak12.CyberBone_AK12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_ak12.CyberBone_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_ak12.CyberBone_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3071, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_ak12.CyberBone_AK12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_ak12.CyberBone_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_ak12.CyberBone_AK12_3P_Pickup_MIC")) + +//CyberBone AR15 + Skins.Add((Id=3079, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_ar15.CyberBone_AR15_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_ar15.CyberBone_AR15_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_ar15.CyberBone_AR15_3P_Pickup_MIC")) + Skins.Add((Id=3078, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_ar15.CyberBone_AR15_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_ar15.CyberBone_AR15_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_ar15.CyberBone_AR15_3P_Pickup_MIC")) + Skins.Add((Id=3077, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_ar15.CyberBone_AR15_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_ar15.CyberBone_AR15_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_ar15.CyberBone_AR15_3P_Pickup_MIC")) + +//CyberBone Support Knife + Skins.Add((Id=3344, Weapondef=class'KFWeapDef_Knife_Support', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_supportknife.CyberBone_SupportKnife_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_supportknife.CyberBone_SupportKnife_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_supportknife.CyberBone_SupportKnife_3P_Pickup_MIC")) + Skins.Add((Id=3343, Weapondef=class'KFWeapDef_Knife_Support', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_supportknife.CyberBone_SupportKnife_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_supportknife.CyberBone_SupportKnife_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_supportknife.CyberBone_SupportKnife_3P_Pickup_MIC")) + Skins.Add((Id=3342, Weapondef=class'KFWeapDef_Knife_Support', MIC_1P=("WEP_SkinSet01_MAT.cyberbone_supportknife.CyberBone_SupportKnife_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.cyberbone_supportknife.CyberBone_SupportKnife_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.cyberbone_supportknife.CyberBone_SupportKnife_3P_Pickup_MIC")) + +//Stories of War AA12 + Skins.Add((Id=3094, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_aa12.StoriesOfWar_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_aa12.StoriesOfWar_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_aa12.StoriesOfWar_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3093, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_aa12.StoriesOfWar_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_aa12.StoriesOfWar_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_aa12.StoriesOfWar_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3092, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_aa12.StoriesOfWar_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_aa12.StoriesOfWar_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_aa12.StoriesOfWar_AA12_3P_Pickup_MIC")) + +//Stories of War AK12 + Skins.Add((Id=3112, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_ak12.StoriesOfWar_AK12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_ak12.StoriesOfWar_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_ak12.StoriesOfWar_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3111, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_ak12.StoriesOfWar_AK12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_ak12.StoriesOfWar_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_ak12.StoriesOfWar_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3110, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_ak12.StoriesOfWar_AK12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_ak12.StoriesOfWar_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_ak12.StoriesOfWar_AK12_3P_Pickup_MIC")) + +//Stories of War Dragons Breath + Skins.Add((Id=3088, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_dragonsbreath.StoriesOfWar_DragonsBreath_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_dragonsbreath.StoriesOfWar_DragonsBreath_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_dragonsbreath.StoriesOfWar_DragonsBreath_3P_Pickup_MIC")) + Skins.Add((Id=3087, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_dragonsbreath.StoriesOfWar_DragonsBreath_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_dragonsbreath.StoriesOfWar_DragonsBreath_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_dragonsbreath.StoriesOfWar_DragonsBreath_3P_Pickup_MIC")) + Skins.Add((Id=3086, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_dragonsbreath.StoriesOfWar_DragonsBreath_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_dragonsbreath.StoriesOfWar_DragonsBreath_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_dragonsbreath.StoriesOfWar_DragonsBreath_3P_Pickup_MIC")) + +//Stories of War M4 + Skins.Add((Id=3082, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_m4.StoriesOfWar_M4_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_m4.StoriesOfWar_M4_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_m4.StoriesOfWar_M4_3P_Pickup_MIC")) + Skins.Add((Id=3081, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_m4.StoriesOfWar_M4_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_m4.StoriesOfWar_M4_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_m4.StoriesOfWar_M4_3P_Pickup_MIC")) + Skins.Add((Id=3080, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_m4.StoriesOfWar_M4_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_m4.StoriesOfWar_M4_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_m4.StoriesOfWar_M4_3P_Pickup_MIC")) + +//Stories of War M79 + Skins.Add((Id=3091, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_m79.StoriesOfWar_M79_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_m79.StoriesOfWar_M79_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_m79.StoriesOfWar_M79_3P_Pickup_MIC")) + Skins.Add((Id=3090, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_m79.StoriesOfWar_M79_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_m79.StoriesOfWar_M79_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_m79.StoriesOfWar_M79_3P_Pickup_MIC")) + Skins.Add((Id=3089, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_m79.StoriesOfWar_M79_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_m79.StoriesOfWar_M79_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_m79.StoriesOfWar_M79_3P_Pickup_MIC")) + +//Stories of War RPG7 + Skins.Add((Id=3097, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_rpg7.StoriesOfWar_RPG7_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_rpg7.StoriesOfWar_RPG7_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_rpg7.StoriesOfWar_RPG7_3P_Pickup_MIC")) + Skins.Add((Id=3096, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_rpg7.StoriesOfWar_RPG7_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_rpg7.StoriesOfWar_RPG7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_rpg7.StoriesOfWar_RPG7_3P_Pickup_MIC")) + Skins.Add((Id=3095, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_rpg7.StoriesOfWar_RPG7_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_rpg7.StoriesOfWar_RPG7_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_rpg7.StoriesOfWar_RPG7_3P_Pickup_MIC")) + +//Stories of War SCAR + Skins.Add((Id=3085, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_scar.StoriesOfWar_SCAR_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_scar.StoriesOfWar_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_scar.StoriesOfWar_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3084, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_scar.StoriesOfWar_SCAR_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_scar.StoriesOfWar_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_scar.StoriesOfWar_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3083, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_scar.StoriesOfWar_SCAR_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_scar.StoriesOfWar_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_scar.StoriesOfWar_SCAR_3P_Pickup_MIC")) + +//Dragonfire Caulk N Burn + Skins.Add((Id=3100, Weapondef=class'KFWeapDef_CaulkBurn', MIC_1P=("WEP_SkinSet01_MAT.dragonfire_caulknburn.Dragonfire_CaulkNBurn_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.dragonfire_caulknburn.Dragonfire_CaulkNBurn_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.dragonfire_caulknburn.Dragonfire_CaulkNBurn_3P_Pickup_MIC")) + Skins.Add((Id=3099, Weapondef=class'KFWeapDef_CaulkBurn', MIC_1P=("WEP_SkinSet01_MAT.dragonfire_caulknburn.Dragonfire_CaulkNBurn_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.dragonfire_caulknburn.Dragonfire_CaulkNBurn_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.dragonfire_caulknburn.Dragonfire_CaulkNBurn_3P_Pickup_MIC")) + Skins.Add((Id=3098, Weapondef=class'KFWeapDef_CaulkBurn', MIC_1P=("WEP_SkinSet01_MAT.dragonfire_caulknburn.Dragonfire_CaulkNBurn_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.dragonfire_caulknburn.Dragonfire_CaulkNBurn_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.dragonfire_caulknburn.Dragonfire_CaulkNBurn_3P_Pickup_MIC")) + +//Dragonfire Dragons Breath + Skins.Add((Id=3106, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet01_MAT.dragonfire_dragonsbreath.Dragonfire_DragonsBreath_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.dragonfire_dragonsbreath.Dragonfire_DragonsBreath_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.dragonfire_dragonsbreath.Dragonfire_DragonsBreath_3P_Pickup_MIC")) + Skins.Add((Id=3105, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet01_MAT.dragonfire_dragonsbreath.Dragonfire_DragonsBreath_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.dragonfire_dragonsbreath.Dragonfire_DragonsBreath_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.dragonfire_dragonsbreath.Dragonfire_DragonsBreath_3P_Pickup_MIC")) + Skins.Add((Id=3104, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet01_MAT.dragonfire_dragonsbreath.Dragonfire_DragonsBreath_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.dragonfire_dragonsbreath.Dragonfire_DragonsBreath_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.dragonfire_dragonsbreath.Dragonfire_DragonsBreath_3P_Pickup_MIC")) + +//Dragonfire Firebug Knife + Skins.Add((Id=3109, Weapondef=class'KFWeapDef_Knife_Firebug', MIC_1P=("WEP_SkinSet01_MAT.dragonfire_firebugknife.Dragonfire_FirebugKnife_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.dragonfire_firebugknife.Dragonfire_FirebugKnife_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.dragonfire_firebugknife.Dragonfire_FirebugKnife_3P_Pickup_MIC")) + Skins.Add((Id=3108, Weapondef=class'KFWeapDef_Knife_Firebug', MIC_1P=("WEP_SkinSet01_MAT.dragonfire_firebugknife.Dragonfire_FirebugKnife_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.dragonfire_firebugknife.Dragonfire_FirebugKnife_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.dragonfire_firebugknife.Dragonfire_FirebugKnife_3P_Pickup_MIC")) + Skins.Add((Id=3107, Weapondef=class'KFWeapDef_Knife_Firebug', MIC_1P=("WEP_SkinSet01_MAT.dragonfire_firebugknife.Dragonfire_FirebugKnife_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.dragonfire_firebugknife.Dragonfire_FirebugKnife_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.dragonfire_firebugknife.Dragonfire_FirebugKnife_3P_Pickup_MIC")) + +//Dragonfire Flamethrower + Skins.Add((Id=3103, Weapondef=class'KFWeapDef_FlameThrower', MIC_1P=("WEP_SkinSet01_MAT.dragonfire_flamethrower.Dragonfire_Flamethrower_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.dragonfire_flamethrower.Dragonfire_Flamethrower_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.dragonfire_flamethrower.Dragonfire_Flamethrower_3P_Pickup_MIC")) + Skins.Add((Id=3102, Weapondef=class'KFWeapDef_FlameThrower', MIC_1P=("WEP_SkinSet01_MAT.dragonfire_flamethrower.Dragonfire_Flamethrower_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.dragonfire_flamethrower.Dragonfire_Flamethrower_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.dragonfire_flamethrower.Dragonfire_Flamethrower_3P_Pickup_MIC")) + Skins.Add((Id=3101, Weapondef=class'KFWeapDef_FlameThrower', MIC_1P=("WEP_SkinSet01_MAT.dragonfire_flamethrower.Dragonfire_Flamethrower_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.dragonfire_flamethrower.Dragonfire_Flamethrower_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.dragonfire_flamethrower.Dragonfire_Flamethrower_3P_Pickup_MIC")) + +//The Peacemaker M79 + Skins.Add((Id=3324, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet01_MAT.thepeacemaker_m79.ThePeacemaker_M79_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.thepeacemaker_m79.ThePeacemaker_M79_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.thepeacemaker_m79.ThePeacemaker_M79_3P_Pickup_MIC")) + Skins.Add((Id=3323, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet01_MAT.thepeacemaker_m79.ThePeacemaker_M79_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.thepeacemaker_m79.ThePeacemaker_M79_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.thepeacemaker_m79.ThePeacemaker_M79_3P_Pickup_MIC")) + Skins.Add((Id=3322, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet01_MAT.thepeacemaker_m79.ThePeacemaker_M79_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.thepeacemaker_m79.ThePeacemaker_M79_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.thepeacemaker_m79.ThePeacemaker_M79_3P_Pickup_MIC")) + +//Rusted Death MB500 + Skins.Add((Id=3067, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSetPSN01_MAT.rusteddeath_mb500.RustedDeath_MB500_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.rusteddeath_mb500.RustedDeath_MB500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.rusteddeath_mb500.RustedDeath_MB500_3P_Pickup_MIC")) + Skins.Add((Id=3066, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSetPSN01_MAT.rusteddeath_mb500.RustedDeath_MB500_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.rusteddeath_mb500.RustedDeath_MB500_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.rusteddeath_mb500.RustedDeath_MB500_3P_Pickup_MIC")) + Skins.Add((Id=3065, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSetPSN01_MAT.rusteddeath_mb500.RustedDeath_MB500_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN01_MAT.rusteddeath_mb500.RustedDeath_MB500_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN01_MAT.rusteddeath_mb500.RustedDeath_MB500_3P_Pickup_MIC")) + +//Stories of War AR15 + Skins.Add((Id=3347, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_ar15.StoriesOfWar_AR15_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_ar15.StoriesOfWar_AR15_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_ar15.StoriesOfWar_AR15_3P_Pickup_MIC")) + Skins.Add((Id=3346, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_ar15.StoriesOfWar_AR15_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_ar15.StoriesOfWar_AR15_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_ar15.StoriesOfWar_AR15_3P_Pickup_MIC")) + Skins.Add((Id=3345, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.storiesofwar_ar15.StoriesOfWar_AR15_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.storiesofwar_ar15.StoriesOfWar_AR15_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.storiesofwar_ar15.StoriesOfWar_AR15_3P_Pickup_MIC")) + +//Conatainment AR15 + Skins.Add((Id=3269, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.containment_ar15.Containment_AR15_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.containment_ar15.Containment_AR15_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.containment_ar15.Containment_AR15_3P_Pickup_MIC")) + Skins.Add((Id=3268, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.containment_ar15.Containment_AR15_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.containment_ar15.Containment_AR15_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.containment_ar15.Containment_AR15_3P_Pickup_MIC")) + Skins.Add((Id=3267, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.containment_ar15.Containment_AR15_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.containment_ar15.Containment_AR15_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.containment_ar15.Containment_AR15_3P_Pickup_MIC")) + +//Putrid Bile M79 + Skins.Add((Id=3272, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet01_MAT.putridbile_m79.PutridBile_M79_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.putridbile_m79.PutridBile_M79_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.putridbile_m79.PutridBile_M79_3P_Pickup_MIC")) + Skins.Add((Id=3271, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet01_MAT.putridbile_m79.PutridBile_M79_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.putridbile_m79.PutridBile_M79_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.putridbile_m79.PutridBile_M79_3P_Pickup_MIC")) + Skins.Add((Id=3270, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet01_MAT.putridbile_m79.PutridBile_M79_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.putridbile_m79.PutridBile_M79_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.putridbile_m79.PutridBile_M79_3P_Pickup_MIC")) + +//Heat Dragons Breath + Skins.Add((Id=3296, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet01_MAT.heat_dragonsbreath.Heat_DragonsBreath_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.heat_dragonsbreath.Heat_DragonsBreath_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.heat_dragonsbreath.Heat_DragonsBreath_3P_Pickup_MIC")) + Skins.Add((Id=3295, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet01_MAT.heat_dragonsbreath.Heat_DragonsBreath_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.heat_dragonsbreath.Heat_DragonsBreath_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.heat_dragonsbreath.Heat_DragonsBreath_3P_Pickup_MIC")) + Skins.Add((Id=3294, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet01_MAT.heat_dragonsbreath.Heat_DragonsBreath_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.heat_dragonsbreath.Heat_DragonsBreath_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.heat_dragonsbreath.Heat_DragonsBreath_3P_Pickup_MIC")) + +//Heat Double Barrel + Skins.Add((Id=3299, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSet01_MAT.heat_doublebarrel.Heat_DoubleBarrel_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.heat_doublebarrel.Heat_DoubleBarrel_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.heat_doublebarrel.Heat_DoubleBarrel_3P_Pickup_MIC")) + Skins.Add((Id=3298, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSet01_MAT.heat_doublebarrel.Heat_DoubleBarrel_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.heat_doublebarrel.Heat_DoubleBarrel_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.heat_doublebarrel.Heat_DoubleBarrel_3P_Pickup_MIC")) + Skins.Add((Id=3297, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSet01_MAT.heat_doublebarrel.Heat_DoubleBarrel_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.heat_doublebarrel.Heat_DoubleBarrel_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.heat_doublebarrel.Heat_DoubleBarrel_3P_Pickup_MIC")) + +//Precious AR15 + Skins.Add((Id=3289, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_ar15.Precious_AR15_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_ar15.Precious_AR15_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_ar15.Precious_AR15_3P_Pickup_MIC")) + +//Precious Caulk N Burn + Skins.Add((Id=3290, Weapondef=class'KFWeapDef_CaulkBurn', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_caulknburn.Precious_CaulkNBurn_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_caulknburn.Precious_CaulkNBurn_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_caulknburn.Precious_CaulkNBurn_3P_Pickup_MIC")) + +//Precious Crovel + Skins.Add((Id=3291, Weapondef=class'KFWeapDef_Crovel', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_crovel.Precious_Crovel_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_crovel.Precious_Crovel_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_crovel.Precious_Crovel_3P_Pickup_MIC")) + +//Precious HX25 + Skins.Add((Id=3292, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_hx25.Precious_HX25_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_hx25.Precious_HX25_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_hx25.Precious_HX25_3P_Pickup_MIC")) + +//Precious MB500 + Skins.Add((Id=3293, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_mb500.Precious_MB500_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_mb500.Precious_MB500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_mb500.Precious_MB500_3P_Pickup_MIC")) + +//Precious Medic Pistol + Skins.Add((Id=3335, Weapondef=class'KFWeapDef_MedicPistol', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_medicpistol.Precious_MedicPistol_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_medicpistol.Precious_MedicPistol_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_medicpistol.Precious_MedicPistol_3P_Pickup_MIC")) + +//Precious Remington 1858 + Skins.Add((Id=3303, Weapondef=class'KFWeapDef_Remington1858', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_remington1858.Precious_Remington_1858_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_remington1858.Precious_Remington_1858_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_remington1858.Precious_Remington_1858_3P_Pickup_MIC")) + +//Precious 9mm + Skins.Add((Id=3422, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_9mm.Precious_9MM_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_9mm.Precious_9MM_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_9mm.Precious_9MM_3P_Pickup_MIC")) + +//Precious Double Barrel + Skins.Add((Id=3423, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_doublebarrel.Precious_DoubleBarrel_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_doublebarrel.Precious_DoubleBarrel_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_doublebarrel.Precious_DoubleBarrel_3P_Pickup_MIC")) + +//Precious M4 + Skins.Add((Id=3424, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_m4shotgun.Precious_M4Shotgun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_m4shotgun.Precious_M4Shotgun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_m4shotgun.Precious_M4Shotgun_3P_Pickup_MIC")) + +//Precious AA12 + Skins.Add((Id=3425, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_aa12.Precious_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_aa12.Precious_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_aa12.Precious_AA12_3P_Pickup_MIC")) + +//Precious Support Knife + Skins.Add((Id=3426, Weapondef=class'KFWeapDef_Knife_Support', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_supportknife.Precious_SupportKnife_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_supportknife.Precious_SupportKnife_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_supportknife.Precious_SupportKnife_3P_Pickup_MIC")) + +//Precious L85A2 + Skins.Add((Id=3427, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_l85a2.Precious_L85A2_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_l85a2.Precious_L85A2_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_l85a2.Precious_L85A2_3P_Pickup_MIC")) + +//Precious SCAR + Skins.Add((Id=3428, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_scar.Precious_SCAR_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_scar.Precious_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_scar.Precious_SCAR_3P_Pickup_MIC")) + +//Precious Nail Gun + Skins.Add((Id=3429, Weapondef=class'KFWeapDef_NailGun', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_nailgun.Precious_NailGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_nailgun.Precious_NailGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_nailgun.Precious_NailGun_3P_Pickup_MIC")) + +//Precious Pulverizer + Skins.Add((Id=3430, Weapondef=class'KFWeapDef_Pulverizer', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_pulverizer.Precious_Pulverizer_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_pulverizer.Precious_Pulverizer_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_pulverizer.Precious_Pulverizer_3P_Pickup_MIC")) + +//Precious Sawblade + Skins.Add((Id=3431, Weapondef=class'KFWeapDef_Eviscerator', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_sawblade.Precious_SawBlade_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_sawblade.Precious_SawBlade_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_sawblade.Precious_SawBlade_3P_Pickup_MIC")) + +//Precious M79 + Skins.Add((Id=3432, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_m79.Precious_M79_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_m79.Precious_M79_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_m79.Precious_M79_3P_Pickup_MIC")) + +//Precious RPG7 + Skins.Add((Id=3433, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_rpg7.Precious_RPG7_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_rpg7.Precious_RPG7_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_rpg7.Precious_RPG7_3P_Pickup_MIC")) + +//Precious Flamethrower + Skins.Add((Id=3434, Weapondef=class'KFWeapDef_FlameThrower', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_flamethrower.Precious_Flamethrower_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_flamethrower.Precious_Flamethrower_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_flamethrower.Precious_Flamethrower_3P_Pickup_MIC")) + +//Precious Microwave Gun + Skins.Add((Id=3435, Weapondef=class'KFWeapDef_MicrowaveGun', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_microwavegun.Precious_MicrowaveGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_microwavegun.Precious_MicrowaveGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_microwavegun.Precious_MicrowaveGun_3P_Pickup_MIC")) + +//Precious Dragons Breath + Skins.Add((Id=3436, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_dragonsbreath.Precious_DragonsBreath_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_dragonsbreath.Precious_DragonsBreath_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_dragonsbreath.Precious_DragonsBreath_3P_Pickup_MIC")) + +//Precious Desert Eagle + Skins.Add((Id=3437, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_deagle.Precious_Deagle_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_deagle.Precious_Deagle_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_deagle.Precious_Deagle_3P_Pickup_MIC")) + +//Precious M1911 + Skins.Add((Id=3438, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_m1911.Precious_M1911_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_m1911.Precious_M1911_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_m1911.Precious_M1911_3P_Pickup_MIC")) + +//Precious SW500 + Skins.Add((Id=3439, Weapondef=class'KFWeapDef_SW500', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_sw500.Precious_SW500_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_sw500.Precious_SW500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_sw500.Precious_SW500_3P_Pickup_MIC")) + +//Precious Demo Knife + Skins.Add((Id=3440, Weapondef=class'KFWeapDef_Knife_Demo', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_demoknife.Precious_DemoKnife_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_demoknife.Precious_DemoKnife_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_demoknife.Precious_DemoKnife_3P_Pickup_MIC")) + +//Precious Firebug Knife + Skins.Add((Id=3441, Weapondef=class'KFWeapDef_Knife_Firebug', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_firebugknife.Precious_FirebugKnife_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_firebugknife.Precious_FirebugKnife_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_firebugknife.Precious_FirebugKnife_3P_Pickup_MIC")) + +//Precious Medic SMG + Skins.Add((Id=3448, Weapondef=class'KFWeapDef_MedicSMG', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_medicpistol.Precious_MedicPistol_1P_Mint_MIC", "WEP_SkinSet01_P01_MAT.precious_medicsmg.Precious_MedicSMG_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_medicsmg.Precious_MedicSMG_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_medicsmg.Precious_MedicSMG_3P_Pickup_MIC")) + +//Precious Medic Knife + Skins.Add((Id=3449, Weapondef=class'KFWeapDef_Knife_Medic', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_medicknife.Precious_MedicKnife_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_medicknife.Precious_MedicKnife_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_medicknife.Precious_MedicKnife_3P_Pickup_MIC")) + +//Precious Medic Shotgun + Skins.Add((Id=3450, Weapondef=class'KFWeapDef_MedicShotgun', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_medicpistol.Precious_MedicPistol_1P_Mint_MIC", "WEP_SkinSet01_P01_MAT.precious_medicshotgun.Precious_MedicShotgun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_medicshotgun.Precious_MedicShotgun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_medicshotgun.Precious_MedicShotgun_3P_Pickup_MIC")) + +//Precious AK12 + Skins.Add((Id=3459, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_ak12.Precious_AK12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_ak12.Precious_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_ak12.Precious_AK12_3P_Pickup_MIC")) + +//Precious Commando Knife + Skins.Add((Id=3460, Weapondef=class'KFWeapDef_Knife_Commando', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_commandoknife.Precious_CommandoKnife_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_commandoknife.Precious_CommandoKnife_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_commandoknife.Precious_CommandoKnife_3P_Pickup_MIC")) + +//Precious Gunslinger Knife + Skins.Add((Id=3461, Weapondef=class'KFWeapDef_Knife_Gunslinger', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_gunslingerknife.Precious_GunslingerKnife_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_gunslingerknife.Precious_GunslingerKnife_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_gunslingerknife.Precious_GunslingerKnife_3P_Pickup_MIC")) + +//Precious Berserker Knife + Skins.Add((Id=3462, Weapondef=class'KFWeapDef_Knife_Berserker', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_berserkerknife.Precious_BerserkerKnife_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_berserkerknife.Precious_BerserkerKnife_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_berserkerknife.Precious_BerserkerKnife_3P_Pickup_MIC")) + +//Precious C4 + Skins.Add((Id=3463, Weapondef=class'KFWeapDef_C4', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_c4.Precious_C4_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_c4.Precious_C4_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_c4.Precious_C4_3P_Pickup_MIC")) + +//Precious Medic Assault + Skins.Add((Id=3467, Weapondef=class'KFWeapDef_MedicRifle', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_medicassault.Precious_MedicAssault_1P_Mint_MIC", "WEP_SkinSet01_P01_MAT.precious_medicpistol.Precious_MedicPistol_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_medicassault.Precious_MedicAssault_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_medicassault.Precious_MedicAssault_3P_Pickup_MIC")) + +//Precious Healer + Skins.Add((Id=3451, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_healer.Precious_Healer_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_healer.Precious_Healer_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_healer.Precious_Healer_3P_Pickup_MIC")) + +//Precious Welder + Skins.Add((Id=3452, Weapondef=class'KFWeapDef_Welder', MIC_1P=("WEP_SkinSet01_P01_MAT.precious_welder.Precious_Welder_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_P01_MAT.precious_welder.Precious_Welder_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_P01_MAT.precious_welder.Precious_Welder_3P_Pickup_MIC")) + +//Precious Mace and Shield + Skins.Add((Id=4560, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.precious_maceshield.Precious_Mace_1P_Mint_MIC", "WEP_SkinSet08_MAT.precious_maceshield.Precious_Shield_1P_Mint_MIC"), MIC_3P="WEP_SkinSet08_MAT.precious_maceshield.Precious_MaceShield_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet08_MAT.precious_maceshield.Precious_MaceShield_3P_Pickup_MIC")) + +//Precious Kriss + Skins.Add((Id=4595, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.precious_kriss.Precious_Kriss_1P_Mint_MIC", "WEP_SkinSet09_MAT.precious_kriss.Precious_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.precious_kriss.Precious_Kriss_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.precious_kriss.Precious_Kriss_3P_Pickup_MIC")) + +//Precious Crossbow + Skins.Add((Id=4596, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet09_MAT.precious_crossbow.Precious_Crossbow_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.precious_crossbow.Precious_Crossbow_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.precious_crossbow.Precious_Crossbow_3P_Pickup_MIC")) + +//Precious Winchester 1894 + Skins.Add((Id=4597, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet09_MAT.precious_lar.Precious_LAR_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.precious_lar.Precious_LAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.precious_lar.Precious_LAR_3P_Pickup_MIC")) + +//Precious MP5RAS + Skins.Add((Id=4787, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet10_MAT.precious_mp5ras.Precious_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.precious_mp5ras.Precious_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.precious_mp5ras.Precious_MP5RAS_3P_Pickup_MIC")) + +//Precious MP7 + Skins.Add((Id=4788, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet10_MAT.precious_mp7.Precious_MP7_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.precious_mp7.Precious_MP7_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.precious_mp7.Precious_MP7_3P_Pickup_MIC")) + +//Precious P90 + Skins.Add((Id=4789, Weapondef=class'KFWeapDef_P90', MIC_1P=("WEP_SkinSet10_MAT.precious_p90.Precious_P90_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.precious_p90.Precious_P90_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.precious_p90.Precious_P90_3P_Pickup_MIC")) + +//Precious M14EBR + Skins.Add((Id=4793, Weapondef=class'KFWeapDef_M14EBR', MIC_1P=("WEP_SkinSet10_MAT.precious_m14ebr.Precious_M14EBR_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.precious_m14ebr.Precious_M14EBR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.precious_m14ebr.Precious_M14EBR_3P_Pickup_MIC")) + +//Precious Railgun + Skins.Add((Id=4794, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet10_MAT.precious_railgun.Precious_RailGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.precious_railgun.Precious_RailGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.precious_railgun.Precious_RailGun_3P_Pickup_MIC")) + +//Precious FlareGun + Skins.Add((Id=4803, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.precious_flaregun.Precious_FlareGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet11_MAT.precious_flaregun.Precious_FlareGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet11_MAT.precious_flaregun.Precious_FlareGun_3P_Pickup_MIC")) + +//Precious M16 M203 + Skins.Add((Id=4984, Weapondef=class'KFWeapDef_M16M203', MIC_1P=("WEP_SkinSet12_MAT.precious_m16m203.Precious_M16_1P_Mint_MIC", "WEP_SkinSet12_MAT.precious_m16m203.Precious_M203_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.precious_m16m203.Precious_M16M203_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet12_MAT.precious_m16m203.Precious_M16M203_3P_Pickup_MIC")) + +//Precious Katana + Skins.Add((Id=5054, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet15_MAT.precious_katana.Precious_Katana_1P_Mint_MIC"), MIC_3P="WEP_SkinSet15_MAT.precious_katana.Precious_Katana_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet15_MAT.precious_katana.Precious_Katana_3P_Pickup_MIC")) + +//Precious HZ12 + Skins.Add((Id=5140, Weapondef=class'KFWeapDef_HZ12', MIC_1P=("WEP_SkinSet14_MAT.precious_hz12.Precious_HZ12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.precious_hz12.Precious_HZ12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.precious_hz12.Precious_HZ12_3P_Pickup_MIC")) + +//Precious Stoner 63A + Skins.Add((Id=5141, Weapondef=class'KFWeapDef_Stoner63A', MIC_1P=("WEP_SkinSet14_MAT.precious_stoner63a.Precious_Stoner63A_1P_Mint_MIC", "WEP_SkinSet14_MAT.precious_stoner63a.Precious_Stoner63A_Receiver_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.precious_stoner63a.Precious_Stoner63a_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.precious_stoner63a.Precious_Stoner63a_3P_Pickup_MIC")) + +//Blood Camo Remington 1858 + Skins.Add((Id=3306, Weapondef=class'KFWeapDef_Remington1858', MIC_1P=("WEP_SkinSet02_MAT.bloodcamo_remington1858.BloodCamo_Remington1858_1P_Mint_MIC"), MIC_3P="WEP_SkinSet02_MAT.bloodcamo_remington1858.BloodCamo_Remington1858_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet02_MAT.bloodcamo_remington1858.BloodCamo_Remington1858_3P_Pickup_MIC")) + Skins.Add((Id=3305, Weapondef=class'KFWeapDef_Remington1858', MIC_1P=("WEP_SkinSet02_MAT.bloodcamo_remington1858.BloodCamo_Remington1858_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet02_MAT.bloodcamo_remington1858.BloodCamo_Remington1858_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet02_MAT.bloodcamo_remington1858.BloodCamo_Remington1858_3P_Pickup_MIC")) + Skins.Add((Id=3304, Weapondef=class'KFWeapDef_Remington1858', MIC_1P=("WEP_SkinSet02_MAT.bloodcamo_remington1858.BloodCamo_Remington1858_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet02_MAT.bloodcamo_remington1858.BloodCamo_Remington1858_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet02_MAT.bloodcamo_remington1858.BloodCamo_Remington1858_3P_Pickup_MIC")) + +//Constitution Remington 1858 + Skins.Add((Id=3309, Weapondef=class'KFWeapDef_Remington1858', MIC_1P=("WEP_SkinSet02_MAT.constitution_remington1858.Constitution_Remington1858_1P_Mint_MIC"), MIC_3P="WEP_SkinSet02_MAT.constitution_remington1858.Constitution_Remington1858_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet02_MAT.constitution_remington1858.Constitution_Remington1858_3P_Pickup_MIC")) + Skins.Add((Id=3308, Weapondef=class'KFWeapDef_Remington1858', MIC_1P=("WEP_SkinSet02_MAT.constitution_remington1858.Constitution_Remington1858_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet02_MAT.constitution_remington1858.Constitution_Remington1858_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet02_MAT.constitution_remington1858.Constitution_Remington1858_3P_Pickup_MIC")) + Skins.Add((Id=3307, Weapondef=class'KFWeapDef_Remington1858', MIC_1P=("WEP_SkinSet02_MAT.constitution_remington1858.Constitution_Remington1858_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet02_MAT.constitution_remington1858.Constitution_Remington1858_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet02_MAT.constitution_remington1858.Constitution_Remington1858_3P_Pickup_MIC")) + +//Dosh MB500 + Skins.Add((Id=3312, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet02_MAT.dosh_mb500.Dosh_MB500_1P_Mint_MIC"), MIC_3P="WEP_SkinSet02_MAT.dosh_mb500.Dosh_MB500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet02_MAT.dosh_mb500.Dosh_MB500_3P_Pickup_MIC")) + Skins.Add((Id=3311, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet02_MAT.dosh_mb500.Dosh_MB500_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet02_MAT.dosh_mb500.Dosh_MB500_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet02_MAT.dosh_mb500.Dosh_MB500_3P_Pickup_MIC")) + Skins.Add((Id=3310, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet02_MAT.dosh_mb500.Dosh_MB500_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet02_MAT.dosh_mb500.Dosh_MB500_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet02_MAT.dosh_mb500.Dosh_MB500_3P_Pickup_MIC")) + +//Dosh L85A2 + Skins.Add((Id=3315, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet02_MAT.dosh_l85a2.Dosh_L85A2_1P_Mint_MIC"), MIC_3P="WEP_SkinSet02_MAT.dosh_l85a2.Dosh_L85A2_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet02_MAT.dosh_l85a2.Dosh_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=3314, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet02_MAT.dosh_l85a2.Dosh_L85A2_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet02_MAT.dosh_l85a2.Dosh_L85A2_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet02_MAT.dosh_l85a2.Dosh_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=3313, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet02_MAT.dosh_l85a2.Dosh_L85A2_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet02_MAT.dosh_l85a2.Dosh_L85A2_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet02_MAT.dosh_l85a2.Dosh_L85A2_3P_Pickup_MIC")) + +//Snakeskin SW500 + Skins.Add((Id=3318, Weapondef=class'KFWeapDef_SW500', MIC_1P=("WEP_SkinSet02_MAT.snakeskin_sw_500.Snakeskin_SW_1P_Mint_MIC"), MIC_3P="WEP_SkinSet02_MAT.snakeskin_sw_500.Snakeskin_SW_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet02_MAT.snakeskin_sw_500.Snakeskin_SW_3P_Pickup_MIC")) + Skins.Add((Id=3317, Weapondef=class'KFWeapDef_SW500', MIC_1P=("WEP_SkinSet02_MAT.snakeskin_sw_500.Snakeskin_SW_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet02_MAT.snakeskin_sw_500.Snakeskin_SW_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet02_MAT.snakeskin_sw_500.Snakeskin_SW_3P_Pickup_MIC")) + Skins.Add((Id=3316, Weapondef=class'KFWeapDef_SW500', MIC_1P=("WEP_SkinSet02_MAT.snakeskin_sw_500.Snakeskin_SW_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet02_MAT.snakeskin_sw_500.Snakeskin_SW_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet02_MAT.snakeskin_sw_500.Snakeskin_SW_3P_Pickup_MIC")) + +//Snakeskin AA12 + Skins.Add((Id=3321, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet02_MAT.snakeskingreen_aa12.SnakeskinGreen_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet02_MAT.snakeskingreen_aa12.SnakeskinGreen_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet02_MAT.snakeskingreen_aa12.SnakeskinGreen_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3320, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet02_MAT.snakeskingreen_aa12.SnakeskinGreen_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet02_MAT.snakeskingreen_aa12.SnakeskinGreen_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet02_MAT.snakeskingreen_aa12.SnakeskinGreen_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3319, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet02_MAT.snakeskingreen_aa12.SnakeskinGreen_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet02_MAT.snakeskingreen_aa12.SnakeskinGreen_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet02_MAT.snakeskingreen_aa12.SnakeskinGreen_AA12_3P_Pickup_MIC")) + +//Circuit HX25 + Skins.Add((Id=3327, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSet02_MAT.circuit_hx25.Circuit_HX25_1P_Mint_MIC"), MIC_3P="WEP_SkinSet02_MAT.circuit_hx25.Circuit_HX25_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet02_MAT.circuit_hx25.Circuit_HX25_3P_Pickup_MIC")) + Skins.Add((Id=3326, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSet02_MAT.circuit_hx25.Circuit_HX25_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet02_MAT.circuit_hx25.Circuit_HX25_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet02_MAT.circuit_hx25.Circuit_HX25_3P_Pickup_MIC")) + Skins.Add((Id=3325, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSet02_MAT.circuit_hx25.Circuit_HX25_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet02_MAT.circuit_hx25.Circuit_HX25_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet02_MAT.circuit_hx25.Circuit_HX25_3P_Pickup_MIC")) + +//Circuit Glow HX25 + Skins.Add((Id=3330, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSet02_MAT.circuitglow_hx25.CircuitGlow_HX25_1P_Mint_MIC"), MIC_3P="WEP_SkinSet02_MAT.circuitglow_hx25.CircuitGlow_HX25_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet02_MAT.circuitglow_hx25.CircuitGlow_HX25_3P_Pickup_MIC")) + Skins.Add((Id=3329, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSet02_MAT.circuitglow_hx25.CircuitGlow_HX25_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet02_MAT.circuitglow_hx25.CircuitGlow_HX25_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet02_MAT.circuitglow_hx25.CircuitGlow_HX25_3P_Pickup_MIC")) + Skins.Add((Id=3328, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSet02_MAT.circuitglow_hx25.CircuitGlow_HX25_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet02_MAT.circuitglow_hx25.CircuitGlow_HX25_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet02_MAT.circuitglow_hx25.CircuitGlow_HX25_3P_Pickup_MIC")) + +//Glow Text Katana + Skins.Add((Id=3333, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet02_MAT.glowtext_katana.GlowText_Katana_1P_Mint_MIC"), MIC_3P="WEP_SkinSet02_MAT.glowtext_katana.GlowText_Katana_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet02_MAT.glowtext_katana.GlowText_Katana_3P_Pickup_MIC")) + Skins.Add((Id=3332, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet02_MAT.glowtext_katana.GlowText_Katana_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet02_MAT.glowtext_katana.GlowText_Katana_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet02_MAT.glowtext_katana.GlowText_Katana_3P_Pickup_MIC")) + Skins.Add((Id=3331, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet02_MAT.glowtext_katana.GlowText_Katana_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet02_MAT.glowtext_katana.GlowText_Katana_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet02_MAT.glowtext_katana.GlowText_Katana_3P_Pickup_MIC")) + +//Carbon Fiber Medic Pistol + Skins.Add((Id=3338, Weapondef=class'KFWeapDef_MedicPistol', MIC_1P=("WEP_SkinSet02_MAT.carbonfiber_medicpistol.CarbonFiber_MedicPistol_1P_Mint_MIC"), MIC_3P="WEP_SkinSet02_MAT.carbonfiber_medicpistol.CarbonFiber_MedicPistol_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet02_MAT.carbonfiber_medicpistol.CarbonFiber_MedicPistol_3P_Pickup_MIC")) + Skins.Add((Id=3337, Weapondef=class'KFWeapDef_MedicPistol', MIC_1P=("WEP_SkinSet02_MAT.carbonfiber_medicpistol.CarbonFiber_MedicPistol_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet02_MAT.carbonfiber_medicpistol.CarbonFiber_MedicPistol_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet02_MAT.carbonfiber_medicpistol.CarbonFiber_MedicPistol_3P_Pickup_MIC")) + Skins.Add((Id=3336, Weapondef=class'KFWeapDef_MedicPistol', MIC_1P=("WEP_SkinSet02_MAT.carbonfiber_medicpistol.CarbonFiber_MedicPistol_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet02_MAT.carbonfiber_medicpistol.CarbonFiber_MedicPistol_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet02_MAT.carbonfiber_medicpistol.CarbonFiber_MedicPistol_3P_Pickup_MIC")) + +//Carbon Fiber Medic SMG + Skins.Add((Id=3341, Weapondef=class'KFWeapDef_MedicSMG', MIC_1P=("WEP_SkinSet02_MAT.carbonfiber_medicpistol.CarbonFiber_MedicPistol_1P_Mint_MIC", "WEP_SkinSet02_MAT.carbonfiber_medicsmg.CarbonFiber_MedicSMG_1P_Mint_MIC"), MIC_3P="WEP_SkinSet02_MAT.carbonfiber_medicsmg.CarbonFiber_MedicSMG_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet02_MAT.carbonfiber_medicsmg.CarbonFiber_MedicSMG_3P_Pickup_MIC")) + Skins.Add((Id=3340, Weapondef=class'KFWeapDef_MedicSMG', MIC_1P=("WEP_SkinSet02_MAT.carbonfiber_medicpistol.CarbonFiber_MedicPistol_1P_FieldTested_MIC", "WEP_SkinSet02_MAT.carbonfiber_medicsmg.CarbonFiber_MedicSMG_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet02_MAT.carbonfiber_medicsmg.CarbonFiber_MedicSMG_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet02_MAT.carbonfiber_medicsmg.CarbonFiber_MedicSMG_3P_Pickup_MIC")) + Skins.Add((Id=3339, Weapondef=class'KFWeapDef_MedicSMG', MIC_1P=("WEP_SkinSet02_MAT.carbonfiber_medicpistol.CarbonFiber_MedicPistol_1P_BattleScarred_MIC", "WEP_SkinSet02_MAT.carbonfiber_medicsmg.CarbonFiber_MedicSMG_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet02_MAT.carbonfiber_medicsmg.CarbonFiber_MedicSMG_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet02_MAT.carbonfiber_medicsmg.CarbonFiber_MedicSMG_3P_Pickup_MIC")) + +//Tactical Desert Eagle + Skins.Add((Id=3361, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet03_MAT.tactical_deagle.Tactical_Deagle_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_deagle.Tactical_Deagle_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_deagle.Tactical_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=3360, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet03_MAT.tactical_deagle.Tactical_Deagle_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_deagle.Tactical_Deagle_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_deagle.Tactical_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=3359, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet03_MAT.tactical_deagle.Tactical_Deagle_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_deagle.Tactical_Deagle_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_deagle.Tactical_Deagle_3P_Pickup_MIC")) + +//Tactical 9mm + Skins.Add((Id=3364, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet03_MAT.tactical_9mm.Tactical_9mm_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_9mm.Tactical_9mm_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_9mm.Tactical_9mm_3P_Pickup_MIC")) + Skins.Add((Id=3363, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet03_MAT.tactical_9mm.Tactical_9mm_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_9mm.Tactical_9mm_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_9mm.Tactical_9mm_3P_Pickup_MIC")) + Skins.Add((Id=3362, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet03_MAT.tactical_9mm.Tactical_9mm_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_9mm.Tactical_9mm_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_9mm.Tactical_9mm_3P_Pickup_MIC")) + +//Tactical M1911 + Skins.Add((Id=3367, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet03_MAT.tactical_m1911.Tactical_M1911_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_m1911.Tactical_M1911_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_m1911.Tactical_M1911_3P_Pickup_MIC")) + Skins.Add((Id=3366, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet03_MAT.tactical_m1911.Tactical_M1911_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_m1911.Tactical_M1911_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_m1911.Tactical_M1911_3P_Pickup_MIC")) + Skins.Add((Id=3365, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet03_MAT.tactical_m1911.Tactical_M1911_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_m1911.Tactical_M1911_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_m1911.Tactical_M1911_3P_Pickup_MIC")) + +//Tactical AR15 + Skins.Add((Id=3370, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet03_MAT.tactical_ar15.Tactical_AR15_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_ar15.Tactical_AR15_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_ar15.Tactical_AR15_3P_Pickup_MIC")) + Skins.Add((Id=3369, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet03_MAT.tactical_ar15.Tactical_AR15_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_ar15.Tactical_AR15_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_ar15.Tactical_AR15_3P_Pickup_MIC")) + Skins.Add((Id=3368, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet03_MAT.tactical_ar15.Tactical_AR15_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_ar15.Tactical_AR15_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_ar15.Tactical_AR15_3P_Pickup_MIC")) + +//Tactical SW500 + Skins.Add((Id=3444, Weapondef=class'KFWeapDef_SW500', MIC_1P=("WEP_SkinSet03_MAT.tactical_sw500.Tactical_SW500_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_sw500.Tactical_SW500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_sw500.Tactical_SW500_3P_Pickup_MIC")) + Skins.Add((Id=3443, Weapondef=class'KFWeapDef_SW500', MIC_1P=("WEP_SkinSet03_MAT.tactical_sw500.Tactical_SW500_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_sw500.Tactical_SW500_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_sw500.Tactical_SW500_3P_Pickup_MIC")) + Skins.Add((Id=3442, Weapondef=class'KFWeapDef_SW500', MIC_1P=("WEP_SkinSet03_MAT.tactical_sw500.Tactical_SW500_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.tactical_sw500.Tactical_SW500_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.tactical_sw500.Tactical_SW500_3P_Pickup_MIC")) + +//Street Punks Caulk N Burn + Skins.Add((Id=3373, Weapondef=class'KFWeapDef_CaulkBurn', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_caulknburn.StreetPunks_CaulkNBurn_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_caulknburn.StreetPunks_CaulkNBurn_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_caulknburn.StreetPunks_CaulkNBurn_3P_Pickup_MIC")) + Skins.Add((Id=3372, Weapondef=class'KFWeapDef_CaulkBurn', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_caulknburn.StreetPunks_CaulkNBurn_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_caulknburn.StreetPunks_CaulkNBurn_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_caulknburn.StreetPunks_CaulkNBurn_3P_Pickup_MIC")) + Skins.Add((Id=3371, Weapondef=class'KFWeapDef_CaulkBurn', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_caulknburn.StreetPunks_CaulkNBurn_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_caulknburn.StreetPunks_CaulkNBurn_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_caulknburn.StreetPunks_CaulkNBurn_3P_Pickup_MIC")) + +//Street Punks Commando Knife + Skins.Add((Id=3376, Weapondef=class'KFWeapDef_Knife_Commando', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_commandoknife.StreetPunks_CommandoKnife_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_commandoknife.StreetPunks_CommandoKnife_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_commandoknife.StreetPunks_CommandoKnife_3P_Pickup_MIC")) + Skins.Add((Id=3375, Weapondef=class'KFWeapDef_Knife_Commando', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_commandoknife.StreetPunks_CommandoKnife_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_commandoknife.StreetPunks_CommandoKnife_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_commandoknife.StreetPunks_CommandoKnife_3P_Pickup_MIC")) + Skins.Add((Id=3374, Weapondef=class'KFWeapDef_Knife_Commando', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_commandoknife.StreetPunks_CommandoKnife_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_commandoknife.StreetPunks_CommandoKnife_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_commandoknife.StreetPunks_CommandoKnife_3P_Pickup_MIC")) + +//Street Punks AR15 + Skins.Add((Id=3379, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_ar15.StreetPunks_AR15_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_ar15.StreetPunks_AR15_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_ar15.StreetPunks_AR15_3P_Pickup_MIC")) + Skins.Add((Id=3378, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_ar15.StreetPunks_AR15_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_ar15.StreetPunks_AR15_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_ar15.StreetPunks_AR15_3P_Pickup_MIC")) + Skins.Add((Id=3377, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_ar15.StreetPunks_AR15_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_ar15.StreetPunks_AR15_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_ar15.StreetPunks_AR15_3P_Pickup_MIC")) + +//Street Punks 9mm + Skins.Add((Id=3382, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_9mm.StreetPunks_9mm_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_9mm.StreetPunks_9mm_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_9mm.StreetPunks_9mm_3P_Pickup_MIC")) + Skins.Add((Id=3381, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_9mm.StreetPunks_9mm_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_9mm.StreetPunks_9mm_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_9mm.StreetPunks_9mm_3P_Pickup_MIC")) + Skins.Add((Id=3380, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_9mm.StreetPunks_9mm_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_9mm.StreetPunks_9mm_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_9mm.StreetPunks_9mm_3P_Pickup_MIC")) + +//Street Punks MB500 + Skins.Add((Id=3385, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_mb500.StreetPunks_MB500_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_mb500.StreetPunks_MB500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_mb500.StreetPunks_MB500_3P_Pickup_MIC")) + Skins.Add((Id=3384, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_mb500.StreetPunks_MB500_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_mb500.StreetPunks_MB500_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_mb500.StreetPunks_MB500_3P_Pickup_MIC")) + Skins.Add((Id=3383, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_mb500.StreetPunks_MB500_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_mb500.StreetPunks_MB500_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_mb500.StreetPunks_MB500_3P_Pickup_MIC")) + +//Street Punks AK12 + Skins.Add((Id=3455, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_ak12.StreetPunks_AK12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_ak12.StreetPunks_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_ak12.StreetPunks_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3454, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_ak12.StreetPunks_AK12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_ak12.StreetPunks_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_ak12.StreetPunks_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3453, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_ak12.StreetPunks_AK12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_ak12.StreetPunks_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_ak12.StreetPunks_AK12_3P_Pickup_MIC")) + +//Street Punks Desert Eagle + Skins.Add((Id=3458, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_deagle.StreetPunks_Deagle_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_deagle.StreetPunks_Deagle_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_deagle.StreetPunks_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=3457, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_deagle.StreetPunks_Deagle_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_deagle.StreetPunks_Deagle_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_deagle.StreetPunks_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=3456, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet03_MAT.streetpunks_deagle.StreetPunks_Deagle_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.streetpunks_deagle.StreetPunks_Deagle_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.streetpunks_deagle.StreetPunks_Deagle_3P_Pickup_MIC")) + +//Emergency Issue Caulk N Burn + Skins.Add((Id=3388, Weapondef=class'KFWeapDef_CaulkBurn', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_caulknburn.EmergencyIssue_CaulkNBurn_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_caulknburn.EmergencyIssue_CaulkNBurn_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_caulknburn.EmergencyIssue_CaulkNBurn_3P_Pickup_MIC")) + Skins.Add((Id=3387, Weapondef=class'KFWeapDef_CaulkBurn', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_caulknburn.EmergencyIssue_CaulkNBurn_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_caulknburn.EmergencyIssue_CaulkNBurn_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_caulknburn.EmergencyIssue_CaulkNBurn_3P_Pickup_MIC")) + Skins.Add((Id=3386, Weapondef=class'KFWeapDef_CaulkBurn', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_caulknburn.EmergencyIssue_CaulkNBurn_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_caulknburn.EmergencyIssue_CaulkNBurn_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_caulknburn.EmergencyIssue_CaulkNBurn_3P_Pickup_MIC")) + +//Emergency Issue 9mm + Skins.Add((Id=3391, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_9mm.EmergencyIssue_9mm_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_9mm.EmergencyIssue_9mm_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_9mm.EmergencyIssue_9mm_3P_Pickup_MIC")) + Skins.Add((Id=3390, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_9mm.EmergencyIssue_9mm_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_9mm.EmergencyIssue_9mm_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_9mm.EmergencyIssue_9mm_3P_Pickup_MIC")) + Skins.Add((Id=3389, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_9mm.EmergencyIssue_9mm_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_9mm.EmergencyIssue_9mm_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_9mm.EmergencyIssue_9mm_3P_Pickup_MIC")) + +//Emergency Issue Desert Eagle + Skins.Add((Id=3394, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_deagle.EmergencyIssue_Deagle_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_deagle.EmergencyIssue_Deagle_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_deagle.EmergencyIssue_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=3393, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_deagle.EmergencyIssue_Deagle_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_deagle.EmergencyIssue_Deagle_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_deagle.EmergencyIssue_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=3392, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_deagle.EmergencyIssue_Deagle_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_deagle.EmergencyIssue_Deagle_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_deagle.EmergencyIssue_Deagle_3P_Pickup_MIC")) + +//Emergency Issue Nailgun + Skins.Add((Id=3412, Weapondef=class'KFWeapDef_NailGun', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_nailgun.EmergencyIssue_NailGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_nailgun.EmergencyIssue_NailGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_nailgun.EmergencyIssue_NailGun_3P_Pickup_MIC")) + Skins.Add((Id=3411, Weapondef=class'KFWeapDef_NailGun', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_nailgun.EmergencyIssue_NailGun_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_nailgun.EmergencyIssue_NailGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_nailgun.EmergencyIssue_NailGun_3P_Pickup_MIC")) + Skins.Add((Id=3410, Weapondef=class'KFWeapDef_NailGun', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_nailgun.EmergencyIssue_NailGun_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_nailgun.EmergencyIssue_NailGun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_nailgun.EmergencyIssue_NailGun_3P_Pickup_MIC")) + +//Emergency Issue MB500 + Skins.Add((Id=3415, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_mb500.EmergencyIssue_MB500_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_mb500.EmergencyIssue_MB500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_mb500.EmergencyIssue_MB500_3P_Pickup_MIC")) + Skins.Add((Id=3414, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_mb500.EmergencyIssue_MB500_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_mb500.EmergencyIssue_MB500_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_mb500.EmergencyIssue_MB500_3P_Pickup_MIC")) + Skins.Add((Id=3413, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_mb500.EmergencyIssue_MB500_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_mb500.EmergencyIssue_MB500_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_mb500.EmergencyIssue_MB500_3P_Pickup_MIC")) + +//Emergency Issue Flamethrower + Skins.Add((Id=3418, Weapondef=class'KFWeapDef_FlameThrower', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_flamethrower.EmergencyIssue_Flamethrower_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_flamethrower.EmergencyIssue_Flamethrower_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_flamethrower.EmergencyIssue_Flamethrower_3P_Pickup_MIC")) + Skins.Add((Id=3417, Weapondef=class'KFWeapDef_FlameThrower', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_flamethrower.EmergencyIssue_Flamethrower_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_flamethrower.EmergencyIssue_Flamethrower_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_flamethrower.EmergencyIssue_Flamethrower_3P_Pickup_MIC")) + Skins.Add((Id=3416, Weapondef=class'KFWeapDef_FlameThrower', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_flamethrower.EmergencyIssue_Flamethrower_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_flamethrower.EmergencyIssue_Flamethrower_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_flamethrower.EmergencyIssue_Flamethrower_3P_Pickup_MIC")) + +//Emergency Issue Microwave Gun + Skins.Add((Id=3421, Weapondef=class'KFWeapDef_MicrowaveGun', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_microwavegun.EmergencyIssue_MicrowaveGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_microwavegun.EmergencyIssue_MicrowaveGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_microwavegun.EmergencyIssue_MicrowaveGun_3P_Pickup_MIC")) + Skins.Add((Id=3420, Weapondef=class'KFWeapDef_MicrowaveGun', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_microwavegun.EmergencyIssue_MicrowaveGun_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_microwavegun.EmergencyIssue_MicrowaveGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_microwavegun.EmergencyIssue_MicrowaveGun_3P_Pickup_MIC")) + Skins.Add((Id=3419, Weapondef=class'KFWeapDef_MicrowaveGun', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_microwavegun.EmergencyIssue_MicrowaveGun_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_microwavegun.EmergencyIssue_MicrowaveGun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_microwavegun.EmergencyIssue_MicrowaveGun_3P_Pickup_MIC")) + +//Emergency Issue Sawblade + Skins.Add((Id=3466, Weapondef=class'KFWeapDef_Eviscerator', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_sawblade.EmergencyIssue_SawBlade_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_sawblade.EmergencyIssue_SawBlade_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_sawblade.EmergencyIssue_SawBlade_3P_Pickup_MIC")) + Skins.Add((Id=3465, Weapondef=class'KFWeapDef_Eviscerator', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_sawblade.EmergencyIssue_SawBlade_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_sawblade.EmergencyIssue_SawBlade_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_sawblade.EmergencyIssue_SawBlade_3P_Pickup_MIC")) + Skins.Add((Id=3464, Weapondef=class'KFWeapDef_Eviscerator', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_sawblade.EmergencyIssue_SawBlade_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_sawblade.EmergencyIssue_SawBlade_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_sawblade.EmergencyIssue_SawBlade_3P_Pickup_MIC")) + +//Emergency Issue Pulverizer + Skins.Add((Id=3589, Weapondef=class'KFWeapDef_Pulverizer', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_pulverizer.EmergencyIssue_Pulverizer_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_pulverizer.EmergencyIssue_Pulverizer_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_pulverizer.EmergencyIssue_Pulverizer_3P_Pickup_MIC")) + Skins.Add((Id=3588, Weapondef=class'KFWeapDef_Pulverizer', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_pulverizer.EmergencyIssue_Pulverizer_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_pulverizer.EmergencyIssue_Pulverizer_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_pulverizer.EmergencyIssue_Pulverizer_3P_Pickup_MIC")) + Skins.Add((Id=3587, Weapondef=class'KFWeapDef_Pulverizer', MIC_1P=("WEP_SkinSet03_MAT.emergencyissue_pulverizer.EmergencyIssue_Pulverizer_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.emergencyissue_pulverizer.EmergencyIssue_Pulverizer_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.emergencyissue_pulverizer.EmergencyIssue_Pulverizer_3P_Pickup_MIC")) + +//Predator MB500 + Skins.Add((Id=3397, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet03_MAT.predator_mb500.Predator_MB500_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.predator_mb500.Predator_MB500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.predator_mb500.Predator_MB500_3P_Pickup_MIC")) + Skins.Add((Id=3396, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet03_MAT.predator_mb500.Predator_MB500_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.predator_mb500.Predator_MB500_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.predator_mb500.Predator_MB500_3P_Pickup_MIC")) + Skins.Add((Id=3395, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet03_MAT.predator_mb500.Predator_MB500_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.predator_mb500.Predator_MB500_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.predator_mb500.Predator_MB500_3P_Pickup_MIC")) + +//Predator HX25 + Skins.Add((Id=3400, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSet03_MAT.predator_hx25.Predator_HX25_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.predator_hx25.Predator_HX25_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.predator_hx25.Predator_HX25_3P_Pickup_MIC")) + Skins.Add((Id=3399, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSet03_MAT.predator_hx25.Predator_HX25_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.predator_hx25.Predator_HX25_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.predator_hx25.Predator_HX25_3P_Pickup_MIC")) + Skins.Add((Id=3398, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSet03_MAT.predator_hx25.Predator_HX25_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.predator_hx25.Predator_HX25_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.predator_hx25.Predator_HX25_3P_Pickup_MIC")) + +//Predator AK12 + Skins.Add((Id=3403, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet03_MAT.predator_ak12.Predator_AK12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.predator_ak12.Predator_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.predator_ak12.Predator_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3402, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet03_MAT.predator_ak12.Predator_AK12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.predator_ak12.Predator_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.predator_ak12.Predator_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3401, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet03_MAT.predator_ak12.Predator_AK12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.predator_ak12.Predator_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.predator_ak12.Predator_AK12_3P_Pickup_MIC")) + +//Predator L85A2 + Skins.Add((Id=3406, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.predator_l85a2.Predator_L85A2_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.predator_l85a2.Predator_L85A2_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.predator_l85a2.Predator_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=3405, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.predator_l85a2.Predator_L85A2_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.predator_l85a2.Predator_L85A2_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.predator_l85a2.Predator_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=3404, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet03_MAT.predator_l85a2.Predator_L85A2_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.predator_l85a2.Predator_L85A2_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.predator_l85a2.Predator_L85A2_3P_Pickup_MIC")) + +//Carcass AA12 + Skins.Add((Id=3409, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet03_MAT.carcass_aa12.Carcass_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.carcass_aa12.Carcass_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.carcass_aa12.Carcass_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3408, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet03_MAT.carcass_aa12.Carcass_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.carcass_aa12.Carcass_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.carcass_aa12.Carcass_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3407, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet03_MAT.carcass_aa12.Carcass_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.carcass_aa12.Carcass_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.carcass_aa12.Carcass_AA12_3P_Pickup_MIC")) + +//Horzine First Encounter MB500 + Skins.Add((Id=3447, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet03_MAT.horzinefe_mb500.HorzineFE_MB500_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzinefe_mb500.HorzineFE_MB500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzinefe_mb500.HorzineFE_MB500_3P_Pickup_MIC")) + Skins.Add((Id=3446, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet03_MAT.horzinefe_mb500.HorzineFE_MB500_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzinefe_mb500.HorzineFE_MB500_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzinefe_mb500.HorzineFE_MB500_3P_Pickup_MIC")) + Skins.Add((Id=3445, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet03_MAT.horzinefe_mb500.HorzineFE_MB500_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.horzinefe_mb500.HorzineFE_MB500_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.horzinefe_mb500.HorzineFE_MB500_3P_Pickup_MIC")) + +//Flesh Pulverizer + Skins.Add((Id=3645, Weapondef=class'KFWeapDef_Pulverizer', MIC_1P=("WEP_SkinSet03_MAT.flesh_pulverizer.Flesh_Pulverizer_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.flesh_pulverizer.Flesh_Pulverizer_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.flesh_pulverizer.Flesh_Pulverizer_3P_Pickup_MIC")) + Skins.Add((Id=3644, Weapondef=class'KFWeapDef_Pulverizer', MIC_1P=("WEP_SkinSet03_MAT.flesh_pulverizer.Flesh_Pulverizer_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.flesh_pulverizer.Flesh_Pulverizer_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.flesh_pulverizer.Flesh_Pulverizer_3P_Pickup_MIC")) + Skins.Add((Id=3643, Weapondef=class'KFWeapDef_Pulverizer', MIC_1P=("WEP_SkinSet03_MAT.flesh_pulverizer.Flesh_Pulverizer_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.flesh_pulverizer.Flesh_Pulverizer_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.flesh_pulverizer.Flesh_Pulverizer_3P_Pickup_MIC")) + +//Vertebrae HX25 + Skins.Add((Id=3682, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSet03_MAT.vertebrae_hx25.Vertebrae_HX25_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.vertebrae_hx25.Vertebrae_HX25_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.vertebrae_hx25.Vertebrae_HX25_3P_Pickup_MIC")) + Skins.Add((Id=3681, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSet03_MAT.vertebrae_hx25.Vertebrae_HX25_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.vertebrae_hx25.Vertebrae_HX25_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.vertebrae_hx25.Vertebrae_HX25_3P_Pickup_MIC")) + Skins.Add((Id=3680, Weapondef=class'KFWeapDef_HX25', MIC_1P=("WEP_SkinSet03_MAT.vertebrae_hx25.Vertebrae_HX25_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.vertebrae_hx25.Vertebrae_HX25_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.vertebrae_hx25.Vertebrae_HX25_3P_Pickup_MIC")) + +//Spray Can SCAR + Skins.Add((Id=3729, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet03_MAT.spraycan_scar.SprayCan_SCAR_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.spraycan_scar.SprayCan_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.spraycan_scar.SprayCan_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3728, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet03_MAT.spraycan_scar.SprayCan_SCAR_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.spraycan_scar.SprayCan_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.spraycan_scar.SprayCan_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3727, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet03_MAT.spraycan_scar.SprayCan_SCAR_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.spraycan_scar.SprayCan_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.spraycan_scar.SprayCan_SCAR_3P_Pickup_MIC")) + +//Leviathan AK12 + Skins.Add((Id=3732, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet03_MAT.leviathan_ak12.Leviathan_AK12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet03_MAT.leviathan_ak12.Leviathan_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet03_MAT.leviathan_ak12.Leviathan_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3731, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet03_MAT.leviathan_ak12.Leviathan_AK12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet03_MAT.leviathan_ak12.Leviathan_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet03_MAT.leviathan_ak12.Leviathan_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3730, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet03_MAT.leviathan_ak12.Leviathan_AK12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet03_MAT.leviathan_ak12.Leviathan_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet03_MAT.leviathan_ak12.Leviathan_AK12_3P_Pickup_MIC")) + +//Horzine Elite Blue AK12 + Skins.Add((Id=3781, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet04_MAT.horzineeliteblue_ak12.HorzineEliteBlue_AK12_1P_Mint_MIC", "WEP_SkinSet04_MAT.horzineeliteblue_ak12.HorzineEliteBlue_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzineeliteblue_ak12.HorzineEliteBlue_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzineeliteblue_ak12.HorzineEliteBlue_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3780, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet04_MAT.horzineeliteblue_ak12.HorzineEliteBlue_AK12_1P_FieldTested_MIC", "WEP_SkinSet04_MAT.horzineeliteblue_ak12.HorzineEliteBlue_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzineeliteblue_ak12.HorzineEliteBlue_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzineeliteblue_ak12.HorzineEliteBlue_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3779, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet04_MAT.horzineeliteblue_ak12.HorzineEliteBlue_AK12_1P_BattleScarred_MIC", "WEP_SkinSet04_MAT.horzineeliteblue_ak12.HorzineEliteBlue_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzineeliteblue_ak12.HorzineEliteBlue_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzineeliteblue_ak12.HorzineEliteBlue_AK12_3P_Pickup_MIC")) + +//Horzine Elite Red AK12 + Skins.Add((Id=3784, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet04_MAT.horzineelitered_ak12.HorzineEliteRed_AK12_1P_Mint_MIC", "WEP_SkinSet04_MAT.horzineelitered_ak12.HorzineEliteRed_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzineelitered_ak12.HorzineEliteRed_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzineelitered_ak12.HorzineEliteRed_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3783, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet04_MAT.horzineelitered_ak12.HorzineEliteRed_AK12_1P_FieldTested_MIC", "WEP_SkinSet04_MAT.horzineelitered_ak12.HorzineEliteRed_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzineelitered_ak12.HorzineEliteRed_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzineelitered_ak12.HorzineEliteRed_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3782, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet04_MAT.horzineelitered_ak12.HorzineEliteRed_AK12_1P_BattleScarred_MIC", "WEP_SkinSet04_MAT.horzineelitered_ak12.HorzineEliteRed_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzineelitered_ak12.HorzineEliteRed_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzineelitered_ak12.HorzineEliteRed_AK12_3P_Pickup_MIC")) + +//Horzine Elite White AK12 + Skins.Add((Id=3787, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet04_MAT.horzineelitewhite_ak12.HorzineEliteWhite_AK12_1P_Mint_MIC", "WEP_SkinSet04_MAT.horzineelitewhite_ak12.HorzineEliteWhite_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzineelitewhite_ak12.HorzineEliteWhite_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzineelitewhite_ak12.HorzineEliteWhite_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3786, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet04_MAT.horzineelitewhite_ak12.HorzineEliteWhite_AK12_1P_FieldTested_MIC", "WEP_SkinSet04_MAT.horzineelitewhite_ak12.HorzineEliteWhite_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzineelitewhite_ak12.HorzineEliteWhite_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzineelitewhite_ak12.HorzineEliteWhite_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3785, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet04_MAT.horzineelitewhite_ak12.HorzineEliteWhite_AK12_1P_BattleScarred_MIC", "WEP_SkinSet04_MAT.horzineelitewhite_ak12.HorzineEliteWhite_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzineelitewhite_ak12.HorzineEliteWhite_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzineelitewhite_ak12.HorzineEliteWhite_AK12_3P_Pickup_MIC")) + +//Horzine Elite Green AK12 + Skins.Add((Id=3790, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet04_MAT.horzineelitegreen_ak12.HorzineEliteGreen_AK12_1P_Mint_MIC", "WEP_SkinSet04_MAT.horzineelitegreen_ak12.HorzineEliteGreen_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzineelitegreen_ak12.HorzineEliteGreen_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzineelitegreen_ak12.HorzineEliteGreen_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3789, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet04_MAT.horzineelitegreen_ak12.HorzineEliteGreen_AK12_1P_FieldTested_MIC", "WEP_SkinSet04_MAT.horzineelitegreen_ak12.HorzineEliteGreen_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzineelitegreen_ak12.HorzineEliteGreen_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzineelitegreen_ak12.HorzineEliteGreen_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3788, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet04_MAT.horzineelitegreen_ak12.HorzineEliteGreen_AK12_1P_BattleScarred_MIC", "WEP_SkinSet04_MAT.horzineelitegreen_ak12.HorzineEliteGreen_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzineelitegreen_ak12.HorzineEliteGreen_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzineelitegreen_ak12.HorzineEliteGreen_AK12_3P_Pickup_MIC")) + +//Horzine First Encounter Healer + Skins.Add((Id=3793, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSet04_MAT.horzinefe_healer.HorzineFE_Healer_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzinefe_healer.HorzineFE_Healer_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzinefe_healer.HorzineFE_Healer_3P_Pickup_MIC")) + Skins.Add((Id=3792, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSet04_MAT.horzinefe_healer.HorzineFE_Healer_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzinefe_healer.HorzineFE_Healer_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzinefe_healer.HorzineFE_Healer_3P_Pickup_MIC")) + Skins.Add((Id=3791, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSet04_MAT.horzinefe_healer.HorzineFE_Healer_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzinefe_healer.HorzineFE_Healer_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzinefe_healer.HorzineFE_Healer_3P_Pickup_MIC")) + +//Horzine First Encounter Welder + Skins.Add((Id=3796, Weapondef=class'KFWeapDef_Welder', MIC_1P=("WEP_SkinSet04_MAT.horzinefe_welder.HorzineFE_Welder_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzinefe_welder.HorzineFE_Welder_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzinefe_welder.HorzineFE_Welder_3P_Pickup_MIC")) + Skins.Add((Id=3795, Weapondef=class'KFWeapDef_Welder', MIC_1P=("WEP_SkinSet04_MAT.horzinefe_welder.HorzineFE_Welder_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzinefe_welder.HorzineFE_Welder_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzinefe_welder.HorzineFE_Welder_3P_Pickup_MIC")) + Skins.Add((Id=3794, Weapondef=class'KFWeapDef_Welder', MIC_1P=("WEP_SkinSet04_MAT.horzinefe_welder.HorzineFE_Welder_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzinefe_welder.HorzineFE_Welder_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzinefe_welder.HorzineFE_Welder_3P_Pickup_MIC")) + +//Horzine First Encounter AA12 + Skins.Add((Id=3799, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet04_MAT.horzinefe_aa12.HorzineFE_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzinefe_aa12.HorzineFE_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzinefe_aa12.HorzineFE_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3798, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet04_MAT.horzinefe_aa12.HorzineFE_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzinefe_aa12.HorzineFE_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzinefe_aa12.HorzineFE_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3797, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet04_MAT.horzinefe_aa12.HorzineFE_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet04_MAT.horzinefe_aa12.HorzineFE_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet04_MAT.horzinefe_aa12.HorzineFE_AA12_3P_Pickup_MIC")) + +//Elite Unit Medic Pistol + Skins.Add((Id=3670, Weapondef=class'KFWeapDef_MedicPistol', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_1P_Mint_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_3P_Pickup_MIC")) + Skins.Add((Id=3669, Weapondef=class'KFWeapDef_MedicPistol', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_3P_Pickup_MIC")) + Skins.Add((Id=3668, Weapondef=class'KFWeapDef_MedicPistol', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_3P_Pickup_MIC")) + +//Elite Unit Medic SMG + Skins.Add((Id=3673, Weapondef=class'KFWeapDef_MedicSMG', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_1P_Mint_MIC", "WEP_SkinSet05_MAT.eliteunit_medicsmg.EliteUnit_MedicSMG_1P_Mint_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_medicsmg.EliteUnit_MedicSMG_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_medicsmg.EliteUnit_MedicSMG_3P_Pickup_MIC")) + Skins.Add((Id=3672, Weapondef=class'KFWeapDef_MedicSMG', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_1P_FieldTested_MIC", "WEP_SkinSet05_MAT.eliteunit_medicsmg.EliteUnit_MedicSMG_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_medicsmg.EliteUnit_MedicSMG_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_medicsmg.EliteUnit_MedicSMG_3P_Pickup_MIC")) + Skins.Add((Id=3671, Weapondef=class'KFWeapDef_MedicSMG', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_1P_BattleScarred_MIC", "WEP_SkinSet05_MAT.eliteunit_medicsmg.EliteUnit_MedicSMG_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_medicsmg.EliteUnit_MedicSMG_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_medicsmg.EliteUnit_MedicSMG_3P_Pickup_MIC")) + +//Elite Unit Medic Shotgun + Skins.Add((Id=3676, Weapondef=class'KFWeapDef_MedicShotgun', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_1P_Mint_MIC", "WEP_SkinSet05_MAT.eliteunit_medicshotgun.EliteUnit_MedicShotgun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_medicshotgun.EliteUnit_MedicShotgun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_medicshotgun.EliteUnit_MedicShotgun_3P_Pickup_MIC")) + Skins.Add((Id=3675, Weapondef=class'KFWeapDef_MedicShotgun', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_1P_FieldTested_MIC", "WEP_SkinSet05_MAT.eliteunit_medicshotgun.EliteUnit_MedicShotgun_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_medicshotgun.EliteUnit_MedicShotgun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_medicshotgun.EliteUnit_MedicShotgun_3P_Pickup_MIC")) + Skins.Add((Id=3674, Weapondef=class'KFWeapDef_MedicShotgun', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_1P_BattleScarred_MIC", "WEP_SkinSet05_MAT.eliteunit_medicshotgun.EliteUnit_MedicShotgun_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_medicshotgun.EliteUnit_MedicShotgun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_medicshotgun.EliteUnit_MedicShotgun_3P_Pickup_MIC")) + +//Elite Unit Medic Assault + Skins.Add((Id=3679, Weapondef=class'KFWeapDef_MedicRifle', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_medicassault.EliteUnit_MedicAssault_1P_Mint_MIC", "WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_1P_Mint_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_medicassault.EliteUnit_MedicAssault_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_medicassault.EliteUnit_MedicAssault_3P_Pickup_MIC")) + Skins.Add((Id=3678, Weapondef=class'KFWeapDef_MedicRifle', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_medicassault.EliteUnit_MedicAssault_1P_FieldTested_MIC", "WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_medicassault.EliteUnit_MedicAssault_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_medicassault.EliteUnit_MedicAssault_3P_Pickup_MIC")) + Skins.Add((Id=3677, Weapondef=class'KFWeapDef_MedicRifle', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_medicassault.EliteUnit_MedicAssault_1P_BattleScarred_MIC", "WEP_SkinSet05_MAT.eliteunit_medicpistol.EliteUnit_MedicPistol_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_medicassault.EliteUnit_MedicAssault_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_medicassault.EliteUnit_MedicAssault_3P_Pickup_MIC")) + +//Elite Unit Medic Knife + Skins.Add((Id=4138, Weapondef=class'KFWeapDef_Knife_Medic', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_scalpel.EliteUnit_Scalpel_1P_Mint_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_scalpel.EliteUnit_Scalpel_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_scalpel.EliteUnit_Scalpel_3P_Pickup_MIC")) + Skins.Add((Id=4137, Weapondef=class'KFWeapDef_Knife_Medic', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_scalpel.EliteUnit_Scalpel_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_scalpel.EliteUnit_Scalpel_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_scalpel.EliteUnit_Scalpel_3P_Pickup_MIC")) + Skins.Add((Id=4136, Weapondef=class'KFWeapDef_Knife_Medic', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_scalpel.EliteUnit_Scalpel_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_scalpel.EliteUnit_Scalpel_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_scalpel.EliteUnit_Scalpel_3P_Pickup_MIC")) + +//Elite Unit Healer + Skins.Add((Id=4187, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_healer.EliteUnit_Healer_1P_Mint_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_healer.EliteUnit_Healer_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_healer.EliteUnit_Healer_3P_Pickup_MIC")) + Skins.Add((Id=4186, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_healer.EliteUnit_Healer_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_healer.EliteUnit_Healer_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_healer.EliteUnit_Healer_3P_Pickup_MIC")) + Skins.Add((Id=4185, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSet05_MAT.eliteunit_healer.EliteUnit_Healer_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet05_MAT.eliteunit_healer.EliteUnit_Healer_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet05_MAT.eliteunit_healer.EliteUnit_Healer_3P_Pickup_MIC")) + +//Elite Unit Green Medic Pistol + Skins.Add((Id=4190, Weapondef=class'KFWeapDef_MedicPistol', MIC_1P=("WEP_SkinSet06_MAT.eliteunitgreen_medicpistol.EliteUnitGreen_MedicPistol_1P_Mint_MIC"), MIC_3P="WEP_SkinSet06_MAT.eliteunitgreen_medicpistol.EliteUnitGreen_MedicPistol_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet06_MAT.eliteunitgreen_medicpistol.EliteUnitGreen_MedicPistol_3P_Pickup_MIC")) + Skins.Add((Id=4189, Weapondef=class'KFWeapDef_MedicPistol', MIC_1P=("WEP_SkinSet06_MAT.eliteunitgreen_medicpistol.EliteUnitGreen_MedicPistol_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet06_MAT.eliteunitgreen_medicpistol.EliteUnitGreen_MedicPistol_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet06_MAT.eliteunitgreen_medicpistol.EliteUnitGreen_MedicPistol_3P_Pickup_MIC")) + Skins.Add((Id=4188, Weapondef=class'KFWeapDef_MedicPistol', MIC_1P=("WEP_SkinSet06_MAT.eliteunitgreen_medicpistol.EliteUnitGreen_MedicPistol_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet06_MAT.eliteunitgreen_medicpistol.EliteUnitGreen_MedicPistol_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet06_MAT.eliteunitgreen_medicpistol.EliteUnitGreen_MedicPistol_3P_Pickup_MIC")) + +//Elite Unit Green Medic SMG + Skins.Add((Id=4193, Weapondef=class'KFWeapDef_MedicSMG', MIC_1P=("WEP_SkinSet06_MAT.eliteunitgreen_medicpistol.EliteUnitGreen_MedicPistol_1P_Mint_MIC", "WEP_SkinSet06_MAT.eliteunitgreen_medicsmg.EliteUnitGreen_MedicSMG_1P_Mint_MIC"), MIC_3P="WEP_SkinSet06_MAT.eliteunitgreen_medicsmg.EliteUnitGreen_MedicSMG_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet06_MAT.eliteunitgreen_medicsmg.EliteUnitGreen_MedicSMG_3P_Pickup_MIC")) + Skins.Add((Id=4192, Weapondef=class'KFWeapDef_MedicSMG', MIC_1P=("WEP_SkinSet06_MAT.eliteunitgreen_medicpistol.EliteUnitGreen_MedicPistol_1P_FieldTested_MIC", "WEP_SkinSet06_MAT.eliteunitgreen_medicsmg.EliteUnitGreen_MedicSMG_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet06_MAT.eliteunitgreen_medicsmg.EliteUnitGreen_MedicSMG_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet06_MAT.eliteunitgreen_medicsmg.EliteUnitGreen_MedicSMG_3P_Pickup_MIC")) + Skins.Add((Id=4191, Weapondef=class'KFWeapDef_MedicSMG', MIC_1P=("WEP_SkinSet06_MAT.eliteunitgreen_medicpistol.EliteUnitGreen_MedicPistol_1P_BattleScarred_MIC", "WEP_SkinSet06_MAT.eliteunitgreen_medicsmg.EliteUnitGreen_MedicSMG_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet06_MAT.eliteunitgreen_medicsmg.EliteUnitGreen_MedicSMG_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet06_MAT.eliteunitgreen_medicsmg.EliteUnitGreen_MedicSMG_3P_Pickup_MIC")) + +//Elite Unit Red Medic Shotgun + Skins.Add((Id=4196, Weapondef=class'KFWeapDef_MedicShotgun', MIC_1P=("WEP_SkinSet06_MAT.eliteunitred_medicpistol.EliteUnitRed_MedicPistol_1P_Mint_MIC", "WEP_SkinSet06_MAT.eliteunitred_medicshotgun.EliteUnitRed_MedicShotgun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet06_MAT.eliteunitred_medicshotgun.EliteUnitRed_MedicShotgun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet06_MAT.eliteunitred_medicshotgun.EliteUnitRed_MedicShotgun_3P_Pickup_MIC")) + Skins.Add((Id=4195, Weapondef=class'KFWeapDef_MedicShotgun', MIC_1P=("WEP_SkinSet06_MAT.eliteunitred_medicpistol.EliteUnitRed_MedicPistol_1P_FieldTested_MIC", "WEP_SkinSet06_MAT.eliteunitred_medicshotgun.EliteUnitRed_MedicShotgun_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet06_MAT.eliteunitred_medicshotgun.EliteUnitRed_MedicShotgun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet06_MAT.eliteunitred_medicshotgun.EliteUnitRed_MedicShotgun_3P_Pickup_MIC")) + Skins.Add((Id=4194, Weapondef=class'KFWeapDef_MedicShotgun', MIC_1P=("WEP_SkinSet06_MAT.eliteunitred_medicpistol.EliteUnitRed_MedicPistol_1P_BattleScarred_MIC", "WEP_SkinSet06_MAT.eliteunitred_medicshotgun.EliteUnitRed_MedicShotgun_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet06_MAT.eliteunitred_medicshotgun.EliteUnitRed_MedicShotgun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet06_MAT.eliteunitred_medicshotgun.EliteUnitRed_MedicShotgun_3P_Pickup_MIC")) + +//Elite Unit Red Medic Assault + Skins.Add((Id=4199, Weapondef=class'KFWeapDef_MedicRifle', MIC_1P=("WEP_SkinSet06_MAT.eliteunitred_medicassault.EliteUnitRed_MedicAssault_1P_Mint_MIC", "WEP_SkinSet06_MAT.eliteunitred_medicpistol.EliteUnitRed_MedicPistol_1P_Mint_MIC"), MIC_3P="WEP_SkinSet06_MAT.eliteunitred_medicassault.EliteUnitRed_MedicAssault_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet06_MAT.eliteunitred_medicassault.EliteUnitRed_MedicAssault_3P_Pickup_MIC")) + Skins.Add((Id=4198, Weapondef=class'KFWeapDef_MedicRifle', MIC_1P=("WEP_SkinSet06_MAT.eliteunitred_medicassault.EliteUnitRed_MedicAssault_1P_FieldTested_MIC", "WEP_SkinSet06_MAT.eliteunitred_medicpistol.EliteUnitRed_MedicPistol_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet06_MAT.eliteunitred_medicassault.EliteUnitRed_MedicAssault_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet06_MAT.eliteunitred_medicassault.EliteUnitRed_MedicAssault_3P_Pickup_MIC")) + Skins.Add((Id=4197, Weapondef=class'KFWeapDef_MedicRifle', MIC_1P=("WEP_SkinSet06_MAT.eliteunitred_medicassault.EliteUnitRed_MedicAssault_1P_BattleScarred_MIC", "WEP_SkinSet06_MAT.eliteunitred_medicpistol.EliteUnitRed_MedicPistol_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet06_MAT.eliteunitred_medicassault.EliteUnitRed_MedicAssault_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet06_MAT.eliteunitred_medicassault.EliteUnitRed_MedicAssault_3P_Pickup_MIC")) + +//SWAT AA12 + Skins.Add((Id=3975, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet05_MAT.swat_aa12.SWAT_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_aa12.SWAT_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_aa12.SWAT_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3974, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet05_MAT.swat_aa12.SWAT_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_aa12.SWAT_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_aa12.SWAT_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3973, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet05_MAT.swat_aa12.SWAT_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_aa12.SWAT_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_aa12.SWAT_AA12_3P_Pickup_MIC")) + +//SWAT AK12 + Skins.Add((Id=3978, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet05_MAT.swat_ak12.SWAT_AK12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_ak12.SWAT_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_ak12.SWAT_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3977, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet05_MAT.swat_ak12.SWAT_AK12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_ak12.SWAT_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_ak12.SWAT_AK12_3P_Pickup_MIC")) + Skins.Add((Id=3976, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet05_MAT.swat_ak12.SWAT_AK12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_ak12.SWAT_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_ak12.SWAT_AK12_3P_Pickup_MIC")) + +//SWAT MB500 + Skins.Add((Id=3981, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet05_MAT.swat_mb500.SWAT_MB500_1P_Mint_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_mb500.SWAT_MB500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_mb500.SWAT_MB500_3P_Pickup_MIC")) + Skins.Add((Id=3980, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet05_MAT.swat_mb500.SWAT_MB500_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_mb500.SWAT_MB500_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_mb500.SWAT_MB500_3P_Pickup_MIC")) + Skins.Add((Id=3979, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet05_MAT.swat_mb500.SWAT_MB500_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_mb500.SWAT_MB500_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_mb500.SWAT_MB500_3P_Pickup_MIC")) + +//SWAT 9mm + Skins.Add((Id=3984, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet05_MAT.swat_9mm.SWAT_9mm_1P_Mint_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_9mm.SWAT_9mm_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_9mm.SWAT_9mm_3P_Pickup_MIC")) + Skins.Add((Id=3983, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet05_MAT.swat_9mm.SWAT_9mm_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_9mm.SWAT_9mm_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_9mm.SWAT_9mm_3P_Pickup_MIC")) + Skins.Add((Id=3982, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet05_MAT.swat_9mm.SWAT_9mm_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_9mm.SWAT_9mm_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_9mm.SWAT_9mm_3P_Pickup_MIC")) + +//SWAT SCAR + Skins.Add((Id=3987, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet05_MAT.swat_scar.SWAT_SCAR_1P_Mint_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_scar.SWAT_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_scar.SWAT_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3986, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet05_MAT.swat_scar.SWAT_SCAR_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_scar.SWAT_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_scar.SWAT_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=3985, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet05_MAT.swat_scar.SWAT_SCAR_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_scar.SWAT_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_scar.SWAT_SCAR_3P_Pickup_MIC")) + +//SWAT Pulverizer + Skins.Add((Id=4128, Weapondef=class'KFWeapDef_Pulverizer', MIC_1P=("WEP_SkinSet05_MAT.swat_pulverizer.SWAT_Pulverizer_1P_Mint_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_pulverizer.SWAT_Pulverizer_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_pulverizer.SWAT_Pulverizer_3P_Pickup_MIC")) + Skins.Add((Id=4127, Weapondef=class'KFWeapDef_Pulverizer', MIC_1P=("WEP_SkinSet05_MAT.swat_pulverizer.SWAT_Pulverizer_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_pulverizer.SWAT_Pulverizer_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_pulverizer.SWAT_Pulverizer_3P_Pickup_MIC")) + Skins.Add((Id=4126, Weapondef=class'KFWeapDef_Pulverizer', MIC_1P=("WEP_SkinSet05_MAT.swat_pulverizer.SWAT_Pulverizer_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet05_MAT.swat_pulverizer.SWAT_Pulverizer_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet05_MAT.swat_pulverizer.SWAT_Pulverizer_3P_Pickup_MIC")) + +//Human Popcorn Microwave Gun + Skins.Add((Id=3990, Weapondef=class'KFWeapDef_MicrowaveGun', MIC_1P=("WEP_SkinSetPSN02_MAT.humanpopcorn_microwavegun.HumanPopcorn_MicrowaveGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.humanpopcorn_microwavegun.HumanPopcorn_MicrowaveGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.humanpopcorn_microwavegun.HumanPopcorn_MicrowaveGun_3P_Pickup_MIC")) + Skins.Add((Id=3989, Weapondef=class'KFWeapDef_MicrowaveGun', MIC_1P=("WEP_SkinSetPSN02_MAT.humanpopcorn_microwavegun.HumanPopcorn_MicrowaveGun_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.humanpopcorn_microwavegun.HumanPopcorn_MicrowaveGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.humanpopcorn_microwavegun.HumanPopcorn_MicrowaveGun_3P_Pickup_MIC")) + Skins.Add((Id=3988, Weapondef=class'KFWeapDef_MicrowaveGun', MIC_1P=("WEP_SkinSetPSN02_MAT.humanpopcorn_microwavegun.HumanPopcorn_MicrowaveGun_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.humanpopcorn_microwavegun.HumanPopcorn_MicrowaveGun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.humanpopcorn_microwavegun.HumanPopcorn_MicrowaveGun_3P_Pickup_MIC")) + +//Clot Cola AA12 + Skins.Add((Id=3993, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSetPSN02_MAT.clotcola_aa12.ClotCola_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.clotcola_aa12.ClotCola_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.clotcola_aa12.ClotCola_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3992, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSetPSN02_MAT.clotcola_aa12.ClotCola_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.clotcola_aa12.ClotCola_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.clotcola_aa12.ClotCola_AA12_3P_Pickup_MIC")) + Skins.Add((Id=3991, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSetPSN02_MAT.clotcola_aa12.ClotCola_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.clotcola_aa12.ClotCola_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.clotcola_aa12.ClotCola_AA12_3P_Pickup_MIC")) + +//Junkyard Racer L85A2 + Skins.Add((Id=3996, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSetPSN02_MAT.junkyardracer_l85a2.JunkyardRacer_L85A2_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.junkyardracer_l85a2.JunkyardRacer_L85A2_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.junkyardracer_l85a2.JunkyardRacer_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=3995, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSetPSN02_MAT.junkyardracer_l85a2.JunkyardRacer_L85A2_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.junkyardracer_l85a2.JunkyardRacer_L85A2_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.junkyardracer_l85a2.JunkyardRacer_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=3994, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSetPSN02_MAT.junkyardracer_l85a2.JunkyardRacer_L85A2_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.junkyardracer_l85a2.JunkyardRacer_L85A2_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.junkyardracer_l85a2.JunkyardRacer_L85A2_3P_Pickup_MIC")) + +//Junkyard Racer Remington 1858 + Skins.Add((Id=3999, Weapondef=class'KFWeapDef_Remington1858', MIC_1P=("WEP_SkinSetPSN02_MAT.junkyardracer_remington1858.JunkyardRacer_Remington1858_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.junkyardracer_remington1858.JunkyardRacer_Remington1858_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.junkyardracer_remington1858.JunkyardRacer_Remington1858_3P_Pickup_MIC")) + Skins.Add((Id=3998, Weapondef=class'KFWeapDef_Remington1858', MIC_1P=("WEP_SkinSetPSN02_MAT.junkyardracer_remington1858.JunkyardRacer_Remington1858_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.junkyardracer_remington1858.JunkyardRacer_Remington1858_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.junkyardracer_remington1858.JunkyardRacer_Remington1858_3P_Pickup_MIC")) + Skins.Add((Id=3997, Weapondef=class'KFWeapDef_Remington1858', MIC_1P=("WEP_SkinSetPSN02_MAT.junkyardracer_remington1858.JunkyardRacer_Remington1858_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.junkyardracer_remington1858.JunkyardRacer_Remington1858_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.junkyardracer_remington1858.JunkyardRacer_Remington1858_3P_Pickup_MIC")) + +//Junkyard Racer Winchester 1894 + Skins.Add((Id=4002, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSetPSN02_MAT.junkyardracer_winchester1894.JunkyardRacer_Winchester1894_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.junkyardracer_winchester1894.JunkyardRacer_Winchester1894_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.junkyardracer_winchester1894.JunkyardRacer_Winchester1894_3P_Pickup_MIC")) + Skins.Add((Id=4001, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSetPSN02_MAT.junkyardracer_winchester1894.JunkyardRacer_Winchester1894_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.junkyardracer_winchester1894.JunkyardRacer_Winchester1894_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.junkyardracer_winchester1894.JunkyardRacer_Winchester1894_3P_Pickup_MIC")) + Skins.Add((Id=4000, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSetPSN02_MAT.junkyardracer_winchester1894.JunkyardRacer_Winchester1894_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.junkyardracer_winchester1894.JunkyardRacer_Winchester1894_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.junkyardracer_winchester1894.JunkyardRacer_Winchester1894_3P_Pickup_MIC")) + +//Tripwire Gunner 9mm + Skins.Add((Id=4005, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSetPSN02_MAT.tripwiregunner_9mm.TripwireGunner_9mm_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.tripwiregunner_9mm.TripwireGunner_9mm_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.tripwiregunner_9mm.TripwireGunner_9mm_3P_Pickup_MIC")) + Skins.Add((Id=4004, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSetPSN02_MAT.tripwiregunner_9mm.TripwireGunner_9mm_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.tripwiregunner_9mm.TripwireGunner_9mm_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.tripwiregunner_9mm.TripwireGunner_9mm_3P_Pickup_MIC")) + Skins.Add((Id=4003, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSetPSN02_MAT.tripwiregunner_9mm.TripwireGunner_9mm_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.tripwiregunner_9mm.TripwireGunner_9mm_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.tripwiregunner_9mm.TripwireGunner_9mm_3P_Pickup_MIC")) + +//Gunner Classic 9mm + Skins.Add((Id=4008, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSetPSN02_MAT.gunnerclassic_9mm.GunnerClassic_9mm_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.gunnerclassic_9mm.GunnerClassic_9mm_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.gunnerclassic_9mm.GunnerClassic_9mm_3P_Pickup_MIC")) + Skins.Add((Id=4007, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSetPSN02_MAT.gunnerclassic_9mm.GunnerClassic_9mm_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.gunnerclassic_9mm.GunnerClassic_9mm_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.gunnerclassic_9mm.GunnerClassic_9mm_3P_Pickup_MIC")) + Skins.Add((Id=4006, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSetPSN02_MAT.gunnerclassic_9mm.GunnerClassic_9mm_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.gunnerclassic_9mm.GunnerClassic_9mm_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.gunnerclassic_9mm.GunnerClassic_9mm_3P_Pickup_MIC")) + +//Outmoded Healer + Skins.Add((Id=4125, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSetPSN02_MAT.outmoded_healer.Outmoded_Healer_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.outmoded_healer.Outmoded_Healer_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.outmoded_healer.Outmoded_Healer_3P_Pickup_MIC")) + Skins.Add((Id=4124, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSetPSN02_MAT.outmoded_healer.Outmoded_Healer_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.outmoded_healer.Outmoded_Healer_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.outmoded_healer.Outmoded_Healer_3P_Pickup_MIC")) + Skins.Add((Id=4123, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSetPSN02_MAT.outmoded_healer.Outmoded_Healer_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN02_MAT.outmoded_healer.Outmoded_Healer_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN02_MAT.outmoded_healer.Outmoded_Healer_3P_Pickup_MIC")) + +//Victorian AA12 + Skins.Add((Id=4038, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet06_MAT.victorian_aa12.Victorian_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_aa12.Victorian_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_aa12.Victorian_AA12_3P_Pickup_MIC")) + Skins.Add((Id=4037, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet06_MAT.victorian_aa12.Victorian_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_aa12.Victorian_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_aa12.Victorian_AA12_3P_Pickup_MIC")) + Skins.Add((Id=4036, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet06_MAT.victorian_aa12.Victorian_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_aa12.Victorian_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_aa12.Victorian_AA12_3P_Pickup_MIC")) + +//Victorian Double Barrel + Skins.Add((Id=4047, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_1P_Mint_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_3P_Pickup_MIC")) + Skins.Add((Id=4046, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_3P_Pickup_MIC")) + Skins.Add((Id=4045, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_3P_Pickup_MIC")) + +//Victorian M4 + Skins.Add((Id=4050, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet06_MAT.victorian_m4.Victorian_M4_1P_Mint_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_m4.Victorian_M4_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_m4.Victorian_M4_3P_Pickup_MIC")) + Skins.Add((Id=4049, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet06_MAT.victorian_m4.Victorian_M4_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_m4.Victorian_M4_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_m4.Victorian_M4_3P_Pickup_MIC")) + Skins.Add((Id=4048, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet06_MAT.victorian_m4.Victorian_M4_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_m4.Victorian_M4_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_m4.Victorian_M4_3P_Pickup_MIC")) + +//Victorian MB500 + Skins.Add((Id=4044, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet06_MAT.victorian_mb500.Victorian_MB500_1P_Mint_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_mb500.Victorian_MB500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_mb500.Victorian_MB500_3P_Pickup_MIC")) + Skins.Add((Id=4043, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet06_MAT.victorian_mb500.Victorian_MB500_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_mb500.Victorian_MB500_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_mb500.Victorian_MB500_3P_Pickup_MIC")) + Skins.Add((Id=4042, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet06_MAT.victorian_mb500.Victorian_MB500_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_mb500.Victorian_MB500_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_mb500.Victorian_MB500_3P_Pickup_MIC")) + +//Victorian Support Knife + Skins.Add((Id=4041, Weapondef=class'KFWeapDef_Knife_Support', MIC_1P=("WEP_SkinSet06_MAT.victorian_supportknife.Victorian_SupportKnife_1P_Mint_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_supportknife.Victorian_SupportKnife_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_supportknife.Victorian_SupportKnife_3P_Pickup_MIC")) + Skins.Add((Id=4040, Weapondef=class'KFWeapDef_Knife_Support', MIC_1P=("WEP_SkinSet06_MAT.victorian_supportknife.Victorian_SupportKnife_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_supportknife.Victorian_SupportKnife_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_supportknife.Victorian_SupportKnife_3P_Pickup_MIC")) + Skins.Add((Id=4039, Weapondef=class'KFWeapDef_Knife_Support', MIC_1P=("WEP_SkinSet06_MAT.victorian_supportknife.Victorian_SupportKnife_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_supportknife.Victorian_SupportKnife_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_supportknife.Victorian_SupportKnife_3P_Pickup_MIC")) + +//Opulence SCAR + Skins.Add((Id=4220, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet06_MAT.opulence_scar.Opulence_SCAR_1P_Mint_MIC"), MIC_3P="WEP_SkinSet06_MAT.opulence_scar.Opulence_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet06_MAT.opulence_scar.Opulence_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=4219, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet06_MAT.opulence_scar.Opulence_SCAR_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet06_MAT.opulence_scar.Opulence_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet06_MAT.opulence_scar.Opulence_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=4218, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet06_MAT.opulence_scar.Opulence_SCAR_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet06_MAT.opulence_scar.Opulence_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet06_MAT.opulence_scar.Opulence_SCAR_3P_Pickup_MIC")) + +//Horzine Elite Blue 9mm + Skins.Add((Id=4331, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSetEA01_MAT.horzineeliteblue_9mm.HorzineEliteBlue_9mm_1P_Mint_MIC"), MIC_3P="WEP_SkinSetEA01_MAT.horzineeliteblue_9mm.HorzineEliteBlue_9mm_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetEA01_MAT.horzineeliteblue_9mm.HorzineEliteBlue_9mm_3P_Pickup_MIC")) + +//Horzine Elite Green 9mm + Skins.Add((Id=4334, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSetEA01_MAT.horzineelitegreen_9mm.HorzineEliteGreen_9mm_1P_Mint_MIC"), MIC_3P="WEP_SkinSetEA01_MAT.horzineelitegreen_9mm.HorzineEliteGreen_9mm_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetEA01_MAT.horzineelitegreen_9mm.HorzineEliteGreen_9mm_3P_Pickup_MIC")) + +//Horzine Elite Red 9mm + Skins.Add((Id=4337, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSetEA01_MAT.horzineelitered_9mm.HorzineEliteRed_9mm_1P_Mint_MIC"), MIC_3P="WEP_SkinSetEA01_MAT.horzineelitered_9mm.HorzineEliteRed_9mm_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetEA01_MAT.horzineelitered_9mm.HorzineEliteRed_9mm_3P_Pickup_MIC")) + +//Horzine Elite White 9mm + Skins.Add((Id=4340, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSetEA01_MAT.horzineelitewhite_9mm.HorzineEliteWhite_9mm_1P_Mint_MIC"), MIC_3P="WEP_SkinSetEA01_MAT.horzineelitewhite_9mm.HorzineEliteWhite_9mm_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetEA01_MAT.horzineelitewhite_9mm.HorzineEliteWhite_9mm_3P_Pickup_MIC")) + +//Horzine Elite Blue Deagle + Skins.Add((Id=4384, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet07_MAT.horzineeliteblue_deagle.HorzineEliteBlue_Deagle_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.horzineeliteblue_deagle.HorzineEliteBlue_Deagle_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet07_MAT.horzineeliteblue_deagle.HorzineEliteBlue_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=4383, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet07_MAT.horzineeliteblue_deagle.HorzineEliteBlue_Deagle_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet07_MAT.horzineeliteblue_deagle.HorzineEliteBlue_Deagle_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet07_MAT.horzineeliteblue_deagle.HorzineEliteBlue_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=4382, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet07_MAT.horzineeliteblue_deagle.HorzineEliteBlue_Deagle_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet07_MAT.horzineeliteblue_deagle.HorzineEliteBlue_Deagle_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet07_MAT.horzineeliteblue_deagle.HorzineEliteBlue_Deagle_3P_Pickup_MIC")) + +//Horzine Elite Green Deagle + Skins.Add((Id=4387, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet07_MAT.horzineelitegreen_deagle.HorzineEliteGreen_Deagle_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.horzineelitegreen_deagle.HorzineEliteGreen_Deagle_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet07_MAT.horzineelitegreen_deagle.HorzineEliteGreen_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=4386, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet07_MAT.horzineelitegreen_deagle.HorzineEliteGreen_Deagle_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet07_MAT.horzineelitegreen_deagle.HorzineEliteGreen_Deagle_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet07_MAT.horzineelitegreen_deagle.HorzineEliteGreen_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=4385, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet07_MAT.horzineelitegreen_deagle.HorzineEliteGreen_Deagle_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet07_MAT.horzineelitegreen_deagle.HorzineEliteGreen_Deagle_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet07_MAT.horzineelitegreen_deagle.HorzineEliteGreen_Deagle_3P_Pickup_MIC")) + +//Horzine Elite Red Deagle + Skins.Add((Id=4390, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet07_MAT.horzineelitered_deagle.HorzineEliteRed_Deagle_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.horzineelitered_deagle.HorzineEliteRed_Deagle_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet07_MAT.horzineelitered_deagle.HorzineEliteRed_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=4389, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet07_MAT.horzineelitered_deagle.HorzineEliteRed_Deagle_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet07_MAT.horzineelitered_deagle.HorzineEliteRed_Deagle_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet07_MAT.horzineelitered_deagle.HorzineEliteRed_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=4388, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet07_MAT.horzineelitered_deagle.HorzineEliteRed_Deagle_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet07_MAT.horzineelitered_deagle.HorzineEliteRed_Deagle_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet07_MAT.horzineelitered_deagle.HorzineEliteRed_Deagle_3P_Pickup_MIC")) + +//Horzine Elite White Deagle + Skins.Add((Id=4393, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet07_MAT.horzineelitewhite_deagle.HorzineEliteWhite_Deagle_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.horzineelitewhite_deagle.HorzineEliteWhite_Deagle_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet07_MAT.horzineelitewhite_deagle.HorzineEliteWhite_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=4392, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet07_MAT.horzineelitewhite_deagle.HorzineEliteWhite_Deagle_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet07_MAT.horzineelitewhite_deagle.HorzineEliteWhite_Deagle_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet07_MAT.horzineelitewhite_deagle.HorzineEliteWhite_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=4391, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet07_MAT.horzineelitewhite_deagle.HorzineEliteWhite_Deagle_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet07_MAT.horzineelitewhite_deagle.HorzineEliteWhite_Deagle_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet07_MAT.horzineelitewhite_deagle.HorzineEliteWhite_Deagle_3P_Pickup_MIC")) + +//Tactical AA12 + Skins.Add((Id=4460, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_3P_Pickup_MIC")) + Skins.Add((Id=4459, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_3P_Pickup_MIC")) + Skins.Add((Id=4458, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_3P_Pickup_MIC")) + +//Tactical AK12 + Skins.Add((Id=4463, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet07_MAT.tactical_ak12.Tactical_AK12_1P_Mint_MIC", "WEP_SkinSet07_MAT.tactical_ak12.Tactical_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_ak12.Tactical_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_ak12.Tactical_AK12_3P_Pickup_MIC")) + Skins.Add((Id=4462, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet07_MAT.tactical_ak12.Tactical_AK12_1P_FieldTested_MIC", "WEP_SkinSet07_MAT.tactical_ak12.Tactical_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_ak12.Tactical_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_ak12.Tactical_AK12_3P_Pickup_MIC")) + Skins.Add((Id=4461, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet07_MAT.tactical_ak12.Tactical_AK12_1P_BattleScarred_MIC", "WEP_SkinSet07_MAT.tactical_ak12.Tactical_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_ak12.Tactical_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_ak12.Tactical_AK12_3P_Pickup_MIC")) + +//Tactical L85A2 + Skins.Add((Id=4466, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet07_MAT.tactical_l85a2.Tactical_L85A2_1P_Mint_MIC", "WEP_SkinSet07_MAT.tactical_l85a2.Tactical_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_l85a2.Tactical_L85A2_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_l85a2.Tactical_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=4465, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet07_MAT.tactical_l85a2.Tactical_L85A2_1P_FieldTested_MIC", "WEP_SkinSet07_MAT.tactical_l85a2.Tactical_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_l85a2.Tactical_L85A2_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_l85a2.Tactical_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=4464, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet07_MAT.tactical_l85a2.Tactical_L85A2_1P_BattleScarred_MIC", "WEP_SkinSet07_MAT.tactical_l85a2.Tactical_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_l85a2.Tactical_L85A2_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_l85a2.Tactical_L85A2_3P_Pickup_MIC")) + +//Tactical MB500 + Skins.Add((Id=4469, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet07_MAT.tactical_mb500.Tactical_MB500_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_mb500.Tactical_MB500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_mb500.Tactical_MB500_3P_Pickup_MIC")) + Skins.Add((Id=4468, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet07_MAT.tactical_mb500.Tactical_MB500_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_mb500.Tactical_MB500_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_mb500.Tactical_MB500_3P_Pickup_MIC")) + Skins.Add((Id=4467, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet07_MAT.tactical_mb500.Tactical_MB500_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_mb500.Tactical_MB500_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_mb500.Tactical_MB500_3P_Pickup_MIC")) + +//Tactical Medic Assault + Skins.Add((Id=4472, Weapondef=class'KFWeapDef_MedicRifle', MIC_1P=("WEP_SkinSet07_MAT.tactical_medicassault.Tactical_MedicAssault_1P_Mint_MIC", "WEP_SkinSet07_MAT.tactical_medicassault.Tactical_MedicPistol_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_medicassault.Tactical_MedicAssault_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_medicassault.Tactical_MedicAssault_3P_Pickup_MIC")) + Skins.Add((Id=4471, Weapondef=class'KFWeapDef_MedicRifle', MIC_1P=("WEP_SkinSet07_MAT.tactical_medicassault.Tactical_MedicAssault_1P_FieldTested_MIC", "WEP_SkinSet07_MAT.tactical_medicassault.Tactical_MedicPistol_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_medicassault.Tactical_MedicAssault_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_medicassault.Tactical_MedicAssault_3P_Pickup_MIC")) + Skins.Add((Id=4470, Weapondef=class'KFWeapDef_MedicRifle', MIC_1P=("WEP_SkinSet07_MAT.tactical_medicassault.Tactical_MedicAssault_1P_BattleScarred_MIC", "WEP_SkinSet07_MAT.tactical_medicassault.Tactical_MedicPistol_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_medicassault.Tactical_MedicAssault_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_medicassault.Tactical_MedicAssault_3P_Pickup_MIC")) + +//Tactical SCAR + Skins.Add((Id=4475, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet07_MAT.tactical_scar.Tactical_SCAR_1P_Mint_MIC", "WEP_SkinSet07_MAT.tactical_scar.Tactical_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_scar.Tactical_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_scar.Tactical_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=4474, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet07_MAT.tactical_scar.Tactical_SCAR_1P_FieldTested_MIC", "WEP_SkinSet07_MAT.tactical_scar.Tactical_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_scar.Tactical_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_scar.Tactical_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=4473, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet07_MAT.tactical_scar.Tactical_SCAR_1P_BattleScarred_MIC", "WEP_SkinSet07_MAT.tactical_scar.Tactical_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_scar.Tactical_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_scar.Tactical_SCAR_3P_Pickup_MIC")) + +//Circuit Mace and Shield + Skins.Add((Id=4544, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.circuit_maceshield.Circuit_Mace_1P_Mint_MIC", "WEP_SkinSet08_MAT.circuit_maceshield.Circuit_Shield_1P_Mint_MIC"), MIC_3P="WEP_SkinSet08_MAT.circuit_maceshield.Circuit_MaceShield_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet08_MAT.circuit_maceshield.Circuit_MaceShield_3P_Pickup_MIC")) + Skins.Add((Id=4543, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.circuit_maceshield.Circuit_Mace_1P_FieldTested_MIC", "WEP_SkinSet08_MAT.circuit_maceshield.Circuit_Shield_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet08_MAT.circuit_maceshield.Circuit_MaceShield_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet08_MAT.circuit_maceshield.Circuit_MaceShield_3P_Pickup_MIC")) + Skins.Add((Id=4542, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.circuit_maceshield.Circuit_Mace_1P_BattleScarred_MIC", "WEP_SkinSet08_MAT.circuit_maceshield.Circuit_Shield_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet08_MAT.circuit_maceshield.Circuit_MaceShield_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet08_MAT.circuit_maceshield.Circuit_MaceShield_3P_Pickup_MIC")) + +//USA Mace and Shield + Skins.Add((Id=4547, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.usa_maceshield.USA_Mace_1P_Mint_MIC", "WEP_SkinSet08_MAT.usa_maceshield.USA_Shield_1P_Mint_MIC"), MIC_3P="WEP_SkinSet08_MAT.usa_maceshield.USA_MaceShield_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet08_MAT.usa_maceshield.USA_MaceShield_3P_Pickup_MIC")) + Skins.Add((Id=4546, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.usa_maceshield.USA_Mace_1P_FieldTested_MIC", "WEP_SkinSet08_MAT.usa_maceshield.USA_Shield_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet08_MAT.usa_maceshield.USA_MaceShield_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet08_MAT.usa_maceshield.USA_MaceShield_3P_Pickup_MIC")) + Skins.Add((Id=4545, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.usa_maceshield.USA_Mace_1P_BattleScarred_MIC", "WEP_SkinSet08_MAT.usa_maceshield.USA_Shield_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet08_MAT.usa_maceshield.USA_MaceShield_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet08_MAT.usa_maceshield.USA_MaceShield_3P_Pickup_MIC")) + +//Zed Hazard Mace and Shield + Skins.Add((Id=4550, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.zedhazard_maceshield.ZedHazard_Mace_1P_Mint_MIC", "WEP_SkinSet08_MAT.zedhazard_maceshield.ZedHazard_Shield_1P_Mint_MIC"), MIC_3P="WEP_SkinSet08_MAT.zedhazard_maceshield.ZedHazard_MaceShield_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet08_MAT.zedhazard_maceshield.ZedHazard_MaceShield_3P_Pickup_MIC")) + Skins.Add((Id=4549, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.zedhazard_maceshield.ZedHazard_Mace_1P_FieldTested_MIC", "WEP_SkinSet08_MAT.zedhazard_maceshield.ZedHazard_Shield_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet08_MAT.zedhazard_maceshield.ZedHazard_MaceShield_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet08_MAT.zedhazard_maceshield.ZedHazard_MaceShield_3P_Pickup_MIC")) + Skins.Add((Id=4548, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.zedhazard_maceshield.ZedHazard_Mace_1P_BattleScarred_MIC", "WEP_SkinSet08_MAT.zedhazard_maceshield.ZedHazard_Shield_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet08_MAT.zedhazard_maceshield.ZedHazard_MaceShield_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet08_MAT.zedhazard_maceshield.ZedHazard_MaceShield_3P_Pickup_MIC")) + +//Warning Mace and Shield + Skins.Add((Id=4553, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.warning_maceshield.Warning_Mace_1P_Mint_MIC", "WEP_SkinSet08_MAT.warning_maceshield.Warning_Shield_1P_Mint_MIC"), MIC_3P="WEP_SkinSet08_MAT.warning_maceshield.Warning_MaceShield_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet08_MAT.warning_maceshield.Warning_MaceShield_3P_Pickup_MIC")) + Skins.Add((Id=4552, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.warning_maceshield.Warning_Mace_1P_FieldTested_MIC", "WEP_SkinSet08_MAT.warning_maceshield.Warning_Shield_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet08_MAT.warning_maceshield.Warning_MaceShield_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet08_MAT.warning_maceshield.Warning_MaceShield_3P_Pickup_MIC")) + Skins.Add((Id=4551, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.warning_maceshield.Warning_Mace_1P_BattleScarred_MIC", "WEP_SkinSet08_MAT.warning_maceshield.Warning_Shield_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet08_MAT.warning_maceshield.Warning_MaceShield_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet08_MAT.warning_maceshield.Warning_MaceShield_3P_Pickup_MIC")) + +//Batcat Mace and Shield + Skins.Add((Id=4556, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.batcat_maceshield.Batcat_Mace_1P_Mint_MIC", "WEP_SkinSet08_MAT.batcat_maceshield.Batcat_Shield_1P_Mint_MIC"), MIC_3P="WEP_SkinSet08_MAT.batcat_maceshield.Batcat_MaceShield_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet08_MAT.batcat_maceshield.Batcat_MaceShield_3P_Pickup_MIC")) + Skins.Add((Id=4555, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.batcat_maceshield.Batcat_Mace_1P_FieldTested_MIC", "WEP_SkinSet08_MAT.batcat_maceshield.Batcat_Shield_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet08_MAT.batcat_maceshield.Batcat_MaceShield_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet08_MAT.batcat_maceshield.Batcat_MaceShield_3P_Pickup_MIC")) + Skins.Add((Id=4554, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.batcat_maceshield.Batcat_Mace_1P_BattleScarred_MIC", "WEP_SkinSet08_MAT.batcat_maceshield.Batcat_Shield_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet08_MAT.batcat_maceshield.Batcat_MaceShield_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet08_MAT.batcat_maceshield.Batcat_MaceShield_3P_Pickup_MIC")) + +//Guillotine Mace and Shield + Skins.Add((Id=4559, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.guillotine_maceshield.Guillotine_Mace_1P_Mint_MIC", "WEP_SkinSet08_MAT.guillotine_maceshield.Guillotine_Shield_1P_Mint_MIC"), MIC_3P="WEP_SkinSet08_MAT.guillotine_maceshield.Guillotine_MaceShield_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet08_MAT.guillotine_maceshield.Guillotine_MaceShield_3P_Pickup_MIC")) + Skins.Add((Id=4558, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.guillotine_maceshield.Guillotine_Mace_1P_FieldTested_MIC", "WEP_SkinSet08_MAT.guillotine_maceshield.Guillotine_Shield_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet08_MAT.guillotine_maceshield.Guillotine_MaceShield_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet08_MAT.guillotine_maceshield.Guillotine_MaceShield_3P_Pickup_MIC")) + Skins.Add((Id=4557, Weapondef=class'KFWeapDef_MaceAndShield', MIC_1P=("WEP_SkinSet08_MAT.guillotine_maceshield.Guillotine_Mace_1P_BattleScarred_MIC", "WEP_SkinSet08_MAT.guillotine_maceshield.Guillotine_Shield_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet08_MAT.guillotine_maceshield.Guillotine_MaceShield_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet08_MAT.guillotine_maceshield.Guillotine_MaceShield_3P_Pickup_MIC")) + +//Deepstrike 9mm + Skins.Add((Id=4359, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_3P_Pickup_MIC")) + Skins.Add((Id=4358, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_3P_Pickup_MIC")) + Skins.Add((Id=4357, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_3P_Pickup_MIC")) + +//Deepstrike Crossbow + Skins.Add((Id=4362, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_1P_Mint_MIC", "WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_3P_Pickup_MIC")) + Skins.Add((Id=4361, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_3P_Pickup_MIC")) + Skins.Add((Id=4360, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_1P_BattleScarred_MIC", "WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_3P_Pickup_MIC")) + +//Deepstrike Desert Eagle + Skins.Add((Id=4365, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=4364, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_3P_Pickup_MIC")) + Skins.Add((Id=4363, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_3P_Pickup_MIC")) + +//Deepstrike Winchester 1894 + Skins.Add((Id=4368, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_3P_Pickup_MIC")) + Skins.Add((Id=4367, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_3P_Pickup_MIC")) + Skins.Add((Id=4366, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_3P_Pickup_MIC")) + +//Deepstrike M79 + Skins.Add((Id=4371, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_3P_Pickup_MIC")) + Skins.Add((Id=4370, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_3P_Pickup_MIC")) + Skins.Add((Id=4369, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_3P_Pickup_MIC")) + +//Deepstrike RPG7 + Skins.Add((Id=4374, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_3P_Pickup_MIC")) + Skins.Add((Id=4373, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_3P_Pickup_MIC")) + Skins.Add((Id=4372, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_3P_Pickup_MIC")) + +//Deepstrike SCAR + Skins.Add((Id=4377, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_1P_Mint_MIC", "WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=4376, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=4375, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_1P_BattleScarred_MIC", "WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_3P_Pickup_MIC")) + +//Horzine Elite Blue Kriss + Skins.Add((Id=4572, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_1P_Mint_MIC", "WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_3P_Pickup_MIC")) + Skins.Add((Id=4571, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_3P_Pickup_MIC")) + Skins.Add((Id=4570, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_1P_BattleScarred_MIC", "WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_3P_Pickup_MIC")) + +//Horzine Elite Green Kriss + Skins.Add((Id=4575, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_1P_Mint_MIC", "WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_3P_Pickup_MIC")) + Skins.Add((Id=4574, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_3P_Pickup_MIC")) + Skins.Add((Id=4573, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_1P_BattleScarred_MIC", "WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_3P_Pickup_MIC")) + +//Horzine Elite Red Kriss + Skins.Add((Id=4578, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_1P_Mint_MIC", "WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_3P_Pickup_MIC")) + Skins.Add((Id=4577, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_3P_Pickup_MIC")) + Skins.Add((Id=4576, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_1P_BattleScarred_MIC", "WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_3P_Pickup_MIC")) + +//Horzine Elite White Kriss + Skins.Add((Id=4581, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_1P_Mint_MIC", "WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_3P_Pickup_MIC")) + Skins.Add((Id=4580, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_3P_Pickup_MIC")) + Skins.Add((Id=4579, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_1P_BattleScarred_MIC", "WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_3P_Pickup_MIC")) + +//Industrial Crossbow + Skins.Add((Id=4720, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_1P_Mint_MIC", "WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_3P_Pickup_MIC")) + Skins.Add((Id=4719, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_3P_Pickup_MIC")) + Skins.Add((Id=4718, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_1P_BattleScarred_MIC", "WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_3P_Pickup_MIC")) + +//Shredder (Industrial) Kriss + Skins.Add((Id=4723, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_3P_Pickup_MIC")) + Skins.Add((Id=4722, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_3P_Pickup_MIC")) + Skins.Add((Id=4721, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_3P_Pickup_MIC")) + +//Industrial M14EBR + Skins.Add((Id=4726, Weapondef=class'KFWeapDef_M14EBR', MIC_1P=("WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_1P_Mint_MIC", "WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_3P_Pickup_MIC")) + Skins.Add((Id=4725, Weapondef=class'KFWeapDef_M14EBR', MIC_1P=("WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_3P_Pickup_MIC")) + Skins.Add((Id=4724, Weapondef=class'KFWeapDef_M14EBR', MIC_1P=("WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_1P_BattleScarred_MIC", "WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_3P_Pickup_MIC")) + +//Industrial MP5RAS + Skins.Add((Id=4729, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_3P_Pickup_MIC")) + Skins.Add((Id=4728, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_3P_Pickup_MIC")) + Skins.Add((Id=4727, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_3P_Pickup_MIC")) + +//Jackhammer (Industrial) MP7 + Skins.Add((Id=4732, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_1P_Mint_MIC", "WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_3P_Pickup_MIC")) + Skins.Add((Id=4731, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_3P_Pickup_MIC")) + Skins.Add((Id=4730, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_1P_BattleScarred_MIC", "WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_3P_Pickup_MIC")) + +//Buzzsaw (Industrial) P90 + Skins.Add((Id=4735, Weapondef=class'KFWeapDef_P90', MIC_1P=("WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_1P_Mint_MIC", "WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_3P_Pickup_MIC")) + Skins.Add((Id=4734, Weapondef=class'KFWeapDef_P90', MIC_1P=("WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_3P_Pickup_MIC")) + Skins.Add((Id=4733, Weapondef=class'KFWeapDef_P90', MIC_1P=("WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_1P_BattleScarred_MIC", "WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_3P_Pickup_MIC")) + +//High Voltage (Industrial) Railgun + Skins.Add((Id=4738, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_1P_Mint_MIC", "WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_3P_Pickup_MIC")) + Skins.Add((Id=4737, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_3P_Pickup_MIC")) + Skins.Add((Id=4736, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_1P_BattleScarred_MIC", "WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_3P_Pickup_MIC")) + +//Industrial SW500 + Skins.Add((Id=4741, Weapondef=class'KFWeapDef_SW500', MIC_1P=("WEP_SkinSet10_MAT.industrial_sw500.Industrial_SW500_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_sw500.Industrial_SW500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_sw500.Industrial_SW500_3P_Pickup_MIC")) + Skins.Add((Id=4740, Weapondef=class'KFWeapDef_SW500', MIC_1P=("WEP_SkinSet10_MAT.industrial_sw500.Industrial_SW500_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_sw500.Industrial_SW500_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_sw500.Industrial_SW500_3P_Pickup_MIC")) + Skins.Add((Id=4739, Weapondef=class'KFWeapDef_SW500', MIC_1P=("WEP_SkinSet10_MAT.industrial_sw500.Industrial_SW500_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_sw500.Industrial_SW500_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_sw500.Industrial_SW500_3P_Pickup_MIC")) + +//DigiCam Orange FlareGun + Skins.Add((Id=4809, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.digicam_flaregun.DigiCam_FlareGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet11_MAT.digicam_flaregun.DigiCam_FlareGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet11_MAT.digicam_flaregun.DigiCam_FlareGun_3P_Pickup_MIC")) + Skins.Add((Id=4808, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.digicam_flaregun.DigiCam_FlareGun_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet11_MAT.digicam_flaregun.DigiCam_FlareGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet11_MAT.digicam_flaregun.DigiCam_FlareGun_3P_Pickup_MIC")) + Skins.Add((Id=4807, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.digicam_flaregun.DigiCam_FlareGun_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet11_MAT.digicam_flaregun.DigiCam_FlareGun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet11_MAT.digicam_flaregun.DigiCam_FlareGun_3P_Pickup_MIC")) + +//Fine China FlareGun + Skins.Add((Id=4812, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.finechina_flaregun.FineChina_FlareGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet11_MAT.finechina_flaregun.FineChina_FlareGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet11_MAT.finechina_flaregun.FineChina_FlareGun_3P_Pickup_MIC")) + Skins.Add((Id=4811, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.finechina_flaregun.FineChina_FlareGun_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet11_MAT.finechina_flaregun.FineChina_FlareGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet11_MAT.finechina_flaregun.FineChina_FlareGun_3P_Pickup_MIC")) + Skins.Add((Id=4810, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.finechina_flaregun.FineChina_FlareGun_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet11_MAT.finechina_flaregun.FineChina_FlareGun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet11_MAT.finechina_flaregun.FineChina_FlareGun_3P_Pickup_MIC")) + +//Guillotine FlareGun + Skins.Add((Id=4818, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.guillotine_flaregun.Guillotine_FlareGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet11_MAT.guillotine_flaregun.Guillotine_FlareGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet11_MAT.guillotine_flaregun.Guillotine_FlareGun_3P_Pickup_MIC")) + Skins.Add((Id=4817, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.guillotine_flaregun.Guillotine_FlareGun_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet11_MAT.guillotine_flaregun.Guillotine_FlareGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet11_MAT.guillotine_flaregun.Guillotine_FlareGun_3P_Pickup_MIC")) + Skins.Add((Id=4816, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.guillotine_flaregun.Guillotine_FlareGun_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet11_MAT.guillotine_flaregun.Guillotine_FlareGun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet11_MAT.guillotine_flaregun.Guillotine_FlareGun_3P_Pickup_MIC")) + +//Koi FlareGun + Skins.Add((Id=4821, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.koi_flaregun.Koi_FlareGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet11_MAT.koi_flaregun.Koi_FlareGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet11_MAT.koi_flaregun.Koi_FlareGun_3P_Pickup_MIC")) + Skins.Add((Id=4820, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.koi_flaregun.Koi_FlareGun_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet11_MAT.koi_flaregun.Koi_FlareGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet11_MAT.koi_flaregun.Koi_FlareGun_3P_Pickup_MIC")) + Skins.Add((Id=4819, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.koi_flaregun.Koi_FlareGun_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet11_MAT.koi_flaregun.Koi_FlareGun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet11_MAT.koi_flaregun.Koi_FlareGun_3P_Pickup_MIC")) + +//Flame Blue FlareGun + Skins.Add((Id=4824, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.flameblue_flaregun.FlameBlue_FlareGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet11_MAT.flameblue_flaregun.FlameBlue_FlareGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet11_MAT.flameblue_flaregun.FlameBlue_FlareGun_3P_Pickup_MIC")) + Skins.Add((Id=4823, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.flameblue_flaregun.FlameBlue_FlareGun_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet11_MAT.flameblue_flaregun.FlameBlue_FlareGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet11_MAT.flameblue_flaregun.FlameBlue_FlareGun_3P_Pickup_MIC")) + Skins.Add((Id=4822, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.flameblue_flaregun.FlameBlue_FlareGun_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet11_MAT.flameblue_flaregun.FlameBlue_FlareGun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet11_MAT.flameblue_flaregun.FlameBlue_FlareGun_3P_Pickup_MIC")) + +//Flame Orange FlareGun + Skins.Add((Id=4806, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.flameorange_flaregun.FlameOrange_FlareGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet11_MAT.flameorange_flaregun.FlameOrange_FlareGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet11_MAT.flameorange_flaregun.FlameOrange_FlareGun_3P_Pickup_MIC")) + Skins.Add((Id=4805, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.flameorange_flaregun.FlameOrange_FlareGun_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet11_MAT.flameorange_flaregun.FlameOrange_FlareGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet11_MAT.flameorange_flaregun.FlameOrange_FlareGun_3P_Pickup_MIC")) + Skins.Add((Id=4804, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.flameorange_flaregun.FlameOrange_FlareGun_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet11_MAT.flameorange_flaregun.FlameOrange_FlareGun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet11_MAT.flameorange_flaregun.FlameOrange_FlareGun_3P_Pickup_MIC")) + +//Flame Red FlareGun + Skins.Add((Id=4815, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_3P_Pickup_MIC")) + Skins.Add((Id=4814, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_3P_Pickup_MIC")) + Skins.Add((Id=4813, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_3P_Pickup_MIC")) + +//Vietnam AK12 + Skins.Add((Id=4970, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_1P_Mint_MIC", "WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_3P_Pickup_MIC")) + Skins.Add((Id=4969, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_1P_FieldTested_MIC", "WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_3P_Pickup_MIC")) + Skins.Add((Id=4968, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_1P_BattleScarred_MIC", "WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_3P_Pickup_MIC")) + +//Vietnam L85A2 + Skins.Add((Id=4964, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet12_MAT.vietnam_l85a2.Vietnam_L85A2_1P_Mint_MIC", "WEP_SkinSet12_MAT.vietnam_l85a2.Vietnam_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_l85a2.Vietnam_L85A2_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_l85a2.Vietnam_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=4963, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet12_MAT.vietnam_l85a2.Vietnam_L85A2_1P_FieldTested_MIC", "WEP_SkinSet12_MAT.vietnam_l85a2.Vietnam_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_l85a2.Vietnam_L85A2_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_l85a2.Vietnam_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=4962, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet12_MAT.vietnam_l85a2.Vietnam_L85A2_1P_BattleScarred_MIC", "WEP_SkinSet12_MAT.vietnam_l85a2.Vietnam_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_l85a2.Vietnam_L85A2_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_l85a2.Vietnam_L85A2_3P_Pickup_MIC")) + +//Vietnam M14EBR + Skins.Add((Id=4973, Weapondef=class'KFWeapDef_M14EBR', MIC_1P=("WEP_SkinSet12_MAT.vietnam_m14ebr.Vietnam_M14EBR_1P_Mint_MIC", "WEP_SkinSet12_MAT.vietnam_m14ebr.Vietnam_M14EBR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_m14ebr.Vietnam_M14EBR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_m14ebr.Vietnam_M14EBR_3P_Pickup_MIC")) + Skins.Add((Id=4972, Weapondef=class'KFWeapDef_M14EBR', MIC_1P=("WEP_SkinSet12_MAT.vietnam_m14ebr.Vietnam_M14EBR_1P_FieldTested_MIC", "WEP_SkinSet12_MAT.vietnam_m14ebr.Vietnam_M14EBR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_m14ebr.Vietnam_M14EBR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_m14ebr.Vietnam_M14EBR_3P_Pickup_MIC")) + Skins.Add((Id=4971, Weapondef=class'KFWeapDef_M14EBR', MIC_1P=("WEP_SkinSet12_MAT.vietnam_m14ebr.Vietnam_M14EBR_1P_BattleScarred_MIC", "WEP_SkinSet12_MAT.vietnam_m14ebr.Vietnam_M14EBR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_m14ebr.Vietnam_M14EBR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_m14ebr.Vietnam_M14EBR_3P_Pickup_MIC")) + +//Vietnam M1911 + Skins.Add((Id=4961, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet12_MAT.vietnam_m1911.Vietnam_M1911_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_m1911.Vietnam_M1911_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_m1911.Vietnam_M1911_3P_Pickup_MIC")) + Skins.Add((Id=4960, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet12_MAT.vietnam_m1911.Vietnam_M1911_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_m1911.Vietnam_M1911_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_m1911.Vietnam_M1911_3P_Pickup_MIC")) + Skins.Add((Id=4959, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet12_MAT.vietnam_m1911.Vietnam_M1911_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_m1911.Vietnam_M1911_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_m1911.Vietnam_M1911_3P_Pickup_MIC")) + +//Vietnam M4 + Skins.Add((Id=4967, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet12_MAT.vietnam_m4.Vietnam_M4_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_m4.Vietnam_M4_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_m4.Vietnam_M4_3P_Pickup_MIC")) + Skins.Add((Id=4966, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet12_MAT.vietnam_m4.Vietnam_M4_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_m4.Vietnam_M4_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_m4.Vietnam_M4_3P_Pickup_MIC")) + Skins.Add((Id=4965, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet12_MAT.vietnam_m4.Vietnam_M4_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_m4.Vietnam_M4_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_m4.Vietnam_M4_3P_Pickup_MIC")) + +//Vietnam RPG7 + Skins.Add((Id=4958, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet12_MAT.vietnam_rpg7.Vietnam_RPG7_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_rpg7.Vietnam_RPG7_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_rpg7.Vietnam_RPG7_3P_Pickup_MIC")) + Skins.Add((Id=4957, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet12_MAT.vietnam_rpg7.Vietnam_RPG7_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_rpg7.Vietnam_RPG7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_rpg7.Vietnam_RPG7_3P_Pickup_MIC")) + Skins.Add((Id=4956, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet12_MAT.vietnam_rpg7.Vietnam_RPG7_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_rpg7.Vietnam_RPG7_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_rpg7.Vietnam_RPG7_3P_Pickup_MIC")) + +//Vietnam Winchester 1894 + Skins.Add((Id=4955, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet12_MAT.vietnam_winchester1894.Vietnam_Winchester1894_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_winchester1894.Vietnam_Winchester1894_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_winchester1894.Vietnam_Winchester1894_3P_Pickup_MIC")) + Skins.Add((Id=4954, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet12_MAT.vietnam_winchester1894.Vietnam_Winchester1894_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_winchester1894.Vietnam_Winchester1894_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_winchester1894.Vietnam_Winchester1894_3P_Pickup_MIC")) + Skins.Add((Id=4953, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet12_MAT.vietnam_winchester1894.Vietnam_Winchester1894_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_winchester1894.Vietnam_Winchester1894_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_winchester1894.Vietnam_Winchester1894_3P_Pickup_MIC")) + +//Vietnam M16 M203 + Skins.Add((Id=4983, Weapondef=class'KFWeapDef_M16M203', MIC_1P=("WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M16_1P_Mint_MIC", "WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M203_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M16M203_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M16M203_3P_Pickup_MIC")) + Skins.Add((Id=4982, Weapondef=class'KFWeapDef_M16M203', MIC_1P=("WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M16_1P_FieldTested_MIC", "WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M203_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M16M203_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M16M203_3P_Pickup_MIC")) + Skins.Add((Id=4981, Weapondef=class'KFWeapDef_M16M203', MIC_1P=("WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M16_1P_BattleScarred_MIC", "WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M203_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M16M203_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M16M203_3P_Pickup_MIC")) + +//Vietnam RPG7 - Rising Storm Digital Deluxe + Skins.Add((Id=5017, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet12_MAT.vietnam_rpg7.Vietnam_RPG7_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_rpg7.Vietnam_RPG7_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_rpg7.Vietnam_RPG7_3P_Pickup_MIC")) + +//Vietnam M16 M203 - Rising Storm Digital Deluxe + Skins.Add((Id=5021, Weapondef=class'KFWeapDef_M16M203', MIC_1P=("WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M16_1P_Mint_MIC", "WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M203_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M16M203_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_m16m203.Vietnam_M16M203_3P_Pickup_MIC")) + +//Vietnam M1911 - Rising Storm Digital Deluxe + Skins.Add((Id=5022, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet12_MAT.vietnam_m1911.Vietnam_M1911_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_m1911.Vietnam_M1911_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_m1911.Vietnam_M1911_3P_Pickup_MIC")) + +//Vietnam Winchester 1894 - Rising Storm Digital Deluxe + Skins.Add((Id=5023, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet12_MAT.vietnam_winchester1894.Vietnam_Winchester1894_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_winchester1894.Vietnam_Winchester1894_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_winchester1894.Vietnam_Winchester1894_3P_Pickup_MIC")) + +//Junkyard AA12 + Skins.Add((Id=4614, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_3P_Pickup_MIC")) + Skins.Add((Id=4613, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_3P_Pickup_MIC")) + Skins.Add((Id=4612, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_3P_Pickup_MIC")) + +//Junkyard AK12 + Skins.Add((Id=4617, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet13_MAT.junkyard_ak12.Junkyard_AK12_1P_Mint_MIC", "WEP_SkinSet13_MAT.junkyard_ak12.Junkyard_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_ak12.Junkyard_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_ak12.Junkyard_AK12_3P_Pickup_MIC")) + Skins.Add((Id=4616, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet13_MAT.junkyard_ak12.Junkyard_AK12_1P_FieldTested_MIC", "WEP_SkinSet13_MAT.junkyard_ak12.Junkyard_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_ak12.Junkyard_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_ak12.Junkyard_AK12_3P_Pickup_MIC")) + Skins.Add((Id=4615, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet13_MAT.junkyard_ak12.Junkyard_AK12_1P_BattleScarred_MIC", "WEP_SkinSet13_MAT.junkyard_ak12.Junkyard_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_ak12.Junkyard_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_ak12.Junkyard_AK12_3P_Pickup_MIC")) + +//Junkyard Kriss + Skins.Add((Id=4620, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet13_MAT.junkyard_kriss.Junkyard_Kriss_1P_Mint_MIC", "WEP_SkinSet13_MAT.junkyard_kriss.Junkyard_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_kriss.Junkyard_Kriss_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_kriss.Junkyard_Kriss_3P_Pickup_MIC")) + Skins.Add((Id=4619, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet13_MAT.junkyard_kriss.Junkyard_Kriss_1P_FieldTested_MIC", "WEP_SkinSet13_MAT.junkyard_kriss.Junkyard_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_kriss.Junkyard_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_kriss.Junkyard_Kriss_3P_Pickup_MIC")) + Skins.Add((Id=4618, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet13_MAT.junkyard_kriss.Junkyard_Kriss_1P_BattleScarred_MIC", "WEP_SkinSet13_MAT.junkyard_kriss.Junkyard_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_kriss.Junkyard_Kriss_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_kriss.Junkyard_Kriss_3P_Pickup_MIC")) + +//Junkyard L85A2 + Skins.Add((Id=4623, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet13_MAT.junkyard_l85a2.Junkyard_L85A2_1P_Mint_MIC", "WEP_SkinSet13_MAT.junkyard_l85a2.Junkyard_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_l85a2.Junkyard_L85A2_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_l85a2.Junkyard_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=4622, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet13_MAT.junkyard_l85a2.Junkyard_L85A2_1P_FieldTested_MIC", "WEP_SkinSet13_MAT.junkyard_l85a2.Junkyard_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_l85a2.Junkyard_L85A2_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_l85a2.Junkyard_L85A2_3P_Pickup_MIC")) + Skins.Add((Id=4621, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSet13_MAT.junkyard_l85a2.Junkyard_L85A2_1P_BattleScarred_MIC", "WEP_SkinSet13_MAT.junkyard_l85a2.Junkyard_L85A2_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_l85a2.Junkyard_L85A2_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_l85a2.Junkyard_L85A2_3P_Pickup_MIC")) + +//Junkyard M14EBR + Skins.Add((Id=4638, Weapondef=class'KFWeapDef_M14EBR', MIC_1P=("WEP_SkinSet13_MAT.junkyard_m14ebr.Junkyard_M14EBR_1P_Mint_MIC", "WEP_SkinSet13_MAT.junkyard_m14ebr.Junkyard_M14EBR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_m14ebr.Junkyard_M14EBR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_m14ebr.Junkyard_M14EBR_3P_Pickup_MIC")) + Skins.Add((Id=4637, Weapondef=class'KFWeapDef_M14EBR', MIC_1P=("WEP_SkinSet13_MAT.junkyard_m14ebr.Junkyard_M14EBR_1P_FieldTested_MIC", "WEP_SkinSet13_MAT.junkyard_m14ebr.Junkyard_M14EBR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_m14ebr.Junkyard_M14EBR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_m14ebr.Junkyard_M14EBR_3P_Pickup_MIC")) + Skins.Add((Id=4636, Weapondef=class'KFWeapDef_M14EBR', MIC_1P=("WEP_SkinSet13_MAT.junkyard_m14ebr.Junkyard_M14EBR_1P_BattleScarred_MIC", "WEP_SkinSet13_MAT.junkyard_m14ebr.Junkyard_M14EBR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_m14ebr.Junkyard_M14EBR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_m14ebr.Junkyard_M14EBR_3P_Pickup_MIC")) + +//Junkyard M16 M203 + Skins.Add((Id=4987, Weapondef=class'KFWeapDef_M16M203', MIC_1P=("WEP_SkinSet13_MAT.junkyard_m16m203.Junkyard_M16_1P_Mint_MIC", "WEP_SkinSet13_MAT.junkyard_m16m203.Junkyard_M203_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_m16m203.Junkyard_M16M203_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_m16m203.Junkyard_M16M203_3P_Pickup_MIC")) + Skins.Add((Id=4986, Weapondef=class'KFWeapDef_M16M203', MIC_1P=("WEP_SkinSet13_MAT.junkyard_m16m203.Junkyard_M16_1P_FieldTested_MIC", "WEP_SkinSet13_MAT.junkyard_m16m203.Junkyard_M203_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_m16m203.Junkyard_M16M203_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_m16m203.Junkyard_M16M203_3P_Pickup_MIC")) + Skins.Add((Id=4985, Weapondef=class'KFWeapDef_M16M203', MIC_1P=("WEP_SkinSet13_MAT.junkyard_m16m203.Junkyard_M16_1P_BattleScarred_MIC", "WEP_SkinSet13_MAT.junkyard_m16m203.Junkyard_M203_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_m16m203.Junkyard_M16M203_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_m16m203.Junkyard_M16M203_3P_Pickup_MIC")) + +//Junkyard M4 + Skins.Add((Id=4626, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_3P_Pickup_MIC")) + Skins.Add((Id=4625, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_3P_Pickup_MIC")) + Skins.Add((Id=4624, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_3P_Pickup_MIC")) + +//Junkyard MP5RAS + Skins.Add((Id=4629, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_3P_Pickup_MIC")) + Skins.Add((Id=4628, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_3P_Pickup_MIC")) + Skins.Add((Id=4627, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_3P_Pickup_MIC")) + +//Junkyard SCAR + Skins.Add((Id=4632, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet13_MAT.junkyard_scar.Junkyard_SCAR_1P_Mint_MIC", "WEP_SkinSet13_MAT.junkyard_scar.Junkyard_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_scar.Junkyard_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_scar.Junkyard_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=4631, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet13_MAT.junkyard_scar.Junkyard_SCAR_1P_FieldTested_MIC", "WEP_SkinSet13_MAT.junkyard_scar.Junkyard_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_scar.Junkyard_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_scar.Junkyard_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=4630, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet13_MAT.junkyard_scar.Junkyard_SCAR_1P_BattleScarred_MIC", "WEP_SkinSet13_MAT.junkyard_scar.Junkyard_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_scar.Junkyard_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_scar.Junkyard_SCAR_3P_Pickup_MIC")) + +//Junkyard Winchester 1894 + Skins.Add((Id=4635, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_3P_Pickup_MIC")) + Skins.Add((Id=4634, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_3P_Pickup_MIC")) + Skins.Add((Id=4633, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_3P_Pickup_MIC")) + +//Headshot Weekly Centerfire + Skins.Add((Id=4933, Weapondef=class'KFWeapDef_CenterfireMB464', MIC_1P=("WEP_1P_Centerfire_MAT.Wep_1stP_Centerfire_Zombie_MIC"), MIC_3P="WEP_3P_Centerfire_MAT.Wep_3rdP_Centerfire_Zombie_MIC", MIC_Pickup="WEP_3P_Centerfire_MAT.Wep_3rdP_Centerfire_Zombie_Pickup_MIC")) + +//Horzine Elite White MP5RAS + Skins.Add((Id=5033, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_3P_Pickup_MIC")) + Skins.Add((Id=5032, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_3P_Pickup_MIC")) + Skins.Add((Id=5031, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_3P_Pickup_MIC")) + +//Horzine Elite Black MP5RAS + Skins.Add((Id=5036, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_3P_Pickup_MIC")) + Skins.Add((Id=5035, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_3P_Pickup_MIC")) + Skins.Add((Id=5034, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_3P_Pickup_MIC")) + +//Horzine Elite Green MP5RAS + Skins.Add((Id=5039, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_3P_Pickup_MIC")) + Skins.Add((Id=5038, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_3P_Pickup_MIC")) + Skins.Add((Id=5037, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_3P_Pickup_MIC")) + +//Horzine Elite Blue MP5RAS + Skins.Add((Id=5042, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_3P_Pickup_MIC")) + Skins.Add((Id=5041, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_3P_Pickup_MIC")) + Skins.Add((Id=5040, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_3P_Pickup_MIC")) + +//Horzine Elite Red MP5RAS + Skins.Add((Id=5045, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_3P_Pickup_MIC")) + Skins.Add((Id=5044, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_3P_Pickup_MIC")) + Skins.Add((Id=5043, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_3P_Pickup_MIC")) + +//Halloween 9mm + Skins.Add((Id=5115, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_3P_Pickup_MIC")) + Skins.Add((Id=5114, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_3P_Pickup_MIC")) + Skins.Add((Id=5113, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_3P_Pickup_MIC")) + +//Halloween Crossbow + Skins.Add((Id=5118, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_3P_Pickup_MIC")) + Skins.Add((Id=5117, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_3P_Pickup_MIC")) + Skins.Add((Id=5116, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_3P_Pickup_MIC")) + +//Halloween Flamethrower + Skins.Add((Id=5121, Weapondef=class'KFWeapDef_FlameThrower', MIC_1P=("WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_3P_Pickup_MIC")) + Skins.Add((Id=5120, Weapondef=class'KFWeapDef_FlameThrower', MIC_1P=("WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_3P_Pickup_MIC")) + Skins.Add((Id=5119, Weapondef=class'KFWeapDef_FlameThrower', MIC_1P=("WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_3P_Pickup_MIC")) + +//Halloween Healer + Skins.Add((Id=5124, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_3P_Pickup_MIC")) + Skins.Add((Id=5123, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_3P_Pickup_MIC")) + Skins.Add((Id=5122, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_3P_Pickup_MIC")) + +//Halloween HZ12 + Skins.Add((Id=5127, Weapondef=class'KFWeapDef_HZ12', MIC_1P=("WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_3P_Pickup_MIC")) + Skins.Add((Id=5126, Weapondef=class'KFWeapDef_HZ12', MIC_1P=("WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_3P_Pickup_MIC")) + Skins.Add((Id=5125, Weapondef=class'KFWeapDef_HZ12', MIC_1P=("WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_3P_Pickup_MIC")) + +//Halloween Katana + Skins.Add((Id=5130, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_3P_Pickup_MIC")) + Skins.Add((Id=5129, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_3P_Pickup_MIC")) + Skins.Add((Id=5128, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_3P_Pickup_MIC")) + +//Halloween Kriss + Skins.Add((Id=5133, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_3P_Pickup_MIC")) + Skins.Add((Id=5132, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_3P_Pickup_MIC")) + Skins.Add((Id=5131, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_3P_Pickup_MIC")) + +//Halloween M79 + Skins.Add((Id=5136, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_3P_Pickup_MIC")) + Skins.Add((Id=5135, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_3P_Pickup_MIC")) + Skins.Add((Id=5134, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_3P_Pickup_MIC")) + +//Halloween Stoner 63A + Skins.Add((Id=5139, Weapondef=class'KFWeapDef_Stoner63A', MIC_1P=("WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_1P_Mint_MIC", "WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_Receiver_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_3P_Pickup_MIC")) + Skins.Add((Id=5138, Weapondef=class'KFWeapDef_Stoner63A', MIC_1P=("WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_1P_FieldTested_MIC", "WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_Receiver_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_3P_Pickup_MIC")) + Skins.Add((Id=5137, Weapondef=class'KFWeapDef_Stoner63A', MIC_1P=("WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_1P_BattleScarred_MIC", "WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_Receiver_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_3P_Pickup_MIC")) + +//Neon MB500 + Skins.Add((Id=5160, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_3P_Pickup_MIC")) + Skins.Add((Id=5159, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_3P_Pickup_MIC")) + Skins.Add((Id=5158, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_3P_Pickup_MIC")) + +//Neon Railgun + Skins.Add((Id=5163, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_1P_Mint_MIC", "WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_3P_Pickup_MIC")) + Skins.Add((Id=5162, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_1P_FieldTested_MIC", "WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_Scope_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_3P_Pickup_MIC")) + Skins.Add((Id=5161, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_1P_BattleScarred_MIC", "WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_Scope_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_3P_Pickup_MIC")) + +//Neon RPG7 + Skins.Add((Id=5166, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_3P_Pickup_MIC")) + Skins.Add((Id=5165, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_3P_Pickup_MIC")) + Skins.Add((Id=5164, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_3P_Pickup_MIC")) + +//Neon Scar + Skins.Add((Id=5169, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_1P_Mint_MIC", "WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=5168, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_1P_FieldTested_MIC", "WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_Scope_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_3P_Pickup_MIC")) + Skins.Add((Id=5167, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_1P_BattleScarred_MIC", "WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_Scope_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_3P_Pickup_MIC")) + +//Neon M1911 + Skins.Add((Id=5172, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_3P_Pickup_MIC")) + Skins.Add((Id=5171, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_3P_Pickup_MIC")) + Skins.Add((Id=5170, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_3P_Pickup_MIC")) + +//Neon Katana + Skins.Add((Id=5175, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet16_MAT.neon_katana.Neon_Katana_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_katana.Neon_Katana_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_katana.Neon_Katana_3P_Pickup_MIC")) + Skins.Add((Id=5174, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet16_MAT.neon_katana.Neon_Katana_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_katana.Neon_Katana_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_katana.Neon_Katana_3P_Pickup_MIC")) + Skins.Add((Id=5173, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet16_MAT.neon_katana.Neon_Katana_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_katana.Neon_Katana_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_katana.Neon_Katana_3P_Pickup_MIC")) + +//Neon Dragonsbreath + Skins.Add((Id=5178, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_3P_Pickup_MIC")) + Skins.Add((Id=5177, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_3P_Pickup_MIC")) + Skins.Add((Id=5176, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_3P_Pickup_MIC")) + +//Neon Kriss + Skins.Add((Id=5181, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_1P_Mint_MIC", "WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_Sight_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_3P_Pickup_MIC")) + Skins.Add((Id=5180, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_1P_FieldTested_MIC", "WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_Sight_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_3P_Pickup_MIC")) + Skins.Add((Id=5179, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_1P_BattleScarred_MIC", "WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_Sight_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_3P_Pickup_MIC")) + +//Vault Pink MP7 + Skins.Add((Id=5291, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_1P_Mint_MIC", "WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_3P_Pickup_MIC")) + Skins.Add((Id=5290, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_1P_FieldTested_MIC", "WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_3P_Pickup_MIC")) + Skins.Add((Id=5289, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_1P_BattleScarred_MIC", "WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_3P_Pickup_MIC")) + +//Vault Honorable Death AK12 + Skins.Add((Id=5294, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet17_MAT.horror_ak12.Vault_Horror_AK12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet17_MAT.horror_ak12.Vault_Horror_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet17_MAT.horror_ak12.Vault_Horror_AK12_3P_Pickup_MIC")) + Skins.Add((Id=5293, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet17_MAT.horror_ak12.Vault_Horror_AK12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet17_MAT.horror_ak12.Vault_Horror_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet17_MAT.horror_ak12.Vault_Horror_AK12_3P_Pickup_MIC")) + Skins.Add((Id=5292, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet17_MAT.horror_ak12.Vault_Horror_AK12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet17_MAT.horror_ak12.Vault_Horror_AK12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet17_MAT.horror_ak12.Vault_Horror_AK12_3P_Pickup_MIC")) + +//Vault Blue Camo Crovel + Skins.Add((Id=5297, Weapondef=class'KFWeapDef_Crovel', MIC_1P=("WEP_SkinSet17_MAT.military_crovel.Vault_Military_Crovel_1P_Mint_MIC"), MIC_3P="WEP_SkinSet17_MAT.military_crovel.Vault_Military_Crovel_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet17_MAT.military_crovel.Vault_Military_Crovel_3P_Pickup_MIC")) + Skins.Add((Id=5296, Weapondef=class'KFWeapDef_Crovel', MIC_1P=("WEP_SkinSet17_MAT.military_crovel.Vault_Military_Crovel_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet17_MAT.military_crovel.Vault_Military_Crovel_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet17_MAT.military_crovel.Vault_Military_Crovel_3P_Pickup_MIC")) + Skins.Add((Id=5295, Weapondef=class'KFWeapDef_Crovel', MIC_1P=("WEP_SkinSet17_MAT.military_crovel.Vault_Military_Crovel_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet17_MAT.military_crovel.Vault_Military_Crovel_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet17_MAT.military_crovel.Vault_Military_Crovel_3P_Pickup_MIC")) + +//Vault Sci Fi Caulk N Burn + Skins.Add((Id=5300, Weapondef=class'KFWeapDef_CaulkBurn', MIC_1P=("WEP_SkinSet17_MAT.scifi_caulknburn.Vault_SciFi_CaulkNBurn_1P_Mint_MIC"), MIC_3P="WEP_SkinSet17_MAT.scifi_caulknburn.Vault_SciFi_CaulkNBurn_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet17_MAT.scifi_caulknburn.Vault_SciFi_CaulkNBurn_3P_Pickup_MIC")) + Skins.Add((Id=5299, Weapondef=class'KFWeapDef_CaulkBurn', MIC_1P=("WEP_SkinSet17_MAT.scifi_caulknburn.Vault_SciFi_CaulkNBurn_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet17_MAT.scifi_caulknburn.Vault_SciFi_CaulkNBurn_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet17_MAT.scifi_caulknburn.Vault_SciFi_CaulkNBurn_3P_Pickup_MIC")) + Skins.Add((Id=5298, Weapondef=class'KFWeapDef_CaulkBurn', MIC_1P=("WEP_SkinSet17_MAT.scifi_caulknburn.Vault_SciFi_CaulkNBurn_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet17_MAT.scifi_caulknburn.Vault_SciFi_CaulkNBurn_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet17_MAT.scifi_caulknburn.Vault_SciFi_CaulkNBurn_3P_Pickup_MIC")) + +//Vault GG AA12 + Skins.Add((Id=5303, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_3P_Pickup_MIC")) + Skins.Add((Id=5302, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_3P_Pickup_MIC")) + Skins.Add((Id=5301, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_3P_Pickup_MIC")) + +} \ No newline at end of file diff --git a/ServerExt/Classes/ExtWidget_PartyInGame.uc b/ServerExt/Classes/ExtWidget_PartyInGame.uc index ee0897d..6274f44 100644 --- a/ServerExt/Classes/ExtWidget_PartyInGame.uc +++ b/ServerExt/Classes/ExtWidget_PartyInGame.uc @@ -3,85 +3,78 @@ class ExtWidget_PartyInGame extends KFGFxWidget_PartyInGame; var class PPerkSlots[6]; var byte PPerkLevels[6]; -function GFxObject RefreshSlot(int SlotIndex, KFPlayerReplicationInfo KFPRI) +struct ExtMemberSlotStruct +{ + var class PerkClass; + + structdefaultproperties + { + PerkClass=none + } +}; +var ExtMemberSlotStruct ExtMemberSlots[13]; + +function GFxObject RefreshSlot( int SlotIndex, KFPlayerReplicationInfo KFPRI ) { local string PlayerName; local UniqueNetId AdminId; local bool bIsLeader; local bool bIsMyPlayer; - local PlayerController PC; + local ExtPlayerController EPC; local GFxObject PlayerInfoObject; - local class CurrentPerkClass; - local int CurrentPerkLevel; local ExtPlayerReplicationInfo EPRI; PlayerInfoObject = CreateObject("Object"); - EPRI = ExtPlayerReplicationInfo(KFPRI); - PC = GetPC(); - - if(OnlineLobby != none) + EPC = ExtPlayerController(GetPC()); + + if( KFPRI != none ) + { + EPRI = ExtPlayerReplicationInfo(KFPRI); + } + if( OnlineLobby != none ) { OnlineLobby.GetLobbyAdmin( OnlineLobby.GetCurrentLobbyId(), AdminId); } - - //leader - bIsLeader = (KFPRI.UniqueId == AdminId); + bIsLeader = EPRI.UniqueId == AdminId; PlayerInfoObject.SetBool("bLeader", bIsLeader); - //my player - bIsMyPlayer = PC.PlayerReplicationInfo.UniqueId == KFPRI.UniqueId; - MemberSlots[SlotIndex].PlayerUID = KFPRI.UniqueId; - MemberSlots[SlotIndex].PRI = KFPRI; + bIsMyPlayer = EPC.PlayerReplicationInfo.UniqueId == KFPRI.UniqueId; + ExtMemberSlots[SlotIndex].PerkClass = EPRI.ECurrentPerk; PlayerInfoObject.SetBool("myPlayer", bIsMyPlayer); - - // Update this players perk information - CurrentPerkClass = (EPRI!=None ? EPRI.ECurrentPerk : None); - CurrentPerkLevel = (EPRI!=None ? EPRI.ECurrentPerkLevel : 0); - - if ( PPerkSlots[SlotIndex] != CurrentPerkClass || PPerkLevels[SlotIndex] != CurrentPerkLevel ) + if( ExtMemberSlots[SlotIndex].PerkClass != none ) { - PPerkSlots[SlotIndex] = CurrentPerkClass; - PPerkLevels[SlotIndex] = CurrentPerkLevel; - PlayerInfoObject.SetString("perkLevel", string(CurrentPerkLevel) @ CurrentPerkClass.default.PerkName); - PlayerInfoObject.SetString("perkIconPath", CurrentPerkClass.Static.GetPerkIconPath(CurrentPerkLevel)); + PlayerInfoObject.SetString("perkLevel", string(EPRI.ECurrentPerkLevel)); + PlayerInfoObject.SetString("perkIconPath", ExtMemberSlots[SlotIndex].PerkClass.static.GetPerkIconPath(EPRI.ECurrentPerkLevel)); } - - //perk info - if(MemberSlots[SlotIndex].PerkClass != none) + if( !bIsMyPlayer ) { - PlayerInfoObject.SetString("perkLevel", MemberSlots[SlotIndex].PerkLevel @MemberSlots[SlotIndex].PerkClass.default.PerkName); - PlayerInfoObject.SetString("perkIconPath", "img://"$MemberSlots[SlotIndex].PerkClass.static.GetPerkIconPath()); + PlayerInfoObject.SetBool("muted", EPC.IsPlayerMuted(EPRI.UniqueId)); } - //perk info - if(!bIsMyPlayer) - { - PlayerInfoObject.SetBool("muted", PC.IsPlayerMuted(KFPRI.UniqueId)); - } - - - // E3 build force update of player name if( class'WorldInfo'.static.IsE3Build() ) { - // Update this slots player name - PlayerName = KFPRI.PlayerName; + PlayerName = EPRI.PlayerName; } else { - PlayerName = KFPRI.PlayerName; + PlayerName = EPRI.PlayerName; } PlayerInfoObject.SetString("playerName", PlayerName); - //player icon if( class'WorldInfo'.static.IsConsoleBuild(CONSOLE_Orbis) ) { - PlayerInfoObject.SetString("profileImageSource", KFPC.GetPS4Avatar(PlayerName)); + PlayerInfoObject.SetString("profileImageSource", "img://"$KFPC.GetPS4Avatar(PlayerName)); } else { - PlayerInfoObject.SetString("profileImageSource", KFPC.GetSteamAvatar(KFPRI.UniqueId)); + PlayerInfoObject.SetString("profileImageSource", "img://"$KFPC.GetSteamAvatar(EPRI.UniqueId)); } - if(KFGRI != none) + if( KFGRI != none ) { - PlayerInfoObject.SetBool("ready", KFPRI.bReadyToPlay && !KFGRI.bMatchHasBegun); + PlayerInfoObject.SetBool("ready", EPRI.bReadyToPlay && !KFGRI.bMatchHasBegun); } - return PlayerInfoObject; + return PlayerInfoObject; +} + +DefaultProperties +{ + PlayerSlots=12 } diff --git a/ServerExt/Classes/Ext_PerkBase.uc b/ServerExt/Classes/Ext_PerkBase.uc index 09e19b2..ebe1f3a 100644 --- a/ServerExt/Classes/Ext_PerkBase.uc +++ b/ServerExt/Classes/Ext_PerkBase.uc @@ -1346,6 +1346,14 @@ simulated function float GetIronSightSpeedModifier( KFWeapon KFW ) return 1.f; } +function OnWaveEnded(); +function NotifyZedTimeStarted(); + +simulated function float GetZedTimeExtensions( byte Level ) +{ + return 1.f; +} + defaultproperties { CurrentConfigVer=13 diff --git a/ServerExt/Classes/Ext_PerkCommando.uc b/ServerExt/Classes/Ext_PerkCommando.uc index f0eed7c..da1e663 100644 --- a/ServerExt/Classes/Ext_PerkCommando.uc +++ b/ServerExt/Classes/Ext_PerkCommando.uc @@ -1,19 +1,69 @@ Class Ext_PerkCommando extends Ext_PerkBase; +var bool bUseProfessional,bUseMachineGunner; +var float ZTExtCount; + +replication +{ + // Things the server should send to the client. + if ( true ) + bUseProfessional,bUseMachineGunner; +} + simulated function bool GetUsingTactialReload( KFWeapon KFW ) { return (IsWeaponOnPerk(KFW) ? Modifiers[5]<0.65 : false); } +simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCauser, optional KFPawn_Monster MyKFPM, optional KFPlayerController DamageInstigator, optional class DamageType, optional int HitZoneIdx ) +{ + if( (DamageType!=None && DamageType.Default.ModifierPerkList.Find(BasePerk)>=0) || (KFWeapon(DamageCauser)!=None && IsWeaponOnPerk(KFWeapon(DamageCauser))) ) + { + if( bUseMachineGunner && WorldInfo.TimeDilation < 1.f ) + InDamage += InDamage * 0.03; + } + + Super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx); +} + +simulated function float GetZedTimeModifier( KFWeapon W ) +{ + local name StateName; + StateName = W.GetStateName(); + + if( bUseProfessional && IsWeaponOnPerk( W ) ) + { + if( StateName == 'Reloading' || StateName == 'AltReloading' ) + return 1.f; + else if( StateName == 'WeaponPuttingDown' || StateName == 'WeaponEquipping' ) + return 0.3f; + } + + if( bUseMachineGunner && IsWeaponOnPerk( W ) && BasePerk.Default.ZedTimeModifyingStates.Find( StateName ) != INDEX_NONE ) + return 0.5f; + + return 0.f; +} + +simulated function float GetZedTimeExtensions( byte Level ) +{ + return ZTExtCount; +} + defaultproperties { PerkName="Commando" PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_Commando' DefTraitList.Add(class'Ext_TraitWPComm') DefTraitList.Add(class'Ext_TraitUnCloak') + DefTraitList.Add(class'Ext_TraitZedTExt') DefTraitList.Add(class'Ext_TraitEnemyHP') DefTraitList.Add(class'Ext_TraitEliteReload') + DefTraitList.Add(class'Ext_TraitTactician') + DefTraitList.Add(class'Ext_TraitMachineGunner') BasePerk=class'KFPerk_Commando' + + ZTExtCount=1.f; PrimaryMelee=class'KFWeap_Knife_Commando' PrimaryWeapon=class'KFWeap_AssaultRifle_AR15' diff --git a/ServerExt/Classes/Ext_PerkDemolition.uc b/ServerExt/Classes/Ext_PerkDemolition.uc index 42de35f..e88e1f1 100644 --- a/ServerExt/Classes/Ext_PerkDemolition.uc +++ b/ServerExt/Classes/Ext_PerkDemolition.uc @@ -1,5 +1,86 @@ Class Ext_PerkDemolition extends Ext_PerkBase; +var bool bSirenResistance,bCanUseSacrifice,bDirectHit,bCriticalHit,bProfessionalActive; +var bool bUsedSacrifice; +var float AOEMult, NukeDamageMult; + +replication +{ + // Things the server should send to the client. + if ( true ) + NukeDamageMult,bDirectHit,bCriticalHit,bProfessionalActive; +} + +function float GetAoERadiusModifier() +{ + return AOEMult; +} + +simulated function bool GetUsingTactialReload( KFWeapon KFW ) +{ + return (IsWeaponOnPerk(KFW) ? Modifiers[5]<0.85 : false); +} + +simulated function bool IsConcussiveForceActive() +{ + return Modifiers[7] > 1.5; +} + +simulated function float ApplyEffect( name Type, float Value, float Progress ) +{ + local ExtPlayerReplicationInfo MyPRI; + + MyPRI = ExtPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo); + + switch( Type ) + { + case 'KnockDown': + if( MyPRI != none ) + MyPRI.bConcussiveIsOn = IsConcussiveForceActive(); + break; + } + + return Super.ApplyEffect(Type, Value, Progress); +} + +function OnWaveEnded() +{ + bUsedSacrifice = false; +} + +simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCauser, optional KFPawn_Monster MyKFPM, optional KFPlayerController DamageInstigator, optional class DamageType, optional int HitZoneIdx ) +{ + if( BasePerk==None || (DamageType!=None && DamageType.Default.ModifierPerkList.Find(BasePerk)>=0) || (KFWeapon(DamageCauser)!=None && IsWeaponOnPerk(KFWeapon(DamageCauser))) ) + { + if( bDirectHit && class(DamageType) != none ) + InDamage *= 0.25; + + if( bCriticalHit && MyKFPM != none && IsCriticalHitZone( MyKFPM, HitZoneIdx ) ) + InDamage *= 0.5f; + } + + if( class(DamageType) != None ) + InDamage *= NukeDamageMult; + + Super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx); +} + +function bool IsCriticalHitZone( KFPawn TestPawn, int HitZoneIndex ) +{ + if( TestPawn != none && HitzoneIndex >= 0 && HitzoneIndex < TestPawn.HitZones.length ) + return TestPawn.HitZones[HitZoneIndex].DmgScale > 1.f; + + return false; +} + +simulated function ModifySpareAmmoAmount( KFWeapon KFW, out int PrimarySpareAmmo, optional const out STraderItem TraderItem, optional bool bSecondary ) +{ + if( KFW != None && KFWeap_Thrown_C4(KFW) != None ) + PrimarySpareAmmo += (1 + Modifiers[11]); + + Super.ModifySpareAmmoAmount( KFW, PrimarySpareAmmo, TraderItem, bSecondary ); +} + defaultproperties { PerkName="Demolitionist" @@ -8,15 +89,22 @@ defaultproperties DefTraitList.Add(class'Ext_TraitBoomWeld') DefTraitList.Add(class'Ext_TraitContactNade') DefTraitList.Add(class'Ext_TraitSupplyGren') + DefTraitList.Add(class'Ext_TraitSirenResistance') + DefTraitList.Add(class'Ext_TraitDemoDirectHit') + DefTraitList.Add(class'Ext_TraitDemoCriticalHit') + DefTraitList.Add(class'Ext_TraitDemoAOE') + DefTraitList.Add(class'Ext_TraitDemoReactiveArmor') + DefTraitList.Add(class'Ext_TraitDemoNuke') + DefTraitList.Add(class'Ext_TraitDemoProfessional') BasePerk=class'KFPerk_Demolitionist' PrimaryMelee=class'KFWeap_Knife_Demolitionist' PrimaryWeapon=class'KFWeap_GrenadeLauncher_HX25' - PerkGrenade=class'KFProj_DynamiteGrenade' + PerkGrenade=class'ExtProj_DynamiteGrenade' PrimaryWeaponDef=class'KFWeapDef_HX25' KnifeWeaponDef=class'KFWeapDef_Knife_Demo' - GrenadeWeaponDef=class'KFWeapDef_Grenade_Demo' + GrenadeWeaponDef=class'ExtWeapDef_Grenade_Demo' AutoBuyLoadOutPath=(class'KFWeapDef_HX25', class'KFWeapDef_M79', class'KFWeapDef_M16M203', class'KFWeapDef_RPG7') diff --git a/ServerExt/Classes/Ext_PerkFieldMedic.uc b/ServerExt/Classes/Ext_PerkFieldMedic.uc index 533a0cc..9a42c05 100644 --- a/ServerExt/Classes/Ext_PerkFieldMedic.uc +++ b/ServerExt/Classes/Ext_PerkFieldMedic.uc @@ -3,6 +3,35 @@ Class Ext_PerkFieldMedic extends Ext_PerkBase; var float RepairArmorRate,AirborneAgentHealRate; var byte AirborneAgentLevel; +var bool bHealingBoost,bHealingDamageBoost,bHealingShield; +var byte HealingShield; +var const float SelfHealingSurgePct,MaxHealingSpeedBoost,HealingSpeedBoostDuration,MaxHealingDamageBoost,HealingDamageBoostDuration,MaxHealingShield,HealingShieldDuration; +var float HealingSpeedBoostPct, HealingDamageBoostPct, HealingShieldPct; + +var bool bUseToxicDamage,bUseSlug,bUseAirborneAgent; + +var const class ToxicDmgTypeClass; + +simulated function ModifyDamageGiven( out int InDamage, optional Actor DamageCauser, optional KFPawn_Monster MyKFPM, optional KFPlayerController DamageInstigator, optional class DamageType, optional int HitZoneIdx ) +{ + local float TempDamage; + + TempDamage = InDamage; + + if( bUseSlug && WorldInfo.TimeDilation < 1.f && DamageType != none && ClassIsChildOf( DamageType, class'KFDT_Toxic' ) ) + TempDamage += InDamage * 100; + + InDamage = Round(TempDamage); + + Super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx); +} + +simulated function ModifyMagSizeAndNumber( KFWeapon KFW, out byte MagazineCapacity, optional array< Class > WeaponPerkClass, optional bool bSecondary=false, optional name WeaponClassname ) +{ + if( MagazineCapacity>2 && (KFW==None ? WeaponPerkClass.Find(BasePerk)>=0 : IsWeaponOnPerk(KFW)) ) // Skip boomstick for this. + MagazineCapacity = Min(MagazineCapacity*Modifiers[10], bSecondary ? 150 : 255); +} + function bool RepairArmor( Pawn HealTarget ) { local KFPawn_Human KFPH; @@ -25,7 +54,7 @@ function bool ModifyHealAmount( out float HealAmount ) } simulated function ModifyHealerRechargeTime( out float RechargeRate ) { - RechargeRate/=Modifiers[9]; + RechargeRate /= Clamp(Modifiers[9] * 2, 1.f, 3.f); } function CheckForAirborneAgent( KFPawn HealTarget, class DamType, int HealAmount ) @@ -52,6 +81,90 @@ function GiveMedicAirborneAgentHealth( KFPawn HealTarget, class DamT } } +static function class GetToxicDmgTypeClass() +{ + return default.ToxicDmgTypeClass; +} + +static function int ModifyToxicDmg(int ToxicDamage) +{ + local float TempDamage; + + TempDamage = float(ToxicDamage) * 1.2; + return FCeil( TempDamage ); +} + +function NotifyZedTimeStarted() +{ + local KFPawn_Human HPawn; + + HPawn = KFPawn_Human(PlayerOwner.Pawn); + + if( bUseAirborneAgent && HPawn != none && HPawn.IsAliveAndWell() ) + HPawn.StartAirBorneAgentEvent(); +} + +simulated function float GetSnarePower( optional class DamageType, optional byte HitZoneIdx ) +{ + if( bUseSlug && WorldInfo.TimeDilation < 1.f && class(DamageType)!=None && class(DamageType).Default.ModifierPerkList.Find(BasePerk)>=0 ) + return 100; + + return 0.f; +} + +simulated function bool GetHealingSpeedBoostActive() +{ + return bHealingBoost; +} +simulated function byte GetHealingSpeedBoost() +{ + return byte(HealingSpeedBoostPct); +} +simulated function byte GetMaxHealingSpeedBoost() +{ + return MaxHealingSpeedBoost; +} +simulated function float GetHealingSpeedBoostDuration() +{ + return HealingSpeedBoostDuration; +} +simulated function bool GetHealingDamageBoostActive() +{ + return bHealingDamageBoost; +} +simulated function byte GetHealingDamageBoost() +{ + return byte(HealingDamageBoostPct); +} +simulated function byte GetMaxHealingDamageBoost() +{ + return MaxHealingDamageBoost; +} +simulated function float GetHealingDamageBoostDuration() +{ + return HealingDamageBoostDuration; +} +simulated function bool GetHealingShieldActive() +{ + return bHealingShield; +} +simulated function byte GetHealingShield() +{ + return byte(HealingShieldPct); +} +simulated function byte GetMaxHealingShield() +{ + return MaxHealingShield; +} +simulated function float GetHealingShieldDuration() +{ + return HealingShieldDuration; +} +simulated function float GetSelfHealingSurgePct() +{ + return SelfHealingSurgePct; +} + defaultproperties { PerkName="Field Medic" @@ -59,11 +172,32 @@ defaultproperties DefTraitList.Remove(class'Ext_TraitMedicPistol') DefTraitList.Add(class'Ext_TraitAirborne') DefTraitList.Add(class'Ext_TraitWPMedic') - DefTraitList.Add(class'Ext_TraitArmorRep') - DefTraitList.Add(class'Ext_TraitToxicDart') + DefTraitList.Add(class'Ext_TraitAcidicCompound') + DefTraitList.Add(class'Ext_TraitMedBoost') + DefTraitList.Add(class'Ext_TraitMedDamBoost') + DefTraitList.Add(class'Ext_TraitMedShield') + DefTraitList.Add(class'Ext_TraitZedative') + DefTraitList.Add(class'Ext_TraitAirborneAgent') BasePerk=class'KFPerk_FieldMedic' HealExpUpNum=3 + HealingSpeedBoostPct = 10.0f + HealingDamageBoostPct = 5.0f + HealingShieldPct = 10.0f + + ToxicDmgTypeClass=class'KFDT_Toxic_AcidicRounds' + + SelfHealingSurgePct=0.1f + + MaxHealingSpeedBoost=30 + HealingSpeedBoostDuration=5.f + + MaxHealingDamageBoost=20 + HealingDamageBoostDuration=5.f + + MaxHealingShield=30 + HealingShieldDuration=5.0f + DefPerkStats(0)=(MaxValue=70) DefPerkStats(9)=(bHiddenConfig=false) // Heal efficiency DefPerkStats(15)=(bHiddenConfig=false) // Toxic resistance diff --git a/ServerExt/Classes/Ext_PerkGunslinger.uc b/ServerExt/Classes/Ext_PerkGunslinger.uc index eb0a698..81e80bd 100644 --- a/ServerExt/Classes/Ext_PerkGunslinger.uc +++ b/ServerExt/Classes/Ext_PerkGunslinger.uc @@ -9,6 +9,11 @@ replication bHasUberAmmo,bHasFanfire; } +simulated function bool GetUsingTactialReload( KFWeapon KFW ) +{ + return (IsWeaponOnPerk(KFW) ? Modifiers[5]<0.8 : false); +} + simulated function bool GetIsUberAmmoActive( KFWeapon KFW ) { return bHasUberAmmo && IsWeaponOnPerk(KFW) && WorldInfo.TimeDilation < 1.f; @@ -16,8 +21,15 @@ simulated function bool GetIsUberAmmoActive( KFWeapon KFW ) simulated function float GetZedTimeModifier( KFWeapon W ) { - if( bHasFanfire && WorldInfo.TimeDilation<1.f && IsWeaponOnPerk(W) && BasePerk.Default.ZedTimeModifyingStates.Find(W.GetStateName()) != INDEX_NONE ) - return 0.9f; + local name StateName; + + if( bHasFanfire && IsWeaponOnPerk( W ) ) + { + StateName = W.GetStateName(); + if( BasePerk.Default.ZedTimeModifyingStates.Find( StateName ) != INDEX_NONE || StateName == 'Reloading' ) + return 1.f; + } + return 0.f; } diff --git a/ServerExt/Classes/Ext_PerkSWAT.uc b/ServerExt/Classes/Ext_PerkSWAT.uc index 805c87c..35626a3 100644 --- a/ServerExt/Classes/Ext_PerkSWAT.uc +++ b/ServerExt/Classes/Ext_PerkSWAT.uc @@ -2,12 +2,13 @@ Class Ext_PerkSWAT extends Ext_PerkBase; var byte RepTacticalMove; var float MoveSpeedMods[3]; +var bool bRapidAssault; replication { // Things the server should send to the client. if ( true ) - RepTacticalMove; + RepTacticalMove, bRapidAssault; } simulated function float GetIronSightSpeedModifier( KFWeapon KFW ) @@ -15,6 +16,18 @@ simulated function float GetIronSightSpeedModifier( KFWeapon KFW ) return ((RepTacticalMove>0 && IsWeaponOnPerk(KFW)) ? MoveSpeedMods[RepTacticalMove-1] : 1.f); } +simulated function bool GetIsUberAmmoActive( KFWeapon KFW ) +{ + return bRapidAssault && IsWeaponOnPerk(KFW) && WorldInfo.TimeDilation < 1.f; +} + +simulated function float GetZedTimeModifier( KFWeapon W ) +{ + if( bRapidAssault && WorldInfo.TimeDilation<1.f && IsWeaponOnPerk(W) && BasePerk.Default.ZedTimeModifyingStates.Find(W.GetStateName()) != INDEX_NONE ) + return 0.51f; + return 0.f; +} + defaultproperties { PerkName="SWAT" @@ -23,6 +36,7 @@ defaultproperties DefTraitList.Add(class'Ext_TraitHeavyArmor') DefTraitList.Add(class'Ext_TraitTacticalMove') DefTraitList.Add(class'Ext_TraitSWATEnforcer') + DefTraitList.Add(class'Ext_TraitRapidAssault') BasePerk=class'KFPerk_SWAT' PrimaryMelee=class'KFWeap_Knife_SWAT' diff --git a/ServerExt/Classes/Ext_PerkSupport.uc b/ServerExt/Classes/Ext_PerkSupport.uc index bb76bf6..56821f0 100644 --- a/ServerExt/Classes/Ext_PerkSupport.uc +++ b/ServerExt/Classes/Ext_PerkSupport.uc @@ -1,12 +1,45 @@ Class Ext_PerkSupport extends Ext_PerkBase; +var bool bUseAPShot,bUsePerforate,bCanRepairDoors; +var float APShotMul; + +simulated function bool GetUsingTactialReload( KFWeapon KFW ) +{ + return (IsWeaponOnPerk(KFW) ? Modifiers[5]<0.75 : false); +} + +function bool CanRepairDoors() +{ + return bCanRepairDoors; +} + +simulated function float GetPenetrationModifier( byte Level, class DamageType, optional bool bForce ) +{ + local float PenetrationPower; + if( !bForce && (DamageType == none || ( DamageType!=None && DamageType.Default.ModifierPerkList.Find(BasePerk) == INDEX_NONE ))) + return 0; + + PenetrationPower = bUseAPShot ? APShotMul : 0.f; + PenetrationPower = IsPerforateActive() ? 40.f : PenetrationPower; + + return PenetrationPower; +} + +simulated function bool IsPerforateActive() +{ + return bUsePerforate && WorldInfo.TimeDilation < 1.f; +} + defaultproperties { PerkName="Support" PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_Support' + DefTraitList.Add(class'Ext_TraitGrenadeSUpg') DefTraitList.Add(class'Ext_TraitWPSupp') DefTraitList.Add(class'Ext_TraitSupply') - DefTraitList(0)=class'Ext_TraitGrenadeSUpg' + DefTraitList.Add(class'Ext_TraitAPShots') + DefTraitList.Add(class'Ext_TraitDoorRepair') + DefTraitList.Add(class'Ext_TraitPenetrator') BasePerk=class'KFPerk_Support' WeldExpUpNum=80 diff --git a/ServerExt/Classes/Ext_TGroupZEDTime.uc b/ServerExt/Classes/Ext_TGroupZEDTime.uc new file mode 100644 index 0000000..66f513d --- /dev/null +++ b/ServerExt/Classes/Ext_TGroupZEDTime.uc @@ -0,0 +1,6 @@ +class Ext_TGroupZEDTime extends Ext_TGroupBase; + +defaultproperties +{ + GroupInfo="ZED Time" +} \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitAPShots.uc b/ServerExt/Classes/Ext_TraitAPShots.uc new file mode 100644 index 0000000..26c44a6 --- /dev/null +++ b/ServerExt/Classes/Ext_TraitAPShots.uc @@ -0,0 +1,34 @@ +Class Ext_TraitAPShots extends Ext_TraitBase; + +static function ApplyEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkSupport(Perk).APShotMul = 1 + (0.25 + (((float(Level) - 1.f) * 5.f) / 100.f)); +} + +static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkSupport(Perk).APShotMul = 0.f; +} + +static function TraitActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkSupport(Perk).bUseAPShot = true; +} + +static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkSupport(Perk).bUseAPShot = false; +} + +defaultproperties +{ + SupportedPerk=class'Ext_PerkSupport' + TraitName="Armor Piercing Rounds" + NumLevels=4 + DefLevelCosts(0)=15 + DefLevelCosts(1)=30 + DefLevelCosts(2)=40 + DefLevelCosts(3)=50 + DefMinLevel=15 + Description="Greatly increases penetration with perk weapons! The penetration strength is increased by every level in:|Lv1-4: 25%, 30%, 35%, 40%" +} \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitAcidicCompound.uc b/ServerExt/Classes/Ext_TraitAcidicCompound.uc new file mode 100644 index 0000000..b6687d4 --- /dev/null +++ b/ServerExt/Classes/Ext_TraitAcidicCompound.uc @@ -0,0 +1,19 @@ +Class Ext_TraitAcidicCompound extends Ext_TraitBase; + +static function TraitActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkFieldMedic(Perk).bUseToxicDamage = true; +} +static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkFieldMedic(Perk).bUseToxicDamage = false; +} + +defaultproperties +{ + SupportedPerk=class'Ext_PerkFieldMedic' + TraitName="Acidic Compound" + DefLevelCosts(0)=15 + DefMinLevel=5 + Description="When activated medic weapons have a chance to poison zeds." +} \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitAirborneAgent.uc b/ServerExt/Classes/Ext_TraitAirborneAgent.uc new file mode 100644 index 0000000..5b94e1e --- /dev/null +++ b/ServerExt/Classes/Ext_TraitAirborneAgent.uc @@ -0,0 +1,50 @@ +Class Ext_TraitAirborneAgent extends Ext_TraitBase; + +static function string GetPerkDescription() +{ + local string S; + + S = Super.GetPerkDescription(); + S $= "|Trait requires prestige level: #{FF4000}1"; + return S; +} + +static function bool MeetsRequirements( byte Lvl, Ext_PerkBase Perk ) +{ + local int i; + + if( Perk.CurrentLevel=0 ) + return (Perk.PerkStats[i].CurrentValue>=30); + } + + return true; +} + +static function TraitActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + local ExtPlayerReplicationInfo MyPRI; + + MyPRI = ExtPlayerReplicationInfo(Perk.PlayerOwner.PlayerReplicationInfo); + if( MyPRI == None ) + return; + + MyPRI.bNukeIsOn = true; + MyPRI.NukeTimeMult = 1.0 + (((float(Level) - 1.f) * 2.f) / 100.f); + + Ext_PerkDemolition(Perk).NukeDamageMult = 1.0 + (((float(Level) - 1.f) * 5.f) / 100.f); +} + +static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + local ExtPlayerReplicationInfo MyPRI; + + MyPRI = ExtPlayerReplicationInfo(Perk.PlayerOwner.PlayerReplicationInfo); + if( MyPRI == None ) + return; + + MyPRI.bNukeIsOn = false; + MyPRI.NukeTimeMult = 1.0; + + Ext_PerkDemolition(Perk).NukeDamageMult = 1.0; +} + +defaultproperties +{ + SupportedPerk=class'Ext_PerkDemolition' + TraitGroup=class'Ext_TGroupZEDTime' + TraitName="ZED Time - Nuke" + NumLevels=4 + DefLevelCosts(0)=100 + DefLevelCosts(1)=150 + DefLevelCosts(2)=200 + DefLevelCosts(3)=250 + DefMinLevel=100 + Description="Demo weapons will spawn a nuke during ZED time. |Each level increases the damage & time of the nuke field. ||-REQUIREMENT: Damage bonus trait needs to have at least 30 points!" +} \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitDemoProfessional.uc b/ServerExt/Classes/Ext_TraitDemoProfessional.uc new file mode 100644 index 0000000..fae3380 --- /dev/null +++ b/ServerExt/Classes/Ext_TraitDemoProfessional.uc @@ -0,0 +1,46 @@ +Class Ext_TraitDemoProfessional extends Ext_TraitBase; + +static function string GetPerkDescription() +{ + local string S; + + S = Super.GetPerkDescription(); + S $= "|Trait requires prestige level: #{FF4000}1"; + return S; +} + +static function bool MeetsRequirements( byte Lvl, Ext_PerkBase Perk ) +{ + local int i; + + if( Perk.CurrentLevel=0 ) + return (Perk.PerkStats[i].CurrentValue>=30); + } + + return true; +} + +static function TraitActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkDemolition(Perk).bProfessionalActive = true; +} + +static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkDemolition(Perk).bProfessionalActive = false; +} + +defaultproperties +{ + SupportedPerk=class'Ext_PerkDemolition' + TraitName="Demolitions Specialist" + DefLevelCosts(0)=100 + DefMinLevel=100 + Description="Projectiles from demo weapons will never be duds. ||-REQUIREMENT: Reload bonus trait needs to have at least 30 points!" +} \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitDemoReactiveArmor.uc b/ServerExt/Classes/Ext_TraitDemoReactiveArmor.uc new file mode 100644 index 0000000..8b02971 --- /dev/null +++ b/ServerExt/Classes/Ext_TraitDemoReactiveArmor.uc @@ -0,0 +1,19 @@ +Class Ext_TraitDemoReactiveArmor extends Ext_TraitBase; + +static function TraitActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkDemolition(Perk).bCanUseSacrifice = true; +} +static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkDemolition(Perk).bCanUseSacrifice = false; +} + +defaultproperties +{ + SupportedPerk=class'Ext_PerkDemolition' + TraitName="Reactive Armor" + DefLevelCosts(0)=25 + DefMinLevel=45 + Description="When near death you will explode and leave yourself with 5 health" +} \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitDoorRepair.uc b/ServerExt/Classes/Ext_TraitDoorRepair.uc new file mode 100644 index 0000000..16ffcef --- /dev/null +++ b/ServerExt/Classes/Ext_TraitDoorRepair.uc @@ -0,0 +1,21 @@ +Class Ext_TraitDoorRepair extends Ext_TraitBase; + +static function TraitActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkSupport(Perk).bCanRepairDoors = true; +} + +static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkSupport(Perk).bCanRepairDoors = false; +} + +defaultproperties +{ + SupportedPerk=class'Ext_PerkSupport' + TraitName="Door Repair" + NumLevels=1 + DefLevelCosts(0)=30 + DefMinLevel=25 + Description="Allows you to repair doors using the welder." +} \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitFanfire.uc b/ServerExt/Classes/Ext_TraitFanfire.uc index b8d2de7..ce05902 100644 --- a/ServerExt/Classes/Ext_TraitFanfire.uc +++ b/ServerExt/Classes/Ext_TraitFanfire.uc @@ -12,6 +12,7 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkGunslinger' + TraitGroup=class'Ext_TGroupZEDTime' TraitName="ZED TIME - Fanfire" DefLevelCosts(0)=30 Description="Make perked weapons fire at normal firerate during ZED-time." diff --git a/ServerExt/Classes/Ext_TraitMachineGunner.uc b/ServerExt/Classes/Ext_TraitMachineGunner.uc new file mode 100644 index 0000000..07f8624 --- /dev/null +++ b/ServerExt/Classes/Ext_TraitMachineGunner.uc @@ -0,0 +1,39 @@ +Class Ext_TraitMachineGunner extends Ext_TraitBase; + +static function string GetPerkDescription() +{ + local string S; + + S = Super.GetPerkDescription(); + S $= "|Trait requires prestige level: #{FF4000}2"; + return S; +} + +static function bool MeetsRequirements( byte Lvl, Ext_PerkBase Perk ) +{ + if( Perk.CurrentLevel=0 ) + return (Perk.PerkStats[i].CurrentValue>=30); + } + + return true; +} + +static function TraitActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkCommando(Perk).bUseProfessional = true; +} + +static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkCommando(Perk).bUseProfessional = false; +} + +defaultproperties +{ + SupportedPerk=class'Ext_PerkCommando' + TraitGroup=class'Ext_TGroupZEDTime' + TraitName="ZED TIME - Tactician" + NumLevels=1 + DefLevelCosts(0)=30 + DefMinLevel=35 + Description="During Zed time, you reload perk weapons at full speed and switch perk weapons twice as fast! ||-REQUIREMENT: Damage bonus trait needs to have at least 30 points!" +} \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitUberAmmo.uc b/ServerExt/Classes/Ext_TraitUberAmmo.uc index f51f1b2..f203908 100644 --- a/ServerExt/Classes/Ext_TraitUberAmmo.uc +++ b/ServerExt/Classes/Ext_TraitUberAmmo.uc @@ -12,6 +12,7 @@ static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_Tra defaultproperties { SupportedPerk=class'Ext_PerkGunslinger' + TraitGroup=class'Ext_TGroupZEDTime' TraitName="ZED TIME - Uber Ammo" DefLevelCosts(0)=30 Description="Gives player unlimited ammunition for perked weapons during ZED-time." diff --git a/ServerExt/Classes/Ext_TraitZED_Summon.uc b/ServerExt/Classes/Ext_TraitZED_Summon.uc index 827b1ca..9d90cee 100644 --- a/ServerExt/Classes/Ext_TraitZED_Summon.uc +++ b/ServerExt/Classes/Ext_TraitZED_Summon.uc @@ -176,7 +176,7 @@ defaultproperties DefZedTypes.Add((Zeds=(Class'KFPawn_ZedBloat',Class'KFPawn_ZedStalker',Class'KFPawn_ZedGorefast'))) DefZedTypes.Add((Zeds=(Class'KFPawn_ZedHusk',Class'KFPawn_ZedSirenX',Class'KFPawn_ZedScrake'))) DefZedTypes.Add((Zeds=(Class'KFPawn_ZedSirenX',Class'KFPawn_ZedFleshpound',Class'KFPawn_ZedScrake'))) - DefZedTypes.Add((Zeds=(Class'KFPawn_ZedHansFriendlyTest'))) + DefZedTypes.Add((Zeds=(Class'ExtPawn_ZedHans_Pet'))) WebConfigs.Add((PropType=2,PropName="ZedTypes",UIName="Zed Types",UIDesc="Type of zeds each level can spawn (separate types with a comma)",NumElements=-1)) WebConfigs.Add((PropType=0,PropName="ZedRespawnTime",UIName="Zed RespawnTime",UIDesc="Time in seconds it takes for zeds to respawn")) diff --git a/ServerExt/Classes/Ext_TraitZedTExt.uc b/ServerExt/Classes/Ext_TraitZedTExt.uc new file mode 100644 index 0000000..5d268b2 --- /dev/null +++ b/ServerExt/Classes/Ext_TraitZedTExt.uc @@ -0,0 +1,26 @@ +Class Ext_TraitZedTExt extends Ext_TraitBase; + +static function ApplyEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkCommando(Perk).ZTExtCount = Level; +} + +static function CancelEffectOn( KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkCommando(Perk).ZTExtCount = Level; +} + +defaultproperties +{ + SupportedPerk=class'Ext_PerkCommando' + TraitName="ZED Time Extensions" + NumLevels=6 + DefLevelCosts(0)=15 + DefLevelCosts(1)=25 + DefLevelCosts(2)=35 + DefLevelCosts(3)=45 + DefLevelCosts(4)=55 + DefLevelCosts(5)=65 + DefMinLevel=15 + Description="Adds ZED Time extensions to your perk. The amount of extensions is increased by 1 every level" +} \ No newline at end of file diff --git a/ServerExt/Classes/Ext_TraitZedative.uc b/ServerExt/Classes/Ext_TraitZedative.uc new file mode 100644 index 0000000..bde7b08 --- /dev/null +++ b/ServerExt/Classes/Ext_TraitZedative.uc @@ -0,0 +1,48 @@ +Class Ext_TraitZedative extends Ext_TraitBase; + +static function string GetPerkDescription() +{ + local string S; + + S = Super.GetPerkDescription(); + S $= "|Trait requires prestige level: #{FF4000}2"; + return S; +} + +static function bool MeetsRequirements( byte Lvl, Ext_PerkBase Perk ) +{ + local int i; + + if( Perk.CurrentLevel=0 ) + return (Perk.PerkStats[i].CurrentValue>=25); + } + + return true; +} + +static function TraitActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkFieldMedic(Perk).bUseSlug = true; +} + +static function TraitDeActivate( Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data ) +{ + Ext_PerkFieldMedic(Perk).bUseSlug = false; +} + +defaultproperties +{ + SupportedPerk=class'Ext_PerkFieldMedic' + TraitGroup=class'Ext_TGroupZEDTime' + TraitName="ZED TIME - Zedative" + NumLevels=1 + DefLevelCosts(0)=50 + DefMinLevel=65 + Description="During Zed time, damaging Zeds with perk weapons will slow them 30% and do massive amounts of poison damage. ||-REQUIREMENT: Healing bonus trait needs to have at least 25 points!" +} \ No newline at end of file diff --git a/ServerExt/Classes/KFExtendedHUD.uc b/ServerExt/Classes/KFExtendedHUD.uc index 24f91cf..84a202e 100644 --- a/ServerExt/Classes/KFExtendedHUD.uc +++ b/ServerExt/Classes/KFExtendedHUD.uc @@ -23,6 +23,23 @@ struct FKillMessageType }; var transient array KillMessages; +var int HealthBarFullVisDist, HealthBarCutoffDist; +var transient float BestPetXL, BestPetYL; + +struct DamageInfo +{ + var int Damage; + var float HitTime; + var Vector HitLocation; + var byte Type; + var float RandX, RandY; + var color FontColor; +}; +const DAMAGEPOPUP_COUNT = 32; +var DamageInfo DamagePopups[32]; +var int NextDamagePopupIndex; +var float DamagePopupFadeOutTime; + struct FNewItemEntry { var Texture2D Icon; @@ -31,14 +48,6 @@ struct FNewItemEntry }; var transient array NewItems; -struct FNumberedMsg -{ - var int Amount; - var vector Pos; - var float Time; - var byte Type; -}; -var array Numbers; var ExtPlayerReplicationInfo EPRI; var transient KF2GUIController GUIController; var transient GUIStyleBase GUIStyle; @@ -150,9 +159,14 @@ final function ShowProgressMsg( string S, optional bool bDis ) static final function string GetNameOf( class Other ) { local string S; + local class KFM; if( Class(Other)!=None ) return Class(Other).Default.ZombieName; + + KFM = class(Other); + if( KFM!=None && KFM.default.LocalizationKey != '' ) + return Localize("Zeds", string(KFM.default.LocalizationKey), "KFGame"); if( Other.Default.MenuName!="" ) return Other.Default.MenuName; @@ -242,8 +256,7 @@ event PostRender() GUIStyle.Canvas = Canvas; GUIStyle.PickDefaultFontSize(Canvas.ClipY); - if( Numbers.Length>0 ) - DrawNumberMsg(); + DrawDamage(); //RenderKFHUD(); // TODO later... super.PostRender(); @@ -439,12 +452,19 @@ function DrawHUD() local KFPawn_Monster M; local vector V; local bool bSpec; + local array VisibleHumanPlayers; + local array HiddenHumanPlayers; + local vector ViewLocation,PawnLocation; + local rotator ViewRotation; Super(HUD).DrawHUD(); // Draw the crosshair for casual mode - if( bDrawCrosshair || bForceDrawCrosshair ) - DrawCrosshair(); + if( bDrawCrosshair || bForceDrawCrosshair || (KFPlayerOwner != none && KFPlayerOwner.GetTeamNum() == 255) ) + { + if( KFPlayerOwner != none && !KFPlayerOwner.bCinematicMode ) + DrawCrosshair(); + } bSpec = (PlayerOwner.PlayerReplicationInfo!=None && PlayerOwner.PlayerReplicationInfo.bOnlySpectator); if( bSpec || PlayerOwner.GetTeamNum()==0 ) @@ -452,9 +472,18 @@ function DrawHUD() //Friendly player status if( !class'ExtPlayerController'.Default.bHideNameBeacons ) { + if( KFPlayerOwner != none ) + { + KFPlayerOwner.GetPlayerViewPoint( ViewLocation, ViewRotation ); + } + Canvas.EnableStencilTest(true); foreach WorldInfo.AllPawns(class'KFPawn', KFPH) { + if( KFPH == None ) + continue; + + H = KFPawn_Human(KFPH); if( KFPH.PlayerReplicationInfo!=None && KFPH.PlayerReplicationInfo.Team!=None && KFPH.PlayerReplicationInfo.Team.TeamIndex==0 ) { V = KFPH.Location + KFPH.MTO_PhysSmoothOffset + KFPH.CylinderComponent.CollisionHeight * vect(0,0,1); @@ -464,13 +493,29 @@ function DrawHUD() { if((WorldInfo.TimeSeconds - KFPH.Mesh.LastRenderTime) < 0.4f && (ThisDot > 0 && ThisDot < 1.0) ) { - if( KFPawn_Human(KFPH)!=None ) - DrawFriendlyHUD(KFPawn_Human(KFPH)); + if( H!=None ) + { + DrawFriendlyHUD(H); + VisibleHumanPlayers.AddItem( H.PlayerReplicationInfo ); + } else DrawMonsterHUD(KFPH); } + else if( H != None ) + { + HiddenHumanPlayers.Insert( 0, 1 ); + HiddenHumanPlayers[0].HumanPawn = H; + HiddenHumanPlayers[0].HumanPRI = H.PlayerReplicationInfo; + } } } } + + // Draw hidden players + CheckAndDrawHiddenPlayerIcons( VisibleHumanPlayers, HiddenHumanPlayers ); + + // Draw last remaining zeds + CheckAndDrawRemainingZedIcons(); + Canvas.EnableStencilTest(false); if( bSpec ) @@ -491,14 +536,21 @@ function DrawHUD() DotScale = Canvas.ClipX*0.2f; foreach WorldInfo.AllPawns(class'KFPawn_Human', H) { - ThisDot = (PLCameraDir Dot H.Location) - PLCameraDot; + PawnLocation = H.Location; + + if( IsZero( PawnLocation ) ) + { + continue; + } + + ThisDot = (PLCameraDir Dot PawnLocation) - PLCameraDot; if( H.IsAliveAndWell() && ThisDot>0.f && ThisDot<10000.f ) { - V = Canvas.Project(H.Location); + V = Canvas.Project(PawnLocation); if( V.X<-100 || V.X>(Canvas.SizeX+100) || V.Y<-100 || V.Y>(Canvas.SizeY+100) ) continue; Canvas.DrawColor = GetHPColorScale(H); - if( PlayerOwner.FastTrace(H.Location,PLCameraLoc) ) + if( PlayerOwner.FastTrace(PawnLocation,PLCameraLoc) ) ThisDot*=1.75f; ThisDot = (DotScale/ThisDot)*350.f; Canvas.SetPos(V.X-ThisDot*0.25f,V.Y-ThisDot*0.5f); @@ -521,6 +573,48 @@ function DrawHUD() Canvas.Font = GetFontSizeIndex(0); DrawActorOverlays(PLCameraLoc, PLCameraRot); } + +function DrawHiddenHumanPlayerIcon( PlayerReplicationInfo PRI, vector IconWorldLocation ) +{ + local vector ScreenPos; + local float IconSizeMult; + local KFPlayerReplicationInfo KFPRI; + local Texture2D PlayerIcon; + local Color PerkColor; + local ExtPlayerReplicationInfo ExtPRI; + local Texture2D HumanIcon; + + KFPRI = KFPlayerReplicationInfo(PRI); + if( KFPRI == None ) + return; + + // Project world pos to canvas + ScreenPos = Canvas.Project( IconWorldLocation + vect(0,0,2.2f) * class'KFPAwn_Human'.default.CylinderComponent.CollisionHeight ); + + // Fudge by icon size + IconSizeMult = PlayerStatusIconSize * FriendlyHudScale * 0.5f; + ScreenPos.X -= IconSizeMult; + ScreenPos.Y -= IconSizeMult; + + if( ScreenPos.X < 0 || ScreenPos.X > Canvas.SizeX || ScreenPos.Y < 0 || ScreenPos.Y > Canvas.SizeY ) + { + return; + } + + ExtPRI = ExtPlayerReplicationInfo(KFPRI); + if( ExtPRI == None ) + return; + + HumanIcon = ExtPRI.ECurrentPerk != None ? ExtPRI.ECurrentPerk.Default.PerkIcon : GenericHumanIconTexture; + PlayerIcon = PlayerOwner.GetTeamNum() == 0 ? HumanIcon : GenericHumanIconTexture; + PerkColor = ExtPRI.HUDPerkColor; + + // Draw human icon + Canvas.SetDrawColor( PerkColor.R, PerkColor.G, PerkColor.B, PerkColor.A ); + Canvas.SetPos( ScreenPos.X, ScreenPos.Y ); + Canvas.DrawTile( PlayerIcon, PlayerStatusIconSize * FriendlyHudScale, PlayerStatusIconSize * FriendlyHudScale, 0, 0, 256, 256 ); +} + simulated static final function color GetHPColorScale( Pawn P ) { local color C; @@ -562,12 +656,12 @@ simulated function DrawFriendlyHUDZ( KFPawn_Monster KFPH ) //Draw health bar Percentage = float(KFPH.Health) / float(KFPH.HealthMax); - DrawKFBar(Percentage, BarLength, BarHeight, ScreenPos.X - (BarLength *0.5f), ScreenPos.Y, HealthColor); + DrawPlayerInfoBar(KFPH, Percentage, BarLength, BarHeight, ScreenPos.X - (BarLength *0.5f), ScreenPos.Y, HealthColor); //Draw player name (Top) FontScale = class'KFGameEngine'.Static.GetKFFontScale() * FriendlyHudScale; Canvas.Font = class'KFGameEngine'.Static.GetKFCanvasFont(); - Canvas.SetDrawColorStruct(PlayerBarTextColor); + Canvas.SetDrawColorStruct(DrawToDistance(KFPH, PlayerBarTextColor)); Canvas.SetPos(ScreenPos.X - (BarLength *0.5f), ScreenPos.Y - BarHeight * 2); Canvas.DrawText( KFPH.PlayerReplicationInfo.PlayerName,,FontScale,FontScale, MyFontRenderInfo ); } @@ -598,17 +692,12 @@ simulated function DrawFriendlyHUD( KFPawn_Human KFPH ) return; //Draw health bar - if( ExtHumanPawn(KFPH)!=None ) - DrawKFHealthBar(ExtHumanPawn(KFPH), BarLength, BarHeight, ScreenPos.X - (BarLength *0.5f), ScreenPos.Y); - else - { - Percentage = FMin(float(KFPH.Health) / float(KFPH.HealthMax),1.f); - DrawKFBar(Percentage, BarLength, BarHeight, ScreenPos.X - (BarLength *0.5f), ScreenPos.Y, HealthColor); - } + Percentage = FMin(float(KFPH.Health) / float(KFPH.HealthMax),1.f); + DrawPlayerInfoBar(KFPH, Percentage, BarLength, BarHeight, ScreenPos.X - (BarLength *0.5f), ScreenPos.Y, HealthColor, true); //Draw armor bar Percentage = FMin(float(KFPH.Armor) / float(KFPH.MaxArmor),1.f); - DrawKFBar(Percentage, BarLength, BarHeight, ScreenPos.X - (BarLength *0.5f), ScreenPos.Y - BarHeight, ArmorColor); + DrawPlayerInfoBar(KFPH, Percentage, BarLength, BarHeight, ScreenPos.X - (BarLength *0.5f), ScreenPos.Y - BarHeight, ArmorColor); //Draw player name (Top) FontScale = class'KFGameEngine'.Static.GetKFFontScale() * FriendlyHudScale; @@ -624,20 +713,22 @@ simulated function DrawFriendlyHUD( KFPawn_Human KFPH ) S = S$" ("$KFPRI.GetAdminNameAbr()$")"; Canvas.DrawColor = KFPRI.GetAdminColorC(); } - else Canvas.DrawColor = KFPRI.HUDPerkColor; + else Canvas.DrawColor = WhiteColor; if( bMeAdmin && KFPRI.FixedData>0 ) { Canvas.SetDrawColor(255,0,0,255); S $= " -"$KFPRI.GetDesc(); } + Canvas.DrawColor = DrawToDistance(KFPH, Canvas.DrawColor); + Canvas.SetPos(ScreenPos.X - (BarLength *0.5f), ScreenPos.Y - BarHeight * 3); Canvas.DrawText( S,,FontScale,FontScale, MyFontRenderInfo ); if( KFPRI.ECurrentPerk!=none ) { //draw perk icon - Canvas.DrawColor = KFPRI.HUDPerkColor; + Canvas.DrawColor = DrawToDistance(KFPH, KFPRI.HUDPerkColor); Canvas.SetPos(ScreenPos.X - (BarLength * 0.75), ScreenPos.Y - BarHeight * 2); Canvas.DrawRect(PlayerStatusIconSize*FriendlyHudScale,PlayerStatusIconSize*FriendlyHudScale,KFPRI.ECurrentPerk.default.PerkIcon); @@ -647,7 +738,7 @@ simulated function DrawFriendlyHUD( KFPawn_Human KFPH ) if( KFPRI.HasSupplier!=None ) { - Canvas.DrawColor = (KFPlayerOwner.Pawn==None || KFPRI.CanUseSupply(KFPlayerOwner.Pawn)) ? SupplierUsableColor : SupplierActiveColor; + Canvas.DrawColor = DrawToDistance(KFPH, (KFPlayerOwner.Pawn==None || KFPRI.CanUseSupply(KFPlayerOwner.Pawn)) ? SupplierUsableColor : SupplierActiveColor); Canvas.SetPos( ScreenPos.X + BarLength * 0.5f, ScreenPos.Y - BarHeight * 2 ); Canvas.DrawRect( PlayerStatusIconSize*FriendlyHudScale, PlayerStatusIconSize*FriendlyHudScale, KFPRI.HasSupplier.Default.SupplyIcon); } @@ -663,12 +754,10 @@ simulated function DrawFriendlyHUD( KFPawn_Human KFPH ) Canvas.DrawText( KFPRI.CurrentPerkClass.default.PerkName,,FontScale,FontScale, MyFontRenderInfo ); } } -simulated final function DrawKFHealthBar( ExtHumanPawn P, float BarLength, float BarHeight, float XPos, float YPos ) +simulated final function DrawPlayerInfoBar( KFPawn P, float BarPercentage, float BarLength, float BarHeight, float XPos, float YPos, Color BarColor, optional bool bDrawingHealth ) { - local float BarPercentage; - //background for status bar - Canvas.SetDrawColorStruct(PlayerBarBGColor); + Canvas.SetDrawColorStruct(DrawToDistance(P, PlayerBarBGColor)); Canvas.SetPos(XPos, YPos); Canvas.DrawTileStretched(PlayerStatusBarBGTexture, BarLength, BarHeight, 0, 0, 32, 32); @@ -678,18 +767,17 @@ simulated final function DrawKFHealthBar( ExtHumanPawn P, float BarLength, float BarHeight-=2; //Forground for status bar. - BarPercentage = FMin(float(P.Health) / float(P.HealthMax),1.f); - Canvas.SetDrawColorStruct(HealthColor); + Canvas.SetDrawColorStruct(DrawToDistance(P, BarColor)); Canvas.SetPos(XPos, YPos); Canvas.DrawTileStretched(PlayerStatusBarBGTexture, BarLength * BarPercentage, BarHeight, 0, 0, 32, 32); - if( P.Health0 ) + if( bDrawingHealth && ExtHumanPawn(P) != None && P.Health0 ) { // Draw to-regen bar. XPos+=(BarLength * BarPercentage); - BarPercentage = FMin(float(P.RepRegenHP) / float(P.HealthMax),1.f-BarPercentage); - - Canvas.SetDrawColor(255,128,128,255); + BarPercentage = FMin(float(ExtHumanPawn(P).RepRegenHP) / float(P.HealthMax),1.f-BarPercentage); + + Canvas.DrawColor = DrawToDistance(P, MakeColor(255,128,128,255)); Canvas.SetPos(XPos, YPos); Canvas.DrawTileStretched(PlayerStatusBarBGTexture, BarLength * BarPercentage, BarHeight, 0, 0, 32, 32); } @@ -720,12 +808,12 @@ simulated function DrawMonsterHUD( KFPawn KFPH ) //Draw health bar Percentage = FMin(float(KFPH.Health) / float(KFPH.HealthMax),1.f); - DrawKFBar(Percentage, BarLength, BarHeight, ScreenPos.X - (BarLength *0.5f), ScreenPos.Y, HealthColor); + DrawPlayerInfoBar(KFPH, Percentage, BarLength, BarHeight, ScreenPos.X - (BarLength *0.5f), ScreenPos.Y, HealthColor); //Draw player name (Top) FontScale = class'KFGameEngine'.Static.GetKFFontScale() * FriendlyHudScale; Canvas.Font = class'KFGameEngine'.Static.GetKFCanvasFont(); - Canvas.DrawColor = (PRI.OwnerPRI==PlayerOwner.PlayerReplicationInfo ? MakeColor(32,250,32,255) : MakeColor(250,32,32,255)); + Canvas.DrawColor = DrawToDistance(KFPH, (PRI.OwnerPRI==PlayerOwner.PlayerReplicationInfo ? MakeColor(32,250,32,255) : MakeColor(250,32,32,255))); Canvas.SetPos(ScreenPos.X - (BarLength *0.5f), ScreenPos.Y - BarHeight * 3); Canvas.DrawText( PRI.PlayerName,,FontScale,FontScale, MyFontRenderInfo ); @@ -739,17 +827,25 @@ simulated function DrawPetInfo() local string S; local int i; - Canvas.DrawColor = MakeColor(32,250,32,255); - X = Canvas.ClipX*0.99; - Y = Canvas.ClipY*0.74; + X = Canvas.ClipX*0.165; + Y = Canvas.ClipY*0.925; Canvas.Font = GUIStyle.PickFont(GUIStyle.DefaultFontSize,Sc); Canvas.TextSize("ABC",XL,YS,Sc,Sc); - S = "Current Pet:"; + S = "Current Pet(s)"; Canvas.TextSize(S,XL,YL,Sc,Sc); Y-=(YS*MyCurrentPet.Length); - Canvas.SetPos(X-XL,Y); + + Canvas.SetDrawColor(120,0,0,145); + GUIStyle.DrawRectBox( X, Y, BestPetXL * 1.04, YL, 4 ); + + Canvas.DrawColor = MakeColor(255,255,255,255); + Canvas.SetPos(X,Y); Canvas.DrawText(S,,Sc,Sc); + Canvas.SetDrawColor(8,8,8,145); + GUIStyle.DrawRectBox( X, Y + YS, BestPetXL * 1.04, YL * MyCurrentPet.Length, 4 ); + + Canvas.DrawColor = MakeColor(32,250,32,255); for( i=0; i BestPetXL ) + BestPetXL = XL; + if( YL > BestPetYL ) + BestPetYL = YL; } } +function Color DrawToDistance(KFPawn Pawn, Color DrawColor) +{ + local float Dist, fZoom; + + Dist = VSize(Pawn.Location - PLCameraLoc) * 0.5; + if ( Dist <= HealthBarFullVisDist || PlayerOwner.PlayerReplicationInfo.bOnlySpectator ) + fZoom = 1.0; + else fZoom = FMax(1.0 - (Dist - HealthBarFullVisDist) / (HealthBarCutoffDist - HealthBarFullVisDist), 0.0); + + DrawColor.A = Clamp(255 * fZoom, 90, 255); + + return DrawColor; +} + final function AddNumberMsg( int Amount, vector Pos, byte Type ) { - local int i; - - i = Numbers.Length; - if( i>15 ) // don't overflow this that much... - { - Numbers.Remove(0,1); - i = Numbers.Length; - } - Numbers.Length = i+1; - Numbers[i].Amount = Amount; - Numbers[i].Pos = Pos; - Numbers[i].Time = WorldInfo.TimeSeconds; - Numbers[i].Type = Type; + local Color C; + + DamagePopups[NextDamagePopupIndex].Damage = Amount; + DamagePopups[NextDamagePopupIndex].HitTime = WorldInfo.TimeSeconds; + DamagePopups[NextDamagePopupIndex].Type = Type; + DamagePopups[NextDamagePopupIndex].HitLocation = Pos; + //ser random speed of fading out, so multiple damages in the same hit location don't overlap each other + DamagePopups[NextDamagePopupIndex].RandX = 2.0 * FRand(); + DamagePopups[NextDamagePopupIndex].RandY = 1.0 + FRand(); + + C.A = 255; + if ( Type == 0 && Amount < 100 ) { + C.R = 220; + C.G = 0; + C.B = 0; + } + else if ( Type == 1 ) { + C.R = 255; + C.G = 255; + C.B = 25; + } + else if ( Type == 2 ) { + C.R = 32; + C.G = 240; + C.B = 32; + } + else if ( Amount >= 300 ) { + C.R = 0; + C.G = 206; + C.B = 0; + } + else if ( Amount >= 100 ) { + C.R = 206; + C.G = 206; + C.B = 0; + } + else { + C.R = 127; + C.G = 127; + C.B = 127; + } + DamagePopups[NextDamagePopupIndex].FontColor = C; + + if( ++NextDamagePopupIndex >= DAMAGEPOPUP_COUNT) + NextDamagePopupIndex=0; } -final function DrawNumberMsg() + +final function DrawDamage() { - local int i; - local float T,ThisDot,FontScale,XS,YS; - local vector V; + local int i; + local float TimeSinceHit; + local vector CameraLocation, CamDir; + local rotator CameraRotation; + local vector HBScreenPos; + local float TextWidth, TextHeight, x, Sc; local string S; - FontScale = Canvas.ClipY / 5.f; - Canvas.Font = class'KFGameEngine'.Static.GetKFCanvasFont(); - - for( i=0; i3.f ) + TimeSinceHit = WorldInfo.TimeSeconds - DamagePopups[i].HitTime; + if( TimeSinceHit > DamagePopupFadeOutTime + || ( Normal(DamagePopups[i].HitLocation - CameraLocation) dot Normal(CamDir) < 0.1 ) ) //don't draw if player faced back to the hit location + continue; + + switch( DamagePopups[i].Type ) { - Numbers.Remove(i--,1); - continue; + case 0: // Pawn damage. + S = "-"$string(DamagePopups[i].Damage); + break; + case 1: // EXP. + S = "+"$string(DamagePopups[i].Damage)$" XP"; + break; + case 2: // Health. + S = "+"$string(DamagePopups[i].Damage)$" HP"; + break; } - V = Numbers[i].Pos+vect(0,0,10.f)*T; - ThisDot = (PLCameraDir Dot V) - PLCameraDot; - if( ThisDot>0.f && ThisDot<1500.f ) - { - V = Canvas.Project(V); - if( V.X>0 && V.Y>0 && V.X2.f ) - Canvas.DrawColor.A = (3.f-T)*255.f; - Canvas.TextSize(S,XS,YS,ThisDot,ThisDot); - Canvas.SetPos(V.X-XS*0.5,V.Y-YS*0.5); - Canvas.DrawText(S,,ThisDot,ThisDot); - } - } - } + + HBScreenPos = Canvas.Project(DamagePopups[i].HitLocation); + Canvas.TextSize(S,TextWidth,TextHeight,Sc,Sc); + //draw just on the hit location + HBScreenPos.Y -= TextHeight/2; + HBScreenPos.X -= TextWidth/2; + + //let numbers to fly up + HBScreenPos.Y -= TimeSinceHit * TextHeight * DamagePopups[i].RandY; + x = Sin(2*Pi * TimeSinceHit/DamagePopupFadeOutTime) * TextWidth * DamagePopups[i].RandX; + // odd numbers start to flying to the right side, even - left + // So in situations of decapitaion player could see both damages + if ( i % 2 == 0) + x *= -1.0; + HBScreenPos.X += x; + + Canvas.DrawColor = DamagePopups[i].FontColor; + Canvas.DrawColor.A = 255 * Cos(0.5*Pi * TimeSinceHit/DamagePopupFadeOutTime); + + Canvas.SetPos( HBScreenPos.X, HBScreenPos.Y); + Canvas.DrawText( S ); + } } // Search for new inventory! @@ -943,5 +1099,9 @@ defaultproperties HUDTextColor=(R=250,G=250,B=250,A=186) HUDClass=class'ExtMoviePlayer_HUD' + HealthBarFullVisDist=350 + HealthBarCutoffDist=3500 + DamagePopupFadeOutTime=3.000000 + BadConnectionStr="Warning: Connection problem!" } \ No newline at end of file diff --git a/ServerExt/Classes/UIP_PerkSelection.uc b/ServerExt/Classes/UIP_PerkSelection.uc index 3fe7c22..53438d3 100644 --- a/ServerExt/Classes/UIP_PerkSelection.uc +++ b/ServerExt/Classes/UIP_PerkSelection.uc @@ -308,7 +308,7 @@ defaultproperties XPosition=0.25 YPosition=0.025 XSize=0.074 - YSize=0.07 + YSize=0.045 OnClickLeft=ButtonClicked OnClickRight=ButtonClicked ExtravDir=1 @@ -320,7 +320,8 @@ defaultproperties XPosition=0.325 YPosition=0.025 XSize=0.074 - YSize=0.07 + YSize=0.045 + ExtravDir=1 OnClickLeft=ButtonClicked OnClickRight=ButtonClicked End Object @@ -331,7 +332,7 @@ defaultproperties XPosition=0.4 YPosition=0.025 XSize=0.074 - YSize=0.07 + YSize=0.045 OnClickLeft=ButtonClicked OnClickRight=ButtonClicked bDisabled=true diff --git a/ServerExt/Classes/UIP_PerkSelectionLobby.uc b/ServerExt/Classes/UIP_PerkSelectionLobby.uc new file mode 100644 index 0000000..4e183f2 --- /dev/null +++ b/ServerExt/Classes/UIP_PerkSelectionLobby.uc @@ -0,0 +1,87 @@ +Class UIP_PerkSelectionLobby extends UIP_PerkSelection; + +function Timer() +{ + local int i; + + CurrentManager = ExtPlayerController(GetPlayer()).ActivePerkManager; + if( CurrentManager!=None ) + { + if( PrevPendingPerk!=None ) + { + PendingPerk = CurrentManager.FindPerk(PrevPendingPerk); + PrevPendingPerk = None; + } + PerkList.ChangeListSize(CurrentManager.UserPerks.Length); + if( PendingPerk!=None && !PendingPerk.bPerkNetReady ) + return; + + // Huge code block to handle stat updating, but actually pretty well optimized. + if( PendingPerk!=OldUsedPerk ) + { + OldUsedPerk = PendingPerk; + if( PendingPerk!=None ) + { + OldPerkPoints = -1; + if( StatsList.ItemComponents.Length!=PendingPerk.PerkStats.Length ) + { + if( StatsList.ItemComponents.Length=StatBuyers.Length ) + { + StatBuyers[StatBuyers.Length] = UIR_PerkStat(StatsList.AddListComponent(class'UIR_PerkStat')); + StatBuyers[i].StatIndex = i; + StatBuyers[i].InitMenu(); + } + else + { + StatsList.ItemComponents.Length = i+1; + StatsList.ItemComponents[i] = StatBuyers[i]; + } + } + } + else if( StatsList.ItemComponents.Length>PendingPerk.PerkStats.Length ) + { + for( i=PendingPerk.PerkStats.Length; i"); + } + } + else if( PendingPerk!=None && OldPerkPoints!=PendingPerk.CurrentSP ) + { + OldPerkPoints = PendingPerk.CurrentSP; + PerkLabel.SetText("Lv"$PendingPerk.GetLevelString()@PendingPerk.PerkName$" (Points: "$PendingPerk.CurrentSP$")"); + for( i=0; i 0.f && KillersPerk != none && KillersPerk.GetZedTimeExtensions( KFPC.GetLevel() ) > MyKFGI.ZedTimeExtensionsUsed ) + { + MyKFGI.DramaticEvent(1.0); + MyKFGI.ZedTimeExtensionsUsed++; + } + } + } if( ExtPlayerController(Killed)!=None ) CheckPerkChange(ExtPlayerController(Killed)); if (NextMutator != None) @@ -468,23 +492,31 @@ function NetDamage(int OriginalDamage, out int Damage, Pawn Injured, Controller } if( Damage>0 && InstigatedBy!=None ) { - if( KFPawn_Monster(Injured)!=None && Injured.GetTeamNum()!=0 ) + if( KFPawn_Monster(Injured)!=None ) { - LastDamageDealer = ExtPlayerController(InstigatedBy); - if( bDamageMessages && LastDamageDealer!=None && !LastDamageDealer.bNoDamageTracking ) + if( Injured.GetTeamNum()!=0 ) { - // Must delay this until next to get accurate damage dealt result. - LastHitZed = KFPawn(Injured); - LastHitHP = LastHitZed.Health; - LastDamagePosition = HitLocation; - SetTimer(0.001,false,'CheckDamageDone'); + LastDamageDealer = ExtPlayerController(InstigatedBy); + if( bDamageMessages && LastDamageDealer!=None && !LastDamageDealer.bNoDamageTracking ) + { + // Must delay this until next to get accurate damage dealt result. + LastHitZed = KFPawn(Injured); + LastHitHP = LastHitZed.Health; + LastDamagePosition = HitLocation; + SetTimer(0.001,false,'CheckDamageDone'); + } + else + { + LastDamageDealer = None; + // Give credits to pet's owner. + if( Ext_T_MonsterPRI(InstigatedBy.PlayerReplicationInfo)!=None ) + HackSetHistory(KFPawn(Injured),Injured,Ext_T_MonsterPRI(InstigatedBy.PlayerReplicationInfo).OwnerController,Damage,HitLocation); + } } - else + else if( KFPawn(InstigatedBy.Pawn).GetTeamNum() != KFPawn(Injured).GetTeamNum() ) { - LastDamageDealer = None; - // Give credits to pet's owner. - if( Ext_T_MonsterPRI(InstigatedBy.PlayerReplicationInfo)!=None ) - HackSetHistory(KFPawn(Injured),Injured,Ext_T_MonsterPRI(InstigatedBy.PlayerReplicationInfo).OwnerController,Damage,HitLocation); + Momentum = vect(0,0,0); + Damage = 0; } } else if( bDamageMessages && KFPawn_Human(Injured)!=None && Injured.GetTeamNum()==0 && InstigatedBy.GetTeamNum()!=0 && ExtPlayerController(InstigatedBy)!=None ) @@ -1026,15 +1058,20 @@ function PlayerChangePerk( ExtPlayerController PC, class NewPerk ) PC.PendingPerkClass = None; } } - else if( PC.ActivePerkManager.CurrentPerk==None || PC.Pawn==None || !PC.Pawn.IsAliveAndWell() ) + else if( PC.ActivePerkManager.CurrentPerk==None || KFPawn_Customization(PC.Pawn)!=None || (!PC.bSetPerk && KFGameReplicationInfo(WorldInfo.GRI).bTraderIsOpen) ) { if( PC.ActivePerkManager.ApplyPerkClass(NewPerk) ) + { PC.ClientMessage("You have changed your perk to "$NewPerk.Default.PerkName); + PC.bSetPerk = true; + } else PC.ClientMessage("Invalid perk "$NewPerk.Default.PerkName); } + else if( PC.bSetPerk ) + PC.ClientMessage("Can only change perks once per wave"); else { - PC.ClientMessage("You will change to perk '"$NewPerk.Default.PerkName$"' next time you have died."); + PC.ClientMessage("You will change to perk '"$NewPerk.Default.PerkName$"' during trader time."); PC.PendingPerkClass = NewPerk; } } @@ -1043,11 +1080,29 @@ function CheckPerkChange( ExtPlayerController PC ) if( PC.PendingPerkClass!=None ) { if( PC.ActivePerkManager.ApplyPerkClass(PC.PendingPerkClass) ) + { PC.ClientMessage("You have changed your perk to "$PC.PendingPerkClass.Default.PerkName); + PC.bSetPerk = true; + } else PC.ClientMessage("Invalid perk "$PC.PendingPerkClass.Default.PerkName); PC.PendingPerkClass = None; } } +function Tick(float DeltaTime) +{ + local bool bCheckedWave; + local ExtPlayerController ExtPC; + + if( KFGameReplicationInfo(WorldInfo.GRI).bTraderIsOpen && !bCheckedWave ) + { + foreach WorldInfo.AllControllers(class'ExtPlayerController',ExtPC) + CheckPerkChange(ExtPC); + + bCheckedWave = true; + } + else if( bCheckedWave ) + bCheckedWave = false; +} function PlayerBoughtTrait( ExtPlayerController PC, class PerkClass, class Trait ) { local Ext_PerkBase P;