Advertisement
Guest User

Untitled

a guest
Jul 16th, 2014
342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.67 KB | None | 0 0
  1. <?xml version="1.0"?>
  2. <!DOCTYPE TranscendenceExtension
  3. [
  4. ;6200-Lethal transmission; Virulent transmission
  5. <!ENTITY unidLTrans "0xE1286200">
  6. <!ENTITY vtLTransStation "0xE1286201">
  7. <!ENTITY svRadFaction "0xE1286202">
  8. <!ENTITY evzombiehandler "0xE1286203">
  9. <!ENTITY dsFourFire "0xE1286204">
  10. ]>
  11. <TranscendenceExtension UNID="&unidLTrans;" APIversion="22" name="Lethal Transmission" credit="RPC, FourFire for ideas">
  12. <!--
  13. Rules
  14. the game checks every 10 seconds for radioactive ships and tags them
  15. only radioactive ships that are tagged zombiefy (so radiation isn't guaranteed a zombie)
  16. zombies CAN have extra lives if they get themselves irradiated again
  17. otherwise it's only an extra life
  18.  
  19. I gave arco an omni actinide cannon so that he could irradiate the IAVs
  20. tell me if there are any problems
  21. -->
  22. <!--Zombie Sovereign-->
  23. <Sovereign UNID="&svRadFaction;"
  24. name="Za Zombeh"
  25. alignment="destructive chaos"
  26. >
  27. <Relationships>
  28. <Relationship sovereign="&svPlayer;" disposition="enemy" mutual="true"/>
  29. <Relationship sovereign="&svCentauriWarlords;" disposition="enemy" mutual="true"/>
  30. <Relationship sovereign="&svMarauders;" disposition="enemy" mutual="true"/>
  31. <Relationship sovereign="&svSettlers;" disposition="enemy" mutual="true"/>
  32. <Relationship sovereign="&svUrakWarlords;" disposition="enemy" mutual="true"/>
  33. <Relationship sovereign="&svBlackMarket;" disposition="enemy" mutual="true"/>
  34. <Relationship sovereign="&svSung;" disposition="enemy" mutual="true"/>
  35. <Relationship sovereign="&svDwargRaiders;" disposition="enemy" mutual="true"/>
  36. <Relationship sovereign="&svHuariEmpire;" disposition="enemy" mutual="true"/>
  37. <Relationship sovereign="&svGaianTerraformers;" disposition="enemy" mutual="true"/>
  38. <Relationship sovereign="&svcommonwealth;" disposition="enemy" mutual="true"/>
  39. <Relationship sovereign="&svRogueFleet;" disposition="enemy" mutual="true"/>
  40. <Relationship sovereign="&svAres;" disposition="enemy" mutual="true"/>
  41. </Relationships>
  42. </Sovereign>
  43. <!-- thanks Prophet!-->
  44.  
  45. <StationType UNID="&vtLTransStation;"
  46. name= "vtLTransStation"
  47. virtual= "True"
  48. >
  49. <Events>
  50. <OnGlobalSystemCreated>
  51. (block Nil
  52. (sysCreateStation &vtLTransStation; nil)
  53. )
  54. </OnGlobalSystemCreated>
  55. ;hook for zombies
  56. <GetGlobalDockScreen>
  57. (block Nil
  58. (PrintTo 'log 'derp10)
  59. (PrintTo 'log gSource)
  60. (PrintTo 'log (eq (ObjGetType gSource) &stRaisuStation;))
  61. (PrintTo 'log gScreen)
  62. (PrintTo 'log (eq gScreen "Main"))
  63. (switch
  64. (eq (ObjGetType gSource) &stRaisuStation;)
  65. (block (missionStatus)
  66. (setq missionStatus (objGetData gSource "missionStatus"))
  67.  
  68. (switch
  69. ; Mission in progress
  70. (eq missionStatus 'inprogress)
  71. "MissionInProgress"
  72.  
  73. ; See if player has destroyed target
  74. (eq missionStatus 'success)
  75. "MissionSuccess"
  76.  
  77. "Default"
  78. )
  79. (list &dsFourFire; 100)
  80. )
  81. )
  82. )
  83. </GetGlobalDockScreen>
  84. <OnCreate>
  85. (block Nil
  86. (sysAddObjRecurringTimerEvent 300 gSource "Radiation")
  87. )
  88. </OnCreate>
  89. <Radiation>
  90. (block Nil
  91. (enum (SysFindObject Nil "s") radded (block Nil
  92. (switch
  93. (objIsRadioactive radded)
  94. (block Nil
  95. (objRegisterForEvents gSource radded)
  96. )
  97. )
  98. ))
  99. )
  100. </Radiation>
  101. <OnObjDestroyed>
  102. (block (zombie itmToInstall)
  103. ;(plymessage gPlayer "zombie!")
  104. (setq zombie (sysCreateShip (ObjGettype aObjDestroyed) (ObjGetPos aObjDestroyed) &svRadFaction;))
  105. ;(objSetShowAsDestination zombie)
  106. (objSetEventHandler zombie &evzombiehandler;)
  107. ;remove old weapons
  108. (enum (objGetItems zombie "*Iw") theItem (block Nil
  109. (block Nil
  110. (Printto 'log "removal y-n?")
  111. (Printto 'log (shpRemoveDevice zombie theItem))
  112. )
  113. ))
  114. (setq itmToInstall (itmCreate &itWasteCannon; 1))
  115. (objAddItem zombie itmToInstall)
  116. (shpInstallDevice zombie itmToInstall)
  117. (shpSetCommandCode zombie (block Nil
  118. (shpOrder gSource 'attackNearestEnemy)
  119. ))
  120. )
  121. </OnObjDestroyed>
  122. </Events>
  123. </StationType>
  124. <DockScreen UNID="&dsFourFire;"
  125. name= ""
  126. backgroundID= "none"
  127. >
  128. <Panes>
  129. <Default>
  130. <OnPaneInit>
  131. (scrSetDesc gScreen (cat
  132. "The loud voices of a packed multitude bounce off every bulkhead and corridor in the station. "
  133. "Old air scrubbers pump a thin, odorous breeze out of rusty vents. Discarded packets of Salmonite and Red Nebula beer huddle in the corner.\n\n"
  134. "Welcome to " (objGetName gSource) "!"
  135. ))
  136. </OnPaneInit>
  137.  
  138. <Actions>
  139. <Action name="Meeting Hall" key="M" default="1">
  140. (block (missionStatus)
  141. ; Get some status
  142. (setq missionStatus (objGetData gSource "missionStatus"))
  143.  
  144. (switch
  145. ; If Arco Vaughn is dead, everyone is happy
  146. (eq (typGetGlobalData &scArcoVaughnHeavyRaider; "status") 'destroyed)
  147. (scrShowPane gScreen "MeetingHallHappy")
  148.  
  149. ; If the player declined, then everyone is still in fear
  150. (eq missionStatus 'declined)
  151. (scrShowPane gScreen "MeetingHallHiding")
  152.  
  153. ; If there are Centauri raiders in range, then everyone is hinding
  154. (sysFindObject gSource "s +centauriWarlords; N:100;")
  155. (scrShowPane gScreen "MeetingHallHiding")
  156.  
  157. ; Otherwise, see if we get a mission
  158. (block (centauriStations centauriStationsDestroyed theStation)
  159.  
  160. ; Count the number of Centauri stations in the system
  161. (setq centauriStations (sysFindObject gSource "T +centauriWarlords; +populated; -occupation; -uncharted;"))
  162. (setq centauriStationsDestroyed (filter centauriStations theStation (objIsAbandoned theStation)))
  163.  
  164. ; If more than 2 stations have been destroyed or if all stations
  165. ; have been destroyed, then the player gets the Arco Vaughn mission
  166. (if (or (geq (count centauriStationsDestroyed) 3)
  167. (eq (count centauriStations) (count centauriStationsDestroyed))
  168. (gr (objGetData gSource "raidersSummoned") 12)
  169. )
  170. (scrShowPane gScreen "MissionIntro")
  171. (scrShowPane gScreen "MeetingHallFearful")
  172. )
  173. )
  174. )
  175. )
  176. </Action>
  177.  
  178. <Action name="Undock" cancel="1" key="U">
  179. <Exit/>
  180. </Action>
  181.  
  182. </Actions>
  183.  
  184. </Default>
  185.  
  186. <MissionIntro>
  187. <OnPaneInit>
  188. (scrSetDesc gScreen (cat
  189. "The station master stands at her console. She runs towards you tearfully:\n\n"
  190. "\"Is it true? Have you fought the Centauri warlords? It's been so long since anyone stood up to them. Will you finish what you've begun? If you don't kill the rest of them now, we will be the ones who suffer. Arco Vaughn is the key. Kill him and the rest will leave us alone.\""
  191. ))
  192. </OnPaneInit>
  193.  
  194. <Actions>
  195. <Action name="Continue" key="C" default="1" cancel="1">
  196. (scrShowPane gScreen "Mission")
  197. </Action>
  198. </Actions>
  199. </MissionIntro>
  200.  
  201. <Mission>
  202. <OnPaneInit>
  203. (scrSetDesc gScreen (cat
  204. "\"I can help you; I'm not afraid anymore. Arco Vaughn lives deep in the outer belt&#x97;I can give you the coordinates. Kill him and we will all be free. Will you help us?\""
  205. ))
  206. </OnPaneInit>
  207.  
  208. <Actions>
  209. <Action name="Accept" key="A" default="1">
  210. (block (arcoVaughn target itmToInstall newitem)
  211. ; Track Arco Vaughn
  212. (setq arcoVaughn (sysFindObject gSource "sN +arcoVaughn;"))
  213. (objSetObjRefData gSource "target" arcoVaughn)
  214. (objRegisterForEvents gSource arcoVaughn)
  215.  
  216. ; Set the player to Arco Vaughn's habitat
  217. (setq target (sysFindObject gSource "TN +arcoVaughn;"))
  218. (if (or (not target)
  219. (eq (objGetEquipmentStatus gPlayerShip 'TargetingComputer) 'ready))
  220. (setq target arcoVaughn)
  221. )
  222. ;ZOMBIE HOOK
  223.  
  224. ;remove old weapons
  225. (enum (objGetItems arcoVaughn "*Iw") theItem (block Nil
  226. (block Nil
  227. (Printto 'log "removal y-n?")
  228. (Printto 'log (shpRemoveDevice arcoVaughn theItem))
  229. )
  230. ))
  231. ;add actinide weapon to arco
  232. (setq itmToInstall (itmCreate &itWasteCannon; 1))
  233. (objAddItem arcoVaughn itmToInstall)
  234. (setq newitem (shpInstallDevice arcoVaughn itmToInstall))
  235.  
  236. (objSetItemProperty arcoVaughn newitem 'FireArc 'omnidirectional)
  237.  
  238. ;also send light IAVs to attack arco
  239. (for FF 0 (random 5 8) (block (attack)
  240. (setq attack (sysCreateShip &scIAVLight; (setq pos (sysFindObject nil "GN")) &svCommonwealth;))
  241. (shporder attack 'attack arcoVaughn)
  242. ))
  243.  
  244. (shpCancelOrders gPlayerShip)
  245. (shpOrder gPlayerShip 'attack target)
  246.  
  247. ; Give the player some KM500 missiles
  248. (if (objGetItems gPlayerShip "lI -Disposable;")
  249. (setq gItem (itmCreate &itKM500Missile; (random 24 48)))
  250. (setq gItem (itmCreate &itDM1500MissileRack; 1))
  251. )
  252. (objAddItem gPlayerShip gItem)
  253.  
  254. ; Set mission
  255. (objSetData gSource "missionStatus" 'inprogress)
  256. (scrShowPane gScreen "MissionAccept")
  257. )
  258. </Action>
  259.  
  260. <Action name="Decline" key="D" cancel="1">
  261. (block Nil
  262. (objSetData gSource "missionStatus" 'declined)
  263. (scrShowPane gScreen "MissionDecline")
  264. )
  265. </Action>
  266. </Actions>
  267. </Mission>
  268.  
  269. <MissionAccept>
  270. <OnPaneInit>
  271. (scrSetDesc gScreen (cat
  272. "\"You will need all the power you can to kill him. "
  273. (if (gr (itmGetCount gItem) 1)
  274. (cat "I have some hidden " (itmGetName gItem 0x02)
  275. " that the warlords never found. They belonged to my husband...many years ago. Take them! Take them and good luck!\"")
  276. (cat "I have a hidden " (itmGetName gItem 0x00)
  277. " that the warlords never found. It belonged to my husband...many years ago. Take it! Take it and good luck!\"")
  278. )
  279. "\n\nShe hugs you quickly and runs off."
  280. ))
  281. </OnPaneInit>
  282.  
  283. <Actions>
  284. <Action name="Continue" key="C" default="1" cancel="1">
  285. <Exit/>
  286. </Action>
  287. </Actions>
  288. </MissionAccept>
  289.  
  290. <MissionDecline>
  291. <OnPaneInit>
  292. (scrSetDesc gScreen (cat
  293. "The station master stares at you in shock and then begins to weep.\n\n"
  294. "\"Why did you start this war if you won't finish it! You've doomed us all!\""
  295. ))
  296. </OnPaneInit>
  297.  
  298. <Actions>
  299. <Action name="Continue" key="C" default="1" cancel="1">
  300. (scrShowPane gScreen "Default")
  301. </Action>
  302. </Actions>
  303. </MissionDecline>
  304.  
  305. <MissionSuccess>
  306. <OnPaneInit>
  307. (scrSetDesc gScreen (cat
  308. "The station master runs towards you; she puts her arms around you as the rest of the citizens come out of hiding.\n\n"
  309. "\"You did it! I never thought I would live to see it! You've freed us from the warlords!\"\n\n"
  310. (if (eq (plyGetGenome gPlayer) 'humanMale)
  311. "She hugs you again and whispers her name in your ear."
  312. "She beams a smile and hugs you again."
  313. )
  314. ))
  315. </OnPaneInit>
  316.  
  317. <Actions>
  318. <Action name="Continue" key="C" default="1" cancel="1">
  319. (block Nil
  320. (shpCancelOrders gPlayerShip)
  321. (objSetData gSource "missionStatus" 'complete)
  322. (objSetGlobalData gSource "status" 'liberated)
  323. (scrShowPane gScreen "Default")
  324. )
  325. </Action>
  326. </Actions>
  327. </MissionSuccess>
  328.  
  329. <MissionInProgress>
  330. <OnPaneInit>
  331. (block Nil
  332. (scrSetDesc gScreen
  333. "The station master's console is empty. Everyone on the station is hiding in the central hub."
  334. )
  335. )
  336. </OnPaneInit>
  337.  
  338. <Actions>
  339. <Action name="Continue" key="C" default="1" cancel="1">
  340. (block Nil
  341. (shpCancelOrders gPlayerShip)
  342. (shpOrder gPlayerShip 'attack (sysFindObject gSource "TN +arcoVaughn;"))
  343. (scrExitDock gScreen)
  344. )
  345. </Action>
  346. </Actions>
  347. </MissionInProgress>
  348.  
  349. <MeetingHallHiding>
  350. <OnPaneInit>
  351. (block Nil
  352. (scrSetDesc gScreen
  353. "The station master's console is empty. Everyone on the station is hiding in the central hub."
  354. )
  355. )
  356. </OnPaneInit>
  357.  
  358. <Actions>
  359. <Action name="Continue" key="C" default="1" cancel="1">
  360. (scrShowPane gScreen "Default")
  361. </Action>
  362. </Actions>
  363. </MeetingHallHiding>
  364.  
  365. <MeetingHallFearful>
  366. <OnPaneInit>
  367. (block (desc centauriStations centauriStationsDestroyed)
  368. ; Count the number of destroyed Centauri stations
  369. (setq centauriStations (sysFindObject gSource "T +centauriWarlords; +populated; -occupation; -uncharted;"))
  370. (setq centauriStationsDestroyed (filter centauriStations theStation (objIsAbandoned theStation)))
  371.  
  372. (setq desc "The station master stands at her console. She turns her attention towards you:\n\n")
  373. (switch
  374. (eq (count centauriStationsDestroyed) 0)
  375. (setq desc (cat desc
  376. "\"You'd better leave before the warlords return. If they see an armed ship here they will kill you; and we will be punished. Go now!\""
  377. ))
  378.  
  379. (eq (count centauriStationsDestroyed) 1)
  380. (setq desc (cat desc
  381. "\"The Centauri warlords are furious that you've blown up one of their stations! "
  382. "Do you really think you're strong enough to stand up to them?! Please leave before you get us all killed!\""
  383. ))
  384.  
  385. (setq desc (cat desc
  386. "\"Please leave! You know what will happen if you try to destroy more Centauri bases? You'll be killed and we'll be punished! "
  387. "And if Arco Vaughn sees you here, we're all dead!\""
  388. ))
  389. )
  390.  
  391. (scrSetDesc gScreen desc)
  392. )
  393. </OnPaneInit>
  394.  
  395. <Actions>
  396. <Action name="Leave" key="L" default="1" cancel="1">
  397. (scrShowPane gScreen "Default")
  398. </Action>
  399. </Actions>
  400. </MeetingHallFearful>
  401.  
  402. <MeetingHallHappy>
  403. <OnPaneInit>
  404. (scrSetDesc gScreen (cat
  405. "The meeting hall is busy with commercial activity; everyone goes about their business, sometimes stopping to say hello to you."
  406. ))
  407. </OnPaneInit>
  408.  
  409. <Actions>
  410. <Action name="Leave" key="L" default="1" cancel="1">
  411. (scrShowPane gScreen "Default")
  412. </Action>
  413. </Actions>
  414. </MeetingHallHappy>
  415. </Panes>
  416. </DockScreen>
  417. <!-- Actinide Waste Cannon -->
  418.  
  419. <ItemType UNID="&itWasteCannon;"
  420. name= "actinide waste cannon"
  421. level= "4"
  422. value= "3500"
  423. mass= "6000"
  424. frequency= "rare"
  425. numberAppearing= "1"
  426. attributes= "Illegal; MajorItem; Sapiens; NotStandard;"
  427.  
  428. description= "The actinide waste cannon is a dirty weapon that shoots out a cloud of radioactive debris."
  429. >
  430.  
  431. <Image imageID="&rsItems1;" imageX="96" imageY="0" imageWidth="96" imageHeight="96"/>
  432.  
  433. <Weapon
  434. fireRate= "30"
  435.  
  436. type= "missile"
  437. repeating= "3"
  438.  
  439. hitPoints= "5"
  440. lifetime= "60"
  441. damage= "blast:1d8; radiation1; WMD1"
  442. powerUse= "60"
  443.  
  444. missileSpeed= "20"
  445. sound= "&snLaserCannon;"
  446. >
  447.  
  448. <Effect>
  449. <Image imageID="&rsMediumExplosions;" imageX="0" imageY="128" imageWidth="64" imageHeight="64" imageFrameCount="16" imageTicksPerFrame="5" blend="brighten" />
  450. </Effect>
  451. </Weapon>
  452. </ItemType>
  453. <!--Zombie Handler-->
  454.  
  455. <ShipClass UNID="&evzombiehandler;"
  456. class= "(wingman base class)"
  457. virtual= "true"
  458.  
  459. attributes= "behaviourClass"
  460. >
  461.  
  462. <Events>
  463. <OnPlayerLeftSystem>
  464. (block Nil
  465. (switch
  466. (eq (ObjGetTarget gSource) gPlayership)
  467. 'followPlayer
  468. )
  469. )
  470. </OnPlayerLeftSystem>
  471. </Events>
  472. </ShipClass>
  473. </TranscendenceExtension>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement