//SPRITE_TYPE_BOSS6_2, end boss phase 2;
enemyAnimations = true;
damagedMaterialOffset = 256;
damagedMaterialLife = 1500;

//SPRITE_ENEMY_ANIM_STANDING;
anim.m_clamp = false;
anim.m_animationSpeed = 0.5;
anim.m_frameAmount = 4;
anim.m_frameOffset = 0;
animations.Push(anim);
anim.m_frameOffset = 4;
animations.Push(anim);
anim.m_frameOffset = 8;
animations.Push(anim);
anim.m_frameOffset = 12;
animations.Push(anim);

//SPRITE_ENEMY_ANIM_RUNNING;
anim.m_animationSpeed = 2.0;
anim.m_frameOffset = 16;
animations.Push(anim);
anim.m_frameOffset = 20;
animations.Push(anim);
anim.m_frameOffset = 24;
animations.Push(anim);
anim.m_frameOffset = 28;
animations.Push(anim);

//SPRITE_ENEMY_ANIM_ATTACKING  sawed off double;
anim.m_animationSpeed = 2.0;
anim.m_clamp = true;
anim.m_frameAmount = 4;
anim.m_frameOffset = 32;
animations.Push(anim);
anim.m_frameOffset = 36;
animations.Push(anim);
anim.m_frameOffset = 40;
animations.Push(anim);
anim.m_frameOffset = 44;
animations.Push(anim);

//SPRITE_ENEMY_ANIM_DYING;
anim.m_animationSpeed = 0.3;
anim.m_frameAmount = 19;
anim.m_frameOffset = 224;
animations.Push(anim);

//SPRITE_ENEMY_ANIM_PAIN;
anim.m_frameAmount = 1;
anim.m_frameOffset = 192;
animations.Push(anim);
anim.m_frameOffset = 193;
animations.Push(anim);
anim.m_frameOffset = 194;
animations.Push(anim);
anim.m_frameOffset = 195;
animations.Push(anim);

