godarklight / DarkMultiPlayer

DarkMultiPlayer - A multiplayer mod for Kerbal Space Program
MIT License
280 stars 120 forks source link

Kerbals not being spawned for rescue missions #381

Closed 81ninja closed 8 years ago

81ninja commented 8 years ago

As of 1.1.3, stranded Kerbals (either EVA or in pods) are not being generated along with rescue contracts in career mode, even after you accept the contract, disconnect and join back again.

I notice there's code on ScenarioWorker.cs to spawn missing kerbals for RescueKerbal missions. But those contracts are (at least since 1.1.3) actually named as RecoverAsset. Here's a snip from my save file:

CONTRACT
            {
                guid = 3b22af77-624b-4f42-9fe0-fc006dfd5a42
                type = RecoverAsset
                prestige = 0
                seed = -2027186712
                state = Active
                agent = Research & Development Department
                deadlineType = Floating
                expiryType = Floating
                values = 129600,46008000,14040,32076,14040,0,6,19,582770.524064781,512715.352983736,46520715.3529837,0
                targetBody = 1
                kerbalName = Mauliana Kerman
                partName = MK1CrewCabin
                partID = 0
                recoveryLocation = 1
                recoveryType = 1
                gender = 2
                PARAM
                {
                    name = AcquireCrew
                    state = Incomplete
                    values = 3564,0,0,2,0
                    title = Save Mauliana Kerman
                    winOn = 0
                    kerbal = Mauliana Kerman
                }
                PARAM
                {
                    name = RecoverKerbal
                    state = Incomplete
                    values = 0,0,0,0,0
                    title = Recover Mauliana Kerman on Kerbin
                    failOn = All
                    winOn = All
                    kerbal = Mauliana Kerman
                }
            }

From the description, Mauliana should be stranded inside a Mk1 Crew Cabin in LKO.

I'm not sure if it's just a matter of changing RescueKerbal to RecoverAsset in the code. I think it wouldn't be a final solution, because it seems there are, should or there will be contracts for recovering assets other than Kerbonauts in the future - from what I can tell by looking at the API at https://kerbalspaceprogram.com/api/interface_contracts_1_1_i_contract_parameter_host.html

Xinayder commented 8 years ago

Thanks for letting us know. However, the API is for the 1.2 pre-release as far as I know, which could mean that the recovery scenarios had their names changed in 1.2.

I'll take a look this weekend and check it, and potentially push a fix to it.

EDIT: I just checked and 1.1.3 had RecoverAsset as contract type. A simple rename should be enough to fix the issue.