<?xml version="1.0" encoding="utf-8"?>
<ItemRenderer NPCType="DiamondDestructoBoss" NPCTypeID="13">
	<Data>
		<Sprite name="iceSpikesSprite" fileName="game/npc1.rttex" textureSize="32" frame="31,8" />
		<Sprite name="slashSprite" fileName="game/npc1.rttex" textureSize="32" frame="29,8"/>
		<Sprite name="destructoSprite" fileName="game/npc2.rttex" textureSize="64" frame="0,2"/>
		<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="5">
						<PatrolSpeed>80</PatrolSpeed>
						<PatrolRange>350</PatrolRange>
						<StayHome>false</StayHome>
					</NPCFlyingPatrol>
					<NPCFlyingDash name="SlamAttack" ExitTime="0.32">
						<DashVelocity>0, 400</DashVelocity>
					</NPCFlyingDash>
					<NPCStationary name="SlamAttackParticle" ExitTime="0.64"/>
					<NPCFlyingAttack name="AttackProjectile" ExitTime="1">
						<AttackTimeoutInSeconds>0</AttackTimeoutInSeconds>
						<ProjectileName>"DiamondDestructoProjectile"</ProjectileName>
					</NPCFlyingAttack>
					<NPCStationary name="SlashWave" ExitTime="1"/>
					<NPCAnticipation name="AnticipationSlam" ExitTime="0.64"/>
					<NPCAnticipation name="AnticipationSlashWave" ExitTime="0.64"/>
					<NPCAnticipation name="AnticipationProjectileAttack" ExitTime="0.64"/>
				</States>
				<Transitions>
					<Transition to="FlyPatrol" from="ShieldState|SlamAttackParticle|AttackProjectile|SlashWave"/>				
					<Transition to="AnticipationSlam" from="FlyPatrol">
						<Condition>
							<CheckRandomRangeNumber EndNumber="4">0</CheckRandomRangeNumber>
						</Condition>
					</Transition>					
					<Transition to="SlamAttack" from="AnticipationSlam"/>							
					<Transition to="SlamAttackParticle" from="SlamAttack">
						<Condition>
							<IsOnGround>true</IsOnGround>
						</Condition>
					</Transition>	
					<Transition to="AnticipationSlashWave" from="FlyPatrol">
						<Condition>
							<CheckRandomRangeNumber EndNumber="4">1</CheckRandomRangeNumber>
						</Condition>
					</Transition>
					<Transition to="SlashWave" from="AnticipationSlashWave"/>					
					<Transition to="AnticipationProjectileAttack" from="FlyPatrol">
						<Condition>
							<CheckRandomRangeNumber EndNumber="4">2</CheckRandomRangeNumber>
						</Condition>
					</Transition>
					<Transition to="AttackProjectile" from="AnticipationProjectileAttack"/>
					<Transition to="ShieldState" from="FlyPatrol">
						<Condition type="and">
							<CheckRandomRangeNumber operatorType="Less" EndNumber="101">30</CheckRandomRangeNumber>
							<CheckNumberAttachedEntities operatorType="Less">1</CheckNumberAttachedEntities>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
		</StateMachines>
		<Animations>
			<SpriteAnimation name="a_sprite_default" playOnState="NPC.FlyPatrol" sprite="destructoSprite" isLoop="true" animTime="300">
				<Frame>0, 3</Frame>
				<Frame>1, 3</Frame>
				<Frame>2, 3</Frame>
			</SpriteAnimation>				
			<SpriteAnimation name="c_sprite_AnticipationSlam" playOnState="NPC.AnticipationSlam" sprite="destructoSprite" isLoop="true" animTime="100">
				<Frame>4, 4</Frame>
			</SpriteAnimation>					
			<SpriteAnimation name="e_sprite_AnticipationSlashWave" sprite="destructoSprite" playOnState="NPC.AnticipationSlashWave" isLoop="true" animTime="100">
				<Frame>0, 4</Frame>
			</SpriteAnimation>
			<SpriteAnimation name="f_sprite_AnticipationProjectileAttack" playOnState="NPC.AnticipationProjectileAttack" sprite="destructoSprite" isLoop="false" animTime="600">
				<Frame>0, 2</Frame>
				<Frame>1, 2</Frame>
				<Frame>2, 2</Frame>
				<Frame>3, 2</Frame>
				<Frame>4, 2</Frame>
				<Frame>5, 2</Frame>
			</SpriteAnimation>
			
			<SpriteAnimation name="h_sprite_AttackProjectile_attack" playOnState="NPC.AttackProjectile" sprite="destructoSprite" isLoop="false" animTime="50">
				<Frame>4, 4</Frame>
			</SpriteAnimation>
			<SpriteAnimation name="h_sprite_SlashWave_attack" playOnState="NPC.SlashWave" sprite="destructoSprite" isLoop="true" animTime="50">
				<Frame>1, 4</Frame>
			</SpriteAnimation>
			<SpriteAnimation name="h_sprite_SlamAttack_attack" playOnState="NPC.SlamAttack" sprite="destructoSprite" isLoop="false" animTime="50">
				<Frame>3, 4</Frame>
			</SpriteAnimation>
		</Animations>
		<ParticleSystems>
			<ParticleSystem name="slash_particle">
				<Emitter>
					<Set name="offset">64,64</Set>
					<Set name="emissionInterval">2.1</Set>
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">1</Set>
					<Set name="offsetFacing">true</Set>
				</Emitter>
				<Particle usePlayerFacing="true">
					<Set name="renderAlignment">DOWN_CENTER</Set>
					<Set name="sprite">slashSprite</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Set name="lifeTime">2</Set>
					<Set name="collisionDamageAmount">100</Set>
					<Set name="destroyOnCollision">false</Set>
					<Set name="collisionSize">64,128</Set>
					<Set name="initialScale">2,4</Set>
					<Set name="initialVelocity">90,0</Set>
					<Set name="collisionType">
						<CollisionType>PROJECTILES_ENEMY</CollisionType>
					</Set>
					<Set name="collisionFlag">
						<CollisionFlag>PLAYERS</CollisionFlag>
					</Set>
				</Particle>
			</ParticleSystem>	
			<ParticleSystem name="ice_spikes_particle_right">
				<Emitter>
					<Set name="offset">0,0</Set>
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">6</Set>
					<Set name="checkParticleNumToEmit">true</Set>
					<Set name="particlesToEmit">1</Set>
				</Emitter>
				<Particle usePlayerFacing="true">
					<Select name="offset" input="particleIndex">
						<Item>5,48</Item>
						<Item>15,48</Item>
						<Item>45,48</Item>
						<Item>75,48</Item>
						<Item>90,48</Item>
						<Item>105,48</Item>
					</Select>
					<Set name="sprite">iceSpikesSprite</Set>
					<Set name="renderAlignment">DOWN_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="initialScale">1.2,0.15</Set>
					<Set name="finalScale">1.2,0.35</Set>
					<Set name="collisionType">
						<CollisionType>PROJECTILES_ENEMY</CollisionType>
					</Set>
					<Set name="collisionFlag">
						<CollisionFlag>PLAYERS</CollisionFlag>
					</Set>
					<Increment name="initialScale" source="particleIndex" multiplier="0.05,0.35"/>
				</Particle>
			</ParticleSystem>	
			<ParticleSystem name="ice_spikes_particle_left">
				<Emitter>
					<Set name="offset">0,0</Set>
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">6</Set>
					<Set name="checkParticleNumToEmit">true</Set>
					<Set name="particlesToEmit">1</Set>
				</Emitter>
				<Particle usePlayerFacing="true">
					<Select name="offset" input="particleIndex">
						<Item>-5,48</Item>
						<Item>-15,48</Item>
						<Item>-45,48</Item>
						<Item>-75,48</Item>
						<Item>-90,48</Item>
						<Item>-105,48</Item>
					</Select>
					<Set name="sprite">iceSpikesSprite</Set>
					<Set name="renderAlignment">DOWN_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="initialScale">1.2,0.15</Set>
					<Set name="finalScale">1.2,0.35</Set>
					<Set name="collisionType">
						<CollisionType>PROJECTILES_ENEMY</CollisionType>
					</Set>
					<Set name="collisionFlag">
						<CollisionFlag>PLAYERS</CollisionFlag>
					</Set>
					<Increment name="initialScale" source="particleIndex" multiplier="0.05,0.35"/>
				</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.1,0.27,0.75</Set>
					<RandomRadial name="initialVelocity" angleRange="0,360" radiusRange="30,90" />
				</Particle>
			</ParticleSystem>
		</ParticleSystems>
		<Components>
			<Info/>
			<MustKillNPC/>
			<AttachmentSlotsCmp/>
			<TintOverrideCmp/>
			<Enemy>
				<Set name="SoulsReward">0</Set>
				<Set name="destroyTileId">440</Set>
			</Enemy>
			<Movement/>
			<Damage>
				<Set name="damage">20</Set>
			</Damage>
			<IsBossNPC>
				<Set name="displayName">"Diamond Destructor"</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">80,96</Set>
				<Set name="CollisionFlag">"PLAYERS|PROJECTILES"</Set>
				<Set name="CollisionType">"ENEMY_NPC"</Set>
			</CollisionBox>
			<DebugDraw/>
		</Components>
	</Data>
	<RenderRules>
		<Render>
			<SpriteRender name="destructoSprite" scale="2,2" offset="0,-20"/>
			<Translate>0,-16,0</Translate>
			<NPCHealthBarRender TexturePath="interface/large/gui_event_npchealth_bar.rttex" TextureSize="17,9" TextureCoordinates="0,0" />
		</Render>
		<Update>
			<ParticleSystemUpdate name="slash_particle" onState="NPC.SlashWave"/>
			<ParticleSystemUpdate name="ice_spikes_particle_right" onState="NPC.SlamAttackParticle"/>
			<ParticleSystemUpdate name="ice_spikes_particle_left" onState="NPC.SlamAttackParticle"/>
		</Update>
	</RenderRules>
</ItemRenderer>