Clockcult fixes (#24313)

* Clockcult fixes

* Silicons had identical stun procs for some reason

* oh.

* proper!
This commit is contained in:
Joan Lung
2017-02-24 09:46:35 +13:00
committed by oranges
parent b0a20bf6ef
commit d9149849b0
10 changed files with 60 additions and 48 deletions
@@ -5,10 +5,16 @@
/////////////////////////////////// STUNNED ////////////////////////////////////
/mob/living/carbon/alien/Stun(amount, updating = 1, ignore_canstun = 0)
if(status_flags & CANSTUN || ignore_canstun)
stunned = max(max(stunned,amount),0) //can't go below 0, getting a low amount of stun doesn't lower your current stun
if(updating)
update_canmove()
else
// add some movement delay
move_delay_add = min(move_delay_add + round(amount / 2), 10) // a maximum delay of 10
. = ..()
if(!.)
move_delay_add = min(move_delay_add + round(amount / 2), 10) //a maximum delay of 10
/mob/living/carbon/alien/SetStunned(amount, updating = 1, ignore_canstun = 0)
. = ..()
if(!.)
move_delay_add = min(move_delay_add + round(amount / 2), 10)
/mob/living/carbon/alien/AdjustStunned(amount, updating = 1, ignore_canstun = 0)
. = ..()
if(!.)
move_delay_add = min(move_delay_add + round(amount / 2), 10)
@@ -1,11 +1,11 @@
/mob/living/carbon/human/Stun(amount, updating = 1, ignore_canstun = 0)
amount = dna.species.spec_stun(src,amount)
..()
return ..()
/mob/living/carbon/human/Weaken(amount, updating = 1, ignore_canstun = 0)
amount = dna.species.spec_stun(src,amount)
..()
return ..()
/mob/living/carbon/human/cure_husk()
. = ..()
+22 -28
View File
@@ -6,42 +6,36 @@
/////////////////////////////////// STUNNED ////////////////////////////////////
/mob/living/silicon/Stun(amount, updating = 1, ignore_canstun = 0)
if(status_flags & CANSTUN || ignore_canstun)
stunned = max(max(stunned,amount),0) //can't go below 0, getting a low amount of stun doesn't lower your current stun
if(updating)
update_stat()
. = ..()
if(. && updating)
update_stat()
/mob/living/silicon/SetStunned(amount, updating = 1, ignore_canstun = 0)
. = ..()
if(. && updating)
update_stat()
/mob/living/silicon/AdjustStunned(amount, updating = 1, ignore_canstun = 0)
if(status_flags & CANSTUN || ignore_canstun)
stunned = max(stunned + amount,0)
if(updating)
update_stat()
/mob/living/silicon/SetStunned(amount, updating = 1, ignore_canstun = 0) //if you REALLY need to set stun to a set amount without the whole "can't go below current stunned"
if(status_flags & CANSTUN || ignore_canstun)
stunned = max(amount,0)
if(updating)
update_stat()
. = ..()
if(. && updating)
update_stat()
/////////////////////////////////// WEAKENED ////////////////////////////////////
/mob/living/silicon/Weaken(amount, updating = 1, ignore_canweaken = 0)
if(status_flags & CANWEAKEN || ignore_canweaken)
weakened = max(max(weakened,amount),0)
if(updating)
update_stat()
/mob/living/silicon/AdjustWeakened(amount, updating = 1, ignore_canweaken = 0)
if(status_flags & CANWEAKEN || ignore_canweaken)
weakened = max(weakened + amount,0)
if(updating)
update_stat()
. = ..()
if(. && updating)
update_stat()
/mob/living/silicon/SetWeakened(amount, updating = 1, ignore_canweaken = 0)
if(status_flags & CANWEAKEN || ignore_canweaken)
weakened = max(amount,0)
if(updating)
update_stat()
. = ..()
if(. && updating)
update_stat()
/mob/living/silicon/AdjustWeakened(amount, updating = 1, ignore_canweaken = 0)
. = ..()
if(. && updating)
update_stat()
/////////////////////////////////// EAR DAMAGE ////////////////////////////////////
+4 -4
View File
@@ -32,7 +32,7 @@
"visible_message" = message, "self_message" = self_message, "examine_message" = examine_message)
/mob/living/Stun(amount, updating = 1, ignore_canstun = 0)
if(!stat && islist(stun_absorption))
if(!stat && islist(stun_absorption) && (status_flags & CANSTUN || ignore_canstun))
var/priority_absorb_key
var/highest_priority
for(var/i in stun_absorption)
@@ -49,12 +49,12 @@
src << "<span class='boldwarning'>[priority_absorb_key["self_message"]]</span>"
priority_absorb_key["stuns_absorbed"] += amount
return 0
..()
return ..()
///////////////////////////////// WEAKEN /////////////////////////////////////
/mob/living/Weaken(amount, updating = 1, ignore_canweaken = 0)
if(!stat && islist(stun_absorption))
if(!stat && islist(stun_absorption) && (status_flags & CANWEAKEN || ignore_canweaken))
var/priority_absorb_key
var/highest_priority
for(var/i in stun_absorption)
@@ -71,4 +71,4 @@
src << "<span class='boldwarning'>[priority_absorb_key["self_message"]]</span>"
priority_absorb_key["stuns_absorbed"] += amount
return 0
..()
return ..()
+9 -1
View File
@@ -3,7 +3,6 @@
//The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness, ear damage,
// eye damage, eye_blind, eye_blurry, druggy, BLIND disability, and NEARSIGHT disability.
/////////////////////////////////// STUNNED ////////////////////////////////////
/mob/proc/Stun(amount, updating = 1, ignore_canstun = 0)
@@ -11,18 +10,21 @@
stunned = max(max(stunned,amount),0) //can't go below 0, getting a low amount of stun doesn't lower your current stun
if(updating)
update_canmove()
return TRUE
/mob/proc/SetStunned(amount, updating = 1, ignore_canstun = 0) //if you REALLY need to set stun to a set amount without the whole "can't go below current stunned"
if(status_flags & CANSTUN || ignore_canstun)
stunned = max(amount,0)
if(updating)
update_canmove()
return TRUE
/mob/proc/AdjustStunned(amount, updating = 1, ignore_canstun = 0)
if(status_flags & CANSTUN || ignore_canstun)
stunned = max(stunned + amount,0)
if(updating)
update_canmove()
return TRUE
/////////////////////////////////// WEAKENED ////////////////////////////////////
@@ -31,18 +33,21 @@
weakened = max(max(weakened,amount),0)
if(updating)
update_canmove() //updates lying, canmove and icons
return TRUE
/mob/proc/SetWeakened(amount, updating = 1, ignore_canweaken = 0)
if(status_flags & CANWEAKEN)
weakened = max(amount,0)
if(updating)
update_canmove() //updates lying, canmove and icons
return TRUE
/mob/proc/AdjustWeakened(amount, updating = 1, ignore_canweaken = 0)
if((status_flags & CANWEAKEN) || ignore_canweaken)
weakened = max(weakened + amount,0)
if(updating)
update_canmove() //updates lying, canmove and icons
return TRUE
/////////////////////////////////// PARALYSIS ////////////////////////////////////
@@ -53,6 +58,7 @@
if((!old_paralysis && paralysis) || (old_paralysis && !paralysis))
if(updating)
update_stat()
return TRUE
/mob/proc/SetParalysis(amount, updating = 1, ignore_canparalyse = 0)
if(status_flags & CANPARALYSE || ignore_canparalyse)
@@ -61,6 +67,7 @@
if((!old_paralysis && paralysis) || (old_paralysis && !paralysis))
if(updating)
update_stat()
return TRUE
/mob/proc/AdjustParalysis(amount, updating = 1, ignore_canparalyse = 0)
if(status_flags & CANPARALYSE || ignore_canparalyse)
@@ -69,6 +76,7 @@
if((!old_paralysis && paralysis) || (old_paralysis && !paralysis))
if(updating)
update_stat()
return TRUE
/////////////////////////////////// SLEEPING ////////////////////////////////////