//SPRITE_ENEMY_ANIM_YELL;
anim.m_frameOffset = 196;
animations.Push(anim);
anim.m_frameOffset = 197;
animations.Push(anim);
anim.m_frameOffset = 198;
animations.Push(anim);
anim.m_frameOffset = 199;
animations.Push(anim);
// SPRITE_ENEMY_ANIM_ATTACKING2   sawed off single;
anim.m_animationSpeed = 4.0;
anim.m_clamp = true;
anim.m_frameAmount = 4;
anim.m_frameOffset = 48;
animations.Push(anim);
anim.m_frameOffset = 52;
animations.Push(anim);
anim.m_frameOffset = 56;
animations.Push(anim);
anim.m_frameOffset = 60;
animations.Push(anim);
// SPRITE_ENEMY_ANIM_ATTACKING3   sawed off single repeat;
anim.m_animationSpeed = 4.0;
anim.m_clamp = true;
anim.m_frameAmount = 2;
anim.m_frameOffset = 50;
animations.Push(anim);
anim.m_frameOffset = 54;
animations.Push(anim);
anim.m_frameOffset = 58;
animations.Push(anim);
anim.m_frameOffset = 62;
animations.Push(anim);
// SPRITE_ENEMY_ANIM_ATTACKING4   grenade launcher;
anim.m_animationSpeed = 2.0;
anim.m_clamp = true;
anim.m_frameAmount = 4;
anim.m_frameOffset = 160;
animations.Push(anim);
anim.m_frameOffset = 164;
animations.Push(anim);
anim.m_frameOffset = 168;
animations.Push(anim);
anim.m_frameOffset = 172;
animations.Push(anim);
// SPRITE_ENEMY_ANIM_ATTACKING5   grenade laucher repeat;
anim.m_animationSpeed = 5.0;
anim.m_clamp = true;
anim.m_frameAmount = 2;
anim.m_frameOffset = 162;
animations.Push(anim);
anim.m_frameOffset = 166;
animations.Push(anim);
anim.m_frameOffset = 170;
animations.Push(anim);
anim.m_frameOffset = 174;
animations.Push(anim);
// SPRITE_ENEMY_ANIM_DYING2;
anim.m_animationSpeed = 0.3;
anim.m_frameAmount = 19;
anim.m_frameOffset = 224;
animations.Push(anim);
animations.Push(anim);
animations.Push(anim);
animations.Push(anim);
// SPRITE_ENEMY_ANIM_ATTACKING6   ice spear;
anim.m_animationSpeed = 2.0;
anim.m_clamp = true;
anim.m_frameAmount = 4;
anim.m_frameOffset = 144;
animations.Push(anim);
anim.m_frameOffset = 148;
animations.Push(anim);
anim.m_frameOffset = 152;
animations.Push(anim);
anim.m_frameOffset = 156;
animations.Push(anim);
// SPRITE_ENEMY_ANIM_ATTACKING7   ice spear repeat;
anim.m_animationSpeed = 4.0;
anim.m_clamp = true;
anim.m_frameAmount = 2;
anim.m_frameOffset = 146;
animations.Push(anim);
anim.m_frameOffset = 150;
animations.Push(anim);
anim.m_frameOffset = 154;
animations.Push(anim);
anim.m_frameOffset = 158;
animations.Push(anim);
// SPRITE_ENEMY_ANIM_ATTACKING8   frozen orb;
anim.m_animationSpeed = 1.333333;
anim.m_clamp = true;
anim.m_frameAmount = 4;
anim.m_frameOffset = 128;
animations.Push(anim);
anim.m_frameOffset = 132;
animations.Push(anim);
anim.m_frameOffset = 136;
animations.Push(anim);
anim.m_frameOffset = 140;
animations.Push(anim);
// SPRITE_ENEMY_ANIM_ATTACKING9   katana;
anim.m_animationSpeed = 4.0;
anim.m_clamp = true;
anim.m_frameAmount = 4;
anim.m_frameOffset = 112;
animations.Push(anim);
anim.m_frameOffset = 116;
animations.Push(anim);
anim.m_frameOffset = 120;
animations.Push(anim);
anim.m_frameOffset = 124;
animations.Push(anim);
// SPRITE_ENEMY_ANIM_ATTACKING10    katana projectile;
anim.m_animationSpeed = 1.5;
anim.m_clamp = true;
anim.m_frameAmount = 4;
anim.m_frameOffset = 96;
animations.Push(anim);
anim.m_frameOffset = 100;
animations.Push(anim);
anim.m_frameOffset = 104;
animations.Push(anim);
anim.m_frameOffset = 108;
animations.Push(anim);
// SPRITE_ENEMY_ANIM_ATTACKING11    acid balls;
anim.m_animationSpeed = 6.666666;
anim.m_clamp = true;
anim.m_frameAmount = 4;
anim.m_frameOffset = 80;
animations.Push(anim);
anim.m_frameOffset = 84;
animations.Push(anim);
anim.m_frameOffset = 88;
animations.Push(anim);
anim.m_frameOffset = 92;
animations.Push(anim);
// SPRITE_ENEMY_ANIM_ATTACKING12    acid balls repeat;
anim.m_animationSpeed = 10.0;
anim.m_clamp = true;
anim.m_frameAmount = 2;
anim.m_frameOffset = 82;
animations.Push(anim);
anim.m_frameOffset = 86;
animations.Push(anim);
anim.m_frameOffset = 90;
animations.Push(anim);
anim.m_frameOffset = 94;
animations.Push(anim);
// SPRITE_ENEMY_ANIM_ATTACKING13    big acid ball;
anim.m_animationSpeed = 2.0;
anim.m_clamp = true;
anim.m_frameAmount = 4;
anim.m_frameOffset = 64;
animations.Push(anim);
anim.m_frameOffset = 68;
animations.Push(anim);
anim.m_frameOffset = 72;
animations.Push(anim);
anim.m_frameOffset = 76;
animations.Push(anim);

delayKill = 3.65;
deathAnimDuringDelay = true;
flammable = true;
canBeDamaged = true;
Init(vector(0.95, 1.9, 1.9), 1523, 2, 2, 2, 0);
life = 3000;

