public void FillDetail(IScienceExperiment experiment)
    {
        TitleDescription.text = string.Format("<b>{0}</b>\n<i>{1}</i>", experiment.Title().ToUpperInvariant(), experiment.Experiment.Description());
        RewardText.text       = string.Format("${0} REWARD", experiment.Reward);
        DetailSprite.sprite   = experiment.Experiment.Sprite();
        ExperimentStatus status = experiment.Status;

        CancelButton.gameObject.SetActive(status == ExperimentStatus.Accepted);
        AcceptButton.gameObject.SetActive(status == ExperimentStatus.Available);
        FinishButton.gameObject.SetActive(status == ExperimentStatus.ReadyForCompletion);
        FinishedPanel.gameObject.SetActive(status == ExperimentStatus.Completed);
        switch (status)
        {
        case ExperimentStatus.Accepted:
            ClockFill.fillAmount = experiment.Progress;
            break;

        case ExperimentStatus.Available:
            ClockFill.fillAmount = 0f;
            break;

        case ExperimentStatus.ReadyForCompletion:
        case ExperimentStatus.Completed:
            ClockFill.fillAmount = 1f;
            break;
        }
        DayText.text = experiment.ProgressText;
    }
Esempio n. 2
0
    internal void ScienceExperimentPayday(IScienceExperiment experiment)
    {
        Game.Current.Player.BankAccount += experiment.Reward;

        if (this.OnBankAccountChange != null)
        {
            this.OnBankAccountChange();
        }
    }
Esempio n. 3
0
    public bool CompleteExperiment(IScienceExperiment experiment)
    {
        if (experiment.Experiment == ExperimentType.BioMinilab && !this.MinilabDocked)
        {
            GuiBridge.Instance.ShowNews(NewsSource.MinilabNotDocked);
            return(false);
        }

        Science.Complete(experiment);
        CleanupExperiments(experiment);
        experiment.OnComplete();

        return(true);
    }
Esempio n. 4
0
    public static void Complete(this IScienceExperiment experiment)
    {
        switch (experiment.Experiment)
        {
        case ExperimentType.BioMinilab:
            Base.Current.CompletedBiologyMissions = getNewCompletedScienceMissionArray(Base.Current.CompletedBiologyMissions, experiment);
            break;

        case ExperimentType.GeoSample:
            Base.Current.CompletedGeologyMissions = getNewCompletedScienceMissionArray(Base.Current.CompletedGeologyMissions, experiment);
            break;
        }
        EconomyManager.Instance.ScienceExperimentPayday(experiment);
    }
    public void ClickOrHover(int index)
    {
        switch (CurrentPage)
        {
        case DetailPage.Biology:
            detailedExperiment = BiologyMissionList[index];
            UI.FillDetail(detailedExperiment);
            break;

        case DetailPage.Geology:
            detailedExperiment = GeologyMissionList[index];
            UI.FillDetail(detailedExperiment);
            break;
        }
    }
Esempio n. 6
0
    public bool CompleteExperiment(IScienceExperiment experiment)
    {
        if (experiment.Experiment == ExperimentType.BioMinilab && !this.MinilabDocked)
        {
            GuiBridge.Instance.ShowNews(NewsSource.MinilabNotDocked);
            return(false);
        }

        Science.Complete(experiment);
        Game.Current.Score.AddScoringEvent(RedHomestead.Scoring.ScoreType.Science, GuiBridge.Instance);
        CleanupExperiments(experiment);
        experiment.OnComplete();

        return(true);
    }
Esempio n. 7
0
    private void CleanupExperiments(IScienceExperiment experiment)
    {
        switch (experiment.Experiment)
        {
        case ExperimentType.BioMinilab:
            if (CurrentMinilab != null)
            {
                GameObject.Destroy(CurrentMinilab.gameObject);
            }
            FlexData.CurrentBioExperiment = null;
            break;

        case ExperimentType.GeoSample:
            FlexData.CurrentGeoExperiment = null;
            break;
        }
    }
Esempio n. 8
0
    public void AcceptExperiment(IScienceExperiment experiment)
    {
        switch (experiment.Experiment)
        {
        case ExperimentType.BioMinilab:
            FlexData.CurrentBioExperiment = experiment as BiologyScienceExperiment;
            if (CurrentMinilab == null)
            {
                CreateMinilab();
            }
            break;

        case ExperimentType.GeoSample:
            FlexData.CurrentGeoExperiment = experiment as GeologyScienceExperiment;
            break;
        }
        experiment.OnAccept();
    }
Esempio n. 9
0
    public static string Title(this IScienceExperiment experiment)
    {
        string result = "";

        switch (experiment.Experiment)
        {
        case ExperimentType.BioMinilab:
            result = "Minilab";
            break;

        default:
        case ExperimentType.GeoSample:
            result = "Sample";
            break;
        }

        return(result + " Mission " + experiment.MissionNumber);
    }
Esempio n. 10
0
 public void CancelExperiment(IScienceExperiment experiment)
 {
     CleanupExperiments(experiment);
     experiment.OnCancel();
 }
Esempio n. 11
0
 internal ControlBuilder(IScienceExperiment <T, TPublish> experiment)
 {
     this.experiment = experiment;
     steps           = experiment.Steps;
 }
Esempio n. 12
0
 public IControlBuilder <T, TPublish> CreateExperiment <T, TPublish>(IScienceExperiment <T, TPublish> custom)
 {
     return(new ControlBuilder <T, TPublish>(custom));
 }
Esempio n. 13
0
    private static int[] getNewCompletedScienceMissionArray(int[] previouslyCompletedMissions, IScienceExperiment experiment)
    {
        if (previouslyCompletedMissions == null)
        {
            return new int[1] {
                       experiment.MissionNumber
            }
        }
        ;
        else
        {
            var list = previouslyCompletedMissions.ToList();

            list.Add(experiment.MissionNumber);
            return(list.ToArray());
        }
    }