Adds a no_clone modifier

This commit is contained in:
Anewbe
2017-09-28 16:26:24 -05:00
parent 1217c1d23c
commit 9f651ba5f2
6 changed files with 59 additions and 30 deletions
+5 -29
View File
@@ -94,6 +94,10 @@
else
return 0
for(var/modifier_type in R.genetic_modifiers) //Can't be cloned, even if they had a previous scan
if(istype(modifier_type, /datum/modifier/no_clone))
return 0
attempting = 1 //One at a time!!
locked = 1
@@ -516,32 +520,4 @@
/* EMP grenade/spell effect
if(istype(A, /obj/machinery/clonepod))
A:malfunction()
*/
/*
* Modifier applied to newly cloned people.
*/
// Gives rather nasty downsides for awhile, making them less robust.
/datum/modifier/recently_cloned
name = "recently cloned"
desc = "You feel rather weak, having been cloned awhile ago."
on_created_text = "<span class='warning'><font size='3'>You feel really weak.</font></span>"
on_expired_text = "<span class='notice'><font size='3'>You feel your strength returning to you.</font></span>"
max_health_percent = 0.6 // -40% max health.
incoming_damage_percent = 1.1 // 10% more incoming damage.
outgoing_melee_damage_percent = 0.7 // 30% less melee damage.
disable_duration_percent = 1.25 // Stuns last 25% longer.
slowdown = 1 // Slower.
evasion = -1 // 15% easier to hit.
// Does nothing.
/datum/modifier/cloned
name = "cloned"
desc = "You died and were cloned, and you can never forget that."
flags = MODIFIER_GENETIC // So it gets copied if they die and get cloned again.
stacks = MODIFIER_STACK_ALLOWED // Two deaths means two instances of this.
*/
+4
View File
@@ -316,6 +316,10 @@
if (subject.species && subject.species.flags & NO_SCAN)
scantemp = "Error: Mental interface failure."
return
for(var/modifier_type in subject.modifiers) //Can't be cloned, even if they had a previous scan
if(istype(modifier_type, /datum/modifier/no_clone))
scantemp = "Error: Mental interface failure."
return
if (!isnull(find_record(subject.ckey)))
scantemp = "Subject already in database."
return
+37
View File
@@ -0,0 +1,37 @@
/*
* Modifier applied to newly cloned people.
*/
// Gives rather nasty downsides for awhile, making them less robust.
/datum/modifier/recently_cloned
name = "recently cloned"
desc = "You feel rather weak, having been cloned awhile ago."
on_created_text = "<span class='warning'><font size='3'>You feel really weak.</font></span>"
on_expired_text = "<span class='notice'><font size='3'>You feel your strength returning to you.</font></span>"
max_health_percent = 0.6 // -40% max health.
incoming_damage_percent = 1.1 // 10% more incoming damage.
outgoing_melee_damage_percent = 0.7 // 30% less melee damage.
disable_duration_percent = 1.25 // Stuns last 25% longer.
slowdown = 1 // Slower.
evasion = -1 // 15% easier to hit.
// Tracks number of deaths, one modifier added per cloning
/datum/modifier/cloned
name = "cloned"
desc = "You died and were cloned, and you can never forget that."
flags = MODIFIER_GENETIC // So it gets copied if they die and get cloned again.
stacks = MODIFIER_STACK_ALLOWED // Two deaths means two instances of this.
// Prevents cloning, actual effect is on the cloning machine
/datum/modifier/no_clone
name = "Cloning Incompatability"
desc = "For whatever reason, you cannot be cloned."
//WIP, but these may never be seen anyway, so *shrug
on_created_text = "<span class='warning'>Life suddenly feels more precious.</span>"
on_expired_text = "<span class='notice'>Death is cheap again.</span>"
flags = MODIFIER_GENETIC
+10
View File
@@ -0,0 +1,10 @@
/datum/modifier/frail
name = "frail"
desc = "You are more delicate than the average person."
flags = MODIFIER_GENETIC
on_created_text = "<span class='warning'>You feel really weak.</span>"
on_expired_text = "<span class='notice'>You feel your strength returning to you.</span>"
max_health_percent = 0.9
+3 -1
View File
@@ -1554,11 +1554,13 @@
#include "code\modules\mob\mob_helpers.dm"
#include "code\modules\mob\mob_movement.dm"
#include "code\modules\mob\mob_transformation_simple.dm"
#include "code\modules\mob\modifiers.dm"
#include "code\modules\mob\say.dm"
#include "code\modules\mob\transform_procs.dm"
#include "code\modules\mob\typing_indicator.dm"
#include "code\modules\mob\update_icons.dm"
#include "code\modules\mob\_modifiers\cloning.dm"
#include "code\modules\mob\_modifiers\modifiers.dm"
#include "code\modules\mob\_modifiers\traits.dm"
#include "code\modules\mob\dead\death.dm"
#include "code\modules\mob\dead\observer\login.dm"
#include "code\modules\mob\dead\observer\logout.dm"