| using System; |
| using System; |
| using System.Collections.Generic; |
| using System.Collections.Generic; |
| using UnityEngine; |
| using UnityEngine; |
| |
| |
| public class OfferingBowl : MonoBehaviour, Hoverable, Interactable |
| public class OfferingBowl : MonoBehaviour, Hoverable, Interactable |
| { |
| { |
| private void Awake() |
| private void Awake() |
| { |
| { |
| this.m_solidRayMask = LayerMask.GetMask(new string[] { "Default", "static_solid", "Default_small", "piece" }); |
| this.m_solidRayMask = LayerMask.GetMask(new string[] { "Default", "static_solid", "Default_small", "piece" }); |
| } |
| } |
| |
| |
| private void Start() |
| private void Start() |
| { |
| { |
| this.m_nview = base.GetComponentInParent<ZNetView>(); |
| this.m_nview = base.GetComponentInParent<ZNetView>(); |
| if (!this.m_nview) |
| if (!this.m_nview) |
| { |
| { |
| return; |
| return; |
| } |
| } |
| this.m_nview.Register<Vector3, bool>("RPC_SpawnBoss", new Action<long, Vector3, bool>(this.RPC_SpawnBoss)); |
| this.m_nview.Register<Vector3, bool>("RPC_SpawnBoss", new Action<long, Vector3, bool>(this.RPC_SpawnBoss)); |
| this.m_nview.Register("RPC_BossSpawnInitiated", new Action<long>(this.RPC_BossSpawnInitiated)); |
| this.m_nview.Register("RPC_BossSpawnInitiated", new Action<long>(this.RPC_BossSpawnInitiated)); |
| this.m_nview.Register("RPC_RemoveBossSpawnInventoryItems", new Action<long>(this.RPC_RemoveBossSpawnInventoryItems)); |
| this.m_nview.Register("RPC_RemoveBossSpawnInventoryItems", new Action<long>(this.RPC_RemoveBossSpawnInventoryItems)); |
| } |
| } |
| |
| |
| public string GetHoverText() |
| public string GetHoverText() |
| { |
| { |
| if (this.m_useItemStands) |
| if (this.m_useItemStands) |
| { |
| { |
| return Localization.instance.Localize(this.m_name + "\n[<color=yellow><b>$KEY_Use</b></color>] " + this.m_useItemText); |
| return Localization.instance.Localize(this.m_name + "\n[<color=yellow><b>$KEY_Use</b></color>] " + this.m_useItemText); |
| } |
| } |
| return Localization.instance.Localize(this.m_name + "\n[<color=yellow><b>1-8</b></color>] " + this.m_useItemText); |
| return Localization.instance.Localize(this.m_name + "\n[<color=yellow><b>1-8</b></color>] " + this.m_useItemText); |
| } |
| } |
| |
| |
| public string GetHoverName() |
| public string GetHoverName() |
| { |
| { |
| return this.m_name; |
| return this.m_name; |
| } |
| } |
| |
| |
| public bool Interact(Humanoid user, bool hold, bool alt) |
| public bool Interact(Humanoid user, bool hold, bool alt) |
| { |
| { |
| if (hold || this.IsBossSpawnQueued() || !this.m_useItemStands) |
| if (hold || this.IsBossSpawnQueued() || !this.m_useItemStands) |
| { |
| { |
| return false; |
| return false; |
| } |
| } |
| using (List<ItemStand>.Enumerator enumerator = this.FindItemStands().GetEnumerator()) |
| using (List<ItemStand>.Enumerator enumerator = this.FindItemStands().GetEnumerator()) |
| { |
| { |
| while (enumerator.MoveNext()) |
| while (enumerator.MoveNext()) |
| { |
| { |
| if (!enumerator.Current.HaveAttachment()) |
| if (!enumerator.Current.HaveAttachment()) |
| { |
| { |
| . | user.Message(MessageHud.MessageType.Center, "$msg_incompleteoffering", 0, null); |
| user.Message(MessageHud.MessageType.Center, this.m_incompleteOfferText, 0, null); |
| return false; |
| return false; |
| } |
| } |
| } |
| } |
| } |
| } |
| this.m_interactUser = user; |
| this.m_interactUser = user; |
| this.InitiateSpawnBoss(this.GetSpawnPosition(), false); |
| this.InitiateSpawnBoss(this.GetSpawnPosition(), false); |
| return true; |
| return true; |
| } |
| } |
| |
| |
| public bool UseItem(Humanoid user, ItemDrop.ItemData item) |
| public bool UseItem(Humanoid user, ItemDrop.ItemData item) |
| { |
| { |
| if (this.m_useItemStands) |
| if (this.m_useItemStands) |
| { |
| { |
| return false; |
| return false; |
| } |
| } |
| if (this.IsBossSpawnQueued()) |
| if (this.IsBossSpawnQueued()) |
| { |
| { |
| return true; |
| return true; |
| } |
| } |
| if (!(this.m_bossItem != null)) |
| if (!(this.m_bossItem != null)) |
| { |
| { |
| return false; |
| return false; |
| } |
| } |
| if (!(item.m_shared.m_name == this.m_bossItem.m_itemData.m_shared.m_name)) |
| if (!(item.m_shared.m_name == this.m_bossItem.m_itemData.m_shared.m_name)) |
| { |
| { |
| . | user.Message(MessageHud.MessageType.Center, "$msg_offerwrong", 0, null); |
| user.Message(MessageHud.MessageType.Center, this.m_wrongOfferText, 0, null); |
| return true; |
| return true; |
| } |
| } |
| int num = user.GetInventory().CountItems(this.m_bossItem.m_itemData.m_shared.m_name, -1, true); |
| int num = user.GetInventory().CountItems(this.m_bossItem.m_itemData.m_shared.m_name, -1, true); |
| if (num < this.m_bossItems) |
| if (num < this.m_bossItems) |
| { |
| { |
| if (num == 0 && Game.m_worldLevel > 0 && user.GetInventory().CountItems(this.m_bossItem.m_itemData.m_shared.m_name, -1, false) > 0) |
| if (num == 0 && Game.m_worldLevel > 0 && user.GetInventory().CountItems(this.m_bossItem.m_itemData.m_shared.m_name, -1, false) > 0) |
| { |
| { |
| user.Message(MessageHud.MessageType.Center, Localization.instance.Localize("$msg_ng_the_x") + item.m_shared.m_name + Localization.instance.Localize("$msg_ng_x_is_too_low"), 0, null); |
| user.Message(MessageHud.MessageType.Center, Localization.instance.Localize("$msg_ng_the_x") + item.m_shared.m_name + Localization.instance.Localize("$msg_ng_x_is_too_low"), 0, null); |
| } |
| } |
| else |
| else |
| { |
| { |
| . | user.Message(MessageHud.MessageType.Center, string.Format("$msg_incompleteoffering: {0} {1} / {2}", this.m_bossItem.m_itemData.m_shared.m_name, num.ToString(), this.m_bossItems), 0, null); |
| user.Message(MessageHud.MessageType.Center, string.Format("{0}: {1} {2} / {3}", new object[] |
| |
| { |
| |
| this.m_incompleteOfferText, |
| |
| this.m_bossItem.m_itemData.m_shared.m_name, |
| |
| num.ToString(), |
| |
| this.m_bossItems |
| |
| }), 0, null); |
| } |
| } |
| return true; |
| return true; |
| } |
| } |
| if (this.m_bossPrefab != null) |
| if (this.m_bossPrefab != null) |
| { |
| { |
| this.m_usedSpawnItem = item; |
| this.m_usedSpawnItem = item; |
| this.m_interactUser = user; |
| this.m_interactUser = user; |
| this.InitiateSpawnBoss(this.GetSpawnPosition(), true); |
| this.InitiateSpawnBoss(this.GetSpawnPosition(), true); |
| } |
| } |
| else if (this.m_itemPrefab != null && this.SpawnItem(this.m_itemPrefab, user as Player)) |
| else if (this.m_itemPrefab != null && this.SpawnItem(this.m_itemPrefab, user as Player)) |
| { |
| { |
| user.GetInventory().RemoveItem(item.m_shared.m_name, this.m_bossItems, -1, true); |
| user.GetInventory().RemoveItem(item.m_shared.m_name, this.m_bossItems, -1, true); |
| user.ShowRemovedMessage(this.m_bossItem.m_itemData, this.m_bossItems); |
| user.ShowRemovedMessage(this.m_bossItem.m_itemData, this.m_bossItems); |
| . | user.Message(MessageHud.MessageType.Center, "$msg_offerdone", 0, null); |
| user.Message(MessageHud.MessageType.Center, this.m_usedAltarText, 0, null); |
| this.m_fuelAddedEffects.Create(this.m_itemSpawnPoint.position, base.transform.rotation, null, 1f, -1); |
| this.m_fuelAddedEffects.Create(this.m_itemSpawnPoint.position, base.transform.rotation, null, 1f, -1); |
| } |
| } |
| if (!string.IsNullOrEmpty(this.m_setGlobalKey)) |
| if (!string.IsNullOrEmpty(this.m_setGlobalKey)) |
| { |
| { |
| ZoneSystem.instance.SetGlobalKey(this.m_setGlobalKey); |
| ZoneSystem.instance.SetGlobalKey(this.m_setGlobalKey); |
| } |
| } |
| return true; |
| return true; |
| } |
| } |
| |
| |
| private bool SpawnItem(ItemDrop item, Player player) |
| private bool SpawnItem(ItemDrop item, Player player) |
| { |
| { |
| if (item.m_itemData.m_shared.m_questItem && player.HaveUniqueKey(item.m_itemData.m_shared.m_name)) |
| if (item.m_itemData.m_shared.m_questItem && player.HaveUniqueKey(item.m_itemData.m_shared.m_name)) |
| { |
| { |
| . | player.Message(MessageHud.MessageType.Center, "$msg_cantoffer", 0, null); |
| player.Message(MessageHud.MessageType.Center, this.m_cantOfferText, 0, null); |
| return false; |
| return false; |
| } |
| } |
| UnityEngine.Object.Instantiate<ItemDrop>(item, this.m_itemSpawnPoint.position, Quaternion.identity); |
| UnityEngine.Object.Instantiate<ItemDrop>(item, this.m_itemSpawnPoint.position, Quaternion.identity); |
| return true; |
| return true; |
| } |
| } |
| |
| |
| private Vector3 GetSpawnPosition() |
| private Vector3 GetSpawnPosition() |
| { |
| { |
| if (this.m_spawnPoints.Count > 0) |
| if (this.m_spawnPoints.Count > 0) |
| { |
| { |
| return this.m_spawnPoints[UnityEngine.Random.Range(0, this.m_spawnPoints.Count)].transform.position; |
| return this.m_spawnPoints[UnityEngine.Random.Range(0, this.m_spawnPoints.Count)].transform.position; |
| } |
| } |
| Vector3 vector = base.transform.localToWorldMatrix * this.m_spawnAreaOffset; |
| Vector3 vector = base.transform.localToWorldMatrix * this.m_spawnAreaOffset; |
| return base.transform.position + vector; |
| return base.transform.position + vector; |
| } |
| } |
| |
| |
| private void InitiateSpawnBoss(Vector3 point, bool removeItemsFromInventory) |
| private void InitiateSpawnBoss(Vector3 point, bool removeItemsFromInventory) |
| { |
| { |
| this.m_nview.InvokeRPC("RPC_SpawnBoss", new object[] { point, removeItemsFromInventory }); |
| this.m_nview.InvokeRPC("RPC_SpawnBoss", new object[] { point, removeItemsFromInventory }); |
| } |
| } |
| |
| |
| private void RPC_SpawnBoss(long senderId, Vector3 point, bool removeItemsFromInventory) |
| private void RPC_SpawnBoss(long senderId, Vector3 point, bool removeItemsFromInventory) |
| { |
| { |
| if (!this.m_nview.IsOwner() || this.IsBossSpawnQueued()) |
| if (!this.m_nview.IsOwner() || this.IsBossSpawnQueued()) |
| { |
| { |
| return; |
| return; |
| } |
| } |
| Vector3 vector; |
| Vector3 vector; |
| if (this.CanSpawnBoss(point, out vector)) |
| if (this.CanSpawnBoss(point, out vector)) |
| { |
| { |
| if (!this.m_nview && this.m_nview.IsValid()) |
| if (!this.m_nview && this.m_nview.IsValid()) |
| { |
| { |
| return; |
| return; |
| } |
| } |
| this.SpawnBoss(vector); |
| this.SpawnBoss(vector); |
| this.m_nview.InvokeRPC(senderId, "RPC_BossSpawnInitiated", Array.Empty<object>()); |
| this.m_nview.InvokeRPC(senderId, "RPC_BossSpawnInitiated", Array.Empty<object>()); |
| if (removeItemsFromInventory) |
| if (removeItemsFromInventory) |
| { |
| { |
| this.m_nview.InvokeRPC(senderId, "RPC_RemoveBossSpawnInventoryItems", Array.Empty<object>()); |
| this.m_nview.InvokeRPC(senderId, "RPC_RemoveBossSpawnInventoryItems", Array.Empty<object>()); |
| return; |
| return; |
| } |
| } |
| this.RemoveAltarItems(); |
| this.RemoveAltarItems(); |
| } |
| } |
| } |
| } |
| |
| |
| private void SpawnBoss(Vector3 spawnPoint) |
| private void SpawnBoss(Vector3 spawnPoint) |
| { |
| { |
| base.Invoke("DelayedSpawnBoss", this.m_spawnBossDelay); |
| base.Invoke("DelayedSpawnBoss", this.m_spawnBossDelay); |
| this.m_spawnBossStartEffects.Create(spawnPoint, Quaternion.identity, null, 1f, -1); |
| this.m_spawnBossStartEffects.Create(spawnPoint, Quaternion.identity, null, 1f, -1); |
| this.m_bossSpawnPoint = spawnPoint; |
| this.m_bossSpawnPoint = spawnPoint; |
| } |
| } |
| |
| |
| private void RPC_RemoveBossSpawnInventoryItems(long senderId) |
| private void RPC_RemoveBossSpawnInventoryItems(long senderId) |
| { |
| { |
| this.m_interactUser.GetInventory().RemoveItem(this.m_usedSpawnItem.m_shared.m_name, this.m_bossItems, -1, true); |
| this.m_interactUser.GetInventory().RemoveItem(this.m_usedSpawnItem.m_shared.m_name, this.m_bossItems, -1, true); |
| this.m_interactUser.ShowRemovedMessage(this.m_bossItem.m_itemData, this.m_bossItems); |
| this.m_interactUser.ShowRemovedMessage(this.m_bossItem.m_itemData, this.m_bossItems); |
| . | this.m_interactUser.Message(MessageHud.MessageType.Center, "$msg_offerdone", 0, null); |
| this.m_interactUser.Message(MessageHud.MessageType.Center, this.m_usedAltarText, 0, null); |
| if (this.m_itemSpawnPoint) |
| if (this.m_itemSpawnPoint) |
| { |
| { |
| this.m_fuelAddedEffects.Create(this.m_itemSpawnPoint.position, base.transform.rotation, null, 1f, -1); |
| this.m_fuelAddedEffects.Create(this.m_itemSpawnPoint.position, base.transform.rotation, null, 1f, -1); |
| } |
| } |
| } |
| } |
| |
| |
| private void RemoveAltarItems() |
| private void RemoveAltarItems() |
| { |
| { |
| foreach (ItemStand itemStand in this.FindItemStands()) |
| foreach (ItemStand itemStand in this.FindItemStands()) |
| { |
| { |
| itemStand.DestroyAttachment(); |
| itemStand.DestroyAttachment(); |
| } |
| } |
| if (this.m_itemSpawnPoint) |
| if (this.m_itemSpawnPoint) |
| { |
| { |
| this.m_fuelAddedEffects.Create(this.m_itemSpawnPoint.position, base.transform.rotation, null, 1f, -1); |
| this.m_fuelAddedEffects.Create(this.m_itemSpawnPoint.position, base.transform.rotation, null, 1f, -1); |
| } |
| } |
| } |
| } |
| |
| |
| private void RPC_BossSpawnInitiated(long senderId) |
| private void RPC_BossSpawnInitiated(long senderId) |
| { |
| { |
| . | this.m_interactUser.Message(MessageHud.MessageType.Center, "$msg_offerdone", 0, null); |
| this.m_interactUser.Message(MessageHud.MessageType.Center, this.m_usedAltarText, 0, null); |
| } |
| } |
| |
| |
| private bool CanSpawnBoss(Vector3 point, out Vector3 spawnPoint) |
| private bool CanSpawnBoss(Vector3 point, out Vector3 spawnPoint) |
| { |
| { |
| spawnPoint = Vector3.zero; |
| spawnPoint = Vector3.zero; |
| int i = 0; |
| int i = 0; |
| while (i < 100) |
| while (i < 100) |
| { |
| { |
| Vector2 vector = UnityEngine.Random.insideUnitCircle * this.m_spawnBossMaxDistance; |
| Vector2 vector = UnityEngine.Random.insideUnitCircle * this.m_spawnBossMaxDistance; |
| spawnPoint = point + new Vector3(vector.x, 0f, vector.y); |
| spawnPoint = point + new Vector3(vector.x, 0f, vector.y); |
| if (this.m_enableSolidHeightCheck) |
| if (this.m_enableSolidHeightCheck) |
| { |
| { |
| float num; |
| float num; |
| ZoneSystem.instance.GetSolidHeight(spawnPoint, out num, this.m_getSolidHeightMargin); |
| ZoneSystem.instance.GetSolidHeight(spawnPoint, out num, this.m_getSolidHeightMargin); |
| if (num >= 0f && Mathf.Abs(num - base.transform.position.y) <= this.m_spawnBossMaxYDistance && Vector3.Distance(spawnPoint, point) >= this.m_spawnBossMinDistance) |
| if (num >= 0f && Mathf.Abs(num - base.transform.position.y) <= this.m_spawnBossMaxYDistance && Vector3.Distance(spawnPoint, point) >= this.m_spawnBossMinDistance) |
| { |
| { |
| if (this.m_spawnPointClearingRadius > 0f) |
| if (this.m_spawnPointClearingRadius > 0f) |
| { |
| { |
| spawnPoint.y = num + this.m_spawnYOffset; |
| spawnPoint.y = num + this.m_spawnYOffset; |
| int num2 = Physics.OverlapSphereNonAlloc(spawnPoint, this.m_spawnPointClearingRadius, null, this.m_solidRayMask); |
| int num2 = Physics.OverlapSphereNonAlloc(spawnPoint, this.m_spawnPointClearingRadius, null, this.m_solidRayMask); |
| if (num2 > 0) |
| if (num2 > 0) |
| { |
| { |
| ZLog.Log(num2); |
| ZLog.Log(num2); |
| goto IL_FC; |
| goto IL_FC; |
| } |
| } |
| } |
| } |
| spawnPoint.y = num + this.m_spawnYOffset; |
| spawnPoint.y = num + this.m_spawnYOffset; |
| return true; |
| return true; |
| } |
| } |
| IL_FC: |
| IL_FC: |
| i++; |
| i++; |
| continue; |
| continue; |
| } |
| } |
| return true; |
| return true; |
| } |
| } |
| return false; |
| return false; |
| } |
| } |
| |
| |
| private bool IsBossSpawnQueued() |
| private bool IsBossSpawnQueued() |
| { |
| { |
| return base.IsInvoking("DelayedSpawnBoss"); |
| return base.IsInvoking("DelayedSpawnBoss"); |
| } |
| } |
| |
| |
| private void DelayedSpawnBoss() |
| private void DelayedSpawnBoss() |
| { |
| { |
| . | BaseAI component = UnityEngine.Object.Instantiate<GameObject>(this.m_bossPrefab, this.m_bossSpawnPoint, Quaternion.identity).GetComponent<BaseAI>(); |
| GameObject gameObject = UnityEngine.Object.Instantiate<GameObject>(this.m_bossPrefab, this.m_bossSpawnPoint, Quaternion.identity); |
| |
| BaseAI component = gameObject.GetComponent<BaseAI>(); |
| if (component != null) |
| if (component != null) |
| { |
| { |
| component.SetPatrolPoint(); |
| component.SetPatrolPoint(); |
| . | |
| if (this.m_alertOnSpawn) |
| |
| { |
| |
| component.Alert(); |
| |
| } |
| |
| } |
| |
| GameObject[] array = this.m_spawnBossDoneffects.Create(this.m_bossSpawnPoint, Quaternion.identity, null, 1f, -1); |
| |
| for (int i = 0; i < array.Length; i++) |
| |
| { |
| |
| IProjectile[] componentsInChildren = array[i].GetComponentsInChildren<IProjectile>(); |
| |
| if (componentsInChildren.Length != 0) |
| |
| { |
| |
| IProjectile[] array2 = componentsInChildren; |
| |
| for (int j = 0; j < array2.Length; j++) |
| |
| { |
| |
| array2[j].Setup(gameObject.GetComponent<Character>(), Vector3.zero, -1f, null, null, null); |
| |
| } |
| |
| } |
| } |
| } |
| . | this.m_spawnBossDoneffects.Create(this.m_bossSpawnPoint, Quaternion.identity, null, 1f, -1); |
| |
| } |
| } |
| |
| |
| private List<ItemStand> FindItemStands() |
| private List<ItemStand> FindItemStands() |
| { |
| { |
| List<ItemStand> list = new List<ItemStand>(); |
| List<ItemStand> list = new List<ItemStand>(); |
| foreach (ItemStand itemStand in UnityEngine.Object.FindObjectsOfType<ItemStand>()) |
| foreach (ItemStand itemStand in UnityEngine.Object.FindObjectsOfType<ItemStand>()) |
| { |
| { |
| if (Vector3.Distance(base.transform.position, itemStand.transform.position) <= this.m_itemstandMaxRange && itemStand.gameObject.name.CustomStartsWith(this.m_itemStandPrefix)) |
| if (Vector3.Distance(base.transform.position, itemStand.transform.position) <= this.m_itemstandMaxRange && itemStand.gameObject.name.CustomStartsWith(this.m_itemStandPrefix)) |
| { |
| { |
| list.Add(itemStand); |
| list.Add(itemStand); |
| } |
| } |
| } |
| } |
| return list; |
| return list; |
| } |
| } |
| |
| |
| private void OnDrawGizmosSelected() |
| private void OnDrawGizmosSelected() |
| { |
| { |
| if (!this.m_renderSpawnAreaGizmos) |
| if (!this.m_renderSpawnAreaGizmos) |
| { |
| { |
| return; |
| return; |
| } |
| } |
| Gizmos.color = Color.green; |
| Gizmos.color = Color.green; |
| Utils.DrawGizmoCylinder(this.GetSpawnPosition(), this.m_spawnBossMaxDistance, this.m_spawnBossMaxYDistance, 32); |
| Utils.DrawGizmoCylinder(this.GetSpawnPosition(), this.m_spawnBossMaxDistance, this.m_spawnBossMaxYDistance, 32); |
| Gizmos.color = Color.red; |
| Gizmos.color = Color.red; |
| if (this.m_spawnBossMinDistance > 0f) |
| if (this.m_spawnBossMinDistance > 0f) |
| { |
| { |
| Utils.DrawGizmoCylinder(this.GetSpawnPosition(), this.m_spawnBossMinDistance, this.m_spawnBossMaxYDistance, 32); |
| Utils.DrawGizmoCylinder(this.GetSpawnPosition(), this.m_spawnBossMinDistance, this.m_spawnBossMaxYDistance, 32); |
| } |
| } |
| } |
| } |
| |
| |
| . | public string m_name = "Ancient bowl"; |
| [Header("Tokens")] |
| |
| public string m_name = "$piece_offerbowl"; |
| |
| |
| |
| public string m_useItemText = "$piece_offerbowl_offeritem"; |
| |
| |
| |
| public string m_usedAltarText = "$msg_offerdone"; |
| |
| |
| . | public string m_useItemText = "Burn item"; |
| public string m_cantOfferText = "$msg_cantoffer"; |
| |
| |
| . | |
| public string m_wrongOfferText = "$msg_offerwrong"; |
| |
| |
| |
| public string m_incompleteOfferText = "$msg_incompleteoffering"; |
| |
| |
| |
| [Header("Settings")] |
| public ItemDrop m_bossItem; |
| public ItemDrop m_bossItem; |
| |
| |
| public int m_bossItems = 1; |
| public int m_bossItems = 1; |
| |
| |
| public GameObject m_bossPrefab; |
| public GameObject m_bossPrefab; |
| |
| |
| public ItemDrop m_itemPrefab; |
| public ItemDrop m_itemPrefab; |
| |
| |
| public Transform m_itemSpawnPoint; |
| public Transform m_itemSpawnPoint; |
| |
| |
| public string m_setGlobalKey = ""; |
| public string m_setGlobalKey = ""; |
| |
| |
| public bool m_renderSpawnAreaGizmos; |
| public bool m_renderSpawnAreaGizmos; |
| . | |
| |
| |
| public bool m_alertOnSpawn; |
| |
| |
| [Header("Boss")] |
| [Header("Boss")] |
| public float m_spawnBossDelay = 5f; |
| public float m_spawnBossDelay = 5f; |
| |
| |
| public float m_spawnBossMaxDistance = 40f; |
| public float m_spawnBossMaxDistance = 40f; |
| |
| |
| public float m_spawnBossMinDistance; |
| public float m_spawnBossMinDistance; |
| |
| |
| public float m_spawnBossMaxYDistance = 9999f; |
| public float m_spawnBossMaxYDistance = 9999f; |
| |
| |
| public int m_getSolidHeightMargin = 1000; |
| public int m_getSolidHeightMargin = 1000; |
| |
| |
| public bool m_enableSolidHeightCheck = true; |
| public bool m_enableSolidHeightCheck = true; |
| |
| |
| public float m_spawnPointClearingRadius; |
| public float m_spawnPointClearingRadius; |
| |
| |
| public float m_spawnYOffset = 1f; |
| public float m_spawnYOffset = 1f; |
| |
| |
| public Vector3 m_spawnAreaOffset; |
| public Vector3 m_spawnAreaOffset; |
| |
| |
| public List<GameObject> m_spawnPoints = new List<GameObject>(); |
| public List<GameObject> m_spawnPoints = new List<GameObject>(); |
| |
| |
| [Header("Use itemstands")] |
| [Header("Use itemstands")] |
| public bool m_useItemStands; |
| public bool m_useItemStands; |
| |
| |
| public string m_itemStandPrefix = ""; |
| public string m_itemStandPrefix = ""; |
| |
| |
| public float m_itemstandMaxRange = 20f; |
| public float m_itemstandMaxRange = 20f; |
| |
| |
| [Header("Effects")] |
| [Header("Effects")] |
| public EffectList m_fuelAddedEffects = new EffectList(); |
| public EffectList m_fuelAddedEffects = new EffectList(); |
| |
| |
| public EffectList m_spawnBossStartEffects = new EffectList(); |
| public EffectList m_spawnBossStartEffects = new EffectList(); |
| |
| |
| public EffectList m_spawnBossDoneffects = new EffectList(); |
| public EffectList m_spawnBossDoneffects = new EffectList(); |
| |
| |
| private Vector3 m_bossSpawnPoint; |
| private Vector3 m_bossSpawnPoint; |
| |
| |
| private int m_solidRayMask; |
| private int m_solidRayMask; |
| |
| |
| private static readonly Collider[] s_tempColliders = new Collider[1]; |
| private static readonly Collider[] s_tempColliders = new Collider[1]; |
| |
| |
| private ZNetView m_nview; |
| private ZNetView m_nview; |
| |
| |
| private Humanoid m_interactUser; |
| private Humanoid m_interactUser; |
| |
| |
| private ItemDrop.ItemData m_usedSpawnItem; |
| private ItemDrop.ItemData m_usedSpawnItem; |
| } |
| } |
| |
| |