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’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Makes sleeping in a bed more effective. #29058
Conversation
if(cycle == SLEEP_CYCLE) //This is expensive, so we don't want to run it every tick. | ||
cycle = 1 | ||
var/comfort = 1 | ||
for(var/obj/structure/bed/bed in orange(owner,0)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you could just require they be buckled to the bed.
it's cheaper.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See guy sleeping
Unbuckle him to be an asshole
cycle = 1 | ||
var/comfort = 1 | ||
for(var/obj/structure/bed/bed in orange(owner,0)) | ||
to_chat(world, "On a bed") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here we see the notification to everyone that someone is doing ERP
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh god damnit, I thought I removed that.
Can this set my spawn point too??? |
comfort += 1 //Aren't naps SO much better when drunk? | ||
human_owner.drunkenness *= 1-.01*comfort*SLEEP_CYCLE //reduce drunkenness by 0.3% per tick, 6% per 2 seconds | ||
if(owner.staminaloss) | ||
owner.adjustStaminaLoss(-0.35*comfort*SLEEP_CYCLE) //reduce stamina loss by 0.35 per tick, 7 per 2 seconds |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This halves how often stamina and drunkenness are reduced while sleeping
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Drunkenness is slowed down slightly, but stamina should remain the same.
to_chat(world, "On a bed") | ||
comfort+= bed.comfort | ||
break //Only count the first bed. | ||
for(var/obj/item/weapon/bedsheet/bedsheet in orange(owner,0)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just do range(owner.loc instead
.=..() | ||
setDreamMessages() | ||
|
||
/obj/item/weapon/bedsheet/proc/setDreamMessages() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why is this a proc, this doesn't need to be a proc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
memes
if(prob(SLEEP_CYCLE)) | ||
if(carbon_owner) | ||
carbon_owner.handle_dreams() | ||
if(comfort>1)//You don't heal if you're just sleeping on the floor without a blanket. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
only for carbons?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe it would be inappropriate for silicons to heal from sleep. I'm not too worried about simple mobs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do silicons dream of electric sheep? They should probably recharge faster in 'standby' mode in the borg chargers if it is the case.
carbon_owner.handle_dreams() | ||
if(prob(10) && owner.health > HEALTH_THRESHOLD_CRIT) | ||
owner.emote("snore") | ||
if(cycle == SLEEP_CYCLE) //This is expensive, so we don't want to run it every tick. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no, bad, just double the tick interval
code/modules/flufftext/Dreaming.dm
Outdated
/mob/living/carbon/proc/handle_dreams() | ||
if(stat != UNCONSCIOUS || InCritical()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the stat check will always be true
code/modules/flufftext/Dreaming.dm
Outdated
"an ID card","a bottle","a familiar face","a crewmember","a toolbox","a security officer","the captain", | ||
"voices from all around","deep space","a doctor","the engine","a traitor","an ally","darkness", | ||
"light","a scientist","a monkey","a catastrophe","a loved one","a gun","warmth","freezing","the sun", | ||
"a hat","the Luna","a ruined station","a planet","plasma","air","the medical bay","the bridge","blinking lights", | ||
"a blue light","an abandoned laboratory","Nanotrasen","The Syndicate","blood","healing","power","respect", | ||
"riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying" | ||
) | ||
for(var/i in 1 to rand(1, rand(3, 7))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I dislike how you made dreams not happen as a sequence and instead happen randomly while sleeping
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aright, I've put that back in.
Stop. This is not a good thing. Players should always attempt to be playing the game at all times, we should never reward NOT playing the game. |
human_owner.drunkenness *= 1-.01*comfort*SLEEP_CYCLE //reduce drunkenness by 0.3% per tick, 6% per 2 seconds | ||
if(owner.staminaloss) | ||
owner.adjustStaminaLoss(-0.35*comfort*SLEEP_CYCLE) //reduce stamina loss by 0.35 per tick, 7 per 2 seconds | ||
if(prob(SLEEP_CYCLE)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this is a greatly reduced probability for things happening under this prob()
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed. There used to be a 20% chance to call handle_dreams, which had a 5% chance to call dream, which ends up being just 1% chance.
This keeps the overall chance the same.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Er, this is a 2% chance? It also changes the probability of snoring.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a 2% chance, but it ticked half as often.
You're right about snoring.
|
||
dog_fashion = /datum/dog_fashion/head/ghost | ||
|
||
/obj/item/weapon/bedsheet/Initialize() | ||
.=..() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Space these out pls
item_state = initial(B.item_state) | ||
item_color = initial(B.item_color) | ||
/obj/item/weapon/bedsheet/random/Initialize() | ||
..() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
. = ..()
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, it overrides the return value later.
code/modules/flufftext/Dreaming.dm
Outdated
break | ||
dreaming = FALSE | ||
return 1 | ||
"riches","space","a crash","happiness","pride","a fall","water","flames","ice","melons","flying")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please refactor these to use something in the strings/
folder
code/modules/flufftext/Dreaming.dm
Outdated
return | ||
var/list/dreams = list() | ||
for(var/obj/item/weapon/bedsheet/bedsheet in range(0,src)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use buckling
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you can't buckle to bedsheets
code/modules/flufftext/Dreaming.dm
Outdated
dreams += bedsheet.dreamMessage | ||
if(bedsheet.dreamSound && prob(10)) | ||
src << bedsheet.dreamSound |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use playsound_local
/obj/item/weapon/bedsheet/qm | ||
name = "quartermaster's bedsheet" | ||
desc = "It is decorated with a crate emblem in silver lining. It's rather tough, and just the thing to lie on after a hard day of pushing paper." | ||
icon_state = "sheetqm" | ||
item_color = "qm" | ||
|
||
/obj/item/weapon/bedsheet/ce/setDreamMessages() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, an incorrect type.
/obj/item/weapon/bedsheet/wiz | ||
name = "wizard's bedsheet" | ||
desc = "A special fabric enchanted with magic so you can have an enchanted night. It even glows!" | ||
icon_state = "sheetwiz" | ||
item_color = "wiz" | ||
|
||
/obj/item/weapon/bedsheet/syndie/setDreamMessages() | ||
dreamMessage = list("EI NATH!", "Hocus Pocus", "Casting magic missile at the darkness", "Beards", "Staff", "Robe and wizard hat", "Sandals", "UNLIMITED POWER!") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
An incorrect type.
Im all for this, gives the dorms purpose and you can heal yourself without hopefully worrying about dying by going into the (rather helpless) recovery position. |
for(var/obj/structure/bed/bed in orange(owner,0)) | ||
comfort+= bed.comfort | ||
break //Only count the first bed. | ||
for(var/obj/item/weapon/bedsheet/bedsheet in orange(owner,0)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
range(owner.loc, 0)
@@ -162,6 +164,7 @@ | |||
buildstacktype = /obj/item/stack/sheet/mineral/wood | |||
buildstackamount = 10 | |||
var/mob/living/owner = null | |||
comfort = 0.5 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good, catmemes can sleep on the floor for all i care.
It is of critical importance we give Ian some AI to regain health by locating & sleeping in a dog bed.
You're in a dead state. You lost. That is your punishment. You are not "electing into not playing the game", you are "electing to play the game, you will begin playing again after this process".
You hit a button and now are lying on the floor doing literally nothing because you wanted to gain +2 brownie points. Instead of driving player interaction by going to medbay, calling for help, going to the chef or the barkeep, eating something from botany, or doing any of a hundred other things that DRIVE GAMEPLAY. |
But in all actuality with cloning you have no obligation to actually revive yourself then have other people cater to returning you to full health. You can just stay in deadchat, whine a bit, play a ghostrole and then server-hop making use of the game as you say not making waste of doing nothing. Unless its a urgent situation, the likelyhood is that players will take actions to maximise their recovery to approximately the duration. Eating a full meal to feel vibrant, healing your immediate wounds, trying to take the sharpness off your injuries with some light medical treatment such as gauzing yourself and drinking beneficial drinks. You can also decrease your tiredness & sleeping with coffee to make it shorter. Medically if you're on N20 internals or on morphine & in a bed you will actively be healing slowly until the duration has worn off, so it does have game-play implications.
Chill out and take a second from playing bro, go grab a drink or take a toilet break. Its a much needed feature. You have gameplay & meta-gameplay mixed up @Ergovisavi and in most situations especially if you're out in the wilds with no medication, no food and just time its better to sleep it off. |
Go take a nap ergo... |
Reports say that Chinese teens are afraid to stop playing to pee because there is simply "no room". If a player stops playing, it could drag down their team or even their whole game. |
Very butthurt weeb shitposting at incredibly high speeds |
The point of designing a multiplayer experience is to drive players towards other players. Locking yourself in an area and hitting a button to literally stop yourself from playing the game but still gain something out of it is bad game design. Stop using "realism" as an excuse to want to push for bad gameplay. There is absolutely nothing stopping you, the player, from getting up from your chair and using the bathroom, or hell, even outright turning off the game. That's all fine, but they don't give you an advantage and you're not encouraged to do so. While you're playing the game you should, unsurprisingly, be playing the game. |
I can count a few players like this @DoctoreMad Have you ever played club penguin or sat in a communal multiplayer chatroom hosted through a game? (oh yeah that game called 'Salem' is also another good example.) Really it doesn't convey over very good that you are unable to relax (though it is a game about paranoia) in a multiplayer game. @WJohn has much the same seemingly hatred of slow RP/slowness too, hence the constant xenomorph features & spam because its fast and hard hitting. |
.>Want to take a break form playing the game for a while |
Counter-suggestion - The bed at the end of the sloth ruin should be unique, wrenchable to move & give 10 comfort to people who sleep in it. |
@@ -127,30 +160,50 @@ LINEN BINS | |||
icon_state = "sheetcmo" | |||
item_color = "cmo" | |||
|
|||
/obj/item/weapon/bedsheet/cmo/Initialize() | |||
.=..() | |||
dreamMessage = list("Disease", "Medicine", "Injury", "Vaccines", "Cyro tubes", "Sleepers", "Runtime") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cyro
/obj/item/weapon/bedsheet/cult | ||
name = "cultist's bedsheet" | ||
desc = "You might dream of Nar'Sie if you sleep with this. It seems rather tattered and glows of an eldritch presence." | ||
icon_state = "sheetcult" | ||
item_color = "cult" | ||
|
||
/obj/item/weapon/bedsheet/cult/Initialize() | ||
.=..() | ||
dreamMessage = list("Nar-sie", "Runes", "Arcane Tome", "</i><span class='narsie'>NAR-SIE HAS RISEN</span><i>") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
inverted <i>
tags
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Intentional, it's to cancel out the <i>
tags within the earlier statement.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no, just remove them
Ergo is way smarter than me so if you want to add comfort for drunkeness thats fine but no healing please |
Can't tell if that is a ironic shitpost or self-depreciation, what else are you going to do with your time. You take a good meal before your nap and feel better, can't go much wrong with that, sounds just like real life too. |
It's not spelt wrong, UK spelling, now you just look stupid. :smuganimegirl: |
/obj/item/weapon/bedsheet/wiz | ||
name = "wizard's bedsheet" | ||
desc = "A special fabric enchanted with magic so you can have an enchanted night. It even glows!" | ||
icon_state = "sheetwiz" | ||
item_color = "wiz" | ||
|
||
/obj/item/weapon/bedsheet/wiz/Initialize() | ||
.=..() | ||
dreamMessage = list("EI NATH!", "Hocus Pocus", "Casting magic missile at the darkness", "Beards", "Staff", "Robe and wizard hat", "Sandals", "UNLIMITED POWER!") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
these don't need to be in Initialize either, they can just be on the object.
same for the sound, which could probably also be a list of sounds
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
huh, for some reason I thought lists couldn't be on the object itself.
This feature feels good. There is should be a limit to healing ability though. |
Guys remove the healing and make it beneficial for viruses which need rest and clearing of reagents in the system instead. Healing is already dealt with via nutrition. |
@dannno with the amount of times you see me falling flat on my keyboard while adminning tg you'd know all shitposting aside if people want to toss their playtime to heal, eh. |
@GuyonBroadway that only works while you're in crit. You'd need a chemical implant of hearty punch and a long nap to recover i guess. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Kor said remove healing
I'm not willing to remove the healing outright. If you want me to limit it to only healing people who are above 90% health, I'll add that limitation. |
That's not removing the healing though |
So as I see it, @Ergovisavi says it's bad, and @KorPhaeron trusts Ergo's judgement, and because of that, @Cyberboss is blocking the merge. Who is this Ergo guy, and why are we placing so much faith in his judgement? I have never heard of him before. |
As I see it, removing the healing basically removes the entire purpose of this PR, which is threefold: Have beds be used for more than just tying people to, and make them used for their original purpose, sleeping. This not only helps asthetically, but it also helps make dorms a less suspicious place, as right now they serve basically no purpose aside from being an antag den. Give players a way to slowly heal small wounds without hoping that medbay is still around. Give players a reason to willingly make themselves vulnerable for about 40 seconds at a time. If you remove the healing, people will only have reason to seek out beds when drunk, or hit with a lot of stamina damage. Stamina damage is irrelevant, since by the time someone makes it to a bed, they're probably recovered. |
Proficient by the deep set attitude of pro-active powergaming as evident. Im dissapointed with everyone involved. Ergo is still a "literally who" with most people to even warrant any degree of power in 2017 coderbus. Im a tiny bit shocked Kor is being so submissive, for being one of our lead "devs" and lorewriter, where's your ego? If Oranges were here now with maintainer, they'd probably sark you up a bit and laugh and actually not contribute to the PR at all except on the most technical of points and then it'd go through without being veto'd being able to wave off discussion as discussion. Ergo didn't even press on to add to his points when we basically navigated around his powergamey arguement. If you hate the PR so much maintainers, close it. Else you're wasting our time talking about something you're going to knock back down to earth regardless anyway because mind-set. |
Well said, @FantasticFwoosh. I even offered to take out the healing for those below 90% health. If that's what makes Ergo happy, then I'll do it. It should remove most of the concerns about it being powergamey. But no, apparently that's not totally removing it, because this Ergo fellow is apparently so important and insightful that we must follow his literal commands as gospel, rather than work out and determine if there is a more elegant solution than crippling the entire point of this PR. |
Ergo is my spiritual liege |
@GuyonBroadway Those are great ideas, and I would like to implement those, but I feel it would be best to wait for what happens to #28913 first. |
This is not a concern about it being powergamey. Not in the slightest. This is a concern with adding a feature that actively benefits the player removing themselves from their ability to interact with the game. Say you're playing a game with an inn. Any game will do. Do you know what happens when you go to the innkeeper and say "I would like for my character to rest"? Fade to black, music, character wakes up at full health in under ten seconds. This is because the act of putting your character to sleep is not fun, you're relinquishing control. Watching your character lying in bed for a full minute does not enhance the gameplay of SS13, and if it doesn't enhance the gameplay of a game, then it needs to stay as an RP element or go away. We're not a standard game with an inn. We can't advance time, and so our only option it to show it in real time, which is atrocious. Minutes of "You don't get to do shit."? You really think that's a fun gameplay idea for a BENEFICIAL ability? Even a detriment of "You don't get to do shit for minutes at a time" is pretty awful. No. If you want people to be able to heal their wounds, do it without robbing the players of control. Hell, make it so when you're well fed, you passively regenerate health while not in crit and not having been damaged recently. I would 100% fully support that. Because it makes the chef more important and drives gameplay. You want to interact with the chef now. You want to interact with all the food we put in the game. You want to seek out food. You want to be active. Or hell, just make people passively regenerate health slowly when they're not recently hurt in general! It would still be better than "knock yourself out for minutes at a time". "I want to take break!" - Some guy Do it! Take a break! Step away from your keyboard, go to the bathroom, take a piss, walk your dog, go to sleep, hell, AFK for the rest of the round! There is absolutely nothing stopping you from doing that. We aren't some competitive game with ranked matchmaking, you have nothing to lose by leaving your set. Lying down in a bed in dorms and waiting and waiting and waiting instead of pushing our existing mechanics to be better is absolutely a bad addition to the game. |
owner.emote("snore") | ||
if(comfort>1)//You don't heal if you're just sleeping on the floor without a blanket. | ||
carbon_owner.adjustBruteLoss(-1*comfort) | ||
carbon_owner.adjustFireLoss(-1*comfort) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also frankly this is absurd healing, 3.5 per tick(assuming bed and default sheet), 5 ticks per second? That's 17.5 of each damage type in ONE SECOND.
sleep lasts for 40 seconds!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is under a prob(3)
, which would slow down the healing quite significantly.
If medbay is incompetent/overrun/a literal hole then healing should be difficult to achieve Medbay and the associated jobs are enough of a joke that we don't need every player to have built in unlimited healing supplies |
Kor doesn't like |
I said I liked it for drinking though silly |
Part of the point is @Ergovisavi is that we go afk & off client all the while with mindless & soullessness, we can just quit at any time and stare into the void if we need to go afk with no reprecussions and no protection either not dissimilar from sleeping. The dorms are as secure as going AFK in a ID locked locker.
It would help to alleviate (im not talking about it being powergaming; im referring to YOUR pro-active rhetoric that ever pausing to stop in a game is meta) problems of people quitting the game mid-round and therefore walking away from playing in the first place. Sleeping also comes into the element of patience, if you must wait 20 minutes for the shuttle you're going to hijack to arrive, you can just make/occupy a bed and wait. The OP pidgey even offered a reasonable compromise to nerf the rate of healing if there was concerns.
@dannno it makes @KorPhaeron look weak. And yes it's his decision but you can't omit the part @Ergovisavi has played in influencing said decision visibly in the discussion. |
🆑 LordPidey
add: Resting on a bed with a bedsheet now provides bonuses compared to sleeping on the metal floor.
add: Centcom would like to dispel the rumors that we are using dream based subliminal messaging tied to bedsheets to attempt to influence crewmembers.
/:cl:
So, this is a fairly big balance change. Sleeping will now slowly heal brute/burn damage, provided the sleeping person is on a bed and/or has a blanket.