ai.AddDeathNode(374, 13, 6.0, 300.0, 1000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0, 2.0, 0.0, 1.0);
ai.AddDeathNode(57, 10, 130.0, 1.0, 0.0, 0.0, -1.0, 2.0, 0.0, 0.0, 0.0, 0.0);
ai.SetLastDeathNodeToNotRunOnClients();
ai.AddNode(17, -1.0, -1.0, 0);
ai.SetLastNodeToRunOnClients();
ai.AddNode(268, -1.0, -1.0, 0);
ai.AddNode(275, -1.0, -1.0, 2, 15.0, 0.5 * cubeSize);
ai.AddDeathNode(16, 1, 0.0);
ai.AddDeathNode(56, 8, 0.0, 1.0, 921.0, 1.0, 1.0, 1.0, 1.0, -1.0);
ai.AddDeathNode(368, 1, 921.0); // AI_TYPE_DISPLAY_SUBTITLE;
ai.AddDeathNode(332, 0);

partStruct.m_managed = false;
partStruct.m_removeIfTargetBleeds = false;
partStruct.m_normalOffset = 0.0;
partStruct.m_rotate = true;
partStruct.m_type = 1;
partStruct.m_useActorCoordinates = false;
partStruct.m_offset = vector(0.0,0.0,0.0);
bleedParticles.Push(partStruct);
partStruct.m_rotate = false;
partStruct.m_type = 0;
partStruct.m_useActorCoordinates = true;
killParticles.Push(partStruct);

[enemy]

addGib(1334);
addGib(1335);
addGib(1336);
addGib(1337);

// weapon change;
attackStruct.m_attackAmount = 1;
attackStruct.m_originalAttackAmount = 1;
attackStruct.m_distancePriority = false;
attackStruct.m_pauseTimerAfter = 0.0;
attackStruct.m_reuseTimer = 0.0;
attackStruct.m_reuseTimerOriginal = 10.0;
attackStruct.m_attackRange = 99999.0 * cubeSize;
attackStruct.m_attackDelay = 0.5;
attackStruct.m_attackDelayAfterInitial = 0.5;
attackStruct.m_attackSound.m_sound = 45;
attackStruct.m_attackSound.m_pitchMin = 0.95;
attackStruct.m_attackSound.m_pitchMax = 1.05;
attackStruct.m_attackSound.m_volumeMin = 2.0;
attackStruct.m_attackSound.m_volumeMax = 2.0;
attackStruct.m_enemyAttack = 57;
attackStruct.m_attackAnim = 5;
attackStruct.m_extraAttackAnim = 255;
attackStruct.m_canBeCancelled = false;
attackStruct.m_lineOfSight = false;
attackStruct.m_attacksLeftCancel = 1;
attackStruct.m_attackBeamTime = 0.0f;
attackStruct.m_attackBeamTimer = 0.0f;
attacks.Push(attackStruct);
// jump;
attackStruct.m_attackAmount = 1;
attackStruct.m_originalAttackAmount = 1;
attackStruct.m_distancePriority = false;
attackStruct.m_pauseTimerAfter = 0.0;
attackStruct.m_reuseTimer = 0.0;
attackStruct.m_reuseTimerOriginal = 3.0;
attackStruct.m_attackRange = 99999.0 * cubeSize;
attackStruct.m_attackDelay = 0.0;
attackStruct.m_attackDelayAfterInitial = 0.0;
attackStruct.m_attackSound.m_sound = 45;
attackStruct.m_attackSound.m_pitchMin = 0.95;
attackStruct.m_attackSound.m_pitchMax = 1.05;
attackStruct.m_attackSound.m_volumeMin = 2.0;
attackStruct.m_attackSound.m_volumeMax = 2.0;
attackStruct.m_enemyAttack = 58;
attackStruct.m_attackAnim = 2;
attackStruct.m_extraAttackAnim = 255;
attackStruct.m_canBeCancelled = false;
attackStruct.m_lineOfSight = false;
attackStruct.m_attacksLeftCancel = 1;
attackStruct.m_attackBeamTime = 0.0f;
attackStruct.m_attackBeamTimer = 0.0f;
attacks.Push(attackStruct);

