public override void Intro(IntroCutscene.CoBegin__d Cutscene) { base.Intro(Cutscene); TimeWarpCooldown.UpdateForIntro(Cutscene); TasksCooldown.UpdateForIntro(Cutscene); }
public override void MeetingEnd(ExileController Exile) { base.MeetingEnd(Exile); IsActive = false; TimeWarpCooldown.UpdateForExile(Exile); TasksCooldown.UpdateForExile(Exile); }
public void EnableTimeWarp() { if (TimeWarpObject == null && Player != null) { TimeWarpObject = Object.Instantiate(ExtraResources.TIME_WARP, Player.transform); TimeWarpObject.SetActive(false); } if (Player != null) { var LocalPlayer = PlayerControl.LocalPlayer; if (LocalPlayer.PlayerId == Player.PlayerId || Show) { TimeWarpObject.SetActive(true); } } var Mod = 1f / PlayerControl.GameOptions.PlayerSpeedMod * TimeWarpSpeed; var SpeedNew = Speed * Mod; var GhostSpeedNew = GhostSpeed * Mod; foreach (var PlayerControl in PlayerControl.AllPlayerControls) { var Physics = PlayerControl.MyPhysics; if (!TimeWarpSelf && PlayerControl.Compare(Player)) { Physics.Speed = Speed; Physics.GhostSpeed = GhostSpeed; } else { Physics.Speed = SpeedNew; Physics.GhostSpeed = GhostSpeedNew; } } TimeWarpCooldown.Use(); IsActive = true; }
public override void DoAction(ActionType Type, bool Dead, ref bool Acted) { if (Dead || !IsLocalPlayer()) { return; } if (Type == ActionType.PRIMARY) { if (!TimeWarpCooldown.IsReady()) { return; } ExtraNetwork.Send(CustomRPC.ScientistEffect); EnableTimeWarp(); Acted = true; } else if (Type == ActionType.SIDE) { if (!TasksCooldown.IsReady()) { return; } var Task = GetRandomTask(); if (Task == null) { return; } Player.CompleteTask(Task.Id); Player.RpcCompleteTask(Task.Id); TasksCooldown.Use(); Acted = true; } }
protected override void ResetRuntime() { TimeWarpCooldown.Reset(); TasksCooldown.Reset(); TimeWarpEffect.Reset(); }