public void RetrieveToken(bool force) { if (force) { HoldingToken = true; HoldingTokenChanged?.Invoke(true); var throne = GameController.Instance.Thrones.FirstOrDefault(t => t.HasToken); if (throne == null) { return; } throne.AddRemoveToken(false); } else if (!HoldingToken) { var throne = GameController.Instance.Thrones.FirstOrDefault(t => t.HasToken && !t.IsMoving); if (throne != null) { throne.AddRemoveToken(false); HoldingToken = true; HoldingTokenChanged?.Invoke(true); if (!throne.IsMoving) { GameController.Instance.Player.Movement.TeleportToBlock(throne.TeleportBlock); } } } }
public void SetUnlockedToken() { UnlockedToken = true; TokenUnlocked?.Invoke(); HoldingToken = true; HoldingTokenChanged?.Invoke(true); }
public void PlaceToken() { if (HoldingToken) { var throne = GetNearbyThrone(); throne.AddRemoveToken(true); HoldingToken = false; HoldingTokenChanged?.Invoke(false); } }