public void UpdateCurrentCell()
 {
     if (NecropoloidSingleton.HasInstance && GameDirector.HasInstance)
     {
         if (GameDirector.Instance.CurrentLocalAvatar != null)
         {
             Vector3 position = LazySingletonBehavior <GameDirector> .Instance.CurrentLocalAvatar.Position;
             currentCell = NecropoloidSingleton.Instance.Necropoloid.GetCellFromPosition(position);
         }
     }
 }
        public void Update()
        {
            updateTimer -= Time.deltaTime;

            if (isInvite)
            {
                fadeProgress -= Time.deltaTime;
                if (fadeProgress < 5)
                {
                    fadeProgress -= Time.deltaTime * 14;
                }
                if (fadeProgress <= 0)
                {
                    DiscordRpc.Respond(inviteUserID, DiscordRpc.Reply.Ignore);
                    isInvite     = false;
                    fadeProgress = 0;
                    Debug.Log("Ignored invite");
                }

                if (fadeProgress > 0)
                {
                    if (Necro.Platform.GetKeyDown(KeyCode.LeftArrow))
                    {
                        DiscordRpc.Respond(inviteUserID, DiscordRpc.Reply.No);
                        isInvite     = false;
                        fadeProgress = 0;
                        Debug.Log("Denied invite");
                    }
                    else if (Necro.Platform.GetKeyDown(KeyCode.RightArrow))
                    {
                        DiscordRpc.Respond(inviteUserID, DiscordRpc.Reply.Yes);
                        isInvite     = false;
                        fadeProgress = 0;
                        Debug.Log("Accepted invite");
                    }
                }
            }


            if (updateTimer <= 0)
            {
                //Character updater
                {
                    if (CharacterSelectorCamera.HasInstance)
                    {
                        if (Patches.patch_CharacterSelectorCamera.Instance.GetLocalActor() != null)
                        {
                            SetLargePictureID(actorIDtoPictureID[Patches.patch_CharacterSelectorCamera.Instance.GetLocalActor().actorDefId]);
                            SetLargePictureText(actorIDtoText[Patches.patch_CharacterSelectorCamera.Instance.GetLocalActor().actorDefId]);
                        }
                    }

                    if (ThirdPersonCameraControl.HasInstance)
                    {
                        if (ThirdPersonCameraControl.Instance.CharacterActor != null)
                        {
                            SetLargePictureID(actorIDtoPictureID[ThirdPersonCameraControl.Instance.CharacterActor.actorDefId]);
                            SetLargePictureText(actorIDtoText[ThirdPersonCameraControl.Instance.CharacterActor.actorDefId]);
                        }
                    }
                }

                //Floor updater
                if (NecropoloidSingleton.HasInstance && ThirdPersonCameraControl.HasInstance)
                {
                    if (ThirdPersonCameraControl.Instance.CharacterActor != null)
                    {
                        Necropoloid.Cell currentCell = NecropoloidSingleton.Instance.Necropoloid.GetCellFromPosition(ThirdPersonCameraControl.Instance.CharacterFocusPoint);
                        if (currentCell != null)
                        {
                            SetRichPresenceState("In A Game");
                            SetLevel((-currentCell.gridPos.y));
                        }
                    }
                }
                else if (Necro.UI.Menu_MainMenu.HasInstance)
                {
                    SetRichPresenceState("On Main Menu");
                }
                else
                {
                    SetRichPresenceState("Loading");
                }
                updateTimer = 5;
            }

            if (shouldUpdate)
            {
                DebugConsole.Log("Updating Discord Presence");
                shouldUpdate = false;
                UpdateRichPresenceValues();
                DiscordRpc.UpdatePresence(ref presence);
            }

            DiscordRpc.RunCallbacks();
        }