Clockcult fixes (#24313)

* Clockcult fixes

* Silicons had identical stun procs for some reason

* oh.

* proper!
This commit is contained in:
Joan Lung
2017-02-23 15:46:35 -05:00
committed by oranges
parent b0a20bf6ef
commit d9149849b0
10 changed files with 60 additions and 48 deletions

View File

@@ -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)

View File

@@ -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()
. = ..()

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 ////////////////////////////////////

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 ..()