TARDIS

TARDIS

228k Downloads

Feature Request: Player Preference to use Home/Area as death-stinations

roberestarkk opened this issue ยท 11 comments

commented

Describe the feature request

I'd love to see a player preference that allowed you to toggle between various 'modes' for the TARDIS to follow (as far as destination selection is concerned) when the player dies and triggers the thing (I can't remember which setting it is, I think 'Autonomous'?) where it runs to a safe space and powers down.

The driver behind my requesting it, is that I want to be able to tell it to travel to the home destination every time regardless of areas.
Anyone on my server can have an area defined wherever they want for people to use as a "visitor's TARDIS parking lot" type thing.
Meanwhile, players will always respawn at spawn.
Since you can't summon the TARDIS to you until it turns back on, which it doesn't do until you enter it again, the player would have to travel to wherever it ended up (currently maybe home, maybe a random area somewhere), without being able to use their TARDIS to get there!

That said, I can imagine other scenarios where people might want to configure it a different way to how I want it...

What I was thinking is a multi-select toggle, with the following options:

  • 'Home&Areas' (default & current behaviour),
  • 'Home' (Only ever the Home 'save'),
  • 'DefaultArea(s)' (Area named in config file, ie: 'Spawn') (perhaps a list in case people want the option to specify one or more?),
  • 'Home&DefaultArea(s)' (Same as above but also Home)
  • 'Areas' (nearest area)

Describe alternatives you've considered

It'd be (probably a lot) easier, and still make me happy to just have an option like "Prevent area destinations when the Timelord dies: true/false".

I could also just disallow areas entirely and make players visit each other via dynmap co-ordinate.
I think you can also turn the TARDIS back on remotely via the Stattenheim Remote, so we could just leave a cache of them at spawn, or maybe rig up a commandblock to run a command equivalent of that function if it exists.

But none of that is as cool as the TARDIS 'figuring out' where you'll reappear, and going there.

commented

I think Default Areas ignore the death world.
I guess you could have a config like so:

autonomous_areas:
   world:
   - area51
   - spawn
   gallifrey:
   - citadel

But I think that's probably overkill.

commented

How would you determine proximity if the area isn't in the same world?
Also, can there be an area named 'spawn' in more than one world?

commented

Can't determine proximity if areas are in different worlds.
Area names must be unique, so no, you couldn't have two areas named 'spawn'

commented

Update TARDIS-Resource-Pack if you use it...

from_player_prefs

autonomous_prefs

commented

Initial implementation added to build 2428
Access a new Autonomous Preferences GUI via a button in the player prefs GUI

commented

I specifically included 'Stay' both as the 'base case' below which other cases would not be considered, and as a way to retain the 'feature is disabled' destination selection (or lack thereof), while also enabling the cloister bell, assuming that only activates when the feature is enabled...?
Not really necessary if the selection is done in a way that doesn't require a base case to disable things, but the bells are always fun.

I do like that set of options though, they fulfil all the major scenarios I can think of...
Were you thinking that the areas list defined in the config would also apply the same world as death world filter/preference?

commented

Currently the autonomous feature works like so:

if the player's home world is NOT the world they died in then { 
   find the nearest recharger location in the death world 
   if there isn't one or there are no parking spots {
      go home
   }
} else if the player died in their 'home' world {
   find the closest between a recharger and home
   if the recharger is closer but has no parking spots {
      go home
   }
}

So if the player has their preference set to 'Areas' or 'DefaultAreas' what happens if there are no parking spots?

commented

If the player has their preference set to 'Home and DefaultAreas' which one takes preference?

commented

The 'Default Areas' setting assumes there are some explicitly defined in a config file or something somewhere, so perhaps it can't be selected if none exist...

'Home and DefaultAreas' I was imagining would use the same proximity-based selection process as already exists for 'Home & Areas', but instead of any area it'd be only those in the explicit list.

If the player selects 'Areas' and none exist... That's a bit tricker...
Either it wouldn't go anywhere and would tell the timelord there aren't any areas, or it would go Home as a last resort instead of if it's nearest...

Perhaps rather than what is effectively an enum of selection processes functions, it would be neater logically (albeit more painful to implement the UI) to be more dynamic...

Say you have a list of all the destination types: Home, Default Area, Area
You also have a 'Stay' or something.
Each is represented by a block or an item or something in a chest-gui.

To decide on your preferred death destination selection process, you would change the order of them in the list (either by click to select and then click a control to affect it a-la ARS, or by click to pickup and move around a-la Saved Destination Managing) from most to least preferred, and anything after 'Stay' will never happen because Stay doesn't require any extra conditions to be met before it'll work...

Then all that would be required is for the 'lore' of the item to explain the restriction and any unexpected edge cases are probably the player's fault!
ie:

Home
Where the TARDIS was created, or where the Timelord has set the Home
Areas
The nearest area, should one be available.
DefaultAreas
The nearest admin-defined area, should one be available
Stay
The TARDIS will stay right where it is no matter what

Though that wouldn't allow for two destination types to have the same preference level, and therefore fallback onto proximity...

Maybe each type has a numeric preference level behind it (sort-of like how co-ordinate teleporting is done in the GUI but in two dimensions and for a list of things)... You'd set it to 0 for disabled (with a dedicated 'button' perhaps), and otherwise the higher the number, the more preferred, and if two have the same number, they're equally preferred and the secondary preference is proximity.

image
Something like this...
I did admittedly run out of steam while photoshopping, but the rest would be alongside, and clicking the Green Wool would +1 and Red Wool would -1...

commented

I think Stay is not needed as that is what happens when the autonomous preference is turned off... but see below.

Maybe there could be these options:

  • Home -> always go home
  • Areas -> go to an area in the death world, not available if no areas are set up
  • Default Areas -> go to an area defined in the config, not available if no areas are defined
  • Closest -> go to the closest (either home or an area), basically what it does now

Then there could be a setting for what happens if no area is found with the options:

  • Home
  • Stay
commented

I'm back home from holiday now, and initial testing looks great!