コード例 #1
0
    protected override void OnCompleteWork(Worker worker)
    {
        if (!string.IsNullOrEmpty(info.effect))
        {
            Effects        component      = worker.GetComponent <Effects>();
            EffectInstance effectInstance = component.Get(info.effect);
            if (effectInstance != null)
            {
                effectInstance.timeRemaining = effectInstance.effect.duration;
            }
            else
            {
                component.Add(info.effect, true);
            }
        }
        Sicknesses sicknesses = worker.GetSicknesses();

        foreach (string curedSickness in info.curedSicknesses)
        {
            SicknessInstance sicknessInstance = sicknesses.Get(curedSickness);
            if (sicknessInstance != null)
            {
                Game.Instance.savedInfo.curedDisease = true;
                sicknessInstance.Cure();
            }
        }
        base.gameObject.DeleteObject();
    }
コード例 #2
0
        public override object OnInfect(GameObject go, SicknessInstance diseaseInstance)
        {
            var statesInstance = new StatesInstance(diseaseInstance);

            statesInstance.StartSM();
            return(statesInstance);
        }
コード例 #3
0
        public void OnSicknessCured(object sickness_instance_data)
        {
            SicknessInstance sicknessInstance = (SicknessInstance)sickness_instance_data;

            ExposureType[] tYPES = GERM_EXPOSURE.TYPES;
            foreach (ExposureType exposureType in tYPES)
            {
                if (exposureType.sickness_id == sicknessInstance.Sickness.Id)
                {
                    SetExposureState(exposureType.germ_id, ExposureState.None);
                }
            }
        }
コード例 #4
0
 public override object OnInfect(GameObject go, SicknessInstance diseaseInstance)
 {
     if (go != null)
     {
         GameScheduler.Instance.Schedule("InfectWith" + sickness_id, 0.5f, (_) =>
         {
             var effects = go.GetComponent <Effects>();
             // Do not inflict the symptoms if the excluded effect is present
             if (effects == null || string.IsNullOrEmpty(excluded_effect) || !effects.
                 HasEffect(excluded_effect))
             {
                 var exposure_info = new SicknessExposureInfo(sickness_id,
                                                              infection_source_info);
                 go.GetComponent <MinionModifiers>()?.sicknesses?.Infect(exposure_info);
             }
         });
     }
     return(null);
 }
コード例 #5
0
 public override object OnInfect(GameObject go, SicknessInstance diseaseInstance)
 {
     return(null);
 }
コード例 #6
0
 public override object OnInfect(GameObject go, SicknessInstance diseaseInstance)
 {
     // Doesn't do anything on infect
     return(null);
 }