mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Clockcult fixes (#24313)
* Clockcult fixes * Silicons had identical stun procs for some reason * oh. * proper!
This commit is contained in:
@@ -98,3 +98,5 @@ var/global/list/all_scripture = list() //a list containing scripture instances;
|
|||||||
#define PROSELYTIZER_REPAIR_PER_TICK 4 //how much a proselytizer repairs each tick, and also how many deciseconds each tick is
|
#define PROSELYTIZER_REPAIR_PER_TICK 4 //how much a proselytizer repairs each tick, and also how many deciseconds each tick is
|
||||||
|
|
||||||
#define OCULAR_WARDEN_EXCLUSION_RANGE 3 //the range at which ocular wardens cannot be placed near other ocular wardens
|
#define OCULAR_WARDEN_EXCLUSION_RANGE 3 //the range at which ocular wardens cannot be placed near other ocular wardens
|
||||||
|
|
||||||
|
#define RATVARIAN_SPEAR_DURATION 1800 //how long ratvarian spears last; defaults to 3 minutes
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
targetsjudged++
|
targetsjudged++
|
||||||
L.adjustBruteLoss(10)
|
L.adjustBruteLoss(10)
|
||||||
add_logs(user, L, "struck with a judicial blast")
|
add_logs(user, L, "struck with a judicial blast")
|
||||||
user << "<span class='brass'><b>[targetsjudged ? "Successfully judged <span class='neovgre'>[targetsjudged]</span>":"Judged no"] heretic[!targetsjudged || targetsjudged > 1 ? "s":""].</b></span>"
|
user << "<span class='brass'><b>[targetsjudged ? "Successfully judged <span class='neovgre'>[targetsjudged]</span>":"Judged no"] heretic[targetsjudged == 1 ? "":"s"].</b></span>"
|
||||||
sleep(3) //so the animation completes properly
|
sleep(3) //so the animation completes properly
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,8 @@
|
|||||||
throwforce = initial(throwforce)
|
throwforce = initial(throwforce)
|
||||||
armour_penetration = 0
|
armour_penetration = 0
|
||||||
clockwork_desc = "A powerful spear of Ratvarian making. It's more effective against enemy cultists and silicons, though it won't last for long."
|
clockwork_desc = "A powerful spear of Ratvarian making. It's more effective against enemy cultists and silicons, though it won't last for long."
|
||||||
timerid = addtimer(CALLBACK(src, .proc/break_spear), 600, TIMER_STOPPABLE)
|
deltimer(timerid)
|
||||||
|
timerid = addtimer(CALLBACK(src, .proc/break_spear), RATVARIAN_SPEAR_DURATION, TIMER_STOPPABLE)
|
||||||
|
|
||||||
/obj/item/clockwork/ratvarian_spear/cyborg/ratvar_act() //doesn't break!
|
/obj/item/clockwork/ratvarian_spear/cyborg/ratvar_act() //doesn't break!
|
||||||
if(ratvar_awakens)
|
if(ratvar_awakens)
|
||||||
|
|||||||
@@ -52,9 +52,12 @@
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
/obj/item/device/mmi/posibrain/soul_vessel/attack(mob/living/target, mob/living/carbon/human/user)
|
/obj/item/device/mmi/posibrain/soul_vessel/attack(mob/living/target, mob/living/carbon/human/user)
|
||||||
if(!is_servant_of_ratvar(user) || !ishuman(target) || used || (brainmob && brainmob.key))
|
if(!is_servant_of_ratvar(user) || !ishuman(target))
|
||||||
..()
|
..()
|
||||||
return
|
return
|
||||||
|
if(used || (brainmob && brainmob.key))
|
||||||
|
user << "<span class='nezbere'>\"This vessel is filled, friend. Provide it with a body.\"</span>"
|
||||||
|
return
|
||||||
if(is_servant_of_ratvar(target))
|
if(is_servant_of_ratvar(target))
|
||||||
user << "<span class='nezbere'>\"It would be more wise to revive your allies, friend.\"</span>"
|
user << "<span class='nezbere'>\"It would be more wise to revive your allies, friend.\"</span>"
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -166,7 +166,7 @@
|
|||||||
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS
|
check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS
|
||||||
buttontooltipstyle = "clockcult"
|
buttontooltipstyle = "clockcult"
|
||||||
var/cooldown = 0
|
var/cooldown = 0
|
||||||
var/base_cooldown = 1800
|
var/base_cooldown = RATVARIAN_SPEAR_DURATION
|
||||||
|
|
||||||
/datum/action/innate/function_call/IsAvailable()
|
/datum/action/innate/function_call/IsAvailable()
|
||||||
if(!is_servant_of_ratvar(owner) || cooldown > world.time)
|
if(!is_servant_of_ratvar(owner) || cooldown > world.time)
|
||||||
@@ -181,9 +181,7 @@
|
|||||||
var/obj/item/clockwork/ratvarian_spear/R = new(get_turf(usr))
|
var/obj/item/clockwork/ratvarian_spear/R = new(get_turf(usr))
|
||||||
owner.put_in_hands(R)
|
owner.put_in_hands(R)
|
||||||
if(!ratvar_awakens)
|
if(!ratvar_awakens)
|
||||||
R.clockwork_desc = "A powerful spear of Ratvarian making. It's more effective against enemy cultists and silicons, though it won't last for long."
|
|
||||||
owner << "<span class='warning'>Your spear begins to break down in this plane of existence. You can't use it for long!</span>"
|
owner << "<span class='warning'>Your spear begins to break down in this plane of existence. You can't use it for long!</span>"
|
||||||
R.timerid = addtimer(CALLBACK(R, /obj/item/clockwork/ratvarian_spear.proc/break_spear), base_cooldown, TIMER_STOPPABLE)
|
|
||||||
cooldown = base_cooldown + world.time
|
cooldown = base_cooldown + world.time
|
||||||
owner.update_action_buttons_icon()
|
owner.update_action_buttons_icon()
|
||||||
addtimer(CALLBACK(src, .proc/update_actions), base_cooldown)
|
addtimer(CALLBACK(src, .proc/update_actions), base_cooldown)
|
||||||
|
|||||||
@@ -5,10 +5,16 @@
|
|||||||
/////////////////////////////////// STUNNED ////////////////////////////////////
|
/////////////////////////////////// STUNNED ////////////////////////////////////
|
||||||
|
|
||||||
/mob/living/carbon/alien/Stun(amount, updating = 1, ignore_canstun = 0)
|
/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(!.)
|
||||||
if(updating)
|
move_delay_add = min(move_delay_add + round(amount / 2), 10) //a maximum delay of 10
|
||||||
update_canmove()
|
|
||||||
else
|
/mob/living/carbon/alien/SetStunned(amount, updating = 1, ignore_canstun = 0)
|
||||||
// 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)
|
||||||
|
|
||||||
|
/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)
|
/mob/living/carbon/human/Stun(amount, updating = 1, ignore_canstun = 0)
|
||||||
amount = dna.species.spec_stun(src,amount)
|
amount = dna.species.spec_stun(src,amount)
|
||||||
..()
|
return ..()
|
||||||
|
|
||||||
/mob/living/carbon/human/Weaken(amount, updating = 1, ignore_canstun = 0)
|
/mob/living/carbon/human/Weaken(amount, updating = 1, ignore_canstun = 0)
|
||||||
amount = dna.species.spec_stun(src,amount)
|
amount = dna.species.spec_stun(src,amount)
|
||||||
..()
|
return ..()
|
||||||
|
|
||||||
/mob/living/carbon/human/cure_husk()
|
/mob/living/carbon/human/cure_husk()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
@@ -6,42 +6,36 @@
|
|||||||
/////////////////////////////////// STUNNED ////////////////////////////////////
|
/////////////////////////////////// STUNNED ////////////////////////////////////
|
||||||
|
|
||||||
/mob/living/silicon/Stun(amount, updating = 1, ignore_canstun = 0)
|
/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)
|
||||||
if(updating)
|
update_stat()
|
||||||
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)
|
/mob/living/silicon/AdjustStunned(amount, updating = 1, ignore_canstun = 0)
|
||||||
if(status_flags & CANSTUN || ignore_canstun)
|
. = ..()
|
||||||
stunned = max(stunned + amount,0)
|
if(. && updating)
|
||||||
if(updating)
|
update_stat()
|
||||||
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()
|
|
||||||
|
|
||||||
/////////////////////////////////// WEAKENED ////////////////////////////////////
|
/////////////////////////////////// WEAKENED ////////////////////////////////////
|
||||||
|
|
||||||
/mob/living/silicon/Weaken(amount, updating = 1, ignore_canweaken = 0)
|
/mob/living/silicon/Weaken(amount, updating = 1, ignore_canweaken = 0)
|
||||||
if(status_flags & CANWEAKEN || ignore_canweaken)
|
. = ..()
|
||||||
weakened = max(max(weakened,amount),0)
|
if(. && updating)
|
||||||
if(updating)
|
update_stat()
|
||||||
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()
|
|
||||||
|
|
||||||
/mob/living/silicon/SetWeakened(amount, updating = 1, ignore_canweaken = 0)
|
/mob/living/silicon/SetWeakened(amount, updating = 1, ignore_canweaken = 0)
|
||||||
if(status_flags & CANWEAKEN || ignore_canweaken)
|
. = ..()
|
||||||
weakened = max(amount,0)
|
if(. && updating)
|
||||||
if(updating)
|
update_stat()
|
||||||
update_stat()
|
|
||||||
|
/mob/living/silicon/AdjustWeakened(amount, updating = 1, ignore_canweaken = 0)
|
||||||
|
. = ..()
|
||||||
|
if(. && updating)
|
||||||
|
update_stat()
|
||||||
|
|
||||||
/////////////////////////////////// EAR DAMAGE ////////////////////////////////////
|
/////////////////////////////////// EAR DAMAGE ////////////////////////////////////
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
"visible_message" = message, "self_message" = self_message, "examine_message" = examine_message)
|
"visible_message" = message, "self_message" = self_message, "examine_message" = examine_message)
|
||||||
|
|
||||||
/mob/living/Stun(amount, updating = 1, ignore_canstun = 0)
|
/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/priority_absorb_key
|
||||||
var/highest_priority
|
var/highest_priority
|
||||||
for(var/i in stun_absorption)
|
for(var/i in stun_absorption)
|
||||||
@@ -49,12 +49,12 @@
|
|||||||
src << "<span class='boldwarning'>[priority_absorb_key["self_message"]]</span>"
|
src << "<span class='boldwarning'>[priority_absorb_key["self_message"]]</span>"
|
||||||
priority_absorb_key["stuns_absorbed"] += amount
|
priority_absorb_key["stuns_absorbed"] += amount
|
||||||
return 0
|
return 0
|
||||||
..()
|
return ..()
|
||||||
|
|
||||||
///////////////////////////////// WEAKEN /////////////////////////////////////
|
///////////////////////////////// WEAKEN /////////////////////////////////////
|
||||||
|
|
||||||
/mob/living/Weaken(amount, updating = 1, ignore_canweaken = 0)
|
/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/priority_absorb_key
|
||||||
var/highest_priority
|
var/highest_priority
|
||||||
for(var/i in stun_absorption)
|
for(var/i in stun_absorption)
|
||||||
@@ -71,4 +71,4 @@
|
|||||||
src << "<span class='boldwarning'>[priority_absorb_key["self_message"]]</span>"
|
src << "<span class='boldwarning'>[priority_absorb_key["self_message"]]</span>"
|
||||||
priority_absorb_key["stuns_absorbed"] += amount
|
priority_absorb_key["stuns_absorbed"] += amount
|
||||||
return 0
|
return 0
|
||||||
..()
|
return ..()
|
||||||
@@ -3,7 +3,6 @@
|
|||||||
//The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness, ear damage,
|
//The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness, ear damage,
|
||||||
// eye damage, eye_blind, eye_blurry, druggy, BLIND disability, and NEARSIGHT disability.
|
// eye damage, eye_blind, eye_blurry, druggy, BLIND disability, and NEARSIGHT disability.
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////// STUNNED ////////////////////////////////////
|
/////////////////////////////////// STUNNED ////////////////////////////////////
|
||||||
|
|
||||||
/mob/proc/Stun(amount, updating = 1, ignore_canstun = 0)
|
/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
|
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)
|
if(updating)
|
||||||
update_canmove()
|
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"
|
/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)
|
if(status_flags & CANSTUN || ignore_canstun)
|
||||||
stunned = max(amount,0)
|
stunned = max(amount,0)
|
||||||
if(updating)
|
if(updating)
|
||||||
update_canmove()
|
update_canmove()
|
||||||
|
return TRUE
|
||||||
|
|
||||||
/mob/proc/AdjustStunned(amount, updating = 1, ignore_canstun = 0)
|
/mob/proc/AdjustStunned(amount, updating = 1, ignore_canstun = 0)
|
||||||
if(status_flags & CANSTUN || ignore_canstun)
|
if(status_flags & CANSTUN || ignore_canstun)
|
||||||
stunned = max(stunned + amount,0)
|
stunned = max(stunned + amount,0)
|
||||||
if(updating)
|
if(updating)
|
||||||
update_canmove()
|
update_canmove()
|
||||||
|
return TRUE
|
||||||
|
|
||||||
/////////////////////////////////// WEAKENED ////////////////////////////////////
|
/////////////////////////////////// WEAKENED ////////////////////////////////////
|
||||||
|
|
||||||
@@ -31,18 +33,21 @@
|
|||||||
weakened = max(max(weakened,amount),0)
|
weakened = max(max(weakened,amount),0)
|
||||||
if(updating)
|
if(updating)
|
||||||
update_canmove() //updates lying, canmove and icons
|
update_canmove() //updates lying, canmove and icons
|
||||||
|
return TRUE
|
||||||
|
|
||||||
/mob/proc/SetWeakened(amount, updating = 1, ignore_canweaken = 0)
|
/mob/proc/SetWeakened(amount, updating = 1, ignore_canweaken = 0)
|
||||||
if(status_flags & CANWEAKEN)
|
if(status_flags & CANWEAKEN)
|
||||||
weakened = max(amount,0)
|
weakened = max(amount,0)
|
||||||
if(updating)
|
if(updating)
|
||||||
update_canmove() //updates lying, canmove and icons
|
update_canmove() //updates lying, canmove and icons
|
||||||
|
return TRUE
|
||||||
|
|
||||||
/mob/proc/AdjustWeakened(amount, updating = 1, ignore_canweaken = 0)
|
/mob/proc/AdjustWeakened(amount, updating = 1, ignore_canweaken = 0)
|
||||||
if((status_flags & CANWEAKEN) || ignore_canweaken)
|
if((status_flags & CANWEAKEN) || ignore_canweaken)
|
||||||
weakened = max(weakened + amount,0)
|
weakened = max(weakened + amount,0)
|
||||||
if(updating)
|
if(updating)
|
||||||
update_canmove() //updates lying, canmove and icons
|
update_canmove() //updates lying, canmove and icons
|
||||||
|
return TRUE
|
||||||
|
|
||||||
/////////////////////////////////// PARALYSIS ////////////////////////////////////
|
/////////////////////////////////// PARALYSIS ////////////////////////////////////
|
||||||
|
|
||||||
@@ -53,6 +58,7 @@
|
|||||||
if((!old_paralysis && paralysis) || (old_paralysis && !paralysis))
|
if((!old_paralysis && paralysis) || (old_paralysis && !paralysis))
|
||||||
if(updating)
|
if(updating)
|
||||||
update_stat()
|
update_stat()
|
||||||
|
return TRUE
|
||||||
|
|
||||||
/mob/proc/SetParalysis(amount, updating = 1, ignore_canparalyse = 0)
|
/mob/proc/SetParalysis(amount, updating = 1, ignore_canparalyse = 0)
|
||||||
if(status_flags & CANPARALYSE || ignore_canparalyse)
|
if(status_flags & CANPARALYSE || ignore_canparalyse)
|
||||||
@@ -61,6 +67,7 @@
|
|||||||
if((!old_paralysis && paralysis) || (old_paralysis && !paralysis))
|
if((!old_paralysis && paralysis) || (old_paralysis && !paralysis))
|
||||||
if(updating)
|
if(updating)
|
||||||
update_stat()
|
update_stat()
|
||||||
|
return TRUE
|
||||||
|
|
||||||
/mob/proc/AdjustParalysis(amount, updating = 1, ignore_canparalyse = 0)
|
/mob/proc/AdjustParalysis(amount, updating = 1, ignore_canparalyse = 0)
|
||||||
if(status_flags & CANPARALYSE || ignore_canparalyse)
|
if(status_flags & CANPARALYSE || ignore_canparalyse)
|
||||||
@@ -69,6 +76,7 @@
|
|||||||
if((!old_paralysis && paralysis) || (old_paralysis && !paralysis))
|
if((!old_paralysis && paralysis) || (old_paralysis && !paralysis))
|
||||||
if(updating)
|
if(updating)
|
||||||
update_stat()
|
update_stat()
|
||||||
|
return TRUE
|
||||||
|
|
||||||
/////////////////////////////////// SLEEPING ////////////////////////////////////
|
/////////////////////////////////// SLEEPING ////////////////////////////////////
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user