// sawed off double;
attackStruct.m_attackAmount = 1;
attackStruct.m_originalAttackAmount = 1;
attackStruct.m_distancePriority = false;
attackStruct.m_pauseTimerAfter = 0.5;
attackStruct.m_reuseTimer = 1.0;
attackStruct.m_reuseTimerOriginal = 1.0;
attackStruct.m_attackRange = 8.0 * cubeSize;
attackStruct.m_attackDelay = 0.5;
attackStruct.m_attackDelayAfterInitial = 0.5;
attackStruct.m_attackSound.m_sound = 222;
attackStruct.m_attackSound.m_pitchMin = 0.95;
attackStruct.m_attackSound.m_pitchMax = 1.05;
attackStruct.m_attackSound.m_volumeMin = 1.0;
attackStruct.m_attackSound.m_volumeMax = 1.0;
attackStruct.m_enemyAttack = 50;
attackStruct.m_attackAnim = 2;
attackStruct.m_extraAttackAnim = 255;
attackStruct.m_canBeCancelled = true;
attackStruct.m_lineOfSight = true;
attackStruct.m_attacksLeftCancel = 1;
attackStruct.m_attackBeamTime = 0.0f;
attackStruct.m_attackBeamTimer = 0.0f;
attackStruct.m_genProjDamage = 2;
attackStruct.m_genProjRecoil = 1.8;
attackStruct.m_genProjAmount = 24;
attackStruct.m_genProjType = 10;
attackStruct.m_genProjZOffset = 0.0;
attackStruct.m_genProjVel = 20000.0;
attackStruct.m_genProjPitch = 0.0;
attackStruct.m_genProjSpoken = false;
attacks.Push(attackStruct);
// sawed off single;
attackStruct.m_attackAmount = 2;
attackStruct.m_originalAttackAmount = 2;
attackStruct.m_distancePriority = false;
attackStruct.m_pauseTimerAfter = 0.0;
attackStruct.m_reuseTimer = 1.0;
attackStruct.m_reuseTimerOriginal = 4.0;
attackStruct.m_attackRange = 10.0 * cubeSize;
attackStruct.m_attackDelay = 0.25;
attackStruct.m_attackDelayAfterInitial = 0.25;
attackStruct.m_attackSound.m_sound = 27;
attackStruct.m_attackSound.m_pitchMin = 0.95;
attackStruct.m_attackSound.m_pitchMax = 1.05;
attackStruct.m_attackSound.m_volumeMin = 1.0;
attackStruct.m_attackSound.m_volumeMax = 1.0;
attackStruct.m_enemyAttack = 50;
attackStruct.m_attackAnim = 6;
attackStruct.m_extraAttackAnim = 7;
attackStruct.m_canBeCancelled = true;
attackStruct.m_lineOfSight = true;
attackStruct.m_attacksLeftCancel = 1;
attackStruct.m_attackBeamTime = 0.0f;
attackStruct.m_attackBeamTimer = 0.0f;
attackStruct.m_genProjDamage = 2;
attackStruct.m_genProjRecoil = 1.5;
attackStruct.m_genProjAmount = 12;
attackStruct.m_genProjType = 10;
attackStruct.m_genProjZOffset = 0.0;
attackStruct.m_genProjVel = 20000.0;
attackStruct.m_genProjPitch = 0.0;
attackStruct.m_genProjSpoken = false;
attacks.Push(attackStruct);

