Thread Rating:
  • 3 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Feature]New atmos/various states emergency energy shield
#1
Okay, this has a couple of things in it. To start, This is a new shield generator, similar is style to the Meteor Shield generator. The new shield, can be dragged and then activated in much the same way. It currently has 3 modes: atmos, liquid, solid, I wasn't sure whether to make each mode it's own individual object or not, but if that turns out to be the way to go it wouldn't be too much to change from here. (Naturally the liquid one doesn't actually work at this point since I don't have access to that code, but I made the mode and colour just for fun). 

Each mode requires different amount of power for a similarly ranged shield, I wanted the power requirements to be high, but not so obscene that it can't be used with a battery. In that vein, I've also added the ability for it to be connected to an area's equipment power if you wrench it on top of a wire. This change also applies to the Meteor Shield Generator. 

Here is a video of what they look like. Apparently the way I captured the video didn't show the popup screens, but in part of it I'm changing the range and power level of one of the shield generators:
https://streamable.com/wbncz

Now you might be asking yourself, surely this sort of thing already exists in the code, and you would be right! As far as I could find, there is obj/item/device/energy_shield_gen and /obj/atmos_field. The latter is actually pretty similar to my original plans for this project in design. But the main reason why I thought these weren't what we needed was that neither used any power and I thought it best to make it similar in design the obj/machinery/meteor_shield which uses /machinery's process(). Also, one of them didn't work at all as far as I could tell. I started work in there, but decided it wasn't right, so I took most of Meteor Shield and made it into a parent class for shield generators, and overrode the methods not needed in my new shield in that file. 

I'm not super attached to the name or the look. I made up the sprites pretty quick. I actually had a cooler looking shield image, but I sort of lost it along the way and I didn't have it in me to find it or try making it again.

My original idea for this was a shield for pod doors and airlocks to prevent air escaping, like in sifi things like Star Wars/Trek. But I kinda shelved that in favor of the emergency e-shield for now since I thought that would be more popular. But If this change is implemented, making that would really just be a stone's throw away. Since the only major difference would be activating the shield remotely and the configuration.

EDIT: Forgot the pull link https://github.com/goonstation/goonstation-2016/pull/59
Reply
#2
Aw dang, been hearing about this.
Reply
#3
Could you specify where we would put in the liquid/fluid objects for the level 2?
Reply
#4
dang, that's heckin' cool
Reply
#5
(05-16-2018, 02:04 PM)Gannets Wrote: Aw dang, been hearing about this.

Darn, I thought I left a commented block where that should be done, but I guess I must have removed it by accident when cleaning up.

I thought that the best place would be in the canPass proc in /obj/forcefield/energyshield. The if statement checks the power level and decides whether to let mobs pass or not. I assumed that there is something similar for liquids.

Edit: just realized I quoted the wrong post. I tried to ZeWacka's one about liquids, but I'm on mobile and can't fix it.
Reply
#6
So the shield only specifically blocks liquids, gases, or solids? Like, you could walk through a gas shield?
Reply
#7
(05-16-2018, 04:55 PM)Frank_Stein Wrote: So the shield only specifically blocks liquids, gases, or solids? Like, you could walk through a gas shield?

No, but that could be interesting. The way I have it is: atmos Shield only blocks gas, liquid should block atmos and liquid, and solid blocks everything, just the same as any regular wall.
Reply
#8
For a second I thought you created a new Atmos system and I was about to plotz, but this is looks almost as amazing! Can't wait to play with it!
Reply
#9
(05-16-2018, 05:15 PM)kyle2143 Wrote:
(05-16-2018, 04:55 PM)Frank_Stein Wrote: So the shield only specifically blocks liquids, gases, or solids? Like, you could walk through a gas shield?

No, but that could be interesting. The way I have it is: atmos Shield only blocks gas, liquid should block atmos and liquid, and solid blocks everything, just the same as any regular wall.

Ahh. I was imagining those shields you see in Star Wars where they just have an open port to space that keeps atmosphere in but lets ships and stuff pass through
Reply
#10
(05-16-2018, 05:54 PM)Frank_Stein Wrote:
(05-16-2018, 05:15 PM)kyle2143 Wrote:
(05-16-2018, 04:55 PM)Frank_Stein Wrote: So the shield only specifically blocks liquids, gases, or solids? Like, you could walk through a gas shield?

No, but that could be interesting. The way I have it is: atmos Shield only blocks gas, liquid should block atmos and liquid, and solid blocks everything, just the same as any regular wall.

Ahh. I was imagining those shields you see in Star Wars where they just have an open port to space that keeps atmosphere in but lets ships and stuff pass through

Sorry, I somehow misunderstood your question. You can walk through a gas or liquid shield. The main idea I was going for was those Star Wars shields, I mentioned elsewhere in my post that I wanted to put a shield like that for pod bays so they can go in and out without having to open and close the doors, and maybe on some high use airlocks. But I wanted to see how this was received before I went any further with it.
Reply
#11
(05-16-2018, 06:40 PM)kyle2143 Wrote:
(05-16-2018, 05:54 PM)Frank_Stein Wrote:
(05-16-2018, 05:15 PM)kyle2143 Wrote:
(05-16-2018, 04:55 PM)Frank_Stein Wrote: So the shield only specifically blocks liquids, gases, or solids? Like, you could walk through a gas shield?

No, but that could be interesting. The way I have it is: atmos Shield only blocks gas, liquid should block atmos and liquid, and solid blocks everything, just the same as any regular wall.

Ahh. I was imagining those shields you see in Star Wars where they just have an open port to space that keeps atmosphere in but lets ships and stuff pass through

Sorry, I somehow misunderstood your question. You can walk through a gas or liquid shield. The main idea I was going for was those Star Wars shields, I mentioned elsewhere in my post that I wanted to put a shield like that for pod bays so they can go in and out without having to open and close the doors, and maybe on some high use airlocks. But I wanted to see how this was received before I went any further with it.

Oooh ok now I love this! We could even retrofit the stations with these, stick them in vital areas and have them turn on whenever something explodes, sealing in the freshness until someone can patch up the hole. A couple of these in Medbay would change *everything*. Or maybe they hang out in the hookups and exert their containment across the station? Either way, I love it! (they can prevent air from leaking out the floor though, right?)

Hm. Waaaay outside of the scope of this, but I wonder if it's at all doable to have something like this gradually repressurize the contained area, maybe connected to a gas can and distributing the gas by running cataclysmic levels of calculations onto every tile evenly.
Reply
#12
(05-16-2018, 03:24 PM)kyle2143 Wrote:
(05-16-2018, 02:04 PM)Gannets Wrote: Aw dang, been hearing about this.
I thought that the best place would be in the canPass proc in /obj/forcefield/energyshield. The if statement checks the power level and decides whether to let mobs pass or not.

yeah write something that might not compile or whatever but would where i would put the obj/liquid or whatever it is thing
Reply
#13
(05-22-2018, 08:41 AM)ZeWaka Wrote:
(05-16-2018, 03:24 PM)kyle2143 Wrote:
(05-16-2018, 02:04 PM)Gannets Wrote: Aw dang, been hearing about this.
I thought that the best place would be in the canPass proc in /obj/forcefield/energyshield. The if statement checks the power level and decides whether to let mobs pass or not.

yeah write something that might not compile or whatever but would where i would put the obj/liquid or whatever it is thing

Made a change for that. I made the if statement in canPass() a switch for maximum clarity. Now lines 352 and 358 in obj/machinery/shield_generator.dm will fail to compile since liquids don't exist in 2016. Hope that's what you had in mind.
https://github.com/goonstation/goonstati...b7655027ed
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)