ACTOR SanaeKochiya 31460
{
//Enemy Name: Sanae Kochiya
//Monster Tier: Revenant
//Enemy Tier: Boss (Touhou)
//Difficulty: Hard (6/10)
  Tag "$NESanae"
  Speed 8
  MONSTER
  Health 4000
  Radius 24
  Height 64
  Scale 0.7
  Mass 1000
  MeleeThreshold 64
  MeleeRange 64
  Species "Touhou"
  MinMissileChance 160
  +MISSILEMORE
  +QUICKTORETALIATE
  +DONTHURTSPECIES
  +LOOKALLAROUND
  +FLOORCLIP
  +DONTRIP
  +NORADIUSDMG
  +BOSS
  +DONTMORPH
  +NOICEDEATH
  DamageFactor "Touhou", 0
  DamageFactor "Legendary", 0.5
  DropItem "ChaosEssence" 256 1
  DropItem "BossArmorBonusMax" 255 1
  DropItem "DemonicChalice" 32
  DropItem "SkullOfPower" 32
  Painchance 8
  Seesound ""
  Painsound "touhou/pain"
  Deathsound "touhou/rekt"
  Obituary "%o was miraculously defeated by Sanae."
  var int user_counter;
  var int user_loop;
  var int user_music;
  var int user_lowlag;
  DropItem ""
  States
  {
  Spawn:
	SANA A 0
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetCVar",11) == 1, "BegoneThot")
	TNT1 A 0 ACS_NamedExecuteAlways("WimpyMode",0,2)
	TNT1 A 0 ACS_NamedExecuteAlways("ModifyMonster",0,2)
	TNT1 A 0 A_SetInvulnerable
	TNT1 A 0 A_ChangeFlag("NODAMAGE",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
  SpawnLoop:
	SANA ABCDEFGH 3 A_LookEX(LOF_FULLVOLSEESOUND,0,0,0,360,"See")
	Loop
  BegoneThot:
	TNT1 A 0 A_SpawnItemEx("Revenant",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	TNT1 A 0 A_ChangeFlag("COUNTKILL", FALSE)
	TNT1 A 0
	Stop
  See:
	TNT1 A 0 A_PlaySound("touhou/sight",7,1.0,0,ATTN_NONE)
	TNT1 A 0 A_UnSetInvulnerable
	TNT1 A 0 A_ChangeFlag("NODAMAGE",0)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
  See2:
	TNT1 A 0 A_JumpIf(user_lowlag == 1,"MoreSee")
	TNT1 A 0 A_JumpIfTargetInLOS("MoreSee",0,0,0,0)
	SANA ABCDEFGH 3 A_Chase
	Loop
  MoreSee:
	TNT1 A 0 A_SetUserVar("user_lowlag",1)
	TNT1 A 0 A_JumpIf(user_music == 1,3)
	TNT1 A 0 ACS_NamedExecuteAlways("CFMusic",0,821)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 NoiseAlert(0,0)
	SANA AAABBBCCCDDDEEEFFFGGGHHH 1 A_Chase
	Loop
  Pain:
	SANA A 0 A_SetTranslucent(1.0)
	SANA I 4 A_Pain
	SANA JKJI 4
	Goto MoreSee
  Melee:
	SNAT A 0 A_Jump(128,"Missile")
	SNAT A 0 A_Jump(256,"Melee1","Melee2","Melee3","Melee4","Melee5")
  Melee1:
	SNAT JKLM 2 A_FaceTarget
	SNAT NN 1 A_CustomMeleeAttack(400,"touhou/remi/hit","none","Touhou")
	SNAT OPQR 2 A_FaceTarget
	Goto MoreSee
  Melee2:
	SNAT STUV 4 A_FaceTarget
	SNAT WWWW 1 A_CustomMeleeAttack(400,"touhou/remi/hit","none","Touhou")
	SNAT XYZ 4 A_FaceTarget
	Goto MoreSee
  Melee3:
	SNA2 AB 4 A_FaceTarget
	SNA2 CD 3 A_FaceTarget
	SNA2 EEEE 1 A_CustomMeleeAttack(350,"touhou/remi/hit","none","Touhou")
	SNA2 FGHI 3 A_FaceTarget
	Goto MoreSee
  Melee4:
	SNA2 JKLMN 2 A_FaceTarget
	SNA2 OO 1 A_CustomMeleeAttack(500,"touhou/remi/hit","none","Touhou")
	SNA2 PQRS 2 A_FaceTarget
	Goto MoreSee
  Melee5:
	SNA3 ABC 4 A_FaceTarget
	SNA3 DDDD 1 A_CustomMeleeAttack(300,"touhou/remi/hit","none","Touhou")
	SNA3 EFGHI 4 A_FaceTarget
	Goto MoreSee
  Missile:
	SANA A 0 A_Jump(224,"SmallStars","Amulets1","Amulets2","Snakes","MightyWind")
	Goto Spellcard
  SmallStars:
	SNAT JKLM 2 A_FaceTarget
	SNAT W 0 A_PlaySound("remishot",CHAN_BODY,1,0)
	SNAT N 0 A_CustomMissile("SanaeSmallStar",32,0,-45)
	SNAT N 0 A_CustomMissile("SanaeSmallStar",32,0,45)
	SNAT N 0 A_CustomMissile("SanaeSmallStar",32,0,-30)
	SNAT N 0 A_CustomMissile("SanaeSmallStar",32,0,30)
	SNAT N 0 A_CustomMissile("SanaeSmallStar",32,0,-15)
	SNAT N 0 A_CustomMissile("SanaeSmallStar",32,0,15)
	SNAT N 2 A_CustomMissile("SanaeSmallStar",32,0,0)
	SNAT OPQR 2 A_FaceTarget
	SNAT A 0 A_Jump(64,"Missile")
	Goto MoreSee
  Amulets1:
	SNAT STUV 4 A_FaceTarget
	SNAT W 0 A_PlaySound("remishot",CHAN_BODY,1,0)
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Amulets1Loop:
	SNAT W 0 A_CustomMissile("SanaeAmulet1",sin(user_loop)*6+32,cos(user_loop)*96,0,CMF_AIMOFFSET)
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+30)
	TNT1 A 0 A_JumpIf(user_loop <= 330,"Amulets1Loop")
	SNAT W 2 A_CustomMissile("SanaeAmulet1",sin(330)*6+32,cos(330)*96,0,CMF_AIMOFFSET)
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Amulets1Loop2:
	SNAT W 0 A_CustomMissile("SanaeAmulet2",sin(user_loop)*12+32,cos(user_loop)*128,0,CMF_AIMOFFSET)
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+30)
	TNT1 A 0 A_JumpIf(user_loop <= 330,"Amulets1Loop2")
	SNAT W 2 A_CustomMissile("SanaeAmulet2",sin(330)*12+32,cos(330)*128,0,CMF_AIMOFFSET)
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Amulets1Loop3:
	SNAT W 0 A_CustomMissile("SanaeAmulet3",sin(user_loop)*18+32,cos(user_loop)*160,0,CMF_AIMOFFSET)
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+30)
	TNT1 A 0 A_JumpIf(user_loop <= 330,"Amulets1Loop3")
	SNAT X 2 A_CustomMissile("SanaeAmulet3",sin(330)*18+32,cos(330)*160,0,CMF_AIMOFFSET)
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Amulets1Loop4:
	SNAT W 0 A_CustomMissile("SanaeAmulet4",sin(user_loop)*24+32,cos(user_loop)*192,0,CMF_AIMOFFSET)
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+30)
	TNT1 A 0 A_JumpIf(user_loop <= 330,"Amulets1Loop4")
	SNAT X 2 A_CustomMissile("SanaeAmulet4",sin(330)*24+32,cos(330)*192,0,CMF_AIMOFFSET)
	TNT1 A 0 A_SetUserVar("user_loop",0)
	SNAT YZ 4 A_FaceTarget
	SNAT A 0 A_Jump(64,"Missile")
	Goto MoreSee
  Amulets2:
	SNA2 ABCD 4 A_FaceTarget
	SNAT W 0 A_PlaySound("remishot",CHAN_BODY,1,0)
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Amulets2Loop:
	SNAT W 0 A_CustomMissile("SanaeAmulet1",sin(user_loop)*6+32,cos(user_loop)*96,0)
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+30)
	TNT1 A 0 A_JumpIf(user_loop <= 330,"Amulets1Loop")
	SNA2 E 2 A_CustomMissile("SanaeAmulet1",sin(330)*6+32,cos(330)*96,0)
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Amulets2Loop2:
	SNAT W 0 A_CustomMissile("SanaeAmulet2",sin(user_loop)*12+32,cos(user_loop)*128,0)
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+30)
	TNT1 A 0 A_JumpIf(user_loop <= 330,"Amulets1Loop2")
	SNA2 E 2 A_CustomMissile("SanaeAmulet2",sin(330)*12+32,cos(330)*128,0)
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Amulets2Loop3:
	SNAT W 0 A_CustomMissile("SanaeAmulet3",sin(user_loop)*18+32,cos(user_loop)*160,0)
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+30)
	TNT1 A 0 A_JumpIf(user_loop <= 330,"Amulets1Loop3")
	SNA2 F 2 A_CustomMissile("SanaeAmulet3",sin(330)*18+32,cos(330)*160,0)
	TNT1 A 0 A_SetUserVar("user_loop",0)
  Amulets2Loop4:
	SNAT W 0 A_CustomMissile("SanaeAmulet4",sin(user_loop)*24+32,cos(user_loop)*192,0)
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+30)
	TNT1 A 0 A_JumpIf(user_loop <= 330,"Amulets1Loop4")
	SNA2 F 2 A_CustomMissile("SanaeAmulet4",sin(330)*24+32,cos(330)*192,0)
	TNT1 A 0 A_SetUserVar("user_loop",0)
	SNA2 GHI 4 A_FaceTarget
	SNAT A 0 A_Jump(64,"Missile")
	Goto MoreSee
  Snakes:
	SNA2 JKLMN 2 A_FaceTarget
	SNAT W 0 A_PlaySound("remishot",CHAN_BODY,1,0)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,-90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,-45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,0)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-64,-90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-64,90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-64,-45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-64,45)
	SNA2 O 4 A_CustomMissile("SanaeSnakeBullet",32,-64,0)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,-90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,-45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,0)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-192,-90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-192,90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-192,-45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-192,45)
	SNA2 P 2 A_CustomMissile("SanaeSnakeBullet",32,-192,0)
	SNA2 QRS 2 A_FaceTarget
	SNA2 JKLMN 2 A_FaceTarget
	SNAT W 0 A_PlaySound("remishot",CHAN_BODY,1,0)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,-90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,-45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,0)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-64,-90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-64,90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-64,-45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-64,45)
	SNA2 O 4 A_CustomMissile("SanaeSnakeBullet",32,-64,0)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,-90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,-45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,0)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-192,-90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-192,90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-192,-45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-192,45)
	SNA2 P 2 A_CustomMissile("SanaeSnakeBullet",32,-192,0)
	SNA2 QRS 2 A_FaceTarget
	SNA2 JKLMN 2 A_FaceTarget
	SNAT W 0 A_PlaySound("remishot",CHAN_BODY,1,0)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,-90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,-45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,64,0)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-64,-90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-64,90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-64,-45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-64,45)
	SNA2 O 4 A_CustomMissile("SanaeSnakeBullet",32,-64,0)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,-90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,-45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,192,0)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-192,-90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-192,90)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-192,-45)
	SNA2 O 0 A_CustomMissile("SanaeSnakeBullet",32,-192,45)
	SNA2 P 2 A_CustomMissile("SanaeSnakeBullet",32,-192,0)
	SNA2 QRS 2 A_FaceTarget
	SNAT A 0 A_Jump(64,"Missile")
	Goto MoreSee
  MightyWind:
	SNA3 AB 4 A_FaceTarget
	SNAT W 0 A_PlaySound("remishot",CHAN_BODY,1,0)
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet1",random(8,56),0,random(-45,90))
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet2",random(8,56),0,random(-90,45))
	SNA3 C 2 A_FaceTarget
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet1",random(8,56),0,random(-45,90))
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet2",random(8,56),0,random(-90,45))
	SNA3 C 2 A_FaceTarget
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet1",random(8,56),0,random(-45,90))
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet2",random(8,56),0,random(-90,45))
	SNA3 D 1 A_FaceTarget
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet1",random(8,56),0,random(-45,90))
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet2",random(8,56),0,random(-90,45))
	SNA3 D 1 A_FaceTarget
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet1",random(8,56),0,random(-45,90))
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet2",random(8,56),0,random(-90,45))
	SNA3 D 1 A_FaceTarget
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet1",random(8,56),0,random(-45,90))
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet2",random(8,56),0,random(-90,45))
	SNA3 D 1 A_FaceTarget
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet1",random(8,56),0,random(-45,90))
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet2",random(8,56),0,random(-90,45))
	SNA3 E 1 A_FaceTarget
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet1",random(8,56),0,random(-45,90))
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet2",random(8,56),0,random(-90,45))
	SNA3 E 1 A_FaceTarget
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet1",random(8,56),0,random(-45,90))
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet2",random(8,56),0,random(-90,45))
	SNA3 E 1 A_FaceTarget
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet1",random(8,56),0,random(-45,90))
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet2",random(8,56),0,random(-90,45))
	SNA3 E 1 A_FaceTarget
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet1",random(8,56),0,random(-45,90))
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet2",random(8,56),0,random(-90,45))
	SNA3 F 2 A_FaceTarget
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet1",random(8,56),0,random(-45,90))
	SNA3 A 0 A_CustomMissile("SanaeMightyWindBullet2",random(8,56),0,random(-90,45))
	SNA3 F 2 A_FaceTarget
	SNA3 GHI 4 A_FaceTarget
	SNAT A 0 A_Jump(64,"Missile")
	Goto MoreSee
  Spellcard:
	//TNT1 A 0 A_JumpIfInventory("SpellcardInactive",1,"See") //Don't use Spellcards if actor is in inventory
	TNT1 A 0 A_ChangeFlag("NOPAIN", TRUE)
	SNAT ABCD 5 A_FaceTarget
	SNAT A 0 A_PlaySound("touhou/spellcard",0,1.0,0,ATTN_NONE)
	SNAT EFGHGFGHGFGH 3 A_FaceTarget
	SNAT I 5 A_FaceTarget
	TNT1 A 0 A_ChangeFlag("NOPAIN", FALSE)
	SNAT A 0 A_Jump(256,"GreyThaumaturgy","StarRitual","DivineWind")
	Goto GreyThaumaturgy
  GreyThaumaturgy:
	SASX A 0 A_SpawnItemEx("SanaeNSBigStarEffect",0,0,0,0,0,0,0,0,0)
	SASX ABCDEFGHIJK 3 A_FaceTarget
	SNAT W 0 A_PlaySound("remishot",CHAN_BODY,1,0)
	SASX A 0 A_CustomMissile("SanaeLargeStar",32,0,0)
	SASX A 0 A_CustomMissile("SanaeLargeStar1",32,0,0)
	SASX A 0 A_CustomMissile("SanaeLargeStar2",32,0,0)
	SASX A 0 A_CustomMissile("SanaeLargeStar3",32,0,0)
	SASX A 0 A_CustomMissile("SanaeLargeStar4",32,0,0)
	SASX A 0 A_CustomMissile("SanaeLargeStar5",32,0,0)
	SASX LMNOPQRSTUV 3 A_FaceTarget
	SASX ABCDEFGHIJKLMNOPQRSTUV 3 A_FaceTarget
	Goto MoreSee
  StarRitual:
	SASX A 0 A_SpawnItemEx("SanaeNSBigStarEffect",0,0,0,0,0,0,0,0,0)
	SASX ABCDEFGHIJK 3 A_FaceTarget
	SNAT W 0 A_PlaySound("remishot",CHAN_BODY,1,0)
	SASX A 0 A_CustomMissile("SanaeLargeStar",32,0,0)
	SASX A 0 A_CustomMissile("SanaeLargeStar",32,0,72)
	SASX A 0 A_CustomMissile("SanaeLargeStar",32,0,144)
	SASX A 0 A_CustomMissile("SanaeLargeStar",32,0,216)
	SASX A 0 A_CustomMissile("SanaeLargeStar",32,0,288)
	SASX A 0 A_CustomMissile("SanaeLargeStar1",32,0,0)
	SASX A 0 A_CustomMissile("SanaeLargeStar1",32,0,72)
	SASX A 0 A_CustomMissile("SanaeLargeStar1",32,0,144)
	SASX A 0 A_CustomMissile("SanaeLargeStar1",32,0,216)
	SASX A 0 A_CustomMissile("SanaeLargeStar1",32,0,288)
	SASX A 0 A_CustomMissile("SanaeLargeStar2",32,0,0)
	SASX A 0 A_CustomMissile("SanaeLargeStar2",32,0,72)
	SASX A 0 A_CustomMissile("SanaeLargeStar2",32,0,144)
	SASX A 0 A_CustomMissile("SanaeLargeStar2",32,0,216)
	SASX A 0 A_CustomMissile("SanaeLargeStar2",32,0,288)
	SASX LMNOPQRSTUV 3 A_FaceTarget
	Goto MoreSee
  DivineWind:
	TNT1 A 0 A_SetUserVar("user_counter",0)
	SNAT ABCDE 5 A_FaceTarget
  DivineWindLoop:
	TNT1 A 0 A_JumpIf(user_counter >= 8,"DivineWindEnd")
	TNT1 A 0 A_SetUserVar("user_counter",user_counter+1)
	SNAT W 0 A_PlaySound("remishot",CHAN_BODY,1,0)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,0)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,12)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,24)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,36)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,48)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,60)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,72)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,84)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,96)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,108)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,120)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,132)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,144)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,156)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,168)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,180)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,192)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,204)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,216)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,228)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,240)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,252)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,264)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,276)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,288)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,300)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,312)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,324)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,336)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet1",32,0,348)
	SNAT FGHG 3 A_FaceTarget
	SNAT W 0 A_PlaySound("remishot",CHAN_BODY,1,0)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,0)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,12)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,24)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,36)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,48)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,60)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,72)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,84)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,96)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,108)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,120)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,132)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,144)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,156)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,168)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,180)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,192)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,204)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,216)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,228)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,240)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,252)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,264)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,276)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,288)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,300)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,312)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,324)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,336)
	SNAT A 0 A_CustomMissile("SanaeMightyWindBullet2",32,0,348)
	SNAT FGHG 3 A_FaceTarget
	SNAT A 0 A_Jump(64,"Missile")
	Loop
  DivineWindEnd:
	SNAT HI 3 A_FaceTarget
	Goto MoreSee
  Death:
	SANA K 70 A_PlaySound("uroboros/death",5,1.0,0,ATTN_NONE)
	MYST K 0 A_Scream
	TNT1 A 0 A_NoBlocking
	TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame",0,0,20,random(-4,4),random(-4,4),random(0,3))
	TNT1 AAA 0 A_SpawnItemEx("Red2huBossDeathFlame3",0,0,20,random(-20,20),random(-20,20),random(0,20))
	TNT1 A 0 A_Explode(256,256,0)
	TNT1 AAA 0 A_CustomMissile("BigRedBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("2huBossDeathFlame", Random(-8,8), Random(-8,8), Random(12,80), Random(8,38), 0, Random(3,43), Random(-180,180))
	TNT1 A 15
	Stop
  }
}

