mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 05:30:05 +01:00
@@ -9,6 +9,7 @@ var/datum/subsystem/objects/SSobj
|
||||
priority = 12
|
||||
|
||||
var/list/processing = list()
|
||||
var/list/burning = list()
|
||||
|
||||
/datum/subsystem/objects/New()
|
||||
NEW_SS_GLOBAL(SSobj)
|
||||
@@ -37,5 +38,9 @@ var/datum/subsystem/objects/SSobj
|
||||
++i
|
||||
continue
|
||||
SSobj.processing.Cut(i, i+1)
|
||||
|
||||
|
||||
for(var/obj/burningobj in SSobj.burning)
|
||||
if(burningobj && (burningobj.burn_state == 1))
|
||||
if(burningobj.burn_world_time < world.time)
|
||||
burningobj.burn()
|
||||
else
|
||||
SSobj.burning -= burningobj
|
||||
@@ -664,9 +664,10 @@ var/list/uplink_items = list()
|
||||
|
||||
/datum/uplink_item/implants/microbomb
|
||||
name = "Microbomb Implant"
|
||||
desc = "An implant injected into the body, and later activated either manually or automatically upon death. The more implants inside of you, the higher the explosive power."
|
||||
desc = "An implant injected into the body, and later activated either manually or automatically upon death. The more implants inside of you, the higher the explosive power. \
|
||||
Will permanently destroy your body, however."
|
||||
item = /obj/item/weapon/storage/box/syndie_kit/imp_microbomb
|
||||
cost = 1
|
||||
cost = 2
|
||||
|
||||
|
||||
//CYBERNETIC IMPLANTS
|
||||
|
||||
@@ -47,6 +47,9 @@
|
||||
M.update_canmove()
|
||||
post_buckle_mob(M)
|
||||
M.throw_alert("buckled", new_master = src)
|
||||
if(burn_state == 1) //Sets the mob on fire if you buckle them to a burning object
|
||||
M.adjust_fire_stacks(1)
|
||||
M.IgniteMob()
|
||||
return 1
|
||||
|
||||
/obj/proc/unbuckle_mob()
|
||||
|
||||
@@ -19,6 +19,9 @@
|
||||
/obj/effect/decal/cleanable/ash/New()
|
||||
..()
|
||||
reagents.add_reagent("ash", 30)
|
||||
pixel_x = rand(-5, 5)
|
||||
pixel_y = rand(-5, 5)
|
||||
|
||||
|
||||
/obj/effect/decal/cleanable/greenglow
|
||||
name = "green glow"
|
||||
@@ -71,6 +74,8 @@
|
||||
layer = 3
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "cobweb1"
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 1
|
||||
|
||||
/obj/effect/decal/cleanable/molten_item
|
||||
name = "gooey grey mass"
|
||||
@@ -142,4 +147,18 @@
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "ash"
|
||||
anchored = 1
|
||||
anchored = 1
|
||||
|
||||
/obj/effect/decal/cleanable/shreds
|
||||
name = "shreds"
|
||||
desc = "The shredded remains of what appears to be clothing."
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "shreds"
|
||||
gender = PLURAL
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
|
||||
/obj/effect/decal/cleanable/shreds/New()
|
||||
pixel_x = rand(-5, 5)
|
||||
pixel_y = rand(-5, 5)
|
||||
@@ -1,3 +1,5 @@
|
||||
var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_state" = "fire")
|
||||
|
||||
/obj/item
|
||||
name = "item"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
@@ -158,6 +160,23 @@
|
||||
|
||||
/obj/item/attack_hand(mob/user as mob)
|
||||
if (!user) return
|
||||
|
||||
if(burn_state == 1)
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H))
|
||||
if(H.gloves && (H.gloves.max_heat_protection_temperature > 360))
|
||||
extinguish()
|
||||
user << "<span class='notice'>You put out the fire on [src].</span>"
|
||||
else
|
||||
user << "<span class='warning'>You burn your hand on [src]!</span>"
|
||||
var/obj/item/organ/limb/affecting = H.get_organ("[user.hand ? "l" : "r" ]_arm")
|
||||
if(affecting.take_damage( 0, 5 )) // 5 burn damage
|
||||
H.update_damage_overlays(0)
|
||||
H.updatehealth()
|
||||
return
|
||||
else
|
||||
extinguish()
|
||||
|
||||
if (istype(src.loc, /obj/item/weapon/storage))
|
||||
//If the item is in a storage item, take it out
|
||||
var/obj/item/weapon/storage/S = src.loc
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
icon_state = "candle1"
|
||||
item_state = "candle1"
|
||||
w_class = 1
|
||||
|
||||
var/wax = 200
|
||||
var/lit = 0
|
||||
proc
|
||||
@@ -46,6 +45,10 @@
|
||||
if(M.lit)
|
||||
light()
|
||||
|
||||
/obj/item/candle/fire_act()
|
||||
if(!src.lit)
|
||||
light() //honk
|
||||
return
|
||||
|
||||
/obj/item/candle/light(var/flavor_text = "<span class='danger'>[usr] lights the [name].</span>")
|
||||
if(!src.lit)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
//copy pasta of the space piano, don't hurt me -Pete
|
||||
/obj/item/device/instrument
|
||||
name = "generic instrument"
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 20
|
||||
var/datum/song/handheld/song
|
||||
var/instrumentId = "generic"
|
||||
var/instrumentExt = "ogg"
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
desc = "A box suited for pizzas."
|
||||
icon = 'icons/obj/food/containers.dmi'
|
||||
icon_state = "pizzabox1"
|
||||
burn_state = 0 //Burnable
|
||||
var/timer = 10 //Adjustable timer
|
||||
var/timer_set = 0
|
||||
var/primed = 0
|
||||
@@ -54,6 +55,10 @@
|
||||
sleep(timer)
|
||||
return go_boom()
|
||||
|
||||
/obj/item/device/pizza_bomb/burn() //Instead of burning to ashes, it will just explode
|
||||
go_boom()
|
||||
return
|
||||
|
||||
/obj/item/device/pizza_bomb/proc/go_boom()
|
||||
if(disarmed)
|
||||
visible_message("<span class='danger'>\icon[src] Sparks briefly jump out of the [correct_wire] wire on \the [src], but it's disarmed!")
|
||||
|
||||
@@ -56,6 +56,9 @@
|
||||
mytape = null
|
||||
update_icon()
|
||||
|
||||
/obj/item/device/taperecorder/fire_act()
|
||||
mytape.ruin() //Fires destroy the tape
|
||||
return()
|
||||
|
||||
/obj/item/device/taperecorder/attack_hand(mob/user)
|
||||
if(loc == user)
|
||||
@@ -264,6 +267,8 @@
|
||||
var/list/timestamp = list()
|
||||
var/ruined = 0
|
||||
|
||||
/obj/item/device/tape/fire_act()
|
||||
ruin()
|
||||
|
||||
/obj/item/device/tape/attack_self(mob/user)
|
||||
if(!ruined)
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
throw_speed = 2
|
||||
throw_range = 2
|
||||
w_class = 1.0
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/stack/spacecash/c10
|
||||
icon_state = "spacecash10"
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
w_class = 1
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 5
|
||||
var/heal_brute = 0
|
||||
var/heal_burn = 0
|
||||
var/stop_bleeding = 0
|
||||
|
||||
@@ -108,6 +108,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \
|
||||
icon = 'icons/obj/items.dmi'
|
||||
origin_tech = "materials=1;biotech=1"
|
||||
sheettype = "wood"
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/stack/sheet/mineral/wood/New(var/loc, var/amount=null)
|
||||
recipes = wood_recipes
|
||||
@@ -122,6 +123,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \
|
||||
singular_name = "cloth roll"
|
||||
icon_state = "sheet-cloth"
|
||||
origin_tech = "materials=2"
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/*
|
||||
* Cardboard
|
||||
@@ -143,6 +145,7 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \
|
||||
singular_name = "cardboard sheet"
|
||||
icon_state = "sheet-card"
|
||||
origin_tech = "materials=1"
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/stack/sheet/cardboard/New(var/loc, var/amount=null)
|
||||
recipes = cardboard_recipes
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
max_amount = 60
|
||||
origin_tech = "biotech=1"
|
||||
turf_type = /turf/simulated/floor/fancy/grass
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/*
|
||||
* Wood
|
||||
@@ -101,6 +102,7 @@
|
||||
max_amount = 60
|
||||
origin_tech = "biotech=1"
|
||||
turf_type = /turf/simulated/floor/wood
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/*
|
||||
* Carpets
|
||||
@@ -117,6 +119,7 @@
|
||||
throw_range = 7
|
||||
max_amount = 60
|
||||
turf_type = /turf/simulated/floor/fancy/carpet
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/*
|
||||
* High-traction
|
||||
|
||||
@@ -271,6 +271,7 @@
|
||||
item_state = "arm_blade"
|
||||
attack_verb = list("pricked", "absorbed", "gored")
|
||||
w_class = 2
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
|
||||
/*
|
||||
@@ -527,6 +528,10 @@
|
||||
icon_state = "snappop"
|
||||
w_class = 1
|
||||
|
||||
/obj/item/toy/snappop/fire_act()
|
||||
throw_impact()
|
||||
return
|
||||
|
||||
/obj/item/toy/snappop/throw_impact(atom/hit_atom)
|
||||
..()
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
@@ -710,6 +715,8 @@
|
||||
|
||||
|
||||
/obj/item/toy/cards
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 5
|
||||
var/parentdeck = null
|
||||
var/deckstyle = "nanotrasen"
|
||||
var/card_hitsound = null
|
||||
@@ -949,7 +956,8 @@
|
||||
newobj.card_throw_speed = sourceobj.card_throw_speed
|
||||
newobj.card_throw_range = sourceobj.card_throw_range
|
||||
newobj.card_attack_verb = sourceobj.card_attack_verb
|
||||
|
||||
if(sourceobj.burn_state == -1)
|
||||
newobj.burn_state = -1
|
||||
|
||||
/obj/item/toy/cards/singlecard
|
||||
name = "card"
|
||||
@@ -1065,6 +1073,7 @@
|
||||
card_throw_speed = 3
|
||||
card_throw_range = 7
|
||||
card_attack_verb = list("attacked", "sliced", "diced", "slashed", "cut")
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/*
|
||||
* Fake nuke
|
||||
@@ -1123,6 +1132,7 @@
|
||||
icon_state = "carpplushie"
|
||||
w_class = 2.0
|
||||
attack_verb = list("bitten", "eaten", "fin slapped")
|
||||
burn_state = 0 //Burnable
|
||||
var/bitesound = 'sound/weapons/bite.ogg'
|
||||
|
||||
// Attack mob
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
icon = 'icons/obj/janitor.dmi'
|
||||
desc = "This is rubbish."
|
||||
w_class = 1.0
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/trash/raisins
|
||||
name = "\improper 4no raisins"
|
||||
@@ -51,6 +52,7 @@
|
||||
/obj/item/trash/tray
|
||||
name = "tray"
|
||||
icon_state = "tray"
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/trash/candle
|
||||
name = "candle"
|
||||
@@ -60,6 +62,7 @@
|
||||
/obj/item/trash/can
|
||||
name = "crushed can"
|
||||
icon_state = "cola"
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/trash/attack(mob/M, mob/living/user)
|
||||
return
|
||||
@@ -11,6 +11,7 @@
|
||||
throwforce = 6.0
|
||||
w_class = 2.0
|
||||
attack_verb = list("bashed", "battered", "judged", "whacked")
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/weapon/gavelhammer/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] has sentenced \himself to death with the [src.name]! It looks like \he's trying to commit suicide.</span>")
|
||||
@@ -25,6 +26,7 @@
|
||||
force = 2.0
|
||||
throwforce = 2.0
|
||||
w_class = 1.0
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/weapon/gavelblock/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/gavelhammer))
|
||||
|
||||
@@ -151,6 +151,9 @@
|
||||
if(isliving(atm)) //For extinguishing mobs on fire
|
||||
var/mob/living/M = atm
|
||||
M.ExtinguishMob()
|
||||
if(istype(atm,/obj/item))
|
||||
var/obj/item/Item = atm
|
||||
Item.extinguish()
|
||||
if(W.loc == my_target) break
|
||||
sleep(2)
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "giftcrate3"
|
||||
item_state = "gift1"
|
||||
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/weapon/a_gift/New()
|
||||
..()
|
||||
@@ -86,6 +86,7 @@
|
||||
flags = NOBLUDGEON
|
||||
amount = 25
|
||||
max_amount = 25
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/stack/wrapping_paper/attack_self(mob/user)
|
||||
user << "<span class='warning'>You need to use it on a package that has already been wrapped!</span>"
|
||||
|
||||
@@ -9,10 +9,15 @@
|
||||
throw_range = 7
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 5
|
||||
var/active = 0
|
||||
var/det_time = 50
|
||||
var/display_timer = 1
|
||||
|
||||
/obj/item/weapon/grenade/burn()
|
||||
prime()
|
||||
|
||||
/obj/item/weapon/grenade/proc/clown_check(var/mob/living/carbon/human/user)
|
||||
if(user.disabilities & CLUMSY && prob(50))
|
||||
user << "<span class='warning'>Huh? How does this thing work?</span>"
|
||||
|
||||
@@ -82,6 +82,10 @@
|
||||
name = "microbomb implant"
|
||||
desc = "And boom goes the weasel."
|
||||
icon_state = "explosive"
|
||||
var/weak = 1.6
|
||||
var/medium = 0.8
|
||||
var/heavy = 0.4
|
||||
var/delay = 7
|
||||
|
||||
/obj/item/weapon/implant/explosive/get_data()
|
||||
var/dat = {"<b>Implant Specifications:</b><BR>
|
||||
@@ -103,33 +107,69 @@
|
||||
if(!cause || !imp_in) return 0
|
||||
if(cause == "action_button" && alert(imp_in, "Are you sure you want to activate your microbomb implant? This will cause you to explode!", "Microbomb Implant Confirmation", "Yes", "No") != "Yes")
|
||||
return 0
|
||||
var/light = 1
|
||||
var/medium = 0.5
|
||||
var/heavy = 0.25
|
||||
for(var/obj/item/weapon/implant/explosive/E in imp_in)
|
||||
heavy += 0.25
|
||||
medium += 0.5
|
||||
light += 1
|
||||
heavy += 0.4
|
||||
medium += 0.8
|
||||
weak += 1.6
|
||||
delay += 7
|
||||
if(E != src)
|
||||
qdel(E)
|
||||
heavy = round(heavy)
|
||||
medium = round(medium)
|
||||
light = round(light)
|
||||
weak = round(weak)
|
||||
imp_in << "<span_class='notice'>You activate your microbomb implant.</span>"
|
||||
//If the delay is short, just blow up already jeez
|
||||
if(delay <= 7)
|
||||
imp_in.gib()
|
||||
explosion(src,heavy,medium,weak,weak, flame_range = weak)
|
||||
qdel(src)
|
||||
imp_in.visible_message("<span class = 'warning'>[imp_in] starts beeping ominously!</span>")
|
||||
playsound(loc, 'sound/items/timer.ogg', 30, 0)
|
||||
sleep(delay/4)
|
||||
if(imp_in.stat)
|
||||
imp_in.visible_message("<span class = 'warning'>[imp_in] doubles over in pain!</span>")
|
||||
imp_in.Weaken(7)
|
||||
playsound(loc, 'sound/items/timer.ogg', 30, 0)
|
||||
sleep(delay/4)
|
||||
playsound(loc, 'sound/items/timer.ogg', 30, 0)
|
||||
sleep(delay/4)
|
||||
playsound(loc, 'sound/items/timer.ogg', 30, 0)
|
||||
sleep(delay/4)
|
||||
imp_in.gib()
|
||||
explosion(src,heavy,medium,light,light, flame_range = light)
|
||||
explosion(src,heavy,medium,weak,weak, flame_range = weak)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/implant/explosive/macro
|
||||
name = "macrobomb implant"
|
||||
desc = "And boom goes the weasel. And everything else nearby."
|
||||
icon_state = "explosive"
|
||||
weak = 16
|
||||
medium = 8
|
||||
heavy = 4
|
||||
delay = 70
|
||||
|
||||
/obj/item/weapon/implant/explosive/macro/activate(var/cause)
|
||||
if(!cause || !imp_in) return 0
|
||||
if(cause == "action_button" && alert(imp_in, "Are you sure you want to activate your macrobomb implant? This will cause you to explode and gib!", "Macrobomb Implant Confirmation", "Yes", "No") != "Yes")
|
||||
return 0
|
||||
for(var/obj/item/weapon/implant/explosive/macro/E in imp_in)
|
||||
if(E != src)
|
||||
qdel(E)
|
||||
imp_in << "<span_class='notice'>You activate your macrobomb implant.</span>"
|
||||
imp_in.visible_message("<span class = 'warning'>[imp_in] starts beeping ominously!</span>")
|
||||
playsound(loc, 'sound/items/timer.ogg', 30, 0)
|
||||
sleep(delay/4)
|
||||
if(imp_in.stat)
|
||||
imp_in.visible_message("<span class = 'warning'>[imp_in] doubles over in pain!</span>")
|
||||
imp_in.Weaken(7)
|
||||
playsound(loc, 'sound/items/timer.ogg', 30, 0)
|
||||
sleep(delay/4)
|
||||
playsound(loc, 'sound/items/timer.ogg', 30, 0)
|
||||
sleep(delay/4)
|
||||
playsound(loc, 'sound/items/timer.ogg', 30, 0)
|
||||
sleep(delay/4)
|
||||
imp_in.gib()
|
||||
explosion(src,5,10,20,20, flame_range = 20)
|
||||
explosion(src,heavy,medium,weak,weak, flame_range = weak)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/implant/chem
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
throw_range = 7
|
||||
w_class = 3.0
|
||||
attack_verb = list("mopped", "bashed", "bludgeoned", "whacked")
|
||||
burn_state = 0 //Burnable
|
||||
var/mopping = 0
|
||||
var/mopcount = 0
|
||||
var/mopcap = 5
|
||||
|
||||
@@ -10,6 +10,8 @@
|
||||
item_color = "FFFFFF"
|
||||
item_state = "paintcan"
|
||||
w_class = 3.0
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 5
|
||||
var/paintleft = 10
|
||||
|
||||
/obj/item/weapon/paint/red
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
origin_tech = "bluespace=4"
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/weapon/teleportation_scroll/apprentice
|
||||
name = "lesser scroll of teleportation"
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
force = 5
|
||||
w_class = 4.0
|
||||
attack_verb = list("bashed","smacked")
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
var/label = ""
|
||||
var/last_wave = 0
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
slot_flags = SLOT_BACK //ERROOOOO
|
||||
max_w_class = 3
|
||||
max_combined_w_class = 21
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 20
|
||||
|
||||
/obj/item/weapon/storage/backpack/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
playsound(src.loc, "rustle", 50, 1, -5)
|
||||
@@ -34,6 +36,9 @@
|
||||
icon_state = "holdingpack"
|
||||
max_w_class = 5
|
||||
max_combined_w_class = 35
|
||||
burn_state = -1 // NotBurnable
|
||||
var/pshoom = 'sound/items/PSHOOM.ogg'
|
||||
var/alt_sound = 'sound/items/PSHOOM_2.ogg'
|
||||
|
||||
/obj/item/weapon/storage/backpack/holding/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is jumping into [src]! It looks like \he's trying to commit suicide.</span>")
|
||||
@@ -50,6 +55,20 @@
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/storage/backpack/holding/content_can_dump(atom/dest_object, mob/user)
|
||||
if(Adjacent(user))
|
||||
if(get_dist(user, dest_object) < 8)
|
||||
if(dest_object.storage_contents_dump_act(src, user))
|
||||
if(alt_sound && prob(1))
|
||||
playsound(src, alt_sound, 40, 1)
|
||||
else
|
||||
playsound(src, pshoom, 40, 1)
|
||||
user.Beam(dest_object,icon_state="rped_upgrade",icon='icons/effects/effects.dmi',time=5)
|
||||
return 1
|
||||
user << "The [src.name] buzzes."
|
||||
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0)
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/storage/backpack/holding/handle_item_insertion(obj/item/W, prevent_warning = 0, mob/user)
|
||||
if(istype(W, /obj/item/weapon/storage/backpack/holding) && !W.crit_fail)
|
||||
var/safety = alert(user, "You feel this may not be the best idea.", "Put in [name]?", "Proceed", "Abort")
|
||||
@@ -129,12 +148,14 @@
|
||||
desc = "It's a special backpack made exclusively for Nanotrasen officers."
|
||||
icon_state = "captainpack"
|
||||
item_state = "captainpack"
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/weapon/storage/backpack/industrial
|
||||
name = "industrial backpack"
|
||||
desc = "It's a tough backpack for the daily grind of station life."
|
||||
icon_state = "engiepack"
|
||||
item_state = "engiepack"
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/weapon/storage/backpack/botany
|
||||
name = "botany backpack"
|
||||
@@ -159,6 +180,7 @@
|
||||
desc = "A specially designed backpack. It's fire resistant and smells vaguely of plasma."
|
||||
icon_state = "toxpack"
|
||||
item_state = "toxpack"
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/weapon/storage/backpack/virology
|
||||
name = "virology backpack"
|
||||
@@ -175,6 +197,7 @@
|
||||
name = "leather satchel"
|
||||
desc = "It's a very fancy satchel made with fine leather."
|
||||
icon_state = "satchel"
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel/withwallet/New()
|
||||
..()
|
||||
@@ -190,6 +213,7 @@
|
||||
desc = "A tough satchel with extra pockets."
|
||||
icon_state = "satchel-eng"
|
||||
item_state = "engiepack"
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_med
|
||||
name = "medical satchel"
|
||||
@@ -220,6 +244,7 @@
|
||||
desc = "Useful for holding research materials."
|
||||
icon_state = "satchel-tox"
|
||||
item_state = "satchel-tox"
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_hyd
|
||||
name = "botanist satchel"
|
||||
@@ -238,6 +263,7 @@
|
||||
desc = "An exclusive satchel for Nanotrasen officers."
|
||||
icon_state = "satchel-cap"
|
||||
item_state = "captainpack"
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/weapon/storage/backpack/satchel_flat
|
||||
name = "smuggler's satchel"
|
||||
@@ -310,6 +336,7 @@
|
||||
desc = "A large dufflebag for holding extra captainly goods."
|
||||
icon_state = "duffle-captain"
|
||||
item_state = "duffle-captain"
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/weapon/storage/backpack/dufflebag/med
|
||||
name = "medical dufflebag"
|
||||
@@ -328,6 +355,7 @@
|
||||
desc = "A large dufflebag for holding extra tools and supplies."
|
||||
icon_state = "duffle-eng"
|
||||
item_state = "duffle-eng"
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/weapon/storage/backpack/dufflebag/clown
|
||||
name = "clown's dufflebag"
|
||||
|
||||
@@ -103,6 +103,7 @@
|
||||
max_w_class = 3
|
||||
w_class = 1
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/weapon/grown)
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
////////
|
||||
|
||||
@@ -280,6 +281,7 @@
|
||||
max_w_class = 3
|
||||
w_class = 4 //Bigger than a book because physics
|
||||
can_hold = list(/obj/item/weapon/book, /obj/item/weapon/storage/book, /obj/item/weapon/spellbook)
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/*
|
||||
* Trays - Agouri
|
||||
@@ -349,3 +351,4 @@
|
||||
w_class = 1
|
||||
preposition = "in"
|
||||
can_hold = list(/obj/item/weapon/reagent_containers/pill, /obj/item/weapon/reagent_containers/glass/beaker, /obj/item/weapon/reagent_containers/glass/bottle)
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
throw_speed = 2
|
||||
throw_range = 5
|
||||
w_class = 3.0
|
||||
burn_state = 0 //Burnable
|
||||
var/title = "book"
|
||||
/obj/item/weapon/storage/book/attack_self(mob/user)
|
||||
user << "<span class='notice'>The pages of [title] have been cut out!</span>"
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
desc = "It's just an ordinary box."
|
||||
icon_state = "box"
|
||||
item_state = "syringe_kit"
|
||||
burn_state = 0 //Burnable
|
||||
var/foldable = /obj/item/stack/sheet/cardboard
|
||||
|
||||
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
max_w_class = 3
|
||||
max_combined_w_class = 21
|
||||
attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked")
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 20
|
||||
|
||||
/obj/item/weapon/storage/briefcase/New()
|
||||
..()
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
icon = 'icons/obj/food/containers.dmi'
|
||||
icon_state = "donutbox6"
|
||||
name = "donut box"
|
||||
burn_state = 0 //Burnable
|
||||
var/icon_type = "donut"
|
||||
var/spawn_type = null
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
storage_slots = 4
|
||||
icon_state = "wallet"
|
||||
w_class = 2
|
||||
burn_state = 0 //Burnable
|
||||
can_hold = list(
|
||||
/obj/item/stack/spacecash,
|
||||
/obj/item/weapon/card,
|
||||
|
||||
@@ -362,6 +362,8 @@
|
||||
V.visible_message("<span class='danger'>[V] was frozen shut!</span>")
|
||||
for(var/mob/living/L in T)
|
||||
L.ExtinguishMob()
|
||||
for(var/obj/item/Item in T)
|
||||
Item.extinguish()
|
||||
return
|
||||
|
||||
/datum/effect/effect/system/freezing_smoke_spread
|
||||
|
||||
@@ -242,6 +242,7 @@
|
||||
w_class = 2
|
||||
flags = NOSHIELD
|
||||
attack_verb = list("bludgeoned", "whacked", "disciplined")
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/weapon/staff/broom
|
||||
name = "broom"
|
||||
|
||||
@@ -9,6 +9,10 @@
|
||||
var/damtype = "brute"
|
||||
var/force = 0
|
||||
|
||||
var/burn_state = -1 // -1=fireproof | 0=will burn in fires | 1=currently on fire
|
||||
var/burntime = 10 //How long it takes to burn to ashes, in seconds
|
||||
var/burn_world_time //What world time the object will burn up completely
|
||||
|
||||
/obj/Destroy()
|
||||
if(!istype(src, /obj/machinery))
|
||||
SSobj.processing.Remove(src) // TODO: Have a processing bitflag to reduce on unnecessary loops through the processing lists
|
||||
@@ -155,4 +159,26 @@
|
||||
|
||||
/obj/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user)
|
||||
var/turf/T = get_turf(src)
|
||||
return T.storage_contents_dump_act(src_object, user)
|
||||
return T.storage_contents_dump_act(src_object, user)
|
||||
|
||||
/obj/fire_act(var/global_overlay=1)
|
||||
if(!burn_state)
|
||||
burn_state = 1
|
||||
SSobj.burning += src
|
||||
burn_world_time = world.time + burntime*10
|
||||
if(global_overlay)
|
||||
overlays += fire_overlay
|
||||
return 1
|
||||
|
||||
/obj/proc/burn()
|
||||
for(var/obj/item/Item in contents) //Empty out the contents
|
||||
Item.loc = src.loc
|
||||
Item.fire_act() //Set them on fire, too
|
||||
new /obj/effect/decal/cleanable/ash(src.loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/proc/extinguish()
|
||||
if(burn_state == 1)
|
||||
burn_state = 0
|
||||
overlays -= fire_overlay
|
||||
SSobj.burning -= src
|
||||
@@ -9,6 +9,8 @@
|
||||
icon = 'icons/obj/artstuff.dmi'
|
||||
icon_state = "easel"
|
||||
density = 1
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 15
|
||||
var/obj/item/weapon/canvas/painting = null
|
||||
|
||||
|
||||
@@ -50,6 +52,7 @@ var/global/list/globalBlankCanvases[AMT_OF_CANVASES]
|
||||
desc = "draw out your soul on this canvas!"
|
||||
icon = 'icons/obj/artstuff.dmi'
|
||||
icon_state = "11x11"
|
||||
burn_state = 0 //Burnable
|
||||
var/whichGlobalBackup = 1 //List index
|
||||
|
||||
/obj/item/weapon/canvas/nineteenXnineteen
|
||||
|
||||
@@ -17,6 +17,7 @@ LINEN BINS
|
||||
throw_range = 2
|
||||
w_class = 1.0
|
||||
item_color = "white"
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
|
||||
/obj/item/weapon/bedsheet/attack(mob/living/M, mob/user)
|
||||
@@ -170,6 +171,8 @@ LINEN BINS
|
||||
icon = 'icons/obj/structures.dmi'
|
||||
icon_state = "linenbin-full"
|
||||
anchored = 1
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 20
|
||||
var/amount = 10
|
||||
var/list/sheets = list()
|
||||
var/obj/item/hidden = null
|
||||
@@ -191,6 +194,16 @@ LINEN BINS
|
||||
if(1 to 5) icon_state = "linenbin-half"
|
||||
else icon_state = "linenbin-full"
|
||||
|
||||
/obj/structure/bedsheetbin/fire_act()
|
||||
if(!amount)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/structure/bedsheetbin/burn()
|
||||
amount = 0
|
||||
extinguish()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/structure/bedsheetbin/attackby(obj/item/I as obj, mob/user as mob, params)
|
||||
if(istype(I, /obj/item/weapon/bedsheet))
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
/obj/structure/flora
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 30
|
||||
|
||||
//trees
|
||||
/obj/structure/flora/tree
|
||||
name = "tree"
|
||||
@@ -217,6 +221,7 @@
|
||||
icon_state = "rock1"
|
||||
icon = 'icons/obj/flora/rocks.dmi'
|
||||
anchored = 1
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/structure/flora/rock/New()
|
||||
..()
|
||||
|
||||
@@ -242,6 +242,8 @@
|
||||
hardness = 1
|
||||
openSound = 'sound/effects/doorcreaky.ogg'
|
||||
closeSound = 'sound/effects/doorcreaky.ogg'
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 30
|
||||
|
||||
/obj/structure/mineral_door/wood/Dismantle(devastated = 0)
|
||||
if(!devastated)
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
icon_state = "bed"
|
||||
can_buckle = 1
|
||||
buckle_lying = 1
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 30
|
||||
|
||||
/obj/structure/stool/bed/alien
|
||||
name = "resting contraption"
|
||||
@@ -59,6 +61,7 @@
|
||||
icon = 'icons/obj/rollerbed.dmi'
|
||||
icon_state = "down"
|
||||
anchored = 0
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/structure/stool/bed/roller/post_buckle_mob(mob/living/M)
|
||||
if(M == buckled_mob)
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
desc = "You sit in this. Either by will or force."
|
||||
icon_state = "chair"
|
||||
buckle_lying = 0 //you sit in a chair, not lay
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/structure/stool/bed/chair/New()
|
||||
..()
|
||||
@@ -73,6 +74,10 @@
|
||||
|
||||
|
||||
// Chair types
|
||||
/obj/structure/stool/bed/chair/wood
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 20
|
||||
|
||||
/obj/structure/stool/bed/chair/wood/normal
|
||||
icon_state = "wooden_chair"
|
||||
name = "wooden chair"
|
||||
@@ -96,6 +101,8 @@
|
||||
desc = "It looks comfy."
|
||||
icon_state = "comfychair"
|
||||
color = rgb(255,255,255)
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 30
|
||||
var/image/armrest = null
|
||||
|
||||
/obj/structure/stool/bed/chair/comfy/New()
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
icon_state = "wood_frame"
|
||||
framestack = /obj/item/stack/sheet/mineral/wood
|
||||
framestackamount = 2
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/structure/table_frame/wood/attackby(var/obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/wrench))
|
||||
|
||||
@@ -432,6 +432,8 @@
|
||||
frame = /obj/structure/table_frame/wood
|
||||
framestack = /obj/item/stack/sheet/mineral/wood
|
||||
buildstack = /obj/item/stack/sheet/mineral/wood
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 20
|
||||
|
||||
/obj/structure/table/wood/poker //No specialties, Just a mapping object.
|
||||
name = "gambling table"
|
||||
|
||||
@@ -229,6 +229,7 @@
|
||||
//Yes, showers are super powerful as far as washing goes.
|
||||
/obj/machinery/shower/proc/wash(atom/movable/O)
|
||||
if(!on) return
|
||||
|
||||
if(ismob(O))
|
||||
mobpresent += 1
|
||||
check_heat(O)
|
||||
@@ -303,6 +304,13 @@
|
||||
else
|
||||
O.clean_blood()
|
||||
|
||||
else
|
||||
O.clean_blood()
|
||||
|
||||
if(istype(O,/obj/item))
|
||||
var/obj/item/Item = O
|
||||
Item.extinguish()
|
||||
|
||||
if(isturf(loc))
|
||||
var/turf/tile = loc
|
||||
loc.clean_blood()
|
||||
@@ -310,7 +318,6 @@
|
||||
if(is_cleanable(E))
|
||||
qdel(E)
|
||||
|
||||
|
||||
/obj/machinery/shower/process()
|
||||
if(!on || !mobpresent) return
|
||||
for(var/mob/living/carbon/C in loc)
|
||||
|
||||
@@ -1,38 +1,7 @@
|
||||
/client/var/adminhelptimerid = 0
|
||||
/proc/keywords_lookup(var/msg)
|
||||
|
||||
/client/proc/giveadminhelpverb()
|
||||
src.verbs |= /client/verb/adminhelp
|
||||
adminhelptimerid = 0
|
||||
|
||||
//This is a list of words which are ignored by the parser when comparing message contents for names. MUST BE IN LOWER CASE!
|
||||
var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","alien","as")
|
||||
|
||||
|
||||
|
||||
/client/verb/adminhelp(msg as text)
|
||||
set category = "Admin"
|
||||
set name = "Adminhelp"
|
||||
|
||||
if(say_disabled) //This is here to try to identify lag problems
|
||||
usr << "<span class='danger'>Speech is currently admin-disabled.</span>"
|
||||
return
|
||||
|
||||
//handle muting and automuting
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
src << "<span class='danger'>Error: Admin-PM: You cannot send adminhelps (Muted).</span>"
|
||||
return
|
||||
if(src.handle_spam_prevention(msg,MUTE_ADMINHELP))
|
||||
return
|
||||
|
||||
//clean the input msg
|
||||
if(!msg) return
|
||||
msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN))
|
||||
if(!msg) return
|
||||
var/original_msg = msg
|
||||
|
||||
//remove out adminhelp verb temporarily to prevent spamming of admins.
|
||||
src.verbs -= /client/verb/adminhelp
|
||||
adminhelptimerid = addtimer(src,"giveadminhelpverb",1200) //2 minute cooldown of admin helps
|
||||
//This is a list of words which are ignored by the parser when comparing message contents for names. MUST BE IN LOWER CASE!
|
||||
var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","alien","as", "i")
|
||||
|
||||
//explode the input msg into a list
|
||||
var/list/msglist = text2list(msg, " ")
|
||||
@@ -83,15 +52,50 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
|
||||
mobs_found += found
|
||||
if(!ai_found && isAI(found))
|
||||
ai_found = 1
|
||||
msg += "<b><font color='black'>[original_word] (<A HREF='?_src_=holder;adminmoreinfo=\ref[found]'>?</A>) (<A HREF='?_src_=holder;adminplayerobservefollow=\ref[found]'>FLW</A>)</font></b> "
|
||||
msg += "[original_word]<font size='1' color='black'>(<A HREF='?_src_=holder;adminmoreinfo=\ref[found]'>?</A>|<A HREF='?_src_=holder;adminplayerobservefollow=\ref[found]'>F</A>)</font> "
|
||||
continue
|
||||
msg += "[original_word] "
|
||||
return msg
|
||||
|
||||
|
||||
/client/var/adminhelptimerid = 0
|
||||
|
||||
/client/proc/giveadminhelpverb()
|
||||
src.verbs |= /client/verb/adminhelp
|
||||
adminhelptimerid = 0
|
||||
|
||||
/client/verb/adminhelp(msg as text)
|
||||
set category = "Admin"
|
||||
set name = "Adminhelp"
|
||||
|
||||
if(say_disabled) //This is here to try to identify lag problems
|
||||
usr << "<span class='danger'>Speech is currently admin-disabled.</span>"
|
||||
return
|
||||
|
||||
//handle muting and automuting
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
src << "<span class='danger'>Error: Admin-PM: You cannot send adminhelps (Muted).</span>"
|
||||
return
|
||||
if(src.handle_spam_prevention(msg,MUTE_ADMINHELP))
|
||||
return
|
||||
|
||||
//clean the input msg
|
||||
if(!msg) return
|
||||
msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN))
|
||||
if(!msg) return
|
||||
var/original_msg = msg
|
||||
|
||||
//remove our adminhelp verb temporarily to prevent spamming of admins.
|
||||
src.verbs -= /client/verb/adminhelp
|
||||
adminhelptimerid = addtimer(src,"giveadminhelpverb",1200) //2 minute cooldown of admin helps
|
||||
|
||||
msg = keywords_lookup(msg)
|
||||
|
||||
if(!mob) return //this doesn't happen
|
||||
|
||||
var/ref_mob = "\ref[mob]"
|
||||
var/ref_client = "\ref[src]"
|
||||
msg = "<span class='adminnotice'><b><font color=red>HELP: </font>[key_name_admin(src)] (<A HREF='?_src_=holder;adminmoreinfo=[ref_mob]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=[ref_mob]'>PP</A>) (<A HREF='?_src_=vars;Vars=[ref_mob]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=[ref_mob]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservefollow=[ref_mob]'>FLW</A>) (<A HREF='?_src_=holder;traitor=[ref_mob]'>TP</A>)[ai_found ? " (<A HREF='?_src_=holder;adminchecklaws=[ref_mob]'>CL</A>)" : ""] (<A HREF='?_src_=holder;rejectadminhelp=[ref_client]'>REJT</A>):</b> [msg]</span>"
|
||||
msg = "<span class='adminnotice'><b><font color=red>HELP: </font><A HREF='?priv_msg=[ckey];ahelp_reply=1'>[key_name(src)]</A> (<A HREF='?_src_=holder;adminmoreinfo=[ref_mob]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=[ref_mob]'>PP</A>) (<A HREF='?_src_=vars;Vars=[ref_mob]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=[ref_mob]'>SM</A>) (<A HREF='?_src_=holder;adminplayerobservefollow=[ref_mob]'>FLW</A>) (<A HREF='?_src_=holder;traitor=[ref_mob]'>TP</A>) (<A HREF='?_src_=holder;rejectadminhelp=[ref_client]'>REJT</A>):</b> [msg]</span>"
|
||||
|
||||
//send this msg to all admins
|
||||
|
||||
|
||||
@@ -32,6 +32,26 @@
|
||||
cmd_admin_pm(targets[target],null)
|
||||
feedback_add_details("admin_verb","APM") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_ahelp_reply(whom)
|
||||
if(prefs.muted & MUTE_ADMINHELP)
|
||||
src << "<font color='red'>Error: Admin-PM: You are unable to use admin PM-s (muted).</font>"
|
||||
return
|
||||
var/client/C
|
||||
if(istext(whom))
|
||||
if(cmptext(copytext(whom,1,2),"@"))
|
||||
whom = findStealthKey(whom)
|
||||
C = directory[whom]
|
||||
else if(istype(whom,/client))
|
||||
C = whom
|
||||
if(!C)
|
||||
if(holder) src << "<font color='red'>Error: Admin-PM: Client not found.</font>"
|
||||
return
|
||||
message_admins("[key_name_admin(src)] has started replying to [key_name(C, 0, 0)]'s admin help.")
|
||||
var/msg = input(src,"Message:", "Private message to [key_name(C, 0, 0)]") as text|null
|
||||
if (!msg)
|
||||
message_admins("[key_name_admin(src)] has cancelled their reply to [key_name(C, 0, 0)]'s admin help.")
|
||||
return
|
||||
cmd_admin_pm(whom, msg)
|
||||
|
||||
//takes input from cmd_admin_pm_context, cmd_admin_pm_panel or /client/Topic and sends them a PM.
|
||||
//Fetching a message if needed. src is the sender and C is the target client
|
||||
@@ -71,14 +91,15 @@
|
||||
if(!msg) return
|
||||
|
||||
msg = emoji_parse(msg)
|
||||
var/keywordparsedmsg = keywords_lookup(msg)
|
||||
|
||||
if(C.holder)
|
||||
if(holder) //both are admins
|
||||
C << "<font color='red'>Admin PM from-<b>[key_name(src, C, 1)]</b>: [msg]</font>"
|
||||
src << "<font color='blue'>Admin PM to-<b>[key_name(C, src, 1)]</b>: [msg]</font>"
|
||||
C << "<font color='red'>Admin PM from-<b>[key_name(src, C, 1)]</b>: [keywordparsedmsg]</font>"
|
||||
src << "<font color='blue'>Admin PM to-<b>[key_name(C, src, 1)]</b>: [keywordparsedmsg]</font>"
|
||||
|
||||
else //recipient is an admin but sender is not
|
||||
C << "<font color='red'>Reply PM from-<b>[key_name(src, C, 1)]</b>: [msg]</font>"
|
||||
C << "<font color='red'>Reply PM from-<b>[key_name(src, C, 1)]</b>: [keywordparsedmsg]</font>"
|
||||
src << "<font color='blue'>PM to-<b>Admins</b>: [msg]</font>"
|
||||
|
||||
//play the recieving admin the adminhelp sound (if they have them enabled)
|
||||
@@ -117,4 +138,4 @@
|
||||
//we don't use message_admins here because the sender/receiver might get it too
|
||||
for(var/client/X in admins)
|
||||
if(X.key!=key && X.key!=C.key) //check client/X is an admin and isn't the sender or recipient
|
||||
X << "<B><font color='blue'>PM: [key_name(src, X, 0)]->[key_name(C, X, 0)]:</B> \blue [msg]</font>" //inform X
|
||||
X << "<B><font color='blue'>PM: [key_name(src, X, 0)]->[key_name(C, X, 0)]:</B> \blue [keywordparsedmsg]</font>" //inform X
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
if(!msg) return
|
||||
|
||||
log_admin("[key_name(src)] : [msg]")
|
||||
|
||||
msg = keywords_lookup(msg)
|
||||
if(check_rights(R_ADMIN,0))
|
||||
msg = "<span class='admin'><span class='prefix'>ADMIN:</span> <EM>[key_name(usr, 1)]</EM> (<a href='?_src_=holder;adminplayerobservefollow=\ref[mob]'>FLW</A>): <span class='message'>[msg]</span></span>"
|
||||
admins << msg
|
||||
|
||||
@@ -31,6 +31,9 @@
|
||||
|
||||
//Admin PM
|
||||
if(href_list["priv_msg"])
|
||||
if (href_list["ahelp_reply"])
|
||||
cmd_ahelp_reply(href_list["priv_msg"])
|
||||
return
|
||||
cmd_admin_pm(href_list["priv_msg"],null)
|
||||
return
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/obj/item/clothing
|
||||
name = "clothing"
|
||||
burn_state = 0 //Burnable
|
||||
var/flash_protect = 0 //Malk: What level of bright light protection item has. 1 = Flashers, Flashes, & Flashbangs | 2 = Welding | -1 = OH GOD WELDING BURNT OUT MY RETINAS
|
||||
var/tint = 0 //Malk: Sets the item's level of visual impairment tint, normally set to the same as flash_protect
|
||||
var/up = 0 // but seperated to allow items to protect but not impair vision, like space helmets
|
||||
@@ -23,6 +24,7 @@
|
||||
w_class = 1.0
|
||||
throwforce = 0
|
||||
slot_flags = SLOT_EARS
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/clothing/ears/earmuffs
|
||||
name = "earmuffs"
|
||||
@@ -32,7 +34,7 @@
|
||||
flags = EARBANGPROTECT
|
||||
strip_delay = 15
|
||||
put_on_delay = 25
|
||||
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
//Glasses
|
||||
/obj/item/clothing/glasses
|
||||
@@ -48,7 +50,7 @@
|
||||
var/list/icon/current = list() //the current hud icons
|
||||
strip_delay = 20
|
||||
put_on_delay = 25
|
||||
|
||||
burn_state = -1 //Not Burnable
|
||||
/*
|
||||
SEE_SELF // can see self, no matter what
|
||||
SEE_MOBS // can see all mobs, no matter what
|
||||
@@ -180,6 +182,7 @@ BLIND // can't see anything
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/clothing/suit/space
|
||||
name = "space suit"
|
||||
@@ -201,6 +204,7 @@ BLIND // can't see anything
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
|
||||
strip_delay = 80
|
||||
put_on_delay = 80
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
//Under clothing
|
||||
/obj/item/clothing/under
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
item_color="yellow"
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/gloves/color/yellow/fake
|
||||
desc = "These gloves will protect the wearer from electric shock. They don't feel like rubber..."
|
||||
@@ -19,6 +20,7 @@
|
||||
siemens_coefficient = 1 //Set to a default of 1, gets overridden in New()
|
||||
permeability_coefficient = 0.05
|
||||
item_color="yellow"
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/gloves/color/fyellow/New()
|
||||
siemens_coefficient = pick(0,0.5,0.5,0.5,0.5,0.75,1.5)
|
||||
@@ -33,7 +35,7 @@
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/gloves/color/black/hos
|
||||
item_color = "hosred" //Exists for washing machines. Is not different from black gloves in any way.
|
||||
@@ -148,6 +150,7 @@
|
||||
permeability_coefficient = 0.01
|
||||
item_color="white"
|
||||
transfer_prints = TRUE
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/gloves/color/latex/nitrile
|
||||
name = "nitrile gloves"
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/clothing/gloves/combat
|
||||
name = "combat gloves"
|
||||
@@ -33,4 +34,5 @@
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
heat_protection = HANDS
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
|
||||
burn_state = -1 //Won't burn in fires
|
||||
@@ -58,6 +58,7 @@
|
||||
desc = "A collectable welding helmet. Now with 80% less lead! Not for actual welding. Any welding done while wearing this helmet is done so at the owner's own risk!"
|
||||
icon_state = "welding"
|
||||
item_state = "welding"
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/head/collectable/slime
|
||||
name = "collectable slime hat"
|
||||
@@ -110,9 +111,11 @@
|
||||
desc = "Go Red! I mean Green! I mean Red! No Green!"
|
||||
icon_state = "thunderdome"
|
||||
item_state = "thunderdome"
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/head/collectable/swat
|
||||
name = "collectable SWAT helmet"
|
||||
desc = "That's not real blood. That's red paint." //Reference to the actual description
|
||||
icon_state = "swat"
|
||||
item_state = "swat"
|
||||
item_state = "swat"
|
||||
burn_state = -1 //Won't burn in fires
|
||||
@@ -9,6 +9,7 @@
|
||||
armor = list(melee = 15, bullet = 5, laser = 20,energy = 10, bomb = 20, bio = 10, rad = 20)
|
||||
flags_inv = 0
|
||||
action_button_name = "Toggle Helmet Light"
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
attack_self(mob/user)
|
||||
if(!isturf(user.loc))
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
heat_protection = HEAD
|
||||
max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT
|
||||
strip_delay = 60
|
||||
burn_state = -1 //Won't burn in fires
|
||||
var/obj/machinery/camera/portable/helmetCam = null
|
||||
var/spawnWithHelmetCam = 0
|
||||
var/canAttachCam = 0
|
||||
|
||||
@@ -57,13 +57,6 @@
|
||||
flags = BLOCKHAIR
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||
|
||||
/obj/item/clothing/head/that
|
||||
name = "sturdy top-hat"
|
||||
desc = "It's an amish looking armored top hat."
|
||||
icon_state = "tophat"
|
||||
item_state = "that"
|
||||
flags_inv = 0
|
||||
|
||||
/obj/item/clothing/head/cardborg
|
||||
name = "cardborg helmet"
|
||||
desc = "A helmet made out of a box."
|
||||
@@ -215,6 +208,7 @@
|
||||
throw_range = 5
|
||||
w_class = 2.0
|
||||
attack_verb = list("warned", "cautioned", "smashed")
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/head/santa
|
||||
name = "santa hat"
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
action_button_name = "Toggle Welding Helmet"
|
||||
visor_flags = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/head/welding/attack_self()
|
||||
toggle()
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
action_button_name = "Adjust Breath Mask"
|
||||
ignore_maskadjust = 0
|
||||
flags_cover = MASKCOVERSMOUTH
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/mask/breath/attack_self(var/mob/user)
|
||||
adjustmask(user)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
gas_transfer_coefficient = 0.01
|
||||
permeability_coefficient = 0.01
|
||||
flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
// **** Welding gas mask ****
|
||||
|
||||
@@ -228,6 +229,7 @@
|
||||
icon_state = "clown"
|
||||
item_state = "clown_hat"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/clothing/mask/gas/clown_hat/attack_self(mob/user)
|
||||
|
||||
@@ -252,6 +254,7 @@
|
||||
icon_state = "sexyclown"
|
||||
item_state = "sexyclown"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/clothing/mask/gas/mime
|
||||
name = "mime mask"
|
||||
@@ -260,6 +263,7 @@
|
||||
icon_state = "mime"
|
||||
item_state = "mime"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/clothing/mask/gas/monkeymask
|
||||
name = "monkey mask"
|
||||
@@ -268,6 +272,7 @@
|
||||
icon_state = "monkeymask"
|
||||
item_state = "monkeymask"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/clothing/mask/gas/sexymime
|
||||
name = "sexy mime mask"
|
||||
@@ -276,6 +281,7 @@
|
||||
icon_state = "sexymime"
|
||||
item_state = "sexymime"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/clothing/mask/gas/death_commando
|
||||
name = "Death Commando Mask"
|
||||
@@ -286,10 +292,12 @@
|
||||
name = "cyborg visor"
|
||||
desc = "Beep boop."
|
||||
icon_state = "death"
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/clothing/mask/gas/owl_mask
|
||||
name = "owl mask"
|
||||
desc = "Twoooo!"
|
||||
flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS
|
||||
icon_state = "owl"
|
||||
flags_cover = MASKCOVERSEYES
|
||||
flags_cover = MASKCOVERSEYES
|
||||
burn_state = 0 //Burnable
|
||||
@@ -8,7 +8,7 @@
|
||||
action_button_name = "Toggle Magboots"
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/shoes/magboots/verb/toggle()
|
||||
set name = "Toggle Magboots"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
permeability_coefficient = 0.05
|
||||
flags = NOSLIP
|
||||
origin_tech = "syndicate=3"
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/shoes/sneakers/mime
|
||||
name = "mime shoes"
|
||||
@@ -35,6 +36,7 @@
|
||||
permeability_coefficient = 0.01
|
||||
flags = NOSLIP
|
||||
armor = list(melee = 40, bullet = 30, laser = 25, energy = 25, bomb = 50, bio = 30, rad = 30)
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/shoes/sandal
|
||||
desc = "A pair of rather plain, wooden sandals."
|
||||
@@ -58,6 +60,7 @@
|
||||
slowdown = SHOES_SLOWDOWN+1
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes
|
||||
desc = "The prankster's standard-issue clowning shoes. Damn, they're huge!"
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
||||
strip_delay = 60
|
||||
put_on_delay = 40
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/suit/armor/vest
|
||||
name = "armor"
|
||||
@@ -45,6 +46,7 @@
|
||||
cold_protection = CHEST|GROIN|ARMS|HANDS
|
||||
heat_protection = CHEST|GROIN|ARMS|HANDS
|
||||
strip_delay = 70
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/clothing/suit/armor/vest/warden/alt
|
||||
name = "warden's armored jacket"
|
||||
@@ -112,7 +114,7 @@
|
||||
desc = "An armored vest with a detective's badge on it."
|
||||
icon_state = "detective-armor"
|
||||
allowed = list(/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/device/flashlight,/obj/item/weapon/gun/energy,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter,/obj/item/device/detective_scanner,/obj/item/device/taperecorder)
|
||||
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
|
||||
//Reactive armor
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
|
||||
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
|
||||
unacidable = 1
|
||||
burn_state = -1 //Not Burnable
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
|
||||
/obj/item/clothing/suit/bio_suit
|
||||
@@ -27,6 +28,7 @@
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
unacidable = 1
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
//Standard biosuit, orange stripe
|
||||
/obj/item/clothing/head/bio_hood/general
|
||||
|
||||
@@ -100,6 +100,7 @@
|
||||
item_state = "hazard"
|
||||
blood_overlay_type = "armor"
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner,)
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
//Lawyer
|
||||
/obj/item/clothing/suit/toggle/lawyer
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
blood_overlay_type = "armor"
|
||||
body_parts_covered = CHEST
|
||||
allowed = list (/obj/item/weapon/gun/energy/laser/bluetag)
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/suit/redtag
|
||||
name = "red laser tag armor"
|
||||
@@ -25,6 +26,7 @@
|
||||
blood_overlay_type = "armor"
|
||||
body_parts_covered = CHEST
|
||||
allowed = list (/obj/item/weapon/gun/energy/laser/redtag)
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/*
|
||||
* Costume
|
||||
@@ -88,7 +90,7 @@
|
||||
w_class = 3
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy)
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
|
||||
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/suit/hastur
|
||||
name = "\improper Hastur's robe"
|
||||
@@ -236,7 +238,8 @@
|
||||
desc = "Pompadour not included."
|
||||
icon_state = "leatherjacket"
|
||||
item_state = "hostrench"
|
||||
|
||||
burn_state = -1 //Not Burnable
|
||||
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
||||
|
||||
/obj/item/clothing/suit/jacket/leather/overcoat
|
||||
name = "leather overcoat"
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
strip_delay = 60
|
||||
put_on_delay = 60
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/clothing/suit/fire/firefighter
|
||||
icon_state = "firesuit"
|
||||
@@ -65,7 +66,7 @@
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/clothing/suit/bomb_suit
|
||||
name = "bomb suit"
|
||||
@@ -86,7 +87,7 @@
|
||||
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
|
||||
strip_delay = 70
|
||||
put_on_delay = 70
|
||||
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
|
||||
/obj/item/clothing/head/bomb_hood/security
|
||||
@@ -111,7 +112,7 @@
|
||||
strip_delay = 60
|
||||
put_on_delay = 60
|
||||
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH
|
||||
|
||||
burn_state = -1 //Not Burnable
|
||||
|
||||
/obj/item/clothing/suit/radiation
|
||||
name = "radiation suit"
|
||||
@@ -129,3 +130,4 @@
|
||||
strip_delay = 60
|
||||
put_on_delay = 60
|
||||
flags_inv = HIDEJUMPSUIT
|
||||
burn_state = -1 //Not Burnable
|
||||
@@ -8,6 +8,7 @@
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
unacidable = 1
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/head/wizard/red
|
||||
name = "red wizard hat"
|
||||
@@ -63,7 +64,7 @@
|
||||
strip_delay = 50
|
||||
put_on_delay = 50
|
||||
unacidable = 1
|
||||
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/red
|
||||
name = "red wizard robe"
|
||||
@@ -117,6 +118,7 @@
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/clothing/head/wizard/marisa/fake
|
||||
name = "witch hat"
|
||||
@@ -126,6 +128,7 @@
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/clothing/suit/wizrobe/marisa/fake
|
||||
name = "witch robe"
|
||||
@@ -136,3 +139,4 @@
|
||||
permeability_coefficient = 1
|
||||
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
unacidable = 0
|
||||
burn_state = 0 //Burnable
|
||||
@@ -9,6 +9,7 @@
|
||||
origin_tech = "syndicate=3"
|
||||
var/list/clothing_choices = list()
|
||||
var/malfunctioning = 0
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/under/chameleon/New()
|
||||
..()
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
icon_state = "black"
|
||||
item_state = "bl_suit"
|
||||
item_color = "black"
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/under/color/grey
|
||||
name = "grey jumpsuit"
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
item_state = "gy_suit"
|
||||
item_color = "chief"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10)
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/under/rank/atmospheric_technician
|
||||
desc = "It's a jumpsuit worn by atmospheric technicians."
|
||||
@@ -13,6 +14,7 @@
|
||||
icon_state = "atmos"
|
||||
item_state = "atmos_suit"
|
||||
item_color = "atmos"
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/under/rank/engineer
|
||||
desc = "It's an orange high visibility jumpsuit worn by engineers. It has minor radiation shielding."
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
item_state = "armor"
|
||||
can_adjust = 0
|
||||
strip_delay = 100
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/under/waiter
|
||||
name = "waiter's outfit"
|
||||
@@ -115,6 +116,7 @@
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
|
||||
can_adjust = 0
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/under/acj
|
||||
name = "administrative cybernetic jumpsuit"
|
||||
@@ -131,6 +133,7 @@
|
||||
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
|
||||
can_adjust = 0
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/under/owl
|
||||
name = "owl uniform"
|
||||
@@ -338,6 +341,7 @@
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
fitted = NO_FEMALE_UNIFORM
|
||||
can_adjust = 0
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
/obj/item/clothing/under/sundress
|
||||
name = "sundress"
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
desc = "A bronze medal."
|
||||
icon_state = "bronze"
|
||||
item_color = "bronze"
|
||||
burn_state = -1 //Won't burn in fires
|
||||
|
||||
//Pinning medals on people
|
||||
/obj/item/clothing/tie/medal/attack(mob/living/carbon/human/M, mob/living/user)
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
var/gulp_size = 5 //This is now officially broken ... need to think of a nice way to fix it.
|
||||
possible_transfer_amounts = list(5,10,25)
|
||||
volume = 50
|
||||
burn_state = -1
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/New()
|
||||
..()
|
||||
|
||||
@@ -6,6 +6,20 @@
|
||||
icon_state = "glass_empty"
|
||||
amount_per_transfer_from_this = 10
|
||||
volume = 50
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 5
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fire_act()
|
||||
if(!reagents.total_volume)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/burn()
|
||||
reagents.total_volume = 0 //Burns away all the alcohol :(
|
||||
reagents.reagent_list.Cut()
|
||||
on_reagent_change()
|
||||
extinguish()
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/on_reagent_change()
|
||||
overlays.Cut()
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
/obj/item/weapon/reagent_containers/food
|
||||
possible_transfer_amounts = null
|
||||
volume = 50 //Sets the default container amount for all food items.
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/New()
|
||||
..()
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
icon = 'icons/obj/hydroponics/harvest.dmi'
|
||||
potency = -1
|
||||
dried_type = -1 //bit different. saves us from having to define each stupid grown's dried_type as itself. If you don't want a plant to be driable (watermelons) set this to null in the time definition.
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/New(newloc, new_potency = 50)
|
||||
..()
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
/obj/item/weapon/grown // Grown weapons
|
||||
name = "grown_weapon"
|
||||
icon = 'icons/obj/hydroponics/harvest.dmi'
|
||||
burn_state = 0 //Burnable
|
||||
var/seed = null
|
||||
var/plantname = ""
|
||||
var/product //a type path
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
icon = 'icons/obj/hydroponics/seeds.dmi'
|
||||
icon_state = "seed" //Unknown plant seed - these shouldn't exist in-game.
|
||||
w_class = 1 //Pocketable.
|
||||
burn_state = 0 //Burnable
|
||||
var/plantname = "Plants" //Name of plant when planted.
|
||||
var/product //A type path. The thing that is created when the plant is harvested.
|
||||
var/species = "" //Used to update icons. Should match the name in the sprites.
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
anchored = 0
|
||||
density = 1
|
||||
opacity = 0
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 30
|
||||
var/state = 0
|
||||
var/list/allowed_books = list(/obj/item/weapon/book, /obj/item/weapon/spellbook, /obj/item/weapon/storage/book) //Things allowed in the bookcase
|
||||
|
||||
@@ -165,6 +167,7 @@
|
||||
throw_range = 5
|
||||
w_class = 3 //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
|
||||
attack_verb = list("bashed", "whacked", "educated")
|
||||
burn_state = 0 //Burnable
|
||||
var/dat //Actual page content
|
||||
var/due_date = 0 //Game time in 1/10th seconds
|
||||
var/author //Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
force = 10.0
|
||||
throwforce = 0
|
||||
w_class = 4.0
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 20
|
||||
|
||||
/obj/item/weapon/moneybag/attack_hand(user as mob)
|
||||
var/amt_gold = 0
|
||||
|
||||
@@ -116,17 +116,17 @@
|
||||
gib()
|
||||
return
|
||||
else
|
||||
shred_clothing(1,150)
|
||||
var/atom/target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src)))
|
||||
throw_at(target, 200, 4)
|
||||
//return
|
||||
// var/atom/target = get_edge_target_turf(user, get_dir(src, get_step_away(user, src)))
|
||||
//user.throw_at(target, 200, 4)
|
||||
|
||||
if (2.0)
|
||||
b_loss += 60
|
||||
|
||||
f_loss += 60
|
||||
|
||||
shred_clothing(1,50)
|
||||
|
||||
if (prob(getarmor(null, "bomb")))
|
||||
b_loss = b_loss/1.5
|
||||
f_loss = f_loss/1.5
|
||||
@@ -140,6 +140,8 @@
|
||||
b_loss += 30
|
||||
if (prob(getarmor(null, "bomb")))
|
||||
b_loss = b_loss/2
|
||||
else
|
||||
shred_clothing(1,10)
|
||||
if (!istype(ears, /obj/item/clothing/ears/earmuffs))
|
||||
adjustEarDamage(15,60)
|
||||
if (prob(50))
|
||||
|
||||
@@ -10,9 +10,10 @@
|
||||
total_brute += O.brute_dam
|
||||
total_burn += O.burn_dam
|
||||
health = maxHealth - getOxyLoss() - getToxLoss() - getCloneLoss() - total_burn - total_brute
|
||||
//TODO: fix husking
|
||||
if( ((maxHealth - total_burn) < config.health_threshold_dead) && stat == DEAD )
|
||||
ChangeToHusk()
|
||||
if(bodytemperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST)
|
||||
shred_clothing()
|
||||
med_hud_set_health()
|
||||
med_hud_set_status()
|
||||
return
|
||||
|
||||
@@ -390,3 +390,83 @@
|
||||
src << "<span class='danger'>You are trying to equip this item to an unsupported inventory slot. Report this to a coder!</span>"
|
||||
return
|
||||
|
||||
//Cycles through all clothing slots and tests them for destruction
|
||||
/mob/living/carbon/human/proc/shred_clothing(var/bomb,var/shock)
|
||||
var/covered_parts //The body parts that are protected by exterior clothing/armor
|
||||
var/head_absorbed = 0 //How much of the shock the headgear absorbs when it is shredded. -1=it survives
|
||||
var/suit_absorbed = 0 //How much of the shock the exosuit absorbs when it is shredded. -1=it survives
|
||||
|
||||
//Backpacks can never be protected but are annoying as fuck to lose, so they get a lower chance to be shredded
|
||||
if(back)
|
||||
back.shred(bomb,shock-30,src)
|
||||
|
||||
if(head)
|
||||
covered_parts |= head.flags_inv
|
||||
head_absorbed = head.shred(bomb,shock,src)
|
||||
if(wear_mask)
|
||||
var/absorbed = ((covered_parts & HIDEMASK) ? head_absorbed : 0) //Check if clothing covering this part absorbed any of the shock
|
||||
if(!(absorbed < 0))
|
||||
//Masks can be used to shield other parts, but are simplified to simply add their absorbsion to the head armor if it covers the face
|
||||
var/mask_absorbed = wear_mask.shred(bomb,shock-absorbed,src)
|
||||
if(wear_mask.flags_inv & HIDEFACE)
|
||||
covered_parts |= wear_mask.flags_inv
|
||||
if(mask_absorbed < 0) //If the mask didn't get shredded, everything else on the head is protected
|
||||
head_absorbed = -1
|
||||
else
|
||||
head_absorbed += mask_absorbed
|
||||
if(ears)
|
||||
var/absorbed = ((covered_parts & HIDEEARS) ? head_absorbed : 0)
|
||||
if(!(absorbed < 0))
|
||||
ears.shred(bomb,shock-absorbed,src)
|
||||
if(glasses)
|
||||
var/absorbed = ((covered_parts & HIDEEYES) ? head_absorbed : 0)
|
||||
if(!(absorbed < 0))
|
||||
glasses.shred(bomb,shock-absorbed,src)
|
||||
|
||||
if(wear_suit)
|
||||
covered_parts |= wear_suit.flags_inv
|
||||
suit_absorbed = wear_suit.shred(bomb,shock,src)
|
||||
if(gloves)
|
||||
var/absorbed = ((covered_parts & HIDEGLOVES) ? suit_absorbed : 0)
|
||||
if(!(absorbed < 0))
|
||||
gloves.shred(bomb,shock-absorbed,src)
|
||||
if(shoes)
|
||||
var/absorbed = ((covered_parts & HIDESHOES) ? suit_absorbed : 0)
|
||||
if(!(absorbed < 0))
|
||||
shoes.shred(bomb,shock-absorbed,src)
|
||||
if(w_uniform)
|
||||
var/absorbed = ((covered_parts & HIDEJUMPSUIT) ? suit_absorbed : 0)
|
||||
if(!(absorbed < 0))
|
||||
w_uniform.shred(bomb,shock-absorbed,src)
|
||||
|
||||
/obj/item/proc/shred(var/bomb,var/shock,var/mob/living/carbon/human/Human)
|
||||
var/shredded
|
||||
|
||||
if(!bomb)
|
||||
if(burn_state != -1)
|
||||
shredded = 1 //No heat protection, it burns
|
||||
else
|
||||
shredded = -1 //Heat protection = Fireproof
|
||||
|
||||
else if(shock > 0)
|
||||
if(prob(min(90,max(10,shock))))
|
||||
shredded = armor["bomb"] + 10 //It gets shredded, but it also absorbs the shock the clothes underneath would recieve by this amount
|
||||
else
|
||||
shredded = -1 //It survives explosion
|
||||
|
||||
if(shredded > 0)
|
||||
if(Human) //Unequip if equipped
|
||||
Human.unEquip(src)
|
||||
|
||||
if(bomb)
|
||||
for(var/obj/item/Item in contents) //Empty out the contents
|
||||
Item.loc = src.loc
|
||||
spawn(1) //so the shreds aren't instantly deleted by the explosion
|
||||
var/obj/effect/decal/cleanable/shreds/Shreds = new(loc)
|
||||
Shreds.name = "shredded [src.name]"
|
||||
Shreds.desc = "The sad remains of what used to be a glorious [src.name]."
|
||||
qdel(src)
|
||||
else
|
||||
burn()
|
||||
|
||||
return shredded
|
||||
@@ -10,7 +10,7 @@
|
||||
var/obj/item/weapon/pen/haspen //The stored pen.
|
||||
var/obj/item/weapon/paper/toppaper //The topmost piece of paper.
|
||||
slot_flags = SLOT_BELT
|
||||
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/weapon/clipboard/New()
|
||||
update_icon()
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
icon_state = "folder"
|
||||
w_class = 2
|
||||
pressure_resistance = 2
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/obj/item/weapon/folder/blue
|
||||
desc = "A blue folder."
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
pressure_resistance = 0
|
||||
slot_flags = SLOT_HEAD
|
||||
body_parts_covered = HEAD
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 5
|
||||
|
||||
var/info //What's actually written on the paper.
|
||||
var/info_links //A different version of the paper which includes html links at fields and EOF
|
||||
@@ -26,7 +28,6 @@
|
||||
var/list/stamped
|
||||
var/rigged = 0
|
||||
var/spam_flag = 0
|
||||
var/burning = 0 //Whether or not the paper is on fire
|
||||
|
||||
|
||||
/obj/item/weapon/paper/New()
|
||||
@@ -39,6 +40,9 @@
|
||||
|
||||
|
||||
/obj/item/weapon/paper/update_icon()
|
||||
if(burn_state == 1)
|
||||
icon_state = "paper_onfire"
|
||||
return
|
||||
if(info)
|
||||
icon_state = "paper_words"
|
||||
return
|
||||
@@ -89,15 +93,6 @@
|
||||
spam_flag = 0
|
||||
|
||||
|
||||
/obj/item/weapon/paper/attack_hand()
|
||||
var/mob/living/carbon/M = usr
|
||||
if(burning)
|
||||
M << "<span class='danger'>Picking up a burning paper seems awfully stupid.</span>"
|
||||
return //Doesn't make any sense to pick up a burning paper
|
||||
else //Probably isn't necessary but it's safer
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/paper/attack_ai(mob/living/silicon/ai/user)
|
||||
var/dist
|
||||
if(istype(user) && user.current) //is AI
|
||||
@@ -278,7 +273,7 @@
|
||||
/obj/item/weapon/paper/attackby(obj/item/weapon/P, mob/living/carbon/human/user, params)
|
||||
..()
|
||||
|
||||
if(burning)
|
||||
if(burn_state == 1)
|
||||
return
|
||||
|
||||
if(is_blind(user))
|
||||
@@ -325,27 +320,21 @@
|
||||
|
||||
user.unEquip(src)
|
||||
user.visible_message("<span class='danger'>[user] lights [src] ablaze with [P]!</span>", "<span class='danger'>You light [src] on fire!</span>")
|
||||
burn(0, 100)
|
||||
fire_act()
|
||||
|
||||
|
||||
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/item/weapon/paper/fire_act()
|
||||
burn(1, 50)
|
||||
|
||||
/obj/item/weapon/paper/proc/burn(var/showmsg, var/burntime)
|
||||
if (burning)
|
||||
return
|
||||
if(showmsg)
|
||||
src.visible_message("<span class='warning'>[src] catches on fire.</span>")
|
||||
burning = 1
|
||||
..(0)
|
||||
icon_state = "paper_onfire"
|
||||
info = "[stars(info)]"
|
||||
spawn(burntime) //7 seconds
|
||||
src.visible_message("<span class='warning'>[src] burns away, leaving behind a pile of ashes.</span>")
|
||||
new /obj/effect/decal/cleanable/ash(src.loc)
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/item/weapon/paper/extinguish()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/*
|
||||
* Premade paper
|
||||
|
||||
@@ -8,9 +8,20 @@
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
pressure_resistance = 8
|
||||
burn_state = 0 //Burnable
|
||||
var/amount = 30 //How much paper is in the bin.
|
||||
var/list/papers = new/list() //List of papers put in the bin for reference.
|
||||
|
||||
/obj/item/weapon/paper_bin/fire_act()
|
||||
if(!amount)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/weapon/paper_bin/burn()
|
||||
amount = 0
|
||||
extinguish()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/paper_bin/MouseDrop(atom/over_object)
|
||||
var/mob/M = usr
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
icon_state = "film"
|
||||
item_state = "electropack"
|
||||
w_class = 1.0
|
||||
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/*
|
||||
* Photo
|
||||
@@ -28,6 +28,8 @@
|
||||
icon_state = "photo"
|
||||
item_state = "paper"
|
||||
w_class = 1.0
|
||||
burn_state = 0 //Burnable
|
||||
burntime = 5
|
||||
var/icon/img //Big photo image
|
||||
var/scribble //Scribble on the back.
|
||||
var/blueprints = 0 //Does it include the blueprints?
|
||||
@@ -92,7 +94,7 @@
|
||||
icon_state = "album"
|
||||
item_state = "briefcase"
|
||||
can_hold = list(/obj/item/weapon/photo)
|
||||
|
||||
burn_state = 0 //Burnable
|
||||
|
||||
/*
|
||||
* Camera
|
||||
|
||||
@@ -144,6 +144,11 @@
|
||||
|
||||
/datum/reagent/water/reaction_obj(var/obj/O, var/volume)
|
||||
src = null
|
||||
|
||||
if(istype(O,/obj/item))
|
||||
var/obj/item/Item = O
|
||||
Item.extinguish()
|
||||
|
||||
// Monkey cube
|
||||
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/monkeycube))
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O
|
||||
@@ -151,7 +156,7 @@
|
||||
cube.Expand()
|
||||
|
||||
// Dehydrated carp
|
||||
if(istype(O,/obj/item/toy/carpplushie/dehy_carp))
|
||||
else if(istype(O,/obj/item/toy/carpplushie/dehy_carp))
|
||||
var/obj/item/toy/carpplushie/dehy_carp/dehy = O
|
||||
dehy.Swell() // Makes a carp
|
||||
|
||||
|
||||
@@ -117,6 +117,7 @@
|
||||
flags = NOBLUDGEON
|
||||
amount = 25
|
||||
max_amount = 25
|
||||
burn_state = 0 //burnable
|
||||
|
||||
|
||||
/obj/item/stack/packageWrap/afterattack(var/obj/target as obj, mob/user as mob, proximity)
|
||||
|
||||
@@ -42,6 +42,16 @@
|
||||
pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/PSHOOM.ogg'
|
||||
alt_sound = 'sound/items/PSHOOM_2.ogg'
|
||||
|
||||
/obj/item/weapon/storage/part_replacer/bluespace/content_can_dump(atom/dest_object, mob/user)
|
||||
if(Adjacent(user))
|
||||
if(get_dist(user, dest_object) < 8)
|
||||
if(dest_object.storage_contents_dump_act(src, user))
|
||||
play_rped_sound()
|
||||
user.Beam(dest_object,icon_state="rped_upgrade",icon='icons/effects/effects.dmi',time=5)
|
||||
return 1
|
||||
user << "The [src.name] buzzes."
|
||||
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0)
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/storage/part_replacer/proc/play_rped_sound()
|
||||
//Plays the sound for RPED exhanging or installing parts.
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
/obj/machinery/computer/telescience
|
||||
name = "\improper Telepad Control Console"
|
||||
desc = "Used to teleport objects to and from the telescience telepad."
|
||||
icon_state = "teleport"
|
||||
icon_screen = "teleport"
|
||||
icon_keyboard = "teleport_key"
|
||||
circuit = /obj/item/weapon/circuitboard/telesci_console
|
||||
var/sending = 1
|
||||
var/obj/machinery/telepad/telepad = null
|
||||
|
||||
@@ -55,6 +55,32 @@
|
||||
|
||||
-->
|
||||
<div class="commit sansserif">
|
||||
<h2 class="date">27 June 2015</h2>
|
||||
<h3 class="author">Ikarrus updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Some objects can be burned now.</li>
|
||||
<li class="rscadd">Bombs will shred your clothes, with respect to their layering and armor values. Exterior clothing will shield clothing underneath. Storage items will drop their contents when bombed this way.</li>
|
||||
</ul>
|
||||
<h3 class="author">Laharl Montogmmery updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Click and drag from a bag/stachel/Storage Object to dump his contents on a tile near you. You can do so into another storage item, a bin, or the ground/table if there's nothing else.</li>
|
||||
<li class="rscadd">Storage Content Transfer : Bluespace Boogaloo! You can now transfer the content of the BoH/BRPED into tiles/bins/bags out of your reach. Range is 7 tiles.</li>
|
||||
</ul>
|
||||
<h3 class="author">MrStonedOne updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="tweak">Admins will now receive a notification when one of them starts to reply to an adminhelp to cut down on multiple responses to adminhelps and let admins know when an adminhelp isn't getting replied to.</li>
|
||||
<li class="rscadd">The keyword finder in admin helps (adds a (?) link next to player names in the text of adminhelps) has been added for all player to admin pms, as well as admin say.</li>
|
||||
</ul>
|
||||
<h3 class="author">NullQuery updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="wip">Introduces html_interface, a module to streamline the management of browser windows.</li>
|
||||
<li class="rscadd">Adds playing cards that utilize a new HTML window management system.</li>
|
||||
</ul>
|
||||
<h3 class="author">Vekter updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
<li class="rscadd">Added a new military jacket to the Autodrobe and ClothesMate.</li>
|
||||
</ul>
|
||||
|
||||
<h2 class="date">26 June 2015</h2>
|
||||
<h3 class="author">Ikarrus updated:</h3>
|
||||
<ul class="changes bgimages16">
|
||||
|
||||
@@ -2981,3 +2981,29 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
|
||||
pudl:
|
||||
- rscadd: You can now play games of mastermind to unlock abandoned crates found
|
||||
throughout space.
|
||||
2015-06-27:
|
||||
Ikarrus:
|
||||
- rscadd: Some objects can be burned now.
|
||||
- rscadd: Bombs will shred your clothes, with respect to their layering and armor
|
||||
values. Exterior clothing will shield clothing underneath. Storage items will
|
||||
drop their contents when bombed this way.
|
||||
Laharl Montogmmery:
|
||||
- rscadd: Click and drag from a bag/stachel/Storage Object to dump his contents
|
||||
on a tile near you. You can do so into another storage item, a bin, or the ground/table
|
||||
if there's nothing else.
|
||||
- rscadd: 'Storage Content Transfer : Bluespace Boogaloo! You can now transfer the
|
||||
content of the BoH/BRPED into tiles/bins/bags out of your reach. Range is 7
|
||||
tiles.'
|
||||
MrStonedOne:
|
||||
- tweak: Admins will now receive a notification when one of them starts to reply
|
||||
to an adminhelp to cut down on multiple responses to adminhelps and let admins
|
||||
know when an adminhelp isn't getting replied to.
|
||||
- rscadd: The keyword finder in admin helps (adds a (?) link next to player names
|
||||
in the text of adminhelps) has been added for all player to admin pms, as well
|
||||
as admin say.
|
||||
NullQuery:
|
||||
- wip: Introduces html_interface, a module to streamline the management of browser
|
||||
windows.
|
||||
- rscadd: Adds playing cards that utilize a new HTML window management system.
|
||||
Vekter:
|
||||
- rscadd: Added a new military jacket to the Autodrobe and ClothesMate.
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
author: NullQuery
|
||||
delete-after: True
|
||||
|
||||
changes:
|
||||
- wip: "Introduces html_interface, a module to streamline the management of browser windows."
|
||||
- rscadd: "Adds playing cards that utilize a new HTML window management system."
|
||||
@@ -1,36 +0,0 @@
|
||||
################################
|
||||
# Example Changelog File
|
||||
#
|
||||
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
|
||||
#
|
||||
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
|
||||
# When it is, any changes listed below will disappear.
|
||||
#
|
||||
# Valid Prefixes:
|
||||
# bugfix
|
||||
# wip (For works in progress)
|
||||
# tweak
|
||||
# soundadd
|
||||
# sounddel
|
||||
# rscadd (general adding of nice things)
|
||||
# rscdel (general deleting of nice things)
|
||||
# imageadd
|
||||
# imagedel
|
||||
# spellcheck (typo fixes)
|
||||
# experiment
|
||||
# tgs (TG-ported fixes?)
|
||||
#################################
|
||||
|
||||
# Your name.
|
||||
author: Vekter
|
||||
|
||||
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
|
||||
delete-after: True
|
||||
|
||||
# Any changes you've made. See valid prefix list above.
|
||||
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
|
||||
# SCREW THIS UP AND IT WON'T WORK.
|
||||
# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
|
||||
# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
|
||||
changes:
|
||||
- rscadd: "Added a new military jacket to the Autodrobe and ClothesMate."
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 288 KiB After Width: | Height: | Size: 288 KiB |
Reference in New Issue
Block a user