mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
Job Perks - True Professionals (#29478)
* ddsadsa ddsadsa * moderate again * revert * medical first steps * more work * lots more work done * more progress * finished up * attack chain linter * attack chain update * attack chain work * fixes + chemist update * gives comments
This commit is contained in:
@@ -21,21 +21,27 @@
|
||||
'sound/effects/pageturn3.ogg'
|
||||
)
|
||||
|
||||
/obj/item/book/granter/attack_self__legacy__attackchain(mob/living/user)
|
||||
/obj/item/book/granter/Initialize(mapload, datum/cachedbook/CB, _copyright, _protected)
|
||||
. = ..()
|
||||
RegisterSignal(src, COMSIG_ACTIVATE_SELF, TYPE_PROC_REF(/datum, signal_cancel_activate_self))
|
||||
|
||||
/obj/item/book/granter/activate_self(mob/user)
|
||||
if(..())
|
||||
return
|
||||
if(reading)
|
||||
to_chat(user, "<span class='warning'>You're already reading this!</span>")
|
||||
return FALSE
|
||||
return FINISH_ATTACK
|
||||
if(!user.has_vision())
|
||||
to_chat(user, "<span class='warning'>You are blind and can't read anything!</span>")
|
||||
return FALSE
|
||||
return FINISH_ATTACK
|
||||
if(!isliving(user))
|
||||
return FALSE
|
||||
return FINISH_ATTACK
|
||||
if(!can_learn(user))
|
||||
return FALSE
|
||||
return FINISH_ATTACK
|
||||
|
||||
if(uses <= 0)
|
||||
recoil(user)
|
||||
return FALSE
|
||||
return FINISH_ATTACK
|
||||
|
||||
on_reading_start(user)
|
||||
reading = TRUE
|
||||
@@ -43,14 +49,12 @@
|
||||
if(!turn_page(user))
|
||||
on_reading_stopped(user)
|
||||
reading = FALSE
|
||||
return
|
||||
return CONTINUE_ATTACK
|
||||
if(do_after(user, reading_time, src))
|
||||
uses--
|
||||
on_reading_finished(user)
|
||||
reading = FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
/// Called when the user starts to read the granter.
|
||||
/obj/item/book/granter/proc/on_reading_start(mob/living/user)
|
||||
to_chat(user, "<span class='notice'>You start reading [name]...</span>")
|
||||
|
||||
@@ -143,7 +143,8 @@
|
||||
INVOKE_ASYNC(src, PROC_REF(buckled_speed_move), user.buckled, direction)
|
||||
else
|
||||
user.newtonian_move(turn(direction, 180))
|
||||
|
||||
if(user.mind && HAS_TRAIT(user.mind, TRAIT_FIRE_FIGHTER))
|
||||
precision = TRUE
|
||||
var/turf/T = get_turf(A)
|
||||
var/turf/T1 = get_step(T, turn(direction, 90))
|
||||
var/turf/T2 = get_step(T, turn(direction, -90))
|
||||
|
||||
@@ -928,6 +928,17 @@
|
||||
title = "Space Law"
|
||||
wiki_article_title = "Space_law"
|
||||
|
||||
/obj/item/book/manual/wiki/security_space_law/imaginary
|
||||
name = "Imaginary Space Law Manual"
|
||||
desc = "A set of memorized Nanotrasen guidelines for keeping law and order on their space stations."
|
||||
flags = DROPDEL | ABSTRACT | NOBLUDGEON
|
||||
imaginary = TRUE
|
||||
|
||||
/obj/item/book/manual/wiki/security_space_law/imaginary/Initialize(mapload)
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_SKIP_EXAMINE, INNATE_TRAIT)
|
||||
ADD_TRAIT(src, TRAIT_NO_STRIP, INNATE_TRAIT)
|
||||
|
||||
/obj/item/book/manual/wiki/security_space_law/black
|
||||
name = "Space Law - Limited Edition"
|
||||
desc = "A leather-bound, immaculately-written copy of JUSTICE."
|
||||
@@ -958,6 +969,17 @@
|
||||
title = "Legal Standard Operating Procedures"
|
||||
wiki_article_title = "Legal_Standard_Operating_Procedure"
|
||||
|
||||
/obj/item/book/manual/wiki/sop_legal/imaginary
|
||||
name = "Imaginary Legal SOP Manual"
|
||||
desc = "A set of memorized Nanotrasen guidelines aiming at the safe conduct of all legal activities."
|
||||
flags = DROPDEL | ABSTRACT | NOBLUDGEON
|
||||
imaginary = TRUE
|
||||
|
||||
/obj/item/book/manual/wiki/sop_legal/imaginary/Initialize(mapload)
|
||||
. = ..()
|
||||
ADD_TRAIT(src, TRAIT_SKIP_EXAMINE, INNATE_TRAIT)
|
||||
ADD_TRAIT(src, TRAIT_NO_STRIP, INNATE_TRAIT)
|
||||
|
||||
/obj/item/book/manual/wiki/sop_supply
|
||||
name = "Supply Standard Operating Procedures"
|
||||
desc = "A set of guidelines aiming at the safe conduct of all supply activities."
|
||||
|
||||
@@ -71,7 +71,10 @@
|
||||
if(world.time > mop_sound_cooldown)
|
||||
playsound(loc, pick('sound/weapons/mopping1.ogg', 'sound/weapons/mopping2.ogg'), 30, TRUE, -1)
|
||||
mop_sound_cooldown = world.time + MOP_SOUND_CD
|
||||
target.cleaning_act(user, src, mopspeed, text_verb = "mop", text_description = ".")
|
||||
if(user.mind && HAS_TRAIT(user, TRAIT_JANITOR))
|
||||
target.cleaning_act(user, src, mopspeed / 2, text_verb = "mop", text_description = ".")
|
||||
else
|
||||
target.cleaning_act(user, src, mopspeed, text_verb = "mop", text_description = ".")
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
/obj/item/mop/can_clean()
|
||||
|
||||
@@ -218,30 +218,32 @@
|
||||
update_appearance()
|
||||
return TRUE
|
||||
|
||||
/obj/structure/closet/proc/close()
|
||||
/obj/structure/closet/proc/close(mob/user)
|
||||
if(!opened)
|
||||
return FALSE
|
||||
if(!can_close())
|
||||
return FALSE
|
||||
|
||||
var/itemcount = 0
|
||||
|
||||
var/temp_capacity = storage_capacity
|
||||
if(user && user.mind && HAS_TRAIT(user.mind, TRAIT_PACK_RAT))
|
||||
temp_capacity *= 1.5
|
||||
//Cham Projector Exception
|
||||
for(var/obj/effect/dummy/chameleon/AD in loc)
|
||||
if(itemcount >= storage_capacity)
|
||||
if(itemcount >= temp_capacity)
|
||||
break
|
||||
AD.forceMove(src)
|
||||
itemcount++
|
||||
|
||||
for(var/obj/item/I in loc)
|
||||
if(itemcount >= storage_capacity)
|
||||
if(itemcount >= temp_capacity)
|
||||
break
|
||||
if(!I.anchored)
|
||||
I.forceMove(src)
|
||||
itemcount++
|
||||
|
||||
for(var/mob/M in loc)
|
||||
if(itemcount >= storage_capacity)
|
||||
if(itemcount >= temp_capacity)
|
||||
break
|
||||
if(isobserver(M))
|
||||
continue
|
||||
@@ -264,7 +266,7 @@
|
||||
return TRUE
|
||||
|
||||
/obj/structure/closet/proc/toggle(mob/user)
|
||||
if(!(opened ? close() : open()))
|
||||
if(!(opened ? close(user) : open()))
|
||||
to_chat(user, "<span class='notice'>It won't budge!</span>")
|
||||
|
||||
/obj/structure/closet/proc/bust_open()
|
||||
@@ -498,7 +500,7 @@
|
||||
if(opened && can_close())
|
||||
target.forceMove(src)
|
||||
visible_message("<span class='danger'>[attacker] shoves [target] inside [src]!</span>", "<span class='warning'>You hear a thud, and something clangs shut.</span>")
|
||||
close()
|
||||
close(attacker)
|
||||
add_attack_logs(attacker, target, "shoved into [src]")
|
||||
return TRUE
|
||||
|
||||
|
||||
Reference in New Issue
Block a user