Skip to content
This repository has been archived by the owner on Feb 19, 2022. It is now read-only.

Commit

Permalink
fix(Phantom): set tasks properly
Browse files Browse the repository at this point in the history
  • Loading branch information
NotSugden committed Aug 3, 2021
1 parent da3050f commit 8bfd1f3
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 5 deletions.
32 changes: 29 additions & 3 deletions source/Patches/NeutralRoles/PhantomMod/SetPhantom.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
using TownOfUs.Roles;
using UnityEngine;
using UnityEngine.UI;
using System.Linq;
using Reactor.Extensions;
using Il2CppSystem.Collections.Generic;
using Object = UnityEngine.Object;
using Random = UnityEngine.Random;

Expand All @@ -26,10 +29,10 @@ public static void Postfix(ExileController __instance)
{
Role.RoleDictionary.Remove(localPlayer.PlayerId);
var role = new Phantom(localPlayer);
RemoveTasks(PlayerControl.LocalPlayer);
role.RegenTask();
Lights.SetLights();

RemoveTasks(PlayerControl.LocalPlayer);
localPlayer.MyPhysics.ResetMoveState();

localPlayer.gameObject.layer = LayerMask.NameToLayer("Players");
Expand All @@ -47,8 +50,31 @@ public static void Postfix(ExileController __instance)
localPlayer.MyPhysics.RpcEnterVent(startingVent.Id);
}

public static void RemoveTasks(PlayerControl player) =>
player.SetTasks(player.Data.Tasks);
public static void RemoveTasks(PlayerControl player)
{
var newTasks = new List<PlayerTask>();
foreach (var task in player.myTasks)
task.gameObject.Destroy();

player.myTasks.Clear();
var newTaskDatas = new List<GameData.TaskInfo>();
foreach (var taskData in player.Data.Tasks)
{
var newTaskData = new GameData.TaskInfo(taskData.TypeId, taskData.Id);
newTaskData.Id = taskData.Id;
var playerTask = Object.Instantiate(
ShipStatus.Instance.GetTaskById(newTaskData.TypeId), player.transform
);
playerTask.Id = newTaskData.Id;
playerTask.Owner = player;
playerTask.Initialize();
newTasks.Add(playerTask);
newTaskDatas.Add(newTaskData);
}

player.Data.Tasks = newTaskDatas;
player.myTasks = newTasks;
}

public static void AddCollider(Phantom role)
{
Expand Down
5 changes: 3 additions & 2 deletions source/TownOfUs.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System;
using System;
using System.Linq;
using System.Net;
using System.Net.Sockets;
Expand Down Expand Up @@ -67,7 +67,8 @@ public class TownOfUs : BasePlugin
public ConfigEntry<ushort> Port { get; set; }
//public static Sprite BirthdayVoteSprite;


public static void LogMessage(object message) =>
PluginSingleton<TownOfUs>.Instance.Log.LogMessage(message);
public override void Load()
{
System.Console.WriteLine("000.000.000.000/000000000000000000");
Expand Down

0 comments on commit 8bfd1f3

Please sign in to comment.