summaryrefslogtreecommitdiff
path: root/Thronefall_1_0/GameCode/MineShaft.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_1_0/GameCode/MineShaft.cs')
-rw-r--r--Thronefall_1_0/GameCode/MineShaft.cs141
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);
- }
- }
- }
-}