예제 #1
0
 public void Mod(WorldTrait.ElementBandModifier mod)
 {
     Debug.Assert(mod.element == base.content);
     base.bandSize *= mod.bandMultiplier;
     if (overrides == null)
     {
         overrides = new SampleDescriber.Override();
     }
     overrides.ModMultiplyMass(mod.massMultiplier);
 }
예제 #2
0
        public static ElementOverride GetElementOverride(string element, SampleDescriber.Override overrides)
        {
            Debug.Assert(element != null && element.Length > 0);
            ElementOverride result = default(ElementOverride);

            result.element = ElementLoader.FindElementByName(element);
            Debug.Assert(result.element != null, "Couldn't find an element called " + element);
            result.pdelement   = result.element.defaultValues;
            result.dc          = Sim.DiseaseCell.Invalid;
            result.mass        = result.element.defaultValues.mass;
            result.temperature = result.element.defaultValues.temperature;
            if (overrides == null)
            {
                return(result);
            }
            result.overrideMass          = false;
            result.overrideTemperature   = false;
            result.overrideDiseaseIdx    = false;
            result.overrideDiseaseAmount = false;
            if (overrides.massOverride.HasValue)
            {
                result.mass         = overrides.massOverride.Value;
                result.overrideMass = true;
            }
            if (overrides.massMultiplier.HasValue)
            {
                result.mass        *= overrides.massMultiplier.Value;
                result.overrideMass = true;
            }
            if (overrides.temperatureOverride.HasValue)
            {
                result.temperature         = overrides.temperatureOverride.Value;
                result.overrideTemperature = true;
            }
            if (overrides.temperatureMultiplier.HasValue)
            {
                result.temperature        *= overrides.temperatureMultiplier.Value;
                result.overrideTemperature = true;
            }
            if (overrides.diseaseOverride != null)
            {
                result.diseaseIdx         = (byte)WorldGen.GetDiseaseIdx(overrides.diseaseOverride);
                result.overrideDiseaseIdx = true;
            }
            if (overrides.diseaseAmountOverride.HasValue)
            {
                result.diseaseAmount         = overrides.diseaseAmountOverride.Value;
                result.overrideDiseaseAmount = true;
            }
            if (result.overrideTemperature)
            {
                result.pdelement.temperature = result.temperature;
            }
            if (result.overrideMass)
            {
                result.pdelement.mass = result.mass;
            }
            if (result.overrideDiseaseIdx)
            {
                result.dc.diseaseIdx = result.diseaseIdx;
            }
            if (result.overrideDiseaseAmount)
            {
                result.dc.elementCount = result.diseaseAmount;
            }
            return(result);
        }
예제 #3
0
 public ElementGradient(string content, float bandSize, SampleDescriber.Override overrides)
     : base(content, bandSize)
 {
     this.overrides = overrides;
 }