mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-01 21:12:27 +00:00
Landmark Shuttles (#8512)
The lifeless live again. Or in this case, what never actually lived here. Ports Baystation12/Baystation12#17460 probably for real this time. What this allows us to do is create shuttles on runtime and make shuttles easier by just making landmarks and a shuttle instead of areas and shuttles. Also allows runtime landmark creation via flares or whatever AND allows shuttles to use different landmarks at will. I removed most of the overmap stuff, I think. It shouldn't be hard to slam it in whenever we need to. Changes: "Shuttle code has been completely reworked." "Shuttles can now be modified to have more than one destination." "Shuttles now have a takeoff sound." "You can now throw mobs against walls to damage them. A lot." "You now need a neckgrab to throw mobs." "BEING UNBUCKLED DURING SHUTTLE LAUNCH IS DANGEROUS! Don't do it." "Adminghosts can now interact with all shuttles."
This commit is contained in:
@@ -1,104 +0,0 @@
|
||||
/*
|
||||
The overmap system allows adding new maps to the big 'galaxy' map.
|
||||
Idea is that new sectors can be added by just ticking in new maps and recompiling.
|
||||
Not real hot-plugging, but still pretty modular.
|
||||
It uses the fact that all ticked in .dme maps are melded together into one as different zlevels.
|
||||
Metaobjects are used to make it not affected by map order in .dme and carry some additional info.
|
||||
|
||||
*************************************************************
|
||||
Metaobject
|
||||
*************************************************************
|
||||
/obj/effect/mapinfo, sectors.dm
|
||||
Used to build overmap in beginning, has basic information needed to create overmap objects and make shuttles work.
|
||||
Its name and icon (if non-standard) vars will be applied to resulting overmap object.
|
||||
'mapy' and 'mapx' vars are optional, sector will be assigned random overmap coordinates if they are not set.
|
||||
Has two important vars:
|
||||
obj_type - type of overmap object it spawns. Could be overriden for custom overmap objects.
|
||||
landing_area - type of area used as inbound shuttle landing, null if no shuttle landing area.
|
||||
|
||||
Object could be placed anywhere on zlevel. Should only be placed on zlevel that should appear on overmap as a separate entitety.
|
||||
Right after creation it sends itself to nullspace and creates an overmap object, corresponding to this zlevel.
|
||||
|
||||
*************************************************************
|
||||
Overmap object
|
||||
*************************************************************
|
||||
/obj/effect/map, sectors.dm
|
||||
Represents a zlevel on the overmap. Spawned by metaobjects at the startup.
|
||||
var/area/shuttle/shuttle_landing - keeps a reference to the area of where inbound shuttles should land
|
||||
|
||||
-CanPass should be overriden for access restrictions
|
||||
-Crossed/Uncrossed can be overriden for applying custom effects.
|
||||
Remember to call ..() in children, it updates ship's current sector.
|
||||
|
||||
subtype /ship of this object represents spacefaring vessels.
|
||||
It has 'current_sector' var that keeps refernce to, well, sector ship currently in.
|
||||
|
||||
*************************************************************
|
||||
Helm console
|
||||
*************************************************************
|
||||
/obj/machinery/computer/helm, helm.dm
|
||||
On creation console seeks a ship overmap object corresponding to this zlevel and links it.
|
||||
Clicking with empty hand on it starts steering, Cancel-Camera-View stops it.
|
||||
Helm console relays movement of mob to the linked overmap object.
|
||||
Helm console currently has no interface. All travel happens instanceously too.
|
||||
Sector shuttles are not supported currently, only ship shuttles.
|
||||
|
||||
*************************************************************
|
||||
Exploration shuttle terminal
|
||||
*************************************************************
|
||||
A generic shuttle controller.
|
||||
Has a var landing_type defining type of area shuttle should be landing at.
|
||||
On initalizing, checks for a shuttle corresponding to this zlevel, and creates one if it's not there.
|
||||
Changes desitnation area depending on current sector ship is in.
|
||||
Currently updating is called in attack_hand(), until a better place is found.
|
||||
Currently no modifications were made to interface to display availability of landing area in sector.
|
||||
|
||||
|
||||
*************************************************************
|
||||
Guide to how make new sector
|
||||
*************************************************************
|
||||
0.Map
|
||||
Remember to define shuttle areas if you want sector be accessible via shuttles.
|
||||
Currently there are no other ways to reach sectors from ships.
|
||||
In examples, 4x6 shuttle area is used. In case of shuttle area being too big, it will apear in bottom left corner of it.
|
||||
|
||||
Remember to put a helm console and engine control console on ship maps.
|
||||
Ships need engines to move. Currently there are only thermal engines.
|
||||
Thermal engines are just a unary atmopheric machine, like a vent. They need high-pressure gas input to produce more thrust.
|
||||
|
||||
|
||||
1.Metaobject
|
||||
All vars needed for it to work could be set directly in map editor, so in most cases you won't have to define new in code.
|
||||
Remember to set landing_area var for sectors.
|
||||
|
||||
2.Overmap object
|
||||
If you need custom behaviour on entering/leaving this sector, or restricting access to it, you can define your custom map object.
|
||||
Remember to put this new type into spawn_type var of metaobject.
|
||||
|
||||
3.Shuttle console
|
||||
Remember to place one on the actual shuttle too, or it won't be able to return from sector without ship-side recall.
|
||||
Remember to set landing_type var to ship-side shuttle area type.
|
||||
shuttle_tag can be set to custom name (it shows up in console interface)
|
||||
|
||||
5.Engines
|
||||
Actual engines could be any type of machinery, as long as it creates a ship_engine datum for itself.
|
||||
|
||||
6.Tick map in and compile.
|
||||
Sector should appear on overmap (in random place if you didn't set mapx,mapy)
|
||||
|
||||
|
||||
TODO:
|
||||
shuttle console:
|
||||
checking occupied pad or not with docking controllers
|
||||
?landing pad size detection
|
||||
non-zlevel overmap objects
|
||||
field generator
|
||||
meteor fields
|
||||
speed-based chance for a rock in the ship
|
||||
debris fields
|
||||
speed-based chance of
|
||||
debirs in the ship
|
||||
a drone
|
||||
EMP
|
||||
nebulaes
|
||||
*/
|
||||
Reference in New Issue
Block a user