// grenade launcher contact;
attackStruct.m_attackAmount = 3;
attackStruct.m_originalAttackAmount = 3;
attackStruct.m_distancePriority = false;
attackStruct.m_pauseTimerAfter = 1.0;
attackStruct.m_reuseTimer = 1.0;
attackStruct.m_reuseTimerOriginal = 2.0;
attackStruct.m_attackRange = -9.0 * cubeSize;
attackStruct.m_attackDelay = 0.5;
attackStruct.m_attackDelayAfterInitial = 0.2;
attackStruct.m_attackSound.m_sound = 227;
attackStruct.m_attackSound.m_pitchMin = 0.95;
attackStruct.m_attackSound.m_pitchMax = 1.05;
attackStruct.m_attackSound.m_volumeMin = 1.0;
attackStruct.m_attackSound.m_volumeMax = 1.0;
attackStruct.m_enemyAttack = 50;
attackStruct.m_attackAnim = 8;
attackStruct.m_extraAttackAnim = 9;
attackStruct.m_canBeCancelled = true;
attackStruct.m_lineOfSight = true;
attackStruct.m_attacksLeftCancel = 1;
attackStruct.m_attackBeamTime = 0.0f;
attackStruct.m_attackBeamTimer = 0.0f;
attackStruct.m_genProjDamage = 1;
attackStruct.m_genProjRecoil = 1.5;
attackStruct.m_genProjAmount = 1;
attackStruct.m_genProjType = 99;
attackStruct.m_genProjZOffset = 0.0;
attackStruct.m_genProjVel = 5000.0;
attackStruct.m_genProjPitch = 5.0;
attackStruct.m_genProjSpoken = false;
attacks.Push(attackStruct);
// grenade launcher bounce;
attackStruct.m_attackAmount = 3;
attackStruct.m_originalAttackAmount = 3;
attackStruct.m_distancePriority = false;
attackStruct.m_pauseTimerAfter = 1.0;
attackStruct.m_reuseTimer = 1.0;
attackStruct.m_reuseTimerOriginal = 1.0;
attackStruct.m_attackRange = -9.0 * cubeSize;
attackStruct.m_attackDelay = 0.5;
attackStruct.m_attackDelayAfterInitial = 0.2;
attackStruct.m_attackSound.m_sound = 227;
attackStruct.m_attackSound.m_pitchMin = 0.95;
attackStruct.m_attackSound.m_pitchMax = 1.05;
attackStruct.m_attackSound.m_volumeMin = 1.0;
attackStruct.m_attackSound.m_volumeMax = 1.0;
attackStruct.m_enemyAttack = 50;
attackStruct.m_attackAnim = 8;
attackStruct.m_extraAttackAnim = 9;
attackStruct.m_canBeCancelled = false;
attackStruct.m_lineOfSight = true;
attackStruct.m_attacksLeftCancel = 1;
attackStruct.m_attackBeamTime = 0.0f;
attackStruct.m_attackBeamTimer = 0.0f;
attackStruct.m_genProjDamage = 1;
attackStruct.m_genProjRecoil = 6.0;
attackStruct.m_genProjAmount = 1;
attackStruct.m_genProjType = 100;
attackStruct.m_genProjZOffset = 0.0;
attackStruct.m_genProjVel = 5000.0;
attackStruct.m_genProjPitch = 9.0;
attackStruct.m_genProjSpoken = false;
attacks.Push(attackStruct);

// ice spear;
attackStruct.m_attackAmount = 5;
attackStruct.m_originalAttackAmount = 5;
attackStruct.m_distancePriority = false;
attackStruct.m_pauseTimerAfter = 0.5;
attackStruct.m_reuseTimer = 0.5;
attackStruct.m_reuseTimerOriginal = 0.5;
attackStruct.m_attackRange = -12.0 * cubeSize;
attackStruct.m_attackDelay = 0.5;
attackStruct.m_attackDelayAfterInitial = 0.25;
attackStruct.m_attackSound.m_sound = 345;
attackStruct.m_attackSound.m_pitchMin = 0.95;
attackStruct.m_attackSound.m_pitchMax = 1.05;
attackStruct.m_attackSound.m_volumeMin = 1.0;
attackStruct.m_attackSound.m_volumeMax = 1.0;
attackStruct.m_enemyAttack = 50;
attackStruct.m_attackAnim = 11;
attackStruct.m_extraAttackAnim = 12;
attackStruct.m_canBeCancelled = true;
attackStruct.m_lineOfSight = true;
attackStruct.m_attacksLeftCancel = 1;
attackStruct.m_attackBeamTime = 0.0f;
attackStruct.m_attackBeamTimer = 0.0f;
attackStruct.m_genProjDamage = 20;
attackStruct.m_genProjRecoil = 1.3;
attackStruct.m_genProjAmount = 1;
attackStruct.m_genProjType = 390;
attackStruct.m_genProjZOffset = 0.0;
attackStruct.m_genProjVel = 7500.0;
attackStruct.m_genProjPitch = 5.0;
attackStruct.m_genProjSpoken = false;
attacks.Push(attackStruct);
// frozen orb;
attackStruct.m_attackAmount = 1;
attackStruct.m_originalAttackAmount = 1;
attackStruct.m_distancePriority = false;
attackStruct.m_pauseTimerAfter = 0.5;
attackStruct.m_reuseTimer = 1.0;
attackStruct.m_reuseTimerOriginal = 1.0;
attackStruct.m_attackRange = -12.0 * cubeSize;
attackStruct.m_attackDelay = 0.75;
attackStruct.m_attackDelayAfterInitial = 0.75;
attackStruct.m_attackSound.m_sound = 345;
attackStruct.m_attackSound.m_pitchMin = 0.95;
attackStruct.m_attackSound.m_pitchMax = 1.05;
attackStruct.m_attackSound.m_volumeMin = 1.0;
attackStruct.m_attackSound.m_volumeMax = 1.0;
attackStruct.m_enemyAttack = 50;
attackStruct.m_attackAnim = 13;
attackStruct.m_extraAttackAnim = 255;
attackStruct.m_canBeCancelled = false;
attackStruct.m_lineOfSight = true;
attackStruct.m_attacksLeftCancel = 1;
attackStruct.m_attackBeamTime = 0.0f;
attackStruct.m_attackBeamTimer = 0.0f;
attackStruct.m_genProjDamage = 30;
attackStruct.m_genProjRecoil = 0.0;
attackStruct.m_genProjAmount = 1;
attackStruct.m_genProjType = 1144;
attackStruct.m_genProjZOffset = 0.0;
attackStruct.m_genProjVel = 1500.0;
attackStruct.m_genProjPitch = 0.0;
attackStruct.m_genProjSpoken = false;
attacks.Push(attackStruct);

