public bool CanInteract(Character c) { return((bool)At.Call(c, "CanInteract", null)); }
// usually called from LoadScene. Also by the Sync functions when you join a host. public IEnumerator SetupBonfireLocal(Vector3 position, string uid) { Debug.Log("Setting up bonfire at: " + position.ToString() + ", uid: " + uid); var bonfire = new GameObject("Bonfire_" + uid); bonfire.transform.position = position; var activatedCampfire = ResourcesPrefabManager.Instance.GetItemPrefab(5000101).GetComponent <Deployable>().DeployedStateItemPrefab.VisualPrefab; var fireVisuals = Instantiate(activatedCampfire.gameObject); fireVisuals.transform.parent = bonfire.transform; fireVisuals.transform.position = bonfire.transform.position; var swordVisuals = Instantiate(ResourcesPrefabManager.Instance.GetItemPrefab(2000151).VisualPrefab.gameObject); swordVisuals.transform.parent = bonfire.transform; swordVisuals.transform.position = bonfire.transform.position + Vector3.up; swordVisuals.transform.rotation = Quaternion.Euler(0, 0, 90); var sigilVisuals = Instantiate(ResourcesPrefabManager.Instance.GetItemPrefab(8000010).VisualPrefab.gameObject); sigilVisuals.transform.parent = bonfire.transform; sigilVisuals.transform.position = bonfire.transform.position; // interaction gameobject base GameObject actionHolder = new GameObject("Interaction_Holder"); actionHolder.transform.parent = bonfire.transform; actionHolder.transform.position = bonfire.transform.position; // setup components InteractionTriggerBase triggerBase = actionHolder.AddComponent <InteractionTriggerBase>(); InteractionActivator activator = actionHolder.AddComponent <InteractionActivator>(); InteractionBase interactBase = actionHolder.AddComponent <InteractionBase>(); // setup the trigger base triggerBase.SetHolderUID(uid); triggerBase.GenerateColliderIfNone = true; triggerBase.IsLargeTrigger = true; triggerBase.DetectionPriority = -9999; triggerBase.SetActivator(activator); // setup the interaction activator activator.SetUID(uid); At.SetValue("Rest at <color=#fc4e03>Bonfire</color>", typeof(InteractionActivator), activator, "m_overrideBasicText"); At.SetValue(interactBase, typeof(InteractionActivator), activator, "m_sceneBasicInteraction"); // setup the event interaction base interactBase.OnActivationEvent = BonfireEvent; // =========== finalize =========== // bonfire.gameObject.SetActive(true); yield return(new WaitForSeconds(0.1f)); //activator.Reregister(); foreach (ParticleSystem ps in fireVisuals.GetComponentsInChildren <ParticleSystem>()) { ps.Play(); var m = ps.main; m.prewarm = true; m.playOnAwake = true; } foreach (Light light in fireVisuals.GetComponentsInChildren <Light>()) { light.gameObject.SetActive(true); } foreach (SoundPlayer sound in fireVisuals.GetComponentsInChildren <SoundPlayer>()) { sound.Play(false); } }