ACTOR SanaeNSBigStarEffect
{
  +NOINTERACTION
  +CLIENTSIDEONLY
  RenderStyle Add
  States
  {
  Spawn:
	SNST A 0
	SNST A 0 A_SetTranslucent(0.1,1)
	SNST AAABBBCCCDDDEEEFFFAAABBBCCCDDDEEEFFF 1 Bright A_FadeIn(0.05)
	TNT1 A 0
	Stop
  }
}

ACTOR SanaeLargeStar
{
  Radius 10
  Height 20
  Speed 15
  damage 2
  DamageType "Touhou"
  Projectile
  +FORCEXYBILLBOARD
  +RIPPER
  RenderStyle Add
  Scale 2.0
  SeeSound ""
  DeathSound "touhou/hit"
  States
  {
  Spawn:
	SNST A 0
	SNST ABCDEFABC 4 Bright A_Explode(4,256,0,0,256)
	SNST DEFABCDEFABC 3 Bright A_Explode(4,256,0,0,256)
	SNST DEFABCDEFABCDEF 2 Bright A_Explode(4,256,0,0,256)
  LoopState:
	SNST ABCDEF 1 Bright A_Explode(4,256,0,0,256)
	Loop
  Death:
	SNST ABCDEFABCDEF 1 Bright A_FadeOut
	Stop
  }
}
ACTOR SanaeLargeStar1 : SanaeLargeStar
{
  States
  {
  Spawn:
	SNST A 0
	SNST A 1
	Goto "Super::Spawn"
  }
}
ACTOR SanaeLargeStar2 : SanaeLargeStar
{
  States
  {
  Spawn:
	SNST A 0
	SNST A 2
	Goto "Super::Spawn"
  }
}
ACTOR SanaeLargeStar3 : SanaeLargeStar
{
  States
  {
  Spawn:
	SNST A 0
	SNST A 3
	Goto "Super::Spawn"
  }
}
ACTOR SanaeLargeStar4 : SanaeLargeStar
{
  States
  {
  Spawn:
	SNST A 0
	SNST A 4
	Goto "Super::Spawn"
  }
}
ACTOR SanaeLargeStar5 : SanaeLargeStar
{
  States
  {
  Spawn:
	SNST A 0
	SNST A 5
	Goto "Super::Spawn"
  }
}

