Ejemplo n.º 1
0
        public override void Intro(IntroCutscene.CoBegin__d Cutscene)
        {
            base.Intro(Cutscene);

            TimeWarpCooldown.UpdateForIntro(Cutscene);
            TasksCooldown.UpdateForIntro(Cutscene);
        }
Ejemplo n.º 2
0
        public override void MeetingEnd(ExileController Exile)
        {
            base.MeetingEnd(Exile);

            IsActive = false;
            TimeWarpCooldown.UpdateForExile(Exile);
            TasksCooldown.UpdateForExile(Exile);
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 5
0
 protected override void ResetRuntime()
 {
     TimeWarpCooldown.Reset();
     TasksCooldown.Reset();
     TimeWarpEffect.Reset();
 }