Merge branch 'master' into morefamstuff
This commit is contained in:
@@ -56,6 +56,8 @@ would spawn and follow the beaker, even if it is carried or thrown.
|
||||
/datum/effect_system/proc/generate_effect()
|
||||
if(holder)
|
||||
location = get_turf(holder)
|
||||
if(location.contents.len > 200) //Bandaid to prevent server crash exploit
|
||||
return
|
||||
var/obj/effect/E = new effect_type(location)
|
||||
total_effects++
|
||||
var/direction
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
for(var/turf/open/floor/earth in view(3,src))
|
||||
if(is_type_in_typecache(earth, blacklisted_glowshroom_turfs))
|
||||
continue
|
||||
if(!ownturf.CanAtmosPass(earth))
|
||||
if(!disease_air_spread_walk(ownturf, earth))
|
||||
continue
|
||||
if(spreadsIntoAdjacent || !locate(/obj/structure/glowshroom) in view(1,earth))
|
||||
possibleLocs += earth
|
||||
|
||||
@@ -536,12 +536,16 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
|
||||
callback = CALLBACK(src, .proc/after_throw, callback) //replace their callback with our own
|
||||
. = ..(target, range, speed, thrower, spin, diagonals_first, callback)
|
||||
|
||||
|
||||
/obj/item/proc/after_throw(datum/callback/callback)
|
||||
if (callback) //call the original callback
|
||||
. = callback.Invoke()
|
||||
throw_speed = initial(throw_speed) //explosions change this.
|
||||
item_flags &= ~IN_INVENTORY
|
||||
var/matrix/M = matrix(transform)
|
||||
M.Turn(rand(-170, 170))
|
||||
transform = M
|
||||
pixel_x = rand(-12, 12)
|
||||
pixel_y = rand(-12, 12)
|
||||
|
||||
/obj/item/proc/remove_item_from_storage(atom/newLoc) //please use this if you're going to snowflake an item out of a obj/item/storage
|
||||
if(!newLoc)
|
||||
|
||||
@@ -36,6 +36,7 @@ RLD
|
||||
var/no_ammo_message = "<span class='warning'>The \'Low Ammo\' light on the device blinks yellow.</span>"
|
||||
var/has_ammobar = FALSE //controls whether or not does update_icon apply ammo indicator overlays
|
||||
var/ammo_sections = 10 //amount of divisions in the ammo indicator overlay/number of ammo indicator states
|
||||
var/custom_range = 7
|
||||
|
||||
/obj/item/construction/Initialize()
|
||||
. = ..()
|
||||
@@ -75,6 +76,10 @@ RLD
|
||||
loaded = loadwithsheets(W, plasmarglassmultiplier*sheetmultiplier, user) //8 matter for one plasma rglass sheet
|
||||
else if(istype(W, /obj/item/stack/sheet/rglass))
|
||||
loaded = loadwithsheets(W, rglassmultiplier*sheetmultiplier, user) //6 matter for one rglass sheet
|
||||
else if(istype(W, /obj/item/stack/rods))
|
||||
loaded = loadwithsheets(W, sheetmultiplier * 0.5, user) // 2 matter for 1 rod, as 2 rods are produced from 1 metal
|
||||
else if(istype(W, /obj/item/stack/tile/plasteel))
|
||||
loaded = loadwithsheets(W, sheetmultiplier * 0.25, user) // 1 matter for 1 floortile, as 4 tiles are produced from 1 metal
|
||||
if(loaded)
|
||||
to_chat(user, "<span class='notice'>[src] now holds [matter]/[max_matter] matter-units.</span>")
|
||||
else
|
||||
@@ -119,7 +124,7 @@ RLD
|
||||
return .
|
||||
|
||||
/obj/item/construction/proc/range_check(atom/A, mob/user)
|
||||
if(!(A in view(7, get_turf(user))))
|
||||
if(!(A in range(custom_range, get_turf(user))))
|
||||
to_chat(user, "<span class='warning'>The \'Out of Range\' light on [src] blinks red.</span>")
|
||||
return FALSE
|
||||
else
|
||||
@@ -445,13 +450,23 @@ RLD
|
||||
matter = 160
|
||||
|
||||
/obj/item/construction/rcd/combat
|
||||
name = "industrial RCD"
|
||||
name = "Combat RCD"
|
||||
desc = "A device used to rapidly build and deconstruct. Reload with metal, plasteel, glass or compressed matter cartridges. This RCD has been upgraded to be able to remove Rwalls!"
|
||||
icon_state = "ircd"
|
||||
item_state = "ircd"
|
||||
max_matter = 500
|
||||
matter = 500
|
||||
canRturf = TRUE
|
||||
|
||||
/obj/item/construction/rcd/industrial
|
||||
name = "industrial RCD"
|
||||
icon_state = "ircd"
|
||||
item_state = "ircd"
|
||||
max_matter = 500
|
||||
matter = 500
|
||||
delay_mod = 0.6
|
||||
sheetmultiplier = 8
|
||||
|
||||
/obj/item/rcd_ammo
|
||||
name = "compressed matter cartridge"
|
||||
desc = "Highly compressed matter for the RCD."
|
||||
@@ -464,6 +479,8 @@ RLD
|
||||
var/ammoamt = 40
|
||||
|
||||
/obj/item/rcd_ammo/large
|
||||
name = "large compressed matter cartridge"
|
||||
desc = "Highly compressed matter for the RCD. Has four times the matter packed into the same space as a normal cartridge."
|
||||
materials = list(MAT_METAL=48000, MAT_GLASS=32000)
|
||||
ammoamt = 160
|
||||
|
||||
@@ -509,8 +526,9 @@ RLD
|
||||
icon_state = "rld-5"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
|
||||
matter = 200
|
||||
max_matter = 200
|
||||
matter = 500
|
||||
max_matter = 500
|
||||
sheetmultiplier = 16
|
||||
var/mode = LIGHT_MODE
|
||||
actions_types = list(/datum/action/item_action/pick_color)
|
||||
|
||||
@@ -521,7 +539,7 @@ RLD
|
||||
|
||||
var/walldelay = 10
|
||||
var/floordelay = 10
|
||||
var/decondelay = 15
|
||||
var/decondelay = 10
|
||||
|
||||
var/color_choice = null
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
/obj/item/flashlight/attack_self(mob/user)
|
||||
on = !on
|
||||
update_brightness(user)
|
||||
playsound(user, on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, 1)
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.UpdateButtonIcon()
|
||||
|
||||
@@ -42,6 +42,18 @@
|
||||
sprite_name = "miniFE"
|
||||
dog_fashion = null
|
||||
|
||||
/obj/item/extinguisher/mini/family
|
||||
name = "pocket fire extinguisher"
|
||||
desc = "A old fashen pocket fire extinguisher that has been modified with a larger water tank, and a small high-power sprayer. It feels cool to the touch and has a small humming to it..."
|
||||
icon_state = "miniFE0"
|
||||
item_state = "miniFE"
|
||||
throwforce = 1
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
force = 2
|
||||
max_water = 40
|
||||
power = 7
|
||||
cooling_power = 3
|
||||
|
||||
/obj/item/extinguisher/Initialize()
|
||||
. = ..()
|
||||
create_reagents(max_water)
|
||||
|
||||
@@ -11,12 +11,45 @@
|
||||
strip_delay = 80
|
||||
dog_fashion = null
|
||||
|
||||
// CITADEL CHANGES: More variants
|
||||
/obj/item/clothing/head/helmet/chaplain/bland
|
||||
icon_state = "knight_generic"
|
||||
item_state = "knight_generic"
|
||||
|
||||
/obj/item/clothing/head/helmet/chaplain/bland/horned
|
||||
name = "horned crusader helmet"
|
||||
desc = "Helfen, Wehren, Heilen."
|
||||
icon_state = "knight_horned"
|
||||
item_state = "knight_horned"
|
||||
|
||||
/obj/item/clothing/head/helmet/chaplain/bland/winged
|
||||
name = "winged crusader helmet"
|
||||
desc = "Helfen, Wehren, Heilen."
|
||||
icon_state = "knight_winged"
|
||||
item_state = "knight_winged"
|
||||
// CITADEL CHANGES ENDS HERE
|
||||
|
||||
/obj/item/clothing/suit/armor/riot/chaplain
|
||||
name = "crusader armour"
|
||||
desc = "God wills it!"
|
||||
icon_state = "knight_templar"
|
||||
item_state = "knight_templar"
|
||||
|
||||
// CITADEL CHANGES: More variants
|
||||
/obj/item/clothing/suit/armor/riot/chaplain/teutonic
|
||||
desc = "Help, Defend, Heal!"
|
||||
icon_state = "knight_teutonic"
|
||||
item_state = "knight_teutonic"
|
||||
|
||||
/obj/item/clothing/suit/armor/riot/chaplain/teutonic/alt
|
||||
icon_state = "knight_teutonic_alt"
|
||||
item_state = "knight_teutonic_alt"
|
||||
|
||||
/obj/item/clothing/suit/armor/riot/chaplain/hospitaller
|
||||
icon_state = "knight_hospitaller"
|
||||
item_state = "knight_hospitaller"
|
||||
// CITADEL CHANGES ENDS HERE
|
||||
|
||||
/obj/item/holybeacon
|
||||
name = "armaments beacon"
|
||||
desc = "Contains a set of armaments for the chaplain."
|
||||
@@ -60,6 +93,22 @@
|
||||
new /obj/item/clothing/head/helmet/chaplain(src)
|
||||
new /obj/item/clothing/suit/armor/riot/chaplain(src)
|
||||
|
||||
// CITADEL CHANGES: More Variants
|
||||
/obj/item/storage/box/holy/teutonic
|
||||
name = "Teutonic Kit"
|
||||
|
||||
/obj/item/storage/box/holy/teutonic/PopulateContents() // It just works
|
||||
pick(new /obj/item/clothing/head/helmet/chaplain/bland/horned(src), new /obj/item/clothing/head/helmet/chaplain/bland/winged(src))
|
||||
pick(new /obj/item/clothing/suit/armor/riot/chaplain/teutonic(src), new /obj/item/clothing/suit/armor/riot/chaplain/teutonic/alt(src))
|
||||
|
||||
/obj/item/storage/box/holy/hospitaller
|
||||
name = "Hospitaller Kit"
|
||||
|
||||
/obj/item/storage/box/holy/hospitaller/PopulateContents()
|
||||
new /obj/item/clothing/head/helmet/chaplain/bland(src)
|
||||
new /obj/item/clothing/suit/armor/riot/chaplain/hospitaller(src)
|
||||
// CITADEL CHANGES ENDS HERE
|
||||
|
||||
/obj/item/storage/box/holy/student
|
||||
name = "Profane Scholar Kit"
|
||||
|
||||
@@ -210,7 +259,7 @@
|
||||
if(QDELETED(src) || !choice || M.stat || !in_range(M, src) || M.restrained() || !M.canmove || reskinned)
|
||||
return
|
||||
|
||||
var/A = display_names[choice] // This needs to be on a separate var as list member access is not allowed for new
|
||||
var/A = display_names[choice] // This needs to be on a separate var as list member access is not allowed for new
|
||||
holy_weapon = new A
|
||||
|
||||
SSreligion.holy_weapon_type = holy_weapon.type
|
||||
|
||||
@@ -29,8 +29,12 @@
|
||||
if(target.mind.has_antag_datum(/datum/antagonist/rev/head) || target.mind.unconvertable)
|
||||
if(!silent)
|
||||
target.visible_message("<span class='warning'>[target] seems to resist the implant!</span>", "<span class='warning'>You feel something interfering with your mental conditioning, but you resist it!</span>")
|
||||
var/obj/item/implanter/I = loc
|
||||
removed(target, 1)
|
||||
qdel(src)
|
||||
if(istype(I))
|
||||
I.imp = null
|
||||
I.update_icon()
|
||||
return FALSE
|
||||
|
||||
var/datum/antagonist/rev/rev = target.mind.has_antag_datum(/datum/antagonist/rev)
|
||||
|
||||
@@ -176,3 +176,12 @@
|
||||
user.visible_message("<span class='suicide'>[user] begins flattening [user.p_their()] head with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
return BRUTELOSS
|
||||
/* Trays moved to /obj/item/storage/bag */
|
||||
|
||||
/obj/item/kitchen/knife/scimitar
|
||||
name = "Scimitar knife"
|
||||
desc = "A knife used to cleanly butcher. Its razor-sharp edge has been honed for butchering, but has been poorly maintained over the years."
|
||||
attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
|
||||
/obj/item/kitchen/knife/scimiar/Initialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/butchering, 90 - force, 100, force - 60) //bonus chance increases depending on force
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
var/mopping = 0
|
||||
var/mopcount = 0
|
||||
var/mopcap = 5
|
||||
var/mopspeed = 30
|
||||
var/stamusage = 5
|
||||
force_string = "robust... against germs"
|
||||
var/insertable = TRUE
|
||||
|
||||
@@ -39,6 +39,12 @@
|
||||
if(!proximity)
|
||||
return
|
||||
|
||||
var/mob/living/L = user
|
||||
|
||||
if(istype(L) && L.getStaminaLoss() >= STAMINA_SOFTCRIT)
|
||||
to_chat(user, "<span class='danger'>You're too exhausted for that.</span>")
|
||||
return
|
||||
|
||||
if(reagents.total_volume < 1)
|
||||
to_chat(user, "<span class='warning'>Your mop is dry!</span>")
|
||||
return
|
||||
@@ -49,11 +55,13 @@
|
||||
return
|
||||
|
||||
if(T)
|
||||
user.visible_message("[user] begins to clean \the [T] with [src].", "<span class='notice'>You begin to clean \the [T] with [src]...</span>")
|
||||
|
||||
if(do_after(user, src.mopspeed, target = T))
|
||||
to_chat(user, "<span class='notice'>You finish mopping.</span>")
|
||||
clean(T)
|
||||
user.visible_message("[user] cleans \the [T] with [src].", "<span class='notice'>You clean \the [T] with [src].</span>")
|
||||
clean(T)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.do_attack_animation(T, used_item = src)
|
||||
if(istype(L))
|
||||
L.adjustStaminaLossBuffered(stamusage)
|
||||
playsound(T, "slosh", 50, 1)
|
||||
|
||||
|
||||
/obj/effect/attackby(obj/item/I, mob/user, params)
|
||||
@@ -86,7 +94,7 @@
|
||||
force = 6
|
||||
throwforce = 8
|
||||
throw_range = 4
|
||||
mopspeed = 20
|
||||
stamusage = 2
|
||||
var/refill_enabled = TRUE //Self-refill toggle for when a janitor decides to mop with something other than water.
|
||||
var/refill_rate = 1 //Rate per process() tick mop refills itself
|
||||
var/refill_reagent = "water" //Determins what reagent to use for refilling, just in case someone wanted to make a HOLY MOP OF PURGING
|
||||
|
||||
@@ -56,22 +56,34 @@
|
||||
icon_state = "paint_neutral"
|
||||
|
||||
/obj/item/paint/anycolor/attack_self(mob/user)
|
||||
var/t1 = input(user, "Please select a color:", "Locking Computer", null) in list( "red", "blue", "green", "yellow", "violet", "black", "white")
|
||||
var/t1 = input(user, "Please select a color:", "Locking Computer", null) in list( "red", "pink", "blue", "cyan", "green", "lime", "yellow", "orange", "violet", "purple", "black", "gray", "white")
|
||||
if ((user.get_active_held_item() != src || user.stat || user.restrained()))
|
||||
return
|
||||
switch(t1)
|
||||
if("red")
|
||||
item_color = "C73232"
|
||||
if("pink")
|
||||
item_color = "FFC0CD"
|
||||
if("blue")
|
||||
item_color = "5998FF"
|
||||
if("cyan")
|
||||
item_color = "00FFFF"
|
||||
if("green")
|
||||
item_color = "2A9C3B"
|
||||
if("lime")
|
||||
item_color = "00FF00"
|
||||
if("yellow")
|
||||
item_color = "CFB52B"
|
||||
if("orange")
|
||||
item_color = "fFA700"
|
||||
if("violet")
|
||||
item_color = "AE4CCD"
|
||||
if("purple")
|
||||
item_color = "800080"
|
||||
if("white")
|
||||
item_color = "FFFFFF"
|
||||
if("gray")
|
||||
item_color = "808080"
|
||||
if("black")
|
||||
item_color = "333333"
|
||||
icon_state = "paint_[t1]"
|
||||
|
||||
@@ -486,13 +486,79 @@
|
||||
attack_verb = list("clawed", "hissed", "tail slapped")
|
||||
squeak_override = list('sound/weapons/slash.ogg' = 1)
|
||||
|
||||
/obj/item/toy/plush/lizardplushie/durgit
|
||||
icon_state = "durgit"
|
||||
item_state = "durgit"
|
||||
squeak_override = list('modular_citadel/sound/voice/weh.ogg' = 1) //Durgit's the origin of the sound
|
||||
|
||||
/obj/item/toy/plush/lizardplushie/rio
|
||||
icon_state = "rio"
|
||||
item_state = "rio"
|
||||
|
||||
/obj/item/toy/plush/lizardplushie/urinsu
|
||||
icon_state = "urinsu"
|
||||
item_state = "urinsu"
|
||||
|
||||
/obj/item/toy/plush/lizardplushie/arfrehn
|
||||
icon_state = "arfrehn"
|
||||
item_state = "arfrehn"
|
||||
|
||||
/obj/item/toy/plush/lizardplushie/soars
|
||||
icon_state = "soars"
|
||||
item_state = "soars"
|
||||
|
||||
/obj/item/toy/plush/lizardplushie/ghostie
|
||||
icon_state = "ghostie"
|
||||
item_state = "ghostie"
|
||||
|
||||
/obj/item/toy/plush/lizardplushie/amber
|
||||
icon_state = "amber"
|
||||
item_state = "amber"
|
||||
|
||||
/obj/item/toy/plush/lizardplushie/cyan
|
||||
icon_state = "cyan"
|
||||
item_state = "cyan"
|
||||
|
||||
/obj/item/toy/plush/lizardplushie/meena
|
||||
icon_state = "meena"
|
||||
item_state = "meena"
|
||||
|
||||
/obj/item/toy/plush/lizardplushie/stalks
|
||||
icon_state = "stalks"
|
||||
item_state = "stalks"
|
||||
|
||||
/obj/item/toy/plush/lizardplushie/kobold
|
||||
icon_state = "kobold"
|
||||
item_state = "kobold"
|
||||
|
||||
/obj/item/toy/plush/lizardplushie/gorgi
|
||||
icon_state = "gorgi"
|
||||
item_state = "gorgi"
|
||||
|
||||
/obj/item/toy/plush/lizardplushie/almaz
|
||||
icon_state = "almaz"
|
||||
item_state = "almaz"
|
||||
squeak_override = list('modular_citadel/sound/voice/raptor_purr.ogg' = 1)
|
||||
|
||||
/obj/item/toy/plush/snakeplushie
|
||||
name = "snake plushie"
|
||||
desc = "An adorable stuffed toy that resembles a snake. Not to be mistaken for the real thing."
|
||||
icon_state = "plushie_snake"
|
||||
item_state = "plushie_snake"
|
||||
attack_verb = list("bitten", "hissed", "tail slapped")
|
||||
squeak_override = list('sound/weapons/bite.ogg' = 1)
|
||||
squeak_override = list('sound/voice/lowHiss2.ogg' = 1)
|
||||
|
||||
/obj/item/toy/plush/snakeplushie/sasha
|
||||
icon_state = "sasha"
|
||||
item_state = "sasha"
|
||||
|
||||
/obj/item/toy/plush/snakeplushie/shay
|
||||
icon_state = "shay"
|
||||
item_state = "shay"
|
||||
|
||||
/obj/item/toy/plush/snakeplushie/vulken
|
||||
icon_state = "vulken"
|
||||
item_state = "vulken"
|
||||
|
||||
/obj/item/toy/plush/nukeplushie
|
||||
name = "operative plushie"
|
||||
@@ -517,6 +583,229 @@
|
||||
icon_state = "plushie_awake"
|
||||
item_state = "plushie_awake"
|
||||
|
||||
/obj/item/toy/plush/mothplushie
|
||||
name = "insect plushie"
|
||||
desc = "An adorable stuffed toy that resembles some kind of insect"
|
||||
icon_state = "cydia"
|
||||
item_state = "cydia"
|
||||
squeak_override = list('modular_citadel/sound/voice/mothsqueak.ogg' = 1)
|
||||
|
||||
/obj/item/toy/plush/mothplushie/bumble
|
||||
icon_state = "bumble"
|
||||
item_state = "bumble"
|
||||
|
||||
/obj/item/toy/plush/mothplushie/nameko
|
||||
icon_state = "nameko"
|
||||
item_state = "nameko"
|
||||
|
||||
/obj/item/toy/plush/mothplushie/suru
|
||||
icon_state = "suru"
|
||||
item_state = "suru"
|
||||
|
||||
/obj/item/toy/plush/xeno
|
||||
name = "xenohybrid plushie"
|
||||
desc = "An adorable stuffed toy that resmembles a xenomorphic crewmember."
|
||||
icon_state = "seras"
|
||||
item_state = "seras"
|
||||
squeak_override = list('sound/voice/hiss2.ogg' = 1)
|
||||
|
||||
/obj/item/toy/plush/lampplushie
|
||||
name = "lamp plushie"
|
||||
desc = "A toy lamp plushie, doesn't actually make light, but it still toggles on and off. Click clack!"
|
||||
icon_state = "plushie_lamp"
|
||||
item_state = "plushie_lamp"
|
||||
attack_verb = list("lit", "flickered", "flashed")
|
||||
squeak_override = list('sound/weapons/magout.ogg' = 1)
|
||||
|
||||
/obj/item/toy/plush/borgplushie
|
||||
name = "robot plushie"
|
||||
desc = "An adorable stuffed toy of a robot."
|
||||
icon_state = "securityk9"
|
||||
item_state = "securityk9"
|
||||
attack_verb = list("beeped", "booped", "pinged")
|
||||
squeak_override = list('sound/machines/beep.ogg' = 1)
|
||||
|
||||
/obj/item/toy/plush/borgplushie/medihound
|
||||
icon_state = "medihound"
|
||||
item_state = "medihound"
|
||||
|
||||
/obj/item/toy/plush/borgplushie/scrubpuppy
|
||||
icon_state = "scrubpuppy"
|
||||
item_state = "scrubpuppy"
|
||||
|
||||
/obj/item/toy/plush/borgplushie/seeking
|
||||
icon_state = "seeking"
|
||||
item_state = "seeking"
|
||||
|
||||
/obj/item/toy/plush/borgplushie/neeb
|
||||
icon_state = "neeb"
|
||||
item_state = "neeb"
|
||||
|
||||
/obj/item/toy/plush/bird
|
||||
name = "bird plushie"
|
||||
desc = "An adorable stuffed plushie that resembles an avian."
|
||||
icon_state = "sylas"
|
||||
item_state = "sylas"
|
||||
attack_verb = list("peeped", "beeped", "poofed")
|
||||
squeak_override = list('modular_citadel/sound/voice/peep.ogg' = 1)
|
||||
|
||||
/obj/item/toy/plush/bird/esela
|
||||
icon_state = "esela"
|
||||
item_state = "esela"
|
||||
|
||||
/obj/item/toy/plush/bird/jahonna
|
||||
icon_state = "jahonna"
|
||||
item_state = "jahonna"
|
||||
|
||||
/obj/item/toy/plush/bird/krick
|
||||
icon_state = "krick"
|
||||
item_state = "krick"
|
||||
|
||||
/obj/item/toy/plush/bird/birddi
|
||||
icon_state = "birddi"
|
||||
item_state = "birddi"
|
||||
|
||||
/obj/item/toy/plush/bird/jewel
|
||||
icon_state = "jewel"
|
||||
item_state = "jewel"
|
||||
|
||||
/obj/item/toy/plush/mammal
|
||||
name = "mammal plushie"
|
||||
desc = "An adorable stuffed toy resembling some sort of mammallian crew member."
|
||||
icon_state = "faux"
|
||||
item_state = "faux"
|
||||
|
||||
/obj/item/toy/plush/mammal/dubious
|
||||
icon_state = "dubious"
|
||||
item_state = "dubious"
|
||||
|
||||
/obj/item/toy/plush/mammal/gladwyn
|
||||
icon_state = "gladwyn"
|
||||
item_state = "gladwyn"
|
||||
|
||||
/obj/item/toy/plush/mammal/gavin
|
||||
icon_state = "gavin"
|
||||
item_state = "gavin"
|
||||
|
||||
/obj/item/toy/plush/mammal/blep
|
||||
icon_state = "blep"
|
||||
item_state = "blep"
|
||||
|
||||
/obj/item/toy/plush/mammal/circe
|
||||
icon_state = "circe"
|
||||
item_state = "circe"
|
||||
|
||||
/obj/item/toy/plush/mammal/pavel
|
||||
icon_state = "pavel"
|
||||
item_state = "pavel"
|
||||
|
||||
/obj/item/toy/plush/mammal/oten
|
||||
icon_state = "oten"
|
||||
item_state = "oten"
|
||||
|
||||
/obj/item/toy/plush/mammal/ray
|
||||
icon_state = "ray"
|
||||
item_state = "ray"
|
||||
|
||||
/obj/item/toy/plush/mammal/dawud
|
||||
icon_state = "dawud"
|
||||
item_state = "dawud"
|
||||
|
||||
/obj/item/toy/plush/mammal/edgar
|
||||
icon_state = "edgar"
|
||||
item_state = "edgar"
|
||||
|
||||
/obj/item/toy/plush/mammal/frank
|
||||
icon_state = "frank"
|
||||
item_state = "frank"
|
||||
|
||||
/obj/item/toy/plush/mammal/poojawa
|
||||
icon_state = "poojawa"
|
||||
item_state = "poojawa"
|
||||
|
||||
/obj/item/toy/plush/mammal/hazel
|
||||
icon_state = "hazel"
|
||||
item_state = "hazel"
|
||||
|
||||
/obj/item/toy/plush/mammal/joker
|
||||
icon_state = "joker"
|
||||
item_state = "joker"
|
||||
|
||||
/obj/item/toy/plush/mammal/jermaine
|
||||
icon_state = "jermaine"
|
||||
item_state = "jermaine"
|
||||
|
||||
/obj/item/toy/plush/mammal/gunther
|
||||
icon_state = "gunther"
|
||||
item_state = "gunther"
|
||||
|
||||
/obj/item/toy/plush/mammal/fox
|
||||
icon_state = "fox"
|
||||
item_state = "fox"
|
||||
|
||||
/obj/item/toy/plush/mammal/zed
|
||||
icon_state = "zed"
|
||||
item_state = "zed"
|
||||
|
||||
/obj/item/toy/plush/mammal/dog
|
||||
desc = "An adorable stuffed toy that resembles a canine."
|
||||
icon_state = "katlin"
|
||||
item_state = "katlin"
|
||||
attack_verb = list("barked", "boofed", "borked")
|
||||
squeak_override = list(
|
||||
'modular_citadel/sound/voice/bark1.ogg' = 1,
|
||||
'modular_citadel/sound/voice/bark2.ogg' = 1
|
||||
)
|
||||
|
||||
/obj/item/toy/plush/mammal/dog/frost
|
||||
icon_state = "frost"
|
||||
item_state = "frost"
|
||||
|
||||
/obj/item/toy/plush/mammal/dog/atticus
|
||||
icon_state = "atticus"
|
||||
item_state = "atticus"
|
||||
|
||||
/obj/item/toy/plush/mammal/dog/fletch
|
||||
icon_state = "fletch"
|
||||
item_state = "fletch"
|
||||
|
||||
/obj/item/toy/plush/mammal/dog/vincent
|
||||
icon_state = "vincent"
|
||||
item_state = "vincent"
|
||||
|
||||
/obj/item/toy/plush/mammal/dog/zigfried
|
||||
desc = "An adorable stuffed toy of a very good boy."
|
||||
icon_state = "zigfried"
|
||||
item_state = "zigfried"
|
||||
|
||||
/obj/item/toy/plush/mammal/dog/nikolai
|
||||
icon_state = "nikolai"
|
||||
item_state = "nikolai"
|
||||
|
||||
/obj/item/toy/plush/catgirl
|
||||
name = "feline plushie"
|
||||
desc = "An adorable stuffed toy that resembles a felinid."
|
||||
icon_state = "bailey"
|
||||
item_state = "bailey"
|
||||
attack_verb = list("headbutt", "scritched", "bit")
|
||||
squeak_override = list('modular_citadel/sound/voice/nya.ogg' = 1)
|
||||
|
||||
/obj/item/toy/plush/catgirl/mikeel
|
||||
desc = "An adorable stuffed toy of some tauric cat person."
|
||||
icon_state = "mikeel"
|
||||
item_state = "mikeel"
|
||||
|
||||
/obj/item/toy/plush/catgirl/skylar
|
||||
desc = "An adorable stuffed toy that resembles a degenerate."
|
||||
icon_state = "skylar"
|
||||
item_state = "skylar"
|
||||
attack_verb = list("powergamed", "merged", "tabled")
|
||||
squeak_override = list('sound/effects/meow1.ogg' = 1)
|
||||
|
||||
/obj/item/toy/plush/catgirl/robin
|
||||
icon_state = "robin"
|
||||
item_state = "robin"
|
||||
|
||||
/obj/item/toy/plush/awakenedplushie/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/edit_complainer)
|
||||
|
||||
@@ -266,6 +266,9 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
|
||||
if("large")
|
||||
pixel_x = rand(-5, 5)
|
||||
pixel_y = rand(-5, 5)
|
||||
var/matrix/M = matrix(transform)
|
||||
M.Turn(rand(-170, 170))
|
||||
transform = M
|
||||
|
||||
/obj/item/shard/afterattack(atom/A as mob|obj, mob/user, proximity)
|
||||
. = ..()
|
||||
|
||||
@@ -190,8 +190,10 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
|
||||
new/datum/stack_recipe("rolling pin", /obj/item/kitchen/rollingpin, 2, time = 30), \
|
||||
new/datum/stack_recipe("wooden chair", /obj/structure/chair/wood/, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("winged wooden chair", /obj/structure/chair/wood/wings, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("plywood chair", /obj/structure/chair/comfy/plywood, 4, time = 10, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("wooden door", /obj/structure/mineral_door/wood, 10, time = 20, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("rustic wooden door", /obj/structure/mineral_door/woodrustic, 10, time = 20, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("coffin", /obj/structure/closet/crate/coffin, 5, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("book case", /obj/structure/bookcase, 4, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("drying rack", /obj/machinery/smartfridge/drying_rack, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
|
||||
@@ -441,6 +441,23 @@
|
||||
new /obj/item/clothing/mask/muzzle(src)
|
||||
new /obj/item/mmi/syndie(src)
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/surgery_adv
|
||||
name = "advanced surgery duffel bag"
|
||||
desc = "A large duffel bag for holding surgical tools. Bears the logo of an advanced med-tech firm."
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/surgery_adv/PopulateContents()
|
||||
new /obj/item/hemostat/adv(src)
|
||||
new /obj/item/circular_saw/adv(src)
|
||||
new /obj/item/scalpel/adv(src)
|
||||
new /obj/item/retractor/adv(src)
|
||||
new /obj/item/cautery/adv(src)
|
||||
new /obj/item/surgicaldrill/adv(src)
|
||||
new /obj/item/surgical_drapes(src)
|
||||
new /obj/item/storage/firstaid/tactical(src)
|
||||
new /obj/item/clothing/suit/straight_jacket(src)
|
||||
new /obj/item/clothing/mask/muzzle(src)
|
||||
new /obj/item/mmi/syndie(src)
|
||||
|
||||
/obj/item/storage/backpack/duffelbag/syndie/ammo
|
||||
name = "ammunition duffel bag"
|
||||
desc = "A large duffel bag for holding extra weapons ammunition and supplies."
|
||||
|
||||
@@ -168,6 +168,20 @@
|
||||
/obj/item/pinpointer/crew
|
||||
))
|
||||
|
||||
|
||||
/obj/item/storage/belt/medical/surgery_belt_adv
|
||||
name = "surgical supply belt"
|
||||
desc = "A specialized belt designed for holding surgical equipment. It seems to have specific pockets for each and every surgical tool you can think of."
|
||||
|
||||
/obj/item/storage/belt/medical/surgery_belt_adv/PopulateContents()
|
||||
new /obj/item/hemostat/adv(src)
|
||||
new /obj/item/circular_saw/adv(src)
|
||||
new /obj/item/scalpel/adv(src)
|
||||
new /obj/item/retractor/adv(src)
|
||||
new /obj/item/cautery/adv(src)
|
||||
new /obj/item/surgicaldrill/adv(src)
|
||||
new /obj/item/surgical_drapes(src)
|
||||
|
||||
/obj/item/storage/belt/security
|
||||
name = "security belt"
|
||||
desc = "Can hold security gear like handcuffs and flashes."
|
||||
|
||||
@@ -99,6 +99,26 @@
|
||||
new /obj/item/storage/pill_bottle/charcoal(src)
|
||||
new /obj/item/healthanalyzer(src)
|
||||
|
||||
/obj/item/storage/firstaid/radbgone
|
||||
name = "radiation treatment kit"
|
||||
desc = "Used to treat minor toxic blood content and major radiation poisoning."
|
||||
icon_state = "antitoxin"
|
||||
item_state = "firstaid-toxin"
|
||||
|
||||
/obj/item/storage/firstaid/radbgone/suicide_act(mob/living/carbon/user)
|
||||
user.visible_message("<span class='suicide'>[user] begins licking the lead paint off \the [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
return TOXLOSS
|
||||
|
||||
/obj/item/storage/firstaid/radbgone/PopulateContents()
|
||||
if(empty)
|
||||
return
|
||||
new /obj/item/reagent_containers/syringe/charcoal(src)
|
||||
new /obj/item/storage/pill_bottle/charcoal(src)
|
||||
new /obj/item/reagent_containers/pill/mutadone(src)
|
||||
new /obj/item/reagent_containers/pill/antirad(src)
|
||||
new /obj/item/reagent_containers/food/drinks/bottle/vodka(src)
|
||||
new /obj/item/healthanalyzer(src)
|
||||
|
||||
/obj/item/storage/firstaid/o2
|
||||
name = "oxygen deprivation treatment kit"
|
||||
desc = "A box full of oxygen goodies."
|
||||
@@ -191,6 +211,14 @@
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/reagent_containers/pill/charcoal(src)
|
||||
|
||||
/obj/item/storage/pill_bottle/antirad
|
||||
name = "bottle of charcoal pills"
|
||||
desc = "Contains pills used to counter radiation poisoning."
|
||||
|
||||
/obj/item/storage/pill_bottle/anitrad/PopulateContents()
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/reagent_containers/pill/antirad(src)
|
||||
|
||||
/obj/item/storage/pill_bottle/epinephrine
|
||||
name = "bottle of epinephrine pills"
|
||||
desc = "Contains pills used to stabilize patients."
|
||||
|
||||
@@ -84,13 +84,6 @@
|
||||
//Citadel change buffed to base levels
|
||||
total_mass = 2
|
||||
|
||||
/obj/item/storage/toolbox/mechanical/old/heirloom/afterattack(atom/A, mob/user, proximity) //Citadel Adds massive buff to machinery destruction
|
||||
. = ..()
|
||||
if(proximity)
|
||||
if(isobj(A))
|
||||
var/obj/O = A
|
||||
O.take_damage(20)
|
||||
|
||||
/obj/item/storage/toolbox/mechanical/old/heirloom/PopulateContents()
|
||||
return
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
. = ..()
|
||||
GET_COMPONENT(STR, /datum/component/storage)
|
||||
STR.max_items = 4
|
||||
STR.cant_hold = typecacheof(list(/obj/item/screwdriver/power))
|
||||
STR.can_hold = typecacheof(list(
|
||||
/obj/item/stack/spacecash,
|
||||
/obj/item/card,
|
||||
|
||||
@@ -1039,6 +1039,7 @@
|
||||
icon = 'icons/obj/toy.dmi'
|
||||
icon_state = "snowball"
|
||||
throwforce = 12 //pelt your enemies to death with lumps of snow
|
||||
damtype = STAMINA
|
||||
|
||||
/obj/item/toy/snowball/afterattack(atom/target as mob|obj|turf|area, mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -192,6 +192,17 @@
|
||||
/obj/structure/chair/comfy/lime
|
||||
color = rgb(255,251,0)
|
||||
|
||||
/obj/structure/chair/comfy/plywood
|
||||
name = "plywood chair"
|
||||
desc = "A relaxing plywood chair."
|
||||
icon_state = "plywood_chair"
|
||||
anchored = FALSE
|
||||
buildstacktype = /obj/item/stack/sheet/mineral/wood
|
||||
buildstackamount = 4
|
||||
|
||||
/obj/structure/chair/comfy/plywood/GetArmrest()
|
||||
return mutable_appearance('icons/obj/chairs.dmi', "plywood_chair_armrest")
|
||||
|
||||
/obj/structure/chair/comfy/shuttle
|
||||
name = "shuttle seat"
|
||||
desc = "A comfortable, secure seat. It has a more sturdy looking buckling system, for smoother flights."
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
new /obj/item/door_remote/chief_medical_officer(src)
|
||||
new /obj/item/clothing/neck/petcollar(src)
|
||||
new /obj/item/pet_carrier(src)
|
||||
new /obj/item/storage/belt/medical/surgery_belt_adv(src)
|
||||
new /obj/item/wallframe/defib_mount(src)
|
||||
new /obj/item/circuitboard/machine/techfab/department/medical(src)
|
||||
new /obj/item/storage/photo_album/CMO(src)
|
||||
@@ -99,4 +100,4 @@
|
||||
new /obj/item/storage/box/pillbottles(src)
|
||||
new /obj/item/storage/box/pillbottles(src)
|
||||
new /obj/item/storage/box/medsprays(src)
|
||||
new /obj/item/storage/box/medsprays(src)
|
||||
new /obj/item/storage/box/medsprays(src)
|
||||
|
||||
@@ -63,7 +63,8 @@
|
||||
|
||||
/obj/structure/closet/firecloset/PopulateContents()
|
||||
..()
|
||||
|
||||
if (prob(50))
|
||||
new /obj/item/reagent_containers/hypospray/medipen/firelocker(src)
|
||||
new /obj/item/clothing/suit/fire/firefighter(src)
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
new /obj/item/tank/internals/oxygen/red(src)
|
||||
@@ -71,6 +72,9 @@
|
||||
new /obj/item/clothing/head/hardhat/red(src)
|
||||
|
||||
/obj/structure/closet/firecloset/full/PopulateContents()
|
||||
..()
|
||||
if (prob(50))
|
||||
new /obj/item/reagent_containers/hypospray/medipen/firelocker(src)
|
||||
new /obj/item/clothing/suit/fire/firefighter(src)
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
new /obj/item/flashlight(src)
|
||||
@@ -132,6 +136,8 @@
|
||||
|
||||
/obj/structure/closet/radiation/PopulateContents()
|
||||
..()
|
||||
if(prob(50))
|
||||
new /obj/item/storage/firstaid/radbgone(src)
|
||||
new /obj/item/geiger_counter(src)
|
||||
new /obj/item/clothing/suit/radiation(src)
|
||||
new /obj/item/clothing/head/radiation(src)
|
||||
@@ -146,18 +152,38 @@
|
||||
|
||||
/obj/structure/closet/bombcloset/PopulateContents()
|
||||
..()
|
||||
if(prob(70))
|
||||
new /obj/item/screwdriver(src)
|
||||
if(prob(50))
|
||||
new /obj/item/multitool(src)
|
||||
if(prob(70))
|
||||
new /obj/item/wirecutters(src)
|
||||
new /obj/item/clothing/suit/bomb_suit(src)
|
||||
new /obj/item/clothing/under/color/black(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/head/bomb_hood(src)
|
||||
|
||||
/obj/structure/closet/bombcloset/security/PopulateContents()
|
||||
..()
|
||||
if(prob(90))
|
||||
new /obj/item/screwdriver(src)
|
||||
if(prob(70))
|
||||
new /obj/item/multitool(src)
|
||||
if(prob(90))
|
||||
new /obj/item/wirecutters(src)
|
||||
new /obj/item/clothing/suit/bomb_suit/security(src)
|
||||
new /obj/item/clothing/under/rank/security(src)
|
||||
new /obj/item/clothing/shoes/jackboots(src)
|
||||
new /obj/item/clothing/head/bomb_hood/security(src)
|
||||
|
||||
/obj/structure/closet/bombcloset/white/PopulateContents()
|
||||
..()
|
||||
if(prob(50))
|
||||
new /obj/item/screwdriver(src)
|
||||
if(prob(20))
|
||||
new /obj/item/multitool(src)
|
||||
if(prob(50))
|
||||
new /obj/item/wirecutters(src)
|
||||
new /obj/item/clothing/suit/bomb_suit/white(src)
|
||||
new /obj/item/clothing/under/color/black(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
|
||||
@@ -70,6 +70,13 @@
|
||||
desc = "A towering basalt sculpture of a drake. Cracks run down its surface and parts of it have fallen off."
|
||||
icon_state = "drake_statue_falling"
|
||||
|
||||
/obj/structure/fluff/lightpost
|
||||
name = "lightpost"
|
||||
desc = "A homely lightpost adorned with festive decor."
|
||||
icon = 'icons/obj/2x2.dmi'
|
||||
icon_state = "lightpost"
|
||||
deconstructible = FALSE
|
||||
layer = EDGED_TURF_LAYER
|
||||
|
||||
/obj/structure/fluff/bus
|
||||
name = "bus"
|
||||
@@ -167,3 +174,11 @@
|
||||
desc = "A crudely-made sign with the words 'fok of' written in some sort of red paint."
|
||||
icon = 'icons/obj/fluff.dmi'
|
||||
icon_state = "fokof"
|
||||
|
||||
/obj/structure/fluff/snowlegion
|
||||
name = "snowlegion"
|
||||
desc = "Looks like that weird kid with the tiger plushie has been round here again."
|
||||
icon = 'icons/obj/fluff.dmi'
|
||||
icon_state = "snowlegion"
|
||||
anchored = TRUE
|
||||
deconstructible = FALSE
|
||||
|
||||
@@ -223,6 +223,16 @@
|
||||
max_integrity = 200
|
||||
rad_insulation = RAD_VERY_LIGHT_INSULATION
|
||||
|
||||
/obj/structure/mineral_door/woodrustic
|
||||
name = "rustic wood door"
|
||||
icon_state = "woodrustic"
|
||||
openSound = 'sound/effects/doorcreaky.ogg'
|
||||
closeSound = 'sound/effects/doorcreaky.ogg'
|
||||
sheetType = /obj/item/stack/sheet/mineral/wood
|
||||
sheetAmount = 10
|
||||
max_integrity = 200
|
||||
rad_insulation = RAD_VERY_LIGHT_INSULATION
|
||||
|
||||
/obj/structure/mineral_door/paperframe
|
||||
name = "paper frame door"
|
||||
icon_state = "paperframe"
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
name = "magic mirror"
|
||||
desc = "Turn and face the strange... face."
|
||||
icon_state = "magic_mirror"
|
||||
var/list/races_blacklist = list("skeleton", "agent", "angel", "military_synth", "memezombies", "clockwork golem servant", "android", "synth", "mush")
|
||||
var/list/races_blacklist = list("skeleton", "agent", "angel", "military_synth", "memezombies", "clockwork golem servant", "android", "synth", "mush", "zombie", "memezombie")
|
||||
var/list/choosable_races = list()
|
||||
|
||||
/obj/structure/mirror/magic/New()
|
||||
|
||||
@@ -45,3 +45,12 @@
|
||||
name = "command department"
|
||||
desc = "A direction sign, pointing out which way the Command department is."
|
||||
icon_state = "direction_bridge"
|
||||
|
||||
/obj/structure/sign/directions/bar
|
||||
name = "bar"
|
||||
desc = "A direction sign, pointing out which way the Bar is."
|
||||
icon_state = "direction_bar"
|
||||
/obj/structure/sign/directions/cafe
|
||||
name = "cafe"
|
||||
desc = "A direction sign, pointing out which way the Cafe is."
|
||||
icon_state = "direction_cafe"
|
||||
|
||||
Reference in New Issue
Block a user