Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0"?>
- <!DOCTYPE TranscendenceExtension
- [
- ;6200-Lethal transmission; Virulent transmission
- <!ENTITY unidLTrans "0xE1286200">
- <!ENTITY vtLTransStation "0xE1286201">
- <!ENTITY svRadFaction "0xE1286202">
- <!ENTITY evzombiehandler "0xE1286203">
- <!ENTITY dsFourFire "0xE1286204">
- ]>
- <TranscendenceExtension UNID="&unidLTrans;" APIversion="22" name="Lethal Transmission" credit="RPC, FourFire for ideas">
- <!--
- Rules
- the game checks every 10 seconds for radioactive ships and tags them
- only radioactive ships that are tagged zombiefy (so radiation isn't guaranteed a zombie)
- zombies CAN have extra lives if they get themselves irradiated again
- otherwise it's only an extra life
- I gave arco an omni actinide cannon so that he could irradiate the IAVs
- tell me if there are any problems
- -->
- <!--Zombie Sovereign-->
- <Sovereign UNID="&svRadFaction;"
- name="Za Zombeh"
- alignment="destructive chaos"
- >
- <Relationships>
- <Relationship sovereign="&svPlayer;" disposition="enemy" mutual="true"/>
- <Relationship sovereign="&svCentauriWarlords;" disposition="enemy" mutual="true"/>
- <Relationship sovereign="&svMarauders;" disposition="enemy" mutual="true"/>
- <Relationship sovereign="&svSettlers;" disposition="enemy" mutual="true"/>
- <Relationship sovereign="&svUrakWarlords;" disposition="enemy" mutual="true"/>
- <Relationship sovereign="&svBlackMarket;" disposition="enemy" mutual="true"/>
- <Relationship sovereign="&svSung;" disposition="enemy" mutual="true"/>
- <Relationship sovereign="&svDwargRaiders;" disposition="enemy" mutual="true"/>
- <Relationship sovereign="&svHuariEmpire;" disposition="enemy" mutual="true"/>
- <Relationship sovereign="&svGaianTerraformers;" disposition="enemy" mutual="true"/>
- <Relationship sovereign="&svcommonwealth;" disposition="enemy" mutual="true"/>
- <Relationship sovereign="&svRogueFleet;" disposition="enemy" mutual="true"/>
- <Relationship sovereign="&svAres;" disposition="enemy" mutual="true"/>
- </Relationships>
- </Sovereign>
- <!-- thanks Prophet!-->
- <StationType UNID="&vtLTransStation;"
- name= "vtLTransStation"
- virtual= "True"
- >
- <Events>
- <OnGlobalSystemCreated>
- (block Nil
- (sysCreateStation &vtLTransStation; nil)
- )
- </OnGlobalSystemCreated>
- ;hook for zombies
- <GetGlobalDockScreen>
- (block Nil
- (PrintTo 'log 'derp10)
- (PrintTo 'log gSource)
- (PrintTo 'log (eq (ObjGetType gSource) &stRaisuStation;))
- (PrintTo 'log gScreen)
- (PrintTo 'log (eq gScreen "Main"))
- (switch
- (eq (ObjGetType gSource) &stRaisuStation;)
- (block (missionStatus)
- (setq missionStatus (objGetData gSource "missionStatus"))
- (switch
- ; Mission in progress
- (eq missionStatus 'inprogress)
- "MissionInProgress"
- ; See if player has destroyed target
- (eq missionStatus 'success)
- "MissionSuccess"
- "Default"
- )
- (list &dsFourFire; 100)
- )
- )
- )
- </GetGlobalDockScreen>
- <OnCreate>
- (block Nil
- (sysAddObjRecurringTimerEvent 300 gSource "Radiation")
- )
- </OnCreate>
- <Radiation>
- (block Nil
- (enum (SysFindObject Nil "s") radded (block Nil
- (switch
- (objIsRadioactive radded)
- (block Nil
- (objRegisterForEvents gSource radded)
- )
- )
- ))
- )
- </Radiation>
- <OnObjDestroyed>
- (block (zombie itmToInstall)
- ;(plymessage gPlayer "zombie!")
- (setq zombie (sysCreateShip (ObjGettype aObjDestroyed) (ObjGetPos aObjDestroyed) &svRadFaction;))
- ;(objSetShowAsDestination zombie)
- (objSetEventHandler zombie &evzombiehandler;)
- ;remove old weapons
- (enum (objGetItems zombie "*Iw") theItem (block Nil
- (block Nil
- (Printto 'log "removal y-n?")
- (Printto 'log (shpRemoveDevice zombie theItem))
- )
- ))
- (setq itmToInstall (itmCreate &itWasteCannon; 1))
- (objAddItem zombie itmToInstall)
- (shpInstallDevice zombie itmToInstall)
- (shpSetCommandCode zombie (block Nil
- (shpOrder gSource 'attackNearestEnemy)
- ))
- )
- </OnObjDestroyed>
- </Events>
- </StationType>
- <DockScreen UNID="&dsFourFire;"
- name= ""
- backgroundID= "none"
- >
- <Panes>
- <Default>
- <OnPaneInit>
- (scrSetDesc gScreen (cat
- "The loud voices of a packed multitude bounce off every bulkhead and corridor in the station. "
- "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"
- "Welcome to " (objGetName gSource) "!"
- ))
- </OnPaneInit>
- <Actions>
- <Action name="Meeting Hall" key="M" default="1">
- (block (missionStatus)
- ; Get some status
- (setq missionStatus (objGetData gSource "missionStatus"))
- (switch
- ; If Arco Vaughn is dead, everyone is happy
- (eq (typGetGlobalData &scArcoVaughnHeavyRaider; "status") 'destroyed)
- (scrShowPane gScreen "MeetingHallHappy")
- ; If the player declined, then everyone is still in fear
- (eq missionStatus 'declined)
- (scrShowPane gScreen "MeetingHallHiding")
- ; If there are Centauri raiders in range, then everyone is hinding
- (sysFindObject gSource "s +centauriWarlords; N:100;")
- (scrShowPane gScreen "MeetingHallHiding")
- ; Otherwise, see if we get a mission
- (block (centauriStations centauriStationsDestroyed theStation)
- ; Count the number of Centauri stations in the system
- (setq centauriStations (sysFindObject gSource "T +centauriWarlords; +populated; -occupation; -uncharted;"))
- (setq centauriStationsDestroyed (filter centauriStations theStation (objIsAbandoned theStation)))
- ; If more than 2 stations have been destroyed or if all stations
- ; have been destroyed, then the player gets the Arco Vaughn mission
- (if (or (geq (count centauriStationsDestroyed) 3)
- (eq (count centauriStations) (count centauriStationsDestroyed))
- (gr (objGetData gSource "raidersSummoned") 12)
- )
- (scrShowPane gScreen "MissionIntro")
- (scrShowPane gScreen "MeetingHallFearful")
- )
- )
- )
- )
- </Action>
- <Action name="Undock" cancel="1" key="U">
- <Exit/>
- </Action>
- </Actions>
- </Default>
- <MissionIntro>
- <OnPaneInit>
- (scrSetDesc gScreen (cat
- "The station master stands at her console. She runs towards you tearfully:\n\n"
- "\"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.\""
- ))
- </OnPaneInit>
- <Actions>
- <Action name="Continue" key="C" default="1" cancel="1">
- (scrShowPane gScreen "Mission")
- </Action>
- </Actions>
- </MissionIntro>
- <Mission>
- <OnPaneInit>
- (scrSetDesc gScreen (cat
- "\"I can help you; I'm not afraid anymore. Arco Vaughn lives deep in the outer belt—I can give you the coordinates. Kill him and we will all be free. Will you help us?\""
- ))
- </OnPaneInit>
- <Actions>
- <Action name="Accept" key="A" default="1">
- (block (arcoVaughn target itmToInstall newitem)
- ; Track Arco Vaughn
- (setq arcoVaughn (sysFindObject gSource "sN +arcoVaughn;"))
- (objSetObjRefData gSource "target" arcoVaughn)
- (objRegisterForEvents gSource arcoVaughn)
- ; Set the player to Arco Vaughn's habitat
- (setq target (sysFindObject gSource "TN +arcoVaughn;"))
- (if (or (not target)
- (eq (objGetEquipmentStatus gPlayerShip 'TargetingComputer) 'ready))
- (setq target arcoVaughn)
- )
- ;ZOMBIE HOOK
- ;remove old weapons
- (enum (objGetItems arcoVaughn "*Iw") theItem (block Nil
- (block Nil
- (Printto 'log "removal y-n?")
- (Printto 'log (shpRemoveDevice arcoVaughn theItem))
- )
- ))
- ;add actinide weapon to arco
- (setq itmToInstall (itmCreate &itWasteCannon; 1))
- (objAddItem arcoVaughn itmToInstall)
- (setq newitem (shpInstallDevice arcoVaughn itmToInstall))
- (objSetItemProperty arcoVaughn newitem 'FireArc 'omnidirectional)
- ;also send light IAVs to attack arco
- (for FF 0 (random 5 8) (block (attack)
- (setq attack (sysCreateShip &scIAVLight; (setq pos (sysFindObject nil "GN")) &svCommonwealth;))
- (shporder attack 'attack arcoVaughn)
- ))
- (shpCancelOrders gPlayerShip)
- (shpOrder gPlayerShip 'attack target)
- ; Give the player some KM500 missiles
- (if (objGetItems gPlayerShip "lI -Disposable;")
- (setq gItem (itmCreate &itKM500Missile; (random 24 48)))
- (setq gItem (itmCreate &itDM1500MissileRack; 1))
- )
- (objAddItem gPlayerShip gItem)
- ; Set mission
- (objSetData gSource "missionStatus" 'inprogress)
- (scrShowPane gScreen "MissionAccept")
- )
- </Action>
- <Action name="Decline" key="D" cancel="1">
- (block Nil
- (objSetData gSource "missionStatus" 'declined)
- (scrShowPane gScreen "MissionDecline")
- )
- </Action>
- </Actions>
- </Mission>
- <MissionAccept>
- <OnPaneInit>
- (scrSetDesc gScreen (cat
- "\"You will need all the power you can to kill him. "
- (if (gr (itmGetCount gItem) 1)
- (cat "I have some hidden " (itmGetName gItem 0x02)
- " that the warlords never found. They belonged to my husband...many years ago. Take them! Take them and good luck!\"")
- (cat "I have a hidden " (itmGetName gItem 0x00)
- " that the warlords never found. It belonged to my husband...many years ago. Take it! Take it and good luck!\"")
- )
- "\n\nShe hugs you quickly and runs off."
- ))
- </OnPaneInit>
- <Actions>
- <Action name="Continue" key="C" default="1" cancel="1">
- <Exit/>
- </Action>
- </Actions>
- </MissionAccept>
- <MissionDecline>
- <OnPaneInit>
- (scrSetDesc gScreen (cat
- "The station master stares at you in shock and then begins to weep.\n\n"
- "\"Why did you start this war if you won't finish it! You've doomed us all!\""
- ))
- </OnPaneInit>
- <Actions>
- <Action name="Continue" key="C" default="1" cancel="1">
- (scrShowPane gScreen "Default")
- </Action>
- </Actions>
- </MissionDecline>
- <MissionSuccess>
- <OnPaneInit>
- (scrSetDesc gScreen (cat
- "The station master runs towards you; she puts her arms around you as the rest of the citizens come out of hiding.\n\n"
- "\"You did it! I never thought I would live to see it! You've freed us from the warlords!\"\n\n"
- (if (eq (plyGetGenome gPlayer) 'humanMale)
- "She hugs you again and whispers her name in your ear."
- "She beams a smile and hugs you again."
- )
- ))
- </OnPaneInit>
- <Actions>
- <Action name="Continue" key="C" default="1" cancel="1">
- (block Nil
- (shpCancelOrders gPlayerShip)
- (objSetData gSource "missionStatus" 'complete)
- (objSetGlobalData gSource "status" 'liberated)
- (scrShowPane gScreen "Default")
- )
- </Action>
- </Actions>
- </MissionSuccess>
- <MissionInProgress>
- <OnPaneInit>
- (block Nil
- (scrSetDesc gScreen
- "The station master's console is empty. Everyone on the station is hiding in the central hub."
- )
- )
- </OnPaneInit>
- <Actions>
- <Action name="Continue" key="C" default="1" cancel="1">
- (block Nil
- (shpCancelOrders gPlayerShip)
- (shpOrder gPlayerShip 'attack (sysFindObject gSource "TN +arcoVaughn;"))
- (scrExitDock gScreen)
- )
- </Action>
- </Actions>
- </MissionInProgress>
- <MeetingHallHiding>
- <OnPaneInit>
- (block Nil
- (scrSetDesc gScreen
- "The station master's console is empty. Everyone on the station is hiding in the central hub."
- )
- )
- </OnPaneInit>
- <Actions>
- <Action name="Continue" key="C" default="1" cancel="1">
- (scrShowPane gScreen "Default")
- </Action>
- </Actions>
- </MeetingHallHiding>
- <MeetingHallFearful>
- <OnPaneInit>
- (block (desc centauriStations centauriStationsDestroyed)
- ; Count the number of destroyed Centauri stations
- (setq centauriStations (sysFindObject gSource "T +centauriWarlords; +populated; -occupation; -uncharted;"))
- (setq centauriStationsDestroyed (filter centauriStations theStation (objIsAbandoned theStation)))
- (setq desc "The station master stands at her console. She turns her attention towards you:\n\n")
- (switch
- (eq (count centauriStationsDestroyed) 0)
- (setq desc (cat desc
- "\"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!\""
- ))
- (eq (count centauriStationsDestroyed) 1)
- (setq desc (cat desc
- "\"The Centauri warlords are furious that you've blown up one of their stations! "
- "Do you really think you're strong enough to stand up to them?! Please leave before you get us all killed!\""
- ))
- (setq desc (cat desc
- "\"Please leave! You know what will happen if you try to destroy more Centauri bases? You'll be killed and we'll be punished! "
- "And if Arco Vaughn sees you here, we're all dead!\""
- ))
- )
- (scrSetDesc gScreen desc)
- )
- </OnPaneInit>
- <Actions>
- <Action name="Leave" key="L" default="1" cancel="1">
- (scrShowPane gScreen "Default")
- </Action>
- </Actions>
- </MeetingHallFearful>
- <MeetingHallHappy>
- <OnPaneInit>
- (scrSetDesc gScreen (cat
- "The meeting hall is busy with commercial activity; everyone goes about their business, sometimes stopping to say hello to you."
- ))
- </OnPaneInit>
- <Actions>
- <Action name="Leave" key="L" default="1" cancel="1">
- (scrShowPane gScreen "Default")
- </Action>
- </Actions>
- </MeetingHallHappy>
- </Panes>
- </DockScreen>
- <!-- Actinide Waste Cannon -->
- <ItemType UNID="&itWasteCannon;"
- name= "actinide waste cannon"
- level= "4"
- value= "3500"
- mass= "6000"
- frequency= "rare"
- numberAppearing= "1"
- attributes= "Illegal; MajorItem; Sapiens; NotStandard;"
- description= "The actinide waste cannon is a dirty weapon that shoots out a cloud of radioactive debris."
- >
- <Image imageID="&rsItems1;" imageX="96" imageY="0" imageWidth="96" imageHeight="96"/>
- <Weapon
- fireRate= "30"
- type= "missile"
- repeating= "3"
- hitPoints= "5"
- lifetime= "60"
- damage= "blast:1d8; radiation1; WMD1"
- powerUse= "60"
- missileSpeed= "20"
- sound= "&snLaserCannon;"
- >
- <Effect>
- <Image imageID="&rsMediumExplosions;" imageX="0" imageY="128" imageWidth="64" imageHeight="64" imageFrameCount="16" imageTicksPerFrame="5" blend="brighten" />
- </Effect>
- </Weapon>
- </ItemType>
- <!--Zombie Handler-->
- <ShipClass UNID="&evzombiehandler;"
- class= "(wingman base class)"
- virtual= "true"
- attributes= "behaviourClass"
- >
- <Events>
- <OnPlayerLeftSystem>
- (block Nil
- (switch
- (eq (ObjGetTarget gSource) gPlayership)
- 'followPlayer
- )
- )
- </OnPlayerLeftSystem>
- </Events>
- </ShipClass>
- </TranscendenceExtension>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement