diff options
Diffstat (limited to 'Thronefall_1_0/GameCode/MineShaft.cs')
| -rw-r--r-- | Thronefall_1_0/GameCode/MineShaft.cs | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/Thronefall_1_0/GameCode/MineShaft.cs b/Thronefall_1_0/GameCode/MineShaft.cs deleted file mode 100644 index 6ac6218..0000000 --- a/Thronefall_1_0/GameCode/MineShaft.cs +++ /dev/null @@ -1,141 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -public class MineShaft : IncomeModifyer -{ - public int incomeReductionPerTurn = 1; - - public int minimumIncome = 1; - - private bool firstNightPassed; - - private PlayerManager playerManager; - - public Transform mineEntrance; - - [SerializeField] - private float mineEnterDistance = 3f; - - [SerializeField] - private float mineEnterAngleDotProd = 0.8f; - - [SerializeField] - private float playerEnterTimerMax = 0.75f; - - [SerializeField] - private float cooldownAfterTeleport = 1f; - - private float playerEnterTimer; - - public static List<MineShaft> allMineShafts = new List<MineShaft>(); - - private BuildSlot myBuildSlot; - - private float cooldown; - - public BuildSlot MyBuildSlot => myBuildSlot; - - public void SetCooldown(float _cooldown) - { - cooldown = _cooldown; - } - - private void Start() - { - playerManager = PlayerManager.Instance; - myBuildSlot = GetComponent<BuildSlot>(); - playerEnterTimer = playerEnterTimerMax; - if (!allMineShafts.Contains(this)) - { - allMineShafts.Add(this); - } - for (int num = allMineShafts.Count - 1; num >= 0; num--) - { - if (allMineShafts[num] == null) - { - allMineShafts.RemoveAt(num); - } - } - SortAllMineShafts(); - } - - private void SortAllMineShafts() - { - allMineShafts.Sort(delegate(MineShaft mineShaft1, MineShaft mineShaft2) - { - Vector3 position = mineShaft1.gameObject.transform.position; - Vector3 position2 = mineShaft2.gameObject.transform.position; - int num = position.z.CompareTo(position2.z); - if (num != 0) - { - return num; - } - int num2 = position.x.CompareTo(position2.x); - return (num2 != 0) ? num2 : position.y.CompareTo(position2.y); - }); - } - - public static MineShaft FindNextMineShaftAfter(int _i) - { - for (int num = (_i + 1) % allMineShafts.Count; num != _i; num = (num + 1) % allMineShafts.Count) - { - MineShaft mineShaft = allMineShafts[num]; - if (mineShaft.MyBuildSlot.Level > 0 && mineShaft.buildingInteractor.buildingHP.TaggedObj.Tags.Contains(TagManager.ETag.AUTO_Alive)) - { - return mineShaft; - } - } - return null; - } - - private void Update() - { - cooldown -= Time.deltaTime; - if (MyBuildSlot.Level <= 0 || !buildingInteractor.buildingHP.TaggedObj.Tags.Contains(TagManager.ETag.AUTO_Alive) || cooldown > 0f) - { - return; - } - bool flag = false; - PlayerMovement[] registeredPlayers = playerManager.RegisteredPlayers; - foreach (PlayerMovement playerMovement in registeredPlayers) - { - if (!((mineEntrance.position - playerMovement.transform.position).magnitude < mineEnterDistance) || !(Vector3.Dot(mineEntrance.localToWorldMatrix.MultiplyVector(new Vector3(0f, 0f, 1f)).normalized, playerMovement.Velocity.normalized) > mineEnterAngleDotProd)) - { - continue; - } - playerEnterTimer -= Time.deltaTime; - flag = true; - if (playerEnterTimer <= 0f) - { - MineShaft mineShaft = FindNextMineShaftAfter(allMineShafts.IndexOf(this)); - if ((bool)mineShaft) - { - Vector3 position = mineShaft.transform.position; - position += mineShaft.mineEntrance.localToWorldMatrix.MultiplyVector(new Vector3(0f, 0f, -1f)); - playerMovement.TeleportTo(position); - mineShaft.SetCooldown(cooldownAfterTeleport); - SetCooldown(cooldownAfterTeleport); - } - } - } - if (!flag) - { - playerEnterTimer = playerEnterTimerMax; - } - } - - public override void OnDawn() - { - if (myBuildSlot.Level > 0 && !buildingInteractor.KnockedOutTonight) - { - if (!firstNightPassed) - { - firstNightPassed = true; - } - else - { - myBuildSlot.GoldIncome = Mathf.Max(myBuildSlot.GoldIncome - incomeReductionPerTurn, minimumIncome); - } - } - } -} |
