protected override bool OnWorkTick(Worker worker, float dt) { float workSpeedMultiplier = 1f + Db.Get().AttributeConverters.ResearchSpeed.Lookup(worker).Evaluate(); elementConverter.SetWorkSpeedMultiplier(workSpeedMultiplier); return(base.OnWorkTick(worker, dt)); }
public static void OnReplanted(object data = null) { GameObject go = (data as Storage)?.gameObject; if (go == null) { return; } ReceptacleMonitor replant = go.GetComponent <ReceptacleMonitor>(); if (replant != null) { ElementConsumer consumer = go.GetComponent <ElementConsumer>(); ElementConverter converter = go.GetComponent <ElementConverter>(); if (replant == null || !replant.Replanted) { if (consumer != null) { consumer.consumptionRate *= 0.25f; // NOTE: this doesn't seem to be applied... } if (converter != null) { converter.SetWorkSpeedMultiplier(0.25f); } } } }
private static void Postfix(Oxyfern __instance, ElementConsumer ___elementConsumer, ElementConverter ___elementConverter) { float multiplier = __instance.GetAttributes().Get(OxyfernThroughput).GetTotalValue(); ___elementConsumer.consumptionRate *= multiplier; ___elementConsumer.RefreshConsumptionRate(); ___elementConverter.SetWorkSpeedMultiplier(multiplier); }
public static bool Prefix(SaltPlant __instance) { __instance.gameObject.GetComponent <ElementConsumer>()?.EnableConsumption(true); ElementConverter converter = __instance.gameObject.GetComponent <ElementConverter>(); if (converter != null) { if (__instance.GetComponent <ReceptacleMonitor>()?.Replanted ?? false) { converter.SetWorkSpeedMultiplier(1f); } else { converter.SetWorkSpeedMultiplier(0.25f); } } return(false); }
public static bool Prefix(SaltPlant __instance) { __instance.gameObject.GetComponent <ElementConsumer>()?.EnableConsumption(false); ElementConverter converter = __instance.gameObject.GetComponent <ElementConverter>(); if (converter != null) { converter.SetWorkSpeedMultiplier(0f); } return(false); }