Example #1
0
 public StatesInstance(ReactEmoteChore master, GameObject emoter, EmoteReactable reactable, HashedString emote_kanim, HashedString[] emote_anims, KAnim.PlayMode mode)
     : base(master)
 {
     emoteKAnim = emote_kanim;
     emoteAnims = emote_anims;
     this.mode  = mode;
     base.sm.reactable.Set(reactable, base.smi);
     base.sm.emoter.Set(emoter, base.smi);
 }
Example #2
0
 public ReactEmoteChore(IStateMachineTarget target, ChoreType chore_type, EmoteReactable reactable, HashedString emote_kanim, HashedString[] emote_anims, KAnim.PlayMode play_mode, Func <StatusItem> get_status_item)
     : base(chore_type, target, target.GetComponent <ChoreProvider>(), false, (Action <Chore>)null, (Action <Chore>)null, (Action <Chore>)null, PriorityScreen.PriorityClass.basic, 5, false, true, 0, false, ReportManager.ReportType.WorkTime)
 {
     AddPrecondition(ChorePreconditions.instance.IsMoving, null);
     AddPrecondition(ChorePreconditions.instance.IsOffLadder, null);
     AddPrecondition(ChorePreconditions.instance.NotInTube, null);
     AddPrecondition(ChorePreconditions.instance.IsAwake, null);
     getStatusItem = get_status_item;
     base.smi      = new StatesInstance(this, target.gameObject, reactable, emote_kanim, emote_anims, play_mode);
 }
Example #3
0
    public static EmoteReactable CreateOneshotReactable(GameObject source, float lifetime, string id, ChoreType chore_type, HashedString animset, int range_width = 15, int range_height = 15, float min_reactor_time = 20f)
    {
        GameObject     gameObject     = Util.KInstantiate(Assets.GetPrefab(ID), source.transform.GetPosition());
        EmoteReactable emoteReactable = new EmoteReactable(gameObject, id, chore_type, animset, range_width, range_height, 100000f, min_reactor_time, float.PositiveInfinity);

        emoteReactable.AddPrecondition(ReactorIsNotSource(source));
        OneshotReactableHost component = gameObject.GetComponent <OneshotReactableHost>();

        component.lifetime = lifetime;
        component.SetReactable(emoteReactable);
        gameObject.SetActive(true);
        return(emoteReactable);
    }