ACTOR SanaeSmallStar
{
  Radius 4
  Height 8
  Speed 15
  FastSpeed 20
  damage (16)
  DamageType "Touhou"
  Projectile
  +FORCEXYBILLBOARD
  +RIPPER
  RenderStyle Add
  Scale 0.5
  SeeSound ""
  DeathSound "touhou/hit"
  States
  {
  Spawn:
	SNST ABCDEF 1 Bright //A_JumpIfInTargetInventory("BulletDeathTrigger",1,"Death")
	Loop
  Death:
	SNST ABCDEFABCDEF 1 Bright A_FadeOut
	Stop
  }
}

ACTOR SanaeAmulet1
{
  Radius 2
  Speed 24
  fastspeed 36
  Height 4
  damage (32)
  DamageType "Touhou"
  Projectile
  +FORCEXYBILLBOARD
  //RenderStyle Add
  SeeSound ""
  DeathSound "touhou/hit"
  States
  {
  Spawn:
	VAMU A 1 Bright //A_JumpIfInTargetInventory("BulletDeathTrigger",1,"Death")
	Loop
  Death:
	VAMU AAAAAAAAAA 1 Bright A_FadeOut
	Stop
  }
}

ACTOR SanaeAmulet2 : SanaeAmulet1
{
  Speed 20
  fastspeed 30
}
ACTOR SanaeAmulet3 : SanaeAmulet1
{
  Speed 16
  fastspeed 24
}
ACTOR SanaeAmulet4 : SanaeAmulet1
{
  Speed 12
  fastspeed 18
}
ACTOR SanaeSnakeBullet
{
  Radius 2
  Speed 15
  Height 4
  damage (12)
  DamageType "Touhou"
  Projectile
  +FORCEXYBILLBOARD
  +SEEKERMISSILE
  RenderStyle Add
  SeeSound ""
  DeathSound "touhou/hit"
  States
  {
  Spawn:
	GBL1 A 1 Bright A_Weave(2, 0, 2.0, 0.0)
	GBL1 A 0 A_SeekerMissile(0, 20, SMF_PRECISE|SMF_LOOK)
	GBL1 A 0 A_SpawnItemEx("SanaeSnakeBulletTrail",0,0,0,0,0,0,0,0,0)
	Loop
  Death:
	GBL1 AAAAAAAAAA 1 Bright A_FadeOut
	Stop
  }
}
ACTOR SanaeSnakeBulletTrail
{
  +NOGRAVITY
  +NOINTERACTION
  +CLIENTSIDEONLY
  RenderStyle Add
  States
  {
  Spawn:
	GBL1 AAAAAAAAAAAA 1 Bright A_FadeOut(0.1)
	Stop
  }
}
ACTOR SanaeMightyWindBullet1
{
  Radius 4
  Height 8
  Speed 20
  fastspeed 30
  damage (80)
  DamageType "Touhou"
  Scale 1.3
  Projectile
  +FORCEXYBILLBOARD
  RenderStyle Add
  SeeSound ""
  DeathSound "touhou/hit"
  States
  {
  Spawn:
	CBL4 A 4 Bright //A_JumpIfInTargetInventory("BulletDeathTrigger",1,"Death")
	CBL4 A 0 A_SpawnItemEx("AyaYoukaiKillingFanBulletTrail",0,0,0,0,2,0,0,0,0)
	CBL4 A 0 A_SpawnItemEx("AyaYoukaiKillingFanBulletTrail",0,0,0,0,-2,0,0,0,0)
	CBL4 A 4 Bright //A_JumpIfInTargetInventory("BulletDeathTrigger",1,"Death")
	CBL4 A 0 A_SpawnItemEx("AyaYoukaiKillingFanBulletTrail",0,0,0,0,0,2,0,0,0)
	CBL4 A 0 A_SpawnItemEx("AyaYoukaiKillingFanBulletTrail",0,0,0,0,0,-2,0,0,0)
	CBL4 A 0 A_ScaleVelocity(0.9)
	CBL4 A 0 A_SetAngle(angle+6)
	CBL4 A 0 ThrustThing(angle*256/360, 4, 0, 0)
	Loop
  Death:
	CBL4 AAAAAAAAAA 3 Bright A_FadeOut
	Stop
  }
}

ACTOR SanaeMightyWindBullet2 : SanaeMightyWindBullet1
{
  States
  {
  Spawn:
	CBL4 A 4 Bright //A_JumpIfInTargetInventory("BulletDeathTrigger",1,"Death")
	CBL4 A 0 A_SpawnItemEx("AyaYoukaiKillingFanBulletTrail",0,0,0,0,2,0,0,0,0)
	CBL4 A 0 A_SpawnItemEx("AyaYoukaiKillingFanBulletTrail",0,0,0,0,-2,0,0,0,0)
	CBL4 A 4 Bright //A_JumpIfInTargetInventory("BulletDeathTrigger",1,"Death")
	CBL4 A 0 A_SpawnItemEx("AyaYoukaiKillingFanBulletTrail",0,0,0,0,0,2,0,0,0)
	CBL4 A 0 A_SpawnItemEx("AyaYoukaiKillingFanBulletTrail",0,0,0,0,0,-2,0,0,0)
	CBL4 A 0 A_ScaleVelocity(0.9)
	CBL4 A 0 A_SetAngle(angle-6)
	CBL4 A 0 ThrustThing(angle*256/360, 4, 0, 0)
	Loop
  Death:
	CBL4 AAAAAAAAAA 3 Bright A_FadeOut
	Stop
  }
}

ACTOR AyaYoukaiKillingFanBulletTrail
{
  +NOGRAVITY
  +NOINTERACTION
  +CLIENTSIDEONLY
  RenderStyle Add
  Scale 1.2
  States
  {
  Spawn:
	CBL4 AAAAAAAAAAAA 1 Bright A_FadeOut
	Stop
  }
}