Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into ninjasarecum
# Conflicts: # icons/obj/items_and_weapons.dmi
This commit is contained in:
@@ -10,35 +10,41 @@
|
||||
/obj/item/armorkit/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
// yeah have fun making subtypes and modifying the afterattack if you want to make variants
|
||||
// idiot
|
||||
// - hatter
|
||||
var/used = FALSE
|
||||
|
||||
if(isobj(target) && istype(target, /obj/item/clothing/under))
|
||||
var/obj/item/clothing/under/C = target
|
||||
if(C.armor.melee < 10)
|
||||
C.armor.melee = 10
|
||||
if(C.damaged_clothes)
|
||||
to_chat(user,"<span class='warning'>You should repair the damage done to [C] first.</span>")
|
||||
return
|
||||
if(C.attached_accessory)
|
||||
to_chat(user,"<span class='warning'>Kind of hard to sew around [C.attached_accessory].</span>")
|
||||
return
|
||||
if(C.armor.getRating("melee") < 10)
|
||||
C.armor = C.armor.setRating("melee" = 10)
|
||||
used = TRUE
|
||||
if(C.armor.laser < 10)
|
||||
C.armor.laser = 10
|
||||
if(C.armor.getRating("laser") < 10)
|
||||
C.armor = C.armor.setRating("laser" = 10)
|
||||
used = TRUE
|
||||
if(C.armor.fire < 40)
|
||||
C.armor.fire = 40
|
||||
if(C.armor.getRating("fire") < 40)
|
||||
C.armor = C.armor.setRating("fire" = 40)
|
||||
used = TRUE
|
||||
if(C.armor.acid < 10)
|
||||
C.armor.acid = 10
|
||||
if(C.armor.getRating("acid") < 10)
|
||||
C.armor = C.armor.setRating("acid" = 10)
|
||||
used = TRUE
|
||||
if(C.armor.bomb < 5)
|
||||
C.armor.bomb = 5
|
||||
if(C.armor.getRating("bomb") < 5)
|
||||
C.armor = C.armor.setRating("bomb" = 5)
|
||||
used = TRUE
|
||||
|
||||
if(used)
|
||||
user.visible_message("<span class = 'notice'>[user] uses [src] on [C], reinforcing it and tossing the empty case away afterwards.</span>", \
|
||||
"<span class = 'notice'>You reinforce [C] with [src], making it a little more protective! You toss the empty casing away afterwards.</span>")
|
||||
C.name = "durathread [C.name]" // this disappears if it gets repaired, which is annoying
|
||||
user.visible_message("<span class = 'notice'>[user] reinforces [C] with [src].</span>", \
|
||||
"<span class = 'notice'>You reinforce [C] with [src], making it as protective as a durathread jumpsuit.</span>")
|
||||
C.name = "durathread [C.name]"
|
||||
C.upgrade_prefix = "durathread" // god i hope this works
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class = 'notice'>You stare at [src] and [C], coming to the conclusion that you probably don't need to reinforce it any further.")
|
||||
to_chat(user, "<span class = 'notice'>You don't need to reinforce [C] any further.")
|
||||
return
|
||||
else
|
||||
return
|
||||
|
||||
@@ -245,6 +245,9 @@
|
||||
slowdown = 7
|
||||
breakouttime = 300 //Deciseconds = 30s = 0.5 minute
|
||||
|
||||
/obj/item/restraints/legcuffs/proc/on_removed()
|
||||
return
|
||||
|
||||
/obj/item/restraints/legcuffs/beartrap
|
||||
name = "bear trap"
|
||||
throw_speed = 1
|
||||
@@ -376,4 +379,8 @@
|
||||
icon_state = "ebola"
|
||||
hitsound = 'sound/weapons/taserhit.ogg'
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
breakouttime = 60
|
||||
breakouttime = 25
|
||||
|
||||
/obj/item/restraints/legcuffs/bola/energy/on_removed()
|
||||
do_sparks(1, TRUE, src)
|
||||
qdel(src)
|
||||
|
||||
@@ -15,13 +15,16 @@
|
||||
var/ignore_holy_water = FALSE
|
||||
|
||||
/datum/antagonist/clockcult/silent
|
||||
name = "Silent Clock Cultist"
|
||||
silent = TRUE
|
||||
show_in_antagpanel = FALSE //internal
|
||||
|
||||
/datum/antagonist/clockcult/neutered
|
||||
name = "Neutered Clock Cultist"
|
||||
neutered = TRUE
|
||||
|
||||
/datum/antagonist/clockcult/neutered/traitor
|
||||
name = "Traitor Clock Cultist"
|
||||
ignore_eligibility_check = TRUE
|
||||
ignore_holy_water = TRUE
|
||||
show_in_roundend = FALSE
|
||||
@@ -185,7 +188,7 @@
|
||||
|
||||
|
||||
/datum/antagonist/clockcult/admin_add(datum/mind/new_owner,mob/admin)
|
||||
add_servant_of_ratvar(new_owner.current, TRUE)
|
||||
add_servant_of_ratvar(new_owner.current, TRUE, override_type = type)
|
||||
message_admins("[key_name_admin(admin)] has made [new_owner.current] into a servant of Ratvar.")
|
||||
log_admin("[key_name(admin)] has made [new_owner.current] into a servant of Ratvar.")
|
||||
|
||||
|
||||
@@ -19,9 +19,11 @@
|
||||
var/ignore_holy_water = FALSE
|
||||
|
||||
/datum/antagonist/cult/neutered
|
||||
name = "Neutered Cultist"
|
||||
neutered = TRUE
|
||||
|
||||
/datum/antagonist/cult/neutered/traitor
|
||||
name = "Traitor Cultist"
|
||||
ignore_eligibility_checks = TRUE
|
||||
ignore_holy_water = TRUE
|
||||
show_in_roundend = FALSE
|
||||
|
||||
@@ -271,7 +271,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
loadout_data["SAVE_[i]"] = list()
|
||||
for(var/some_gear_item in saved_loadout_paths)
|
||||
if(!ispath(text2path(some_gear_item)))
|
||||
message_admins("Failed to copy item [some_gear_item] to new loadout system when migrating from version [current_version] to 40, issue: item is not a path")
|
||||
log_game("Failed to copy item [some_gear_item] to new loadout system when migrating from version [current_version] to 40, issue: item is not a path")
|
||||
continue
|
||||
var/datum/gear/gear_item = text2path(some_gear_item)
|
||||
if(!(initial(gear_item.loadout_flags) & LOADOUT_CAN_COLOR_POLYCHROMIC))
|
||||
|
||||
@@ -31,6 +31,9 @@
|
||||
// What items can be consumed to repair this clothing (must by an /obj/item/stack)
|
||||
var/repairable_by = /obj/item/stack/sheet/cloth
|
||||
|
||||
// has this item been upgraded by an upgrade kit (see: durathread armor kits)
|
||||
var/upgrade_prefix
|
||||
|
||||
//Var modification - PLEASE be careful with this I know who you are and where you live
|
||||
var/list/user_vars_to_edit //VARNAME = VARVALUE eg: "name" = "butts"
|
||||
var/list/user_vars_remembered //Auto built by the above + dropped() + equipped()
|
||||
@@ -120,6 +123,8 @@
|
||||
update_clothes_damaged_state(CLOTHING_PRISTINE)
|
||||
obj_integrity = max_integrity
|
||||
name = initial(name) // remove "tattered" or "shredded" if there's a prefix
|
||||
if(upgrade_prefix)
|
||||
name = upgrade_prefix + " " + initial(name)
|
||||
body_parts_covered = initial(body_parts_covered)
|
||||
slot_flags = initial(slot_flags)
|
||||
damage_by_parts = null
|
||||
|
||||
@@ -32,6 +32,9 @@
|
||||
|
||||
/obj/item/clothing/under/attackby(obj/item/I, mob/user, params)
|
||||
if((has_sensor == BROKEN_SENSORS) && istype(I, /obj/item/stack/cable_coil))
|
||||
if(damaged_clothes)
|
||||
to_chat(user,"<span class='warning'>You should repair the damage done to [src] first.</span>")
|
||||
return 0
|
||||
var/obj/item/stack/cable_coil/C = I
|
||||
I.use_tool(src, user, 0, 1)
|
||||
has_sensor = HAS_SENSORS
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
maxHealth = 25
|
||||
health = 25
|
||||
|
||||
can_ventcrawl = TRUE
|
||||
|
||||
var/amount_grown = 0
|
||||
var/max_grown = 100
|
||||
var/time_of_birth
|
||||
|
||||
@@ -434,6 +434,9 @@
|
||||
legcuffed.forceMove(drop_location())
|
||||
legcuffed = null
|
||||
I.dropped(src)
|
||||
if(istype(I, /obj/item/restraints/legcuffs))
|
||||
var/obj/item/restraints/legcuffs/lgcf = I
|
||||
lgcf.on_removed()
|
||||
update_inv_legcuffed()
|
||||
return
|
||||
else
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#define COOLDOWN_STUN 1200
|
||||
#define COOLDOWN_KNOCKDOWN 600
|
||||
#define COOLDOWN_DAMAGE 600
|
||||
#define COOLDOWN_MEME 300
|
||||
#define COOLDOWN_NONE 100
|
||||
@@ -213,7 +214,6 @@
|
||||
|
||||
var/static/regex/stun_words = regex("stop|wait|stand still|hold on|halt")
|
||||
var/static/regex/knockdown_words = regex("drop|fall|trip|knockdown")
|
||||
var/static/regex/sleep_words = regex("sleep|slumber|rest")
|
||||
var/static/regex/vomit_words = regex("vomit|throw up|sick")
|
||||
var/static/regex/silence_words = regex("shut up|silence|be silent|ssh|quiet|hush")
|
||||
var/static/regex/hallucinate_words = regex("see the truth|hallucinate")
|
||||
@@ -264,26 +264,20 @@
|
||||
cooldown = COOLDOWN_STUN
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
L.Stun(60 * power_multiplier)
|
||||
L.Stagger(60 * power_multiplier)
|
||||
|
||||
//KNOCKDOWN
|
||||
else if(findtext(message, knockdown_words))
|
||||
cooldown = COOLDOWN_STUN
|
||||
cooldown = COOLDOWN_KNOCKDOWN
|
||||
for(var/V in listeners)
|
||||
var/mob/living/L = V
|
||||
L.DefaultCombatKnockdown(60 * power_multiplier)
|
||||
|
||||
//SLEEP
|
||||
else if((findtext(message, sleep_words)))
|
||||
cooldown = COOLDOWN_STUN
|
||||
for(var/mob/living/carbon/C in listeners)
|
||||
C.Sleeping(40 * power_multiplier)
|
||||
L.DefaultCombatKnockdown()
|
||||
|
||||
//VOMIT
|
||||
else if((findtext(message, vomit_words)))
|
||||
cooldown = COOLDOWN_STUN
|
||||
cooldown = COOLDOWN_DAMAGE
|
||||
for(var/mob/living/carbon/C in listeners)
|
||||
C.vomit(10 * power_multiplier, distance = power_multiplier)
|
||||
C.vomit(10 * power_multiplier, distance = power_multiplier, stun = FALSE)
|
||||
|
||||
//SILENCE
|
||||
else if((findtext(message, silence_words)))
|
||||
|
||||
Reference in New Issue
Block a user