Conflict fix

This commit is contained in:
Artur
2020-01-24 23:06:32 +01:00
202 changed files with 15686 additions and 10893 deletions
+107
View File
@@ -0,0 +1,107 @@
/**
* A component to reset the parent to its previous state after some time passes
*/
/datum/component/dejavu
/// The turf the parent was on when this components was applied, they get moved back here after the duration
var/turf/starting_turf
/// Determined by the type of the parent so different behaviours can happen per type
var/rewind_type
/// How many rewinds will happen before the effect ends
var/rewinds_remaining
/// How long to wait between each rewind
var/rewind_interval
/// The starting value of clone loss at the beginning of the effect
var/clone_loss = 0
/// The starting value of toxin loss at the beginning of the effect
var/tox_loss = 0
/// The starting value of oxygen loss at the beginning of the effect
var/oxy_loss = 0
/// The starting value of brain loss at the beginning of the effect
var/brain_loss = 0
/// The starting value of brute loss at the beginning of the effect
/// This only applies to simple animals
var/brute_loss
/// The starting value of integrity at the beginning of the effect
/// This only applies to objects
var/integrity
/// A list of body parts saved at the beginning of the effect
var/list/datum/saved_bodypart/saved_bodyparts
/datum/component/dejavu/Initialize(rewinds = 1, interval = 10 SECONDS)
if(!isatom(parent))
return COMPONENT_INCOMPATIBLE
starting_turf = get_turf(parent)
rewinds_remaining = rewinds
rewind_interval = interval
if(isliving(parent))
var/mob/living/L = parent
clone_loss = L.getCloneLoss()
tox_loss = L.getToxLoss()
oxy_loss = L.getOxyLoss()
brain_loss = L.getOrganLoss(ORGAN_SLOT_BRAIN)
rewind_type = .proc/rewind_living
if(iscarbon(parent))
var/mob/living/carbon/C = parent
saved_bodyparts = C.save_bodyparts()
rewind_type = .proc/rewind_carbon
else if(isanimal(parent))
var/mob/living/simple_animal/M = parent
brute_loss = M.bruteloss
rewind_type = .proc/rewind_animal
else if(isobj(parent))
var/obj/O = parent
integrity = O.obj_integrity
rewind_type = .proc/rewind_obj
addtimer(CALLBACK(src, rewind_type), rewind_interval)
/datum/component/dejavu/Destroy()
starting_turf = null
saved_bodyparts = null
return ..()
/datum/component/dejavu/proc/rewind()
to_chat(parent, "<span class=notice>You remember a time not so long ago...</span>")
//comes after healing so new limbs comically drop to the floor
if(starting_turf)
var/atom/movable/master = parent
master.forceMove(starting_turf)
rewinds_remaining --
if(rewinds_remaining)
addtimer(CALLBACK(src, rewind_type), rewind_interval)
else
to_chat(parent, "<span class=notice>But the memory falls out of your reach.</span>")
qdel(src)
/datum/component/dejavu/proc/rewind_living()
var/mob/living/master = parent
master.setCloneLoss(clone_loss)
master.setToxLoss(tox_loss)
master.setOxyLoss(oxy_loss)
master.setOrganLoss(ORGAN_SLOT_BRAIN, brain_loss)
rewind()
/datum/component/dejavu/proc/rewind_carbon()
if(saved_bodyparts)
var/mob/living/carbon/master = parent
master.apply_saved_bodyparts(saved_bodyparts)
rewind_living()
/datum/component/dejavu/proc/rewind_animal()
var/mob/living/simple_animal/master = parent
master.bruteloss = brute_loss
master.updatehealth()
rewind_living()
/datum/component/dejavu/proc/rewind_obj()
var/obj/master = parent
master.obj_integrity = integrity
rewind()
+1 -1
View File
@@ -132,7 +132,7 @@
//CIT CHANGE - makes arousal update when transfering bodies
if(isliving(new_character)) //New humans and such are by default enabled arousal. Let's always use the new mind's prefs.
var/mob/living/L = new_character
if(L.client && L.client.prefs & L.client.prefs.auto_ooc & L.client.prefs.chat_toggles & CHAT_OOC)
if(L.client?.prefs && L.client.prefs.auto_ooc && L.client.prefs.chat_toggles & CHAT_OOC)
DISABLE_BITFIELD(L.client.prefs.chat_toggles,CHAT_OOC)
SEND_SIGNAL(src, COMSIG_MIND_TRANSFER, new_character, old_character)
+7
View File
@@ -34,3 +34,10 @@
id = "engine_tesla"
suffix = "Box/Engine/engine_tesla.dmm"
name = "Box Tesla"
// Lavaland
// Mining Base
/datum/map_template/ruin/station/lavaland/mining_base
id = "mining_public_01"
suffix = "Lavaland/Mining_Station/Mining_Station_Public_01.dmm"
name = "Public Mining Base"
+9
View File
@@ -400,3 +400,12 @@
/datum/quirk/blindness/remove()
quirk_holder?.cure_blind(ROUNDSTART_TRAIT)
/datum/quirk/coldblooded
name = "Cold-blooded"
desc = "Your body doesn't create its own internal heat, requiring external heat regulation."
value = -2
medical_record_text = "Patient is ectothermic."
mob_trait = TRAIT_COLDBLOODED
gain_text = "<span class='notice'>You feel cold-blooded.</span>"
lose_text = "<span class='notice'>You feel more warm-blooded.</span>"
-9
View File
@@ -104,15 +104,6 @@
gain_text = "<span class='notice'>You desire to be hurt.</span>"
lose_text = "<span class='notice'>Pain has become less exciting for you.</span>"
/datum/quirk/coldblooded
name = "Cold-blooded"
desc = "Your body doesn't create its own internal heat, requiring external heat regulation."
value = 0
medical_record_text = "Patient is ectothermic."
mob_trait = TRAIT_COLDBLOODED
gain_text = "<span class='notice'>You feel cold-blooded.</span>"
lose_text = "<span class='notice'>You feel more warm-blooded.</span>"
/datum/quirk/alcohol_intolerance
name = "Alcohol Intolerance"
desc = "You take toxin damage from alcohol rather than getting drunk."