summaryrefslogtreecommitdiff
path: root/Client/Assembly-CSharp/ReactorTask.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Client/Assembly-CSharp/ReactorTask.cs')
-rw-r--r--Client/Assembly-CSharp/ReactorTask.cs85
1 files changed, 85 insertions, 0 deletions
diff --git a/Client/Assembly-CSharp/ReactorTask.cs b/Client/Assembly-CSharp/ReactorTask.cs
new file mode 100644
index 0000000..43f44ba
--- /dev/null
+++ b/Client/Assembly-CSharp/ReactorTask.cs
@@ -0,0 +1,85 @@
+using System;
+using System.Linq;
+using System.Text;
+using UnityEngine;
+
+public class ReactorTask : SabotageTask
+{
+ public override int TaskStep
+ {
+ get
+ {
+ return this.reactor.UserCount;
+ }
+ }
+
+ public override bool IsComplete
+ {
+ get
+ {
+ return this.isComplete;
+ }
+ }
+
+ private bool isComplete;
+
+ private ReactorSystemType reactor;
+
+ private bool even;
+
+ public override void Initialize()
+ {
+ ShipStatus instance = ShipStatus.Instance;
+ this.reactor = (ReactorSystemType)instance.Systems[SystemTypes.Reactor];
+ ((ReactorShipRoom)instance.AllRooms.First((ShipRoom r) => r.RoomId == SystemTypes.Reactor)).StartMeltdown();
+ base.SetupArrows();
+ }
+
+ private void FixedUpdate()
+ {
+ if (this.isComplete)
+ {
+ return;
+ }
+ if (!this.reactor.IsActive)
+ {
+ this.Complete();
+ }
+ }
+
+ public override bool ValidConsole(global::Console console)
+ {
+ return console.TaskTypes.Contains(TaskTypes.ResetReactor);
+ }
+
+ public override void OnRemove()
+ {
+ }
+
+ public override void Complete()
+ {
+ this.isComplete = true;
+ PlayerControl.LocalPlayer.RemoveTask(this);
+ if (this.didContribute)
+ {
+ StatsManager instance = StatsManager.Instance;
+ uint sabsFixed = instance.SabsFixed;
+ instance.SabsFixed = sabsFixed + 1U;
+ }
+ }
+
+ public override void AppendTaskText(StringBuilder sb)
+ {
+ this.even = !this.even;
+ Color color = this.even ? Color.yellow : Color.red;
+ sb.Append(color.ToTextColor());
+ sb.Append(DestroyableSingleton<TranslationController>.Instance.GetString(TaskTypes.ResetReactor));
+ sb.Append(" ");
+ sb.Append((int)this.reactor.Countdown);
+ sb.AppendLine(string.Format(" ({0}/{1})[]", this.reactor.UserCount, 2));
+ for (int i = 0; i < this.Arrows.Length; i++)
+ {
+ this.Arrows[i].image.color = color;
+ }
+ }
+}