Mostly working. Just as couple of things I can't work out.
The mission runs from Fleet settlements in the Loyal Fleet Settlements mod.
On selecting the "Barracks" action in the station the player gets the option to accept a 'get supplies from a nearby station' mission. These supplies are returned to the original station and the player gets a reward.
===============
It works as required up until the player docks at the 'supply' station. Ideally a screen would show where the player meets a dockmaster and is told the supplies have been placed in the cargo hold. But I can't work out how to get an initial custom dockscreen to show. Whenever I have any success at all, the dockscreen doesn't appear until the player undocks from the station.
1. How do you make a dockscreen appear first on docking at the 'supply' station?
===============
Several of the screens require double exits to get out. EIther a "Continue" then "Done" action or two "Continue" actions.
These include the "inProgress" screen which shows at the Fleet settlement before the player collects the supplies, the mission failed screen "Thanks for nothing" when the player collects the supplies but doesn't have them on returning to the Fleet settlement and the mission success screen.
But not the 'mission failed because the supply station was destroyed' screen.
The desired outcome is for the player to be 'forceUndock'ed if the "Thanks for nothing" message shows. This happens but only after the two actions. All other options should navigate the player to the default Fleet settlement dockscreen.
2. Why are the two actions required to exit a screen and how can the exit be directed to either the default station dockscreen or 'forceUndock'?
===============
Additional.
This is part of the mission code.
Code: Select all
<OnObjDocked>
;If we have arrived at the supply station show an appropriate pane somehow and add the supplies.
(switch
(and (not (msnGetData gSource 'status))
(= aObjDocked gPlayerShip)
(= (objGetID aDockTarget) (msnGetData gSource 'supplyID))
)
(block Nil
(objAddItem gPlayerShip (itmCreate &itRedNebulaBeer; 1) 4)
(msnSetData gSource 'missionCargo (objGetItems gPlayerShip "*+unid:&itRedNebulaBeer;;"))
(msnSetData gSource 'status 'gotIt)
(msnSetPlayerTarget gSource)
)
);switch
</OnObjDocked>
;XXXXXX Confused why the target needs to be set on both OnObjDocked and OnSetPlayerTarget. XXXXXX
<OnSetPlayerTarget>
(switch
;If we have the supplies then return to Fleet Settlement.
(eq (msnGetData gSource 'status) 'gotIt)
(rpgSetTarget gSource aReason (objGetObjByID (msnGetData gSource 'destID)) 'dock)
;Otherwise go get them.
(rpgSetTarget gSource aReason (objGetObjByID (msnGetData gSource 'supplyID)) 'dock)
)
</OnSetPlayerTarget>
But highlighting the Fleet settlement takes two lots of code.
Code: Select all
(msnSetPlayerTarget gSource) in <OnObjDocked>
and
(rpgSetTarget gSource aReason (objGetObjByID (msnGetData gSource 'destID)) 'dock) in <OnSetPlayerTarget>
3. What is the appropriate way to highlight the Fleet settlement in this mission?
=================
The mission is accepted from the "Barracks" action in the Fleet settlement.
It uses Text ids "Intro" and "Briefing". These use respectively "Continue" and "Accept/Decline" as their actions.
4. Is it possible to override these actions with "Maybe" and "I can do that for you/No thanks, I'm busy"?
===================
If the player destroys the 'supply' station they can be arrested by the Fleet. If they get their Fleet status revoked the mission doesn't cancel and the Fleet settlement remains highlighted. The player cannot then dock with the station.
5. How can the mission be cancelled if the player has their military status revoked?
The mod is attached and for convenient testing a Fleet settlement is automatically created in Eridani and a military ID added to the playership.