Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allows bluespace body bags to be folded up with atoms inside (Winter Thaw 2017) #23249

Merged
merged 1 commit into from Feb 1, 2017
Merged

Conversation

ghost
Copy link

@ghost ghost commented Jan 22, 2017

This feature was created as part of the Winter Thaw of 2017 regardless of consensus or if it gets merged.

馃啈 Xhuis
add: You can now fold up bluespace body bags with creatures or objects inside. You can't fold them up if too many things are inside, but anything you fold up in can be carried around in the object and redeployed at any time.
/:cl:

As requested by Bombadil.

  • You can't fold up these bags if they're at least half-full (7 atoms).
  • Creatures will slowly suffocate unless they have internals.
  • Destruction of the folded bag will cause all stored atoms to dump onto the turf of their holder.
  • Creatures can resist out of the bag if they're not restrained. This takes twenty seconds and destroys the bag, dumping out all of its contents onto the floor.

@AnturK AnturK added the Feature Exposes new bugs in interesting ways label Jan 22, 2017
@jughu
Copy link
Contributor

jughu commented Jan 22, 2017

WHERE THE FUCK IS THAT GREYTIDER?
uh that way officer!!
officer runs away
whispers to bag shhh greytider mcshiterson your safe in there

@ghost
Copy link
Author

ghost commented Jan 22, 2017

I was more thinking "Oh hey, the nuke disk is in this bag! There's six other bags in that bag... and six other bags in that one... and..."

@Incoming5643
Copy link
Contributor

a way to struggle out would probably be a good idea because as it stands now if you stun a guy and put him in a bag it's effectively a one hit kill

@jughu
Copy link
Contributor

jughu commented Jan 22, 2017

cant ya make the nuke disk just to spawn away because having to go trough 100 bags would be stupid cant ya make it like 10 bags are the max untill the nuke disk dispears

@ghost
Copy link
Author

ghost commented Jan 22, 2017

@Incoming5643 That's probably true so I'll do that.
@jughu If people have enough resources and time to make recursive bodybags, who am I to stop them?

@jughu
Copy link
Contributor

jughu commented Jan 22, 2017

oh right i forgot you can destroy them and basically instantly drop all atoms

@ghost
Copy link
Author

ghost commented Jan 22, 2017

Creatures can now resist out of the bag after a twenty-second timer.

@Kromgar
Copy link
Contributor

Kromgar commented Jan 22, 2017

Next PR: Nuke Operatives can purchase bluespace body bags.

Forget locker ops we bodybag ops boys.

I've wanted this shit for years i am so glad i won the thaw. Can't wait for a round where the entire crew crawls into body bags and go an adventure.

So uh how exactly do you fold it? Drag to hand?

@ghost
Copy link
Author

ghost commented Jan 22, 2017

Yeah, fold it up the same as a normal body bag.

@Zeldazackman
Copy link

Fold up the bag and toss it into the crusher for an easy way to remove everything.

Also does their struggle reset depending upon if they were moved or not?

@jughu
Copy link
Contributor

jughu commented Jan 23, 2017

Just image a rev round a whole revulution in your backpack

qdel(src)

/obj/item/bodybag/bluespace/container_resist(mob/living/user)
if(user.restrained())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if(user.incapacitated()

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If they're knocked out, I don't believe that they can resist anyway.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If they're stunned though, it's a different story--there's also a few other cases where you may be able to resist---incapacitated cover all those cases.

@Kromgar
Copy link
Contributor

Kromgar commented Jan 23, 2017

New tactics

Be grayshit
Get permabrigged
While officers are dragging him into the brig Bright flash suddenly 21 people are in the brig

@ghost
Copy link
Author

ghost commented Jan 23, 2017

@Zeldazackman Resisting is not broken if the holder moves, no.

@Kromgar
Copy link
Contributor

Kromgar commented Jan 23, 2017

Testmerge when?

@ghost
Copy link
Author

ghost commented Jan 23, 2017

This doesn't really need a testmerge (unless that's official policy now?). It's small enough that it can just be put in as-is.

@AdamElTablawy
Copy link
Contributor

Doesn't this mean you can literally store one to multiple people inside your backpack inside a folded up bodybag?

It's like cogscarabs in backpacks all over again

@Kromgar
Copy link
Contributor

Kromgar commented Jan 24, 2017

If you put a bluespace body bag folded up inside a bluespace bodybag... should probably send you into the astral plane- I mean bleuspace

@XDTM
Copy link
Contributor

XDTM commented Jan 24, 2017

Should probably send people inside in a separate plane a la ninja room, since i suspect that right now they can call for help. Although that would cause issues with multiple bags.

@ghost
Copy link
Author

ghost commented Jan 24, 2017

I feel like it kind of makes sense to let them call for help. It's "bigger on the inside" but it's still just fabric.

@Kromgar
Copy link
Contributor

Kromgar commented Jan 24, 2017

This is why we have 10 morphine pills to make them go sleepy. Or straight jacket, muzzle and blindfold hehehe

if(isliving(A))
A << "<span class='notice'>You suddenly feel air around you! You're free!</span>"
var/mob/living/L = A
L.Weaken(3)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why the weaken?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It can go either way. I mainly wanted to prevent people just bursting out of the bags and zipping around instantly, but at the same time that's possible for other lockers. What do you think?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a pretty huge stun, maybe use 2 at most

@ghost
Copy link
Author

ghost commented Jan 25, 2017

I removed the stun from emerging from bags, but also prevented folded body bags from being stored inside of folded body bags.

@imtakingabreakdontatme
Copy link
Contributor

Yeah this sounds fine now

if(isliving(A))
A << "<span class='notice'>You suddenly feel the space around you torn apart! You're free!</span>"
var/mob/living/L = A
L.Weaken(3)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It came back somehow

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NotLikeThis

@ghost
Copy link
Author

ghost commented Jan 25, 2017

Let me do some testing and squash commits before you merge this

@ghost
Copy link
Author

ghost commented Jan 25, 2017

All right, this is ready!

return 0
visible_message("<span class='notice'>[usr] folds up [src].</span>")
var/obj/item/bodybag/B = new foldedbag_path(get_turf(src))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be one object that is stored and referenced by the bag rather than creating a new one every time you pick it up?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is how regular body bags handle it. I don't really see why they would need to store a folded-up version inside of itself.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regular bodybags are not up to current standard either then

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want me to refactor them, then? And why does the object need to be stored inside when creating a new one prevents possible runtimes and issues that occur as a result?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is wasteful to create and delete the same object over and over

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll work on this once I push a commit to the AI mech control PR.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, I ended up creating an infinite body bag generator. Genetics would be proud.

On a different note, would it be too much to ask for this to be merged and I can PR the refactor right afterwards separately? I don't want to include both a refactor and a new feature in the same PR, and I've been chewed out for that kind of non-atomization before.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@MrStonedOne we recently had a talk about the "cost" of creating objects. How expensive is creating a new object, vs the cost and complexity (and bugs) of storage of the same object

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@KorPhaeron Generally we like to create item versions of things on the fly rather than hold it. see: Drones, Pipes, Walls, Floors, Chairs. Only if the item is likely to have something that can change about it that we want to persist do we store the item version.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so you're fine Xhuis

loc << "<span class='warning'>The pressure subsides. It seems that they've stopped resisting...</span>"
return
loc.visible_message("<span class='warning'>[user] suddenly appears in front of [loc]!</span>", "<span class='userdanger'>[user] breaks free of [src]!</span>")
qdel(src)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this just deploy it on a turf instead of destroying it?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ruled against it. Tearing your way out of a bag makes it unusable.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know, i feel like we won't see much of this if one person resisting deletes the whole gimmick. It costs diamonds after all.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

True, but unzipping the bag will stop it, as will restraining them. It's also folded up, so it's not really possible to escape without causing damage.

@Kromgar
Copy link
Contributor

Kromgar commented Jan 29, 2017

馃槱

@optimumtact
Copy link
Member

Work needed here

@Kromgar
Copy link
Contributor

Kromgar commented Jan 29, 2017

馃槶 @optimumtact

@ghost
Copy link
Author

ghost commented Jan 30, 2017

@optimumtact What work? Unless you're referencing what Kor said, but I don't want to include a refactor and a feature in the same PR.

@optimumtact optimumtact merged commit 3392591 into tgstation:master Feb 1, 2017
@PKPenguin321
Copy link
Contributor

馃帀 馃巿

@ghost ghost deleted the bluespace_bodybag_folding branch February 1, 2017 13:38
@ghost
Copy link
Author

ghost commented Feb 1, 2017

@Kromgar It happened

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Exposes new bugs in interesting ways
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet