public void Sim1000ms(float dt) { if (!((UnityEngine.Object) this == (UnityEngine.Object)null)) { if ((UnityEngine.Object)navigator == (UnityEngine.Object)null) { navigator = GetComponent <Navigator>(); } if (!((UnityEngine.Object)navigator != (UnityEngine.Object)null) || navigator.IsMoving()) { if ((UnityEngine.Object)choreDriver == (UnityEngine.Object)null) { choreDriver = GetComponent <ChoreDriver>(); } if ((UnityEngine.Object)choreDriver != (UnityEngine.Object)null) { Chore currentChore = choreDriver.GetCurrentChore(); if (currentChore != null && currentChore is FetchAreaChore) { MinionResume component = GetComponent <MinionResume>(); if ((UnityEngine.Object)component != (UnityEngine.Object)null) { component.AddExperienceWithAptitude(Db.Get().SkillGroups.Hauling.Id, dt, SKILLS.ALL_DAY_EXPERIENCE); } } } } } }
public void EnableRedAlert() { ChoreDriver component = GetComponent <ChoreDriver>(); if ((Object)component != (Object)null) { Chore currentChore = component.GetCurrentChore(); if (currentChore != null) { bool flag = false; for (int i = 0; i < currentChore.GetPreconditions().Count; i++) { Chore.PreconditionInstance preconditionInstance = currentChore.GetPreconditions()[i]; if (preconditionInstance.id == ChorePreconditions.instance.IsNotRedAlert.id) { flag = true; } } if (flag) { component.StopChore(); } } } }
public Instance(IStateMachineTarget master, Def def) : base(master, def) { alignment = master.GetComponent <FactionAlignment>(); navigator = master.GetComponent <Navigator>(); choreDriver = master.GetComponent <ChoreDriver>(); refreshThreatDelegate = RefreshThreat; }
protected override void OnSpawn() { base.OnSpawn(); consumer = gameObject.GetComponent <ChoreConsumer>(); driver = gameObject.GetComponent <ChoreDriver>(); Subscribe((int)GameHashes.ScheduleBlocksChanged, OnScheduleChanged); lastGroupID = CurrentScheduleBlock; acquireChore = lastGroupID == FinishTasksPatches.FinishTask.Id; allowedChore = null; }
public bool IsEating() { if ((Object)assigned != (Object)null && assigned.assignee != null) { GameObject targetGameObject = assigned.assignee.GetSoleOwner().GetComponent <MinionAssignablesProxy>().GetTargetGameObject(); if ((bool)targetGameObject) { ChoreDriver component = targetGameObject.GetComponent <ChoreDriver>(); return((Object)component != (Object)null && component.HasChore() && component.GetCurrentChore().choreType.urge == Db.Get().Urges.Eat); } } return(false); }
public override void InitializeStates(out BaseState default_state) { default_state = Fresh; base.serializable = true; root.TagTransition(GameTags.Preserved, Preserved, false).TagTransition(GameTags.Entombed, Preserved, false); Fresh.ToggleStatusItem(Db.Get().CreatureStatusItems.Fresh, (Instance smi) => smi).ParamTransition(rotParameter, Stale_Pre, (Instance smi, float p) => p <= smi.def.spoilTime - (smi.def.spoilTime - smi.def.staleTime)).FastUpdate("Rot", rotCB, UpdateRate.SIM_1000ms, true); Preserved.TagTransition(PRESERVED_TAGS, Fresh, true).Enter("RefreshModifiers", delegate(Instance smi) { smi.RefreshModifiers(0f); }); Stale_Pre.Enter(delegate(Instance smi) { smi.GoTo(Stale); }); Stale.ToggleStatusItem(Db.Get().CreatureStatusItems.Stale, (Instance smi) => smi).ParamTransition(rotParameter, Fresh, (Instance smi, float p) => p > smi.def.spoilTime - (smi.def.spoilTime - smi.def.staleTime)).ParamTransition(rotParameter, Spoiled, GameStateMachine <Rottable, Instance, IStateMachineTarget, Def> .IsLTEZero) .FastUpdate("Rot", rotCB, UpdateRate.SIM_1000ms, false); Spoiled.Enter(delegate(Instance smi) { GameObject gameObject = Scenario.SpawnPrefab(Grid.PosToCell(smi.master.gameObject), 0, 0, "RotPile", Grid.SceneLayer.Ore); gameObject.gameObject.GetComponent <KSelectable>().SetName(UI.GAMEOBJECTEFFECTS.ROTTEN + " " + smi.master.gameObject.GetProperName()); gameObject.transform.SetPosition(smi.master.transform.GetPosition()); gameObject.GetComponent <PrimaryElement>().Mass = smi.master.GetComponent <PrimaryElement>().Mass; gameObject.GetComponent <PrimaryElement>().Temperature = smi.master.GetComponent <PrimaryElement>().Temperature; gameObject.SetActive(true); PopFXManager.Instance.SpawnFX(PopFXManager.Instance.sprite_Resource, ITEMS.FOOD.ROTPILE.NAME, gameObject.transform, 1.5f, false); Edible component = smi.GetComponent <Edible>(); if ((Object)component != (Object)null) { if ((Object)component.worker != (Object)null) { ChoreDriver component2 = component.worker.GetComponent <ChoreDriver>(); if ((Object)component2 != (Object)null && component2.GetCurrentChore() != null) { component2.GetCurrentChore().Fail("food rotted"); } } ReportManager.Instance.ReportValue(ReportManager.ReportType.CaloriesCreated, 0f - component.Calories, StringFormatter.Replace(UI.ENDOFDAYREPORT.NOTES.ROTTED, "{0}", smi.gameObject.GetProperName()), UI.ENDOFDAYREPORT.NOTES.ROTTED_CONTEXT); } Util.KDestroyGameObject(smi.gameObject); }); }
public ChoreConsumerState(ChoreConsumer consumer) { this.consumer = consumer; navigator = consumer.GetComponent <Navigator>(); prefabid = consumer.GetComponent <KPrefabID>(); ownable = consumer.GetComponent <Ownable>(); gameObject = consumer.gameObject; solidTransferArm = consumer.GetComponent <SolidTransferArm>(); hasSolidTransferArm = ((Object)solidTransferArm != (Object)null); resume = consumer.GetComponent <MinionResume>(); choreDriver = consumer.GetComponent <ChoreDriver>(); schedulable = consumer.GetComponent <Schedulable>(); traits = consumer.GetComponent <Traits>(); choreProvider = consumer.GetComponent <ChoreProvider>(); MinionIdentity component = consumer.GetComponent <MinionIdentity>(); if ((Object)component != (Object)null) { if (component.assignableProxy == null) { component.assignableProxy = MinionAssignablesProxy.InitAssignableProxy(component.assignableProxy, component); } assignables = component.GetSoleOwner(); equipment = component.GetEquipment(); } else { assignables = consumer.GetComponent <Assignables>(); equipment = consumer.GetComponent <Equipment>(); } storage = consumer.GetComponent <Storage>(); consumableConsumer = consumer.GetComponent <ConsumableConsumer>(); worker = consumer.GetComponent <Worker>(); selectable = consumer.GetComponent <KSelectable>(); if ((Object)schedulable != (Object)null) { int blockIdx = Schedule.GetBlockIdx(); scheduleBlock = schedulable.GetSchedule().GetBlock(blockIdx); } }
public Instance(IStateMachineTarget master) : base(master) { choreDriver = master.GetComponent <ChoreDriver>(); }
public bool IsEating() { ChoreDriver component = base.master.GetComponent <ChoreDriver>(); return(component.HasChore() && component.GetCurrentChore().choreType.urge == Db.Get().Urges.Eat); }
public Instance(IStateMachineTarget master) : base(master) { bladder = Db.Get().Amounts.Bladder.Lookup(master.gameObject); choreDriver = GetComponent <ChoreDriver>(); }