// katana;
attackStruct.m_attackAmount = 1;
attackStruct.m_originalAttackAmount = 1;
attackStruct.m_distancePriority = true;
attackStruct.m_pauseTimerAfter = 0.5;
attackStruct.m_reuseTimer = 0.5;
attackStruct.m_reuseTimerOriginal = 0.5;
attackStruct.m_attackRange = -1.5 * cubeSize;
attackStruct.m_attackDelay = 0.25;
attackStruct.m_attackDelayAfterInitial = 0.25;
attackStruct.m_attackSound.m_sound = 229;
attackStruct.m_attackSound.m_volumeMin = 1.0;
attackStruct.m_attackSound.m_volumeMax = 1.0;
attackStruct.m_attackSound.m_pitchMin = 0.95;
attackStruct.m_attackSound.m_pitchMax = 1.05;
attackStruct.m_enemyAttack = 53;
attackStruct.m_attackAnim = 14;
attackStruct.m_extraAttackAnim = 2;
attackStruct.m_canBeCancelled = true;
attackStruct.m_lineOfSight = true;
attackStruct.m_attacksLeftCancel = 1;
attackStruct.m_attackBeamTime = 0.0;
attackStruct.m_attackBeamTimer = 0.0;
attackStruct.m_genProjDamage = 10;
attackStruct.m_genProjRecoil = 1.0;
attackStruct.m_genProjAmount = 1;
attackStruct.m_genProjZOffset = 0.0;
attackStruct.m_genProjVel = 45.0;
attackStruct.m_genProjSpoken = false;
attacks.Push(attackStruct);
// katana projectile;
attackStruct.m_attackAmount = 1;
attackStruct.m_originalAttackAmount = 1;
attackStruct.m_distancePriority = false;
attackStruct.m_pauseTimerAfter = 0.0;
attackStruct.m_reuseTimer = 1.0;
attackStruct.m_reuseTimerOriginal = 1.5;
attackStruct.m_attackRange = -5.0 * cubeSize;
attackStruct.m_attackDelay = 0.5;
attackStruct.m_attackDelayAfterInitial = 0.5;
attackStruct.m_attackSound.m_sound = 230;
attackStruct.m_attackSound.m_pitchMin = 0.95;
attackStruct.m_attackSound.m_pitchMax = 1.05;
attackStruct.m_attackSound.m_volumeMin = 1.0;
attackStruct.m_attackSound.m_volumeMax = 1.0;
attackStruct.m_enemyAttack = 50;
attackStruct.m_attackAnim = 15;
attackStruct.m_extraAttackAnim = 255;
attackStruct.m_canBeCancelled = true;
attackStruct.m_lineOfSight = true;
attackStruct.m_attacksLeftCancel = 1;
attackStruct.m_attackBeamTime = 0.0f;
attackStruct.m_attackBeamTimer = 0.0f;
attackStruct.m_genProjDamage = 10;
attackStruct.m_genProjRecoil = 0.0;
attackStruct.m_genProjAmount = 1;
attackStruct.m_genProjType = 621;
attackStruct.m_genProjZOffset = 0.0;
attackStruct.m_genProjVel = 3000.0;
attackStruct.m_genProjPitch = 0.0;
attackStruct.m_genProjSpoken = false;
attacks.Push(attackStruct);

