private int activeContracts(ExperimentData expData = null, CelestialBody body = null)
        {
            int ret = 0;

            if (ContractSystem.Instance == null)
            {
                return(0);
            }
            if (ContractSystem.Instance.Contracts == null)
            {
                return(0);
            }
            foreach (Contract con in ContractSystem.Instance.Contracts)
            {
                KeminiExperimentContract keminiContract = con as KeminiExperimentContract;
                if (keminiContract != null && (keminiContract.ContractState == Contract.State.Active ||
                                               keminiContract.ContractState == Contract.State.Offered) &&
                    (expData == null || keminiContract.experiment != null) &&
                    (body == null || keminiContract.targetBody != null) &&
                    ((expData == null || expData.getId() == keminiContract.experiment.getId()) &&
                     (body == null || body.theName == keminiContract.targetBody.theName)))
                {
                    ret += 1;
                }
            }
            return(ret);
        }
示例#2
0
        private int activeAndDoneContracts(ExperimentData expData = null, CelestialBody body = null)
        {
            int ret = 0;

            if (ContractSystem.Instance == null)
            {
                return(0);
            }
            if (ContractSystem.Instance.Contracts == null)
            {
                return(0);
            }
            var contracts = ContractSystem.Instance.Contracts;

            for (int idx = 0, count = contracts.Count; idx < count; idx++)
            {
                var con = contracts[idx];
                KeminiExperimentContract keminiCon = con as KeminiExperimentContract;
                if (keminiCon != null && (keminiCon.ContractState == Contract.State.Active ||
                                          keminiCon.ContractState == Contract.State.Offered ||
                                          keminiCon.ContractState == Contract.State.Completed) &&
                    (expData == null || keminiCon.experiment != null) &&
                    (body == null || keminiCon.targetBody != null) &&
                    ((expData == null || expData.getId() == keminiCon.experiment.getId()) &&
                     (body == null || body.bodyName == keminiCon.targetBody.bodyName)))
                {
                    ret += 1;
                }
            }
            return(ret);
        }