<?xml version="1.0" encoding="utf-8"?>
<ItemRenderer NPCType="DreadGazerBoss" NPCTypeID="9">
	<Data>
		<Sprite name="s_Muzzle" fileName="game/particles11.rttex" textureSize="32" frame="11,24" />
		<Sprite name="laserBeamSprite" fileName="game/particles11.rttex" textureSize="32" frame="12,24" cullingDisabled="true"/>
		<Sprite name="teleportParticleSprite" fileName="game/bb_page1.rttex" textureSize="128" frame="6,5"/>
		<Sprite name="teleportMuzzleParticleSprite" fileName="game/bb_page1.rttex" textureSize="128" frame="5,5"/>
		<Sprite name="gazerSprite" fileName="game/bb_page1.rttex" textureSize="128" frame="0,3"/>
		<Sprite name="s_HitEffect" fileName="game/particles.rttex" textureSize="32" frame="10,9" />
		<StateMachines>
			<StateMachine name="NPC" ServerOnly="true">
				<States start="FlyPatrol">
					<NPCSpawn name="ShieldState" IsTemporary="true">
						<NpcTypeToSpawn>"Shield"</NpcTypeToSpawn>
						<NpcSpawnQuantity>1</NpcSpawnQuantity>
					</NPCSpawn>			
					<NPCFlyingPatrol name="FlyPatrol" ExitTime="2">
						<PatrolSpeed>80</PatrolSpeed>
						<PatrolRange>350</PatrolRange>
						<StayHome>false</StayHome>
					</NPCFlyingPatrol>
					<NPCStationary name="TeleportAttackParticle"  ExitTime="0.2"/>
					<NPCTeleport name="Teleport" ExitTime="0.64">
						<MinTeleportDistance>-1020, -350</MinTeleportDistance>
						<MaxTeleportDistance>1020, 350</MaxTeleportDistance>
						<PlayerTargetingChance>35</PlayerTargetingChance>
					</NPCTeleport>
					<NPCStationary name="TeleportEnd"/>
					<NPCFlyingAttack name="AttackProjectile" ExitTime="1">
						<AttackTimeoutInSeconds>0</AttackTimeoutInSeconds>
						<ProjectileName>"DreadGazerProjectile"</ProjectileName>
					</NPCFlyingAttack>
					<NPCStationary name="AttackLaserBeam" ExitTime="4"/>
					<NPCAnticipation name="AnticipationTeleport" ExitTime="0.64"/>
					<NPCAnticipation name="AnticipationLaserBeam" ExitTime="0.64"/>
					<NPCAnticipation name="AnticipationFireBall" ExitTime="0.64"/>
				</States>
				<Transitions>
					<Transition to="FlyPatrol" from="ShieldState|TeleportEnd|AttackLaserBeam|AttackProjectile"/>				
					<Transition to="AnticipationTeleport" from="FlyPatrol">
						<Condition>
							<CheckRandomRangeNumber EndNumber="4">0</CheckRandomRangeNumber>
						</Condition>
					</Transition>					
					<Transition to="TeleportAttackParticle" from="AnticipationTeleport"/>							
					<Transition to="Teleport" from="TeleportAttackParticle"/>
					<Transition to="TeleportEnd" from="Teleport"/>
					
					<Transition to="AnticipationLaserBeam" from="FlyPatrol">
						<Condition>
							<CheckRandomRangeNumber EndNumber="4">1</CheckRandomRangeNumber>
						</Condition>
					</Transition>	
					<Transition to="AttackLaserBeam" from="AnticipationLaserBeam"/>							
		
					<Transition to="AnticipationFireBall" from="FlyPatrol">
						<Condition>
							<CheckRandomRangeNumber EndNumber="4">2</CheckRandomRangeNumber>
						</Condition>
					</Transition>	
					<Transition to="AttackProjectile" from="AnticipationFireBall"/>	
					
					<Transition to="ShieldState" from="FlyPatrol">
						<Condition type="and">
							<CheckRandomRangeNumber operatorType="Less" EndNumber="101">10</CheckRandomRangeNumber>
							<CheckNumberAttachedEntities operatorType="Less">1</CheckNumberAttachedEntities>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
		</StateMachines>
		<Animations>
			<SpriteAnimation name="a_sprite_default" playOnState="NPC.FlyPatrol" sprite="gazerSprite" isLoop="true" animTime="800">
				<Frame>0, 3</Frame>
				<Frame>1, 3</Frame>
				<Frame>2, 3</Frame>
				<Frame>3, 3</Frame>
				<Frame>4, 3</Frame>
				<Frame>5, 3</Frame>
				<Frame>6, 3</Frame>
				<Frame>7, 3</Frame>
			</SpriteAnimation>				
			<SpriteAnimation name="b_teleport_particle_blast" sprite="teleportParticleSprite" animTime="300">
				<Frame>5, 5</Frame>
				<Frame>6, 5</Frame>
				<Frame>7, 5</Frame>
			</SpriteAnimation>			
			<SpriteAnimation name="c_sprite_anticipation_teleport" playOnState="NPC.AnticipationTeleport" sprite="gazerSprite" isLoop="false" animTime="600">
				<Frame>0, 7</Frame>
				<Frame>1, 7</Frame>
				<Frame>2, 7</Frame>
				<Frame>3, 7</Frame>
				<Frame>4, 7</Frame>
				<Frame>5, 7</Frame>
			</SpriteAnimation>				
			<SpriteAnimation name="d_sprite_invisible" playOnState="NPC.Teleport|NPC.TeleportAttackParticle" sprite="gazerSprite" isLoop="true" animTime="1">
				<Frame>4, 2</Frame>
			</SpriteAnimation>			
			<SpriteAnimation name="e_sprite_end_teleport" sprite="gazerSprite" playOnState="NPC.TeleportEnd" isLoop="false" animTime="600">
				<Frame>5, 7</Frame>
				<Frame>4, 7</Frame>
				<Frame>3, 7</Frame>
				<Frame>2, 7</Frame>
				<Frame>1, 7</Frame>
				<Frame>0, 7</Frame>
			</SpriteAnimation>
			<SpriteAnimation name="f_sprite_anticipation_laser_beam" playOnState="NPC.AnticipationLaserBeam" sprite="gazerSprite" isLoop="false" animTime="500">
				<Frame>0, 5</Frame>
				<Frame>1, 5</Frame>
				<Frame>2, 5</Frame>
				<Frame>3, 5</Frame>
				<Frame>4, 5</Frame>
			</SpriteAnimation>
			<SpriteAnimation name="g_sprite_anticipation_fire" playOnState="NPC.AnticipationFireBall" sprite="gazerSprite" isLoop="false" animTime="400">
				<Frame>0, 4</Frame>
				<Frame>1, 4</Frame>
				<Frame>2, 4</Frame>
				<Frame>3, 4</Frame>
			</SpriteAnimation>
			<SpriteAnimation name="h_sprite_fire_attack" playOnState="NPC.AttackProjectile" sprite="gazerSprite" isLoop="false" animTime="400">
				<Frame>0, 4</Frame>
				<Frame>1, 4</Frame>
				<Frame>2, 4</Frame>
				<Frame>3, 4</Frame>
			</SpriteAnimation>
		</Animations>
		<ParticleSystems>
			<ParticleSystem name="ps_MuzzleFlash">
				<Emitter>
					<Set name="offset">0, 0</Set>
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="offsetFacing">true</Set>
					<Set name="emissionInterval">3.9</Set>
					<Set name="checkParticleNumToEmit">true</Set>
					<Set name="particlesPerEmission">4</Set>
					<Set name="particlesToEmit">1</Set>
				</Emitter>
				<Particle usePlayerFacing="true">
					<Set name="inSpecificOrder">true</Set>
					<Select name="offset" input="particleIndex">
						<Item>44,-22</Item>
						<Item>40,42</Item>
						<Item>-35,44</Item>
						<Item>-39.5,-40</Item>
					</Select>
					<Curve name="initialScale">
						<KeyFrame>0, 2,2</KeyFrame>
						<KeyFrame>0.3, 4,4</KeyFrame>
						<KeyFrame>1, 2,2</KeyFrame>
					</Curve>
					<Set name="relativeToEmitter">true</Set>
					<Set name="sprite">s_Muzzle</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>0.95, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="lifeTime">4.1</Set>
					<Set name="collisionType">
						<CollisionType>PROJECTILES_ENEMY</CollisionType>
					</Set>
					<Set name="collisionFlag">
						<CollisionFlag>PLAYERS</CollisionFlag>
					</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="laserbeam_particle" updateState="NPC.AttackLaserBeam">
				<Emitter>
					<Set name="offsetFacing">true</Set>
					<Set name="offset">0, 0</Set>
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="checkParticleNumToEmit">true</Set>
					<Set name="particlesPerEmission">4</Set>
					<Set name="particlesToEmit">1</Set>
				</Emitter>
				<Particle usePlayerFacing="true">
					<Set name="inSpecificOrder">true</Set>
					<Set name="sprite">laserBeamSprite</Set>
					<Set name="relativeToEmitter">true</Set>
					<Select name="offset" input="particleIndex">
						<Item>44,-22</Item>
						<Item>40,42</Item>
						<Item>-35,44</Item>
						<Item>-39.5,-40</Item>
					</Select>
					<Set name="renderAlignment">RIGHT_CENTER</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Set name="lifeTime">4</Set>
					<Set name="collisionDamageAmount">100</Set>
					<Set name="destroyOnCollision">false</Set>
					<Set name="collisionSize">32,32</Set>
					<Set name="initialAngle">90</Set>
					<Increment name="initialAngle" source="particleIndex" multiplier="90"/>
					<Set name="finalAngle">140</Set>
					<Increment name="finalAngle" source="particleIndex" multiplier="90"/>
					<Set name="interpolateAngle">true</Set>
					<Set name="initialScale">25,1</Set>
					<Set name="collisionType">
						<CollisionType>PROJECTILES_ENEMY</CollisionType>
					</Set>
					<Set name="collisionFlag">
						<CollisionFlag>PLAYERS</CollisionFlag>
					</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="teleportMuzzleParticle" updateStage="Update" updateState="NPC.TeleportAttackParticle">
				<Emitter>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">teleportParticleSprite</Set>
					<Set name="lifeTime">0.3</Set>
					<Set name="collisionDamageAmount">50</Set>
					<Set name="destroyOnCollision">false</Set>
					<Set name="collisionSize">140,140</Set>
					<Curve name="initialScale">
						<KeyFrame>0, 1, 1</KeyFrame>
						<KeyFrame>1, 2, 2</KeyFrame>
					</Curve>
					<Set name="collisionType">
						<CollisionType>PROJECTILES_ENEMY</CollisionType>
					</Set>
					<Set name="collisionFlag">
						<CollisionFlag>PLAYERS</CollisionFlag>
					</Set>
				</Particle>
			</ParticleSystem>		
			<ParticleSystem name="ps_HitEffect" updateStage="OnDamaged">
				<Emitter>
					<Set name="particlesPerEmission">10</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_HitEffect</Set>
					<Set name="rotateWithVelocity">true</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 0</KeyFrame>
						<KeyFrame>0.4, 0</KeyFrame>
						<KeyFrame>0.41, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="initialScale">0.5,0.5</Set>
					<Set name="lifeTime">0.5</Set>
					<Set name="initalRGB">0.44,0.27,0.48</Set>
					<RandomRadial name="initialVelocity" angleRange="0,360" radiusRange="30,90" />
				</Particle>
			</ParticleSystem>
		</ParticleSystems>
		<Components>
			<Info/>
			<MustKillNPC/>
			<TintOverrideCmp/>
			<AttachmentSlotsCmp/>
			<Enemy>
				<Set name="SoulsReward">200</Set>
				<Set name="destroyTileId">3452</Set>
			</Enemy>
			<Movement/>
			<Damage>
				<Set name="damage">20</Set>
			</Damage>
			<IsBossNPC>
				<Set name="displayName">"Dreadgazer"</Set>
			</IsBossNPC>
			<NPCRenderActionCmp/>
			<StateMachine/>
			<Physics>
				<Set name="acceleration">0, 0</Set>
				<Set name="mass">20</Set>
				<Set name="drag">1.25, 1.25</Set>
			</Physics>
			<Health>
				<Set name="healthAmount">20000</Set>
				<Set name="maxHealth">20000</Set>
			</Health>
			<CollisionBox>
				<Set name="size">128,128</Set>
				<Set name="CollisionFlag">"PLAYERS|PROJECTILES"</Set>
				<Set name="CollisionType">"ENEMY_NPC"</Set>
			</CollisionBox>
			<DebugDraw/>
		</Components>
	</Data>
	<RenderRules>
		<Render>
			<SpriteRender name="gazerSprite"/>
			<Translate>0,-16,0</Translate>
			<NPCHealthBarRender TexturePath="interface/large/gui_event_npchealth_bar.rttex" TextureSize="17,9" TextureCoordinates="0,0" onState="NPC.FlyPatrol|NPC.AnticipationLaserBeam|NPC.AnticipationFireBall|NPC.AttackProjectile|NPC.AttackLaserBeam"/>
			<ParticleSystemRender name="laserbeam_particle"/>
			<ParticleSystemRender name="ps_MuzzleFlash"/>
		</Render>
		<Update>
			<ParticleSystemUpdate name="laserbeam_particle" onState="NPC.AttackLaserBeam"/>
			<ParticleSystemUpdate name="ps_MuzzleFlash" onState="NPC.AttackLaserBeam"/>
		</Update>
	</RenderRules>
</ItemRenderer>