From 88f2c71e54dc9664fafdf136dad8dfbb0f432a1f Mon Sep 17 00:00:00 2001 From: Forrest Keller Date: Fri, 20 Oct 2017 02:02:53 -0500 Subject: [PATCH] Added perk changing without dying Fixed scoreboard avatars not working Added the ServerExt perk menu to the lobby Made the perk buttons look better (Reset, Unload, Prestige) Added a better damage popup system Added a better pet info hud system Made player info bars fade out with distance Added missing traits from most of the perks Made lobby menu support 12 players Medic Pistol from the trait can't be dropped, sold and has infinite ammo 9mm Pistol now has infinite ammo Pet sirens do not blow up grenades Unlocked all cosmetics and emotes Hide bad cosmetics that were debug Hans pet no longer forces the camera on his death Custom weapons in the trader now support the proper weapon names Updated character info system to support alot of added items --- ServerExt/Classes/ExtCharacterInfo.uc | 58 +- ServerExt/Classes/ExtEmoteList.uc | 110 ++ ServerExt/Classes/ExtExplosion_SirenScream.uc | 10 + ServerExt/Classes/ExtGUI_PerkSelectionPage.uc | 59 + .../Classes/ExtHUD_WeaponSelectWidget.uc | 90 ++ ServerExt/Classes/ExtHumanPawn.uc | 194 ++- ServerExt/Classes/ExtInventoryManager.uc | 63 + ServerExt/Classes/ExtMenu_Gear.uc | 202 +-- ServerExt/Classes/ExtMenu_Inventory.uc | 65 + ServerExt/Classes/ExtMoviePlayer_HUD.uc | 2 + ServerExt/Classes/ExtMoviePlayer_Manager.uc | 50 +- ServerExt/Classes/ExtPawn_Customization.uc | 52 + ServerExt/Classes/ExtPawn_ZedHans_Pet.uc | 10 + ServerExt/Classes/ExtPerkManager.uc | 137 +- ServerExt/Classes/ExtPlayerController.uc | 10 +- ServerExt/Classes/ExtPlayerReplicationInfo.uc | 7 + ServerExt/Classes/ExtProj_DynamiteGrenade.uc | 161 ++ .../Classes/ExtProj_HighExplosive_M16M203.uc | 161 ++ .../Classes/ExtProj_HighExplosive_M79.uc | 161 ++ ServerExt/Classes/ExtProj_Rocket_RPG7.uc | 161 ++ ServerExt/Classes/ExtProj_Rocket_Seeker6.uc | 161 ++ ServerExt/Classes/ExtProj_Thrown_C4.uc | 161 ++ ServerExt/Classes/ExtSM_Player_Emote.uc | 50 + ServerExt/Classes/ExtSM_Siren_Scream.uc | 7 + ServerExt/Classes/ExtWeapDef_Grenade_Demo.uc | 11 + ServerExt/Classes/ExtWeap_Pistol_9mm.uc | 12 + ServerExt/Classes/ExtWeap_Pistol_Dual9mm.uc | 7 + ServerExt/Classes/ExtWeap_Pistol_MedicS.uc | 12 + ServerExt/Classes/ExtWeaponSkinList.uc | 1351 +++++++++++++++++ ServerExt/Classes/ExtWidget_PartyInGame.uc | 87 +- ServerExt/Classes/Ext_PerkBase.uc | 8 + ServerExt/Classes/Ext_PerkCommando.uc | 50 + ServerExt/Classes/Ext_PerkDemolition.uc | 92 +- ServerExt/Classes/Ext_PerkFieldMedic.uc | 140 +- ServerExt/Classes/Ext_PerkGunslinger.uc | 16 +- ServerExt/Classes/Ext_PerkSWAT.uc | 16 +- ServerExt/Classes/Ext_PerkSupport.uc | 35 +- ServerExt/Classes/Ext_TGroupZEDTime.uc | 6 + ServerExt/Classes/Ext_TraitAPShots.uc | 34 + ServerExt/Classes/Ext_TraitAcidicCompound.uc | 19 + ServerExt/Classes/Ext_TraitAirborneAgent.uc | 50 + ServerExt/Classes/Ext_TraitDemoAOE.uc | 24 + ServerExt/Classes/Ext_TraitDemoCriticalHit.uc | 19 + ServerExt/Classes/Ext_TraitDemoDirectHit.uc | 19 + ServerExt/Classes/Ext_TraitDemoNuke.uc | 69 + .../Classes/Ext_TraitDemoProfessional.uc | 46 + .../Classes/Ext_TraitDemoReactiveArmor.uc | 19 + ServerExt/Classes/Ext_TraitDoorRepair.uc | 21 + ServerExt/Classes/Ext_TraitFanfire.uc | 1 + ServerExt/Classes/Ext_TraitMachineGunner.uc | 39 + ServerExt/Classes/Ext_TraitMedBoost.uc | 35 + ServerExt/Classes/Ext_TraitMedDamBoost.uc | 33 + ServerExt/Classes/Ext_TraitMedShield.uc | 35 + ServerExt/Classes/Ext_TraitMedicPistol.uc | 4 +- ServerExt/Classes/Ext_TraitPenetrator.uc | 51 + ServerExt/Classes/Ext_TraitRanger.uc | 1 + ServerExt/Classes/Ext_TraitRapidAssault.uc | 19 + ServerExt/Classes/Ext_TraitSWATEnforcer.uc | 1 + ServerExt/Classes/Ext_TraitSirenResistance.uc | 18 + ServerExt/Classes/Ext_TraitSpartan.uc | 1 + ServerExt/Classes/Ext_TraitTactician.uc | 48 + ServerExt/Classes/Ext_TraitUberAmmo.uc | 1 + ServerExt/Classes/Ext_TraitZED_Summon.uc | 2 +- ServerExt/Classes/Ext_TraitZedTExt.uc | 26 + ServerExt/Classes/Ext_TraitZedative.uc | 48 + ServerExt/Classes/KFExtendedHUD.uc | 368 +++-- ServerExt/Classes/UIP_PerkSelection.uc | 7 +- ServerExt/Classes/UIP_PerkSelectionLobby.uc | 87 ++ ServerExt/Classes/UI_Scoreboard.uc | 2 +- ServerExtMut/Classes/ServerExtMut.uc | 85 +- 70 files changed, 4874 insertions(+), 343 deletions(-) create mode 100644 ServerExt/Classes/ExtEmoteList.uc create mode 100644 ServerExt/Classes/ExtExplosion_SirenScream.uc create mode 100644 ServerExt/Classes/ExtGUI_PerkSelectionPage.uc create mode 100644 ServerExt/Classes/ExtHUD_WeaponSelectWidget.uc create mode 100644 ServerExt/Classes/ExtMenu_Inventory.uc create mode 100644 ServerExt/Classes/ExtPawn_ZedHans_Pet.uc create mode 100644 ServerExt/Classes/ExtProj_DynamiteGrenade.uc create mode 100644 ServerExt/Classes/ExtProj_HighExplosive_M16M203.uc create mode 100644 ServerExt/Classes/ExtProj_HighExplosive_M79.uc create mode 100644 ServerExt/Classes/ExtProj_Rocket_RPG7.uc create mode 100644 ServerExt/Classes/ExtProj_Rocket_Seeker6.uc create mode 100644 ServerExt/Classes/ExtProj_Thrown_C4.uc create mode 100644 ServerExt/Classes/ExtSM_Player_Emote.uc create mode 100644 ServerExt/Classes/ExtWeapDef_Grenade_Demo.uc create mode 100644 ServerExt/Classes/ExtWeap_Pistol_9mm.uc create mode 100644 ServerExt/Classes/ExtWeap_Pistol_Dual9mm.uc create mode 100644 ServerExt/Classes/ExtWeap_Pistol_MedicS.uc create mode 100644 ServerExt/Classes/ExtWeaponSkinList.uc create mode 100644 ServerExt/Classes/Ext_TGroupZEDTime.uc create mode 100644 ServerExt/Classes/Ext_TraitAPShots.uc create mode 100644 ServerExt/Classes/Ext_TraitAcidicCompound.uc create mode 100644 ServerExt/Classes/Ext_TraitAirborneAgent.uc create mode 100644 ServerExt/Classes/Ext_TraitDemoAOE.uc create mode 100644 ServerExt/Classes/Ext_TraitDemoCriticalHit.uc create mode 100644 ServerExt/Classes/Ext_TraitDemoDirectHit.uc create mode 100644 ServerExt/Classes/Ext_TraitDemoNuke.uc create mode 100644 ServerExt/Classes/Ext_TraitDemoProfessional.uc create mode 100644 ServerExt/Classes/Ext_TraitDemoReactiveArmor.uc create mode 100644 ServerExt/Classes/Ext_TraitDoorRepair.uc create mode 100644 ServerExt/Classes/Ext_TraitMachineGunner.uc create mode 100644 ServerExt/Classes/Ext_TraitMedBoost.uc create mode 100644 ServerExt/Classes/Ext_TraitMedDamBoost.uc create mode 100644 ServerExt/Classes/Ext_TraitMedShield.uc create mode 100644 ServerExt/Classes/Ext_TraitPenetrator.uc create mode 100644 ServerExt/Classes/Ext_TraitRapidAssault.uc create mode 100644 ServerExt/Classes/Ext_TraitSirenResistance.uc create mode 100644 ServerExt/Classes/Ext_TraitTactician.uc create mode 100644 ServerExt/Classes/Ext_TraitZedTExt.uc create mode 100644 ServerExt/Classes/Ext_TraitZedative.uc create mode 100644 ServerExt/Classes/UIP_PerkSelectionLobby.uc 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;