Enemy sovereigns and docking 'enabled

Freeform discussion about anything related to modding Transcendence.
Post Reply
User avatar
RPC
Fleet Admiral
Fleet Admiral
Posts: 2876
Joined: Thu Feb 03, 2011 5:21 am
Location: Hmm... I'm confused. Anybody have a starmap to the Core?

Wed May 13, 2015 2:42 am

Has anybody tried to make docking possible with enemy sovereigns? I have a midterm and 3 HW assignments due Thursday so can't test it myself but I was just thinking if that was possible you can get the player to play a "diplomacy" mini game in the dock screens if they dock to hostile stations.
Tutorial List on the Wiki and Installing Mods
Get on Discord for mod help and general chat
Image
Image
Der Tod ist der zeitlose Frieden und das leben ist der Krieg
Wir müssen wissen — wir werden wissen!
I don't want any sort of copyright on my Transcendence mods. Feel free to take/modify whatever you want.

User avatar
AssumedPseudonym
Fleet Officer
Fleet Officer
Posts: 1001
Joined: Thu Aug 29, 2013 5:18 am
Location: On the other side of the screen.

Wed May 13, 2015 3:55 am

 A quick-n’-dirty check via /debug seems to indicate that this is not currently possible. Using (objSetProperty obj 'dockingEnabled true) returns an invalid property error when applied to stations. For good measure, I also checked (objGetProperty obj 'playerBlacklisted) on an enemy station, which returned nil.
Image

My mods on Xelerus: Click here!

Of all the things I’ve lost in life, I miss my mind the least. (I’m having a lot more fun without it!)

User avatar
RPC
Fleet Admiral
Fleet Admiral
Posts: 2876
Joined: Thu Feb 03, 2011 5:21 am
Location: Hmm... I'm confused. Anybody have a starmap to the Core?

Wed May 13, 2015 7:17 am

Ah ok. Thanks for checking AP.
Another (possible) workaround would be ships-masquerading-as-stations like the CSC but that will probably return the same thing.
Tutorial List on the Wiki and Installing Mods
Get on Discord for mod help and general chat
Image
Image
Der Tod ist der zeitlose Frieden und das leben ist der Krieg
Wir müssen wissen — wir werden wissen!
I don't want any sort of copyright on my Transcendence mods. Feel free to take/modify whatever you want.

User avatar
JohnBWatson
Fleet Officer
Fleet Officer
Posts: 1452
Joined: Tue Aug 19, 2014 10:17 pm

Wed May 13, 2015 7:31 am

I'm not sure if it would work for what you want, but it may be possible to get unarmed stations to "surrender" when their guards are destroyed and switch their faction to a new one of friendly alignment to the player to allow docking.

For example, Ares communes and outlaw mines could cease to be hostile once their Ares sentries/Outlaw turrets/TA3s are taken out.

User avatar
pixelfck
Militia Captain
Militia Captain
Posts: 571
Joined: Tue Aug 11, 2009 8:47 pm
Location: Travelling around in Europe

Wed May 13, 2015 10:22 am

AssumedPseudonym wrote: A quick-n’-dirty check via /debug seems to indicate that this is not currently possible. Using (objSetProperty obj 'dockingEnabled true) returns an invalid property error when applied to stations. For good measure, I also checked (objGetProperty obj 'playerBlacklisted) on an enemy station, which returned nil.
I think a station also needs the dockScreen= attribute to be set. Most hostile stations only have the abandonedScreen= attribute specified (typically "&dsAbandonedStation;").

I'm not sure setting a dockScreen= attribute would allow docking with hostile stations, but you could give it a try.

~Pixelfck
Image
Download the Black Market Expansion from Xelerus.de today!
My other mods at xelerus.de

EditorRUS
Militia Lieutenant
Militia Lieutenant
Posts: 148
Joined: Tue Oct 30, 2012 6:30 pm

Mon May 18, 2015 2:48 pm

I am not entirely sure but check out Huari. You can become friendly with them which makes you be able to dock their stations.

shanejfilomena
Fleet Officer
Fleet Officer
Posts: 1467
Joined: Tue Mar 22, 2011 8:43 pm
Location: Alaska

