//=============================================================================
// KFZedArmorInfo_BloatKing
//=============================================================================
//
//=============================================================================
// Killing Floor 2
// Copyright (C) 2018 Tripwire Interactive LLC
//=============================================================================
class KFZedArmorInfo_BloatKing extends KFZedArmorInfo;

simulated function UpdateArmorPiece(int PieceIdx)
{
	local int i;

	super.UpdateArmorPiece(PieceIdx);

	switch (ArmorZones[PieceIdx].ArmorZoneName)
	{
	case 'head':
		// King bloat uses 2 static attachments for the head piece.
		// Assume these are slot 0, 1 for future possible holiday purposes.
		// Min at list length in case there are fewer than default meshes.
		for (i = Min(1, StaticAttachList.Length - 1); i >= 0; --i)
		{
			Mesh.DetachComponent(StaticAttachList[i]);
			DetachComponent(StaticAttachList[i]);
			StaticAttachList.Remove(i, 1);
		}
		break;

	case 'front':
	case 'back':
		DetachComponent(ThirdPersonAttachments[PieceIdx]);
		ThirdPersonAttachments[PieceIdx] = none;
		break;
	}
}

defaultproperties
{
	ArmorScale=1.f

	ArmorZones.Add({(
		ArmorZoneName=head,
		AffectedHitZones=(head),
		bAffectedByFrontDamage=true,
		bAffectedByBackDamage=true,
		SocketName=FX_Armor_Head,
		ArmorHealth=1100,
		ExplosionSFXTemplate=AkEvent'WW_ZED_Abomination.Play_Abomination_Small_Armor_Explo',
		ZoneIcon=Texture2D'zed_bloatking_ui.BloatKing_Head_Armor')})
	ArmorZones.Add({(
		ArmorZoneName=front,
		AffectedHitZones=(chest,heart,stomach,abdomen),
		bAffectedByFrontDamage=true,
		bAffectedByBackDamage=false,
		SocketName=FX_Armor_Chest,
		ArmorHealth=4800,
		ExplosionSFXTemplate=AkEvent'WW_ZED_Abomination.Play_Abomination_Large_Armor_Explo',
		ZoneIcon=Texture2D'zed_bloatking_ui.BloatKing_Chest_Armor')})
	ArmorZones.Add({(
		ArmorZoneName=back,
		AffectedHitZones=(chest,heart,stomach,abdomen),
		bAffectedByFrontDamage=false,
		bAffectedByBackDamage=true,
		SocketName=FX_Armor_Back,
		ArmorHealth=3600,
		ExplosionSFXTemplate=AkEvent'WW_ZED_Abomination.Play_Abomination_Large_Armor_Explo',
		ZoneIcon=Texture2D'zed_bloatking_ui.BloatKing_Back_Armor')})

	// Resistant damage types
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Ballistic_Submachinegun',			DamageScale=(0.5)))
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Ballistic_AssaultRifle',			DamageScale=(0.5)))
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Ballistic_Shotgun',					DamageScale=(0.4)))
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Ballistic_Handgun',					DamageScale=(0.5)))
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Ballistic_Rifle',					DamageScale=(0.5)))
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Slashing',							DamageScale=(1.0)))
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Bludgeon',							DamageScale=(1.0)))
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Fire',								DamageScale=(1.0)))
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Microwave',							DamageScale=(0.9)))
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Explosive',							DamageScale=(0.4)))
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Piercing',							DamageScale=(0.5)))
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Toxic',								DamageScale=(0.05))
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Toxic_BloatKingFart',				DamageScale=(0.00)))
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Toxic_BloatKingPukeMine',			DamageScale=(0.0)))
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Toxic_BloatKingSubspawnExplosion',  DamageScale=(25.0)))
    
    //Special cases
    ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Toxic_HRGHealthrower',				DamageScale=(1.2)))
	ArmorDamageTypeModifiers.Add((DamageType=class'KFDT_Bleeding_Hemogoblin', 	            DamageScale=(1.0)))
}
