mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 20:43:10 +01:00
Adds Skrell Shared Dreaming (#5707)
Implements skrell shared dreaming. Whilst Unconscious and alive, skrell will enter the Srom, aka Dream, in which they telepathically link to one another. In game, they will appear in a custom area, able to communicate with one another. Whilst in Srom, skrell find it very hard to keep their own secrets, if not impossible, and will often 'mumble' important information.
This commit is contained in:
@@ -380,6 +380,7 @@
|
||||
usr << "<span class='warning'>You are already sleeping</span>"
|
||||
return
|
||||
if(alert(src,"You sure you want to sleep for a while?","Sleep","Yes","No") == "Yes")
|
||||
willfully_sleeping = 1
|
||||
usr.sleeping = 20 //Short nap
|
||||
|
||||
/mob/living/carbon/Collide(atom/A)
|
||||
|
||||
@@ -31,4 +31,6 @@
|
||||
var/last_smell_time = 0
|
||||
var/last_smell_text = ""
|
||||
|
||||
var/coughedtime = null // should only be useful for carbons as the only thing using it has a carbon arg.
|
||||
var/coughedtime = null // should only be useful for carbons as the only thing using it has a carbon arg.
|
||||
|
||||
var/willfully_sleeping = 0
|
||||
@@ -172,6 +172,16 @@
|
||||
if(M.stat == 2)
|
||||
M.gib()
|
||||
|
||||
|
||||
// Simple mobs cannot use Skrellepathy
|
||||
/mob/proc/can_commune()
|
||||
return 0
|
||||
|
||||
/mob/living/carbon/human/can_commune()
|
||||
if(/mob/living/carbon/human/proc/commune in verbs)
|
||||
return 1
|
||||
return ..()
|
||||
|
||||
/mob/living/carbon/human/proc/commune()
|
||||
set category = "Abilities"
|
||||
set name = "Commune with creature"
|
||||
@@ -243,19 +253,19 @@
|
||||
to_chat(M,"<span class='notice'>[src] telepathically says to [target]:</span> [text]")
|
||||
|
||||
var/mob/living/carbon/human/H = target
|
||||
if (/mob/living/carbon/human/proc/commune in target.verbs)
|
||||
if (target.can_commune())
|
||||
to_chat(H,"<span class='psychic'>You instinctively sense [src] sending their thoughts into your mind, hearing:</span> [text]")
|
||||
else if(prob(25) && (target.mind && target.mind.assigned_role=="Chaplain"))
|
||||
to_chat(H,"<span class='changeling'>You sense [src]'s thoughts enter your mind, whispering quietly:</span> [text]")
|
||||
else
|
||||
to_chat(H,"<span class='alium'>You feel pressure behind your eyes as alien thoughts enter your mind:</span> [text]")
|
||||
if(istype(H))
|
||||
if (/mob/living/carbon/human/proc/commune in target.verbs)
|
||||
if (target.can_commune())
|
||||
return
|
||||
if(prob(10) && (H.species.flags & NO_BLOOD))
|
||||
if(prob(10) && !(H.species.flags & NO_BLOOD))
|
||||
to_chat(H,"<span class='warning'>Your nose begins to bleed...</span>")
|
||||
H.drip(3)
|
||||
else if(prob(25) && (H.species.flags & NO_PAIN))
|
||||
else if(prob(25) && !(H.species.flags & NO_PAIN))
|
||||
to_chat(H,"<span class='warning'>Your head hurts...</span>")
|
||||
else if(prob(50))
|
||||
to_chat(H,"<span class='warning'>Your mind buzzes...</span>")
|
||||
|
||||
@@ -87,6 +87,8 @@
|
||||
if (is_diona())
|
||||
diona_handle_light(DS)
|
||||
|
||||
handle_shared_dreaming()
|
||||
|
||||
handle_stasis_bag()
|
||||
|
||||
if(!handle_some_updates())
|
||||
@@ -1044,7 +1046,7 @@
|
||||
handle_dreams()
|
||||
if (mind)
|
||||
//Are they SSD? If so we'll keep them asleep but work off some of that sleep var in case of stoxin or similar.
|
||||
if(client || sleeping > 3)
|
||||
if(client || sleeping > 3 || istype(bg))
|
||||
AdjustSleeping(-1)
|
||||
if( prob(2) && health && !hal_crit )
|
||||
spawn(0)
|
||||
@@ -1052,6 +1054,7 @@
|
||||
//CONSCIOUS
|
||||
else
|
||||
stat = CONSCIOUS
|
||||
willfully_sleeping = 0
|
||||
|
||||
// Check everything else.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user