Sun Jun 07, 2015 4:20 am

there was in fact some cool "mods" that ALMOST did this -
Mission Framework ( as far as I know it's not available anymore )

Boarding Parties Teaser
http://xelerus.de/index.php?s=mod&id=723&d=1

Dynamic Sovereigns
http://xelerus.de/index.php?s=mod&id=816&d=1

ares rins to credits
http://xelerus.de/index.php?s=mod&id=810

Holographic Stealth Device
http://xelerus.de/index.php?s=mod&id=560
( a little buggy - but fun to give it a go )

However, besides THAT... I once tried to do missions for the Black Market, forgetting they are Neutral ... ( later Mission Framework came out and presented the same problem I found - the Player isn't Neutral )

Soo. to make my missions work ( and my copies of Mission Framework work for me ) I would set the Player as Neutral ( Black Market or Independent Trader) using the Mission dockscreens ( works fine so long as I remember that I usually make Corporate & Black Market enemies because
(( to my opinion ))
Black Market cuts into the Corporate Profits...and to steer clear of Corporate Stations until after the mission is over and the last dockscreen resets the Player Sov back to Player)


You can set the Player Sov with simply adding ONE line to a dockscreen
( example )

Code: Select all

(objSetSovereign gSource &svPlayer;)
However - your hostile stations still need a screen to meet the player - otherwise it's just a loot till you reboot your sov.....
Flying Irresponsibly In Eridani......

I don't like to kill pirates in cold blood ..I do it.. but I don't like it..

marsrocks
Miner
Miner
Posts: 47
Joined: Fri Nov 05, 2010 6:29 pm

Thu Nov 12, 2015 1:22 am

The huari idea sounds promising.

This is from the huari.xml globals:

(possibly set sovereign dispositions as neutral - and then back - would be worth a try)


<Globals>
(block Nil
(setq huaCheckExperience (lambda (xp)
(if (gr xp 325)
(block Nil
(typSetGlobalData &svHuariEmpire; "status" 'tualiIntro)
True
)
Nil
)
))

(setq huaHuariDestroyed (lambda (theObj theDestroyer)
(if (and gPlayerShip (eq theDestroyer gPlayerShip))
(block (status)
(typIncGlobalData &svHuariEmpire; "huariDestroyed")
(setq status (typGetGlobalData &svHuariEmpire; "status"))

(if status
(block Nil
(typSetGlobalData &svHuariEmpire; "status" Nil)
(sovSetDisposition &svHuariEmpire; &svPlayer; 'enemy)
(sovSetDisposition &svPlayer; &svHuariEmpire; 'enemy)
)
)
)
)
))

(setq huaIsGateToHuaramarca (lambda (nodeID gateID nodesChecked)
(block (destNode)
(setq destNode (sysGetStargateDestinationNode nodeID gateID))
(if (eq destNode "Huaramarca")
True

(block (stargates)
(setq nodesChecked (append nodesChecked (list nodeID)))
(setq stargates (filter (sysGetStargates destNode) theGate
(not (find nodesChecked (sysGetStargateDestinationNode destNode theGate)))
))

(if stargates
(filter stargates theGate (huaIsGateToHuaramarca destNode theGate nodesChecked))
Nil
)
)
)
)
))

(setq huaSungDestroyed (lambda (theObj theDestroyer)
(if (and gPlayerShip (eq theDestroyer gPlayerShip))
(block (sungDestroyed)
(setq sungDestroyed
(typIncGlobalData &svHuariEmpire; "sungDestroyed")
)

(if (geq sungDestroyed 6)
(block (status huariDestroyed)
(setq status (typGetGlobalData &svHuariEmpire; "status"))
(setq huariDestroyed (typGetGlobalData &svHuariEmpire; "huariDestroyed"))

(if (and (not status) (not huariDestroyed))
(block Nil
(typSetGlobalData &svHuariEmpire; "status" 'friend)
(sovSetDisposition &svHuariEmpire; &svPlayer; 'friend)
(sovSetDisposition &svPlayer; &svHuariEmpire; 'friend)
)
)
)
)
)
)
))
)
</Globals>

From xelerus:

http://xelerus.de/index.php?s=functions&function=229

Functions Documentation
View Function Edit Function
Name sovSetDisposition
Syntax (sovSetDisposition sovUNID1 sovUNID2 disposition)
Argument List sovUNID1: The UNID of the sovereign to change disposition of.
sovUNID2: The UNID of the sovereign to change disposition towards
disposition: (string) the first sovereigns disposition towards the other
Returns condition: True if successful, Nil otherwise.
Category sovereign, ai
Description Sets the disposition of the first sovereign to the second sovereign.
Valid dispositions are "enemy", "neutral" and "friend"
Example

(sovSetDisposition &svCSCAntarctica; &svPlayer; 0)



Makes things controlled by the Antarctica sovereign attack the player.
Comment Interesting function allowing you to change how different groups of space objects act toward each other.

marsrocks
Miner
Miner
Posts: 47
Joined: Fri Nov 05, 2010 6:29 pm

Thu Nov 12, 2015 1:26 am

some more on that:


<!-- Huari Empire

GLOBAL DATA

status: Status of player with respect to Huari
Nil = normal (enemy)
'friend = Huari are friendly and player can do missions
'tualiIntro = Give player the symbiote
'tuali = Player has the symbiote
'tualiDeclined = Player declined the symbiote
'defender = Player is a defender of the Huari
'loser = Player has failed too many missions
'templeDestroyed = Huari temple has been destroyed

huariDestroyed: Number of Huari stations destroyed by the player
sungDestroyed: Number of Sung stations destroyed by the player

missionCount: Total number of missions requested by the player
missionsFailed: Total number of mission failed

visitedTemple: True if player visited the temple in Huaramarca
xp: Total xp accumulated by the player

-->

<Sovereign UNID="&svHuariEmpire;"
name="Huari Empire"
alignment="destructive order"
>
<Relationships>
<Relationship sovereign="&svSung;" disposition="enemy" mutual="true"/>
</Relationships>

<Events>
<GetGlobalAchievements>
(block (theList theStatus)
(setq theStatus (typGetGlobalData &svHuariEmpire; "status"))

(if theStatus
(setq theList (list
(list
(switch
(eq theStatus 'templeDestroyed) "Failed to defend the Huari"
(eq theStatus 'loser) "Disappointed the Huari"
(eq theStatus 'defender) "Became Defender of the Huari"
(typGetGlobalData &svHuariEmpire; "visitedTemple") "Visited the Huari temple in Huaramarca"
(eq theStatus 'tualiIntro) "Befriended the Huari"
(eq theStatus 'tuali) "Invited by the Huari to visit Huaramarca"
(eq theStatus 'tualiDeclined) "Declined invitation to visit Huaramarca"
(eq theStatus 'friend) "Befriended the Huari"
(cat "ERROR: Huari status: " theStatus)
)
Nil
"achievements & regrets"
)
))
)

theList
)
</GetGlobalAchievements>

marsrocks
Miner
Miner
Posts: 47
Joined: Fri Nov 05, 2010 6:29 pm

Fri Nov 13, 2015 12:48 am

And this is how it was done in Heretic:


<Sovereign UNID="&svAresHeretic;"
name="Ares Sect"
alignment="destructive order"
>
<Relationships>
<Relationship sovereign="&svAres;" disposition="friend" mutual="true"/>
<Relationship sovereign="&svPlayer;" disposition="neutral" mutual="true"/>
<Relationship sovereign="&svFriendlyAuton;" disposition="neutral" mutual="true"/>
<Relationship sovereign="&svCommonwealth;" disposition="neutral" mutual="true"/>
<Relationship sovereign="&svCorporate;" disposition="neutral" mutual="true"/>
<Relationship sovereign="&svIndependent;" disposition="neutral" mutual="true"/>
<Relationship sovereign="&svIocrym;" disposition="enemy" mutual="true"/>
</Relationships>
</Sovereign>

<Sovereign UNID="&svSentinelAI;"
name="sentinel AI"
alignment="constructive chaos"
>
<Relationships>
<Relationship sovereign="&svIocrym;" disposition="friend" mutual="true"/>
</Relationships>
</Sovereign>

Post Reply