Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0"?>
- <!DOCTYPE TranscendenceExtension
- [
- ;6300-Souped up Auton Bay
- ;Mu for 'Multiverse'
- <!ENTITY MuSuAB "0xE1286300">
- <!ENTITY vtCheckingstation "0xE1286301">
- <!ENTITY dsRPCModifyAuton "0xE1286302">
- <!ENTITY dsRPCRemoveItem "0xE1286303">
- <!ENTITY dsRPCRemoveItem2 "0xE1286304">
- ;overrides
- <!ENTITY dsAutonBay "0x00810251">
- <!ENTITY dsAutonBayRepairArmor "0x00810252">
- <!ENTITY dsAutonBayReplaceArmor "0x00810253">
- <!ENTITY dsAutonBayInstallDevice "0x00810254">
- ]>
- <TranscendenceExtension UNID="&MuSuAB;" APIversion="22" name="Souped up Auton Bay" credit="RPC, Shrike for ideas, PM's Playership Drones for inspiration">
- <!--- This station will take care of all the work --->
- <StationType UNID="&vtCheckingstation;"
- name= "DockScreen Controller"
- scale= "world"
- backgroundObject= "true"
- sovereign= "&svIndependent;"
- virtual= "True"
- >
- <ImageVariants>
- <Image imageID="&rsWorlds2;" imageX="0" imageY="0" imageWidth="1" imageHeight="1" />
- </ImageVariants>
- </StationType>
- <DockScreen UNID="&dsAutonBay;"
- type= "itemPicker"
- backgroundID= "&rsItemListScreen;"
- >
- <!--
- -->
- <ListOptions
- dataFrom= "player"
- list= "* +auton;"
- initialItem="
- (or
- (not (scrGetData gScreen 'currentAuton))
- (itmIsEqual (scrGetItem gScreen) (scrGetData gScreen 'currentAuton))
- )"
- />
- <Panes>
- <Default>
- <OnPaneInit>
- (block (autonItem autonConfig desc enableRepairs)
- (setq autonItem (scrGetItem gScreen))
- ; Compile the auton configuration, based either on the stored
- ; data or on the original auton ship class.
- (setq autonConfig (rpgGetAutonConfig autonItem))
- ; Set the description
- (switch
- (not autonItem)
- (setq desc "There are no autons in the bay.")
- (not autonConfig)
- (setq desc "Unknown auton")
- (not (itmIsKnown autonItem))
- (setq desc "Unfortunately, the bay cannot manipulate unknown autons.")
- (block (armorName armorCount armorHP armorMaxHP armorDamage weaponName shieldName miscName)
- ; Armor
- (setq armorCount 0)
- (setq armorHP 0)
- (setq armorMaxHP 0)
- (enum (@ autonConfig 'armor) armorDesc
- (block Nil
- (setq armorCount (add armorCount 1))
- (if (not armorName)
- (setq armorName (itmGetName (@ armorDesc 'item) 0x80))
- )
- (setq armorHP (add armorHP (@ armorDesc 'hp)))
- (setq armorMaxHP (add armorMaxHP (itmGetProperty (@ armorDesc 'item) 'completeHP)))
- )
- )
- (setq armorDamage
- (if (gr armorMaxHP 0)
- (divide (multiply 100 (subtract armorMaxHp armorHP)) armorMaxHP)
- 0
- )
- )
- ; Devices
- (enum (@ autonConfig 'devices) deviceDesc
- (block (deviceItem deviceCat)
- (setq deviceItem (@ deviceDesc 'item))
- (setq deviceCat (itmGetProperty deviceItem 'category))
- (switch
- (eq deviceCat 'weapon)
- (setq weaponName (itmGetName deviceItem 0x80))
- (eq deviceCat 'shields)
- (setq shieldName (itmGetName deviceItem 0x80))
- (eq deviceCat 'device)
- (setq miscName (itmGetName deviceItem 0x80))
- )
- )
- )
- ; Compose
- (setq desc (cat
- "Armor: " (if armorName (cat armorName " ×" armorCount) "None")
- (if (gr armorDamage 0) (cat " (" armorDamage "% damaged)")) "\n"
- "Weapon: " (if weaponName weaponName "None") "\n"
- "Shields: " (if shieldName shieldName "None") "\n"
- (if miscName
- "Device: " miscName "\n"
- ""
- )
- ))
- (setq enableRepairs True)
- )
- )
- ; Initialize
- (scrSetDesc gScreen desc)
- (scrEnableAction gScreen 0 autonItem)
- (scrEnableAction gScreen 1 True)
- (scrEnableAction gScreen 2 enableRepairs)
- (scrEnableAction gScreen 3 enableRepairs)
- )
- </OnPaneInit>
- <Actions>
- <Action name="Scramble All" key="S">
- (block (autonItem)
- (enum (ObjGetItems gPlayership "* +auton;") autonitem (block Nil
- (plyUseItem gPlayer autonItem)
- ))
- (scrExitScreen gScreen)
- )
- </Action>
- <Action name="Recall All" key="R">
- (block (autonItem)
- ;enumerate through autons
- (enum (sysFindObject nil "*s") autoncandidate (block Nil
- (switch
- (ObjGetData autoncandidate "invoked")
- (block Nil
- (switch
- ; Make sure that there is enough cargo space in the ship to
- ; hold the auton.
- (gr (objFireEvent autoncandidate "CalcMass") (objGetCargoSpaceLeft gSource))
- (objSendMessage gSource autoncandidate (objTranslate autoncandidate 'ErrNoSpaceToReturn "\"Not enough space in cargo hold to return to ship\""))
- ; Return
- (block Nil
- (shpCancelOrders autoncandidate)
- (shpOrder autoncandidate 'gate gSource)
- (objSetData autoncandidate 'behavior 'returning)
- (objSendMessage gSource autoncandidate (objTranslate autoncandidate 'ReturnAck "\"Auton order acknowledged\""))
- )
- )
- (scrExitScreen gScreen)
- )
- (scrSetDesc gScreen "No autons to recall.")
- )
- ))
- )
- </Action>
- <Action name="Launch Auton" key="L">
- (block (autonItem)
- (setq autonItem (scrGetItem gScreen))
- (scrExitScreen gScreen)
- (plyUseItem gPlayer autonItem)
- )
- </Action>
- <Action name="Modify Auton" key="M">
- (block Nil
- (setq autonItem (scrGetItem gScreen))
- (ScrShowScreen gScreen &dsRPCModifyAuton;)
- )
- </Action>
- <Action name="Cancel" default="1" cancel="1" key="C">
- (ScrExitScreen gScreen 'forceUndock)
- </Action>
- </Actions>
- </Default>
- </Panes>
- </DockScreen>
- <DockScreen UNID="&dsRPCModifyAuton;"
- backgroundID= "none"
- nestedScreen= "true"
- >
- <Display>
- <!--
- LEGEND:
- idea:
- <text makes a box of text
- REMEMBER left=255 is right of right=0
- left: leftmost border
- right: rightmost border
- 0 is at the center, leaning towards the left
- negative moves the text box to the right from the center (from right= 0)
- positive moves the text bos to the right from the leftmost border
- top: topmost border
- positive is how many pixels the top border should start from the top of the screen
- <image puts in an image
- left="12" right="-44" top="12" height="100" align="center" transparent="true"
- valign="center"
- -->
- <Image left="0" right="-44" top="12" height="100" align="right" transparent="true">
- (itmGetImageDesc autonItem)
- </Image>
- <Text left="0" right="-44" top="12" height="40" align="center" font="SubTitle" color="255,210,152">
- (itmGetName autonItem 0x020)
- </Text>
- <Text left="0" right="0" width="250" top="50" bottom="-140" align="right" font="MediumBold" color="200,206,199">
- (cat
- "device slots:\n"
- "Weapon slots:\n"
- "Non Weapon slots:\n"
- "max power:\n"
- "max speed:\n"
- "armor:\n"
- "max armor mass:\n"
- "shields:\n"
- "weapons:\n"
- )
- </Text>
- <Text left="255" width="250" top="50" bottom="-140" align="left" font="Medium" color="200,206,199">
- (RPCDSData gPlayership "Screentext" "GET")
- </Text>
- <!--
- <Text left="52" right="-84" bottom="-12" height="120" align="center" font="Large" color="200,206,199">
- (block (desc skill repBonus thaName prize rnd1 rnd2 fromPlace)
- (setq theName (objGetName gPlayership 0x00))
- (setq skill (objGetData gPlayership "arenaSkill"))
- (setq repBonus (objGetData gPlayership "arenaRepBonus"))
- (setq prize (bamComputePrize
- (objGetGlobalData gSource "arenaSkill")
- (objGetGlobalData gSource "arenaRep")
- skill
- (objGetData gPlayership "arenaPrizeBonus")
- ))
- (setq rnd1 (modulo (objGetDestiny gPlayership) 24))
- (setq rnd2 (divide (objGetDestiny gPlayership) 24))
- (setq fromPlace (item '("Starton Eridani" "St. Katharine's Star" "Rigel Aurelius" "Centauri" "Kibo") (modulo rnd2 5)))
- (switch
- (leq skill 300)
- (setq desc (eval (item
- '(
- (cat theName " is a young gladiator from " fromPlace ".")
- (cat theName " flies a " (shpGetClassName gPlayership 1) ".")
- (cat theName " is a novice pilot flying a beautiful " (shpGetClassName gPlayership 1) ".")
- )
- (modulo rnd1 3)
- )))
- (setq desc (eval (item
- '(
- (cat theName " is a former Champion from " fromPlace ".")
- (cat "The battle-hardened pilot known as " theName " will give you the fight of your life!")
- (cat "Death comes quickly when you fight " theName ".")
- )
- (modulo rnd1 3)
- )))
- )
- (switch
- (geq repBonus 100)
- (setq desc (cat desc " This is the match the audience has been waiting for."))
- (geq repBonus 50)
- (setq desc (cat desc " Defeating " theName " will excite the crowd and bring you great fame!"))
- (geq repBonus 25)
- (setq desc (cat desc " This is a well-matched opponent that will draw the crowd."))
- )
- (setq desc (cat desc " For defeating " theName " you will receive " prize " credits."))
- )
- </Text>-->
- </Display>
- <Panes>
- <Default>
- <OnPaneInit>
- (scrSetDesc gScreen
- "You bring the auton aside from the cargo bay and place it atop a workbench."
- )
- </OnPaneInit>
- <Actions>
- <Action name="Repair Armor" key="R">
- (block (autonConfig hpDamage hpToRepair armorType armorToUse )
- ; Figure out how many armor segments we need to repair auton armor
- (setq autonConfig (rpgGetAutonConfig autonItem))
- (setq hpDamage 0)
- (enum (@ autonConfig 'armor) armorDesc
- (block Nil
- (if (not armorType)
- (setq armorType (itmGetType (@ armorDesc 'item)))
- )
- (setq hpDamage (add hpDamage (subtract (itmGetProperty (@ armorDesc 'item) 'completeHP) (@ armorDesc 'hp))))
- )
- )
- ; Make a list of armor segments that we can use from the player's cargo
- ; hold, sufficient to repair all the damage.
- (setq hpToRepair 0)
- (enum (objGetItems gPlayerShip "aU") theArmor
- (if (and (eq (itmGetType theArmor) armorType)
- (ls hpToRepair hpDamage)
- )
- (block (hpForThisArmor countToUse)
- (setq hpForThisArmor (itmGetProperty theArmor 'hp))
- (if (itmIsDamaged theArmor)
- (setq hpForThisArmor (divide hpForThisArmor 2))
- )
- (setq countToUse
- (min
- (divide (add (subtract hpDamage hpToRepair) (subtract hpForThisArmor 1)) hpForThisArmor)
- (itmGetCount theArmor)
- )
- )
- (setq armorToUse (append armorToUse (list (itmSetCount theArmor countToUse))))
- (setq hpToRepair (min hpDamage (add hpToRepair (multiply countToUse hpForThisArmor))))
- )
- )
- )
- ; Remember the current list selection
- (scrSetData gScreen 'currentAuton autonItem)
- ; Effect repairs
- (switch
- (eq hpDamage 0)
- (scrShowScreen gScreen &dsRPGMessage; {
- desc: "The auton's armor is undamaged. No repairs needed."
- })
- (eq hpToRepair 0)
- (scrShowScreen gScreen &dsRPGMessage; {
- desc: (cat "Unfortunately, you do not have any " (itmGetName armorType 0x02) " to repair the auton.")
- })
- (scrShowScreen gScreen &dsAutonBayRepairArmor; {
- autonConfig: autonConfig
- autonItem: autonItem
- armorToUse: armorToUse
- hpToRepair: hpToRepair
- })
- )
- )
- </Action>
- <Action name="Replace Armor" key="P">
- (block (autonConfig)
- (setq autonConfig (rpgGetAutonConfig autonItem))
- (scrShowScreen gScreen &dsAutonBayReplaceArmor; {
- autonConfig: autonConfig
- autonItem: autonItem
- })
- )
- </Action>
- <Action name="Install Device" key="D">
- (block (autonConfig)
- (setq autonConfig (rpgGetAutonConfig autonItem))
- (scrShowScreen gScreen &dsAutonBayInstallDevice; {
- autonConfig: autonConfig
- autonItem: autonItem
- })
- )
- </Action>
- <Action name="Remove Device" key="V" >
- (block Nil
- (scrShowScreen gScreen "&dsRPCRemoveItem;")
- )
- </Action>
- <Action name="Enhance Device" key="E">
- </Action>
- <Action name="Use Items" key="U">
- </Action>
- <Action name="Back to auton list" key="B" default="1" cancel="1">
- (scrShowScreen gScreen &dsAutonBay;)
- </Action>
- </Actions>
- </Default>
- </Panes>
- </DockScreen>
- <DockScreen UNID="&dsAutonBayInstallDevice;"
- type= "itemPicker"
- backgroundID= "&rsItemListScreen;"
- nestedScreen= "true"
- >
- <ListOptions
- dataFrom= "player"
- list= "d~lrvcU"
- />
- <Panes>
- <Default>
- <OnPaneInit>
- (block (auton result)
- ; Create a suspended auton so we can operate on it
- (setq auton (rpgCreateSuspendedAuton gSource (@ gData 'autonItem)))
- ; See if we can install this device
- (setq result (rpgInstallDevicePrep {
- item: (scrGetItem gScreen)
- targetObj: auton
- installerObj: gPlayerShip
- totalPrice: 0
- noCargoCheck: True
- }))
- (scrSetDesc gScreen (@ result 'desc))
- (scrEnableAction gScreen 0 (@ result 'canInstall))
- )
- </OnPaneInit>
- <Actions>
- <Action name="Install" default="1" key="I">
- (block (deviceItem auton oldDeviceItem)
- ; Get the suspended auton so we can operate on it
- (setq auton (rpgCreateSuspendedAuton gSource (@ gData 'autonItem)))
- ; Get the device to install
- (setq deviceItem (scrGetItem gScreen))
- ; Remove the device from the player ship and move it to the auton
- (PrintTo 'log "remove work?")
- (PrintTo 'log (objRemoveItem gPlayerShip deviceItem))
- (objAddItem auton deviceItem)
- ; Install the device
- (shpInstallDevice auton deviceItem)
- ; Take any old devices and move them back to the player ship
- (enum (objGetItems auton "dU") theItem
- (block Nil
- (objRemoveItem auton theItem)
- ;(objAddItem gPlayerShip theItem)
- )
- )
- ; Convert back to the auton item
- (setq newAutonItem (objFireEvent auton 'ConvertToItem))
- ;update autonItem reference
- (setq autonItem (objSetItemData gSource (@ gData 'autonItem) 'autonConfig (itmGetData newAutonItem 'autonConfig)))
- ; Done with the auton
- (rpgCleanUpSuspendedAuton gSource)
- (scrExitScreen gScreen)
- )
- </Action>
- <Action name="Cancel" cancel="1" key="C">
- (block Nil
- (rpgCleanUpSuspendedAuton gSource)
- (scrExitScreen gScreen)
- )
- </Action>
- </Actions>
- </Default>
- </Panes>
- </DockScreen>
- <DockScreen UNID="&dsAutonBayRepairArmor;"
- backgroundID= "none"
- nestedScreen= "true"
- >
- <Panes>
- <Default>
- <OnPaneInit>
- (scrSetDesc gScreen
- "You can repair " (@ gData 'hpToRepair) " hit point" (if (gr (@ gData 'hpToRepair) 1) "s " " ")
- "of damage on " (itmGetName (@ gData 'autonItem) 0x04) " with "
- (switch
- (eq (count (@ gData 'armorToUse)) 1)
- (itmGetName (@ (@ gData 'armorToUse) 0) 0x08)
- (eq (count (@ gData 'armorToUse)) 2)
- (cat (itmGetName (@ (@ gData 'armorToUse) 0) 0x08) " and " (itmGetName (@ (@ gData 'armorToUse) 1) 0x08))
- (block Nil
- (setq i 0)
- (apply cat
- (map (@ gData 'armorToUse) Nil theArmor
- (if (eq (setq i (add i 1)) (count (@ gData 'armorToUse)))
- (cat "and " (itmGetName (@ (@ gData 'armorToUse) 0) 0x08))
- (cat (itmGetName (@ (@ gData 'armorToUse) 0) 0x08) ", ")
- )
- )
- )
- )
- )
- ".\n\n"
- "Do you wish to continue?"
- )
- </OnPaneInit>
- <Actions>
- <Action name="Repair" key="R" default="1">
- (block (hpLeft)
- ; Repair the auton
- (setq hpLeft (@ gData 'hpToRepair))
- (setq newArmorList
- (map (@ (@ gData 'autonConfig) 'armor) armorDesc
- (block (hpNeeded hpUsed)
- (print "hpLeft: " hpLeft)
- (setq hpNeeded (subtract (itmGetProperty (@ armorDesc 'item) 'completeHP) (@ armorDesc 'hp)))
- (setq hpUsed (min hpNeeded hpLeft))
- (setq hpLeft (subtract hpLeft hpUsed))
- (print "hpNeeded: " hpNeeded)
- (print "hpUsed: " hpUsed)
- (print "hpLeft: " hpLeft)
- {
- item: (@ armorDesc 'item)
- hp: (add (@ armorDesc 'hp) hpUsed)
- }
- )
- )
- )
- (objSetItemData gPlayerShip (@ gData 'autonItem) 'autonConfig {
- armor: newArmorList
- devices: (@ (@ gData 'autonConfig) 'devices)
- })
- ; Consume the armor segments
- (enum (@ gData 'armorToUse) theArmor
- (objRemoveItem gPlayerShip theArmor)
- )
- (scrExitScreen gScreen)
- )
- </Action>
- <Action name="Cancel" key="C" cancel="1">
- (scrExitScreen gScreen)
- </Action>
- </Actions>
- </Default>
- </Panes>
- </DockScreen>
- <!-- Remove device screen -->
- <DockScreen UNID="&dsRPCRemoveItem;"
- type= "customPicker"
- backgroundID= "&rsItemListScreen;"
- nestedScreen= "true"
- >
- <List>
- (RPCDSData gPlayership "RemoveItem" "GET")
- </List>
- <Panes>
- <Default
- desc= "Pick a device to remove.">
- <OnPaneInit>
- </OnPaneInit>
- <Actions>
- <Action name="Remove this Device" key="R">
- (block (auton)
- ; Get the suspended auton so we can operate on it
- (setq auton (rpgCreateSuspendedAuton gSource autonItem))
- (enum (ObjGetItems auton "*Id~a") itemthing (block Nil
- (switch
- ;Here I just check if the name of the item from the screen list is the same as the name of the item on the ship
- (eq (item (ScrGetListEntry gScreen) 0) (TypGetDataField (ItmGetType itemthing) 'name))
- (block Nil
- ;I try to remove, but to no avail
- (shpRemoveDevice auton itemthing)
- ; Convert back to the auton item
- (setq newAutonItem (objFireEvent auton 'ConvertToItem))
- ;update autonItem reference
- (setq autonItem (objSetItemData gSource autonItem 'autonConfig (itmGetData newAutonItem 'autonConfig)))
- ;ObjAddItem works fine though
- (ObjAddItem gSource itemthing)
- )
- )
- ))
- ; Done with the auton
- (rpgCleanUpSuspendedAuton gSource)
- ;show the player new screen so this can get refreshed
- (scrShowScreen gScreen &dsRPCModifyAuton;)
- )
- </Action>
- <Action name="Done" default="1" cancel="1" key="D">
- (scrShowScreen gScreen &dsRPCModifyAuton;)
- </Action>
- </Actions>
- </Default>
- </Panes>
- </DockScreen>
- <!-- Remove device screen -->
- <DockScreen UNID="&dsRPCRemoveItem2;"
- backgroundID= "&rsItemListScreen;"
- nestedScreen= "true"
- >
- <Panes>
- <Default
- desc= "Pick a device to remove.">
- <OnPaneInit>
- (block Nil
- (ScrSetDesc gScreen (cat RPC_ItemName " removed"))
- )
- </OnPaneInit>
- <Actions>
- <Action name="Done" cancel="1" key="D">
- (scrShowScreen gScreen &dsRPCRemoveItem;)
- </Action>
- </Actions>
- </Default>
- </Panes>
- </DockScreen>
- <Globals>
- (block Nil
- (setq rpgDeployAutonFromItem (lambda (sourceObj autonUNID autonItem)
- (block (auton)
- ; Let the auton ship class create itself based on the item
- (setq auton (typFireEvent autonUNID 'CreateFromItem { sourceObj:sourceObj type:autonUNID item:autonItem }))
- ; Identify and remove the item from the source
- (itmSetKnown autonItem)
- (objRemoveItem sourceObj autonItem 1)
- ;add auton data so we know it's the player's auton
- (ObjSetData auton "invoked" true)
- )
- ))
- <!--
- ;(RPCDSData gPlayership "RemoveItem" "Init")
- LEGEND
- ;actions
- Get - get data
- -->
- (setq RPCDSData (lambda (Source Data Action)(block Nil
- (switch
- (eq Action "get")
- (block Nil
- ;get appropriate data
- (switch
- (eq Data "RemoveItem")
- (block (auton ItemList)
- ;(list [Title] (list [Image]) [Description])
- (setq auton (rpgCreateSuspendedAuton gSource autonItem))
- ;init item list
- (setq ItemList "")
- ;list installed items
- (enum (ObjGetItems auton "*Id~a") itemthingy (block Nil
- (switch
- (eq ItemList "")
- (block Nil
- (setq ItemList (list
- (list
- (TypGetDataField (ItmGetType itemthingy) 'name)
- (itmGetImageDesc itemthingy)
- (itmGetProperty itemthingy 'description)
- )))
- )
- (setq ItemList (lnkAppend ItemList
- (list
- (TypGetDataField (ItmGetType itemthingy) 'name)
- (itmGetImageDesc itemthingy)
- (itmGetProperty itemthingy 'description)
- )
- ))
- )
- ))
- (TypSetData (ObjGetType source) Data ItemList)
- )
- (eq Data "Screentext")
- (block (autonthingy armorItem autonConfig armorTypes armorString shieldItem allWeapons string)
- (setq autonthingy (rpgCreateSuspendedAuton gSource autonItem))
- (setq armorItem (item (objGetItems gPlayership "aI") 0))
- ;init armorTypes
- (setq armorTypes "")
- (setq armorString "")
- (setq autonConfig (rpgGetAutonConfig autonItem))
- (enum (@ autonConfig 'armor) armorDesc
- (block Nil
- ;make a list of all the armor types
- (switch
- (eq armorTypes "")
- (setq armorTypes (list (itmGetType (@ armorDesc 'item))))
- ;else
- (block Nil
- (setq armorTypes (Append armorTypes (list (itmGetType (@ armorDesc 'item)))))
- )
- )
- )
- )
- ;get rid of duplicate armor types
- (enum armorTypes UNID (block Nil
- ;remove all duplicates
- (setq armorTypes (filter armorTypes UNIDinList
- (not (eq UNID UNIDinList))
- ))
- ;add it back in since we removed all instances of UNID
- (setq armorTypes (Append armorTypes UNID))
- ))
- (setq shieldItem (item (objGetItems gPlayership "sI") 0))
- ; Get the list of weapons
- (setq allWeapons "")
- (enum (objGetItems autonthingy "wI") theWeapon (block Nil
- (switch
- (eq AllWeapons "")
- (block Nil
- (setq AllWeapons (cat (TypGetDataField (itmGetType theWeapon) 'name)))
- )
- (setq AllWeapons (cat AllWeapons ", "(TypGetDataField (itmGetType theWeapon) 'name)))
- )
- ))
- (if (eq allWeapons "")
- (setq allWeapons "None\n")
- )
- ;START OF THE CAT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- (setq string (cat
- (typGetDataField (ObjGetType autonthingy) "deviceSlots") "\n"
- (typGetDataField (ObjGetType autonthingy) "deviceSlotsWeapons") "\n"
- (typGetDataField (ObjGetType autonthingy) "deviceSlotsNonWeapons") "\n"
- (divide (typGetDataField (ObjGetType autonthingy) "power") 1000) "MW \n"
- (TypGetDataField (itmGetStaticData autonItem "autonShipClass") "maxSpeed") "% lightspeed\n"
- (switch
- (geq (count armorTypes) 1)
- (block Nil
- (enum armorTypes element (block Nil
- (switch
- (eq armorString "")
- (setq armorString (TypGetDataField element 'name))
- (setq armorString (cat armorString ", " (TypGetDataField element 'name)))
- )
- ))
- )
- "None"
- ) "\n"
- (divide (TypGetDataField (itmGetStaticData autonItem "autonShipClass") "maxArmorMass") 1000) " tons \n"
- (switch
- (geq (count (@ (objGetItems autonthingy "Is") 0)) 1)
- (TypGetDataField (itmGetType (@ (objGetItems autonthingy "Is") 0)) 'name)
- "None"
- )"\n"
- allWeapons
- ))
- (rpgCleanUpSuspendedAuton gSource)
- (TypSetData (ObjGetType source) Data string)
- )
- )
- )
- )
- (TypGetData (ObjGetType source) Data)
- )))
- )
- </Globals>
- </TranscendenceExtension>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement