Advertisement
Chronos_Ouroboros

Empress

Aug 12th, 2015
552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.72 KB | None | 0 0
  1. //===========================================================================
  2. //
  3. // Empress (Female Heresiarch)
  4. //
  5. //===========================================================================
  6. actor S7_IsEmpress : boolean { }
  7. actor S7_EmpressBalls : counter { inventory.MaxAmount 4 }
  8. actor S7_Empress replaces cyberdemon {
  9. health 4000
  10. radius 40
  11. height 110
  12. mass 1000
  13. speed 20
  14. painChance 15
  15. monster
  16. minMissileChance 160
  17. obituary "$OB_CYBORG"
  18. seeSound "cyber/sight"
  19. painSound "cyber/pain"
  20. deathSound "cyber/death"
  21. activeSound "cyber/active"
  22.  
  23. +boss +missileMore +floorClip +noRadiusDMG
  24. +noTarget +dontMorph +bossDeath
  25. states {
  26. Spawn:
  27. TNT1 A 0 noDelay A_GiveInventory ("S7_IsEmpress", 1)
  28. Idle:
  29. HRFR A 10 A_Look
  30. loop
  31. See:
  32. HRFR AABBCCDD 4 A_Chase
  33. loop
  34. Missile:
  35. TNT1 A 0 A_Jump (64, "ShieldsUp") //"MissileAttack", "ShieldsUp")
  36. wait
  37. ShieldsUp:
  38. TNT1 A 0 A_JumpIfInventory ("S7_EmpressBalls", 1, "See")
  39. TNT1 A 0 A_ChangeFlag ("noPain", 1)
  40. HRFR EEEEEFFFFFFFFFF 1 A_FaceTarget
  41. TNT1 A 0 A_ChangeFlag ("noBlood", 1)
  42. TNT1 A 0 A_ChangeFlag ("reflective", 1)
  43. TNT1 A 0 A_GiveInventory ("S7_EmpressProtection", 1)
  44. HRFR FFFF 5 A_SpawnItemEx ("S7_EmpressInvulnOrbiter", 64.0, 0.0, 55.0, 0.0, 0.0, 0.0, 0.0, SXF_NoCheckPosition | SXF_SetMaster)
  45. /*HRFR F 5 A_SpawnItemEx ("S7_EmpressInvulnOrbiter", 64.0, 0.0, 55.0, 0.0, 0.0, 0.0, 0.0, SXF_NoCheckPosition | SXF_SetMaster)
  46. HRFR F 5 A_SpawnItemEx ("S7_EmpressInvulnOrbiter2", 64.0, 0.0, 55.0, 0.0, 0.0, 0.0, 0.0, SXF_NoCheckPosition | SXF_SetMaster)
  47. HRFR F 5 A_SpawnItemEx ("S7_EmpressInvulnOrbiter3", 64.0, 0.0, 55.0, 0.0, 0.0, 0.0, 0.0, SXF_NoCheckPosition | SXF_SetMaster)
  48. HRFR F 5 A_SpawnItemEx ("S7_EmpressInvulnOrbiter4", 64.0, 0.0, 55.0, 0.0, 0.0, 0.0, 0.0, SXF_NoCheckPosition | SXF_SetMaster)*/
  49. TNT1 A 0 A_ChangeFlag ("noPain", 0)
  50. goto See
  51. Pain:
  52. HRFR G 8 A_Pain
  53. goto See
  54. Pain.Empress_BallExploded:
  55. HRFR G 13 A_Pain
  56. goto See
  57. Death:
  58. TNT1 A 0 A_KillChildren
  59. stop
  60. }
  61. }
  62.  
  63. actor S7_EmpressProtection : PowerProtection {
  64. damageFactor "Normal", 0.0
  65. damageFactor "Empress_BallExploded", 1.0
  66. }
  67.  
  68. actor S7_EmpressInvulnOrbiter {
  69. health 100
  70. radius 20
  71. renderStyle Add
  72. +isMonster +shootable +noTeleport +noBlood
  73. +noTargetSwitch +noGravity +forceXYBillboard
  74.  
  75. var int user_angle;
  76. var int user_countdown;
  77. var int user_loop;
  78. states {
  79. Spawn:
  80. TNT1 A 0 noDelay A_RearrangePointers (AAPTR_Master, AAPTR_Default, AAPTR_Master)
  81. TNT1 A 0 A_JumpIfInventory ("S7_IsEmpress", 1, "Initialize", AAPTR_Master)
  82. TNT1 A 0 A_Die
  83. goto Death
  84.  
  85. Initialize:
  86. TNT1 A 0 A_GiveInventory ("S7_EmpressBalls", 1, AAPTR_Master)
  87. TNT1 A 0 A_SetUserVar ("user_countdown", 35 * 12)
  88. TNT1 A 0 A_ChangeFlag ("isMonster", 0)
  89.  
  90. Idle:
  91. BAL1 A 1 bright A_Warp (AAPTR_Master, 64.0, 0.0, 55.0, user_angle, WARPF_AbsoluteAngle | WARPF_NoCheckPosition | WARPF_Interpolate)
  92. TNT1 A 0 A_SetUserVar ("user_countdown", user_countdown - 1)
  93. TNT1 A 0 A_SetUserVar ("user_angle", user_angle + 18)
  94. CountdownChecks:
  95. TNT1 A 0 A_JumpIf (user_countdown > 0, "Idle")
  96. TNT1 A 0 A_Die ("TimeOver")
  97. TNT1 A 0 A_Jump (256, "Death.TimeOver")
  98. wait
  99.  
  100. Death:
  101. TNT1 A 1 A_GiveInventory ("S7_EmpressInvulnOrbiterDeath", 1, AAPTR_Master)
  102. TNT1 A 0 A_DamageMaster (Random (1, 8) * 8, "Empress_BallExploded") // That's gotta hurt.
  103. // Explosion here
  104. stop
  105. Death.TimeOver:
  106. BAL1 A 1 bright A_Warp (AAPTR_Master, 64.0, 0.0, 55.0, user_angle, WARPF_AbsoluteAngle | WARPF_NoCheckPosition | WARPF_Interpolate)
  107. TNT1 A 0 A_SetUserVar ("user_angle", user_angle + 18)
  108. TNT1 A 0 A_FadeOut (0.03, 0)
  109. TNT1 A 0 A_JumpIf (alpha <= 0, "KILLKILLKILL")
  110. loop
  111. KILLKILLKILL:
  112. TNT1 A 1 A_GiveInventory ("S7_EmpressInvulnOrbiterDeath", 1, AAPTR_Master)
  113. stop
  114. }
  115. }
  116.  
  117. actor S7_EmpressInvulnOrbiterDeath : S7_ActionRunnerBase {
  118. states {
  119. Use:
  120. TNT1 A 0 A_JumpIfInventory ("S7_IsEmpress", 1, "IsEmpress")
  121. goto Finish
  122. IsEmpress:
  123. TNT1 A 0 A_TakeInventory ("S7_EmpressBalls", 1) // Ouch.
  124. TNT1 A 0 A_JumpIfInventory ("S7_EmpressBalls", 1, "Finish")
  125. TNT1 A 0 A_ChangeFlag ("noBlood", 0)
  126. TNT1 A 0 A_ChangeFlag ("reflective", 0)
  127. TNT1 A 0 A_TakeInventory ("S7_EmpressProtection", 1)
  128. Finish:
  129. TNT1 A 0 A_RailWait
  130. stop
  131. }
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement