summaryrefslogtreecommitdiff
path: root/Client/Assembly-CSharp/TaskAddButton.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-12-30 20:59:04 +0800
committerchai <chaifix@163.com>2020-12-30 20:59:04 +0800
commite9ea621b93fbb58d9edfca8375918791637bbd52 (patch)
tree19ce3b1c1f2d51eda6878c9d0f2c9edc27f13650 /Client/Assembly-CSharp/TaskAddButton.cs
+init
Diffstat (limited to 'Client/Assembly-CSharp/TaskAddButton.cs')
-rw-r--r--Client/Assembly-CSharp/TaskAddButton.cs109
1 files changed, 109 insertions, 0 deletions
diff --git a/Client/Assembly-CSharp/TaskAddButton.cs b/Client/Assembly-CSharp/TaskAddButton.cs
new file mode 100644
index 0000000..60e54fc
--- /dev/null
+++ b/Client/Assembly-CSharp/TaskAddButton.cs
@@ -0,0 +1,109 @@
+using System;
+using UnityEngine;
+
+public class TaskAddButton : MonoBehaviour
+{
+ public TextRenderer Text;
+
+ public SpriteRenderer Overlay;
+
+ public Sprite CheckImage;
+
+ public Sprite ExImage;
+
+ public PlayerTask MyTask;
+
+ public bool ImpostorTask;
+
+ public void Start()
+ {
+ if (this.ImpostorTask)
+ {
+ GameData.PlayerInfo data = PlayerControl.LocalPlayer.Data;
+ this.Overlay.enabled = data.IsImpostor;
+ this.Overlay.sprite = this.CheckImage;
+ return;
+ }
+ PlayerTask playerTask = this.FindTaskByType();
+ if (playerTask)
+ {
+ this.Overlay.enabled = true;
+ this.Overlay.sprite = (playerTask.IsComplete ? this.CheckImage : this.ExImage);
+ return;
+ }
+ this.Overlay.enabled = false;
+ }
+
+ public void AddTask()
+ {
+ if (this.ImpostorTask)
+ {
+ GameData.PlayerInfo data = PlayerControl.LocalPlayer.Data;
+ if (data.IsImpostor)
+ {
+ PlayerControl.LocalPlayer.RemoveInfected();
+ this.Overlay.enabled = false;
+ return;
+ }
+ PlayerControl.LocalPlayer.RpcSetInfected(new GameData.PlayerInfo[]
+ {
+ data
+ });
+ this.Overlay.enabled = true;
+ return;
+ }
+ else
+ {
+ PlayerTask playerTask = this.FindTaskByType();
+ if (!playerTask)
+ {
+ PlayerTask playerTask2 = UnityEngine.Object.Instantiate<PlayerTask>(this.MyTask, PlayerControl.LocalPlayer.transform);
+ PlayerTask playerTask3 = playerTask2;
+ PlayerControl localPlayer = PlayerControl.LocalPlayer;
+ uint taskIdCount = localPlayer.TaskIdCount;
+ localPlayer.TaskIdCount = taskIdCount + 1U;
+ playerTask3.Id = taskIdCount;
+ playerTask2.Owner = PlayerControl.LocalPlayer;
+ playerTask2.Initialize();
+ PlayerControl.LocalPlayer.myTasks.Add(playerTask2);
+ GameData.Instance.TutOnlyAddTask(PlayerControl.LocalPlayer.PlayerId, playerTask2.Id);
+ this.Overlay.sprite = this.ExImage;
+ this.Overlay.enabled = true;
+ return;
+ }
+ PlayerControl.LocalPlayer.RemoveTask(playerTask);
+ this.Overlay.enabled = false;
+ return;
+ }
+ }
+
+ private PlayerTask FindTaskByType()
+ {
+ for (int i = PlayerControl.LocalPlayer.myTasks.Count - 1; i > -1; i--)
+ {
+ PlayerTask playerTask = PlayerControl.LocalPlayer.myTasks[i];
+ if (playerTask.TaskType == this.MyTask.TaskType)
+ {
+ if (playerTask.TaskType == TaskTypes.DivertPower)
+ {
+ if (((DivertPowerTask)playerTask).TargetSystem == ((DivertPowerTask)this.MyTask).TargetSystem)
+ {
+ return playerTask;
+ }
+ }
+ else
+ {
+ if (playerTask.TaskType != TaskTypes.UploadData)
+ {
+ return playerTask;
+ }
+ if (playerTask.StartAt == this.MyTask.StartAt)
+ {
+ return playerTask;
+ }
+ }
+ }
+ }
+ return null;
+ }
+}