// Acid balls;
attackStruct.m_attackAmount = 12;
attackStruct.m_originalAttackAmount = 12;
attackStruct.m_distancePriority = false;
attackStruct.m_pauseTimerAfter = 0.0;
attackStruct.m_reuseTimer = 0.5;
attackStruct.m_reuseTimerOriginal = 0.5;
attackStruct.m_attackRange = -7.0 * cubeSize;
attackStruct.m_attackDelay = 0.15;
attackStruct.m_attackDelayAfterInitial = 0.1;
attackStruct.m_attackSound.m_sound = 37;
attackStruct.m_attackSound.m_pitchMin = 0.95;
attackStruct.m_attackSound.m_pitchMax = 1.05;
attackStruct.m_attackSound.m_volumeMin = 1.0;
attackStruct.m_attackSound.m_volumeMax = 1.0;
attackStruct.m_enemyAttack = 50;
attackStruct.m_attackAnim = 16;
attackStruct.m_extraAttackAnim = 17;
attackStruct.m_canBeCancelled = true;
attackStruct.m_lineOfSight = true;
attackStruct.m_attacksLeftCancel = 1;
attackStruct.m_attackBeamTime = 0.0f;
attackStruct.m_attackBeamTimer = 0.0f;
attackStruct.m_genProjDamage = 8;
attackStruct.m_genProjRecoil = 1.5;
attackStruct.m_genProjAmount = 1;
attackStruct.m_genProjType = 74;
attackStruct.m_genProjZOffset = 0.0;
attackStruct.m_genProjVel = 3500.0;
attackStruct.m_genProjPitch = 9.0;
attackStruct.m_genProjSpoken = false;
attacks.Push(attackStruct);
// giant acid ball;
attackStruct.m_attackAmount = 1;
attackStruct.m_originalAttackAmount = 1;
attackStruct.m_distancePriority = false;
attackStruct.m_pauseTimerAfter = 0.5;
attackStruct.m_reuseTimer = 1.0;
attackStruct.m_reuseTimerOriginal = 1.0;
attackStruct.m_attackRange = -14.0 * cubeSize;
attackStruct.m_attackDelay = 0.5;
attackStruct.m_attackDelayAfterInitial = 0.5;
attackStruct.m_attackSound.m_sound = 332;
attackStruct.m_attackSound.m_pitchMin = 0.95;
attackStruct.m_attackSound.m_pitchMax = 1.05;
attackStruct.m_attackSound.m_volumeMin = 1.0;
attackStruct.m_attackSound.m_volumeMax = 1.0;
attackStruct.m_enemyAttack = 50;
attackStruct.m_attackAnim = 18;
attackStruct.m_extraAttackAnim = 255;
attackStruct.m_canBeCancelled = false;
attackStruct.m_lineOfSight = true;
attackStruct.m_attacksLeftCancel = 1;
attackStruct.m_attackBeamTime = 0.0f;
attackStruct.m_attackBeamTimer = 0.0f;
attackStruct.m_genProjDamage = 1;
attackStruct.m_genProjRecoil = 0.0;
attackStruct.m_genProjAmount = 1;
attackStruct.m_genProjType = 1146;
attackStruct.m_genProjZOffset = 0.0;
attackStruct.m_genProjVel = 9000.0;
attackStruct.m_genProjPitch = 3.0;
attackStruct.m_genProjSpoken = false;
attacks.Push(attackStruct);

yellTime = 0.3;
runSpeed = 1200.0;
stepDelay = 0.48125;
painTreshold = 100;
jumps = true;
flies = false;
headshotMinZPercent = 0.75;
headshotMaxZPercent = 1.0;
headshotHeadInFront = false;
turnSpeed = 450.0;
stepSound.m_sound = 6;
stepSound.m_volumeMin = 1.0;
stepSound.m_volumeMax = 1.0;
idleSound.m_sound = 825;
yellSound.m_sound = 826;
painSound.m_sound = 827;
dieSound.m_sound = 828;
//dieSound.m_volumeMin = 1.75;
//dieSound.m_volumeMax = 1.75;
infighting = false;
dodgeChance = 1.0;
showBossHealthBar = true;
enableForceStun = false;
canBeCaptured = false;
canBeNailed = false;