コード例 #1
0
 public override void InitializeStates(out BaseState default_state)
 {
     default_state = grow;
     dead.ToggleStatusItem(CREATURES.STATUSITEMS.DEAD.NAME, CREATURES.STATUSITEMS.DEAD.TOOLTIP, category : Db.Get().StatusItemCategories.Main, icon : string.Empty, icon_type : StatusItem.IconType.Info, notification_type : (NotificationType)0, allow_multiples : false, render_overlay : default(HashedString), status_overlays : 0, resolve_string_callback : null, resolve_tooltip_callback : null).Enter(delegate(StatesInstance smi)
     {
         GameUtil.KInstantiate(Assets.GetPrefab(EffectConfigs.PlantDeathId), smi.master.transform.GetPosition(), Grid.SceneLayer.FXFront, null, 0).SetActive(true);
         smi.master.Trigger(1623392196, null);
         smi.master.GetComponent <KBatchedAnimController>().StopAndClear();
         Object.Destroy(smi.master.GetComponent <KBatchedAnimController>());
         smi.Schedule(0.5f, delegate(object data)
         {
             GameObject gameObject = (GameObject)data;
             CreatureHelpers.DeselectCreature(gameObject);
             Util.KDestroyGameObject(gameObject);
         }, smi.master.gameObject);
     });
     blocked_from_growing.ToggleStatusItem(Db.Get().MiscStatusItems.RegionIsBlocked, (object)null).EventTransition(GameHashes.EntombedChanged, alive, (StatesInstance smi) => alive.ForceUpdateStatus(smi.master.gameObject)).EventTransition(GameHashes.TooColdWarning, alive, (StatesInstance smi) => alive.ForceUpdateStatus(smi.master.gameObject))
     .EventTransition(GameHashes.TooHotWarning, alive, (StatesInstance smi) => alive.ForceUpdateStatus(smi.master.gameObject))
     .TagTransition(GameTags.Uprooted, dead, false);
     grow.Enter(delegate(StatesInstance smi)
     {
         if (smi.master.receptacleMonitor.HasReceptacle() && !alive.ForceUpdateStatus(smi.master.gameObject))
         {
             smi.GoTo(blocked_from_growing);
         }
     }).PlayAnim("grow_seed", KAnim.PlayMode.Once).EventTransition(GameHashes.AnimQueueComplete, alive, null);
     alive.InitializeStates(masterTarget, dead).DefaultState(alive.mature).Update("Alive", delegate(StatesInstance smi, float dt)
     {
         smi.master.Exhaust(dt);
     }, UpdateRate.SIM_200ms, false);
     alive.mature.EventTransition(GameHashes.Wilt, alive.wilting, (StatesInstance smi) => smi.master.wiltCondition.IsWilting()).PlayAnim("idle", KAnim.PlayMode.Loop);
     alive.wilting.PlayAnim("wilt1").EventTransition(GameHashes.WiltRecover, alive.mature, (StatesInstance smi) => !smi.master.wiltCondition.IsWilting());
 }
コード例 #2
0
ファイル: PalmeraTree.cs プロジェクト: javisar/ONI-Mods
 protected void DestroySelf(object callbackParam)
 {
     CreatureHelpers.DeselectCreature(gameObject);
     Util.KDestroyGameObject(gameObject);
 }