Merge remote-tracking branch 'upstream/master' into hereticadjustments

This commit is contained in:
keronshb
2021-05-11 17:58:41 -04:00
64 changed files with 3536 additions and 1495 deletions
+20
View File
@@ -571,6 +571,26 @@ Traitors and the like can also be revived with the previous role mostly intact.
message_admins("[key_name_admin(src)] has created a command report")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Create Command Report") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_make_priority_announcement()
set category = "Admin.Events"
set name = "Make Priority Announcement"
if(!check_rights(R_ADMIN))
return
var/input = input(usr, "Enter a priority announcement. Ensure it makes sense IC.", "What?", "") as message|null
if(!input)
return
var/title = input(src, "What should the title be?", "What?","") as text|null
var/special_name = input(src, "Who is making the announcement?", "Who?", "") as text|null
priority_announce(input, title, sender_override = special_name)
log_admin("[key_name(src)] has sent a priority announcement: [input]")
message_admins("[key_name_admin(src)] has made a priority announcement")
SSblackbox.record_feedback("tally", "admin_verb", 1, "Make Priority Announcement") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_change_command_name()
set category = "Admin.Events"
set name = "Change Command Name"
@@ -115,7 +115,7 @@
skewee.visible_message("<span class='warning'>[skewee] painfully slides back down [src].</span>")
if(skewee.stat >= UNCONSCIOUS)
return //by ratvar, no more spamming my deadchat, holy fuck
skewee.say("Oof, ouch owwie!!", forced = "fail brass skewer removal")
skewee.emote("pain")
return
skewee.visible_message("<span class='danger'>[skewee] comes free of [src] with a squelching pop!</span>", \
"<span class='boldannounce'>You come free of [src]!</span>")
@@ -44,7 +44,7 @@
return FALSE
/turf/proc/ImmediateCalculateAdjacentTurfs()
var/canpass = CANATMOSPASS(src, src)
var/canpass = CANATMOSPASS(src, src)
var/canvpass = CANVERTICALATMOSPASS(src, src)
for(var/direction in GLOB.cardinals_multiz)
var/turf/T = get_step_multiz(src, direction)
@@ -79,31 +79,27 @@
if (atmos_adjacent_turfs)
adjacent_turfs = atmos_adjacent_turfs.Copy()
else
adjacent_turfs = list()
return list() // don't bother checking diagonals, diagonals are going to be cardinal checks anyways.
if (!alldir)
return adjacent_turfs
var/turf/curloc = src
for (var/direction in GLOB.diagonals_multiz)
var/matchingDirections = 0
var/turf/S = get_step_multiz(curloc, direction)
if(!S)
var/turf/other
var/turf/mid
for (var/d in GLOB.diagonals)
other = get_step(src, d)
if(!other)
continue
// NS step
mid = get_step(src, NSCOMPONENT(d))
if((mid in adjacent_turfs) && (get_step(mid, EWCOMPONENT(d)) in adjacent_turfs))
adjacent_turfs += other
continue
// EW step
mid = get_step(src, EWCOMPONENT(d))
if((mid in adjacent_turfs) && (get_step(mid, NSCOMPONENT(d)) in adjacent_turfs))
adjacent_turfs += other
continue
for (var/checkDirection in GLOB.cardinals_multiz)
var/turf/checkTurf = get_step(S, checkDirection)
if(!S.atmos_adjacent_turfs || !S.atmos_adjacent_turfs[checkTurf])
continue
if (adjacent_turfs[checkTurf])
matchingDirections++
if (matchingDirections >= 2)
adjacent_turfs += S
break
return adjacent_turfs
/atom/proc/air_update_turf(command = 0)
-1
View File
@@ -240,7 +240,6 @@
desc = "Hey kid.. c'mere. Boss says we need to offload these, to any buyer, no questions asked. You pay us, we give you three of these guns, no strings attached. Locks are to ensure they get to PAYING customers."
cost = 2000
contraband = TRUE
can_private_buy = TRUE
contains = list(/obj/item/storage/fancy/cigarettes/derringer/smuggled,
/obj/item/storage/fancy/cigarettes/derringer/smuggled,
/obj/item/storage/fancy/cigarettes/derringer/smuggled,
+5 -1
View File
@@ -5,7 +5,7 @@
// You do not need to raise this if you are adding new values that have sane defaults.
// Only raise this value when changing the meaning/format/name/layout of an existing value
// where you would want the updater procs below to run
#define SAVEFILE_VERSION_MAX 50
#define SAVEFILE_VERSION_MAX 51
/*
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
@@ -295,6 +295,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
L -= ROLE_SYNDICATE
S["be_special"] << L
if(current_version < 51) //humans can have digi legs now, make sure they dont default to them or human players will murder me in my sleep
if(S["species"] == SPECIES_HUMAN)
features["legs"] = "Plantigrade"
/datum/preferences/proc/load_path(ckey,filename="preferences.sav")
if(!ckey)
return
+1 -3
View File
@@ -89,10 +89,8 @@
/datum/outfit/pirate/space
suit = /obj/item/clothing/suit/space/pirate
head = /obj/item/clothing/head/helmet/space/pirate/bandana
mask = /obj/item/clothing/mask/breath
suit_store = /obj/item/tank/internals/oxygen
ears = /obj/item/radio/headset/syndicate
id = /obj/item/card/id
id = /obj/item/card/id/pirate
/datum/outfit/pirate/space/captain
head = /obj/item/clothing/head/helmet/space/pirate
+4 -7
View File
@@ -206,6 +206,7 @@
icon_screen = "syndishuttle"
icon_keyboard = "syndie_key"
light_color = LIGHT_COLOR_RED
req_access = list(ACCESS_SYNDICATE)
possible_destinations = "pirateship_away;pirateship_home;pirateship_custom"
/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/pirate
@@ -214,8 +215,8 @@
shuttleId = "pirateship"
lock_override = CAMERA_LOCK_STATION
shuttlePortId = "pirateship_custom"
x_offset = 9
y_offset = 0
x_offset = 11
y_offset = 1
see_hidden = FALSE
/obj/docking_port/mobile/pirate
@@ -224,11 +225,7 @@
rechargeTime = 3 MINUTES
/obj/machinery/suit_storage_unit/pirate
suit_type = /obj/item/clothing/suit/space
helmet_type = /obj/item/clothing/head/helmet/space
mask_type = /obj/item/clothing/mask/breath
storage_type = /obj/item/tank/jetpack/void
// storage_type = /obj/item/tank/internals/oxygen
storage_type = /obj/item/tank/jetpack/carbondioxide
/obj/machinery/loot_locator
name = "Booty Locator"
+15 -8
View File
@@ -17,24 +17,29 @@
announceWhen = rand(4, 60)
supernova = new
SSsun.suns += supernova
if(prob(20))
power = rand(5,100) / 100
else
power = rand(5,5000) / 100
switch(rand(1,5))
if(1)
power = rand(5,100) / 100
if(2)
power = rand(5,500) / 100
if(3)
power = rand(5,1000) / 100
if(4, 5)
power = rand(5,5000) / 100
supernova.azimuth = rand(0, 359)
supernova.power_mod = 0
/datum/round_event/supernova/announce()
var/message = "Our tachyon-doppler array has detected a supernova in your vicinity. Peak flux from the supernova estimated to be [round(power,0.1)] times current solar flux. [power > 1 ? "Short burts of radiation may be possible, so please prepare accordingly." : ""]"
var/message = "[station_name()]: Our tachyon-doppler array has detected a supernova in your vicinity. Peak flux from the supernova estimated to be [round(power,0.1)] times current solar flux; if the supernova is close to your sun in the sky, your solars may receive this as a power boost.[power > 1 ? " Short burts of radiation may be possible, so please prepare accordingly." : ""] We hope you enjoy the light."
if(prob(power * 25))
priority_announce(message)
priority_announce(message, sender_override = "Nanotrasen Meteorology Division")
else
print_command_report(message)
/datum/round_event/supernova/start()
supernova.power_mod = 0.001 * power
var/explosion_size = rand(1000000000, 999999999)
var/explosion_size = rand(1000000000, 10000000000)
var/turf/epicenter = get_turf_in_angle(supernova.azimuth, SSmapping.get_station_center(), round(world.maxx * 0.45))
for(var/array in GLOB.doppler_arrays)
var/obj/machinery/doppler_array/A = array
@@ -51,13 +56,15 @@
supernova.power_mod = min(supernova.power_mod*1.2, power)
if(activeFor > endWhen-10)
supernova.power_mod /= 4
if(prob(round(supernova.power_mod)) && prob(5) && storm_count < 5 && !SSweather.get_weather_by_type(/datum/weather/rad_storm))
if(prob(round(supernova.power_mod*2)) && prob(3) && storm_count < 5 && !SSweather.get_weather_by_type(/datum/weather/rad_storm))
SSweather.run_weather(/datum/weather/rad_storm/supernova)
storm_count++
/datum/round_event/supernova/end()
SSsun.suns -= supernova
qdel(supernova)
priority_announce("The supernova's flux is now negligible. Radiation storms have ceased. Have a pleasant shift, [station_name()], and thank you for bearing with nature.",
sender_override = "Nanotrasen Meteorology Division")
/datum/weather/rad_storm/supernova
weather_duration_lower = 50
@@ -26,6 +26,17 @@
else
..()
/obj/item/reagent_containers/food/snacks/flatdough/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/kitchen/unrollingpin))
if(isturf(loc))
new /obj/item/reagent_containers/food/snacks/dough(loc)
to_chat(user, "<span class='notice'>You unflatten [src].</span>")
qdel(src)
else
to_chat(user, "<span class='warning'>You need to put [src] on a surface to undo the rolling!</span>")
else
..()
// sliceable into 3xdoughslices
/obj/item/reagent_containers/food/snacks/flatdough
@@ -98,6 +109,17 @@
else
..()
/obj/item/reagent_containers/food/snacks/piedough/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/kitchen/unrollingpin))
if(isturf(loc))
new /obj/item/reagent_containers/food/snacks/cakebatter(loc)
to_chat(user, "<span class='notice'>You unflatten [src].</span>")
qdel(src)
else
to_chat(user, "<span class='warning'>You need to put [src] on a surface to undo the rolling!</span>")
else
..()
/obj/item/reagent_containers/food/snacks/piedough
name = "pie dough"
desc = "Cook it to get a pie."
+1 -1
View File
@@ -152,7 +152,7 @@
var/newcolor = copytext_char(hash, 1, 7)
add_atom_colour("#[newcolor]", FIXED_COLOUR_PRIORITY)
light_color = "#[newcolor]"
set_light(1)
set_light(0.3)
/obj/structure/chisel_message/proc/pack()
var/list/data = list()
@@ -13,13 +13,15 @@
var/offset
while((offset = SSmapping.level_trait(other_z, ZTRAIT_DOWN)))
other_z += offset
if(other_z in .)
break // no infinite loops
. += other_z
other_z = center_z
while((offset = SSmapping.level_trait(other_z, ZTRAIT_UP)))
other_z += offset
if(other_z in .)
break // no infinite loops
. += other_z
return .
/proc/get_dir_multiz(turf/us, turf/them)
us = get_turf(us)
@@ -46,4 +48,4 @@
/turf/proc/below()
return get_step_multiz(src, DOWN)
@@ -1083,6 +1083,17 @@
. = ..()
set_species(race)
/mob/living/carbon/human/get_tooltip_data()
var/t_He = p_they(TRUE)
var/t_is = p_are()
. = list()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
if(skipface || get_visible_name() == "Unknown")
. += "You can't make out what species they are."
else
. += "[t_He] [t_is] a [dna.custom_species ? dna.custom_species : dna.species.name]"
SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, usr, .)
/mob/living/carbon/human/species/abductor
race = /datum/species/abductor
@@ -77,6 +77,8 @@
var/last_fire_update
var/hardcore_survival_score = 0
tooltips = TRUE
/// Unarmed parry data for human
/datum/block_parry_data/unarmed/human
parry_respect_clickdelay = TRUE
@@ -4,7 +4,7 @@
default_color = "FFFFFF"
species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS_PARTSONLY,WINGCOLOR,HAS_FLESH,HAS_BONE)
mutant_bodyparts = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF","mcolor3" = "FFFFFF","tail_human" = "None", "ears" = "None", "taur" = "None", "deco_wings" = "None")
mutant_bodyparts = list("mcolor" = "FFFFFF", "mcolor2" = "FFFFFF","mcolor3" = "FFFFFF","tail_human" = "None", "ears" = "None", "taur" = "None", "deco_wings" = "None", "legs" = "Plantigrade")
use_skintones = USE_SKINTONES_GRAYSCALE_CUSTOM
skinned_type = /obj/item/stack/sheet/animalhide/human
disliked_food = GROSS | RAW
@@ -1,5 +1,4 @@
/mob/living/silicon/examine(mob/user) //Displays a silicon's laws to ghosts
. = ..()
if(laws && isobserver(user))
. += "<b>[src] has the following laws:</b>"
for(var/law in laws.get_law_list(include_zeroth = TRUE))
@@ -48,6 +48,9 @@
. += "<span class='warning'>It doesn't seem to be responding.</span>"
if(DEAD)
. += "<span class='deadsay'>It looks like its system is corrupted and requires a reset.</span>"
SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, usr, .)
. += "*---------*</span>"
. += ..()
@@ -1326,3 +1326,18 @@
var/datum/computer_file/program/robotact/program = modularInterface.get_robotact()
if(program)
program.force_full_update()
/mob/living/silicon/robot/get_tooltip_data()
var/t_He = p_they(TRUE)
var/t_is = p_are()
. = list()
var/borg_type = module ? module : "Default"
//This isn't even used normally, but if that ever changes, just uncomment this
/* var/obj/item/borg_chameleon/chameleon = locate() in src
if(!chameleon)
chameleon = locate() in src.module
if(chameleon?.active)
borg_type = "Engineering"
*/
. += "[t_He] [t_is] a [borg_type] unit"
SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, usr, .)
@@ -125,3 +125,5 @@
var/sleeper_g
var/sleeper_r
var/sleeper_nv
tooltips = TRUE
+2 -2
View File
@@ -59,8 +59,8 @@
/mob/living/silicon/ComponentInitialize()
. = ..()
AddElement(/datum/element/flavor_text, _name = "Silicon Flavor Text", _save_key = "silicon_flavor_text")
AddElement(/datum/element/flavor_text, "", "Temporary Flavor Text", "This should be used only for things pertaining to the current round!")
AddElement(/datum/element/flavor_text, _name = "Silicon Flavor Text", _always_show = TRUE, _save_key = "silicon_flavor_text")
AddElement(/datum/element/flavor_text, "", "Temporary Flavor Text", "This should be used only for things pertaining to the current round!", _always_show = TRUE)
AddElement(/datum/element/flavor_text, _name = "OOC Notes", _addendum = "Put information on ERP/vore/lewd-related preferences here. THIS SHOULD NOT CONTAIN REGULAR FLAVORTEXT!!", _always_show = TRUE, _save_key = "ooc_notes", _examine_no_preview = TRUE)
/mob/living/silicon/med_hud_set_health()
@@ -130,11 +130,11 @@
QDEL_NULL(sord)
return ..()
/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(obj/item/projectile/Proj)
if(prob(25))
return ..()
visible_message("<span class='danger'>[src] blocks [Proj] with its shield!</span>")
return BULLET_ACT_BLOCK
/mob/living/simple_animal/hostile/syndicate/melee/sword/bullet_act(obj/item/projectile/Proj)
if(prob(50))
visible_message("<span class='danger'>[src] blocks [Proj] with its shield!</span>")
return BULLET_ACT_BLOCK
return ..()
/mob/living/simple_animal/hostile/syndicate/melee/sword/space
icon_state = "syndicate_space_sword"
+1 -1
View File
@@ -152,7 +152,7 @@
else
//dot product of sun and panel -- Lambert's Cosine Law
cur_pow = cos(azimuth_current - sun_azimuth) * sun.power_mod
cur_pow = clamp(round(cur_pow, 0.01), 0, 1)
cur_pow = clamp(round(cur_pow, 0.01), 0, sun.power_mod)
total_flux += cur_pow
/obj/machinery/power/solar/process()
@@ -60,6 +60,13 @@
desc = "Designed to quickly reload revolvers. These rounds are manufactured within extremely tight tolerances, making them easy to show off trickshots with."
ammo_type = /obj/item/ammo_casing/c38/match
/obj/item/ammo_box/g4570
name = "ammo box (.45-70 GOVT)"
desc = "Brought to you at great expense,this box contains 10 more .45-70 GOVT bullets."
ammo_type = /obj/item/ammo_casing/g4570
icon_state = "45box"
max_ammo = 10
/obj/item/ammo_box/c9mm
name = "ammo box (9mm)"
icon_state = "9mmbox"
@@ -3,28 +3,17 @@
ammo_type = /obj/item/ammo_casing/c38
caliber = "38"
max_ammo = 2
multiload = FALSE
/obj/item/ammo_box/magazine/internal/derringer/ammo_count(countempties = 1)
if (!countempties)
var/boolets = 0
for(var/obj/item/ammo_casing/bullet in stored_ammo)
if(bullet.BB)
boolets++
return boolets
else
return ..()
/obj/item/ammo_box/magazine/internal/derringer/a357
name = "\improper derringer muzzle"
ammo_type = /obj/item/ammo_casing/a357
caliber = "357"
max_ammo = 2
multiload = FALSE
multiload = 0
/obj/item/ammo_box/magazine/internal/derringer/g4570
name = "\improper derringer muzzle"
ammo_type = /obj/item/ammo_casing/g4570
caliber = "45-70g"
max_ammo = 2
multiload = FALSE
multiload = 0
@@ -3,16 +3,14 @@
desc = "A easily concealable derringer. Uses .38 ammo"
icon = 'icons/obj/guns/projectile.dmi'
icon_state = "derringer"
flags_1 = CONDUCT_1
mag_type = /obj/item/ammo_box/magazine/internal/derringer
fire_delay = 5
obj_flags = UNIQUE_RENAME
fire_sound = 'sound/weapons/revolvershot.ogg'
casing_ejector = FALSE
w_class = WEIGHT_CLASS_TINY
/obj/item/gun/ballistic/derringer/Initialize()
..()
transform *= 0.8 //Spriter too lazy to make icons smaller than default revolvers, local coder hacks in solution.
/obj/item/gun/ballistic/derringer/get_ammo(countchambered = FALSE, countempties = TRUE)
var/boolets = 0 //legacy var name maturity
if (chambered && countchambered)
@@ -27,7 +25,7 @@
return
var/num_loaded = magazine.attackby(A, user, params, 1)
if(num_loaded)
to_chat(user, "<span class='notice'>You load [num_loaded] shell\s into \the [src].</span>")
to_chat(user, "<span class='notice'>You load [num_loaded] bullet\s into \the [src].</span>")
playsound(user, 'sound/weapons/bulletinsert.ogg', 60, 1)
A.update_icon()
update_icon()
@@ -210,7 +210,7 @@
to_chat(usr, "<span class='warning'>ERROR: Cannot replicate virus strain.</span>")
return
A = A.Copy()
var/list/data = list("viruses" = list(A))
var/list/data = list("donor"=null,"viruses"=list(A),"blood_DNA"="REPLICATED", "bloodcolor" = BLOOD_COLOR_SYNTHETIC, "blood_type"="SY","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
var/obj/item/reagent_containers/glass/bottle/B = new(drop_location())
B.name = "[A.name] culture bottle"
B.desc = "A small bottle. Contains [A.agent] culture in synthblood medium."
+1 -1
View File
@@ -26,7 +26,7 @@
create_reagents(volume, reagent_flags, reagent_value)
if(spawned_disease)
var/datum/disease/F = new spawned_disease()
var/list/data = list("blood_DNA" = "UNKNOWN DNA", "blood_type" = "SY","viruses"= list(F))
var/list/data = list("donor"=null,"viruses"=list(F),"blood_DNA"="REPLICATED", "bloodcolor" = BLOOD_COLOR_SYNTHETIC, "blood_type"="SY","resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"factions"=null)
reagents.add_reagent(/datum/reagent/blood, disease_amount, data)
add_initial_reagents()
@@ -44,6 +44,26 @@
desc = "A small bottle. Contains epinephrine - used to stabilize patients."
list_reagents = list(/datum/reagent/medicine/epinephrine = 30)
/obj/item/reagent_containers/glass/bottle/bicaridine
name = "bicaridine bottle"
desc = "A small bottle. Contains bicaridine - used to treat brute damage."
list_reagents = list(/datum/reagent/medicine/bicaridine = 30)
/obj/item/reagent_containers/glass/bottle/kelotane
name = "kelotane bottle"
desc = "A small bottle. Contains kelotane - used to treat burn damage."
list_reagents = list(/datum/reagent/medicine/kelotane = 30)
/obj/item/reagent_containers/glass/bottle/antitoxin
name = "anti-toxin bottle"
desc = "A small bottle. Contains anti-toxin - used to treat minor poisoning."
list_reagents = list(/datum/reagent/medicine/antitoxin = 30)
/obj/item/reagent_containers/glass/bottle/dexalin
name = "dexalin bottle"
desc = "A small bottle. Contains dexalin - used to treat minor suffocation."
list_reagents = list(/datum/reagent/medicine/dexalin = 30)
/obj/item/reagent_containers/glass/bottle/toxin
name = "toxin bottle"
desc = "A small bottle of toxins. Do not drink, it is poisonous."
@@ -56,9 +56,9 @@
/obj/effect/dummy/phased_mob/shadow/proc/check_light_level()
var/turf/T = get_turf(src)
var/light_amount = T.get_lumcount()
if(light_amount > 0.2) // jaunt ends
if(light_amount > 0.4) // jaunt ends
end_jaunt(TRUE)
else if (light_amount < 0.2 && (!QDELETED(jaunter))) //heal in the dark
else if (light_amount < 0.4 && (!QDELETED(jaunter))) //heal in the dark
jaunter.heal_overall_damage(1,1)
/obj/effect/dummy/phased_mob/shadow/proc/end_jaunt(forced = FALSE)
+31 -2
View File
@@ -51,7 +51,7 @@ Notes:
/datum/tooltip/proc/show(atom/movable/thing, params = null, title = null, content = null, theme = "default", special = "none")
if (!thing || !params || (!title && !content) || !owner || !isnum(world.icon_size))
return 0
return FALSE
if (!init)
//Initialize some vars
init = 1
@@ -83,7 +83,7 @@ Notes:
if (queueHide)
hide()
return 1
return TRUE
/datum/tooltip/proc/hide()
@@ -122,4 +122,33 @@ Notes:
if(user.client && user.client.tooltips)
user.client.tooltips.hide()
/**
* # `get_tooltip_data()`
*
* If set, will return a list for the tooltip (that will also be put together in a `Join()`)
* However, if returning `null`, falls back to default behavior, which is `examine(src)`, and it will definitely include
* images since it is the default behavior
*
* Though no tooltips will be created for atoms that have `tooltips = FALSE`
*/
/atom/movable/proc/get_tooltip_data()
return
/atom/movable/MouseEntered(location, control, params)
. = ..()
if(tooltips)
if(!QDELETED(src))
var/list/examine_list = examine(src)
var/get_tooltip_data = get_tooltip_data()
if(length(get_tooltip_data))
examine_list = get_tooltip_data
var/examine_data = examine_list.Join("<br />")
openToolTip(usr, src, params, title = name, content = examine_data)
/atom/movable/MouseExited(location, control, params)
. = ..()
closeToolTip(usr)
/client/MouseDown(object, location, control, params)
closeToolTip(usr)
. = ..()
+3 -3
View File
@@ -65,12 +65,12 @@
.hisgrace .wrap {border-color: #7C1414;}
.hisgrace .content {color: #15D512; border-color: #9D1414; background-color: #861414;}
/* TG: Themes */
/* ScreenUI */
.midnight .wrap {border-color: #2B2B33;}
.midnight .content {color: #6087A0; border-color: #2B2B33; background-color: #36363C;}
.plasmafire .wrap {border-color: #21213D;}
.plasmafire .content {color: #FFA800 ; border-color: #21213D; background-color:#1D1D36;}
@@ -85,7 +85,7 @@
.clockwork .wrap {border-color: #170800;}
.clockwork .content {color: #B18B25; border-color: #000000; background-color: #5F380E;}
</style>
</head>
@@ -7,6 +7,13 @@
// Ammunition
/datum/uplink_item/ammo/derringer
name = "Ammo Box - .45-70 GOVT"
desc = "Contains 10 additional .45-70 GOVT rounds. Caliber is exceedingly rare, and thus, comes at a premium."
item = /obj/item/ammo_box/g4570
cost = 5
include_modes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/pistol
name = "10mm Handgun Magazine"
desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. These rounds \
@@ -135,7 +135,7 @@
but you never know. Contents are sorted to always be worth 50 TC."
item = /obj/structure/closet/crate
cost = 20
player_minimum = 25
player_minimum = 20
exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs)
cant_discount = TRUE
var/starting_crate_value = 50
@@ -145,7 +145,7 @@
desc = "A dusty SUPER-SIZED from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \
but you never know. Contents are sorted to always be worth 125 TC."
cost = 40
player_minimum = 40
player_minimum = 30
starting_crate_value = 125
/datum/uplink_item/bundles_TC/surplus/purchase(mob/user, datum/component/uplink/U)
@@ -49,7 +49,7 @@
name = "Compact Derringer"
desc = "An easily concealable handgun capable of firing .357 rounds. Comes in an inconspicuious packet of cigarettes with additional munitions."
item = /obj/item/storage/fancy/cigarettes/derringer
cost = 8
cost = 6
surplus = 30
/datum/uplink_item/stealthy_weapons/derringerpack/purchase(mob/user, datum/component/uplink/U)
@@ -57,7 +57,7 @@
item = /obj/item/storage/fancy/cigarettes/derringer/gold
..()
/datum/uplink_item/stalthy_weapons/derringerpack_nukie
/datum/uplink_item/stealthy_weapons/derringerpack_nukie
name = "Antique Derringer"
desc = "An easy to conceal, yet extremely deadly handgun, capable of firing .45-70 Govt rounds. Comes in a unique pack of cigarettes with additional munitions."
item = /obj/item/storage/fancy/cigarettes/derringer/midworld
+1 -1
View File
@@ -55,7 +55,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 70)
circuit = /obj/item/circuitboard/machine/vendor
payment_department = ACCOUNT_SRV
light_power = 0.5
light_power = 0.3
light_range = MINIMUM_USEFUL_LIGHT_RANGE
/// Is the machine active (No sales pitches if off)!
var/active = TRUE
+1
View File
@@ -8,6 +8,7 @@
/obj/item/kitchen/fork = 6,
/obj/item/kitchen/knife = 6,
/obj/item/kitchen/rollingpin = 4,
/obj/item/kitchen/unrollingpin = 4,
/obj/item/reagent_containers/food/drinks/drinkingglass = 8,
/obj/item/clothing/suit/apron/chef = 2,
/obj/item/storage/box/cups = 2,