private void UpdateMorale() { int num = 0; foreach (KeyValuePair <string, bool> item in MasteryBySkillID) { if (item.Value) { Skill skill = Db.Get().Skills.Get(item.Key); float value = 0f; if (AptitudeBySkillGroup.TryGetValue(new HashedString(skill.skillGroup), out value)) { num += (int)value; } } } AttributeInstance attributeInstance = Db.Get().Attributes.QualityOfLife.Lookup(this); if (skillsMoraleModifier != null) { attributeInstance.Remove(skillsMoraleModifier); skillsMoraleModifier = null; } if (num > 0) { skillsMoraleModifier = new AttributeModifier(attributeInstance.Id, (float)num, DUPLICANTS.NEEDS.QUALITYOFLIFE.APTITUDE_SKILLS_MOD_NAME, false, false, true); attributeInstance.Add(skillsMoraleModifier); } }
private void UpdateExpectations() { int num = 0; foreach (KeyValuePair <string, bool> item in MasteryBySkillID) { if (item.Value) { Skill skill = Db.Get().Skills.Get(item.Key); num += skill.tier + 1; } } AttributeInstance attributeInstance = Db.Get().Attributes.QualityOfLifeExpectation.Lookup(this); if (skillsMoraleExpectationModifier != null) { attributeInstance.Remove(skillsMoraleExpectationModifier); skillsMoraleExpectationModifier = null; } if (num > 0) { skillsMoraleExpectationModifier = new AttributeModifier(attributeInstance.Id, (float)num, DUPLICANTS.NEEDS.QUALITYOFLIFE.EXPECTATION_MOD_NAME, false, false, true); attributeInstance.Add(skillsMoraleExpectationModifier); } }
protected override void OnPrefabInit() { base.OnPrefabInit(); decorProvider = GetComponent <DecorProvider>(); if (decorModifier == null) { decorModifier = new AttributeModifier("Decor", 0f, DUPLICANTS.MODIFIERS.CLOTHING.NAME, false, false, false); } if (conductivityModifier == null) { AttributeInstance attributeInstance = base.gameObject.GetAttributes().Get("ThermalConductivityBarrier"); conductivityModifier = new AttributeModifier("ThermalConductivityBarrier", ClothingInfo.BASIC_CLOTHING.conductivityMod, DUPLICANTS.MODIFIERS.CLOTHING.NAME, false, false, false); attributeInstance.Add(conductivityModifier); } }
protected override void OnPrefabInit() { primaryElement = GetComponent <PrimaryElement>(); average_kilowatts_exchanged = new RunningWeightedAverage(-10f, 10f, 20, true); surfaceArea = 1f; thickness = 0.002f; groundTransferScale = 0f; Attributes attributes = base.gameObject.GetAttributes(); AttributeInstance attributeInstance = attributes.Add(Db.Get().Attributes.ThermalConductivityBarrier); AttributeModifier modifier = new AttributeModifier(Db.Get().Attributes.ThermalConductivityBarrier.Id, thickness, DUPLICANTS.MODIFIERS.BASEDUPLICANT.NAME, false, false, true); attributeInstance.Add(modifier); averageTemperatureTransferPerSecond = new AttributeModifier("TemperatureDelta", 0f, DUPLICANTS.MODIFIERS.TEMPEXCHANGE.NAME, false, true, false); this.GetAttributes().Add(averageTemperatureTransferPerSecond); base.OnPrefabInit(); }